0 txs
9.6k calls
constructor
constructor()
functions
allowance
purefunction allowance(address, address) pure returns (uint256)
balanceOf
viewfunction balanceOf(address account_) view returns (uint256)
debtIndex
viewfunction debtIndex() view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
getPendingInterestFee
viewfunction getPendingInterestFee() view returns (uint256 _stored, uint256 _current)
governor
viewfunction governor() view returns (address _governor)
interestRate
viewfunction interestRate() view returns (uint256)
interestRatePerSecond
viewfunction interestRatePerSecond() view returns (uint256)
isActive
viewfunction isActive() view returns (bool)
lastTimestampAccrued
viewfunction lastTimestampAccrued() view returns (uint256)
maxTotalSupply
viewfunction maxTotalSupply() view returns (uint256)
name
viewfunction name() view returns (string)
pool
viewfunction pool() view returns (address)
quoteIssueIn
viewfunction quoteIssueIn(uint256 amountToIssue_) view returns (uint256 _amount, uint256 _fee)
quoteIssueOut
viewfunction quoteIssueOut(uint256 amount_) view returns (uint256 _amountToIssue, uint256 _fee)
quoteRepayIn
viewfunction quoteRepayIn(uint256 amountToRepay_) view returns (uint256 _amount, uint256 _fee)
quoteRepayOut
viewfunction quoteRepayOut(uint256 amount_) view returns (uint256 _amountToRepay, uint256 _fee)
SECONDS_PER_YEAR
viewfunction SECONDS_PER_YEAR() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
syntheticToken
viewfunction syntheticToken() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
VERSION
viewfunction VERSION() view returns (string)
accrueInterest
nonpayablefunction accrueInterest()
approve
nonpayablefunction approve(address, uint256) returns (bool)
burn
nonpayablefunction burn(address from_, uint256 amount_)
collectPendingInterestFee
nonpayablefunction collectPendingInterestFee()
flashIssue
nonpayablefunction flashIssue(address to_, uint256 amount_) returns (uint256 _issued, uint256 _fee)
initialize
nonpayablefunction initialize(string name_, string symbol_, address pool_, address syntheticToken_, uint256 interestRate_, uint256 maxTotalSupply_)
issue
nonpayablefunction issue(uint256 amount_, address to_) returns (uint256 _issued, uint256 _fee)
mint
nonpayablefunction mint(address to_, uint256 amount_)
repay
nonpayablefunction repay(address onBehalfOf_, uint256 amount_) returns (uint256 _repaid, uint256 _fee)
repayAll
nonpayablefunction repayAll(address onBehalfOf_) returns (uint256 _repaid, uint256 _fee)
sweep
nonpayablefunction sweep(address token_, address to_, uint256 amount_)
toggleIsActive
nonpayablefunction toggleIsActive()
transfer
nonpayablefunction transfer(address, uint256) returns (bool)
transferFrom
nonpayablefunction transferFrom(address, address, uint256) returns (bool)
updateInterestRate
nonpayablefunction updateInterestRate(uint256 newInterestRate_)
updateMaxTotalSupply
nonpayablefunction updateMaxTotalSupply(uint256 newMaxTotalSupply_)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
DebtRepaid
event DebtRepaid(address indexed payer, address indexed account, uint256 amount, uint256 repaid, uint256 fee)
DebtTokenActiveUpdated
event DebtTokenActiveUpdated(bool newActive)
Initialized
event Initialized(uint8 version)
InterestRateUpdated
event InterestRateUpdated(uint256 oldInterestRate, uint256 newInterestRate)
MaxTotalSupplyUpdated
event MaxTotalSupplyUpdated(uint256 oldMaxTotalSupply, uint256 newMaxTotalSupply)
SyntheticTokenIssued
event SyntheticTokenIssued(address indexed account, address indexed to, uint256 amount, uint256 issued, uint256 fee)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
AllowanceNotSupported
error AllowanceNotSupported()
AmountIsZero
error AmountIsZero()
ApprovalNotSupported
error ApprovalNotSupported()
BurnAmountExceedsBalance
error BurnAmountExceedsBalance()
BurnFromNullAddress
error BurnFromNullAddress()
DebtLowerThanTheFloor
error DebtLowerThanTheFloor()
DebtTokenInactive
error DebtTokenInactive()
FallbackIsNotAllowed
error FallbackIsNotAllowed()
IsShutdown
error IsShutdown()
MintToNullAddress
error MintToNullAddress()
NameIsNull
error NameIsNull()
NewValueIsSameAsCurrent
error NewValueIsSameAsCurrent()
NotEnoughCollateral
error NotEnoughCollateral()
PoolAddressIsNull
error PoolAddressIsNull()
PoolIsNull
error PoolIsNull()
ReceiveIsNotAllowed
error ReceiveIsNotAllowed()
RemainingDebtIsLowerThanTheFloor
error RemainingDebtIsLowerThanTheFloor()
SenderIsNotGovernor
error SenderIsNotGovernor()
SenderIsNotPool
error SenderIsNotPool()
SenderIsNotSmartFarmingManager
error SenderIsNotSmartFarmingManager()
SurpassMaxDebtSupply
error SurpassMaxDebtSupply()
SymbolIsNull
error SymbolIsNull()
SyntheticDoesNotExist
error SyntheticDoesNotExist()
SyntheticIsInactive
error SyntheticIsInactive()
SyntheticIsNull
error SyntheticIsNull()
TransferNotSupported
error TransferNotSupported()
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b62000152565b6200002e60ff62000031565b50565b60008054610100900460ff1615620000ca578160ff1660011480156200006a575062000068306200014360201b620029301760201c565b155b620000c25760405162461bcd60e51b815260206004820152602e602482015260008051602062003e1a83398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b506000919050565b60005460ff808416911610620001295760405162461bcd60e51b815260206004820152602e602482015260008051602062003e1a83398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620000b9565b506000805460ff191660ff92909216919091179055600190565b6001600160a01b03163b151590565b613cb880620001626000396000f3fe6080604052600436106102295760003560e01c8063752a50a611610123578063a9059cbb116100ab578063d25933291161006f578063d259332914610672578063d38f2ba914610687578063dd62ed3e146106a7578063e6a69ab8146106c7578063ffa1ad74146106df57610247565b8063a9059cbb146105e1578063b696a6ad146105fc578063bb8c631f1461061c578063bfa1765614610632578063c9dc4b4d1461065257610247565b80638e84ab22116100f25780638e84ab221461056d57806395d89b41146105825780639cc820da146105975780639dc29fac146105ac578063a6afed95146105cc57610247565b8063752a50a6146104f75780637c27383b146105175780637c3a00fd146105375780638230ecd61461054d57610247565b80632ab4d052116101b15780634754d176116101755780634754d17614610461578063565f3d4f1461048157806362c067671461049757806370a08231146104b757806374e87e1e146104d757610247565b80632ab4d052146103c35780632d4aeea1146103d9578063313ce567146103f957806336248ab41461042c57806340c10f191461044157610247565b8063172f50a4116101f8578063172f50a41461030857806318160ddd1461032a57806322867d781461034d57806322f3e2d41461038257806323b872dd146103a357610247565b806306fdde0314610260578063095ea7b31461028b5780630c340a24146102bb57806316f0115b146102e857610247565b3661024757604051636436c22d60e11b815260040160405180910390fd5b60405163a0152e6360e01b815260040160405180910390fd5b34801561026c57600080fd5b50610275610710565b60405161028291906136a1565b60405180910390f35b34801561029757600080fd5b506102ab6102a63660046136e9565b61079e565b6040519015158152602001610282565b3480156102c757600080fd5b506102d06107b9565b6040516001600160a01b039091168152602001610282565b3480156102f457600080fd5b506002546102d0906001600160a01b031681565b34801561031457600080fd5b50610328610323366004613715565b61083b565b005b34801561033657600080fd5b5061033f6108d7565b604051908152602001610282565b34801561035957600080fd5b5061036d6103683660046136e9565b6108fa565b60408051928352602083019190915201610282565b34801561038e57600080fd5b50603d546102ab90600160a01b900460ff1681565b3480156103af57600080fd5b506102ab6103be36600461372e565b610e1b565b3480156103cf57600080fd5b5061033f60385481565b3480156103e557600080fd5b5061036d6103f4366004613715565b610e36565b34801561040557600080fd5b50603d5461041a90600160a81b900460ff1681565b60405160ff9091168152602001610282565b34801561043857600080fd5b50610328610f6f565b34801561044d57600080fd5b5061032861045c3660046136e9565b611058565b34801561046d57600080fd5b5061036d61047c366004613715565b6113b6565b34801561048d57600080fd5b5061033f603a5481565b3480156104a357600080fd5b506103286104b236600461372e565b6114dd565b3480156104c357600080fd5b5061033f6104d236600461376f565b611516565b3480156104e357600080fd5b506103286104f23660046137d5565b611582565b34801561050357600080fd5b50610328610512366004613715565b611777565b34801561052357600080fd5b5061036d61053236600461376f565b61181b565b34801561054357600080fd5b5061033f603c5481565b34801561055957600080fd5b50603d546102d0906001600160a01b031681565b34801561057957600080fd5b5061036d611b9b565b34801561058e57600080fd5b50610275611bc3565b3480156105a357600080fd5b5061033f611bd0565b3480156105b857600080fd5b506103286105c73660046136e9565b611be4565b3480156105d857600080fd5b50610328611c1d565b3480156105ed57600080fd5b506102ab6103be3660046136e9565b34801561060857600080fd5b5061036d61061736600461387c565b611d6a565b34801561062857600080fd5b5061033f603b5481565b34801561063e57600080fd5b5061036d61064d3660046136e9565b61224b565b34801561065e57600080fd5b5061036d61066d366004613715565b612632565b34801561067e57600080fd5b50610328612751565b34801561069357600080fd5b5061036d6106a2366004613715565b6127eb565b3480156106b357600080fd5b5061033f6106c23660046138ac565b612915565b3480156106d357600080fd5b5061033f6301e187e081565b3480156106eb57600080fd5b5061027560405180604001604052806005815260200164312e332e3160d81b81525081565b6034805461071d906138da565b80601f0160208091040260200160405190810160405280929190818152602001828054610749906138da565b80156107965780601f1061076b57610100808354040283529160200191610796565b820191906000526020600020905b81548152906001019060200180831161077957829003601f168201915b505050505081565b6000604051631b48e8f360e21b815260040160405180910390fd5b6002546040805163030d028960e21b815290516000926001600160a01b031691630c340a24916004808301926020929190829003018186803b1580156107fe57600080fd5b505afa158015610812573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108369190613920565b905090565b6108436107b9565b6001600160a01b0316336001600160a01b03161461087457604051634b98449160e11b815260040160405180910390fd5b6038548181141561089857604051630333a68160e41b815260040160405180910390fd5b60408051828152602081018490527fc58cd6132bb46df23d468939c03dd023b74b509aaa6b04c39d5a6461c65963bd910160405180910390a150603855565b6000806108e261293f565b50509050806039546108f49190613953565b91505090565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663ecf3a3f96040518163ffffffff1660e01b815260040160206040518083038186803b15801561094b57600080fd5b505afa15801561095f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610983919061397b565b156109a157604051631b0e923f60e11b815260040160405180910390fd5b600260015414156109cd5760405162461bcd60e51b81526004016109c490613996565b60405180910390fd5b6002600181905554603d54604051631a0dd00b60e01b81526001600160a01b039182166004820152911690631a0dd00b9060240160206040518083038186803b158015610a1957600080fd5b505afa158015610a2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a51919061397b565b610a6e5760405163a596698b60e01b815260040160405180910390fd5b82610a8c576040516310eb483f60e21b815260040160405180910390fd5b610a94611c1d565b600254603d546001600160a01b039182169116610ab085610e36565b90945092508215610ba457806001600160a01b031663b2a02ff133846001600160a01b031663c415b95c6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0457600080fd5b505afa158015610b18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3c9190613920565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101869052606401600060405180830381600087803b158015610b8b57600080fd5b505af1158015610b9f573d6000803e3d6000fd5b505050505b6000826001600160a01b031663f60928096040518163ffffffff1660e01b815260040160206040518083038186803b158015610bdf57600080fd5b505afa158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1791906139cd565b90508015610d53576000836001600160a01b031663eaada3826040518163ffffffff1660e01b815260040160206040518083038186803b158015610c5a57600080fd5b505afa158015610c6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c929190613920565b6001600160a01b0316638d0dba008488610cab8c611516565b610cb591906139e6565b6040518363ffffffff1660e01b8152600401610cd29291906139fd565b60206040518083038186803b158015610cea57600080fd5b505afa158015610cfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2291906139cd565b9050600081118015610d3357508181105b15610d51576040516332b9d47360e01b815260040160405180910390fd5b505b604051632770a7eb60e21b81526001600160a01b03831690639dc29fac90610d8190339089906004016139fd565b600060405180830381600087803b158015610d9b57600080fd5b505af1158015610daf573d6000803e3d6000fd5b50505050610dbd87866129a4565b60408051878152602081018790529081018590526001600160a01b0388169033907fe02887340b03318642b6755f258294b795be42ed57d4b5d0ef27be3038d8a7649060600160405180910390a35050600180555090939092509050565b600060405163d21ad44b60e01b815260040160405180910390fd5b6000806000600260009054906101000a90046001600160a01b03166001600160a01b0316634066fdea6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8957600080fd5b505afa158015610e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec19190613920565b6001600160a01b0316637c0f59f46040518163ffffffff1660e01b815260040160206040518083038186803b158015610ef957600080fd5b505afa158015610f0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3191906139cd565b905080610f3f575091929050565b610f5b610f5482670de0b6b3a7640000613953565b8590612c1f565b9250610f6783856139e6565b915050915091565b603e54801561105557603d54600254604080516331056e5760e21b815290516001600160a01b03938416936340c10f1993169163c415b95c916004808301926020929190829003018186803b158015610fc757600080fd5b505afa158015610fdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fff9190613920565b836040518363ffffffff1660e01b815260040161101d9291906139fd565b600060405180830381600087803b15801561103757600080fd5b505af115801561104b573d6000803e3d6000fd5b50506000603e5550505b50565b600260009054906101000a90046001600160a01b03166001600160a01b03166396aaccfe6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110a657600080fd5b505afa1580156110ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110de9190613920565b6001600160a01b0316336001600160a01b03161461110f57604051630935fed760e11b815260040160405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663ecf3a3f96040518163ffffffff1660e01b815260040160206040518083038186803b15801561115d57600080fd5b505afa158015611171573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611195919061397b565b156111b357604051631b0e923f60e11b815260040160405180910390fd5b600260015414156111d65760405162461bcd60e51b81526004016109c490613996565b6002600181905554603d54604051631a0dd00b60e01b81526001600160a01b039182166004820152911690631a0dd00b9060240160206040518083038186803b15801561122257600080fd5b505afa158015611236573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125a919061397b565b6112775760405163a596698b60e01b815260040160405180910390fd5b603d60009054906101000a90046001600160a01b03166001600160a01b03166322f3e2d46040518163ffffffff1660e01b815260040160206040518083038186803b1580156112c557600080fd5b505afa1580156112d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fd919061397b565b61131a576040516303127d9160e31b815260040160405180910390fd5b611322611c1d565b60025460408051637556d1c160e11b815290516001600160a01b03909216916113ad918391829163eaada382916004808301926020929190829003018186803b15801561136e57600080fd5b505afa158015611382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a69190613920565b8585612c5c565b50506001805550565b6000806000600260009054906101000a90046001600160a01b03166001600160a01b0316634066fdea6040518163ffffffff1660e01b815260040160206040518083038186803b15801561140957600080fd5b505afa15801561141d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114419190613920565b6001600160a01b0316632a9133c16040518163ffffffff1660e01b815260040160206040518083038186803b15801561147957600080fd5b505afa15801561148d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b191906139cd565b9050806114bf575091929050565b6114c98482613048565b91506114d582856139e6565b925050915091565b6114e5613080565b6001600160a01b038316611502576114fd82826130bb565b505050565b6114fd6001600160a01b03841683836131d4565b6001600160a01b0381166000908152603660205260408120548061153d5750600092915050565b600061154761293f565b506001600160a01b03861660009081526037602052604090205490925090506115708284613a16565b61157a9190613a35565b949350505050565b600061158e600161322a565b905080156115a6576000805461ff0019166101001790555b876115c457604051636e83f50760e01b815260040160405180910390fd5b856115e2576040516330507cff60e11b815260040160405180910390fd5b6001600160a01b03851661160957604051633cb1fb1f60e11b815260040160405180910390fd5b6001600160a01b0384166116305760405163013a1b4360e51b815260040160405180910390fd5b6116386132b7565b611641856132e6565b61164d60348a8a6135d8565b5061165a603588886135d8565b50836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561169457600080fd5b505afa1580156116a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cc9190613a57565b603d805442603a55670de0b6b3a7640000603b55603c86905560388590556001600160a81b031960ff93909316600160a81b02929092166001600160b01b0319909216919091176001600160a01b03861617600160a01b179055801561176c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b61177f6107b9565b6001600160a01b0316336001600160a01b0316146117b057604051634b98449160e11b815260040160405180910390fd5b6117b8611c1d565b603c54818114156117dc57604051630333a68160e41b815260040160405180910390fd5b60408051828152602081018490527f41e376fd99913dea7fda140f5c0bd997515b1a181acc58737320322548ec6e72910160405180910390a150603c55565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663ecf3a3f96040518163ffffffff1660e01b815260040160206040518083038186803b15801561186c57600080fd5b505afa158015611880573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a4919061397b565b156118c257604051631b0e923f60e11b815260040160405180910390fd5b600260015414156118e55760405162461bcd60e51b81526004016109c490613996565b6002600181905554603d54604051631a0dd00b60e01b81526001600160a01b039182166004820152911690631a0dd00b9060240160206040518083038186803b15801561193157600080fd5b505afa158015611945573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611969919061397b565b6119865760405163a596698b60e01b815260040160405180910390fd5b61198e611c1d565b61199783611516565b9150816119b7576040516310eb483f60e21b815260040160405180910390fd5b603d546001600160a01b031660006119ce84612632565b935090508215611ad657816001600160a01b031663b2a02ff133600260009054906101000a90046001600160a01b03166001600160a01b031663c415b95c6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a3657600080fd5b505afa158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613920565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101869052606401600060405180830381600087803b158015611abd57600080fd5b505af1158015611ad1573d6000803e3d6000fd5b505050505b604051632770a7eb60e21b81526001600160a01b03831690639dc29fac90611b0490339088906004016139fd565b600060405180830381600087803b158015611b1e57600080fd5b505af1158015611b32573d6000803e3d6000fd5b50505050611b4085856129a4565b60408051828152602081018690529081018490526001600160a01b0386169033907fe02887340b03318642b6755f258294b795be42ed57d4b5d0ef27be3038d8a7649060600160405180910390a35050600180559092909150565b6000806000611ba861293f565b5050603e54909150611bba8282613953565b92509250509091565b6035805461071d906138da565b60006301e187e0603c546108369190613a35565b6002546001600160a01b03163314611c0f5760405163531f2aa960e11b815260040160405180910390fd5b611c1982826129a4565b5050565b6000806000611c2a61293f565b92509250925080421415611c3d57505050565b42603a5582156114fd578260396000828254611c599190613953565b9091555050603b829055603d54600254604080516331056e5760e21b815290516001600160a01b03938416936340c10f1993169163c415b95c916004808301926020929190829003018186803b158015611cb257600080fd5b505afa158015611cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cea9190613920565b603e54611cf79087613953565b6040518363ffffffff1660e01b8152600401611d149291906139fd565b600060405180830381600087803b158015611d2e57600080fd5b505af1925050508015611d3f575060015b611d605782603e6000828254611d559190613953565b909155506114fd9050565b6000603e55505050565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663ecf3a3f96040518163ffffffff1660e01b815260040160206040518083038186803b158015611dbb57600080fd5b505afa158015611dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df3919061397b565b15611e1157604051631b0e923f60e11b815260040160405180910390fd5b60026001541415611e345760405162461bcd60e51b81526004016109c490613996565b6002600181905554603d54604051631a0dd00b60e01b81526001600160a01b039182166004820152911690631a0dd00b9060240160206040518083038186803b158015611e8057600080fd5b505afa158015611e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb8919061397b565b611ed55760405163a596698b60e01b815260040160405180910390fd5b83611ef3576040516310eb483f60e21b815260040160405180910390fd5b611efb611c1d565b600254603d5460405163dde3ab9560e01b81523360048201526001600160a01b039283169290911690600090839063dde3ab959060240160a06040518083038186803b158015611f4a57600080fd5b505afa158015611f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f829190613a7a565b9450505050506000836001600160a01b031663eaada3826040518163ffffffff1660e01b815260040160206040518083038186803b158015611fc357600080fd5b505afa158015611fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffb9190613920565b60405163b5e9bef560e01b81529091506001600160a01b0382169063b5e9bef59061202c90869086906004016139fd565b60206040518083038186803b15801561204457600080fd5b505afa158015612058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207c91906139cd565b88111561209b5760405162d11df360e61b815260040160405180910390fd5b6120a78482338b612c5c565b6120b0886113b6565b9096509450841561218c57826001600160a01b03166340c10f19856001600160a01b031663c415b95c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561210357600080fd5b505afa158015612117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213b9190613920565b876040518363ffffffff1660e01b81526004016121599291906139fd565b600060405180830381600087803b15801561217357600080fd5b505af1158015612187573d6000803e3d6000fd5b505050505b6040516340c10f1960e01b81526001600160a01b038416906340c10f19906121ba908a908a906004016139fd565b600060405180830381600087803b1580156121d457600080fd5b505af11580156121e8573d6000803e3d6000fd5b5050604080518b8152602081018a90529081018890526001600160a01b038a1692503391507f197d5e1e72d62df9dad3add8609553402104dbeb4f83f9789e33aeb6723a78399060600160405180910390a3505060018055509194909350915050565b600080600260009054906101000a90046001600160a01b03166001600160a01b03166396aaccfe6040518163ffffffff1660e01b815260040160206040518083038186803b15801561229c57600080fd5b505afa1580156122b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d49190613920565b6001600160a01b0316336001600160a01b03161461230557604051630935fed760e11b815260040160405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663ecf3a3f96040518163ffffffff1660e01b815260040160206040518083038186803b15801561235357600080fd5b505afa158015612367573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238b919061397b565b156123a957604051631b0e923f60e11b815260040160405180910390fd5b600260015414156123cc5760405162461bcd60e51b81526004016109c490613996565b6002600181905554603d54604051631a0dd00b60e01b81526001600160a01b039182166004820152911690631a0dd00b9060240160206040518083038186803b15801561241857600080fd5b505afa15801561242c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612450919061397b565b61246d5760405163a596698b60e01b815260040160405180910390fd5b603d54600160a01b900460ff166124975760405163a4382ae360e01b815260040160405180910390fd5b826124b5576040516310eb483f60e21b815260040160405180910390fd5b6124bd611c1d565b603d546001600160a01b03166124d2846113b6565b909350915081156125c357806001600160a01b03166340c10f19600260009054906101000a90046001600160a01b03166001600160a01b031663c415b95c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561253a57600080fd5b505afa15801561254e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125729190613920565b846040518363ffffffff1660e01b81526004016125909291906139fd565b600060405180830381600087803b1580156125aa57600080fd5b505af11580156125be573d6000803e3d6000fd5b505050505b6040516340c10f1960e01b81526001600160a01b038216906340c10f19906125f190889087906004016139fd565b600060405180830381600087803b15801561260b57600080fd5b505af115801561261f573d6000803e3d6000fd5b5050505050600180819055509250929050565b6000806000600260009054906101000a90046001600160a01b03166001600160a01b0316634066fdea6040518163ffffffff1660e01b815260040160206040518083038186803b15801561268557600080fd5b505afa158015612699573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126bd9190613920565b6001600160a01b0316637c0f59f46040518163ffffffff1660e01b815260040160206040518083038186803b1580156126f557600080fd5b505afa158015612709573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272d91906139cd565b90508061273b575091929050565b6127458482613048565b91506114d58285613953565b6127596107b9565b6001600160a01b0316336001600160a01b03161461278a57604051634b98449160e11b815260040160405180910390fd5b603d54604051600160a01b90910460ff1615808252907fb1d9ceb4467fd05a16930f966760d70eb5926cf0c1c19a7b6bfe59d805c190459060200160405180910390a1603d8054911515600160a01b0260ff60a01b19909216919091179055565b6000806000600260009054906101000a90046001600160a01b03166001600160a01b0316634066fdea6040518163ffffffff1660e01b815260040160206040518083038186803b15801561283e57600080fd5b505afa158015612852573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128769190613920565b6001600160a01b0316632a9133c16040518163ffffffff1660e01b815260040160206040518083038186803b1580156128ae57600080fd5b505afa1580156128c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e691906139cd565b9050806128f4575091929050565b612909610f5482670de0b6b3a76400006139e6565b9250610f6784846139e6565b600060405163effde13d60e01b815260040160405180910390fd5b6001600160a01b03163b151590565b603a54603b546000914281101561299f57600061295c82426139e6565b612964611bd0565b61296e9190613a16565b9050801561299d57603954612984908290613048565b93506129908184613048565b61299a9084613953565b92505b505b909192565b816000600260009054906101000a90046001600160a01b03166001600160a01b0316633605b51b6040518163ffffffff1660e01b815260040160006040518083038186803b1580156129f557600080fd5b505afa158015612a09573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a319190810190613ad7565b603d5481519192506001600160a01b03169060005b81811015612adf57838181518110612a6057612a60613b9c565b6020908102919091010151604051626cc3c360e61b81526001600160a01b038581166004830152878116602483015290911690631b30f0c090604401600060405180830381600087803b158015612ab657600080fd5b505af1158015612aca573d6000803e3d6000fd5b5050505080612ad890613bb2565b9050612a46565b506001600160a01b038616612b075760405163170476af60e21b815260040160405180910390fd5b6000612b1287611516565b905085811015612b3557604051630bba337f60e11b815260040160405180910390fd5b6001600160a01b03871660008181526036602090815260408083208a86039055603b546037835281842055603980548b90039055518981529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600086118015612bb15750612baf87611516565b155b15612c1657600254604051631d71be3b60e21b81526001600160a01b038981166004830152909116906375c6f8ec90602401600060405180830381600087803b158015612bfd57600080fd5b505af1158015612c11573d6000803e3d6000fd5b505050505b50505050505050565b600081612c2d600282613a35565b612c3f670de0b6b3a764000086613a16565b612c499190613953565b612c539190613a35565b90505b92915050565b603d54600160a01b900460ff16612c865760405163a4382ae360e01b815260040160405180910390fd5b816000600260009054906101000a90046001600160a01b03166001600160a01b0316633605b51b6040518163ffffffff1660e01b815260040160006040518083038186803b158015612cd757600080fd5b505afa158015612ceb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d139190810190613ad7565b603d5481519192506001600160a01b03169060005b81811015612dc157838181518110612d4257612d42613b9c565b6020908102919091010151604051626cc3c360e61b81526001600160a01b038581166004830152878116602483015290911690631b30f0c090604401600060405180830381600087803b158015612d9857600080fd5b505af1158015612dac573d6000803e3d6000fd5b5050505080612dba90613bb2565b9050612d28565b506001600160a01b038616612de957604051632b61339160e21b815260040160405180910390fd5b6000886001600160a01b031663f60928096040518163ffffffff1660e01b815260040160206040518083038186803b158015612e2457600080fd5b505afa158015612e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e5c91906139cd565b90506000612e6988611516565b9050600082118015612f075750603d5482906001600160a01b03808c1691638d0dba009116612e988b86613953565b6040518363ffffffff1660e01b8152600401612eb59291906139fd565b60206040518083038186803b158015612ecd57600080fd5b505afa158015612ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f0591906139cd565b105b15612f2557604051637e76d52960e11b815260040160405180910390fd5b8660396000828254612f379190613953565b90915550506038546039541115612f6157604051634aed251160e11b815260040160405180910390fd5b612f6b8782613953565b6001600160a01b038916600081815260366020908152604080832094909455603b54603782528483205592518a8152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a380158015612fd75750600087115b1561303c57600254604051631dc2da6d60e21b81526001600160a01b038a811660048301529091169063770b69b490602401600060405180830381600087803b15801561302357600080fd5b505af1158015613037573d6000803e3d6000fd5b505050505b50505050505050505050565b6000821580613055575081155b1561306257506000612c56565b670de0b6b3a7640000613076600282613a35565b612c3f8486613a16565b6130886107b9565b6001600160a01b0316336001600160a01b0316146130b957604051634b98449160e11b815260040160405180910390fd5b565b8047101561310b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016109c4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613158576040519150601f19603f3d011682016040523d82523d6000602084013e61315d565b606091505b50509050806114fd5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016109c4565b6114fd8363a9059cbb60e01b84846040516024016131f39291906139fd565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613356565b60008054610100900460ff1615613271578160ff16600114801561324d5750303b155b6132695760405162461bcd60e51b81526004016109c490613bcd565b506000919050565b60005460ff8084169116106132985760405162461bcd60e51b81526004016109c490613bcd565b506000805460ff191660ff92909216919091179055600190565b919050565b600054610100900460ff166132de5760405162461bcd60e51b81526004016109c490613c1b565b6130b9613428565b600054610100900460ff1661330d5760405162461bcd60e51b81526004016109c490613c1b565b6001600160a01b0381166133345760405163724f500960e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60006133ab826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166134559092919063ffffffff16565b8051909150156114fd57808060200190518101906133c9919061397b565b6114fd5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109c4565b600054610100900460ff1661344f5760405162461bcd60e51b81526004016109c490613c1b565b60018055565b6060613464848460008561346e565b90505b9392505050565b6060824710156134cf5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016109c4565b6001600160a01b0385163b6135265760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109c4565b600080866001600160a01b031685876040516135429190613c66565b60006040518083038185875af1925050503d806000811461357f576040519150601f19603f3d011682016040523d82523d6000602084013e613584565b606091505b509150915061359482828661359f565b979650505050505050565b606083156135ae575081613467565b8251156135be5782518084602001fd5b8160405162461bcd60e51b81526004016109c491906136a1565b8280546135e4906138da565b90600052602060002090601f016020900481019282613606576000855561364c565b82601f1061361f5782800160ff1982351617855561364c565b8280016001018555821561364c579182015b8281111561364c578235825591602001919060010190613631565b5061365892915061365c565b5090565b5b80821115613658576000815560010161365d565b60005b8381101561368c578181015183820152602001613674565b8381111561369b576000848401525b50505050565b60208152600082518060208401526136c0816040850160208701613671565b601f01601f19169190910160400192915050565b6001600160a01b038116811461105557600080fd5b600080604083850312156136fc57600080fd5b8235613707816136d4565b946020939093013593505050565b60006020828403121561372757600080fd5b5035919050565b60008060006060848603121561374357600080fd5b833561374e816136d4565b9250602084013561375e816136d4565b929592945050506040919091013590565b60006020828403121561378157600080fd5b8135613467816136d4565b60008083601f84011261379e57600080fd5b50813567ffffffffffffffff8111156137b657600080fd5b6020830191508360208285010111156137ce57600080fd5b9250929050565b60008060008060008060008060c0898b0312156137f157600080fd5b883567ffffffffffffffff8082111561380957600080fd5b6138158c838d0161378c565b909a50985060208b013591508082111561382e57600080fd5b5061383b8b828c0161378c565b909750955050604089013561384f816136d4565b9350606089013561385f816136d4565b979a969950949793969295929450505060808201359160a0013590565b6000806040838503121561388f57600080fd5b8235915060208301356138a1816136d4565b809150509250929050565b600080604083850312156138bf57600080fd5b82356138ca816136d4565b915060208301356138a1816136d4565b600181811c908216806138ee57607f821691505b6020821081141561390f57634e487b7160e01b600052602260045260246000fd5b50919050565b80516132b2816136d4565b60006020828403121561393257600080fd5b8151613467816136d4565b634e487b7160e01b600052601160045260246000fd5b600082198211156139665761396661393d565b500190565b805180151581146132b257600080fd5b60006020828403121561398d57600080fd5b612c538261396b565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000602082840312156139df57600080fd5b5051919050565b6000828210156139f8576139f861393d565b500390565b6001600160a01b03929092168252602082015260400190565b6000816000190483118215151615613a3057613a3061393d565b500290565b600082613a5257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215613a6957600080fd5b815160ff8116811461346757600080fd5b600080600080600060a08688031215613a9257600080fd5b613a9b8661396b565b602087015160408801516060890151608090990151929a91995097965090945092505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215613aea57600080fd5b825167ffffffffffffffff80821115613b0257600080fd5b818501915085601f830112613b1657600080fd5b815181811115613b2857613b28613ac1565b8060051b604051601f19603f83011681018181108582111715613b4d57613b4d613ac1565b604052918252848201925083810185019188831115613b6b57600080fd5b938501935b82851015613b9057613b8185613915565b84529385019392850192613b70565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415613bc657613bc661393d565b5060010190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251613c78818460208701613671565b919091019291505056fea26469706673582212206f4325fdb3e323479ed432019338a4600264d4f67b933975fe7f03fed6174b1e64736f6c63430008090033496e697469616c697a61626c653a20636f6e747261637420697320616c726561