0 txs
15 calls
constructor
constructor(address _tellerV2, address _factory, address _WETH9)
functions
calculateRolloverAmount
viewfunction calculateRolloverAmount(uint16 marketFeePct, uint16 protocolFeePct, uint256 _loanId, uint256 principalAmount, uint256 _rewardAmount, uint16 _flashloanFeePct, uint256 _timestamp) view returns (uint256 _flashAmount, int256 _borrowerAmount)
factory
viewfunction factory() view returns (address)
getMarketFeePct
viewfunction getMarketFeePct(uint256 _marketId) view returns (uint16)
getMarketIdForCommitment
viewfunction getMarketIdForCommitment(address _lenderCommitmentForwarder, uint256 _commitmentId) view returns (uint256)
getUniswapPoolAddress
viewfunction getUniswapPoolAddress(address token0, address token1, uint24 fee) view returns (address)
TELLER_V2
viewfunction TELLER_V2() view returns (address)
WETH9
viewfunction WETH9() view returns (address)
refundETH
payablefunction refundETH() payable
rolloverLoanWithFlashSwap
nonpayablefunction rolloverLoanWithFlashSwap(address _lenderCommitmentForwarder, uint256 _loanId, uint256 _borrowerAmount, tuple _flashSwapArgs, tuple _acceptCommitmentArgs)
rolloverLoanWithFlashSwapRewards
nonpayablefunction rolloverLoanWithFlashSwapRewards(address _lenderCommitmentForwarder, uint256 _loanId, uint256 _borrowerAmount, uint256 _rewardAmount, address _rewardRecipient, uint256 _atmId, tuple _flashSwapArgs, tuple _acceptCommitmentArgs)
sweepToken
payablefunction sweepToken(address token, uint256 amountMinimum, address recipient) payable
uniswapV3FlashCallback
nonpayablefunction uniswapV3FlashCallback(uint256 fee0, uint256 fee1, bytes data)
unwrapWETH9
payablefunction unwrapWETH9(uint256 amountMinimum, address recipient) payable
events
RolloverLoanComplete
event RolloverLoanComplete(address borrower, uint256 originalLoanId, uint256 newLoanId, uint256 fundsRemaining)
RolloverWithReferral
event RolloverWithReferral(uint256 newLoanId, address flashToken, address rewardRecipient, uint256 rewardAmount, uint256 atmId)
errors
No errors.
creation bytecode
0x60e06040523480156200001157600080fd5b5060405162002f5338038062002f5383398101604081905262000034916200006e565b6001600160a01b03918216608052811660a0521660c052620000b8565b80516001600160a01b03811681146200006957600080fd5b919050565b6000806000606084860312156200008457600080fd5b6200008f8462000051565b92506200009f6020850162000051565b9150620000af6040850162000051565b90509250925092565b60805160a05160c051612dfc6200015760003960008181610241015281816103510152818161042a015281816106940152818161092701528181610a000152818161120f0152818161152201526115b901526000818160d6015281816101f5015281816107b20152818161088801528181611b3d01528181611b830152611c180152600081816102c301528181610c8e0152610e5c0152612dfc6000f3fe6080604052600436106100c65760003560e01c80636051f2101161007f578063c45a015511610059578063c45a0155146102b1578063cdafbdb0146102e5578063df2ab5bb14610305578063e9cbafb01461031857600080fd5b80636051f2101461022f5780638d0de50f14610263578063997a6d861461029157600080fd5b80630f29fee21461013b57806312210e8a1461015b57806315f922cf146101635780631a7c762b1461019b57806349404b7c146101d05780634aa4a4fc146101e357600080fd5b3661013657336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101345760405162461bcd60e51b81526020600482015260096024820152684e6f7420574554483960b81b60448201526064015b60405180910390fd5b005b600080fd5b34801561014757600080fd5b50610134610156366004611fed565b610338565b610134610645565b34801561016f57600080fd5b5061018361017e366004612064565b610657565b60405161ffff90911681526020015b60405180910390f35b3480156101a757600080fd5b506101bb6101b6366004612098565b610668565b60408051928352602083019190915201610192565b6101346101de36600461210a565b61079a565b3480156101ef57600080fd5b506102177f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610192565b34801561023b57600080fd5b506102177f000000000000000000000000000000000000000000000000000000000000000081565b34801561026f57600080fd5b5061028361027e36600461213a565b6108fb565b604051908152602001610192565b34801561029d57600080fd5b506101346102ac366004612166565b61090e565b3480156102bd57600080fd5b506102177f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f157600080fd5b50610217610300366004612213565b610c59565b61013461031336600461225e565b610d03565b34801561032457600080fd5b50610134610333366004612295565b610dcc565b604051633ef0a2f760e01b8152600481018590526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ef0a2f790602401602060405180830381865afa1580156103a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c49190612320565b90506001600160a01b03811633146104115760405162461bcd60e51b815260206004820152601060248201526f26bab9ba103132903137b93937bbb2b960811b604482015260640161012b565b604051631457303360e01b8152600481018690526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631457303390602401602060405180830381865afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d9190612320565b905084156104b1576104b18183308861105d565b506104e26104c2602085018561233d565b6104d2604086016020870161233d565b610300606087016040880161235a565b6001600160a01b031663490e6cbc3061050160a0870160808801612385565b61050f578560600135610512565b60005b61052260a0880160808901612385565b61052d576000610533565b86606001355b6040518061012001604052808c6001600160a01b031681526020018b8152602001876001600160a01b031681526020018a81526020016000815260200160006001600160a01b0316815260200160008152602001886040516020016105989190612445565b6040516020818303038152906040528152602001896040516020016105bd919061250e565b60408051601f198184030181529181529152516105dd91906020016125d6565b6040516020818303038152906040526040518563ffffffff1660e01b815260040161060b949392919061268a565b600060405180830381600087803b15801561062557600080fd5b505af1158015610639573d6000803e3d6000fd5b50505050505050505050565b4715610655576106553347611167565b565b60006106628261120a565b92915050565b604051631042b85f60e01b81526004810186905260248101829052600090819081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631042b85f906044016040805180830381865afa1580156106da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fe9190612728565b905086600061070d828d6112fb565b9050600061071b838d6112fb565b905060008161072a848661278d565b610734919061278d565b905060008560200151866000015161074c91906127a4565b975087905060006107638261ffff8d166004611309565b90508b8161077184866127bc565b61077b91906127bc565b61078591906127bc565b97505050505050505097509795505050505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610801573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082591906127fb565b90508281101561086c5760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e7420574554483960701b604482015260640161012b565b80156108f657604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156108d457600080fd5b505af11580156108e8573d6000803e3d6000fd5b505050506108f68282611167565b505050565b60006109078383611328565b9392505050565b604051633ef0a2f760e01b8152600481018890526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ef0a2f790602401602060405180830381865afa158015610976573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099a9190612320565b90506001600160a01b03811633146109e75760405162461bcd60e51b815260206004820152601060248201526f26bab9ba103132903137b93937bbb2b960811b604482015260640161012b565b604051631457303360e01b8152600481018990526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631457303390602401602060405180830381865afa158015610a4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a739190612320565b9050610a84600a6060860135612814565b871115610ad35760405162461bcd60e51b815260206004820152601760248201527f4578636573736976652072657761726420616d6f756e74000000000000000000604482015260640161012b565b8715610ae557610ae58183308b61105d565b50610af66104c2602085018561233d565b6001600160a01b031663490e6cbc30610b1560a0870160808801612385565b610b23578560600135610b26565b60005b610b3660a0880160808901612385565b610b41576000610b47565b86606001355b6040518061012001604052808f6001600160a01b031681526020018e8152602001876001600160a01b031681526020018d81526020018a81526020018b6001600160a01b031681526020018c815260200188604051602001610ba99190612445565b604051602081830303815290604052815260200189604051602001610bce919061250e565b60408051601f19818403018152918152915251610bee91906020016125d6565b6040516020818303038152906040526040518563ffffffff1660e01b8152600401610c1c949392919061268a565b600060405180830381600087803b158015610c3657600080fd5b505af1158015610c4a573d6000803e3d6000fd5b50505050505050505050505050565b604051630b4c774160e11b81526001600160a01b038481166004830152838116602483015262ffffff831660448301526000917f000000000000000000000000000000000000000000000000000000000000000090911690631698ee8290606401602060405180830381865afa158015610cd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfb9190612320565b949350505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6e91906127fb565b905082811015610db55760405162461bcd60e51b815260206004820152601260248201527124b739bab33334b1b4b2b73a103a37b5b2b760711b604482015260640161012b565b8015610dc657610dc6848383611394565b50505050565b6000610dda828401846128a6565b905060008160e00151806020019051810190610df69190612a22565b90506000826101000151806020019051810190610e139190612aef565b90506000604051806060016040528083600001516001600160a01b0316815260200183602001516001600160a01b03168152602001836040015162ffffff168152509050610e817f000000000000000000000000000000000000000000000000000000000000000082611494565b60008260800151610e93578251610e99565b82602001515b905060008360800151610eac5789610eae565b885b90506000610ec5876020015184876060015161149e565b9050600080610ede89600001518a60400151878b61169e565b915091506000610ef2886060015186611a27565b9050610eff863083611a42565b8015610f1157610f1186303384611b3b565b600081858c60600151858c60600151610f2a91906127a4565b610f3491906127a4565b610f3e919061278d565b610f48919061278d565b90508015610ff35760c08b015115610fe45760c08b0151610f69908261278d565b9050610f7e878c60a001518d60c00151611394565b60a08b81015160c08d01516080808f0151604080518a81526001600160a01b03808f1660208301529095169085015260608401929092528201527f75f1a5a575d3646e05973fd2ee5bbdaf258b7c41d992d798fd52dd57921c8b94910160405180910390a15b610ff3878c6040015183611394565b6040808c01516020808e015183516001600160a01b03909316835290820152908101859052606081018290527f7fc6c3a5d0857fbad5d5ecc01d80b34b34b792a1c269283eaff02bcd0c7535fb9060800160405180910390a1505050505050505050505050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916110c19190612b7e565b6000604051808303816000865af19150503d80600081146110fe576040519150601f19603f3d011682016040523d82523d6000602084013e611103565b606091505b509150915081801561112d57508051158061112d57508080602001905181019061112d9190612b9a565b61115f5760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b604482015260640161012b565b505050505050565b604080516000808252602082019092526001600160a01b0384169083906040516111919190612b7e565b60006040518083038185875af1925050503d80600081146111ce576040519150601f19603f3d011682016040523d82523d6000602084013e6111d3565b606091505b50509050806108f65760405162461bcd60e51b815260206004820152600360248201526253544560e81b604482015260640161012b565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ecb96fe66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561126b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128f9190612320565b60405163028ba63960e21b8152600481018590529091506001600160a01b03821690630a2e98e490602401602060405180830381865afa1580156112d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190612bb7565b6000610907838361ffff1660025b600061131482611cbc565b61131e8486612bd4565b610cfb9190612814565b6040516331a1afb960e01b8152600481018290526000906001600160a01b038416906331a1afb990602401602060405180830381865afa158015611370573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090791906127fb565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916113f09190612b7e565b6000604051808303816000865af19150503d806000811461142d576040519150601f19603f3d011682016040523d82523d6000602084013e611432565b606091505b509150915081801561145c57508051158061145c57508080602001905181019061145c9190612b9a565b61148d5760405162461bcd60e51b815260206004820152600260248201526114d560f21b604482015260640161012b565b5050505050565b6108f68282611cd4565b6040516370a0823160e01b815230600482015260009081906001600160a01b038516906370a0823190602401602060405180830381865afa1580156114e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150b91906127fb565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018690529192509085169063095ea7b3906044016020604051808303816000875af115801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190612b9a565b50604051639a11e33960e01b8152600481018690527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690639a11e33990602401600060405180830381600087803b15801561160557600080fd5b505af1158015611619573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600092506001600160a01b03871691506370a0823190602401602060405180830381865afa158015611664573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168891906127fb565b9050611694818361278d565b9695505050505050565b6040516370a0823160e01b8152306004820152600090819081906001600160a01b038616906370a0823190602401602060405180830381865afa1580156116e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170d91906127fb565b60208501519091506001600160a01b0316156118295760208401516040808601516060870151608088015160a089015160c08a015160e08b015195516001600160a01b0397881660248201526044810195909552606485019390935260848401919091529390931660a48201523060c482015261ffff90921660e483015263ffffffff1661010482015260009061180b90633425aa5760e11b906101240160408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b031990951694909417909352516117eb928b9101612bf3565b60408051601f198184030181529190526001600160a01b038a1690611cf7565b90508080602001905181019061182191906127fb565b9350506119a3565b61010084015151158015906119055760006118e763e767e97360e01b8760000151886040015189606001518a608001518b60a00151308d60c001518e60e001518f610100015160405160240161188799989796959493929190612c2a565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b031990951694909417909352516118c7928c9101612bf3565b60408051601f198184030181529190526001600160a01b038b1690611cf7565b9050808060200190518101906118fd91906127fb565b9450506119a1565b84516040808701516060880151608089015160a08a015160c08b015160e08c0151955160248101979097526044870194909452606486019290925260848501526001600160a01b031660a48401523060c484015261ffff1660e483015263ffffffff1661010482015260009061198790634bfc440160e01b9061012401611887565b90508080602001905181019061199d91906127fb565b9450505b505b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa1580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0e91906127fb565b9050611a1a828261278d565b9250505094509492505050565b600082611a3483826127a4565b915081101561066257600080fd5b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691611a9e9190612b7e565b6000604051808303816000865af19150503d8060008114611adb576040519150601f19603f3d011682016040523d82523d6000602084013e611ae0565b606091505b5091509150818015611b0a575080511580611b0a575080806020019051810190611b0a9190612b9a565b61148d5760405162461bcd60e51b8152602060048201526002602482015261534160f01b604482015260640161012b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316148015611b7c5750804710155b15611c8f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015611bdc57600080fd5b505af1158015611bf0573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b038681166004830152602482018690527f000000000000000000000000000000000000000000000000000000000000000016935063a9059cbb925060440190506020604051808303816000875af1158015611c65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c899190612b9a565b50610dc6565b6001600160a01b038316301415611cb057611cab848383611394565b610dc6565b610dc68484848461105d565b6000611cc982600a612da7565b610662906064612bd4565b6000611ce08383611d3b565b9050336001600160a01b0382161461066257600080fd5b6060610907838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250611e24565b600081602001516001600160a01b031682600001516001600160a01b031610611d6357600080fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b606082471015611e855760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161012b565b600080866001600160a01b03168587604051611ea19190612b7e565b60006040518083038185875af1925050503d8060008114611ede576040519150601f19603f3d011682016040523d82523d6000602084013e611ee3565b606091505b5091509150611ef487838387611eff565b979650505050505050565b60608315611f6b578251611f64576001600160a01b0385163b611f645760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161012b565b5081610cfb565b610cfb8383815115611f805781518083602001fd5b8060405162461bcd60e51b815260040161012b9190612db3565b6001600160a01b0381168114611faf57600080fd5b50565b8035611fbd81611f9a565b919050565b600060a08284031215611fd457600080fd5b50919050565b60006101208284031215611fd457600080fd5b6000806000806000610120868803121561200657600080fd5b853561201181611f9a565b9450602086013593506040860135925061202e8760608801611fc2565b915061010086013567ffffffffffffffff81111561204b57600080fd5b61205788828901611fda565b9150509295509295909350565b60006020828403121561207657600080fd5b5035919050565b61ffff81168114611faf57600080fd5b8035611fbd8161207d565b600080600080600080600060e0888a0312156120b357600080fd5b87356120be8161207d565b965060208801356120ce8161207d565b955060408801359450606088013593506080880135925060a08801356120f38161207d565b8092505060c0880135905092959891949750929550565b6000806040838503121561211d57600080fd5b82359150602083013561212f81611f9a565b809150509250929050565b6000806040838503121561214d57600080fd5b823561215881611f9a565b946020939093013593505050565b600080600080600080600080610180898b03121561218357600080fd5b883561218e81611f9a565b975060208901359650604089013595506060890135945060808901356121b381611f9a565b935060a089013592506121c98a60c08b01611fc2565b915061016089013567ffffffffffffffff8111156121e657600080fd5b6121f28b828c01611fda565b9150509295985092959890939650565b62ffffff81168114611faf57600080fd5b60008060006060848603121561222857600080fd5b833561223381611f9a565b9250602084013561224381611f9a565b9150604084013561225381612202565b809150509250925092565b60008060006060848603121561227357600080fd5b833561227e81611f9a565b925060208401359150604084013561225381611f9a565b600080600080606085870312156122ab57600080fd5b8435935060208501359250604085013567ffffffffffffffff808211156122d157600080fd5b818701915087601f8301126122e557600080fd5b8135818111156122f457600080fd5b88602082850101111561230657600080fd5b95989497505060200194505050565b8051611fbd81611f9a565b60006020828403121561233257600080fd5b815161090781611f9a565b60006020828403121561234f57600080fd5b813561090781611f9a565b60006020828403121561236c57600080fd5b813561090781612202565b8015158114611faf57600080fd5b60006020828403121561239757600080fd5b813561090781612377565b63ffffffff81168114611faf57600080fd5b8035611fbd816123a2565b6000808335601e198436030181126123d657600080fd5b830160208101925035905067ffffffffffffffff8111156123f657600080fd5b8060051b360383131561240857600080fd5b9250929050565b81835260006001600160fb1b0383111561242857600080fd5b8260051b8083602087013760009401602001938452509192915050565b6020815281356020820152600061245e60208401611fb2565b6001600160a01b0381166040840152506040830135606083015260608301356080830152608083013560a083015261249860a08401611fb2565b6001600160a01b03811660c0840152506124b460c0840161208d565b61ffff811660e0840152506124cb60e084016123b4565b6101006124df8185018363ffffffff169052565b6124eb818601866123bf565b61012086810152925090506125056101408501838361240f565b95945050505050565b60a08101823561251d81611f9a565b6001600160a01b03908116835260208401359061253982611f9a565b166020830152604083013561254d81612202565b62ffffff16604083015260608381013590830152608083013561256f81612377565b80151560808401525092915050565b60005b83811015612599578181015183820152602001612581565b83811115610dc65750506000910152565b600081518084526125c281602086016020860161257e565b601f01601f19169290920160200192915050565b602081526125f06020820183516001600160a01b03169052565b602082015160408201526000604083015161261660608401826001600160a01b03169052565b5060608301516080830152608083015160a083015260a083015161264560c08401826001600160a01b03169052565b5060c083015160e083015260e0830151610120610100818186015261266e6101408601846125aa565b90860151858203601f19018387015290925061169483826125aa565b60018060a01b038516815283602082015282604082015260806060820152600061169460808301846125aa565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff811182821017156126f1576126f16126b7565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612720576127206126b7565b604052919050565b60006040828403121561273a57600080fd5b6040516040810181811067ffffffffffffffff8211171561275d5761275d6126b7565b604052825181526020928301519281019290925250919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561279f5761279f612777565b500390565b600082198211156127b7576127b7612777565b500190565b60008083128015600160ff1b8501841216156127da576127da612777565b6001600160ff1b03840183138116156127f5576127f5612777565b50500390565b60006020828403121561280d57600080fd5b5051919050565b60008261283157634e487b7160e01b600052601260045260246000fd5b500490565b600082601f83011261284757600080fd5b813567ffffffffffffffff811115612861576128616126b7565b612874601f8201601f19166020016126f7565b81815284602083860101111561288957600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156128b857600080fd5b813567ffffffffffffffff808211156128d057600080fd5b9083019061012082860312156128e557600080fd5b6128ed6126cd565b6128f683611fb2565b81526020830135602082015261290e60408401611fb2565b6040820152606083013560608201526080830135608082015261293360a08401611fb2565b60a082015260c083013560c082015260e08301358281111561295457600080fd5b61296087828601612836565b60e083015250610100808401358381111561297a57600080fd5b61298688828701612836565b918301919091525095945050505050565b8051611fbd8161207d565b8051611fbd816123a2565b600082601f8301126129be57600080fd5b8151602067ffffffffffffffff8211156129da576129da6126b7565b8160051b6129e98282016126f7565b9283528481018201928281019087851115612a0357600080fd5b83870192505b84831015611ef457825182529183019190830190612a09565b600060208284031215612a3457600080fd5b815167ffffffffffffffff80821115612a4c57600080fd5b908301906101208286031215612a6157600080fd5b612a696126cd565b82518152612a7960208401612315565b6020820152604083015160408201526060830151606082015260808301516080820152612aa860a08401612315565b60a0820152612ab960c08401612997565b60c0820152612aca60e084016129a2565b60e08201526101008084015183811115612ae357600080fd5b612986888287016129ad565b600060a08284031215612b0157600080fd5b60405160a0810181811067ffffffffffffffff82111715612b2457612b246126b7565b6040528251612b3281611f9a565b81526020830151612b4281611f9a565b60208201526040830151612b5581612202565b6040820152606083810151908201526080830151612b7281612377565b60808201529392505050565b60008251612b9081846020870161257e565b9190910192915050565b600060208284031215612bac57600080fd5b815161090781612377565b600060208284031215612bc957600080fd5b81516109078161207d565b6000816000190483118215151615612bee57612bee612777565b500290565b60008351612c0581846020880161257e565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b89815260208082018a905260408201899052606082018890526001600160a01b038781166080840152861660a083015261ffff851660c083015263ffffffff841660e0830152610120610100830181905283519083018190526000916101408401918582019190845b81811015612caf57835185529382019392820192600101612c93565b50929e9d5050505050505050505050505050565b600181815b80851115612cfe578160001904821115612ce457612ce4612777565b80851615612cf157918102915b93841c9390800290612cc8565b509250929050565b600082612d1557506001610662565b81612d2257506000610662565b8160018114612d385760028114612d4257612d5e565b6001915050610662565b60ff841115612d5357612d53612777565b50506001821b610662565b5060208310610133831016604e8410600b8410161715612d81575081810a610662565b612d8b8383612cc3565b8060001904821115612d9f57612d9f612777565b029392505050565b60006109078383612d06565b60208152600061090760208301846125aa56fea2646970667358221220fb5291528ea080924169432cd278667bb4f4a83fc117cf0fbd8f805ebc2fa87f64736f6c634300080b0033000000000000000000000000d3d79a066f2cd471841c047d372f218252dbf8ed0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9840000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f619