0 txs
0 calls
constructor
No constructor.
functions
cDaiToken
purefunction cDaiToken() pure returns (address)
compToken
purefunction compToken() pure returns (address)
comptroller
purefunction comptroller() pure returns (address)
dailyLimit
viewfunction dailyLimit() view returns (uint256)
daiToken
purefunction daiToken() pure returns (address)
decimalShift
viewfunction decimalShift() view returns (int256)
deployedAtBlock
viewfunction deployedAtBlock() view returns (uint256)
erc20token
viewfunction erc20token() view returns (address)
executionDailyLimit
viewfunction executionDailyLimit() view returns (uint256)
executionMaxPerTx
viewfunction executionMaxPerTx() view returns (uint256)
gasPrice
viewfunction gasPrice() view returns (uint256)
getBridgeInterfacesVersion
purefunction getBridgeInterfacesVersion() pure returns (uint64 major, uint64 minor, uint64 patch)
getBridgeMode
purefunction getBridgeMode() pure returns (bytes4 _data)
getCurrentDay
viewfunction getCurrentDay() view returns (uint256)
getTrustedForwarder
viewfunction getTrustedForwarder() view returns (address)
interestAmount
viewfunction interestAmount(address _token) view returns (uint256)
interestReceiver
viewfunction interestReceiver(address _token) view returns (address)
investedAmount
viewfunction investedAmount(address _token) view returns (uint256)
isInitialized
viewfunction isInitialized() view returns (bool)
isInterestEnabled
viewfunction isInterestEnabled(address _token) view returns (bool)
isTrustedForwarder
viewfunction isTrustedForwarder(address forwarder) view returns (bool)
maxAvailablePerTx
viewfunction maxAvailablePerTx() view returns (uint256)
maxPerTx
viewfunction maxPerTx() view returns (uint256)
minCashThreshold
viewfunction minCashThreshold(address _token) view returns (uint256)
minInterestPaid
viewfunction minInterestPaid(address _token) view returns (uint256)
minPerTx
viewfunction minPerTx() view returns (uint256)
owner
viewfunction owner() view returns (address)
relayedMessages
viewfunction relayedMessages(bytes32 _txHash) view returns (bool)
requiredBlockConfirmations
viewfunction requiredBlockConfirmations() view returns (uint256)
requiredSignatures
viewfunction requiredSignatures() view returns (uint256)
totalExecutedPerDay
viewfunction totalExecutedPerDay(uint256 _day) view returns (uint256)
totalSpentPerDay
viewfunction totalSpentPerDay(uint256 _day) view returns (uint256)
validatorContract
viewfunction validatorContract() view returns (address)
versionRecipient
viewfunction versionRecipient() view returns (string)
withinExecutionLimit
viewfunction withinExecutionLimit(uint256 _amount) view returns (bool)
withinLimit
viewfunction withinLimit(uint256 _amount) view returns (bool)
claimCompAndPay
nonpayablefunction claimCompAndPay()
claimTokens
nonpayablefunction claimTokens(address _token, address _to)
disableInterest
nonpayablefunction disableInterest(address _token)
executeSignatures
nonpayablefunction executeSignatures(bytes message, bytes signatures)
executeSignaturesGSN
nonpayablefunction executeSignaturesGSN(bytes message, bytes signatures, uint256 maxTokensFee)
initialize
nonpayablefunction initialize(address _validatorContract, address _erc20token, uint256 _requiredBlockConfirmations, uint256 _gasPrice, uint256[3] _dailyLimitMaxPerTxMinPerTxArray, uint256[2] _homeDailyLimitHomeMaxPerTxArray, address _owner, int256 _decimalShift, address _bridgeOnOtherSide) returns (bool)
initializeInterest
nonpayablefunction initializeInterest(address _token, uint256 _minCashThreshold, uint256 _minInterestPaid, address _interestReceiver)
invest
nonpayablefunction invest(address _token)
investDai
nonpayablefunction investDai()
migrateTo_6_1_0
nonpayablefunction migrateTo_6_1_0(address _interestReceiver)
payInterest
nonpayablefunction payInterest(address _token)
relayTokens
nonpayablefunction relayTokens(address _receiver, uint256 _amount)
setDailyLimit
nonpayablefunction setDailyLimit(uint256 _dailyLimit)
setExecutionDailyLimit
nonpayablefunction setExecutionDailyLimit(uint256 _dailyLimit)
setExecutionMaxPerTx
nonpayablefunction setExecutionMaxPerTx(uint256 _maxPerTx)
setGasPrice
nonpayablefunction setGasPrice(uint256 _gasPrice)
setInterestReceiver
nonpayablefunction setInterestReceiver(address _token, address _receiver)
setMaxPerTx
nonpayablefunction setMaxPerTx(uint256 _maxPerTx)
setMinCashThreshold
nonpayablefunction setMinCashThreshold(address _token, uint256 _minCashThreshold)
setMinInterestPaid
nonpayablefunction setMinInterestPaid(address _token, uint256 _minInterestPaid)
setMinPerTx
nonpayablefunction setMinPerTx(uint256 _minPerTx)
setPayMaster
nonpayablefunction setPayMaster(address _paymaster)
setRequiredBlockConfirmations
nonpayablefunction setRequiredBlockConfirmations(uint256 _blockConfirmations)
setTrustedForwarder
nonpayablefunction setTrustedForwarder(address _trustedForwarder)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
DailyLimitChanged
event DailyLimitChanged(uint256 newLimit)
ExecutionDailyLimitChanged
event ExecutionDailyLimitChanged(uint256 newLimit)
GasPriceChanged
event GasPriceChanged(uint256 gasPrice)
OwnershipTransferred
event OwnershipTransferred(address previousOwner, address newOwner)
PaidInterest
event PaidInterest(address indexed token, address to, uint256 value)
RelayedMessage
event RelayedMessage(address recipient, uint256 value, bytes32 transactionHash)
RequiredBlockConfirmationChanged
event RequiredBlockConfirmationChanged(uint256 requiredBlockConfirmations)
UserRequestForAffirmation
event UserRequestForAffirmation(address recipient, uint256 value)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b506144bf806100206000396000f3006080604052600436106102bb5763ffffffff60e060020a60003504166301e4f53a81146102c057806303f9c793146102e65780631dcea427146103075780631e86b2911461033857806321d800ec146103675780632bd0bb0514610393578063392e53cd146103bd5780633dd95d1b146103d25780633e6968b6146103ea5780633f0a9f65146103ff5780633f7658fd14610414578063437764df1461044057806343b37dd31461048a5780634774f5631461049f578063486ff0cd146104c05780634fb3fef71461054a5780635726ff3014610562578063572b6c05146105835780635fe3b567146105a45780636605dfa7146105b957806367eeba0c146105ce57806369ffa08a146105e35780636a641d801461060a5780636da8b9961461062b57806374948c5214610673578063840b6b9b1461068857806384fe8ab21461069d578063879ce676146106be5780638aa1949a146106d65780638d068043146106eb5780638da5cb5b14610700578063904377ec1461071557806395e54a171461073c57806399439089146107515780639a454b99146107665780639cb7595a1461077b578063a2a6ca27146107bc578063a36b85fd146107d4578063a4b4b233146107f8578063a83bb2361461081c578063acf5c6891461083d578063b20d30a914610855578063ba266b131461086d578063be22f54614610882578063bf1fe42014610897578063c6f6f216146108af578063c779c1c3146108c7578063cd0fc033146108e8578063ce1b815f14610917578063cff774441461092c578063d007c6441461094d578063d2ef86601461096e578063da7422281461098f578063dae5f0fd146109b0578063df25f3f0146109c5578063ea9f4968146109da578063f20151e1146109f2578063f2fde38b14610a0a578063f50dace614610a2b578063f968adbe14610a4c578063fe173b9714610a61575b600080fd5b3480156102cc57600080fd5b506102e4600160a060020a0360043516602435610a76565b005b3480156102f257600080fd5b506102e4600160a060020a0360043516610be0565b34801561031357600080fd5b5061031c610c54565b60408051600160a060020a039092168252519081900360200190f35b34801561034457600080fd5b506102e46024600480358281019290820135918135918201910135604435610c63565b34801561037357600080fd5b5061037f600435610e5c565b604080519115158252519081900360200190f35b34801561039f57600080fd5b506103ab600435610f25565b60408051918252519081900360200190f35b3480156103c957600080fd5b5061037f610fe2565b3480156103de57600080fd5b506102e4600435611033565b3480156103f657600080fd5b506103ab6110f3565b34801561040b57600080fd5b506103ab6110fc565b34801561042057600080fd5b506102e4602460048035828101929082013591813591820191013561114a565b34801561044c57600080fd5b506104556112b8565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b34801561049657600080fd5b506103ab6112dc565b3480156104ab57600080fd5b506103ab600160a060020a036004351661132a565b3480156104cc57600080fd5b506104d56113bd565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561050f5781810151838201526020016104f7565b50505050905090810190601f16801561053c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561055657600080fd5b506103ab6004356113f4565b34801561056e57600080fd5b506103ab600160a060020a036004351661146f565b34801561058f57600080fd5b5061037f600160a060020a0360043516611502565b3480156105b057600080fd5b5061031c61155e565b3480156105c557600080fd5b5061031c611576565b3480156105da57600080fd5b506103ab61158e565b3480156105ef57600080fd5b506102e4600160a060020a03600435811690602435166115dc565b34801561061657600080fd5b506102e4600160a060020a0360043516611700565b34801561063757600080fd5b5061037f600160a060020a03600435811690602435811690604435906064359060849060e49061012435811690610144359061016435166117ef565b34801561067f57600080fd5b506102e4611ab6565b34801561069457600080fd5b506102e4611ac8565b3480156106a957600080fd5b506102e4600160a060020a0360043516611cae565b3480156106ca57600080fd5b5061037f600435611d41565b3480156106e257600080fd5b506103ab611d7f565b3480156106f757600080fd5b506103ab611dcd565b34801561070c57600080fd5b5061031c611e45565b34801561072157600080fd5b506102e4600160a060020a0360043581169060243516611e9c565b34801561074857600080fd5b506103ab611ec6565b34801561075d57600080fd5b5061031c611f20565b34801561077257600080fd5b506103ab611f77565b34801561078757600080fd5b50610790611fc5565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b3480156107c857600080fd5b506102e4600435611fd0565b3480156107e057600080fd5b506102e4600160a060020a036004351660243561206c565b34801561080457600080fd5b506102e4600160a060020a0360043516602435612092565b34801561082857600080fd5b5061031c600160a060020a03600435166120b8565b34801561084957600080fd5b506102e4600435612197565b34801561086157600080fd5b506102e46004356121bf565b34801561087957600080fd5b5061031c61227f565b34801561088e57600080fd5b5061031c612297565b3480156108a357600080fd5b506102e46004356122af565b3480156108bb57600080fd5b506102e46004356122d4565b3480156108d357600080fd5b506103ab600160a060020a036004351661236c565b3480156108f457600080fd5b506102e4600160a060020a03600435811690602435906044359060643516612430565b34801561092357600080fd5b5061031c61249c565b34801561093857600080fd5b506103ab600160a060020a03600435166124f3565b34801561095957600080fd5b506102e4600160a060020a0360043516612586565b34801561097a57600080fd5b5061037f600160a060020a03600435166125e0565b34801561099b57600080fd5b506102e4600160a060020a0360043516612674565b3480156109bc57600080fd5b506103ab612707565b3480156109d157600080fd5b506103ab612755565b3480156109e657600080fd5b5061037f6004356127a3565b3480156109fe57600080fd5b506102e46004356127ee565b348015610a1657600080fd5b506102e4600160a060020a036004351661286a565b348015610a3757600080fd5b506102e4600160a060020a036004351661288f565b348015610a5857600080fd5b506103ab6128c2565b348015610a6d57600080fd5b506103ab612910565b610a7e61295e565b600160a060020a0383811691161415610a9657600080fd5b600160a060020a0382161515610aab57600080fd5b600160a060020a038216301415610ac157600080fd5b60008111610ace57600080fd5b610ad7816127a3565b1515610ae257600080fd5b610af3610aed6110f3565b826129b5565b610afb610c54565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a0392909216916323b872dd916064808201926020929091908290030181600087803b158015610b6c57600080fd5b505af1158015610b80573d6000803e3d6000fd5b505050506040513d6020811015610b9657600080fd5b505060408051600160a060020a03841681526020810183905281517f1d491a427d1f8cc0d447496f300fac39f7306122481d8e663451eb268274146b929181900390910190a15050565b600080600083610bef816125e0565b1515610bfa57600080fd5b610c0385612a7e565b9350610c0e8561146f565b9250828411610c1c57600080fd5b8284039150610c4385610c3e84610c32896124f3565b9063ffffffff612b1416565b612b27565b610c4d8583612bb9565b5050505050565b6000610c5e612297565b905090565b600080600080610c7233611502565b1515610cdf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f696e76616c696420666f72776172646572000000000000000000000000000000604482015290519081900360640190fd5b610d5189898080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f8f018190048102820181019092528d815294508d93508c9250829150840183828082843750610d4a9450611f209350505050565b6000612cdf565b610d8a89898080601f01602080910402602001604051908101604052809392919081815260200183838082843750612f69945050505050565b92965090945092509050610d9d83611d41565b15610e465782851115610daf57600080fd5b600160a060020a0381163014610dc457600080fd5b610dcd82610e5c565b15610dd757600080fd5b610de2826001612fa4565b610ded848487613076565b1515610df857600080fd5b60408051600160a060020a03861681526020810185905280820184905290517f4ab7d581336d92edbea22636a613e8e76c99ac7f91137c1523db38dbfb3bf3299181900360600190a1610e51565b610e518484846102bb565b505050505050505050565b6000600460008360405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610ee15780518252601f199092019160209182019101610ec2565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1695945050505050565b60008060008360405160200180807f746f74616c5370656e74506572446179000000000000000000000000000000008152506010018281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610fa15780518252601f199092019160209182019101610f82565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205495945050505050565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc5460ff1690565b61103b611e45565b600160a060020a0316331461104f57600080fd5b611057611d7f565b811180611062575080155b151561106d57600080fd5b7f21dbcab260e413c20dc13c28b7db95e2b423d1135f42bb8b7d5214a92270d237600090815260209081527fadd938dbd083a16bae12238cd914fca0afc7a30edb55b1cd5c7f1823f1b0e4218290556040805183815290517f9bebf928b90863f24cc31f726a3a7545efd409f1dcf552301b1ee3710da70d3b929181900390910190a150565b62015180420490565b7f916daedf6915000ff68ced2f0b6773fe6f2582237f92c3c95bb4d7940723007160009081526020527fd2ea0feb732edb0ffe32efd33a6b9d24d46b16eb34a4d07ce256537b6f131e425490565b6000806000806111bb88888080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750610d4a9450611f209350505050565b6111f488888080601f01602080910402602001604051908101604052809392919081815260200183838082843750612f69945050505050565b9296509094509250905061120783611d41565b156112a357600160a060020a038116301461122157600080fd5b61122a82610e5c565b1561123457600080fd5b61123f826001612fa4565b61124a848484613094565b151561125557600080fd5b60408051600160a060020a03861681526020810185905280820184905290517f4ab7d581336d92edbea22636a613e8e76c99ac7f91137c1523db38dbfb3bf3299181900360600190a16112ae565b6112ae8484846102bb565b5050505050505050565b7f18762d460000000000000000000000000000000000000000000000000000000090565b7f21dbcab260e413c20dc13c28b7db95e2b423d1135f42bb8b7d5214a92270d23760009081526020527fadd938dbd083a16bae12238cd914fca0afc7a30edb55b1cd5c7f1823f1b0e4215490565b60008060008360405160200180807f6d696e496e746572657374506169640000000000000000000000000000000000815250600f0182600160a060020a0316600160a060020a0316606060020a02815260140191505060405160208183030381529060405260405180828051906020019080838360208310610fa15780518252601f199092019160209182019101610f82565b60408051808201909152600581527f312e302e31000000000000000000000000000000000000000000000000000000602082015290565b60008060008360405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130182815260200191505060405160208183030381529060405260405180828051906020019080838360208310610fa15780518252601f199092019160209182019101610f82565b60008060008360405160200180807f6d696e436173685468726573686f6c640000000000000000000000000000000081525060100182600160a060020a0316600160a060020a0316606060020a02815260140191505060405160208183030381529060405260405180828051906020019080838360208310610fa15780518252601f199092019160209182019101610f82565b7f222cb212229f0f9bcd249029717af6845ea3d3a84f22b54e5744ac25ef224c9260005260026020527fb3492a958ebdd65bd9a0b8ebca07c67a2ad3af56a28fc2944e214aa69ec9581b54600160a060020a0390811691161490565b733d9819210a31b4961b30ef54be2aed79b9c9cd3b90565b73c00e94cb662c3520282e6f5717214004a7f2688890565b7f4a6a899679f26b73530d8cf1001e83b6f7702e04b6fdb98f3c62dc7e47e041a560009081526020527f1ab29a5cca988aee50edccdd61c5bcaa7ad4b29a03b7ee50f298ceccfe14cc4e5490565b600030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561161c57600080fd5b505af1158015611630573d6000803e3d6000fd5b505050506040513d602081101561164657600080fd5b5051600160a060020a0316331461165c57600080fd5b611664612297565b9050600160a060020a03838116908216141561167f57600080fd5b61168761227f565b600160a060020a031683600160a060020a03161415806116ad57506116ab816125e0565b155b15156116b857600080fd5b6116c0611576565b600160a060020a031683600160a060020a03161415806116e657506116e4816125e0565b155b15156116f157600080fd5b6116fb8383613154565b505050565b7f6a641d806674d4ce5e98c8fdab48e66c563660255f099d81d45fa2fe8ed9cc1d600081815260046020527f4cb660e152ca689f34b6b2cf9be8b7045e6a949d9ae9a8aee6364776fb8b320d54819060ff161561175c57600080fd5b611764612297565b915061176e611576565b905061177b826001613192565b61178f8269d3c21bcecceda1000000613225565b6117a282683635c9adc5dea000006132b7565b6117ac8285613349565b6117be81670de0b6b3a76400006132b7565b6117c88185613349565b6117d182610be0565b50506000908152600460205260409020805460ff1916600117905550565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6fde8202000000000000000000000000000000000000000000000000000000001781529151815160009330939291829190808383895b83811015611870578181015183820152602001611858565b50505050905090810190601f16801561189d5780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1915050158061192f575030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118f757600080fd5b505af115801561190b573d6000803e3d6000fd5b505050506040513d602081101561192157600080fd5b5051600160a060020a031633145b8061193957503330145b151561194457600080fd5b61194c610fe2565b1561195657600080fd5b61195f8a61345d565b151561196a57600080fd5b611972612297565b600160a060020a038a811691161461198957600080fd5b821561199457600080fd5b7fab54f3fbbe62c59b7876a9bf9bd5e0c22dbae93f4d8ee0438f7ce62b198eb0e0805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038c161790557fb120ceec05576ad0c710bc6e85f1768535e27554458f05dcbb5c65b8c7a749b06000908152602052437fe66bef0282a446f9848e2903380099bb6e431483ee78778868f33b4a154c818b55611a3088613465565b611a39876134f8565b604080516060818101909252611a6191889060039083908390808284375061350e9350505050565b604080518082018252611a8691879060029083908390808284375061366b9350505050565b611a8f84613740565b611a9882613817565b611aa06138a3565b611aa8610fe2565b9a9950505050505050505050565b611ac6611ac1612297565b610be0565b565b606080600080333214611ada57600080fd5b604080516001808252818301909252906020808301908038833901905050935030846000815181101515611b0a57fe5b600160a060020a0392909216602092830291909101820152604080516001808252818301909252918281019080388339019050509250611b4861227f565b836000815181101515611b5757fe5b600160a060020a03909216602092830290910190910152611b7661155e565b600160a060020a0316636810dfa68585600060016040518563ffffffff1660e060020a0281526004018080602001806020018515151515815260200184151515158152602001838103835287818151815260200191508051906020019060200280838360005b83811015611bf4578181015183820152602001611bdc565b50505050905001838103825286818151815260200191508051906020019060200280838360005b83811015611c33578181015183820152602001611c1b565b505050509050019650505050505050600060405180830381600087803b158015611c5c57600080fd5b505af1158015611c70573d6000803e3d6000fd5b50505050611c7c611576565b9150611c8782612a7e565b9050611c928261132a565b811015611c9e57600080fd5b611ca882826138fa565b50505050565b611cb6611e45565b600160a060020a03163314611cca57600080fd5b7ffefcc139ed357999ed60c6a013947328d52e7d9751e93fd0274a2bfae5cbcb1260005260026020527ff215aff72f0a1a7d74fcd807336e100b80bbb56cdfb43843ade07ecf211a979f805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080611d5883610c32611d536110f3565b6113f4565b905080611d636112dc565b10158015611d785750611d74611d7f565b8311155b9392505050565b7fc0ed44c192c86d1cc1ba51340b032c2766b4a2b0041031de13c46dd7104888d560009081526020527ff8e983ee86e5e377e9e34c9131b266382c3f04113d20de077f9e12663c7a646b5490565b6000611dd7611f20565b600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611e1457600080fd5b505af1158015611e28573d6000803e3d6000fd5b505050506040513d6020811015611e3e57600080fd5b5051905090565b7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e54600160a060020a031690565b611ea4611e45565b600160a060020a03163314611eb857600080fd5b611ec28282613349565b5050565b6000806000806000611ed66128c2565b9350611ee061158e565b9250611ef2611eed6110f3565b610f25565b9150818311611f02576000611f06565b8183035b9050808410611f155780611f17565b835b94505050505090565b7f5a74bb7e202fb8e4bf311841c7d64ec19df195fee77d7e7ae749b27921b6ddfe60005260026020527fab54f3fbbe62c59b7876a9bf9bd5e0c22dbae93f4d8ee0438f7ce62b198eb0e054600160a060020a031690565b7fb120ceec05576ad0c710bc6e85f1768535e27554458f05dcbb5c65b8c7a749b060009081526020527fe66bef0282a446f9848e2903380099bb6e431483ee78778868f33b4a154c818b5490565b600660016000909192565b611fd8611e45565b600160a060020a03163314611fec57600080fd5b6000811180156120025750611fff61158e565b81105b801561201457506120116128c2565b81105b151561201f57600080fd5b7fbbb088c505d18e049d114c7c91f11724e69c55ad6c5397e2b929e68b41fa05d160009081526020527f8df5c48c6b6e11d97548adc824ba0c99103ec09830fa5d53a179984085e6eaa055565b612074611e45565b600160a060020a0316331461208857600080fd5b611ec282826132b7565b61209a611e45565b600160a060020a031633146120ae57600080fd5b611ec28282613225565b6000600260008360405160200180807f696e74657265737452656365697665720000000000000000000000000000000081525060100182600160a060020a0316600160a060020a0316606060020a0281526014019150506040516020818303038152906040526040518082805190602001908083835b6020831061214d5780518252601f19909201916020918201910161212e565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054600160a060020a031695945050505050565b61219f611e45565b600160a060020a031633146121b357600080fd5b6121bc81613465565b50565b6121c7611e45565b600160a060020a031633146121db57600080fd5b6121e36128c2565b8111806121ee575080155b15156121f957600080fd5b7f4a6a899679f26b73530d8cf1001e83b6f7702e04b6fdb98f3c62dc7e47e041a5600090815260209081527f1ab29a5cca988aee50edccdd61c5bcaa7ad4b29a03b7ee50f298ceccfe14cc4e8290556040805183815290517fad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c929181900390910190a150565b735d3a536e4d6dbd6114cc1ead35777bab948e364390565b736b175474e89094c44da98b954eedeac495271d0f90565b6122b7611e45565b600160a060020a031633146122cb57600080fd5b6121bc816134f8565b6122dc611e45565b600160a060020a031633146122f057600080fd5b8015806123145750612300612755565b81118015612314575061231161158e565b81105b151561231f57600080fd5b7f0f8803acad17c63ee38bf2de71e1888bc7a079a6f73658e274b08018bea4e29c60009081526020527f9de0f81379b4d8e60fe509315d071b56e7b732abaf193e74e0d15808b0951d0955565b600080600061237961227f565b600160a060020a0316633af9e669306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156123d357600080fd5b505af11580156123e7573d6000803e3d6000fd5b505050506040513d60208110156123fd57600080fd5b5051915061240a846124f3565b670de0b6b3a7640000019050808211612424576000612428565b8082035b949350505050565b612438611e45565b600160a060020a0316331461244c57600080fd5b61245584613a79565b151561246057600080fd5b612469846125e0565b1561247357600080fd5b61247e846001613192565b6124888484613225565b61249284836132b7565b611ca88482613349565b7f222cb212229f0f9bcd249029717af6845ea3d3a84f22b54e5744ac25ef224c9260005260026020527fb3492a958ebdd65bd9a0b8ebca07c67a2ad3af56a28fc2944e214aa69ec9581b54600160a060020a031690565b60008060008360405160200180807f696e766573746564416d6f756e74000000000000000000000000000000000000815250600e0182600160a060020a0316600160a060020a0316606060020a02815260140191505060405160208183030381529060405260405180828051906020019080838360208310610fa15780518252601f199092019160209182019101610f82565b60008033321461259557600080fd5b8261259f816125e0565b15156125aa57600080fd5b6125b38461236c565b92506125be8461132a565b8310156125ca57600080fd5b6125d48484613a9e565b9150611ca884836138fa565b6000600460008360405160200180807f696e746572657374456e61626c65640000000000000000000000000000000000815250600f0182600160a060020a0316600160a060020a0316606060020a02815260140191505060405160208183030381529060405260405180828051906020019080838360208310610ee15780518252601f199092019160209182019101610ec2565b61267c611e45565b600160a060020a0316331461269057600080fd5b7f222cb212229f0f9bcd249029717af6845ea3d3a84f22b54e5744ac25ef224c9260005260026020527fb3492a958ebdd65bd9a0b8ebca07c67a2ad3af56a28fc2944e214aa69ec9581b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b7f1e8ecaafaddea96ed9ac6d2642dcdfe1bebe58a930b1085842d8fc122b371ee560009081526020527fd5c78dd9468716ca9bb96be25d56436811b20aab3523a9904b12deef1cab239d5490565b7fbbb088c505d18e049d114c7c91f11724e69c55ad6c5397e2b929e68b41fa05d160009081526020527f8df5c48c6b6e11d97548adc824ba0c99103ec09830fa5d53a179984085e6eaa05490565b6000806127b583610c32611eed6110f3565b9050806127c061158e565b101580156127d557506127d16128c2565b8311155b8015611d7857506127e4612755565b9092101592915050565b6127f6611e45565b600160a060020a0316331461280a57600080fd5b6128126112dc565b811061281d57600080fd5b7fc0ed44c192c86d1cc1ba51340b032c2766b4a2b0041031de13c46dd7104888d560009081526020527ff8e983ee86e5e377e9e34c9131b266382c3f04113d20de077f9e12663c7a646b55565b612872611e45565b600160a060020a0316331461288657600080fd5b6121bc81613740565b612897611e45565b600160a060020a031633146128ab57600080fd5b6128b781600019613ade565b6121bc816000613192565b7f0f8803acad17c63ee38bf2de71e1888bc7a079a6f73658e274b08018bea4e29c60009081526020527f9de0f81379b4d8e60fe509315d071b56e7b732abaf193e74e0d15808b0951d095490565b7f55b3774520b5993024893d303890baa4e84b1244a43c60034d1ced2d3cf2b04b60009081526020527ff7d5eefab3776d7f0450bd0193564bcb4f832ce313ff2836c450fc63a4b944195490565b7f71483949fe7a14d16644d63320f24d10cf1d60abecc30cc677a340e82b699dd260005260026020527f21ffdf150a5d180f96d98d16f50e7b4dd63e2a067adc8386cf5af55dcecd8dd954600160a060020a031690565b6129c281610c3284610f25565b6000808460405160200180807f746f74616c5370656e74506572446179000000000000000000000000000000008152506010018281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310612a3c5780518252601f199092019160209182019101612a1d565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555050505050565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600091600160a060020a038416916370a082319160248082019260209290919082900301818787803b158015612ae257600080fd5b505af1158015612af6573d6000803e3d6000fd5b505050506040513d6020811015612b0c57600080fd5b505192915050565b81810182811015612b2157fe5b92915050565b806000808460405160200180807f696e766573746564416d6f756e74000000000000000000000000000000000000815250600e0182600160a060020a0316600160a060020a0316606060020a02815260140191505060405160208183030381529060405260405180828051906020019080838360208310612a3c5780518252601f199092019160209182019101612a1d565b612bc1612297565b600160a060020a031663095ea7b3612bd761227f565b836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612c2a57600080fd5b505af1158015612c3e573d6000803e3d6000fd5b505050506040513d6020811015612c5457600080fd5b5060009050612c6161227f565b600160a060020a031663a0712d68836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015612ca957600080fd5b505af1158015612cbd573d6000803e3d6000fd5b505050506040513d6020811015612cd357600080fd5b505114611ec257600080fd5b6000806000606060008060008060008060008b80612d015750612d018f613b30565b1515612d0c57600080fd5b8c600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612d4a57600080fd5b505af1158015612d5e573d6000803e3d6000fd5b505050506040513d6020811015612d7457600080fd5b505160018f0151909b5060ff1699508a8a1015612d9057600080fd5b612d9a8f8d613b44565b98508a604051908082528060200260200182016040528015612dc6578160200160208202803883390190505b509750600096505b8a871015612f5857866020028a6021010192508960200283019150866002018e01519550828e01519450818e01519350600189878787604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015612e75573d6000803e3d6000fd5b5050506020604051035190508c600160a060020a031663facd743b826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015612edc57600080fd5b505af1158015612ef0573d6000803e3d6000fd5b505050506040513d6020811015612f0657600080fd5b50511515612f1357600080fd5b612f1d8882613d56565b15612f2757600080fd5b808888815181101515612f3657fe5b600160a060020a03909216602092830290910190910152600190960195612dce565b505050505050505050505050505050565b600080600080612f7885613b30565b1515612f8357600080fd5b50505050601481015160348201516054830151606890930151919390929190565b80600460008460405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106130285780518252601f199092019160209182019101613009565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff1916941515949094179093555050505050565b6000613089613083612297565b84613db1565b612428848484613e73565b6000806130a86130a26110f3565b8561402a565b6130b0612297565b90506130bc8185613db1565b80600160a060020a031663a9059cbb86866040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561311f57600080fd5b505af1158015613133573d6000803e3d6000fd5b505050506040513d602081101561314957600080fd5b505195945050505050565b80600160a060020a038116151561316a57600080fd5b600160a060020a038316151561318857613183826140b0565b6116fb565b6116fb83836140bc565b80600460008460405160200180807f696e746572657374456e61626c65640000000000000000000000000000000000815250600f0182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106130285780518252601f199092019160209182019101613009565b806000808460405160200180807f6d696e436173685468726573686f6c640000000000000000000000000000000081525060100182600160a060020a0316600160a060020a0316606060020a02815260140191505060405160208183030381529060405260405180828051906020019080838360208310612a3c5780518252601f199092019160209182019101612a1d565b806000808460405160200180807f6d696e496e746572657374506169640000000000000000000000000000000000815250600f0182600160a060020a0316600160a060020a0316606060020a02815260140191505060405160208183030381529060405260405180828051906020019080838360208310612a3c5780518252601f199092019160209182019101612a1d565b600160a060020a03811630141561335f57600080fd5b80600260008460405160200180807f696e74657265737452656365697665720000000000000000000000000000000081525060100182600160a060020a0316600160a060020a0316606060020a0281526014019150506040516020818303038152906040526040518082805190602001908083835b602083106133f35780518252601f1990920191602091820191016133d4565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909516949094179093555050505050565b6000903b1190565b6000811161347257600080fd5b7f916daedf6915000ff68ced2f0b6773fe6f2582237f92c3c95bb4d79407230071600090815260209081527fd2ea0feb732edb0ffe32efd33a6b9d24d46b16eb34a4d07ce256537b6f131e428290556040805183815290517f4fb76205cd57c896b21511d2114137d8e901b4ccd659e1a0f97d6306795264fb929181900390910190a150565b6000811161350557600080fd5b6121bc81614169565b60408101516000108015613529575060408101516020820151115b8015613539575060208101518151115b151561354457600080fd5b80517f4a6a899679f26b73530d8cf1001e83b6f7702e04b6fdb98f3c62dc7e47e041a5600090815260208181527f1ab29a5cca988aee50edccdd61c5bcaa7ad4b29a03b7ee50f298ceccfe14cc4e92909255908201517f0f8803acad17c63ee38bf2de71e1888bc7a079a6f73658e274b08018bea4e29c82527f9de0f81379b4d8e60fe509315d071b56e7b732abaf193e74e0d15808b0951d095560408201517fbbb088c505d18e049d114c7c91f11724e69c55ad6c5397e2b929e68b41fa05d182527f8df5c48c6b6e11d97548adc824ba0c99103ec09830fa5d53a179984085e6eaa0557fad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c9082905b60200201516040518082815260200191505060405180910390a150565b805160208201511061367c57600080fd5b80517f21dbcab260e413c20dc13c28b7db95e2b423d1135f42bb8b7d5214a92270d237600090815260208181527fadd938dbd083a16bae12238cd914fca0afc7a30edb55b1cd5c7f1823f1b0e42192909255908201517fc0ed44c192c86d1cc1ba51340b032c2766b4a2b0041031de13c46dd7104888d582527ff8e983ee86e5e377e9e34c9131b266382c3f04113d20de077f9e12663c7a646b557f9bebf928b90863f24cc31f726a3a7545efd409f1dcf552301b1ee3710da70d3b90829061364e565b600160a060020a038116151561375557600080fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e061377e611e45565b60408051600160a060020a03928316815291841660208301528051918290030190a17f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a038116151561382c57600080fd5b7f71483949fe7a14d16644d63320f24d10cf1d60abecc30cc677a340e82b699dd260005260026020527f21ffdf150a5d180f96d98d16f50e7b4dd63e2a067adc8386cf5af55dcecd8dd9805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc805460ff19166001179055565b6000613905836120b8565b9050600160a060020a038116151561391c57600080fd5b82600160a060020a031663a9059cbb82846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561397f57600080fd5b505af1158015613993573d6000803e3d6000fd5b505050506040513d60208110156139a957600080fd5b506139b590508161345d565b15613a2e5780600160a060020a03166381e3f276846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015613a1557600080fd5b505af1158015613a29573d6000803e3d6000fd5b505050505b60408051600160a060020a038381168252602082018590528251908616927f222348fe8b30f078a8a4da2f55f16d24d70bc40d3ec49d295d7ad1d11e666887928290030190a2505050565b6000613a83612297565b600160a060020a031682600160a060020a0316149050919050565b6000806000613aac85612a7e565b9150613ab885856141ef565b81613ac286612a7e565b03905083811015613ad257600080fd5b8092505b505092915050565b60008080831515613aee57610c4d565b613af7856124f3565b9250828411613b065783613b08565b825b9150613b148583613a9e565b9050610c4d85828511613b28576000610c3e565b828503612b27565b6000613b3a614241565b8251149050919050565b60408051808201909152601a81527f19457468657265756d205369676e6564204d6573736167653a0a000000000000602082015260009060608315613cea5781613b8e8651614246565b866040516020018084805190602001908083835b60208310613bc15780518252601f199092019160209182019101613ba2565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b60208310613c095780518252601f199092019160209182019101613bea565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310613c515780518252601f199092019160209182019101613c32565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310613cb65780518252601f199092019160209182019101613c97565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250613ad6565b6040805190810160405280600381526020017f3130340000000000000000000000000000000000000000000000000000000000815250905081818660405160200180848051906020019080838360208310613bc15780518252601f199092019160209182019101613ba2565b6000805b8351811015613da55782600160a060020a03168482815181101515613d7b57fe5b90602001906020020151600160a060020a03161415613d9d5760019150613daa565b600101613d5a565b600091505b5092915050565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516000918291600160a060020a038616916370a0823191602480830192602092919082900301818787803b158015613e1657600080fd5b505af1158015613e2a573d6000803e3d6000fd5b505050506040513d6020811015613e4057600080fd5b5051915082821015611ca857613e67613e588561146f565b8385039063ffffffff612b1416565b9050611ca88482613ade565b600080600080613e8a613e846110f3565b8761402a565b613e92610c54565b7ffefcc139ed357999ed60c6a013947328d52e7d9751e93fd0274a2bfae5cbcb126000908152600260209081527ff215aff72f0a1a7d74fcd807336e100b80bbb56cdfb43843ade07ecf211a979f54604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018b905290519497509087169363a9059cbb93604480840194938390030190829087803b158015613f4b57600080fd5b505af1158015613f5f573d6000803e3d6000fd5b505050506040513d6020811015613f7557600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038a81166004830152888a03602483015291519294509085169163a9059cbb916044808201926020929091908290030181600087803b158015613fe757600080fd5b505af1158015613ffb573d6000803e3d6000fd5b505050506040513d602081101561401157600080fd5b5051905081801561401f5750805b979650505050505050565b61403781610c32846113f4565b6000808460405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130182815260200191505060405160208183030381529060405260405180828051906020019080838360208310612a3c5780518252601f199092019160209182019101612a1d565b3031611ec2828261436d565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b15801561412157600080fd5b505af1158015614135573d6000803e3d6000fd5b505050506040513d602081101561414b57600080fd5b50519050611ca8600160a060020a038516848363ffffffff6143ce16565b7f55b3774520b5993024893d303890baa4e84b1244a43c60034d1ced2d3cf2b04b600090815260209081527ff7d5eefab3776d7f0450bd0193564bcb4f832ce313ff2836c450fc63a4b944198290556040805183815290517f52264b89e0fceafb26e79fd49ef8a366eb6297483bf4035b027f0c99a7ad512e929181900390910190a150565b60006141f961227f565b600160a060020a031663852a12e3836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015612ca957600080fd5b606890565b6060600080828185151561428f5760408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201529450614364565b8593505b83156142aa57600190920191600a84049350614293565b826040519080825280601f01601f1916602001820160405280156142d8578160200160208202803883390190505b5091505060001982015b85156143605781516000198201917f01000000000000000000000000000000000000000000000000000000000000006030600a8a06010291849190811061432557fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a860495506142e2565b8194505b50505050919050565b604051600160a060020a0383169082156108fc029083906000818181858888f193505050501515611ec25780826143a2614463565b600160a060020a039091168152604051908190036020019082f080158015610c4d573d6000803e3d6000fd5b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561443157600080fd5b505af1158015614445573d6000803e3d6000fd5b505050503d156116fb5760206000803e60005115156116fb57600080fd5b604051602180614473833901905600608060405260405160208060218339810160405251600160a060020a038116ff00a165627a7a72305820ad67978e5bb22b0638513a9b214dbe581da9752197a09e448cdefd348a33fc5f0029