[ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "fromUser", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toUser", "type": "address" }, { "indexed": false, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "BorrowAllowanceDelegated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "currentBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "balanceIncrease", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "avgStableRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newTotalSupply", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "underlyingAsset", "type": "address" }, { "indexed": true, "internalType": "address", "name": "pool", "type": "address" }, { "indexed": false, "internalType": "address", "name": "incentivesController", "type": "address" }, { "indexed": false, "internalType": "uint8", "name": "debtTokenDecimals", "type": "uint8" }, { "indexed": false, "internalType": "string", "name": "debtTokenName", "type": "string" }, { "indexed": false, "internalType": "string", "name": "debtTokenSymbol", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "params", "type": "bytes" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "address", "name": "onBehalfOf", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "currentBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "balanceIncrease", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "avgStableRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newTotalSupply", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DEBT_TOKEN_REVISION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "POOL", "outputs": [ { "internalType": "contract ILendingPool", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UNDERLYING_ASSET_ADDRESS", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approveDelegation", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "fromUser", "type": "address" }, { "internalType": "address", "name": "toUser", "type": "address" } ], "name": "borrowAllowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getAssetPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAverageStableRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getIncentivesController", "outputs": [ { "internalType": "contract IAaveIncentivesController", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getSupplyData", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint40", "name": "", "type": "uint40" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalSupplyAndAvgRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalSupplyLastUpdated", "outputs": [ { "internalType": "uint40", "name": "", "type": "uint40" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getUserLastUpdated", "outputs": [ { "internalType": "uint40", "name": "", "type": "uint40" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getUserStableRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract ILendingPool", "name": "pool", "type": "address" }, { "internalType": "address", "name": "underlyingAsset", "type": "address" }, { "internalType": "contract IAaveIncentivesController", "name": "incentivesController", "type": "address" }, { "internalType": "uint8", "name": "debtTokenDecimals", "type": "uint8" }, { "internalType": "string", "name": "debtTokenName", "type": "string" }, { "internalType": "string", "name": "debtTokenSymbol", "type": "string" }, { "internalType": "bytes", "name": "params", "type": "bytes" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "address", "name": "onBehalfOf", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "rate", "type": "uint256" } ], "name": "mint", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "principalBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
608060405260006007553480156200001657600080fd5b50604080518082018252600e8082526d111150951513d2d15397d253541360921b60208084018281528551808701909652928552840152815191929160009162000064916003919062000098565b5081516200007a90600490602085019062000098565b506005805460ff191660ff92909216919091179055506200017b9050565b828054620000a6906200013e565b90600052602060002090601f016020900481019282620000ca576000855562000115565b82601f10620000e557805160ff191683800117855562000115565b8280016001018555821562000115579182015b8281111562000115578251825591602001919060010190620000f8565b506200012392915062000127565b5090565b5b8082111562000123576000815560010162000128565b600181811c908216806200015357607f821691505b602082108114156200017557634e487b7160e01b600052602260045260246000fd5b50919050565b611cec806200018b6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80639dc29fac116100f9578063c222ec8a11610097578063e54f088011610071578063e54f0880146103de578063e7484890146103e6578063e78c9b3b146103f5578063f731e9be1461041e57600080fd5b8063c222ec8a146103aa578063c634dfaa146103bd578063dd62ed3e146103d057600080fd5b8063b16a19de116100d3578063b16a19de1461036b578063b3f1c93d1461037c578063b9a7b6221461038f578063c04a8a101461039757600080fd5b80639dc29fac14610348578063a457c2d714610248578063a9059cbb1461035d57600080fd5b806370a0823111610166578063797743381161014057806379774338146102c357806379ce6b8c146102f257806390f6fcf21461033857806395d89b411461034057600080fd5b806370a082311461026e5780637535d2461461028157806375d26413146102ab57600080fd5b806323b872dd116101a257806323b872dd14610220578063313ce5671461023357806339509351146102485780636bd76d241461025b57600080fd5b806306fdde03146101c9578063095ea7b3146101e757806318160ddd1461020a575b600080fd5b6101d161043b565b6040516101de9190611832565b60405180910390f35b6101fa6101f536600461186d565b6104cd565b60405190151581526020016101de565b610212610516565b6040519081526020016101de565b6101fa61022e366004611899565b610528565b60055460405160ff90911681526020016101de565b6101fa61025636600461186d565b61056c565b6102126102693660046118da565b6105b7565b61021261027c366004611913565b6105e4565b60055461010090046001600160a01b03165b6040516001600160a01b0390911681526020016101de565b603f54600160281b90046001600160a01b0316610293565b6102cb610655565b6040805194855260208501939093529183015264ffffffffff1660608201526080016101de565b610322610300366004611913565b6001600160a01b03166000908152603d602052604090205464ffffffffff1690565b60405164ffffffffff90911681526020016101de565b603c54610212565b6101d161068c565b61035b61035636600461186d565b61069b565b005b6101fa61022e36600461186d565b6006546001600160a01b0316610293565b6101fa61038a366004611930565b610999565b610212600181565b61035b6103a536600461186d565b610cb2565b61035b6103b8366004611a73565b610d29565b6102126103cb366004611913565b610eac565b6102126102563660046118da565b610212610eca565b603f5464ffffffffff16610322565b610212610403366004611913565b6001600160a01b03166000908152603e602052604090205490565b610426611021565b604080519283526020830191909152016101de565b60606003805461044a90611b48565b80601f016020809104026020016040519081016040528092919081815260200182805461047690611b48565b80156104c35780601f10610498576101008083540402835291602001916104c3565b820191906000526020600020905b8154815290600101906020018083116104a657829003601f168201915b5050505050905090565b60405162461bcd60e51b81526020600482015260166024820152751054141493d5905317d393d517d4d5541413d495115160521b60448201526000906064015b60405180910390fd5b6000610523603c5461103a565b905090565b60405162461bcd60e51b81526020600482015260166024820152751514905394d1915497d393d517d4d5541413d495115160521b604482015260009060640161050d565b60405162461bcd60e51b815260206004820152601760248201527f414c4c4f57414e43455f4e4f545f535550504f52544544000000000000000000604482015260009060640161050d565b6001600160a01b038083166000908152603b60209081526040808320938516835292905220545b92915050565b6001600160a01b03811660009081526020818152604080832054603e90925282205481610615575060009392505050565b6001600160a01b0384166000908152603d602052604081205461064090839064ffffffffff16611082565b905061064c8382611096565b95945050505050565b6000806000806000603c54905061066b60025490565b6106748261103a565b603f54919790965091945064ffffffffff1692509050565b60606004805461044a90611b48565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b03161460405180604001604052806002815260200161323960f01b815250906106f95760405162461bcd60e51b815260040161050d9190611832565b5060008061070684611151565b92509250506000610715610516565b6001600160a01b0386166000908152603e602052604081205491925090819086841161074a576000603c8190556002556107cc565b61075484886111c0565b600281905591506000610772610769866111cc565b603c5490611096565b905060006107896107828a6111cc565b8490611096565b90508181106107a55760006002819055603c81905594506107c9565b6107c16107b1856111cc565b6107bb84846111c0565b9061122f565b603c81905594505b50505b8587141561080a576001600160a01b0388166000908152603e60209081526040808320839055603d9091529020805464ffffffffff19169055610838565b6001600160a01b0388166000908152603d60205260409020805464ffffffffff19164264ffffffffff161790555b603f805464ffffffffff19164264ffffffffff16179055868511156108d957600061086386896111c0565b9050610870898287611305565b6040805182815260208101899052908101879052606081018390526080810185905260a081018490526001600160a01b038a169081907fc16f4e4ca34d790de4c656c72fd015c667d688f20be64eea360618545c4c530f9060c00160405180910390a35061094e565b60006108e588876111c0565b90506108f289828761144d565b604080518281526020810189905290810187905260608101859052608081018490526001600160a01b038a16907f44bd20a79e993bdcc7cbedf54a3b4d19fb78490124b6b90d04fe3242eea579e89060a00160405180910390a2505b6040518781526000906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050505050565b600554604080518082019091526002815261323960f01b602082015260009161010090046001600160a01b031633146109e55760405162461bcd60e51b815260040161050d9190611832565b50610a186040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b846001600160a01b0316866001600160a01b031614610a3c57610a3c858786611508565b600080610a4887611151565b9250925050610a55610516565b808452603c546080850152610a6a90876115da565b60028190556020840152610a7d866111cc565b6040840152610adb610a97610a9284896115da565b6111cc565b60408501516107bb90610aaa9089611096565b610ad5610ab6876111cc565b6001600160a01b038d166000908152603e602052604090205490611096565b906115da565b60608401819052604080518082019091526002815261373960f01b6020820152906fffffffffffffffffffffffffffffffff1015610b2c5760405162461bcd60e51b815260040161050d9190611832565b5060608301516001600160a01b0388166000908152603e6020908152604080832093909355603d8152919020805464ffffffffff421664ffffffffff199182168117909255603f80549091169091179055830151610bc290610b8d906111cc565b6107bb610ba786604001518961109690919063ffffffff16565b610ad5610bb788600001516111cc565b608089015190611096565b603c8190556080840152610be187610bda88846115da565b8551611305565b6040518681526001600160a01b038816906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3866001600160a01b0316886001600160a01b03167fc16f4e4ca34d790de4c656c72fd015c667d688f20be64eea360618545c4c530f888585886060015189608001518a60200151604051610c9e96959493929190958652602086019490945260408501929092526060840152608083015260a082015260c00190565b60405180910390a350159695505050505050565b336000818152603b602090815260408083206001600160a01b038781168086529190935292208490556006549192917fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e19116604080516001600160a01b039092168252602082018690520160405180910390a35050565b60085460019060ff1615808015610d535750600754821180610d535750600854610100900460ff16155b610db65760405162461bcd60e51b815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201526d195b881a5b9a5d1a585b1a5e995960921b606482015260840161050d565b8015610dd1576008805461ffff191661010117905560078290555b610dda866115e6565b610de3856115fd565b6005805460ff89166001600160a81b0319909116176101006001600160a01b038d811691820292909217909255600680546001600160a01b0319168c8316908117909155603f805465010000000000600160c81b031916600160281b938d1693909302929092179091556040517f40251fbfb6656cfa65a00d7879029fec1fad21d28fdcff2f4f68f52795b74f2c90610e87908c908c908c908c908c908c90611b83565b60405180910390a38015610ea0576008805460ff191690555b50505050505050505050565b6001600160a01b0381166000908152602081905260408120546105de565b600080600560019054906101000a90046001600160a01b03166001600160a01b031663fe65acfe6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f449190611bfa565b90506000816001600160a01b031663fca513a86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faa9190611bfa565b60065460405163b3596f0760e01b81526001600160a01b03918216600482015291925082169063b3596f0790602401602060405180830381865afa158015610ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101a9190611c17565b9250505090565b603c5460009081906110328161103a565b939092509050565b60008061104660025490565b9050806110565750600092915050565b603f5460009061106e90859064ffffffffff16611082565b905061107a8282611096565b949350505050565b600061108f838342611610565b9392505050565b60008215806110a3575081155b156110b0575060006105de565b816110c860026b033b2e3c9fd0803ce8000000611c46565b6110d490600019611c68565b6110de9190611c46565b83111560405180604001604052806002815260200161068760f31b8152509061111a5760405162461bcd60e51b815260040161050d9190611832565b506b033b2e3c9fd0803ce8000000611133600282611c46565b61113d8486611c7f565b6111479190611c9e565b61108f9190611c46565b600080600080611176856001600160a01b031660009081526020819052604090205490565b90508061118e576000806000935093509350506111b9565b60006111a38261119d886105e4565b906111c0565b9050816111b081836115da565b90955093509150505b9193909250565b600061108f8284611c68565b6000806111dd633b9aca0084611c7f565b9050826111ee633b9aca0083611c46565b1460405180604001604052806002815260200161068760f31b815250906112285760405162461bcd60e51b815260040161050d9190611832565b5092915050565b604080518082019091526002815261035360f41b6020820152600090826112695760405162461bcd60e51b815260040161050d9190611832565b506000611277600284611c46565b90506b033b2e3c9fd0803ce800000061129282600019611c68565b61129c9190611c46565b84111560405180604001604052806002815260200161068760f31b815250906112d85760405162461bcd60e51b815260040161050d9190611832565b5082816112f16b033b2e3c9fd0803ce800000087611c7f565b6112fb9190611c9e565b61107a9190611c46565b6001600160a01b03808416600090815260208190526040902054603f549091600160281b909104161561139a57603f54604051639b5a734f60e01b81526001600160a01b038681166004830152600160281b90920490911690639b5a734f90602401600060405180830381600087803b15801561138157600080fd5b505af1158015611395573d6000803e3d6000fd5b505050505b6113a481846115da565b6001600160a01b03808616600090815260208190526040902091909155603f54600160281b9004161561144757603f54604051631d94f24d60e01b81526001600160a01b0386811660048301526024820184905260448201859052600160281b90920490911690631d94f24d90606401600060405180830381600087803b15801561142e57600080fd5b505af1158015611442573d6000803e3d6000fd5b505050505b50505050565b6001600160a01b03808416600090815260208190526040902054603f549091600160281b90910416156114e257603f54604051639b5a734f60e01b81526001600160a01b038681166004830152600160281b90920490911690639b5a734f90602401600060405180830381600087803b1580156114c957600080fd5b505af11580156114dd573d6000803e3d6000fd5b505050505b604080518082019091526002815261038360f41b60208201526113a49082908590611714565b6040805180820182526002815261353960f01b6020808301919091526001600160a01b038087166000908152603b83528481209187168152915291822054611551918490611714565b6001600160a01b038086166000818152603b60209081526040808320948916808452949091529020839055919250907fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e16115b36006546001600160a01b031690565b604080516001600160a01b039092168252602082018690520160405180910390a350505050565b600061108f8284611c9e565b80516115f990600390602084019061174c565b5050565b80516115f990600490602084019061174c565b6000806116248364ffffffffff86166111c0565b905080611640576b033b2e3c9fd0803ce800000091505061108f565b600061164d600183611c68565b905060006002831161166057600061166b565b61166b600284611c68565b9050600061167d6301e1338089611c46565b9050600061168b8280611096565b905060006116998284611096565b9050600060026116b3846116ad8a8a611740565b90611740565b6116bd9190611c46565b9050600060066116d3846116ad89818d8d611740565b6116dd9190611c46565b905061170481610ad584816116f28a8e611740565b6b033b2e3c9fd0803ce8000000610ad5565b9c9b505050505050505050505050565b600081848411156117385760405162461bcd60e51b815260040161050d9190611832565b505050900390565b600061108f8284611c7f565b82805461175890611b48565b90600052602060002090601f01602090048101928261177a57600085556117c0565b82601f1061179357805160ff19168380011785556117c0565b828001600101855582156117c0579182015b828111156117c05782518255916020019190600101906117a5565b506117cc9291506117d0565b5090565b5b808211156117cc57600081556001016117d1565b6000815180845260005b8181101561180b576020818501810151868301820152016117ef565b8181111561181d576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061108f60208301846117e5565b6001600160a01b038116811461185a57600080fd5b50565b803561186881611845565b919050565b6000806040838503121561188057600080fd5b823561188b81611845565b946020939093013593505050565b6000806000606084860312156118ae57600080fd5b83356118b981611845565b925060208401356118c981611845565b929592945050506040919091013590565b600080604083850312156118ed57600080fd5b82356118f881611845565b9150602083013561190881611845565b809150509250929050565b60006020828403121561192557600080fd5b813561108f81611845565b6000806000806080858703121561194657600080fd5b843561195181611845565b9350602085013561196181611845565b93969395505050506040820135916060013590565b803560ff8116811461186857600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f8301126119ae57600080fd5b813567ffffffffffffffff808211156119c9576119c9611987565b604051601f8301601f19908116603f011681019082821181831017156119f1576119f1611987565b81604052838152866020858801011115611a0a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f840112611a3c57600080fd5b50813567ffffffffffffffff811115611a5457600080fd5b602083019150836020828501011115611a6c57600080fd5b9250929050565b60008060008060008060008060e0898b031215611a8f57600080fd5b8835611a9a81611845565b97506020890135611aaa81611845565b9650611ab860408a0161185d565b9550611ac660608a01611976565b9450608089013567ffffffffffffffff80821115611ae357600080fd5b611aef8c838d0161199d565b955060a08b0135915080821115611b0557600080fd5b611b118c838d0161199d565b945060c08b0135915080821115611b2757600080fd5b50611b348b828c01611a2a565b999c989b5096995094979396929594505050565b600181811c90821680611b5c57607f821691505b60208210811415611b7d57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038716815260ff8616602082015260a060408201819052600090611bb0908301876117e5565b8281036060840152611bc281876117e5565b90508281036080840152838152838560208301376000602085830101526020601f19601f860116820101915050979650505050505050565b600060208284031215611c0c57600080fd5b815161108f81611845565b600060208284031215611c2957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082611c6357634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611c7a57611c7a611c30565b500390565b6000816000190483118215151615611c9957611c99611c30565b500290565b60008219821115611cb157611cb1611c30565b50019056fea2646970667358221220bc5d43f1e71866f2c0a829ba192372ac8d36f20195c42538d65db16e981e0b9d64736f6c634300080c0033