0 txs
2 calls
constructor
constructor((address liquidity, address factory, address operateImplementation, address adminImplementation, address secondaryImplementation, address deployer, address supply, address borrow, (address token0, address token1) supplyToken, (address token0, address token1) borrowToken, uint256 vaultId, uint256 vaultType, bytes32 supplyExchangePriceSlot, bytes32 borrowExchangePriceSlot, bytes32 userSupplySlot, bytes32 userBorrowSlot) constants_)
functions
constantsView
viewfunction constantsView() view returns (tuple constantsView_)
fetchLatestPosition
viewfunction fetchLatestPosition(int256 positionTick_, uint256 positionTickId_, uint256 positionRawDebt_, uint256 tickData_) view returns (int256, uint256, uint256 positionRawCol_, uint256 branchId_, uint256 branchData_)
LIQUIDITY
viewfunction LIQUIDITY() view returns (address)
readFromStorage
viewfunction readFromStorage(bytes32 slot_) view returns (uint256 result_)
TYPE
viewfunction TYPE() view returns (uint256)
updateExchangePrices
viewfunction updateExchangePrices(uint256 vaultVariables2_) view returns (uint256 liqSupplyExPrice_, uint256 liqBorrowExPrice_, uint256 vaultSupplyExPrice_, uint256 vaultBorrowExPrice_)
VAULT_FACTORY
viewfunction VAULT_FACTORY() view returns (address)
VAULT_ID
viewfunction VAULT_ID() view returns (uint256)
dexCallback
nonpayablefunction dexCallback(address token_, uint256 amount_)
liquidate
payablefunction liquidate(uint256 debtAmt_, uint256 colPerUnitDebt_, uint256 token0ColAmtPerUnitShares_, uint256 token1ColAmtPerUnitShares_, address to_, bool absorb_) payable returns (uint256 actualDebt_, uint256 actualColShares_, uint256 token0Col_, uint256 token1Col_)
liquidatePerfect
payablefunction liquidatePerfect(uint256 debtAmt_, uint256 colPerUnitDebt_, uint256 token0ColAmtPerUnitShares_, uint256 token1ColAmtPerUnitShares_, address to_, bool absorb_) payable returns (uint256 actualDebt_, uint256 actualColShares_, uint256 token0Col_, uint256 token1Col_)
liquidityCallback
nonpayablefunction liquidityCallback(address token_, uint256 amount_, bytes data_)
operate
payablefunction operate(uint256 nftId_, int256 newColToken0_, int256 newColToken1_, int256 colSharesMinMax_, int256 newDebt_, address to_) payable returns (uint256, int256, int256)
operatePerfect
payablefunction operatePerfect(uint256 nftId_, int256 perfectColShares_, int256 colToken0MinMax_, int256 colToken1MinMax_, int256 newDebt_, address to_) payable returns (uint256, int256[] r_)
rebalance
payablefunction rebalance(int256, int256, int256, int256) payable returns (int256 supplyAmt_, int256 borrowAmt_)
simulateLiquidate
nonpayablefunction simulateLiquidate(uint256 debtAmt_, bool absorb_)
updateExchangePricesOnStorage
nonpayablefunction updateExchangePricesOnStorage() returns (uint256 liqSupplyExPrice_, uint256 liqBorrowExPrice_, uint256 vaultSupplyExPrice_, uint256 vaultBorrowExPrice_)
events
LogAbsorb
event LogAbsorb(uint256 colAbsorbedRaw_, uint256 debtAbsorbedRaw_)
LogLiquidate
event LogLiquidate(address liquidator_, uint256 colAmt_, uint256 debtAmt_, address to_)
LogOperate
event LogOperate(address user_, uint256 nftId_, int256 colAmt_, int256 debtAmt_, address to_)
LogRebalance
event LogRebalance(int256 colAmt_, int256 debtAmt_)
LogUpdateExchangePrice
event LogUpdateExchangePrice(uint256 supplyExPrice_, uint256 borrowExPrice_)
errors
FluidLiquidateResult
error FluidLiquidateResult(uint256 colLiquidated, uint256 debtLiquidated)
FluidLiquidityCalcsError
error FluidLiquidityCalcsError(uint256 errorId_)
FluidSafeTransferError
error FluidSafeTransferError(uint256 errorId_)
FluidVaultError
error FluidVaultError(uint256 errorId_)
creation bytecode
0x6103006040523480156200001257600080fd5b5060405162005a0938038062005a09833981016040819052620000359162000594565b808080808080610160015161026081815250506127106102605114158015620000635750614e206102605114155b80156200007557506175306102605114155b8015620000875750619c406102605114155b15620000af576040516330090e6560e11b815261793a60048201526024015b60405180910390fd5b80516001600160a01b0390811661020052602082015181166102205260a0820151811660c0908152820151811660e090815282015181166101005261014082015161024052604082015116156200010b5780604001516200010d565b305b6001600160a01b03166101a05261026051614e201480620001325750619c4061026051145b156200014f5760c08101516001600160a01b031660805262000193565b610100810151516001600160a01b03908116608052815160c0830151821691161462000193576040516330090e6560e11b815261793a6004820152602401620000a6565b617530610260511480620001ab5750619c4061026051145b15620001c85760e08101516001600160a01b031660a0526200020c565b610120810151516001600160a01b0390811660a052815160e083015182169116146200020c576040516330090e6560e11b815261793a6004820152602401620000a6565b61010081018051516001600160a01b03908116610120908152830180515182166101609081529251602090810151831661014052905101518116610180908152830151610280526101a08301516102a0526101c0808401516102c0526101e0808501516102e0526060850151831690915260809093015116909152600080546610000000400000178155600b80546001600160a01b03191661dead17905590840151909250614e2014905080620002c95750619c40826101600151145b62000359576001600160401b03605b60e0516001600160a01b031663b5c736e4610280516040518263ffffffff1660e01b81526004016200030c91815260200190565b602060405180830381865afa1580156200032a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003509190620006c3565b901c1662000360565b64e8d4a510005b905060006175308361016001511480620003805750619c40836101600151145b62000411576001600160401b03609b610100516001600160a01b031663b5c736e46102a0516040518263ffffffff1660e01b8152600401620003c491815260200190565b602060405180830381865afa158015620003e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004089190620006c3565b901c1662000418565b64e8d4a510005b905064e8d4a5100082108062000432575064e8d4a5100081105b1562000456576040516330090e6560e11b81526179246004820152602401620000a6565b60408301516001600160a01b031662000487576040516330090e6560e11b815261793a6004820152602401620000a6565b60401b177ce8d4a51000000000e8d4a51000000000000000000000000000000000001760085550506001805442607a1b6401ffffffff607a1b1990911617905550620006dd565b60405161020081016001600160401b03811182821017156200050057634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200051e57600080fd5b919050565b6000604082840312156200053657600080fd5b604080519081016001600160401b03811182821017156200056757634e487b7160e01b600052604160045260246000fd5b604052905080620005788362000506565b8152620005886020840162000506565b60208201525092915050565b60006102408284031215620005a857600080fd5b620005b2620004ce565b620005bd8362000506565b8152620005cd6020840162000506565b6020820152620005e06040840162000506565b6040820152620005f36060840162000506565b6060820152620006066080840162000506565b60808201526200061960a0840162000506565b60a08201526200062c60c0840162000506565b60c08201526200063f60e0840162000506565b60e0820152610100620006558582860162000523565b908201526101406200066a8585830162000523565b61012083015261018080850151828401526101a09150818501516101608401526101c080860151828501526101e09150818601518385015261020086015181850152506102208501518184015250508091505092915050565b600060208284031215620006d657600080fd5b5051919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161514d620008bc6000396000611a5601526000611a2f015260008181610c8d0152611a08015260008181610a1b01526119e10152600081816105de015281816108f50152818161092001528181610b6d01528181610b98015281816119ba015281816134b3015281816134de01528181613669015261369401526000818161050801526119930152600081816101540152818161020e015281816103eb01526117cf0152600081816104b401528181610a4501528181610cb7015281816115d801528181611619015281816116c9015281816117aa0152818161357301526136bb015260008181610f7f0152818161184b015261237f0152600081816102d2015261182301526000818161082801528181610e4601526117fb0152600061196c0152600061194601526000611918015260006118f201526000818161151801526118c30152600081816114d90152818161189b015281816139a101528181613a840152613b65015260008181611873015261214c01526000818161352601526135b0015260006136f7015261514d6000f3fe6080604052600436106101125760003560e01c80633202937e116100a5578063ad20750111610074578063b7791bf211610059578063b7791bf2146105aa578063bb24fe8a146105cc578063f4e7bfd11461060057610119565b8063ad2075011461056b578063b5c736e41461058b57610119565b80633202937e146104d6578063540acabc146104f65780637bae3361146105385780639410ae881461054b57610119565b8063103f2907116100e1578063103f2907146103d95780631593a34b1461043257806322348cc71461045a5780632861c7d1146104a257610119565b806302161887146103305780630931bf2d1461036a57806309f0d8cb1461038b57806310259f26146103ab57610119565b3661011957005b34801561012557600080fd5b506040517f4502d0630000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690634502d06390602401602060405180830381865afa1580156101b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d49190614953565b8061028e57506040517fe04c8e5d0000000000000000000000000000000000000000000000000000000081523060048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e04c8e5d90604401602060405180830381865afa15801561026a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028e9190614953565b6102cd576040517f60121cca00000000000000000000000000000000000000000000000000000000815261792560048201526024015b60405180910390fd5b61032e7f00000000000000000000000000000000000000000000000000000000000000006000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061061392505050565b005b34801561033c57600080fd5b5061034561065f565b6040805194855260208501939093529183015260608201526080015b60405180910390f35b61037d610378366004614992565b610780565b6040516103619291906149e7565b34801561039757600080fd5b506103456103a6366004614a35565b6108b9565b6103be6103b9366004614992565b610d9d565b60408051938452602084019290925290820152606001610361565b3480156103e557600080fd5b5061040d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610361565b610445610440366004614a4e565b610ed8565b60408051928352602083019190915201610361565b34801561046657600080fd5b5061047a610475366004614a4e565b61100c565b604080519586526020860194909452928401919091526060830152608082015260a001610361565b3480156104ae57600080fd5b5061040d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e257600080fd5b5061032e6104f1366004614a80565b6112cc565b34801561050257600080fd5b5061052a7f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610361565b610345610546366004614ab0565b611362565b34801561055757600080fd5b5061032e610566366004614b00565b6114c1565b34801561057757600080fd5b5061032e610586366004614b2c565b611601565b34801561059757600080fd5b5061052a6105a6366004614a35565b5490565b3480156105b657600080fd5b506105bf6116f4565b6040516103619190614bb5565b3480156105d857600080fd5b5061052a7f000000000000000000000000000000000000000000000000000000000000000081565b61034561060e366004614ab0565b611a7e565b6060600080835160208501865af43d6040519250601f19601f6020830101168301604052808352806000602085013e81156001810361065657816000803e816000fd5b50505092915050565b6000806000806106706001546108b9565b9296509094509250905067ffffffffffffffff841180610697575067ffffffffffffffff83115b806106a9575067ffffffffffffffff82115b806106bb575067ffffffffffffffff81115b156106f6576040517f60121cca00000000000000000000000000000000000000000000000000000000815261792d60048201526024016102c4565b604083811b8517608084901b1760c083901b17600855600180547ffffffffffffffffffffffffff800000003ffffffffffffffffffffffffffffff1642607a1b179055517fcde545703e0372175cadfff811d67c32910c3dcb33199679b3271c4106afdf9a906107729084908490918252602082015260400190565b60405180910390a190919293565b600b5460009060609073ffffffffffffffffffffffffffffffffffffffff1661dead146107dd576040517f60121cca00000000000000000000000000000000000000000000000000000000815261793d60048201526024016102c4565b600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055604080516020601f36908101829004820283018201909352828252610869927f00000000000000000000000000000000000000000000000000000000000000009291600091908190840183828082843760009201919091525061061392505050565b80602001905181019061087c9190614ddc565b91509150600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790559097909650945050505050565b60085460009081908190819067ffffffffffffffff80821690604083901c16836108ee607a8a901c6401ffffffff1642614ef3565b9050614e207f000000000000000000000000000000000000000000000000000000000000000014806109415750619c407f0000000000000000000000000000000000000000000000000000000000000000145b156109f35764e8d4a51000975067ffffffffffffffff608085901c169550886001166001036109b25761097a6301e13380612710614f06565b60018a901c617fff1661098d8389614f06565b6109979190614f06565b6109a19190614f4c565b6109ab9087614f87565b9550610b68565b6109c26301e13380612710614f06565b60018a901c617fff166109d58389614f06565b6109df9190614f06565b6109e99190614f4c565b6109ab9087614ef3565b6040517fb5c736e40000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000006004820152610acb907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063b5c736e4906024015b602060405180830381865afa158015610aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac69190614f9a565b611aa6565b50975082881015610b0c576040517f60121cca00000000000000000000000000000000000000000000000000000000815261793260048201526024016102c4565b61271061ffff8a16670de0b6b3a7640000858b670de0b6b3a76400000281610b3657610b36614f1d565b04030281610b4657610b46614f1d565b670de0b6b3a7640000919004810167ffffffffffffffff608087901c16020495505b6175307f00000000000000000000000000000000000000000000000000000000000000001480610bb95750619c407f0000000000000000000000000000000000000000000000000000000000000000145b15610c655764e8d4a51000965060c084901c9450600160108a901c81169003610c2457610bec6301e13380612710614f06565b60118a901c617fff16610bff8388614f06565b610c099190614f06565b610c139190614f4c565b610c1d9086614f87565b9450610d92565b610c346301e13380612710614f06565b60118a901c617fff16610c478388614f06565b610c519190614f06565b610c5b9190614f4c565b610c1d9086614ef3565b6040517fb5c736e40000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000006004820152610cfb907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063b5c736e490602401610a85565b97505081871015610d3c576040517f60121cca00000000000000000000000000000000000000000000000000000000815261793260048201526024016102c4565b61271061ffff60108b901c16670de0b6b3a7640000848a670de0b6b3a76400000281610d6a57610d6a614f1d565b04030281610d7a57610d7a614f1d565b670de0b6b3a7640000919004810160c086901c020494505b505050509193509193565b600b546000908190819073ffffffffffffffffffffffffffffffffffffffff1661dead14610dfb576040517f60121cca00000000000000000000000000000000000000000000000000000000815261793d60048201526024016102c4565b600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055604080516020601f36908101829004820283018201909352828252610e87927f00000000000000000000000000000000000000000000000000000000000000009291600091908190840183828082843760009201919091525061061392505050565b806020019051810190610e9a9190614fb3565b600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055919b909a509098509650505050505050565b600b54600090819073ffffffffffffffffffffffffffffffffffffffff1661dead14610f34576040517f60121cca00000000000000000000000000000000000000000000000000000000815261793d60048201526024016102c4565b600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055604080516020601f36908101829004820283018201909352828252610fc0927f00000000000000000000000000000000000000000000000000000000000000009291600091908190840183828082843760009201919091525061061392505050565b806020019051810190610fd39190614fe1565b600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790559097909650945050505050565b600080808080868180600189901c62ffffff168b9003611052575050601a87901c633fffffff169250603887901c6603ffffffffffff166001601989901c8116146110a9565b60008c8152600660205260408120600360028e0181810660550292918491048152602081019190915260400160002054901c600181811c633fffffff169750601f82901c6603ffffffffffff169450908116149150505b600085815260076020526040902054935080156110ec577f80000000000000000000000000000000000000000000000000000000000000009b50600099506112b8565b836003166002036111565761110e82607486901c6603ffffffffffff16611cb4565b9150600161111e600f6023614f87565b6001901b61112c9190614ef3565b82146111565760a69390931c633fffffff16600081815260076020526040902054909450926110ec565b836003166003148061118257506001611171600f6023614f87565b6001901b61117f9190614ef3565b82145b156111b3577f80000000000000000000000000000000000000000000000000000000000000009b50600099506112b8565b6111cb8a607486901c6603ffffffffffff1684611d4e565b9950606483048a11156111e85761271061270f8b020499506111ed565b600099505b89156112945783600416600414611210576207ffff600385901c1660000361121b565b6207ffff600385901c165b9b50600061122b8d60020b611d93565b905061271f612710820204633fffffff601687901c811661124c8385614ef3565b6112569190614f06565b6112609190614f4c565b61126a9082614f87565b6112816c010000000000000000000000008e614f06565b61128b9190614f4c565b975050506112b8565b7f80000000000000000000000000000000000000000000000000000000000000009b505b8b8a97509750505050945094509450945094565b60008054906001821690036112e7576001811760005561131d565b6040517f60121cca00000000000000000000000000000000000000000000000000000000815261791960048201526024016102c4565b8215611329578261133b565b6fffffffffffffffffffffffffffffffff5b925061135d6fffffffffffffffffffffffffffffffff600061dead8585611ff5565b600080fd5b600b5460009081908190819073ffffffffffffffffffffffffffffffffffffffff1661dead146113c2576040517f60121cca00000000000000000000000000000000000000000000000000000000815261793d60048201526024016102c4565b600b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317905560008054906001821690036112e75760018117600055600061140e3447614ef3565b905073ffffffffffffffffffffffffffffffffffffffff8816156114325787611434565b335b97506114438c8c8a8a86611ff5565b8060200190518101906114569190614fb3565b919750955091508b156114755761146f858b8b8b6138ee565b90945092505b600082905561148381613c1a565b5050600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790559299919850965090945092505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148061153a57503373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016145b611574576040517f60121cca00000000000000000000000000000000000000000000000000000000815261793c60048201526024016102c4565b6000546001166000036115b7576040517f60121cca00000000000000000000000000000000000000000000000000000000815261792a60048201526024016102c4565b600b546115fd90839073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000084613c6e565b5050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611674576040517f60121cca00000000000000000000000000000000000000000000000000000000815261792960048201526024016102c4565b6000546001166000036116b7576040517f60121cca00000000000000000000000000000000000000000000000000000000815261792a60048201526024016102c4565b6116ee846116c783850185615005565b7f000000000000000000000000000000000000000000000000000000000000000086613c6e565b50505050565b611793604080516102008101825260008082526020808301829052828401829052606083018290526080830182905260a0830182905260c0830182905260e0830182905283518085018552828152808201839052610100840152835180850190945281845283015290610120820190815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811682527f000000000000000000000000000000000000000000000000000000000000000081166020808401919091527f0000000000000000000000000000000000000000000000000000000000000000821660408401527f0000000000000000000000000000000000000000000000000000000000000000821660608401527f0000000000000000000000000000000000000000000000000000000000000000821660808401527f0000000000000000000000000000000000000000000000000000000000000000821660a08401527f0000000000000000000000000000000000000000000000000000000000000000821660c08401527f0000000000000000000000000000000000000000000000000000000000000000821660e0840152610100830180517f000000000000000000000000000000000000000000000000000000000000000084169052517f0000000000000000000000000000000000000000000000000000000000000000831690820152610120830180517f000000000000000000000000000000000000000000000000000000000000000084169052517f00000000000000000000000000000000000000000000000000000000000000009092169101527f00000000000000000000000000000000000000000000000000000000000000006101408201527f00000000000000000000000000000000000000000000000000000000000000006101608201527f00000000000000000000000000000000000000000000000000000000000000006101808201527f00000000000000000000000000000000000000000000000000000000000000006101a08201527f00000000000000000000000000000000000000000000000000000000000000006101c08201527f00000000000000000000000000000000000000000000000000000000000000006101e082015290565b600080600080611a928a8a8a8a8a8a611362565b929d919c509a509098509650505050505050565b67ffffffffffffffff605b82901c811690609b83901c16811580611ac8575080155b15611b04576040517fd50d75120000000000000000000000000000000000000000000000000000000081526201117160048201526024016102c4565b61ffff8316603a84901c6401ffffffff16428181039160ea87901c617fff16911480611b2e575082155b80611b395750806001145b15611b4657505050915091565b64496cebb80084840283020484019350617fff60db87901c16925082600103611b7157505050915091565b82600116600103611bc65760019290921c91826c7e37be2022c0914b268000000081611b9f57611b9f614f1d565b049250612710601e87901c613fff166b033b2e3c9fd0803ce8000000850102049250611bf3565b60019290921c916305f5e100601e87901c613fff166127108501026b033b2e3c9fd0803ce8000000020492505b80600116600103611c2a5760011c61271081016b033b2e3c9fd0803ce8000000820281611c2257611c22614f1d565b049050611c60565b60011c61271081016b033b2e3c9fd0803ce8000000820281611c4e57611c4e614f1d565b046b033b2e3c9fd0803ce80000000390505b760a70c3c40a64e6c51999090b65f67d92400000000000008382026127100261ffff881691900402601087901c613fff16612710030292506801b5a660ea44b8000085840283020485019450505050915091565b6000600f83811c9083901c0281681fffffffffffffffff8211611cd8576022611cdb565b60235b91821c919050617fff858116908516018101614000811015611cfc57600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00001617fff811115611d3b57506603ffffffffffff9250611d48915050565b80600f84901b1793505050505b92915050565b6000617fff838116908316036081811015611d8657600f83811c821b9085901c860281611d7d57611d7d614f1d565b04915050611d8c565b60009150505b9392505050565b600060ff82901d80831803617fff811115611dad57600080fd5b7001000000000000000000000000000000006001821615611ddb57506fff9dd7de423466c20352b1246ce4856f5b6002821615611dfa576fff3bd55f4488ad277531fa1c725a66d00260801c5b6004821615611e19576ffe78410fd6498b73cb96a6917f8532590260801c5b6008821615611e38576ffcf2d9987c9be178ad5bfeffaa1232730260801c5b6010821615611e57576ff9ef02c4529258b057769680fc6601b30260801c5b6020821615611e76576ff402d288133a85a17784a411f7aba0820260801c5b6040821615611e95576fe895615b5beb6386553757b0352bda900260801c5b6080821615611eb4576fd34f17a00ffa00a8309940a15930391a0260801c5b610100821615611ed4576fae6b7961714e20548d88ea5123f9a0ff0260801c5b610200821615611ef4576f76d6461f27082d74e0feed3b388c0ca10260801c5b610400821615611f14576f372a3bfe0745d8b6b19d985d9a8b85bb0260801c5b610800821615611f34576f0be32cbee48979763cf7247dd7bb539d0260801c5b611000821615611f53576e8d4f70c9ff4924dac37612d1e2921e0260801c5b612000821615611f71576d4e009ae5519380809a02ca7aec770260801c5b614000821615611f8d576b17c45e641b6e95dee056ff100260801c5b600091507f80000000000000000000000000000000000000000000000000000000000000008416611feb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0463ffffffff811615611feb57600191505b60201c0192915050565b60606120376040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001548152600283901c620fffff16600003612083576040517f60121cca00000000000000000000000000000000000000000000000000000000815261791f60048201526024016102c4565b805161208e906108b9565b9091925090915082606001836080018281525082815250505061210b6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6121446040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008061217f7f0000000000000000000000000000000000000000000000000000000000000000633fffffff605c8860000151901c16613d35565b73ffffffffffffffffffffffffffffffffffffffff1663f3190c896040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ed9190614f9a565b9150760a70c3c40a64e6c51999090b65f67d9240000000000000821180612212575081155b1561224d576040517f60121cca00000000000000000000000000000000000000000000000000000000815261793960048201526024016102c4565b8460800151856060015183028161226657612266614f1d565b049150722cd76fe086b93ce2f768a00b22a0000000000082111561229b57722cd76fe086b93ce2f768a00b22a0000000000091505b81760a70c3c40a64e6c51999090b65f67d9240000000000000816122c1576122c1614f1d565b865191900491506127109060481c6103ff16810182020460608501526b033b2e3c9fd0803ce80000006c010000000000000000000000008302865191900492506103e890602a1c6103ff16830204905061231a8161419f565b50602086015284516103e89060341c6103ff16830204905061233b8161419f565b50604086015260048088161461235d576207ffff600388901c16600003612368565b6207ffff600388901c165b60c08501819052604086015112156124bd576124397f00000000000000000000000000000000000000000000000000000000000000008887604001516040516024016123be929190918252602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9e3e482100000000000000000000000000000000000000000000000000000000179052610613565b80602001905181019061244c9190614f9a565b96508660041660041461246b576207ffff600388901c16600003612476565b6207ffff600388901c165b60c085015260008b90036124bd57604080516000602082018190529181019190915260608101889052608001604051602081830303815290604052955050505050506138e5565b6127108b10806124dc57506fffffffffffffffffffffffffffffffff8b115b15612517576040517f60121cca00000000000000000000000000000000000000000000000000000000815261792e60048201526024016102c4565b600287161561252757600261252a565b60015b60ff16846101000181815250506125776040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60c08501518152601688901c633fffffff16808552600090815260076020908152604082205490860181905260741c6603ffffffffffff166060860181905290036125ca576603ffffffffc00060608501525b602084015160c41c620fffff169250821561261157826001166001146125fc576207ffff600184901c16600003612607565b6207ffff600184901c165b6080850152612638565b7f800000000000000000000000000000000000000000000000000000000000000060808501525b856080015164e8d4a510008d028161265257612652614f1d565b0480865266ffffffffffffff609a8a901c1660ff60928b901c161b925061267d633b9aca0084614f4c565b11156126b9576040517f60121cca00000000000000000000000000000000000000000000000000000000815261792e60048201526024016102c4565b881561274c5760025485516fffffffffffffffffffffffffffffffff8216945060809190911c925083111561273157845183906126f69084614f06565b6127009190614f4c565b60a086018190526127119083614ef3565b855160808088018290526000885282901b9403938417600255915061274c565b6000600255845183900385526080850183905260a085018290525b85602001518560c0015113156132f9578451156132f9576040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081018290528190680100000000000000009060008960c00151126127c8576101008960c00151816127c2576127c2614f1d565b056127e5565b60016101008a60c00151600101816127e2576127e2614f1d565b05035b604082015284516127f590611d93565b604086015261010089015160010361282057604085015160e08a015260c08901516020820152612945565b61271f8560400151612710028161283957612839614f1d565b046060860181905260408601510360808601819052602089015160161c633fffffff90811660c0880181905290910260608701519190040160e08a0152845160208b015160010114801561289157508460c001516001145b15612945577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215373ffffffffffffffffffffffffffffffffffffffff8f160161290f576040517fcc36aa4400000000000000000000000000000000000000000000000000000000815260006004820181905260248201526044016102c4565b6040517f60121cca00000000000000000000000000000000000000000000000000000000815261793560048201526024016102c4565b8861010001516001036129b55760c0890180516000908152600560205260408082205460608c01518c5194518452919092206301fffffe8316601a9490941b9390931760389190911b1760011790915566ffffffffffffff602182901c1660ff601983901c161b975095506129d8565b67ffffffffffffffff60348960200151901c16965060ff8716600888901c901b96505b86896020018181516129ea9190614f87565b90525060e0890151612a096c0100000000000000000000000089614f06565b612a139190614f4c565b89604001818151612a249190614f87565b90525060c08901516020820151148015612a4357508861010001516001145b80612a5057506080810151155b15612b80578060800151600003612a795760408082015160009081526004602052205460808201525b886101000151600103612ad057604081015160c08a015160009081036101009283020190910160608301819052608083018051821b90911c908190529003612ad05760408082015160009081526004602052908120555b608081015115612afe576001612ae982608001516145b4565b60408301516101000201036020820152612b80565b89602001518160400151610100021215612b3d577f80000000000000000000000000000000000000000000000000000000000000006020820152612b80565b604080820180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01908190526000908152600460205220546080820152612ad0565b80602001518860800151138015612b9e575089602001518860800151135b15612bbb5760808801516101208a015260026101608a0152612bf7565b896020015181602001511315612be35760208101516101208a015260016101608a0152612bf7565b60208a01516101208a015260036101608a01525b612c0889610120015160020b611d93565b6040860152610160890151600203612c9c5761271f85604001516127100281612c3357612c33614f1d565b046060860181905260408087015191909103608087019081526020808b015160a61c633fffffff908116600090815260079092529290205460a08b0181905260161c821660c0880181905290510260608701519190040160a086018190526101408a0152612cb9565b604085015160a086018190526101408a0152633fffffff60c08601525b6c010000000000000000000000008961014001518a60600151612cdc9190614f06565b612ce69190614f4c565b612cfc906b033b2e3c9fd0803ce8000000614ef3565b8960e001518a602001518b6101400151612d169190614f06565b612d209190614f4c565b8a60200151612d2f9190614ef3565b612d45906b033b2e3c9fd0803ce8000000614f06565b612d4f9190614f4c565b93506b033b2e3c9fd0803ce8000000896060015185612d6e9190614f06565b612d789190614f4c565b925083896020015103612d9357612d90600185614ef3565b93505b885184101580612da857508861016001516003145b1561311357608081015160408083015160009081526004602052205588518410612f8857885160608a01519094506b033b2e3c9fd0803ce800000090612dee9086614f06565b612df89190614f4c565b9250828960400151612e0a9190614ef3565b6c01000000000000000000000000858b60200151612e289190614ef3565b612e329190614f06565b612e3c9190614f4c565b9650612e478761419f565b60608701528086526101208a0151138015612e695750633fffffff8560c00151145b15612e815784516002018552600160c0860152612f9b565b845160010185526101608901516002148015612ea257506101208901518551145b612ead576000612eb3565b8460c001515b9550612710856060015161271f0281612ece57612ece614f1d565b046040860181905260608601519081900360808701819052908803633fffffff0281612efc57612efc614f1d565b0460c0860181905215612f2d57633fffffff8560c001511015612f23578460c00151612f30565b633ffffffe612f30565b60015b60c08601528515801590612f4857508460c001518610155b15612f83576040517f60121cca00000000000000000000000000000000000000000000000000000000815261793860048201526024016102c4565b612f9b565b6101208901516001908101865260c08601525b6020890151612faa8582614ef3565b612fb49084614f06565b612fbe9190614f4c565b91508389608001818151612fd29190614f87565b905250602089018051859190612fe9908390614ef3565b90525060a089018051849190613000908390614f87565b905250604089018051849190613017908390614ef3565b9052506060880151613029908361466a565b6060890152602089015160641115613071576040517f60121cca00000000000000000000000000000000000000000000000000000000815261793060048201526024016102c4565b8451600013613087578451600190811b17613090565b845160000360011b5b606089015160208b015191975060741b906034906130b39060386008600161471d565b901b60168760c00151901b600289901b60a6808d60200151901c901b60011717171717600760008a6000015181526020019081526020016000208190555060168860000151901b600287901b6034808f901c901b60021717179b506132f4565b8851849003895260208901516131298582614ef3565b6131339084614f06565b61313d9190614f4c565b915083896080018181516131519190614f87565b905250602089018051859190613168908390614ef3565b90525060a08901805184919061317f908390614f87565b905250604089018051849190613196908390614ef3565b90525060608801516131a8908361466a565b60608901526101608901516801000000000000000092506002036132cd57633fffffff60a68960200151901c1696508760a00151955060006603ffffffffffff607488901c16905060006132098a606001518361484690919063ffffffff16565b6020808c0180518d516000908152600790935260409092207fffffffffffffffffffffffc00000000000000000000000000000000000000000909216607484901b17600217909155998b5298889052506060890181905260c487901c620fffff169788156132a3578860011660011461328e576207ffff60018a901c16600003613299565b6207ffff60018a901c165b60808b01526132ca565b7f800000000000000000000000000000000000000000000000000000000000000060808b01525b50505b61012089015160c08a01526101608901516101008a015261014089015160e08a0152612945565b505050505b64e8d4a51000866080015186608001516133139190614f06565b61331d9190614f4c565b8660a001818152505064e8d4a5100086606001518660a001516133409190614f06565b61334a9190614f4c565b60c087015260a08601518c10156133865760a086015161336a908d614f4c565b8660c001516133799190614f06565b60c087015260a086018c90525b8560a001516000036133c8576040517f60121cca00000000000000000000000000000000000000000000000000000000815261793560048201526024016102c4565b8a8660a001518760c00151670de0b6b3a76400006133e69190614f06565b6133f09190614f4c565b101561342c576040517f60121cca00000000000000000000000000000000000000000000000000000000815261792160048201526024016102c4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215373ffffffffffffffffffffffffffffffffffffffff8b16016134ae5760c086015160a08701516040517fcc36aa44000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016102c4565b6175307f000000000000000000000000000000000000000000000000000000000000000014806134ff5750619c407f0000000000000000000000000000000000000000000000000000000000000000145b613664577fffffffffffffffffffffffff11111111111111111111111111111111111111127f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff160161356c578560a001519250613571565b600092505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad967e15847f000000000000000000000000000000000000000000000000000000000000000060008a60a001516135df90615022565b604080513360208201526000918291016040516020818303038152906040526040518863ffffffff1660e01b815260040161361f969594939291906150be565b604080518083038185885af115801561363c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136619190614fe1565b50505b614e207f000000000000000000000000000000000000000000000000000000000000000014806136b55750619c407f0000000000000000000000000000000000000000000000000000000000000000145b61379e577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad967e157f00000000000000000000000000000000000000000000000000000000000000008860c0015161372490615022565b604080516000808252602082019092528f9082906040518763ffffffff1660e01b8152600401613759969594939291906150be565b60408051808303816000875af1158015613777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061379b9190614fe1565b50505b67ffffffffffffffff605289901c1692508460a0015160ff8416600885901c901b6137c99190614ef3565b925067ffffffffffffffff609289901c169150846080015160ff8316600884901c901b6137f69190614ef3565b915060926138098360386008600161471d565b901b605261381c8560386008600061471d565b60c089015160a08a015160408051338152602081019390935282015273ffffffffffffffffffffffffffffffffffffffff8e1660608201527ffffffffffffc00000000000000000000000000000003ffffffffffffffffffff909b16911b1717977f80fd9cc6b1821f4a510e45ffce6852ea3404807b5d3d833ffa85664408afcb669060800160405180910390a160a086015160c08701516040805160208101939093528201526060810189905260800160405160208183030381529060405296505050505050505b95945050505050565b60008080670de0b6b3a76400006139058888614f06565b61390f9190614f4c565b90506000670de0b6b3a76400006139268988614f06565b6139309190614f4c565b90506000821180156139425750600081115b15613a17576040517f35f0df9800000000000000000000000000000000000000000000000000000000815260048101899052602481018390526044810182905273ffffffffffffffffffffffffffffffffffffffff86811660648301527f000000000000000000000000000000000000000000000000000000000000000016906335f0df989060840160408051808303816000875af11580156139e9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a0d9190614fe1565b9094509250613c0f565b600082118015613a25575080155b15613af8576040517f4c89bfd400000000000000000000000000000000000000000000000000000000815260048101899052602481018390526044810182905273ffffffffffffffffffffffffffffffffffffffff86811660648301527f00000000000000000000000000000000000000000000000000000000000000001690634c89bfd4906084016020604051808303816000875af1158015613acd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613af19190614f9a565b9350613c0f565b81158015613b065750600081115b15613bd9576040517f4c89bfd400000000000000000000000000000000000000000000000000000000815260048101899052602481018390526044810182905273ffffffffffffffffffffffffffffffffffffffff86811660648301527f00000000000000000000000000000000000000000000000000000000000000001690634c89bfd4906084016020604051808303816000875af1158015613bae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bd29190614f9a565b9250613c0f565b6040517f60121cca0000000000000000000000000000000000000000000000000000000081526188b960048201526024016102c4565b505094509492505050565b303181811115613c30576115fd338383036148f1565b818110156115fd576040517f60121cca00000000000000000000000000000000000000000000000000000000815261791b60048201526024016102c4565b60006040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273ffffffffffffffffffffffffffffffffffffffff841660248201528260448201526020600060648360008a5af13d15601f3d1160016000511416171691505080613d2e576040517fdee51a8a0000000000000000000000000000000000000000000000000000000081526201155960048201526024016102c4565b5050505050565b6000606082600003613d4b576000915050611d48565b607f8311613e14576040517fd60000000000000000000000000000000000000000000000000000000000000060208201527f940000000000000000000000000000000000000000000000000000000000000060218201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b16602282015260f884901b7fff000000000000000000000000000000000000000000000000000000000000001660368201526037015b6040516020818303038152906040529050614190565b60ff8311613ef1576040517fd70000000000000000000000000000000000000000000000000000000000000060208201527f940000000000000000000000000000000000000000000000000000000000000060218201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b1660228201527f8100000000000000000000000000000000000000000000000000000000000000603682015260f884901b7fff00000000000000000000000000000000000000000000000000000000000000166037820152603801613dfe565b61ffff8311613fcf576040517fd80000000000000000000000000000000000000000000000000000000000000060208201527f940000000000000000000000000000000000000000000000000000000000000060218201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b1660228201527f820000000000000000000000000000000000000000000000000000000000000060368201527fffff00000000000000000000000000000000000000000000000000000000000060f085901b166037820152603901613dfe565b62ffffff83116140ae576040517fd90000000000000000000000000000000000000000000000000000000000000060208201527f940000000000000000000000000000000000000000000000000000000000000060218201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b1660228201527f830000000000000000000000000000000000000000000000000000000000000060368201527fffffff000000000000000000000000000000000000000000000000000000000060e885901b166037820152603a01613dfe565b6040517fda0000000000000000000000000000000000000000000000000000000000000060208201527f940000000000000000000000000000000000000000000000000000000000000060218201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b1660228201527f840000000000000000000000000000000000000000000000000000000000000060368201527fffffffff0000000000000000000000000000000000000000000000000000000060e085901b166037820152603b0160405160208183030381529060405290505b80516020909101209392505050565b600080630235b88083107473d85bca016a2338b31715f8e13054c005f8b995d3841117156141cc57600080fd5b6c01000000000000000000000000831060008161420257506c010000000000000000000000006a52b7d2dcc80cd2e40000008502045b811561422557507652b7d2dcc80cd2e40000000000000000000000000000008490045b6f037af932b2affa9738cc6c38ca527831811061426657614000841793506f037af932b2affa9738cc6c38ca5278316a52b7d2dcc80cd2e400000082020490505b6d010f7a088a76f267264caa114f0a81106142a357612000841793506d010f7a088a76f267264caa114f0a6a52b7d2dcc80cd2e400000082020490505b6b95da74f87f839fc2e0dc5bd981106142dc57611000841793506b95da74f87f839fc2e0dc5bd96a52b7d2dcc80cd2e400000082020490505b6b06f55dedafd8491caed5a1b8811061431557610800841793506b06f55dedafd8491caed5a1b86a52b7d2dcc80cd2e400000082020490505b6b017fdd10ee11e624491b4cc1811061434e57610400841793506b017fdd10ee11e624491b4cc16a52b7d2dcc80cd2e400000082020490505b6ab23131bf0c30217b0a2c69811061438557610200841793506ab23131bf0c30217b0a2c696a52b7d2dcc80cd2e400000082020490505b6a79683edcb9280d797aded781106143bc57610100841793506a79683edcb9280d797aded76a52b7d2dcc80cd2e400000082020490505b6a64366e2f9919f0d9b0dc9081106143f2576080841793506a64366e2f9919f0d9b0dc906a52b7d2dcc80cd2e400000082020490505b6a5b0bcda5a78850646b0a818110614428576040841793506a5b0bcda5a78850646b0a816a52b7d2dcc80cd2e400000082020490505b6a56c840f992c70f959ae810811061445e576020841793506a56c840f992c70f959ae8106a52b7d2dcc80cd2e400000082020490505b6a54b9cd178695194f9be0a08110614494576010841793506a54b9cd178695194f9be0a06a52b7d2dcc80cd2e400000082020490505b6a53b7458aff204b5e65d68181106144ca576008841793506a53b7458aff204b5e65d6816a52b7d2dcc80cd2e400000082020490505b6a53372a2f38c240d689e4008110614500576004841793506a53372a2f38c240d689e4006a52b7d2dcc80cd2e400000082020490505b6a52f76617a04499e66400008110614536576002841793506a52f76617a04499e66400006a52b7d2dcc80cd2e400000082020490505b6a52d79660f3dec355c00000811061456c576001841793506a52d79660f3dec355c000006a52b7d2dcc80cd2e400000082020490505b8161458457806a52b7d2dcc80cd2e400000086020492505b81156145a0579219926a52d79660f3dec355c000008582020492505b5050828111156145af57600080fd5b915091565b6000816fffffffffffffffffffffffffffffffff8311156145d65760809150811c5b67ffffffffffffffff8111156145ee576040918201911c5b63ffffffff811115614602576020918201911c5b61ffff811115614614576010918201911c5b60ff811115614625576008918201911c5b600f811115614636576004918201911c5b6003811115614647576002918201911c5b6001811115614657576001820191505b8015614664576001820191505b50919050565b6000600f83901c8202816c03ffffffffffffffffffffffff82116146b1576c01ffffffffffffffffffffffff82116146aa576146a5826145b4565b6146b4565b60626146b4565b60635b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd617fff87168201810194500191821c919050604083111561135d5750600f1b017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00192915050565b600080856fffffffffffffffffffffffffffffffff8111156147405760809150811c5b67ffffffffffffffff811115614758576040918201911c5b63ffffffff81111561476c576020918201911c5b61ffff81111561477e576010918201911c5b60ff81111561478f576008918201911c5b600f8111156147a0576004918201911c5b60038111156147b1576002918201911c5b60018111156147c1576001820191505b80156147ce576001820191505b50848110156147da5750835b848103905085811c6000821184161561482957600181019050806001871b0361482957506001908101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff86011b5b6001851b821061483857600080fd5b90931b909201949350505050565b600080600f83901c7fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000603186901b168161488257614882614f1d565b0490506000604082901c60011461489a57604061489d565b60415b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd81019290921c91617fff8581166040019250613fdd908716909101018181111561135d5703600f9190911b179050611d48565b60008060008060008587614e20f190508061493d576040517fdee51a8a0000000000000000000000000000000000000000000000000000000081526201155a60048201526024016102c4565b505050565b801515811461495057600080fd5b50565b60006020828403121561496557600080fd5b8151611d8c81614942565b73ffffffffffffffffffffffffffffffffffffffff8116811461495057600080fd5b60008060008060008060c087890312156149ab57600080fd5b863595506020870135945060408701359350606087013592506080870135915060a08701356149d981614970565b809150509295509295509295565b6000604082018483526020604081850152818551808452606086019150828701935060005b81811015614a2857845183529383019391830191600101614a0c565b5090979650505050505050565b600060208284031215614a4757600080fd5b5035919050565b60008060008060808587031215614a6457600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215614a9357600080fd5b823591506020830135614aa581614942565b809150509250929050565b60008060008060008060c08789031215614ac957600080fd5b863595506020870135945060408701359350606087013592506080870135614af081614970565b915060a08701356149d981614942565b60008060408385031215614b1357600080fd5b8235614b1e81614970565b946020939093013593505050565b60008060008060608587031215614b4257600080fd5b8435614b4d81614970565b935060208501359250604085013567ffffffffffffffff80821115614b7157600080fd5b818701915087601f830112614b8557600080fd5b813581811115614b9457600080fd5b886020828501011115614ba657600080fd5b95989497505060200194505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261024081016020830151614bfb602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151614c23604084018273ffffffffffffffffffffffffffffffffffffffff169052565b506060830151614c4b606084018273ffffffffffffffffffffffffffffffffffffffff169052565b506080830151614c73608084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060a0830151614c9b60a084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060c0830151614cc360c084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e0830151614ceb60e084018273ffffffffffffffffffffffffffffffffffffffff169052565b5061010083810151805173ffffffffffffffffffffffffffffffffffffffff908116858401526020820151166101208501525050610120830151610140614d5781850183805173ffffffffffffffffffffffffffffffffffffffff908116835260209182015116910152565b840151610180848101919091526101608501516101a080860191909152908501516101c080860191909152908501516101e080860191909152908501516102008501529093015161022090920191909152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215614def57600080fd5b8251915060208084015167ffffffffffffffff80821115614e0f57600080fd5b818601915086601f830112614e2357600080fd5b815181811115614e3557614e35614dad565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715614e7857614e78614dad565b604052918252848201925083810185019189831115614e9657600080fd5b938501935b82851015614eb457845184529385019392850192614e9b565b8096505050505050509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115611d4857611d48614ec4565b8082028115828204841417611d4857611d48614ec4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614f82577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b80820180821115611d4857611d48614ec4565b600060208284031215614fac57600080fd5b5051919050565b600080600060608486031215614fc857600080fd5b8351925060208401519150604084015190509250925092565b60008060408385031215614ff457600080fd5b505080516020909101519092909150565b60006020828403121561501757600080fd5b8135611d8c81614970565b60007f8000000000000000000000000000000000000000000000000000000000000000820361505357615053614ec4565b5060000390565b6000815180845260005b8181101561508057602081850181015186830182015201615064565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff8089168352876020840152866040840152808616606084015280851660808401525060c060a083015261510b60c083018461505a565b9897505050505050505056fea26469706673582212201f46abcf52818a74746755189a895e51751ce80b5adab8803df0a2b5dd5f06ee64736f6c6343000815003300000000000000000000000052aa899454998be5b000ad077a46bbe360f4e497000000000000000000000000324c5dc1fc42c7a4d43d92df1eba58a54d13bf2d000000000000000000000000fc302ec7f7844264761b0672cf0b2f810596bb6a000000000000000000000000148807cfe7c285003a923411c6037eb3fe0e7f1c000000000000000000000000b6ff36e7d04e6017e0323f1f92a8184370d489070000000000000000000000004ec7b668baf70d4a4b0fc7941a7708a07b6d45be0000000000000000000000000ffda76c8a06d03c104f58ece336348488487e6000000000000000000000000052aa899454998be5b000ad077a46bbe360f4e4970000000000000000000000001202f5c7b4b9e47a1a484e8b270be34dbbc75055000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000710000000000000000000000000000000000000000000000000000000000004e2000000000000000000000000000000000000000000000000000000000000000000a7e0e74b40a947daf7b6df34c66be699f819f509940d1bd48c4d99bc5e3353cf3d82c46b4d7c70f2c801353ecc4373d01ec727d88f848bf1db99cf71aced8f627f2798ff17e4c5b9cff4749447640cd47c94c5cf8bbf778ebb001413c61d15e