0 txs
1 call
constructor
constructor(address underlying_, address comptroller_, address interestRateModel_, uint256 initialExchangeRateMantissa_, string name_, string symbol_, uint8 decimals_, address admin_, address implementation_, bytes becomeImplementationData)
functions
accrualBlockTimestamp
viewfunction accrualBlockTimestamp() view returns (uint256)
admin
viewfunction admin() view returns (address)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
borrowBalanceStored
viewfunction borrowBalanceStored(address account) view returns (uint256)
borrowIndex
viewfunction borrowIndex() view returns (uint256)
borrowRatePerTimestamp
viewfunction borrowRatePerTimestamp() view returns (uint256)
comptroller
viewfunction comptroller() view returns (address)
decimals
viewfunction decimals() view returns (uint8)
delegateToViewImplementation
viewfunction delegateToViewImplementation(bytes data) view returns (bytes)
exchangeRateStored
viewfunction exchangeRateStored() view returns (uint256)
getAccountSnapshot
viewfunction getAccountSnapshot(address account) view returns (uint256, uint256, uint256, uint256)
getCash
viewfunction getCash() view returns (uint256)
implementation
viewfunction implementation() view returns (address)
interestRateModel
viewfunction interestRateModel() view returns (address)
isMToken
viewfunction isMToken() view returns (bool)
name
viewfunction name() view returns (string)
pendingAdmin
viewfunction pendingAdmin() view returns (address)
protocolSeizeShareMantissa
viewfunction protocolSeizeShareMantissa() view returns (uint256)
reserveFactorMantissa
viewfunction reserveFactorMantissa() view returns (uint256)
supplyRatePerTimestamp
viewfunction supplyRatePerTimestamp() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalBorrows
viewfunction totalBorrows() view returns (uint256)
totalReserves
viewfunction totalReserves() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
underlying
viewfunction underlying() view returns (address)
_acceptAdmin
nonpayablefunction _acceptAdmin() returns (uint256)
_addReserves
nonpayablefunction _addReserves(uint256 addAmount) returns (uint256)
_reduceReserves
nonpayablefunction _reduceReserves(uint256 reduceAmount) returns (uint256)
_setComptroller
nonpayablefunction _setComptroller(address newComptroller) returns (uint256)
_setImplementation
nonpayablefunction _setImplementation(address implementation_, bool allowResign, bytes becomeImplementationData)
_setInterestRateModel
nonpayablefunction _setInterestRateModel(address newInterestRateModel) returns (uint256)
_setPendingAdmin
nonpayablefunction _setPendingAdmin(address newPendingAdmin) returns (uint256)
_setProtocolSeizeShare
nonpayablefunction _setProtocolSeizeShare(uint256 newProtocolSeizeShareMantissa) returns (uint256)
_setReserveFactor
nonpayablefunction _setReserveFactor(uint256 newReserveFactorMantissa) returns (uint256)
accrueInterest
nonpayablefunction accrueInterest() returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
balanceOfUnderlying
nonpayablefunction balanceOfUnderlying(address owner) returns (uint256)
borrow
nonpayablefunction borrow(uint256 borrowAmount) returns (uint256)
borrowBalanceCurrent
nonpayablefunction borrowBalanceCurrent(address account) returns (uint256)
delegateToImplementation
nonpayablefunction delegateToImplementation(bytes data) returns (bytes)
exchangeRateCurrent
nonpayablefunction exchangeRateCurrent() returns (uint256)
liquidateBorrow
nonpayablefunction liquidateBorrow(address borrower, uint256 repayAmount, address mTokenCollateral) returns (uint256)
mint
nonpayablefunction mint(uint256 mintAmount) returns (uint256)
mintWithPermit
nonpayablefunction mintWithPermit(uint256 mintAmount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns (uint256)
redeem
nonpayablefunction redeem(uint256 redeemTokens) returns (uint256)
redeemUnderlying
nonpayablefunction redeemUnderlying(uint256 redeemAmount) returns (uint256)
repayBorrow
nonpayablefunction repayBorrow(uint256 repayAmount) returns (uint256)
repayBorrowBehalf
nonpayablefunction repayBorrowBehalf(address borrower, uint256 repayAmount) returns (uint256)
seize
nonpayablefunction seize(address liquidator, address borrower, uint256 seizeTokens) returns (uint256)
sweepToken
nonpayablefunction sweepToken(address token)
totalBorrowsCurrent
nonpayablefunction totalBorrowsCurrent() returns (uint256)
transfer
nonpayablefunction transfer(address dst, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address src, address dst, uint256 amount) returns (bool)
events
AccrueInterest
event AccrueInterest(uint256 cashPrior, uint256 interestAccumulated, uint256 borrowIndex, uint256 totalBorrows)
Approval
event Approval(address indexed owner, address indexed spender, uint256 amount)
Borrow
event Borrow(address borrower, uint256 borrowAmount, uint256 accountBorrows, uint256 totalBorrows)
LiquidateBorrow
event LiquidateBorrow(address liquidator, address borrower, uint256 repayAmount, address mTokenCollateral, uint256 seizeTokens)
Mint
event Mint(address minter, uint256 mintAmount, uint256 mintTokens)
NewAdmin
event NewAdmin(address oldAdmin, address newAdmin)
NewComptroller
event NewComptroller(address oldComptroller, address newComptroller)
NewImplementation
event NewImplementation(address oldImplementation, address newImplementation)
NewMarketInterestRateModel
event NewMarketInterestRateModel(address oldInterestRateModel, address newInterestRateModel)
NewPendingAdmin
event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin)
NewProtocolSeizeShare
event NewProtocolSeizeShare(uint256 oldProtocolSeizeShareMantissa, uint256 newProtocolSeizeShareMantissa)
NewReserveFactor
event NewReserveFactor(uint256 oldReserveFactorMantissa, uint256 newReserveFactorMantissa)
Redeem
event Redeem(address redeemer, uint256 redeemAmount, uint256 redeemTokens)
RepayBorrow
event RepayBorrow(address payer, address borrower, uint256 repayAmount, uint256 accountBorrows, uint256 totalBorrows)
ReservesAdded
event ReservesAdded(address benefactor, uint256 addAmount, uint256 newTotalReserves)
ReservesReduced
event ReservesReduced(address admin, uint256 reduceAmount, uint256 newTotalReserves)
Transfer
event Transfer(address indexed from, address indexed to, uint256 amount)
errors
No errors.
creation bytecode
0x60806040523480156200005e5760405162461bcd60e51b815260206004820152602260248201527f45746865722073656e7420746f206e6f6e2d70617961626c652066756e637469604482019081526137b760f11b6064830152608482fd5b50604051620032193803806200321983398101604081905262000081916200059d565b60038054610100600160a81b0319163361010002179055604051620000f2908390620000be908d908d908d908d908d908d908d90602401620006ed565b60408051601f198184030181529190526020810180516001600160e01b03908116631a31d46560e01b179091526200013716565b506200010182600083620001b3565b5050600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055506200079095505050505050565b6060600080846001600160a01b03168460405162000156919062000756565b600060405180830381855af49150503d806000811462000193576040519150601f19603f3d011682016040523d82523d6000602084013e62000198565b606091505b50909250905081620001ab573d60208201fd5b949350505050565b60035461010090046001600160a01b031633146200023d5760405162461bcd60e51b815260206004820152603960248201527f4d457263323044656c656761746f723a3a5f736574496d706c656d656e74617460448201527f696f6e3a2043616c6c6572206d7573742062652061646d696e00000000000000606482015260840160405180910390fd5b81156200027f576040805160048152602481019091526020810180516001600160e01b0390811663153ab50560e01b179091526200027d91906200033a16565b505b601380546001600160a01b038581166001600160a01b0319831617909255604051911690620002ec90620002b890849060240162000774565b60408051601f198184030181529190526020810180516001600160e01b03908116630adccee560e31b179091526200033a16565b50601354604080516001600160a01b03808516825290921660208301527fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a150505050565b60135460609062000355906001600160a01b03168362000137565b92915050565b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a207475706c65206461746120746f6f2073686f6044820152611c9d60f21b6064820152608481fd5b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a20696e76616c6964207475706c65206f666673604482015261195d60f21b6064820152608481fd5b80516001600160a01b03811681146200041357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200044b57818101518382015260200162000431565b50506000910152565b600082601f830112620004ba5760405162461bcd60e51b815260206004820152602b60248201527f414249206465636f64696e673a20696e76616c69642063616c6c64617461206160448201526a1c9c985e481bd9999cd95d60aa1b6064820152608481fd5b81516001600160401b0380821115620004d757620004d762000418565b604051601f8301601f19908116603f0116810190828211818310171562000502576200050262000418565b816040528381528660208588010111156200056e5760405162461bcd60e51b815260206004820152602760248201527f414249206465636f64696e673a20696e76616c69642062797465206172726179604482015266040d8cadccee8d60cb1b60648201529250608483fd5b620005818460208301602089016200042e565b9695505050505050565b805160ff811681146200041357600080fd5b6000806000806000806000806000806101408b8d031215620005c357620005c36200035b565b620005ce8b620003fb565b9950620005de60208c01620003fb565b9850620005ee60408c01620003fb565b60608c015160808d015191995097506001600160401b0380821115620006185762000618620003ab565b620006268e838f0162000454565b975060a08d0151915080821115620006425762000642620003ab565b620006508e838f0162000454565b96506200066060c08e016200058b565b95506200067060e08e01620003fb565b9450620006816101008e01620003fb565b93506101208d01519150808211156200069e576200069e620003ab565b50620006ad8d828e0162000454565b9150509295989b9194979a5092959850565b60008151808452620006d98160208601602086016200042e565b601f01601f19169290920160200192915050565b6001600160a01b0388811682528781166020830152861660408201526060810185905260e0608082018190526000906200072a90830186620006bf565b82810360a08401526200073e8186620006bf565b91505060ff831660c083015298975050505050505050565b600082516200076a8184602087016200042e565b9190910192915050565b602081526000620007896020830184620006bf565b9392505050565b612a7980620007a06000396000f3fe6080604052600436106102655760003560e01c806306fdde03146103555780630933c1ed146103bb578063095ea7b3146104165780630e75270214610481578063173b9904146104ea57806317bfdfbc1461053b57806318160ddd14610596578063182df0f5146105e75780631be195601461063757806323b872dd146106925780632608f818146106ed5780632678224714610748578063313ce567146107b05780633af9e669146108175780633b1d21a2146108725780633e941010146108c25780634487152f1461091d5780634576b5db1461097857806347bd3718146109d3578063555bcc4014610a245780635c60da1b14610a7f5780635fe3b56714610ada578063601a0bf114610b355780636752e70214610b90578063699cd5e214610be15780636f307dc314610c3157806370a0823114610c8c57806373acee9814610ce75780638303084614610d37578063852a12e314610d925780638f840ddd14610ded57806395d89b4114610e3e57806395dd919314610e8e578063a0712d6814610ee9578063a6afed9514610f44578063a9059cbb14610f94578063aa5af0fd14610fef578063b2a02ff114611040578063b71d1a0c1461109b578063bd6d894d146110f6578063c37f68e214611146578063c5ebeaec146111c1578063cd91801c1461121c578063cfa992011461126c578063d0248fb4146112bd578063d3bd2c7214611318578063db006a7514611368578063dd62ed3e146113c3578063e9c714f21461141e578063f2b3abbd1461146e578063f3fdb15a146114c9578063f5e3c46214611524578063f851a4401461157f578063fca7820b146115df575b34156102d85760405162461bcd60e51b815260206004820152603760248201527f4d457263323044656c656761746f723a66616c6c6261636b3a2063616e6e6f746044820152762073656e642076616c756520746f2066616c6c6261636b60481b60648201526084015b60405180910390fd5b6013546040516000916001600160a01b0316906102f890839036906123a1565b600060405180830381855af49150503d8060008114610333576040519150601f19603f3d011682016040523d82523d6000602084013e610338565b606091505b505090506040513d6000823e81801561034f573d82f35b3d82fd5b005b34801561039c5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506103a561163a565b6040516103b29190612401565b60405180910390f35b3480156104025760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506103a561041136600461262b565b6116c8565b34801561045d5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b5061047161046c36600461267d565b6116e7565b60405190151581526020016103b2565b3480156104c85760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc6104d73660046126ac565b61174d565b6040519081526020016103b2565b3480156105315760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc60085481565b3480156105825760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc6105913660046126c8565b6117b2565b3480156105dd5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc600d5481565b34801561062e5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc6117f8565b34801561067e5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b5061035361068d3660046126c8565b61184b565b3480156106d95760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104716106e83660046126e8565b611891565b3480156107345760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc61074336600461267d565b6118fa565b34801561078f5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506004546107a3906001600160a01b031681565b6040516103b2919061272c565b3480156107f75760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506003546108059060ff1681565b60405160ff90911681526020016103b2565b34801561085e5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc61086d3660046126c8565b611958565b3480156108b95760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc61199e565b3480156109095760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc6109183660046126ac565b6119d5565b3480156109645760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506103a561097336600461262b565b611a1d565b3480156109bf5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc6109ce3660046126c8565b611ad8565b348015610a1a5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc600b5481565b348015610a6b5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b50610353610a7a36600461274e565b611b1e565b348015610ac65760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506013546107a3906001600160a01b031681565b348015610b215760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506005546107a3906001600160a01b031681565b348015610b7c5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc610b8b3660046126ac565b611c8a565b348015610bd75760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc60115481565b348015610c285760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b50610471600181565b348015610c785760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506012546107a3906001600160a01b031681565b348015610cd35760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc610ce23660046126c8565b611cd2565b348015610d2e5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc611d18565b348015610d7e5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc610d8d3660046126ac565b611d4f565b348015610dd95760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc610de83660046126ac565b611d97565b348015610e345760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc600c5481565b348015610e855760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506103a5611ddf565b348015610ed55760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc610ee43660046126c8565b611dec565b348015610f305760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc610f3f3660046126ac565b611e32565b348015610f8b5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc611e7a565b348015610fdb5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b50610471610fea36600461267d565b611eb1565b3480156110365760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc600a5481565b3480156110875760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc6110963660046126e8565b611ef9565b3480156110e25760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc6110f13660046126c8565b611f59565b34801561113d5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc611f9f565b34801561118d5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506111a161119c3660046126c8565b611fd6565b6040805194855260208501939093529183015260608201526080016103b2565b3480156112085760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc6112173660046126ac565b612047565b3480156112635760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc61208f565b3480156112b35760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc60095481565b3480156113045760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc6113133660046127b5565b6120c6565b34801561135f5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc61214a565b3480156113af5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc6113be3660046126ac565b612181565b34801561140a5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc611419366004612807565b6121c9565b3480156114655760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc612211565b3480156114b55760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc6114c43660046126c8565b612248565b3480156115105760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506006546107a3906001600160a01b031681565b34801561156b5760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc61157a366004612843565b61228e565b3480156115c65760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506003546107a39061010090046001600160a01b031681565b3480156116265760405162461bcd60e51b81526020600482015260226024820152600080516020612a24833981519152604482019081526137b760f11b6064830152608482fd5b506104dc6116353660046126ac565b6122ea565b6001805461164790612888565b80601f016020809104026020016040519081016040528092919081815260200182805461167390612888565b80156116c05780601f10611695576101008083540402835291602001916116c0565b820191906000526020600020905b8154815290600101906020018083116116a357829003601f168201915b505050505081565b6013546060906116e1906001600160a01b031683612332565b92915050565b60008061172f84846040516024016117009291906128c2565b60408051601f198184030181529190526020810180516001600160e01b031663095ea7b360e01b1790526116c8565b90508080602001905181019061174591906128db565b949350505050565b6000806117958360405160240161176691815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663073a938160e11b1790526116c8565b9050808060200190518101906117ab91906128fb565b9392505050565b600080611795836040516024016117c9919061272c565b60408051601f198184030181529190526020810180516001600160e01b03166305eff7ef60e21b1790526116c8565b6040805160048152602481019091526020810180516001600160e01b031663182df0f560e01b179052600090819061182f90611a1d565b90508080602001905181019061184591906128fb565b91505090565b61188d8160405160240161185f919061272c565b60408051601f198184030181529190526020810180516001600160e01b031662df0cab60e51b1790526116c8565b5050565b6000806118db8585856040516024016118ac93929190612917565b60408051601f198184030181529190526020810180516001600160e01b03166323b872dd60e01b1790526116c8565b9050808060200190518101906118f191906128db565b95945050505050565b60008061194284846040516024016119139291906128c2565b60408051601f198184030181529190526020810180516001600160e01b03166304c11f0360e31b1790526116c8565b90508080602001905181019061174591906128fb565b6000806117958360405160240161196f919061272c565b60408051601f198184030181529190526020810180516001600160e01b0316633af9e66960e01b1790526116c8565b6040805160048152602481019091526020810180516001600160e01b0316631d8e90d160e11b179052600090819061182f90611a1d565b600080611795836040516024016119ee91815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166303e9410160e41b1790526116c8565b6060600080306001600160a01b031684604051602401611a3d9190612401565b60408051601f198184030181529181526020820180516001600160e01b0316630933c1ed60e01b17905251611a72919061293b565b600060405180830381855afa9150503d8060008114611aad576040519150601f19603f3d011682016040523d82523d6000602084013e611ab2565b606091505b50909250905081611ac4573d60208201fd5b808060200190518101906117459190612957565b60008061179583604051602401611aef919061272c565b60408051601f198184030181529190526020810180516001600160e01b0316634576b5db60e01b1790526116c8565b60035461010090046001600160a01b03163314611b9f5760405162461bcd60e51b815260206004820152603960248201527f4d457263323044656c656761746f723a3a5f736574496d706c656d656e74617460448201527834b7b71d1021b0b63632b91036bab9ba1031329030b236b4b760391b60648201526084016102cf565b8115611bd9576040805160048152602481019091526020810180516001600160e01b031663153ab50560e01b179052611bd7906116c8565b505b601380546001600160a01b038581166001600160a01b0319831617909255604051911690611c3e90611c0f908490602401612401565b60408051601f198184030181529190526020810180516001600160e01b0316630adccee560e31b1790526116c8565b506013546040517fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a91611c7c9184916001600160a01b0316906129d0565b60405180910390a150505050565b60008061179583604051602401611ca391815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663601a0bf160e01b1790526116c8565b60008061179583604051602401611ce9919061272c565b60408051601f198184030181529190526020810180516001600160e01b03166370a0823160e01b179052611a1d565b6040805160048152602481019091526020810180516001600160e01b0316630e759dd360e31b179052600090819061182f906116c8565b60008061179583604051602401611d6891815260200190565b60408051601f198184030181529190526020810180516001600160e01b0316634181842360e11b1790526116c8565b60008061179583604051602401611db091815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663852a12e360e01b1790526116c8565b6002805461164790612888565b60008061179583604051602401611e03919061272c565b60408051601f198184030181529190526020810180516001600160e01b03166395dd919360e01b179052611a1d565b60008061179583604051602401611e4b91815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663140e25ad60e31b1790526116c8565b6040805160048152602481019091526020810180516001600160e01b031663a6afed9560e01b179052600090819061182f906116c8565b60008061172f8484604051602401611eca9291906128c2565b60408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b1790526116c8565b600080611f43858585604051602401611f1493929190612917565b60408051601f198184030181529190526020810180516001600160e01b031663b2a02ff160e01b1790526116c8565b9050808060200190518101906118f191906128fb565b60008061179583604051602401611f70919061272c565b60408051601f198184030181529190526020810180516001600160e01b0316632dc7468360e21b1790526116c8565b6040805160048152602481019091526020810180516001600160e01b031663bd6d894d60e01b179052600090819061182f906116c8565b600080600080600061202186604051602401611ff2919061272c565b60408051601f198184030181529190526020810180516001600160e01b03166361bfb47160e11b179052611a1d565b90508080602001905181019061203791906129ea565b9450945094509450509193509193565b6000806117958360405160240161206091815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663317afabb60e21b1790526116c8565b6040805160048152602481019091526020810180516001600160e01b0316633364600760e21b179052600090819061182f90611a1d565b604051602481018690526044810185905260ff841660648201526084810183905260a4810182905260009081906121299060c40160408051601f198184030181529190526020810180516001600160e01b031663340923ed60e21b1790526116c8565b90508080602001905181019061213f91906128fb565b979650505050505050565b6040805160048152602481019091526020810180516001600160e01b03166369de963960e11b179052600090819061182f90611a1d565b6000806117958360405160240161219a91815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663db006a7560e01b1790526116c8565b60008061194284846040516024016121e29291906129d0565b60408051601f198184030181529190526020810180516001600160e01b0316636eb1769f60e11b179052611a1d565b6040805160048152602481019091526020810180516001600160e01b03166374e38a7960e11b179052600090819061182f906116c8565b6000806117958360405160240161225f919061272c565b60408051601f198184030181529190526020810180516001600160e01b031663f2b3abbd60e01b1790526116c8565b6040516001600160a01b03808516602483015260448201849052821660648201526000908190611f439060840160408051601f198184030181529190526020810180516001600160e01b0316637af1e23160e11b1790526116c8565b6000806117958360405160240161230391815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663fca7820b60e01b1790526116c8565b6060600080846001600160a01b03168460405161234f919061293b565b600060405180830381855af49150503d806000811461238a576040519150601f19603f3d011682016040523d82523d6000602084013e61238f565b606091505b50909250905081611745573d60208201fd5b8183823760009101908152919050565b60005b838110156123cc5781810151838201526020016123b4565b50506000910152565b600081518084526123ed8160208601602086016123b1565b601f01601f19169290920160200192915050565b6020815260006117ab60208301846123d5565b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a207475706c65206461746120746f6f2073686f6044820152611c9d60f21b6064820152608481fd5b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a20696e76616c6964207475706c65206f666673604482015261195d60f21b6064820152608481fd5b60405162461bcd60e51b815260206004820152602b60248201527f414249206465636f64696e673a20696e76616c69642063616c6c64617461206160448201526a1c9c985e481bd9999cd95d60aa1b6064820152608481fd5b60405162461bcd60e51b815260206004820152602760248201527f414249206465636f64696e673a20696e76616c69642062797465206172726179604482015266040d8cadccee8d60cb1b6064820152608481fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156125a0576125a0612562565b604052919050565b60006001600160401b038211156125c1576125c1612562565b50601f01601f191660200190565b600082601f8301126125e3576125e36124b4565b81356125f66125f1826125a8565b612578565b81815284602083860101111561260e5761260e61250d565b816020850160208301376000918101602001919091529392505050565b60006020828403121561264057612640612414565b81356001600160401b0381111561265957612659612464565b611745848285016125cf565b6001600160a01b038116811461267a57600080fd5b50565b6000806040838503121561269357612693612414565b823561269e81612665565b946020939093013593505050565b6000602082840312156126c1576126c1612414565b5035919050565b6000602082840312156126dd576126dd612414565b81356117ab81612665565b60008060006060848603121561270057612700612414565b833561270b81612665565b9250602084013561271b81612665565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b801515811461267a57600080fd5b60008060006060848603121561276657612766612414565b833561277181612665565b9250602084013561278181612740565b915060408401356001600160401b0381111561279f5761279f612464565b6127ab868287016125cf565b9150509250925092565b600080600080600060a086880312156127d0576127d0612414565b8535945060208601359350604086013560ff811681146127ef57600080fd5b94979396509394606081013594506080013592915050565b6000806040838503121561281d5761281d612414565b823561282881612665565b9150602083013561283881612665565b809150509250929050565b60008060006060848603121561285b5761285b612414565b833561286681612665565b925060208401359150604084013561287d81612665565b809150509250925092565b600181811c9082168061289c57607f821691505b6020821081036128bc57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b03929092168252602082015260400190565b6000602082840312156128f0576128f0612414565b81516117ab81612740565b60006020828403121561291057612910612414565b5051919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000825161294d8184602087016123b1565b9190910192915050565b60006020828403121561296c5761296c612414565b81516001600160401b0381111561298557612985612464565b8201601f81018413612999576129996124b4565b80516129a76125f1826125a8565b8181528560208385010111156129bf576129bf61250d565b6118f18260208301602086016123b1565b6001600160a01b0392831681529116602082015260400190565b60008060008060808587031215612a0357612a03612414565b50508251602084015160408501516060909501519196909550909250905056fe45746865722073656e7420746f206e6f6e2d70617961626c652066756e637469a26469706673582212208b37fc03a8a9185207967e131636cff94924407ce5ddfacd059ae6931bd7e6d864736f6c6343000813003300000000000000000000000001bff41798a0bcf287b996046ca68b395dbc1071000000000000000000000000ca889f40aae37fff165bccf69aef1e82b5c511b9000000000000000000000000eb7605508225517fe289c46406999f31b96c3b4a0000000000000000000000000000000000000000000000000000b5e620f4800000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000800000000000000000000000017c9ba3fda7ec71ccfd75f978ef31e21927aff3d000000000000000000000000a9ce0a4de55791c5792b50531b18befc30b09dcc00000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000e4d6f6f6e77656c6c20555344543000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066d555344543000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000