@reality.eth/contracts 4.0.0-rc.0 → 4.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/abi/solc-0.8.20/RealityETH-4.0.abi.json +1 -1
- package/abi/solc-0.8.20/RealityETHFreezableExample_ERC20-4.0.abi.json +1 -0
- package/abi/solc-0.8.20/RealityETHReopenable-4.0.abi.json +1 -1
- package/abi/solc-0.8.20/RealityETHReopenable_ERC20-4.0.abi.json +1 -1
- package/abi/solc-0.8.20/RealityETH_ERC20-4.0.abi.json +1 -1
- package/bytecode/RealityETH-4.0.bin +1 -1
- package/bytecode/RealityETHFreezableExample_ERC20-4.0.bin +1 -0
- package/bytecode/RealityETHReopenable-4.0.bin +1 -1
- package/bytecode/RealityETHReopenable_ERC20-4.0.bin +1 -1
- package/bytecode/RealityETH_ERC20-4.0.bin +1 -1
- package/development/contracts/IBalanceHolder.sol +1 -0
- package/development/contracts/IRealityETH.sol +6 -2
- package/development/contracts/{IRealityETHCore.sol → IRealityETHCore_Common.sol} +4 -8
- package/development/contracts/IRealityETHCore_ERC20.sol +3 -108
- package/development/contracts/IRealityETHCore_Native.sol +12 -0
- package/development/contracts/IRealityETHCreateTemplateAndAskQuestion.sol +8 -0
- package/development/contracts/IRealityETH_ERC20.sol +5 -1
- package/development/contracts/RealityETH-4.0.sol +12 -559
- package/development/contracts/RealityETHCore_Common.sol +535 -0
- package/development/contracts/RealityETHFreezableExample_ERC20-4.0.sol +17 -0
- package/development/contracts/RealityETHFreezable_ERC20.sol +39 -0
- package/development/contracts/RealityETHReopenable-4.0.sol +6 -6
- package/development/contracts/RealityETHReopenable_ERC20-4.0.sol +6 -6
- package/development/contracts/RealityETH_ERC20-4.0.sol +13 -556
- package/package.json +1 -1
- package/tests/python/test.py +106 -1
- package/development/contracts/BalanceHolder_ERC20.sol +0 -21
- package/development/contracts/IBalanceHolder_ERC20.sol +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AnswererMustBeNonZero","type":"error"},{"inputs":[],"name":"AnswererMustBeProvided","type":"error"},{"inputs":[],"name":"ArbitratorMismatch","type":"error"},{"inputs":[],"name":"ArbitratorMustMatch","type":"error"},{"inputs":[],"name":"AtLeastOneHistoryHashEntryMustBeProvided","type":"error"},{"inputs":[],"name":"BondMustBeDoubleAtLeastPreviousBond","type":"error"},{"inputs":[],"name":"BondMustBeHighEnough","type":"error"},{"inputs":[],"name":"BondMustBePositive","type":"error"},{"inputs":[],"name":"BondMustExceedMax_Previous","type":"error"},{"inputs":[],"name":"BondMustExceedTheMinimum","type":"error"},{"inputs":[],"name":"CommitmentMustNotAlreadyExist","type":"error"},{"inputs":[],"name":"CommitmentMustNotHaveBeenRevealedYet","type":"error"},{"inputs":[],"name":"ContentHashMismatch","type":"error"},{"inputs":[],"name":"ContentHashMustMatch","type":"error"},{"inputs":[],"name":"FinalizationDeadlineMustNotHavePassed","type":"error"},{"inputs":[],"name":"FinalizationDealineMustNotHavePassed","type":"error"},{"inputs":[],"name":"HistoryInputProvidedDidNotMatchTheExpectedHash","type":"error"},{"inputs":[],"name":"Min_BondMismatch","type":"error"},{"inputs":[],"name":"MsgSenderMustBeArbitrator","type":"error"},{"inputs":[],"name":"OpeningDateMustHavePassed","type":"error"},{"inputs":[],"name":"Opening_TsMismatch","type":"error"},{"inputs":[],"name":"QuestionHasAlreadyBeenReopened","type":"error"},{"inputs":[],"name":"QuestionIsAlreadyReopeningAPreviousQuestion","type":"error"},{"inputs":[],"name":"QuestionMustAlreadyHaveAnAnswerWhenArbitrationIsRequested","type":"error"},{"inputs":[],"name":"QuestionMustBeFinalized","type":"error"},{"inputs":[],"name":"QuestionMustBePendingArbitration","type":"error"},{"inputs":[],"name":"QuestionMustExist","type":"error"},{"inputs":[],"name":"QuestionMustNotBePendingArbitration","type":"error"},{"inputs":[],"name":"QuestionMustNotExist","type":"error"},{"inputs":[],"name":"QuestionReplacementWasSettledTooSoonAndHasNotBeenReopened","type":"error"},{"inputs":[],"name":"QuestionWasSettledTooSoonAndHasNotBeenReopened","type":"error"},{"inputs":[],"name":"RevealDeadlineMustNotHavePassed","type":"error"},{"inputs":[],"name":"TemplateMustExist","type":"error"},{"inputs":[],"name":"TimeoutMismatch","type":"error"},{"inputs":[],"name":"TimeoutMustBeLessThan365Days","type":"error"},{"inputs":[],"name":"TimeoutMustBeLongEnough","type":"error"},{"inputs":[],"name":"TimeoutMustBePositive","type":"error"},{"inputs":[],"name":"TokenCanOnlyBeInitializedOnce","type":"error"},{"inputs":[],"name":"TokensProvidedMustCoverQuestionFee","type":"error"},{"inputs":[],"name":"TransferOfTokensFailedInsufficientApprovedBalance","type":"error"},{"inputs":[],"name":"YouCanOnlyReopenQuestionsThatResolvedAsSettledTooSoon","type":"error"},{"inputs":[],"name":"YouMustWaitForTheRevealDeadlineBeforeFinalizing","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"LogCancelArbitration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"answer","type":"bytes32"}],"name":"LogFinalize","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"bounty_added","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bounty","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"LogFundAnswerBounty","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"min_bond","type":"uint256"}],"name":"LogMinimumBond","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"answer","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"history_hash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"bond","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ts","type":"uint256"},{"indexed":false,"internalType":"bool","name":"is_commitment","type":"bool"}],"name":"LogNewAnswer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"template_id","type":"uint256"},{"indexed":false,"internalType":"string","name":"question","type":"string"},{"indexed":true,"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"arbitrator","type":"address"},{"indexed":false,"internalType":"uint32","name":"timeout","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"opening_ts","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"created","type":"uint256"}],"name":"LogNewQuestion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"template_id","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"string","name":"question_text","type":"string"}],"name":"LogNewTemplate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"LogNotifyOfArbitrationRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"arbitrator","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSetQuestionFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogWithdraw","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"arbitrator_question_fees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"askQuestion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"askQuestionERC20","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"askQuestionWithMinBondERC20","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"address","name":"payee_if_wrong","type":"address"},{"internalType":"bytes32","name":"last_history_hash","type":"bytes32"},{"internalType":"bytes32","name":"last_answer","type":"bytes32"},{"internalType":"address","name":"last_answerer","type":"address"}],"name":"assignWinnerAndSubmitAnswerByArbitrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"cancelArbitration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"question_ids","type":"bytes32[]"},{"internalType":"uint256[]","name":"lengths","type":"uint256[]"},{"internalType":"bytes32[]","name":"hist_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"claimMultipleAndWithdrawBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32[]","name":"history_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"claimWinnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"content","type":"string"}],"name":"createTemplate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"content","type":"string"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"createTemplateAndAskQuestion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"fundAnswerBountyERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getArbitrator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBestAnswer","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBounty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getContentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getFinalAnswer","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"min_timeout","type":"uint32"},{"internalType":"uint256","name":"min_bond","type":"uint256"}],"name":"getFinalAnswerIfMatches","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getFinalizeTS","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getHistoryHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getMinBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getOpeningTS","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getTimeout","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32[]","name":"history_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"isHistoryOfUnfinalizedQuestionValid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isPendingArbitration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint256","name":"max_previous","type":"uint256"}],"name":"notifyOfArbitrationRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"question_claims","outputs":[{"internalType":"address","name":"payee","type":"address"},{"internalType":"uint256","name":"last_bond","type":"uint256"},{"internalType":"uint256","name":"queued_funds","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"questions","outputs":[{"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"finalize_ts","type":"uint32"},{"internalType":"bool","name":"is_pending_arbitration","type":"bool"},{"internalType":"uint256","name":"bounty","type":"uint256"},{"internalType":"bytes32","name":"best_answer","type":"bytes32"},{"internalType":"bytes32","name":"history_hash","type":"bytes32"},{"internalType":"uint256","name":"bond","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"resultFor","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setQuestionFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"address","name":"answerer","type":"address"}],"name":"submitAnswerByArbitrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"uint256","name":"max_previous","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"submitAnswerERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"uint256","name":"max_previous","type":"uint256"},{"internalType":"address","name":"answerer","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"submitAnswerForERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"template_hashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"templates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
|
|
1
|
+
[{"inputs":[],"name":"AnswererMustBeNonZero","type":"error"},{"inputs":[],"name":"AnswererMustBeProvided","type":"error"},{"inputs":[],"name":"ArbitratorMismatch","type":"error"},{"inputs":[],"name":"ArbitratorMustMatch","type":"error"},{"inputs":[],"name":"AtLeastOneHistoryHashEntryMustBeProvided","type":"error"},{"inputs":[],"name":"BondMustBeDoubleAtLeastPreviousBond","type":"error"},{"inputs":[],"name":"BondMustBeHighEnough","type":"error"},{"inputs":[],"name":"BondMustBePositive","type":"error"},{"inputs":[],"name":"BondMustExceedMax_Previous","type":"error"},{"inputs":[],"name":"BondMustExceedTheMinimum","type":"error"},{"inputs":[],"name":"CommitmentMustNotAlreadyExist","type":"error"},{"inputs":[],"name":"CommitmentMustNotHaveBeenRevealedYet","type":"error"},{"inputs":[],"name":"ContentHashMismatch","type":"error"},{"inputs":[],"name":"ContentHashMustMatch","type":"error"},{"inputs":[],"name":"FinalizationDeadlineMustNotHavePassed","type":"error"},{"inputs":[],"name":"FinalizationDealineMustNotHavePassed","type":"error"},{"inputs":[],"name":"HistoryInputProvidedDidNotMatchTheExpectedHash","type":"error"},{"inputs":[],"name":"Min_BondMismatch","type":"error"},{"inputs":[],"name":"MsgSenderMustBeArbitrator","type":"error"},{"inputs":[],"name":"OpeningDateMustHavePassed","type":"error"},{"inputs":[],"name":"Opening_TsMismatch","type":"error"},{"inputs":[],"name":"QuestionHasAlreadyBeenReopened","type":"error"},{"inputs":[],"name":"QuestionIsAlreadyReopeningAPreviousQuestion","type":"error"},{"inputs":[],"name":"QuestionMustAlreadyHaveAnAnswerWhenArbitrationIsRequested","type":"error"},{"inputs":[],"name":"QuestionMustBeFinalized","type":"error"},{"inputs":[],"name":"QuestionMustBePendingArbitration","type":"error"},{"inputs":[],"name":"QuestionMustExist","type":"error"},{"inputs":[],"name":"QuestionMustNotBePendingArbitration","type":"error"},{"inputs":[],"name":"QuestionMustNotExist","type":"error"},{"inputs":[],"name":"QuestionReplacementWasSettledTooSoonAndHasNotBeenReopened","type":"error"},{"inputs":[],"name":"QuestionWasSettledTooSoonAndHasNotBeenReopened","type":"error"},{"inputs":[],"name":"RevealDeadlineMustNotHavePassed","type":"error"},{"inputs":[],"name":"TemplateMustExist","type":"error"},{"inputs":[],"name":"TimeoutMismatch","type":"error"},{"inputs":[],"name":"TimeoutMustBeLessThan365Days","type":"error"},{"inputs":[],"name":"TimeoutMustBeLongEnough","type":"error"},{"inputs":[],"name":"TimeoutMustBePositive","type":"error"},{"inputs":[],"name":"TokenCanOnlyBeInitializedOnce","type":"error"},{"inputs":[],"name":"TokensProvidedMustCoverQuestionFee","type":"error"},{"inputs":[],"name":"TransferOfTokensFailedInsufficientApprovedBalance","type":"error"},{"inputs":[],"name":"YouCanOnlyReopenQuestionsThatResolvedAsSettledTooSoon","type":"error"},{"inputs":[],"name":"YouMustWaitForTheRevealDeadlineBeforeFinalizing","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"LogCancelArbitration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"answer","type":"bytes32"}],"name":"LogFinalize","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"bounty_added","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bounty","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"LogFundAnswerBounty","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"min_bond","type":"uint256"}],"name":"LogMinimumBond","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"answer","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"history_hash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"bond","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ts","type":"uint256"},{"indexed":false,"internalType":"bool","name":"is_commitment","type":"bool"}],"name":"LogNewAnswer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"template_id","type":"uint256"},{"indexed":false,"internalType":"string","name":"question","type":"string"},{"indexed":true,"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"arbitrator","type":"address"},{"indexed":false,"internalType":"uint32","name":"timeout","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"opening_ts","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"created","type":"uint256"}],"name":"LogNewQuestion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"template_id","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"string","name":"question_text","type":"string"}],"name":"LogNewTemplate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"LogNotifyOfArbitrationRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"arbitrator","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSetQuestionFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogWithdraw","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"arbitrator_question_fees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"askQuestion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"askQuestionERC20","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"askQuestionWithMinBondERC20","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"address","name":"payee_if_wrong","type":"address"},{"internalType":"bytes32","name":"last_history_hash","type":"bytes32"},{"internalType":"bytes32","name":"last_answer","type":"bytes32"},{"internalType":"address","name":"last_answerer","type":"address"}],"name":"assignWinnerAndSubmitAnswerByArbitrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"cancelArbitration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"question_ids","type":"bytes32[]"},{"internalType":"uint256[]","name":"lengths","type":"uint256[]"},{"internalType":"bytes32[]","name":"hist_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"claimMultipleAndWithdrawBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32[]","name":"history_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"claimWinnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"content","type":"string"}],"name":"createTemplate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"fundAnswerBountyERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getArbitrator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBestAnswer","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBounty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getContentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getFinalAnswer","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"min_timeout","type":"uint32"},{"internalType":"uint256","name":"min_bond","type":"uint256"}],"name":"getFinalAnswerIfMatches","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getFinalizeTS","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getHistoryHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getMinBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getOpeningTS","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getTimeout","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32[]","name":"history_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"isHistoryOfUnfinalizedQuestionValid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isPendingArbitration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint256","name":"max_previous","type":"uint256"}],"name":"notifyOfArbitrationRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"question_claims","outputs":[{"internalType":"address","name":"payee","type":"address"},{"internalType":"uint256","name":"last_bond","type":"uint256"},{"internalType":"uint256","name":"queued_funds","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"questions","outputs":[{"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"finalize_ts","type":"uint32"},{"internalType":"bool","name":"is_pending_arbitration","type":"bool"},{"internalType":"uint256","name":"bounty","type":"uint256"},{"internalType":"bytes32","name":"best_answer","type":"bytes32"},{"internalType":"bytes32","name":"history_hash","type":"bytes32"},{"internalType":"uint256","name":"bond","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"resultFor","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setQuestionFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"address","name":"answerer","type":"address"}],"name":"submitAnswerByArbitrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"uint256","name":"max_previous","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"submitAnswerERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"uint256","name":"max_previous","type":"uint256"},{"internalType":"address","name":"answerer","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"submitAnswerForERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"template_hashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"templates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
60806040525f60015534801562000014575f80fd5b50620000396040518060600160405280603f815260200162002fe8603f9139620000d4565b506200005e6040518060800160405280604f8152602001620030c4604f9139620000d4565b50620000836040518060800160405280605a81526020016200306a605a9139620000d4565b50620000a86040518060800160405280605c815260200162002f8c605c9139620000d4565b50620000cd6040518060800160405280604381526020016200302760439139620000d4565b506200020d565b6001545f81815260026020908152604080832043905551919291620000fc9185910162000196565b60408051601f1981840301815282825280516020918201205f858152600390925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e49062000154908790620001b3565b60405180910390a362000169816001620001e7565b60015592915050565b5f5b838110156200018e57818101518382015260200162000174565b50505f910152565b5f8251620001a981846020870162000172565b9190910192915050565b602081525f8251806020840152620001d381604085016020870162000172565b601f01601f19169190910160400192915050565b808201808211156200020757634e487b7160e01b5f52601160045260245ffd5b92915050565b612d71806200021b5f395ff3fe608060405260043610610212575f3560e01c806377f325df1161011e578063a1130d04116100a8578063d44e293c1161006d578063d44e293c146107f9578063e12891d414610818578063ebbdd2b014610837578063f6a94ecb14610856578063fe92049d14610875575f80fd5b8063a1130d0414610761578063a462fb7b14610774578063acae8f4e14610793578063bc525652146107ce578063d09cc57e14610774575f80fd5b80638d552d46116100ee5780638d552d4614610584578063924532fb146105b357806395addb90146105e45780639e63fa6a146106d65780639f1025c614610726575f80fd5b806377f325df146104f55780637f8d429e1461050857806382ffa9f71461053757806383bf460914610565575f80fd5b8063484c07141161019f578063590158a71161016f578063590158a71461041057806359245ff3146104795780636fa427421461048c57806370a08231146104b7578063762c38fd146104e2575f80fd5b8063484c07141461036d5780634df6ca2a1461039b5780634e60f883146103ba57806351577ea9146103e5575f80fd5b80632518904c116101e55780632518904c146102aa57806326d6c97b146102f957806328828b1e146103275780633ccfd60b14610346578063484b93c41461035a575f80fd5b80631101a0fd14610216578063111ec1381461023757806312a203c31461024a5780632417395c1461027c575b5f80fd5b348015610221575f80fd5b506102356102303660046125a1565b610894565b005b61023561024536600461264f565b610b39565b348015610255575f80fd5b5061026961026436600461269e565b610d78565b6040519081526020015b60405180910390f35b348015610287575f80fd5b506102696102963660046126e8565b5f9081526004602052604090206003015490565b3480156102b5575f80fd5b506102e16102c43660046126e8565b5f908152600460205260409020600101546001600160a01b031690565b6040516001600160a01b039091168152602001610273565b348015610304575f80fd5b506102696103133660046126e8565b5f9081526004602052604090206006015490565b348015610332575f80fd5b506102356103413660046126ff565b610e9a565b348015610351575f80fd5b5061023561114a565b610269610368366004612854565b6111c1565b348015610378575f80fd5b506102696103873660046126e8565b5f9081526004602052604090206007015490565b3480156103a6575f80fd5b506102356103b53660046126e8565b6112bd565b3480156103c5575f80fd5b506102696103d43660046126e8565b60036020525f908152604090205481565b3480156103f0575f80fd5b506102696103ff3660046126e8565b5f9081526004602052604090205490565b34801561041b575f80fd5b5061045461042a3660046126e8565b60056020525f90815260409020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b039094168452602084019290925290820152606001610273565b6102356104873660046126e8565b61130a565b348015610497575f80fd5b506102696104a63660046128d9565b60066020525f908152604090205481565b3480156104c2575f80fd5b506102696104d13660046128d9565b5f6020819052908152604090205481565b6102696104f03660046128f2565b6114a4565b61023561050336600461296d565b61159f565b348015610513575f80fd5b506105276105223660046126e8565b6117b6565b6040519015158152602001610273565b348015610542575f80fd5b506102696105513660046126e8565b5f9081526004602052604090206005015490565b348015610570575f80fd5b5061026961057f366004612996565b611811565b34801561058f575f80fd5b5061026961059e3660046126e8565b5f908152600460208190526040909120015490565b3480156105be575f80fd5b506105276105cd3660046126e8565b5f9081526004602052604090206002015460ff1690565b3480156105ef575f80fd5b5061066f6105fe3660046126e8565b600460208190525f91825260409091208054600182015460028301546003840154948401546005850154600686015460079096015494966001600160a01b0385169663ffffffff600160a01b8704811697600160c01b8804821697600160e01b90049091169560ff1694929391908b565b604080519b8c526001600160a01b03909a1660208c015263ffffffff988916998b019990995295871660608a015295909316608088015290151560a087015260c086015260e085015261010084019190915261012083015261014082015261016001610273565b3480156106e1575f80fd5b506107116106f03660046126e8565b5f90815260046020526040902060010154600160a01b900463ffffffff1690565b60405163ffffffff9091168152602001610273565b348015610731575f80fd5b506107116107403660046126e8565b5f90815260046020526040902060010154600160c01b900463ffffffff1690565b61026961076f3660046129cf565b6118ab565b34801561077f575f80fd5b5061026961078e3660046126e8565b6118c6565b34801561079e575f80fd5b506107116107ad3660046126e8565b5f90815260046020526040902060010154600160e01b900463ffffffff1690565b3480156107d9575f80fd5b506102696107e83660046126e8565b60026020525f908152604090205481565b348015610804575f80fd5b50610235610813366004612a28565b611905565b348015610823575f80fd5b506105276108323660046125a1565b61197e565b348015610842575f80fd5b506102356108513660046126e8565b611b1b565b348015610861575f80fd5b50610235610870366004612a7c565b611c1d565b348015610880575f80fd5b5061023561088f366004612aae565b611e44565b8461089e816117b6565b6108bb57604051636030e5f560e11b815260040160405180910390fd5b84515f036108dc576040516312fdb46960e31b815260040160405180910390fd5b5f86815260056020818152604080842080546001909101546004938490529185209384015493909201546001600160a01b039092169390929091825b8a51811015610a9b57610992838c838151811061093757610937612ae0565b60200260200101518a848151811061095157610951612ae0565b60200260200101518c858151811061096b5761096b612ae0565b60200260200101518e868151811061098557610985612ae0565b6020026020010151611f63565b6109af576040516303a479f160e11b815260040160405180910390fd5b6109b98585612b08565b9350610a158c8386898e86815181106109d4576109d4612ae0565b60200260200101518e87815181106109ee576109ee612ae0565b60200260200101518e8881518110610a0857610a08612ae0565b6020026020010151611fa0565b8097508195505050888181518110610a2f57610a2f612ae0565b6020026020010151945060045f8d81526020019081526020015f20600601548514610a6c57610a5f602886612b21565b610a699086612b40565b94505b8a8181518110610a7e57610a7e612ae0565b602002602001015192508080610a9390612b53565b915050610918565b8215610add57610aac8c8786612065565b5f8c815260056020526040902080546001600160a01b0319166001600160a01b038816178155600101859055610b18565b610af18c87610aec8888612b08565b612065565b5f8c815260056020526040812080546001600160a01b031916815560018101829055600201555b50505f998a5260046020526040909920600501989098555050505050505050565b5f848152600460205260408120600101548591600160c01b90910463ffffffff169003610b795760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff1615610bab576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff168015801590610be457504263ffffffff168163ffffffff1611155b15610c025760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff168015801590610c3a57504263ffffffff168163ffffffff16115b15610c585760405163079994c560e31b815260040160405180910390fd5b8634805f03610c7a57604051635de374cf60e11b815260040160405180910390fd5b5f8281526004602052604081206006015490819003610cc9575f83815260046020526040902060070154821015610cc45760405163291784d560e01b815260040160405180910390fd5b610cf4565b610cd4816002612b6b565b821015610cf4576040516328eecafb60e21b815260040160405180910390fd5b89888015610d2d575f82815260046020526040902060060154811015610d2d5760405163f6631e6760e01b815260040160405180910390fd5b6001600160a01b038916610d5457604051630ca6549f60e11b815260040160405180910390fd5b610d608c8c8b346120dd565b610d6a8c8c6121ae565b505050505050505050505050565b5f85610d83816117b6565b610da057604051636030e5f560e11b815260040160405180910390fd5b5f878152600460205260409020548614610dcd57604051630763e45d60e41b815260040160405180910390fd5b5f878152600460205260409020600101546001600160a01b03868116911614610e095760405163f089a18560e01b815260040160405180910390fd5b5f8781526004602052604090206001015463ffffffff600160c01b90910481169085161115610e4b57604051633f61762b60e01b815260040160405180910390fd5b5f87815260046020526040902060060154831115610e7c57604051634d497e9360e11b815260040160405180910390fd5b5f878152600460208190526040909120015491505095945050505050565b5f805b8751821015611138575f888381518110610eb957610eb9612ae0565b602002602001015190505f888481518110610ed657610ed6612ae0565b602002602001015190505f816001600160401b03811115610ef957610ef961245e565b604051908082528060200260200182016040528015610f22578160200160208202803683370190505b5090505f826001600160401b03811115610f3e57610f3e61245e565b604051908082528060200260200182016040528015610f67578160200160208202803683370190505b5090505f836001600160401b03811115610f8357610f8361245e565b604051908082528060200260200182016040528015610fac578160200160208202803683370190505b5090505f846001600160401b03811115610fc857610fc861245e565b604051908082528060200260200182016040528015610ff1578160200160208202803683370190505b5090505f5b85811015611111578c888151811061101057611010612ae0565b602002602001015185828151811061102a5761102a612ae0565b6020026020010181815250508b888151811061104857611048612ae0565b602002602001015184828151811061106257611062612ae0565b60200260200101906001600160a01b031690816001600160a01b0316815250508a888151811061109457611094612ae0565b60200260200101518382815181106110ae576110ae612ae0565b6020026020010181815250508988815181106110cc576110cc612ae0565b60200260200101518282815181106110e6576110e6612ae0565b6020908102919091010152876110fb81612b53565b985050808061110990612b53565b915050610ff6565b61111e8786868686610894565b50505050505050818061113090612b53565b925050610e9d565b61114061114a565b5050505050505050565b335f81815260208190526040808220805490839055905190929183156108fc02918491818181858888f19350505050158015611188573d5f803e3d5ffd5b5060405181815233907f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab7089060200160405180910390a250565b5f8781526002602052604081205481036111ee5760405163bbbf712b60e01b815260040160405180910390fd5b5f88858960405160200161120493929190612ba4565b6040516020818303038152906040528051906020012090505f8188888630338a60405160200161123a9796959493929190612bdc565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d426040516112999796959493929190612c60565b60405180910390a46112b081838a8a8a8934612216565b9998505050505050505050565b335f81815260066020908152604091829020849055815192835282018390527fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda910160405180910390a150565b5f818152600460205260408120600101548291600160c01b90910463ffffffff16900361134a5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff161561137c576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff1680158015906113b557504263ffffffff168163ffffffff1611155b156113d35760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff16801580159061140b57504263ffffffff168163ffffffff16115b156114295760405163079994c560e31b815260040160405180910390fd5b5f84815260046020526040902060030154611445903490612b08565b5f858152600460205260409081902060030182905551339186917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab669161149691349190918252602082015260400190565b60405180910390a350505050565b5f8681526002602052604081205481036114d15760405163bbbf712b60e01b815260040160405180910390fd5b5f8784886040516020016114e793929190612ba4565b6040516020818303038152906040528051906020012090505f8187875f30338960405160200161151d9796959493929190612bdc565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c4260405161157c9796959493929190612c60565b60405180910390a461159381838989895f34612216565b98975050505050505050565b5f838152600460205260408120600101548491600160c01b90910463ffffffff1690036115df5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff1615611611576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff16801580159061164a57504263ffffffff168163ffffffff1611155b156116685760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff1680158015906116a057504263ffffffff168163ffffffff16115b156116be5760405163079994c560e31b815260040160405180910390fd5b8534805f036116e057604051635de374cf60e11b815260040160405180910390fd5b5f828152600460205260408120600601549081900361172f575f8381526004602052604090206007015482101561172a5760405163291784d560e01b815260040160405180910390fd5b61175a565b61173a816002612b6b565b82101561175a576040516328eecafb60e21b815260040160405180910390fd5b88878015611793575f828152600460205260409020600601548110156117935760405163f6631e6760e01b815260040160405180910390fd5b61179f8b8b33346120dd565b6117a98b8b6121ae565b5050505050505050505050565b5f8181526004602052604081206001810154600290910154600160e01b90910463ffffffff169060ff161580156117f2575063ffffffff811615155b801561180a57504263ffffffff168163ffffffff1611155b9392505050565b6001545f8181526002602090815260408083204390555191929161183791859101612caf565b60408051601f1981840301815282825280516020918201205f858152600390925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e49061188d908790612cca565b60405180910390a36118a0816001612b08565b60015590505b919050565b5f806118b688611811565b90506115938188888888886114a4565b5f816118d1816117b6565b6118ee57604051636030e5f560e11b815260040160405180910390fd5b50505f908152600460208190526040909120015490565b5f868152600460205260409020600581015460069091015461192c91908590859085611f63565b611949576040516303a479f160e11b815260040160405180910390fd5b5f8681526004602081905260408220015486146119665784611968565b815b9050611975878783611e44565b50505050505050565b5f858152600460205260408120600101548690600160c01b900463ffffffff1682036119bd5760405163a42db76b60e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff1680158015906119f657504263ffffffff168163ffffffff1611155b15611a145760405163372900d560e21b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff168015801590611a4c57504263ffffffff168163ffffffff16115b15611a6a5760405163079994c560e31b815260040160405180910390fd5b5f898152600460205260409020600501548851885181141580611a8e575080885114155b80611a9a575080875114155b15611aa9575f95505050611b0f565b5f5b81811015611b0757611ac9838c838151811061093757610937612ae0565b611ad8575f9650505050611b0f565b8a8181518110611aea57611aea612ae0565b602002602001015192508080611aff90612b53565b915050611aab565b506001955050505b50505095945050505050565b5f8181526004602052604090206001015481906001600160a01b03163314611b5657604051634361661f60e11b815260040160405180910390fd5b5f82815260046020526040902060020154829060ff16611b895760405163f476ed1160e01b815260040160405180910390fd5b5f83815260046020526040902060028101805460ff1916905560010154611bbd90600160c01b900463ffffffff1642612cdc565b5f84815260046020526040808220600101805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255905184917f71bf7c2b9df0b8818e7eb6746a5bf69699ebbab041f3795f9ed58e469afa9a3a91a2505050565b5f8381526004602052604090206001015483906001600160a01b03163314611c5857604051634361661f60e11b815260040160405180910390fd5b5f848152600460205260408120600101548591600160c01b90910463ffffffff169003611c985760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff1615611cca576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff168015801590611d0357504263ffffffff168163ffffffff1611155b15611d215760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff168015801590611d5957504263ffffffff168163ffffffff16115b15611d775760405163079994c560e31b815260040160405180910390fd5b86858015611db0575f82815260046020526040902060060154811015611db05760405163f6631e6760e01b815260040160405180910390fd5b5f89815260046020526040902060010154600160e01b900463ffffffff16611deb576040516397fe1f2760e01b815260040160405180910390fd5b5f89815260046020526040808220600201805460ff19166001179055516001600160a01b038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b5f8381526004602052604090206001015483906001600160a01b03163314611e7f57604051634361661f60e11b815260040160405180910390fd5b5f84815260046020526040902060020154849060ff16611eb25760405163f476ed1160e01b815260040160405180910390fd5b6001600160a01b038316611ed9576040516335050b6960e11b815260040160405180910390fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f97905f90a35f858152600460205260408120600201805460ff19169055611f2c908690869086906120dd565b5050505f9182526004602081905260409092209182015560010180546001600160e01b0316600160e01b4263ffffffff1602179055565b5f848484845f604051602001611f7d959493929190612d00565b604051602081830303815290604052805190602001208614905095945050505050565b5f80878303612056576001600160a01b038616612013575f89815260046020526040902060030154949550859415801590611fd9575060015b1561200e575f89815260046020526040902060030154611ffc908a908890612065565b5f898152600460205260408120600301555b612056565b856001600160a01b0316856001600160a01b031614612056575f8488101561203b578761203d565b845b905061204e8a88610aec848c612b40565b859650809750505b50949793965092945050505050565b6001600160a01b0382165f90815260208190526040902054612088908290612b08565b6001600160a01b0383165f81815260208181526040918290209390935551838152909185917f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a6910160405180910390a3505050565b5f84815260046020908152604080832060050154905161210592879186918891879101612d00565b6040516020818303038152906040528051906020012090505f821115612139575f8581526004602052604090206006018290555b5f8581526004602090815260408083206005018490558051878152918201849052810184905242606082015260808101919091526001600160a01b0384169086907fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219060a00160405180910390a35050505050565b5f828152600460208190526040909120908101829055600101546121df90600160c01b900463ffffffff1642612cdc565b5f92835260046020526040909220600101805463ffffffff93909316600160e01b026001600160e01b039093169290921790915550565b5f878152600460205260409020600101548790600160c01b900463ffffffff1615612257576040516001627a443360e01b0319815260040160405180910390fd5b8463ffffffff165f0361227d5760405163c44c737960e01b815260040160405180910390fd5b6301e133808563ffffffff16106122a757604051630ce43fd960e41b815260040160405180910390fd5b816001600160a01b038716158015906122c95750336001600160a01b03881614155b15612351576001600160a01b0387165f90815260066020526040902054808210156123075760405163d72564c760e01b815260040160405180910390fd5b6123118183612b40565b6001600160a01b0389165f90815260208190526040902054909250612337908290612b08565b6001600160a01b0389165f90815260208190526040902055505b5f898152600460205260409020888155600101805463ffffffff888116600160c01b0263ffffffff60c01b19918916600160a01b026001600160c01b03199093166001600160a01b038c1617929092171617905580156123fd575f89815260046020908152604091829020600301839055815183815290810183905233918b917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab66910160405180910390a35b8315612453575f89815260046020526040908190206007018590555189907f9641ca9d53af3bead658ffcc6c7d8c35e7dae9938367bd8eb45bee35d5c625049061244a9087815260200190565b60405180910390a25b505050505050505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561249a5761249a61245e565b604052919050565b5f6001600160401b038211156124ba576124ba61245e565b5060051b60200190565b5f82601f8301126124d3575f80fd5b813560206124e86124e3836124a2565b612472565b82815260059290921b84018101918181019086841115612506575f80fd5b8286015b84811015612521578035835291830191830161250a565b509695505050505050565b80356001600160a01b03811681146118a6575f80fd5b5f82601f830112612551575f80fd5b813560206125616124e3836124a2565b82815260059290921b8401810191818101908684111561257f575f80fd5b8286015b84811015612521576125948161252c565b8352918301918301612583565b5f805f805f60a086880312156125b5575f80fd5b8535945060208601356001600160401b03808211156125d2575f80fd5b6125de89838a016124c4565b955060408801359150808211156125f3575f80fd5b6125ff89838a01612542565b94506060880135915080821115612614575f80fd5b61262089838a016124c4565b93506080880135915080821115612635575f80fd5b50612642888289016124c4565b9150509295509295909350565b5f805f8060808587031215612662575f80fd5b8435935060208501359250604085013591506126806060860161252c565b905092959194509250565b803563ffffffff811681146118a6575f80fd5b5f805f805f60a086880312156126b2575f80fd5b85359450602086013593506126c96040870161252c565b92506126d76060870161268b565b949793965091946080013592915050565b5f602082840312156126f8575f80fd5b5035919050565b5f805f805f8060c08789031215612714575f80fd5b86356001600160401b038082111561272a575f80fd5b6127368a838b016124c4565b9750602089013591508082111561274b575f80fd5b6127578a838b016124c4565b9650604089013591508082111561276c575f80fd5b6127788a838b016124c4565b9550606089013591508082111561278d575f80fd5b6127998a838b01612542565b945060808901359150808211156127ae575f80fd5b6127ba8a838b016124c4565b935060a08901359150808211156127cf575f80fd5b506127dc89828a016124c4565b9150509295509295509295565b5f82601f8301126127f8575f80fd5b81356001600160401b038111156128115761281161245e565b612824601f8201601f1916602001612472565b818152846020838601011115612838575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f805f60e0888a03121561286a575f80fd5b8735965060208801356001600160401b03811115612886575f80fd5b6128928a828b016127e9565b9650506128a16040890161252c565b94506128af6060890161268b565b93506128bd6080890161268b565b925060a0880135915060c0880135905092959891949750929550565b5f602082840312156128e9575f80fd5b61180a8261252c565b5f805f805f8060c08789031215612907575f80fd5b8635955060208701356001600160401b03811115612923575f80fd5b61292f89828a016127e9565b95505061293e6040880161252c565b935061294c6060880161268b565b925061295a6080880161268b565b915060a087013590509295509295509295565b5f805f6060848603121561297f575f80fd5b505081359360208301359350604090920135919050565b5f602082840312156129a6575f80fd5b81356001600160401b038111156129bb575f80fd5b6129c7848285016127e9565b949350505050565b5f805f805f8060c087890312156129e4575f80fd5b86356001600160401b03808211156129fa575f80fd5b612a068a838b016127e9565b97506020890135915080821115612a1b575f80fd5b5061292f89828a016127e9565b5f805f805f8060c08789031215612a3d575f80fd5b8635955060208701359450612a546040880161252c565b93506060870135925060808701359150612a7060a0880161252c565b90509295509295509295565b5f805f60608486031215612a8e575f80fd5b83359250612a9e6020850161252c565b9150604084013590509250925092565b5f805f60608486031215612ac0575f80fd5b8335925060208401359150612ad76040850161252c565b90509250925092565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115612b1b57612b1b612af4565b92915050565b5f82612b3b57634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115612b1b57612b1b612af4565b5f60018201612b6457612b64612af4565b5060010190565b8082028115828204841417612b1b57612b1b612af4565b5f5b83811015612b9c578181015183820152602001612b84565b50505f910152565b83815263ffffffff60e01b8360e01b1660208201525f8251612bcd816024850160208701612b82565b91909101602401949350505050565b968752606095861b6bffffffffffffffffffffffff19908116602089015260e09590951b6001600160e01b0319166034880152603887019390935290841b8316605886015290921b16606c830152608082015260a00190565b5f8151808452612c4c816020860160208601612b82565b601f01601f19169290920160200192915050565b87815260e060208201525f612c7860e0830189612c35565b6001600160a01b039790971660408301525063ffffffff948516606082015292909316608083015260a082015260c0015292915050565b5f8251612cc0818460208701612b82565b9190910192915050565b602081525f61180a6020830184612c35565b63ffffffff818116838216019080821115612cf957612cf9612af4565b5092915050565b94855260208501939093526040840191909152606090811b6bffffffffffffffffffffffff191690830152151560f81b60748201526075019056fea2646970667358221220f7b1da12dc66d8623092adb95e75c82248046c899d973fbaf9e1b41a8381c32064736f6c634300081400337b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d
|
|
1
|
+
60806040525f805534801562000013575f80fd5b50620000386040518060600160405280603f815260200162002f5d603f9139620000d3565b506200005d6040518060800160405280604f815260200162003039604f9139620000d3565b50620000826040518060800160405280605a815260200162002fdf605a9139620000d3565b50620000a76040518060800160405280605c815260200162002f01605c9139620000d3565b50620000cc60405180608001604052806043815260200162002f9c60439139620000d3565b5062000207565b5f805480825260016020908152604080842043905551620000f79185910162000190565b60408051601f1981840301815282825280516020918201205f858152600290925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4906200014f908790620001ad565b60405180910390a362000164816001620001e1565b5f5592915050565b5f5b83811015620001885781810151838201526020016200016e565b50505f910152565b5f8251620001a38184602087016200016c565b9190910192915050565b602081525f8251806020840152620001cd8160408501602087016200016c565b601f01601f19169190910160400192915050565b808201808211156200020157634e487b7160e01b5f52601160045260245ffd5b92915050565b612cec80620002155f395ff3fe608060405260043610610207575f3560e01c806377f325df11610113578063a462fb7b1161009d578063d44e293c1161006d578063d44e293c146107dd578063e12891d4146107fc578063ebbdd2b01461081b578063f6a94ecb1461083a578063fe92049d14610859575f80fd5b8063a462fb7b14610758578063acae8f4e14610777578063bc525652146107b2578063d09cc57e14610758575f80fd5b80638d552d46116100e35780638d552d461461057a578063924532fb146105a857806395addb90146105d95780639e63fa6a146106cd5780639f1025c61461071d575f80fd5b806377f325df146104eb5780637f8d429e146104fe57806382ffa9f71461052d57806383bf46091461055b575f80fd5b8063484c071411610194578063590158a711610164578063590158a71461040657806359245ff31461046f5780636fa427421461048257806370a08231146104ad578063762c38fd146104d8575f80fd5b8063484c0714146103635780634df6ca2a146103915780634e60f883146103b057806351577ea9146103db575f80fd5b80632518904c116101da5780632518904c146102a057806326d6c97b146102ef57806328828b1e1461031d5780633ccfd60b1461033c578063484b93c414610350575f80fd5b80631101a0fd1461020b578063111ec1381461022c57806312a203c31461023f5780632417395c14610271575b5f80fd5b348015610216575f80fd5b5061022a61022536600461256f565b610878565b005b61022a61023a36600461261e565b610b1a565b34801561024a575f80fd5b5061025e61025936600461266d565b610d59565b6040519081526020015b60405180910390f35b34801561027c575f80fd5b5061025e61028b3660046126b7565b5f908152600360208190526040909120015490565b3480156102ab575f80fd5b506102d76102ba3660046126b7565b5f908152600360205260409020600101546001600160a01b031690565b6040516001600160a01b039091168152602001610268565b3480156102fa575f80fd5b5061025e6103093660046126b7565b5f9081526003602052604090206006015490565b348015610328575f80fd5b5061022a6103373660046126ce565b610e77565b348015610347575f80fd5b5061022a61112b565b61025e61035e366004612825565b6111a2565b34801561036e575f80fd5b5061025e61037d3660046126b7565b5f9081526003602052604090206007015490565b34801561039c575f80fd5b5061022a6103ab3660046126b7565b61129e565b3480156103bb575f80fd5b5061025e6103ca3660046126b7565b60026020525f908152604090205481565b3480156103e6575f80fd5b5061025e6103f53660046126b7565b5f9081526003602052604090205490565b348015610411575f80fd5b5061044a6104203660046126b7565b60046020525f90815260409020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b039094168452602084019290925290820152606001610268565b61022a61047d3660046126b7565b6112eb565b34801561048d575f80fd5b5061025e61049c3660046128ab565b60056020525f908152604090205481565b3480156104b8575f80fd5b5061025e6104c73660046128ab565b60066020525f908152604090205481565b61025e6104e63660046128c4565b611486565b61022a6104f9366004612940565b611581565b348015610509575f80fd5b5061051d6105183660046126b7565b611798565b6040519015158152602001610268565b348015610538575f80fd5b5061025e6105473660046126b7565b5f9081526003602052604090206005015490565b348015610566575f80fd5b5061025e610575366004612969565b6117f3565b348015610585575f80fd5b5061025e6105943660046126b7565b5f9081526003602052604090206004015490565b3480156105b3575f80fd5b5061051d6105c23660046126b7565b5f9081526003602052604090206002015460ff1690565b3480156105e4575f80fd5b506106666105f33660046126b7565b600360208190525f91825260409091208054600182015460028301549383015460048401546005850154600686015460079096015494966001600160a01b0385169663ffffffff600160a01b8704811697600160c01b8804821697600160e01b90049091169560ff90931694929391908b565b604080519b8c526001600160a01b03909a1660208c015263ffffffff988916998b019990995295871660608a015295909316608088015290151560a087015260c086015260e085015261010084019190915261012083015261014082015261016001610268565b3480156106d8575f80fd5b506107086106e73660046126b7565b5f90815260036020526040902060010154600160a01b900463ffffffff1690565b60405163ffffffff9091168152602001610268565b348015610728575f80fd5b506107086107373660046126b7565b5f90815260036020526040902060010154600160c01b900463ffffffff1690565b348015610763575f80fd5b5061025e6107723660046126b7565b611888565b348015610782575f80fd5b506107086107913660046126b7565b5f90815260036020526040902060010154600160e01b900463ffffffff1690565b3480156107bd575f80fd5b5061025e6107cc3660046126b7565b60016020525f908152604090205481565b3480156107e8575f80fd5b5061022a6107f73660046129a3565b6118c6565b348015610807575f80fd5b5061051d61081636600461256f565b61193f565b348015610826575f80fd5b5061022a6108353660046126b7565b611adc565b348015610845575f80fd5b5061022a6108543660046129f7565b611bde565b348015610864575f80fd5b5061022a610873366004612a29565b611e05565b8461088281611798565b61089f57604051636030e5f560e11b815260040160405180910390fd5b84515f036108c0576040516312fdb46960e31b815260040160405180910390fd5b5f8681526004602081815260408084208054600190910154600390935290842060058101549301546001600160a01b0390911693919290825b8a51811015610a7c57610973838c838151811061091857610918612a5b565b60200260200101518a848151811061093257610932612a5b565b60200260200101518c858151811061094c5761094c612a5b565b60200260200101518e868151811061096657610966612a5b565b6020026020010151611f26565b610990576040516303a479f160e11b815260040160405180910390fd5b61099a8585612a83565b93506109f68c8386898e86815181106109b5576109b5612a5b565b60200260200101518e87815181106109cf576109cf612a5b565b60200260200101518e88815181106109e9576109e9612a5b565b6020026020010151611f63565b8097508195505050888181518110610a1057610a10612a5b565b6020026020010151945060035f8d81526020019081526020015f20600601548514610a4d57610a40602886612a9c565b610a4a9086612abb565b94505b8a8181518110610a5f57610a5f612a5b565b602002602001015192508080610a7490612ace565b9150506108f9565b8215610abe57610a8d8c878661202b565b5f8c815260046020526040902080546001600160a01b0319166001600160a01b038816178155600101859055610af9565b610ad28c87610acd8888612a83565b61202b565b5f8c815260046020526040812080546001600160a01b031916815560018101829055600201555b50505f998a5260036020526040909920600501989098555050505050505050565b5f848152600360205260408120600101548591600160c01b90910463ffffffff169003610b5a5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526003602052604090206002015460ff1615610b8c576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff168015801590610bc557504263ffffffff168163ffffffff1611155b15610be35760405163be17c46b60e01b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff168015801590610c1b57504263ffffffff168163ffffffff16115b15610c395760405163079994c560e31b815260040160405180910390fd5b8634805f03610c5b57604051635de374cf60e11b815260040160405180910390fd5b5f8281526003602052604081206006015490819003610caa575f83815260036020526040902060070154821015610ca55760405163291784d560e01b815260040160405180910390fd5b610cd5565b610cb5816002612ae6565b821015610cd5576040516328eecafb60e21b815260040160405180910390fd5b89888015610d0e575f82815260036020526040902060060154811015610d0e5760405163f6631e6760e01b815260040160405180910390fd5b6001600160a01b038916610d3557604051630ca6549f60e11b815260040160405180910390fd5b610d418c8c8b346120ab565b610d4b8c8c61217c565b505050505050505050505050565b5f85610d6481611798565b610d8157604051636030e5f560e11b815260040160405180910390fd5b5f878152600360205260409020548614610dae57604051630763e45d60e41b815260040160405180910390fd5b5f878152600360205260409020600101546001600160a01b03868116911614610dea5760405163f089a18560e01b815260040160405180910390fd5b5f8781526003602052604090206001015463ffffffff600160c01b90910481169085161115610e2c57604051633f61762b60e01b815260040160405180910390fd5b5f87815260036020526040902060060154831115610e5d57604051634d497e9360e11b815260040160405180910390fd5b5050505f9384525050600360205250604090206004015490565b5f805b8751821015611119575f888381518110610e9657610e96612a5b565b602002602001015190505f888481518110610eb357610eb3612a5b565b602002602001015190505f8167ffffffffffffffff811115610ed757610ed761242a565b604051908082528060200260200182016040528015610f00578160200160208202803683370190505b5090505f8267ffffffffffffffff811115610f1d57610f1d61242a565b604051908082528060200260200182016040528015610f46578160200160208202803683370190505b5090505f8367ffffffffffffffff811115610f6357610f6361242a565b604051908082528060200260200182016040528015610f8c578160200160208202803683370190505b5090505f8467ffffffffffffffff811115610fa957610fa961242a565b604051908082528060200260200182016040528015610fd2578160200160208202803683370190505b5090505f5b858110156110f2578c8881518110610ff157610ff1612a5b565b602002602001015185828151811061100b5761100b612a5b565b6020026020010181815250508b888151811061102957611029612a5b565b602002602001015184828151811061104357611043612a5b565b60200260200101906001600160a01b031690816001600160a01b0316815250508a888151811061107557611075612a5b565b602002602001015183828151811061108f5761108f612a5b565b6020026020010181815250508988815181106110ad576110ad612a5b565b60200260200101518282815181106110c7576110c7612a5b565b6020908102919091010152876110dc81612ace565b98505080806110ea90612ace565b915050610fd7565b6110ff8786868686610878565b50505050505050818061111190612ace565b925050610e7a565b61112161112b565b5050505050505050565b335f81815260066020526040808220805490839055905190929183156108fc02918491818181858888f19350505050158015611169573d5f803e3d5ffd5b5060405181815233907f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab7089060200160405180910390a250565b5f8781526001602052604081205481036111cf5760405163bbbf712b60e01b815260040160405180910390fd5b5f8885896040516020016111e593929190612b1f565b6040516020818303038152906040528051906020012090505f8188888630338a60405160200161121b9796959493929190612b57565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d4260405161127a9796959493929190612bdb565b60405180910390a461129181838a8a8a89346121e2565b9998505050505050505050565b335f81815260056020908152604091829020849055815192835282018390527fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda910160405180910390a150565b5f818152600360205260408120600101548291600160c01b90910463ffffffff16900361132b5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526003602052604090206002015460ff161561135d576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff16801580159061139657504263ffffffff168163ffffffff1611155b156113b45760405163be17c46b60e01b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff1680158015906113ec57504263ffffffff168163ffffffff16115b1561140a5760405163079994c560e31b815260040160405180910390fd5b5f8481526003602081905260409091200154611427903490612a83565b5f858152600360208190526040918290200182905551339186917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab669161147891349190918252602082015260400190565b60405180910390a350505050565b5f8681526001602052604081205481036114b35760405163bbbf712b60e01b815260040160405180910390fd5b5f8784886040516020016114c993929190612b1f565b6040516020818303038152906040528051906020012090505f8187875f3033896040516020016114ff9796959493929190612b57565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c4260405161155e9796959493929190612bdb565b60405180910390a461157581838989895f346121e2565b98975050505050505050565b5f838152600360205260408120600101548491600160c01b90910463ffffffff1690036115c15760405163a42db76b60e01b815260040160405180910390fd5b5f8181526003602052604090206002015460ff16156115f3576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff16801580159061162c57504263ffffffff168163ffffffff1611155b1561164a5760405163be17c46b60e01b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff16801580159061168257504263ffffffff168163ffffffff16115b156116a05760405163079994c560e31b815260040160405180910390fd5b8534805f036116c257604051635de374cf60e11b815260040160405180910390fd5b5f8281526003602052604081206006015490819003611711575f8381526003602052604090206007015482101561170c5760405163291784d560e01b815260040160405180910390fd5b61173c565b61171c816002612ae6565b82101561173c576040516328eecafb60e21b815260040160405180910390fd5b88878015611775575f828152600360205260409020600601548110156117755760405163f6631e6760e01b815260040160405180910390fd5b6117818b8b33346120ab565b61178b8b8b61217c565b5050505050505050505050565b5f8181526003602052604081206001810154600290910154600160e01b90910463ffffffff169060ff161580156117d457505f8163ffffffff16115b80156117ec57504263ffffffff168163ffffffff1611155b9392505050565b5f80548082526001602090815260408084204390555161181591859101612c2a565b60408051601f1981840301815282825280516020918201205f858152600290925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e49061186b908790612c45565b60405180910390a361187e816001612a83565b5f5590505b919050565b5f8161189381611798565b6118b057604051636030e5f560e11b815260040160405180910390fd5b50505f9081526003602052604090206004015490565b5f86815260036020526040902060058101546006909101546118ed91908590859085611f26565b61190a576040516303a479f160e11b815260040160405180910390fd5b5f8681526003602052604081206004015486146119275784611929565b815b9050611936878783611e05565b50505050505050565b5f858152600360205260408120600101548690600160c01b900463ffffffff16820361197e5760405163a42db76b60e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff1680158015906119b757504263ffffffff168163ffffffff1611155b156119d55760405163372900d560e21b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff168015801590611a0d57504263ffffffff168163ffffffff16115b15611a2b5760405163079994c560e31b815260040160405180910390fd5b5f898152600360205260409020600501548851885181141580611a4f575080885114155b80611a5b575080875114155b15611a6a575f95505050611ad0565b5f5b81811015611ac857611a8a838c838151811061091857610918612a5b565b611a99575f9650505050611ad0565b8a8181518110611aab57611aab612a5b565b602002602001015192508080611ac090612ace565b915050611a6c565b506001955050505b50505095945050505050565b5f8181526003602052604090206001015481906001600160a01b03163314611b1757604051634361661f60e11b815260040160405180910390fd5b5f82815260036020526040902060020154829060ff16611b4a5760405163f476ed1160e01b815260040160405180910390fd5b5f83815260036020526040902060028101805460ff1916905560010154611b7e90600160c01b900463ffffffff1642612c57565b5f84815260036020526040808220600101805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255905184917f71bf7c2b9df0b8818e7eb6746a5bf69699ebbab041f3795f9ed58e469afa9a3a91a2505050565b5f8381526003602052604090206001015483906001600160a01b03163314611c1957604051634361661f60e11b815260040160405180910390fd5b5f848152600360205260408120600101548591600160c01b90910463ffffffff169003611c595760405163a42db76b60e01b815260040160405180910390fd5b5f8181526003602052604090206002015460ff1615611c8b576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff168015801590611cc457504263ffffffff168163ffffffff1611155b15611ce25760405163be17c46b60e01b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff168015801590611d1a57504263ffffffff168163ffffffff16115b15611d385760405163079994c560e31b815260040160405180910390fd5b86858015611d71575f82815260036020526040902060060154811015611d715760405163f6631e6760e01b815260040160405180910390fd5b5f89815260036020526040902060010154600160e01b900463ffffffff16611dac576040516397fe1f2760e01b815260040160405180910390fd5b5f89815260036020526040808220600201805460ff19166001179055516001600160a01b038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b5f8381526003602052604090206001015483906001600160a01b03163314611e4057604051634361661f60e11b815260040160405180910390fd5b5f84815260036020526040902060020154849060ff16611e735760405163f476ed1160e01b815260040160405180910390fd5b6001600160a01b038316611e9a576040516335050b6960e11b815260040160405180910390fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f97905f90a35f858152600360205260408120600201805460ff19169055611eed908690869086906120ab565b5f8581526003602052604090206004810185905560010180546001600160e01b0316600160e01b4263ffffffff16021790555050505050565b5f848484845f604051602001611f40959493929190612c7b565b604051602081830303815290604052805190602001208614905095945050505050565b5f8087830361201c576001600160a01b038616611fd9578495505f60035f8b81526020019081526020015f2060030154118015611f9e575060015b15611fd457611fc2898760035f8d81526020019081526020015f206003015461202b565b5f898152600360208190526040822001555b61201c565b856001600160a01b0316856001600160a01b03161461201c575f848810156120015787612003565b845b90506120148a88610acd848c612abb565b859650809750505b50949793965092945050505050565b6001600160a01b0382165f9081526006602052604090205461204e908290612a83565b6001600160a01b0383165f818152600660205260409081902092909255905184907f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a69061209e9085815260200190565b60405180910390a3505050565b5f8481526003602090815260408083206005015490516120d392879186918891879101612c7b565b6040516020818303038152906040528051906020012090505f821115612107575f8581526003602052604090206006018290555b5f8581526003602090815260408083206005018490558051878152918201849052810184905242606082015260808101919091526001600160a01b0384169086907fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219060a00160405180910390a35050505050565b5f82815260036020526040902060048101829055600101546121ab90600160c01b900463ffffffff1642612c57565b5f92835260036020526040909220600101805463ffffffff93909316600160e01b026001600160e01b039093169290921790915550565b5f878152600360205260409020600101548790600160c01b900463ffffffff1615612223576040516001627a443360e01b0319815260040160405180910390fd5b8463ffffffff165f036122495760405163c44c737960e01b815260040160405180910390fd5b6301e133808563ffffffff161061227357604051630ce43fd960e41b815260040160405180910390fd5b816001600160a01b038716158015906122955750336001600160a01b03881614155b1561231d576001600160a01b0387165f90815260056020526040902054808210156122d35760405163d72564c760e01b815260040160405180910390fd5b6122dd8183612abb565b6001600160a01b0389165f90815260066020526040902054909250612303908290612a83565b6001600160a01b0389165f90815260066020526040902055505b5f898152600360205260409020888155600101805463ffffffff888116600160c01b0263ffffffff60c01b19918916600160a01b026001600160c01b03199093166001600160a01b038c1617929092171617905580156123c9575f89815260036020818152604092839020909101839055815183815290810183905233918b917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab66910160405180910390a35b831561241f575f89815260036020526040908190206007018590555189907f9641ca9d53af3bead658ffcc6c7d8c35e7dae9938367bd8eb45bee35d5c62504906124169087815260200190565b60405180910390a25b505050505050505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156124675761246761242a565b604052919050565b5f67ffffffffffffffff8211156124885761248861242a565b5060051b60200190565b5f82601f8301126124a1575f80fd5b813560206124b66124b18361246f565b61243e565b82815260059290921b840181019181810190868411156124d4575f80fd5b8286015b848110156124ef57803583529183019183016124d8565b509695505050505050565b80356001600160a01b0381168114611883575f80fd5b5f82601f83011261251f575f80fd5b8135602061252f6124b18361246f565b82815260059290921b8401810191818101908684111561254d575f80fd5b8286015b848110156124ef57612562816124fa565b8352918301918301612551565b5f805f805f60a08688031215612583575f80fd5b85359450602086013567ffffffffffffffff808211156125a1575f80fd5b6125ad89838a01612492565b955060408801359150808211156125c2575f80fd5b6125ce89838a01612510565b945060608801359150808211156125e3575f80fd5b6125ef89838a01612492565b93506080880135915080821115612604575f80fd5b5061261188828901612492565b9150509295509295909350565b5f805f8060808587031215612631575f80fd5b84359350602085013592506040850135915061264f606086016124fa565b905092959194509250565b803563ffffffff81168114611883575f80fd5b5f805f805f60a08688031215612681575f80fd5b8535945060208601359350612698604087016124fa565b92506126a66060870161265a565b949793965091946080013592915050565b5f602082840312156126c7575f80fd5b5035919050565b5f805f805f8060c087890312156126e3575f80fd5b863567ffffffffffffffff808211156126fa575f80fd5b6127068a838b01612492565b9750602089013591508082111561271b575f80fd5b6127278a838b01612492565b9650604089013591508082111561273c575f80fd5b6127488a838b01612492565b9550606089013591508082111561275d575f80fd5b6127698a838b01612510565b9450608089013591508082111561277e575f80fd5b61278a8a838b01612492565b935060a089013591508082111561279f575f80fd5b506127ac89828a01612492565b9150509295509295509295565b5f82601f8301126127c8575f80fd5b813567ffffffffffffffff8111156127e2576127e261242a565b6127f5601f8201601f191660200161243e565b818152846020838601011115612809575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f805f60e0888a03121561283b575f80fd5b87359650602088013567ffffffffffffffff811115612858575f80fd5b6128648a828b016127b9565b965050612873604089016124fa565b94506128816060890161265a565b935061288f6080890161265a565b925060a0880135915060c0880135905092959891949750929550565b5f602082840312156128bb575f80fd5b6117ec826124fa565b5f805f805f8060c087890312156128d9575f80fd5b86359550602087013567ffffffffffffffff8111156128f6575f80fd5b61290289828a016127b9565b955050612911604088016124fa565b935061291f6060880161265a565b925061292d6080880161265a565b915060a087013590509295509295509295565b5f805f60608486031215612952575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215612979575f80fd5b813567ffffffffffffffff81111561298f575f80fd5b61299b848285016127b9565b949350505050565b5f805f805f8060c087890312156129b8575f80fd5b86359550602087013594506129cf604088016124fa565b935060608701359250608087013591506129eb60a088016124fa565b90509295509295509295565b5f805f60608486031215612a09575f80fd5b83359250612a19602085016124fa565b9150604084013590509250925092565b5f805f60608486031215612a3b575f80fd5b8335925060208401359150612a52604085016124fa565b90509250925092565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115612a9657612a96612a6f565b92915050565b5f82612ab657634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115612a9657612a96612a6f565b5f60018201612adf57612adf612a6f565b5060010190565b8082028115828204841417612a9657612a96612a6f565b5f5b83811015612b17578181015183820152602001612aff565b50505f910152565b83815263ffffffff60e01b8360e01b1660208201525f8251612b48816024850160208701612afd565b91909101602401949350505050565b968752606095861b6bffffffffffffffffffffffff19908116602089015260e09590951b6001600160e01b0319166034880152603887019390935290841b8316605886015290921b16606c830152608082015260a00190565b5f8151808452612bc7816020860160208601612afd565b601f01601f19169290920160200192915050565b87815260e060208201525f612bf360e0830189612bb0565b6001600160a01b039790971660408301525063ffffffff948516606082015292909316608083015260a082015260c0015292915050565b5f8251612c3b818460208701612afd565b9190910192915050565b602081525f6117ec6020830184612bb0565b63ffffffff818116838216019080821115612c7457612c74612a6f565b5092915050565b94855260208501939093526040840191909152606090811b6bffffffffffffffffffffffff191690830152151560f81b60748201526075019056fea2646970667358221220552271d1a2a5768b24fc174d4cab37dbbec32119faabe09b6f6e360e34f9f23464736f6c634300081400337b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
60806040525f805534801562000013575f80fd5b50620000386040518060600160405280603f8152602001620034fd603f9139620000d3565b506200005d6040518060800160405280604f8152602001620035d9604f9139620000d3565b50620000826040518060800160405280605a81526020016200357f605a9139620000d3565b50620000a76040518060800160405280605c8152602001620034a1605c9139620000d3565b50620000cc6040518060800160405280604381526020016200353c60439139620000d3565b506200023c565b6007545f90600160a01b900463ffffffff1615620001045760405163379dfc6360e01b815260040160405180910390fd5b5f805480825260016020908152604092839020439055915190916200012c91859101620001c5565b60408051601f1981840301815282825280516020918201205f858152600290925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e49062000184908790620001e2565b60405180910390a36200019981600162000216565b5f5592915050565b5f5b83811015620001bd578181015183820152602001620001a3565b50505f910152565b5f8251620001d8818460208701620001a1565b9190910192915050565b602081525f825180602084015262000202816040850160208701620001a1565b601f01601f19169190910160400192915050565b808201808211156200023657634e487b7160e01b5f52601160045260245ffd5b92915050565b613257806200024a5f395ff3fe608060405234801561000f575f80fd5b506004361061024a575f3560e01c80637f8d429e11610140578063b8eaa980116100bf578063dbc7214411610084578063dbc7214414610744578063e12891d414610778578063ebbdd2b01461078b578063f6a94ecb1461079e578063fc0c546a146107b1578063fe92049d146107c4575f80fd5b8063b8eaa980146106ec578063bc525652146106ff578063d09cc57e146106aa578063d44e293c1461071e578063d4876b9f14610731575f80fd5b806395addb901161010557806395addb90146105645780639e63fa6a1461064c5780639f1025c61461067b578063a462fb7b146106aa578063acae8f4e146106bd575f80fd5b80637f8d429e146104c557806382ffa9f7146104e857806383bf46091461050a5780638d552d461461051d578063924532fb1461053f575f80fd5b8063420dfdd9116101cc57806352debac31161019157806352debac314610404578063590158a7146104175780636fa427421461047457806370a0823114610493578063762c38fd146104b2575f80fd5b8063420dfdd914610365578063484c0714146103915780634df6ca2a146103b35780634e60f883146103c657806351577ea9146103e5575f80fd5b80632518904c116102125780632518904c146102d257806326d6c97b1461031557806328828b1e146103375780632f998a6f1461034a5780633ccfd60b1461035d575f80fd5b80631101a0fd1461024e578063128b7a471461026357806312a203c314610276578063144fa6d71461029c5780632417395c146102af575b5f80fd5b61026161025c3660046129ec565b6107d7565b005b610261610271366004612a9a565b610a79565b610289610284366004612acd565b610c4c565b6040519081526020015b60405180910390f35b6102616102aa366004612b19565b610d6a565b6102896102bd366004612b34565b5f908152600360208190526040909120015490565b6102fd6102e0366004612b34565b5f908152600360205260409020600101546001600160a01b031690565b6040516001600160a01b039091168152602001610293565b610289610323366004612b34565b5f9081526003602052604090206006015490565b610261610345366004612b4b565b610db6565b610261610358366004612c35565b611094565b6102616112e3565b60075461037c90600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610293565b61028961039f366004612b34565b5f9081526003602052604090206007015490565b6102616103c1366004612b34565b6113da565b6102896103d4366004612b34565b60026020525f908152604090205481565b6102896103f3366004612b34565b5f9081526003602052604090205490565b610289610412366004612ccf565b611455565b61044f610425366004612b34565b60046020525f90815260409020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b039094168452602084019290925290820152606001610293565b610289610482366004612b19565b60056020525f908152604090205481565b6102896104a1366004612b19565b60066020525f908152604090205481565b6102896104c0366004612d5e565b61155c565b6104d86104d3366004612b34565b611657565b6040519015158152602001610293565b6102896104f6366004612b34565b5f9081526003602052604090206005015490565b610289610518366004612ddb565b6116bd565b61028961052b366004612b34565b5f9081526003602052604090206004015490565b6104d861054d366004612b34565b5f9081526003602052604090206002015460ff1690565b6105e5610572366004612b34565b600360208190525f91825260409091208054600182015460028301549383015460048401546005850154600686015460079096015494966001600160a01b0385169663ffffffff600160a01b8704811697600160c01b8804821697600160e01b90049091169560ff90931694929391908b565b604080519b8c526001600160a01b03909a1660208c015263ffffffff988916998b019990995295871660608a015295909316608088015290151560a087015260c086015260e085015261010084019190915261012083015261014082015261016001610293565b61037c61065a366004612b34565b5f90815260036020526040902060010154600160a01b900463ffffffff1690565b61037c610689366004612b34565b5f90815260036020526040902060010154600160c01b900463ffffffff1690565b6102896106b8366004612b34565b611786565b61037c6106cb366004612b34565b5f90815260036020526040902060010154600160e01b900463ffffffff1690565b6102616106fa366004612e14565b6117c4565b61028961070d366004612b34565b60016020525f908152604090205481565b61026161072c366004612e48565b611a3b565b61028961073f366004612ea2565b611ab4565b610261610752366004612f29565b6007805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6104d86107863660046129ec565b611bba565b610261610799366004612b34565b611d57565b6102616107ac366004612f42565b611e87565b6007546102fd906001600160a01b031681565b6102616107d2366004612f77565b6120dc565b846107e181611657565b6107fe57604051636030e5f560e11b815260040160405180910390fd5b84515f0361081f576040516312fdb46960e31b815260040160405180910390fd5b5f8681526004602081815260408084208054600190910154600390935290842060058101549301546001600160a01b0390911693919290825b8a518110156109db576108d2838c838151811061087757610877612fad565b60200260200101518a848151811061089157610891612fad565b60200260200101518c85815181106108ab576108ab612fad565b60200260200101518e86815181106108c5576108c5612fad565b602002602001015161222b565b6108ef576040516303a479f160e11b815260040160405180910390fd5b6108f98585612fd5565b93506109558c8386898e868151811061091457610914612fad565b60200260200101518e878151811061092e5761092e612fad565b60200260200101518e888151811061094857610948612fad565b6020026020010151612268565b809750819550505088818151811061096f5761096f612fad565b6020026020010151945060035f8d81526020019081526020015f206006015485146109ac5761099f602886612fe8565b6109a99086613007565b94505b8a81815181106109be576109be612fad565b6020026020010151925080806109d39061301a565b915050610858565b8215610a1d576109ec8c8786612330565b5f8c815260046020526040902080546001600160a01b0319166001600160a01b038816178155600101859055610a58565b610a318c87610a2c8888612fd5565b612330565b5f8c815260046020526040812080546001600160a01b031916815560018101829055600201555b50505f998a5260036020526040909920600501989098555050505050505050565b5f828152600360205260408120600101548391600160c01b90910463ffffffff169003610ab95760405163a42db76b60e01b815260040160405180910390fd5b5f8181526003602052604090206002015460ff1615610aeb576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff168015801590610b2457504263ffffffff168163ffffffff1611155b15610b425760405163be17c46b60e01b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff168015801590610b7a57504263ffffffff168163ffffffff16115b15610b985760405163079994c560e31b815260040160405180910390fd5b600754600160a01b900463ffffffff1615610bc65760405163379dfc6360e01b815260040160405180910390fd5b610bcf846123b0565b5f8581526003602081905260409091200154610bec908590612fd5565b5f868152600360208190526040918290200182905551339187917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab6691610c3d91899190918252602082015260400190565b60405180910390a35050505050565b5f85610c5781611657565b610c7457604051636030e5f560e11b815260040160405180910390fd5b5f878152600360205260409020548614610ca157604051630763e45d60e41b815260040160405180910390fd5b5f878152600360205260409020600101546001600160a01b03868116911614610cdd5760405163f089a18560e01b815260040160405180910390fd5b5f8781526003602052604090206001015463ffffffff600160c01b90910481169085161115610d1f57604051633f61762b60e01b815260040160405180910390fd5b5f87815260036020526040902060060154831115610d5057604051634d497e9360e11b815260040160405180910390fd5b5050505f9384525050600360205250604090206004015490565b6007546001600160a01b031615610d9457604051635c4e8df160e11b815260040160405180910390fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b600754600160a01b900463ffffffff1615610de45760405163379dfc6360e01b815260040160405180910390fd5b5f805b8751821015611082575f888381518110610e0357610e03612fad565b602002602001015190505f888481518110610e2057610e20612fad565b602002602001015190505f816001600160401b03811115610e4357610e436128a6565b604051908082528060200260200182016040528015610e6c578160200160208202803683370190505b5090505f826001600160401b03811115610e8857610e886128a6565b604051908082528060200260200182016040528015610eb1578160200160208202803683370190505b5090505f836001600160401b03811115610ecd57610ecd6128a6565b604051908082528060200260200182016040528015610ef6578160200160208202803683370190505b5090505f846001600160401b03811115610f1257610f126128a6565b604051908082528060200260200182016040528015610f3b578160200160208202803683370190505b5090505f5b8581101561105b578c8881518110610f5a57610f5a612fad565b6020026020010151858281518110610f7457610f74612fad565b6020026020010181815250508b8881518110610f9257610f92612fad565b6020026020010151848281518110610fac57610fac612fad565b60200260200101906001600160a01b031690816001600160a01b0316815250508a8881518110610fde57610fde612fad565b6020026020010151838281518110610ff857610ff8612fad565b60200260200101818152505089888151811061101657611016612fad565b602002602001015182828151811061103057611030612fad565b6020908102919091010152876110458161301a565b98505080806110539061301a565b915050610f40565b61106887868686866107d7565b50505050505050818061107a9061301a565b925050610de7565b61108a6112e3565b5050505050505050565b5f848152600360205260408120600101548591600160c01b90910463ffffffff1690036110d45760405163a42db76b60e01b815260040160405180910390fd5b5f8181526003602052604090206002015460ff1615611106576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff16801580159061113f57504263ffffffff168163ffffffff1611155b1561115d5760405163be17c46b60e01b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff16801580159061119557504263ffffffff168163ffffffff16115b156111b35760405163079994c560e31b815260040160405180910390fd5b8684805f036111d557604051635de374cf60e11b815260040160405180910390fd5b5f8281526003602052604081206006015490819003611224575f8381526003602052604090206007015482101561121f5760405163291784d560e01b815260040160405180910390fd5b61124f565b61122f816002613032565b82101561124f576040516328eecafb60e21b815260040160405180910390fd5b89888015611288575f828152600360205260409020600601548110156112885760405163f6631e6760e01b815260040160405180910390fd5b600754600160a01b900463ffffffff16156112b65760405163379dfc6360e01b815260040160405180910390fd5b6112bf896123b0565b6112cb8c8c338c6124a8565b6112d58c8c61256f565b505050505050505050505050565b600754600160a01b900463ffffffff16156113115760405163379dfc6360e01b815260040160405180910390fd5b335f818152600660205260408082208054929055600754905163a9059cbb60e01b815260048101939093526024830182905290916001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015611376573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139a9190613049565b6113a2575f80fd5b60405181815233907f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab7089060200160405180910390a250565b600754600160a01b900463ffffffff16156114085760405163379dfc6360e01b815260040160405180910390fd5b335f81815260056020908152604091829020849055815192835282018390527fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda910160405180910390a150565b5f61145f826123b0565b5f89815260016020526040812054900361148c5760405163bbbf712b60e01b815260040160405180910390fd5b5f89868a6040516020016114a29392919061308a565b6040516020818303038152906040528051906020012090505f8189898730338b6040516020016114d897969594939291906130c2565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8e8e8e8e8e8e426040516115379796959493929190613146565b60405180910390a461154e81838b8b8b8a8a6125d5565b9a9950505050505050505050565b5f8681526001602052604081205481036115895760405163bbbf712b60e01b815260040160405180910390fd5b5f87848860405160200161159f9392919061308a565b6040516020818303038152906040528051906020012090505f8187875f3033896040516020016115d597969594939291906130c2565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c426040516116349796959493929190613146565b60405180910390a461164b81838989895f806125d5565b98975050505050505050565b6007545f90600160a01b900463ffffffff16158015906116a257506007545f83815260036020526040902060010154600160a01b90910463ffffffff908116600160e01b9092041610155b156116ae57505f919050565b6116b78261284b565b92915050565b6007545f90600160a01b900463ffffffff16156116ed5760405163379dfc6360e01b815260040160405180910390fd5b5f8054808252600160209081526040928390204390559151909161171391859101613195565b60408051601f1981840301815282825280516020918201205f858152600290925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4906117699087906131b0565b60405180910390a361177c816001612fd5565b5f5590505b919050565b5f8161179181611657565b6117ae57604051636030e5f560e11b815260040160405180910390fd5b50505f9081526003602052604090206004015490565b5f858152600360205260408120600101548691600160c01b90910463ffffffff1690036118045760405163a42db76b60e01b815260040160405180910390fd5b5f8181526003602052604090206002015460ff1615611836576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff16801580159061186f57504263ffffffff168163ffffffff1611155b1561188d5760405163be17c46b60e01b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff1680158015906118c557504263ffffffff168163ffffffff16115b156118e35760405163079994c560e31b815260040160405180910390fd5b8784805f0361190557604051635de374cf60e11b815260040160405180910390fd5b5f8281526003602052604081206006015490819003611954575f8381526003602052604090206007015482101561194f5760405163291784d560e01b815260040160405180910390fd5b61197f565b61195f816002613032565b82101561197f576040516328eecafb60e21b815260040160405180910390fd5b8a8980156119b8575f828152600360205260409020600601548110156119b85760405163f6631e6760e01b815260040160405180910390fd5b600754600160a01b900463ffffffff16156119e65760405163379dfc6360e01b815260040160405180910390fd5b6119ef896123b0565b6001600160a01b038a16611a1657604051630ca6549f60e11b815260040160405180910390fd5b611a228d8d8c8c6124a8565b611a2c8d8d61256f565b50505050505050505050505050565b5f8681526003602052604090206005810154600690910154611a629190859085908561222b565b611a7f576040516303a479f160e11b815260040160405180910390fd5b5f868152600360205260408120600401548614611a9c5784611a9e565b815b9050611aab8787836120dc565b50505050505050565b5f611abe826123b0565b5f888152600160205260408120549003611aeb5760405163bbbf712b60e01b815260040160405180910390fd5b5f888589604051602001611b019392919061308a565b6040516020818303038152906040528051906020012090505f8188885f30338a604051602001611b3797969594939291906130c2565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d42604051611b969796959493929190613146565b60405180910390a4611bad81838a8a8a5f8a6125d5565b9998505050505050505050565b5f858152600360205260408120600101548690600160c01b900463ffffffff168203611bf95760405163a42db76b60e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff168015801590611c3257504263ffffffff168163ffffffff1611155b15611c505760405163372900d560e21b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff168015801590611c8857504263ffffffff168163ffffffff16115b15611ca65760405163079994c560e31b815260040160405180910390fd5b5f898152600360205260409020600501548851885181141580611cca575080885114155b80611cd6575080875114155b15611ce5575f95505050611d4b565b5f5b81811015611d4357611d05838c838151811061087757610877612fad565b611d14575f9650505050611d4b565b8a8181518110611d2657611d26612fad565b602002602001015192508080611d3b9061301a565b915050611ce7565b506001955050505b50505095945050505050565b5f8181526003602052604090206001015481906001600160a01b03163314611d9257604051634361661f60e11b815260040160405180910390fd5b5f82815260036020526040902060020154829060ff16611dc55760405163f476ed1160e01b815260040160405180910390fd5b600754600160a01b900463ffffffff1615611df35760405163379dfc6360e01b815260040160405180910390fd5b5f83815260036020526040902060028101805460ff1916905560010154611e2790600160c01b900463ffffffff16426131c2565b5f84815260036020526040808220600101805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255905184917f71bf7c2b9df0b8818e7eb6746a5bf69699ebbab041f3795f9ed58e469afa9a3a91a2505050565b5f8381526003602052604090206001015483906001600160a01b03163314611ec257604051634361661f60e11b815260040160405180910390fd5b5f848152600360205260408120600101548591600160c01b90910463ffffffff169003611f025760405163a42db76b60e01b815260040160405180910390fd5b5f8181526003602052604090206002015460ff1615611f34576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff168015801590611f6d57504263ffffffff168163ffffffff1611155b15611f8b5760405163be17c46b60e01b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff168015801590611fc357504263ffffffff168163ffffffff16115b15611fe15760405163079994c560e31b815260040160405180910390fd5b8685801561201a575f8281526003602052604090206006015481101561201a5760405163f6631e6760e01b815260040160405180910390fd5b600754600160a01b900463ffffffff16156120485760405163379dfc6360e01b815260040160405180910390fd5b5f89815260036020526040902060010154600160e01b900463ffffffff16612083576040516397fe1f2760e01b815260040160405180910390fd5b5f89815260036020526040808220600201805460ff19166001179055516001600160a01b038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b5f8381526003602052604090206001015483906001600160a01b0316331461211757604051634361661f60e11b815260040160405180910390fd5b5f84815260036020526040902060020154849060ff1661214a5760405163f476ed1160e01b815260040160405180910390fd5b600754600160a01b900463ffffffff16156121785760405163379dfc6360e01b815260040160405180910390fd5b6001600160a01b03831661219f576040516335050b6960e11b815260040160405180910390fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f97905f90a35f858152600360205260408120600201805460ff191690556121f2908690869086906124a8565b5f8581526003602052604090206004810185905560010180546001600160e01b0316600160e01b4263ffffffff16021790555050505050565b5f848484845f6040516020016122459594939291906131e6565b604051602081830303815290604052805190602001208614905095945050505050565b5f80878303612321576001600160a01b0386166122de578495505f60035f8b81526020019081526020015f20600301541180156122a3575060015b156122d9576122c7898760035f8d81526020019081526020015f2060030154612330565b5f898152600360208190526040822001555b612321565b856001600160a01b0316856001600160a01b031614612321575f848810156123065787612308565b845b90506123198a88610a2c848c613007565b859650809750505b50949793965092945050505050565b6001600160a01b0382165f90815260066020526040902054612353908290612fd5565b6001600160a01b0383165f818152600660205260409081902092909255905184907f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a6906123a39085815260200190565b60405180910390a3505050565b805f036123ba5750565b335f90815260066020526040902054801561240f578181106123f3576123e08282613007565b335f908152600660205260409020555050565b6123fd8183613007565b335f9081526006602052604081205591505b6007546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303815f875af1158015612463573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124879190613049565b6124a457604051637e3e710960e11b815260040160405180910390fd5b5050565b5f8481526003602090815260408083206005015490516124d0928791869188918791016131e6565b6040516020818303038152906040528051906020012090505f821115612504575f8581526003602052604090206006018290555b5f8581526003602090815260408083206005018490558051878152918201849052810184905242606082015260808101919091526001600160a01b0384169086907fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219060a001610c3d565b5f828152600360205260409020600481018290556001015461259e90600160c01b900463ffffffff16426131c2565b5f92835260036020526040909220600101805463ffffffff93909316600160e01b026001600160e01b039093169290921790915550565b5f878152600360205260409020600101548790600160c01b900463ffffffff1615612616576040516001627a443360e01b0319815260040160405180910390fd5b600754600160a01b900463ffffffff16156126445760405163379dfc6360e01b815260040160405180910390fd5b8463ffffffff165f0361266a5760405163c44c737960e01b815260040160405180910390fd5b6301e133808563ffffffff161061269457604051630ce43fd960e41b815260040160405180910390fd5b816001600160a01b038716158015906126b65750336001600160a01b03881614155b1561273e576001600160a01b0387165f90815260056020526040902054808210156126f45760405163d72564c760e01b815260040160405180910390fd5b6126fe8183613007565b6001600160a01b0389165f90815260066020526040902054909250612724908290612fd5565b6001600160a01b0389165f90815260066020526040902055505b5f898152600360205260409020888155600101805463ffffffff888116600160c01b0263ffffffff60c01b19918916600160a01b026001600160c01b03199093166001600160a01b038c1617929092171617905580156127ea575f89815260036020818152604092839020909101839055815183815290810183905233918b917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab66910160405180910390a35b8315612840575f89815260036020526040908190206007018590555189907f9641ca9d53af3bead658ffcc6c7d8c35e7dae9938367bd8eb45bee35d5c62504906128379087815260200190565b60405180910390a25b505050505050505050565b5f8181526003602052604081206001810154600290910154600160e01b90910463ffffffff169060ff1615801561288757505f8163ffffffff16115b801561289f57504263ffffffff168163ffffffff1611155b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156128e2576128e26128a6565b604052919050565b5f6001600160401b03821115612902576129026128a6565b5060051b60200190565b5f82601f83011261291b575f80fd5b8135602061293061292b836128ea565b6128ba565b82815260059290921b8401810191818101908684111561294e575f80fd5b8286015b848110156129695780358352918301918301612952565b509695505050505050565b6001600160a01b0381168114612988575f80fd5b50565b5f82601f83011261299a575f80fd5b813560206129aa61292b836128ea565b82815260059290921b840181019181810190868411156129c8575f80fd5b8286015b848110156129695780356129df81612974565b83529183019183016129cc565b5f805f805f60a08688031215612a00575f80fd5b8535945060208601356001600160401b0380821115612a1d575f80fd5b612a2989838a0161290c565b95506040880135915080821115612a3e575f80fd5b612a4a89838a0161298b565b94506060880135915080821115612a5f575f80fd5b612a6b89838a0161290c565b93506080880135915080821115612a80575f80fd5b50612a8d8882890161290c565b9150509295509295909350565b5f8060408385031215612aab575f80fd5b50508035926020909101359150565b803563ffffffff81168114611781575f80fd5b5f805f805f60a08688031215612ae1575f80fd5b85359450602086013593506040860135612afa81612974565b9250612b0860608701612aba565b949793965091946080013592915050565b5f60208284031215612b29575f80fd5b813561289f81612974565b5f60208284031215612b44575f80fd5b5035919050565b5f805f805f8060c08789031215612b60575f80fd5b86356001600160401b0380821115612b76575f80fd5b612b828a838b0161290c565b97506020890135915080821115612b97575f80fd5b612ba38a838b0161290c565b96506040890135915080821115612bb8575f80fd5b612bc48a838b0161290c565b95506060890135915080821115612bd9575f80fd5b612be58a838b0161298b565b94506080890135915080821115612bfa575f80fd5b612c068a838b0161290c565b935060a0890135915080821115612c1b575f80fd5b50612c2889828a0161290c565b9150509295509295509295565b5f805f8060808587031215612c48575f80fd5b5050823594602084013594506040840135936060013592509050565b5f82601f830112612c73575f80fd5b81356001600160401b03811115612c8c57612c8c6128a6565b612c9f601f8201601f19166020016128ba565b818152846020838601011115612cb3575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f805f80610100898b031215612ce7575f80fd5b8835975060208901356001600160401b03811115612d03575f80fd5b612d0f8b828c01612c64565b9750506040890135612d2081612974565b9550612d2e60608a01612aba565b9450612d3c60808a01612aba565b979a969950949793969560a0850135955060c08501359460e001359350915050565b5f805f805f8060c08789031215612d73575f80fd5b8635955060208701356001600160401b03811115612d8f575f80fd5b612d9b89828a01612c64565b9550506040870135612dac81612974565b9350612dba60608801612aba565b9250612dc860808801612aba565b915060a087013590509295509295509295565b5f60208284031215612deb575f80fd5b81356001600160401b03811115612e00575f80fd5b612e0c84828501612c64565b949350505050565b5f805f805f60a08688031215612e28575f80fd5b8535945060208601359350604086013592506060860135612b0881612974565b5f805f805f8060c08789031215612e5d575f80fd5b86359550602087013594506040870135612e7681612974565b9350606087013592506080870135915060a0870135612e9481612974565b809150509295509295509295565b5f805f805f805f60e0888a031215612eb8575f80fd5b8735965060208801356001600160401b03811115612ed4575f80fd5b612ee08a828b01612c64565b9650506040880135612ef181612974565b9450612eff60608901612aba565b9350612f0d60808901612aba565b925060a0880135915060c0880135905092959891949750929550565b5f60208284031215612f39575f80fd5b61289f82612aba565b5f805f60608486031215612f54575f80fd5b833592506020840135612f6681612974565b929592945050506040919091013590565b5f805f60608486031215612f89575f80fd5b83359250602084013591506040840135612fa281612974565b809150509250925092565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156116b7576116b7612fc1565b5f8261300257634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156116b7576116b7612fc1565b5f6001820161302b5761302b612fc1565b5060010190565b80820281158282048414176116b7576116b7612fc1565b5f60208284031215613059575f80fd5b8151801515811461289f575f80fd5b5f5b8381101561308257818101518382015260200161306a565b50505f910152565b83815263ffffffff60e01b8360e01b1660208201525f82516130b3816024850160208701613068565b91909101602401949350505050565b968752606095861b6bffffffffffffffffffffffff19908116602089015260e09590951b6001600160e01b0319166034880152603887019390935290841b8316605886015290921b16606c830152608082015260a00190565b5f8151808452613132816020860160208601613068565b601f01601f19169290920160200192915050565b87815260e060208201525f61315e60e083018961311b565b6001600160a01b039790971660408301525063ffffffff948516606082015292909316608083015260a082015260c0015292915050565b5f82516131a6818460208701613068565b9190910192915050565b602081525f61289f602083018461311b565b63ffffffff8181168382160190808211156131df576131df612fc1565b5092915050565b94855260208501939093526040840191909152606090811b6bffffffffffffffffffffffff191690830152151560f81b60748201526075019056fea264697066735822122013e66cb09f5714d62a4b22b0e9577236e6bc72b0ad1202b9cb1040d54d8c61f364736f6c634300081400337b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d
|
|
@@ -1 +1 @@
|
|
|
1
|
-
60806040525f60015534801562000014575f80fd5b50620000396040518060600160405280603f815260200162003480603f9139620000d4565b506200005e6040518060800160405280604f81526020016200355c604f9139620000d4565b50620000836040518060800160405280605a815260200162003502605a9139620000d4565b50620000a86040518060800160405280605c815260200162003424605c9139620000d4565b50620000cd604051806080016040528060438152602001620034bf60439139620000d4565b506200020d565b6001545f81815260026020908152604080832043905551919291620000fc9185910162000196565b60408051601f1981840301815282825280516020918201205f858152600390925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e49062000154908790620001b3565b60405180910390a362000169816001620001e7565b60015592915050565b5f5b838110156200018e57818101518382015260200162000174565b50505f910152565b5f8251620001a981846020870162000172565b9190910192915050565b602081525f8251806020840152620001d381604085016020870162000172565b601f01601f19169190910160400192915050565b808201808211156200020757634e487b7160e01b5f52601160045260245ffd5b92915050565b613209806200021b5f395ff3fe608060405260043610610249575f3560e01c80637f8d429e11610134578063ab5a4e35116100b3578063d44e293c11610078578063d44e293c146108ac578063e12891d4146108cb578063e83bfb58146108ea578063ebbdd2b014610918578063f6a94ecb14610937578063fe92049d14610956575f80fd5b8063ab5a4e35146107fc578063acae8f4e1461081b578063bc52565214610856578063c081d8a314610881578063d09cc57e146107dd575f80fd5b806395addb90116100f957806395addb901461064d5780639e63fa6a1461073f5780639f1025c61461078f578063a1130d04146107ca578063a462fb7b146107dd575f80fd5b80637f8d429e1461058157806382ffa9f7146105a057806383bf4609146105ce5780638d552d46146105ed578063924532fb1461061c575f80fd5b8063484b93c4116101cb578063590158a711610190578063590158a71461048957806359245ff3146104f25780636fa427421461050557806370a0823114610530578063762c38fd1461055b57806377f325df1461056e575f80fd5b8063484b93c4146103d3578063484c0714146103e65780634df6ca2a146104145780634e60f8831461043357806351577ea91461045e575f80fd5b80632417395c116102115780632417395c146102f55780632518904c1461032357806326d6c97b1461037257806328828b1e146103a05780633ccfd60b146103bf575f80fd5b806306c3b67a1461024d5780631101a0fd14610281578063111ec138146102a25780631126a9dc146102b557806312a203c3146102d6575b5f80fd5b348015610258575f80fd5b5061026c610267366004612876565b610975565b60405190151581526020015b60405180910390f35b34801561028c575f80fd5b506102a061029b3660046129d0565b610989565b005b6102a06102b0366004612a7e565b610c2e565b6102c86102c3366004612b38565b610e6d565b604051908152602001610278565b3480156102e1575f80fd5b506102c86102f0366004612bc5565b611118565b348015610300575f80fd5b506102c861030f366004612876565b5f9081526004602052604090206003015490565b34801561032e575f80fd5b5061035a61033d366004612876565b5f908152600460205260409020600101546001600160a01b031690565b6040516001600160a01b039091168152602001610278565b34801561037d575f80fd5b506102c861038c366004612876565b5f9081526004602052604090206006015490565b3480156103ab575f80fd5b506102a06103ba366004612c0f565b61123a565b3480156103ca575f80fd5b506102a06114ea565b6102c86103e1366004612cf9565b611561565b3480156103f1575f80fd5b506102c8610400366004612876565b5f9081526004602052604090206007015490565b34801561041f575f80fd5b506102a061042e366004612876565b61165d565b34801561043e575f80fd5b506102c861044d366004612876565b60036020525f908152604090205481565b348015610469575f80fd5b506102c8610478366004612876565b5f9081526004602052604090205490565b348015610494575f80fd5b506104cd6104a3366004612876565b60056020525f90815260409020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b039094168452602084019290925290820152606001610278565b6102a0610500366004612876565b6116aa565b348015610510575f80fd5b506102c861051f366004612d7e565b60066020525f908152604090205481565b34801561053b575f80fd5b506102c861054a366004612d7e565b5f6020819052908152604090205481565b6102c8610569366004612d97565b611844565b6102a061057c366004612e12565b61193f565b34801561058c575f80fd5b5061026c61059b366004612876565b611b56565b3480156105ab575f80fd5b506102c86105ba366004612876565b5f9081526004602052604090206005015490565b3480156105d9575f80fd5b506102c86105e8366004612e3b565b611bb1565b3480156105f8575f80fd5b506102c8610607366004612876565b5f908152600460208190526040909120015490565b348015610627575f80fd5b5061026c610636366004612876565b5f9081526004602052604090206002015460ff1690565b348015610658575f80fd5b506106d8610667366004612876565b600460208190525f91825260409091208054600182015460028301546003840154948401546005850154600686015460079096015494966001600160a01b0385169663ffffffff600160a01b8704811697600160c01b8804821697600160e01b90049091169560ff1694929391908b565b604080519b8c526001600160a01b03909a1660208c015263ffffffff988916998b019990995295871660608a015295909316608088015290151560a087015260c086015260e085015261010084019190915261012083015261014082015261016001610278565b34801561074a575f80fd5b5061077a610759366004612876565b5f90815260046020526040902060010154600160a01b900463ffffffff1690565b60405163ffffffff9091168152602001610278565b34801561079a575f80fd5b5061077a6107a9366004612876565b5f90815260046020526040902060010154600160c01b900463ffffffff1690565b6102c86107d8366004612e74565b611c4b565b3480156107e8575f80fd5b506102c86107f7366004612876565b611c66565b348015610807575f80fd5b506102c8610816366004612876565b611ca5565b348015610826575f80fd5b5061077a610835366004612876565b5f90815260046020526040902060010154600160e01b900463ffffffff1690565b348015610861575f80fd5b506102c8610870366004612876565b60026020525f908152604090205481565b34801561088c575f80fd5b506102c861089b366004612876565b60076020525f908152604090205481565b3480156108b7575f80fd5b506102a06108c6366004612ecd565b611d19565b3480156108d6575f80fd5b5061026c6108e53660046129d0565b611d92565b3480156108f5575f80fd5b5061026c610904366004612876565b60086020525f908152604090205460ff1681565b348015610923575f80fd5b506102a0610932366004612876565b611f2f565b348015610942575f80fd5b506102a0610951366004612f21565b612031565b348015610961575f80fd5b506102a0610970366004612f53565b612258565b5f60011961098283611c66565b1492915050565b8461099381611b56565b6109b057604051636030e5f560e11b815260040160405180910390fd5b84515f036109d1576040516312fdb46960e31b815260040160405180910390fd5b5f86815260056020818152604080842080546001909101546004938490529185209384015493909201546001600160a01b039092169390929091825b8a51811015610b9057610a87838c8381518110610a2c57610a2c612f85565b60200260200101518a8481518110610a4657610a46612f85565b60200260200101518c8581518110610a6057610a60612f85565b60200260200101518e8681518110610a7a57610a7a612f85565b6020026020010151612377565b610aa4576040516303a479f160e11b815260040160405180910390fd5b610aae8585612fad565b9350610b0a8c8386898e8681518110610ac957610ac9612f85565b60200260200101518e8781518110610ae357610ae3612f85565b60200260200101518e8881518110610afd57610afd612f85565b60200260200101516123b4565b8097508195505050888181518110610b2457610b24612f85565b6020026020010151945060045f8d81526020019081526020015f20600601548514610b6157610b54602886612fc0565b610b5e9086612fdf565b94505b8a8181518110610b7357610b73612f85565b602002602001015192508080610b8890612ff2565b915050610a0d565b8215610bd257610ba18c878661247d565b5f8c815260056020526040902080546001600160a01b0319166001600160a01b038816178155600101859055610c0d565b610be68c87610be18888612fad565b61247d565b5f8c815260056020526040812080546001600160a01b031916815560018101829055600201555b50505f998a5260046020526040909920600501989098555050505050505050565b5f848152600460205260408120600101548591600160c01b90910463ffffffff169003610c6e5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff1615610ca0576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff168015801590610cd957504263ffffffff168163ffffffff1611155b15610cf75760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff168015801590610d2f57504263ffffffff168163ffffffff16115b15610d4d5760405163079994c560e31b815260040160405180910390fd5b8634805f03610d6f57604051635de374cf60e11b815260040160405180910390fd5b5f8281526004602052604081206006015490819003610dbe575f83815260046020526040902060070154821015610db95760405163291784d560e01b815260040160405180910390fd5b610de9565b610dc981600261300a565b821015610de9576040516328eecafb60e21b815260040160405180910390fd5b89888015610e22575f82815260046020526040902060060154811015610e225760405163f6631e6760e01b815260040160405180910390fd5b6001600160a01b038916610e4957604051630ca6549f60e11b815260040160405180910390fd5b610e558c8c8b346124f5565b610e5f8c8c6125c6565b505050505050505050505050565b5f610e7782610975565b610e9457604051631f45e42760e11b815260040160405180910390fd5b5f89868a604051602001610eaa93929190613043565b60408051601f1981840301815291815281516020928301205f86815260049093529120549091508114610ef0576040516349923ed160e11b815260040160405180910390fd5b5f838152600460205260409020600101546001600160a01b03898116911614610f2c5760405163611876b160e01b815260040160405180910390fd5b5f8381526004602052604090206001015463ffffffff888116600160c01b9092041614610f6c57604051635f4c19f760e01b815260040160405180910390fd5b5f8381526004602052604090206001015463ffffffff878116600160a01b9092041614610fac57604051630a5ab81d60e41b815260040160405180910390fd5b5f838152600460205260409020600701548414610fdc57604051633246892f60e01b815260040160405180910390fd5b5f8381526008602052604090205460ff161561100b5760405163331c2c3f60e11b815260040160405180910390fd5b5f8381526007602052604090205483811561105e5761102982610975565b61104657604051634ec30c8560e01b815260040160405180910390fd5b505f818152600860205260409020805460ff19169055805b5f61106e8d8d8d8d8d8d8d611561565b5f87815260076020908152604080832084905583835260088252808320805460ff19166001179055600490915280822060039081015486845291909220909101549192506110bb91612fad565b5f828152600460205260408082206003908101939093558482528082209092018190559051879183917f32e7d5617fb1be6bd0e7c3974d438d4514c4cf349e9330691d8abf6f6fd431219190a39c9b505050505050505050505050565b5f8561112381611b56565b61114057604051636030e5f560e11b815260040160405180910390fd5b5f87815260046020526040902054861461116d57604051630763e45d60e41b815260040160405180910390fd5b5f878152600460205260409020600101546001600160a01b038681169116146111a95760405163f089a18560e01b815260040160405180910390fd5b5f8781526004602052604090206001015463ffffffff600160c01b909104811690851611156111eb57604051633f61762b60e01b815260040160405180910390fd5b5f8781526004602052604090206006015483111561121c57604051634d497e9360e11b815260040160405180910390fd5b5f878152600460208190526040909120015491505095945050505050565b5f805b87518210156114d8575f88838151811061125957611259612f85565b602002602001015190505f88848151811061127657611276612f85565b602002602001015190505f816001600160401b038111156112995761129961288d565b6040519080825280602002602001820160405280156112c2578160200160208202803683370190505b5090505f826001600160401b038111156112de576112de61288d565b604051908082528060200260200182016040528015611307578160200160208202803683370190505b5090505f836001600160401b038111156113235761132361288d565b60405190808252806020026020018201604052801561134c578160200160208202803683370190505b5090505f846001600160401b038111156113685761136861288d565b604051908082528060200260200182016040528015611391578160200160208202803683370190505b5090505f5b858110156114b1578c88815181106113b0576113b0612f85565b60200260200101518582815181106113ca576113ca612f85565b6020026020010181815250508b88815181106113e8576113e8612f85565b602002602001015184828151811061140257611402612f85565b60200260200101906001600160a01b031690816001600160a01b0316815250508a888151811061143457611434612f85565b602002602001015183828151811061144e5761144e612f85565b60200260200101818152505089888151811061146c5761146c612f85565b602002602001015182828151811061148657611486612f85565b60209081029190910101528761149b81612ff2565b98505080806114a990612ff2565b915050611396565b6114be8786868686610989565b5050505050505081806114d090612ff2565b92505061123d565b6114e06114ea565b5050505050505050565b335f81815260208190526040808220805490839055905190929183156108fc02918491818181858888f19350505050158015611528573d5f803e3d5ffd5b5060405181815233907f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab7089060200160405180910390a250565b5f87815260026020526040812054810361158e5760405163bbbf712b60e01b815260040160405180910390fd5b5f8885896040516020016115a493929190613043565b6040516020818303038152906040528051906020012090505f8188888630338a6040516020016115da979695949392919061307b565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d4260405161163997969594939291906130ff565b60405180910390a461165081838a8a8a893461262e565b9998505050505050505050565b335f81815260066020908152604091829020849055815192835282018390527fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda910160405180910390a150565b5f818152600460205260408120600101548291600160c01b90910463ffffffff1690036116ea5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff161561171c576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff16801580159061175557504263ffffffff168163ffffffff1611155b156117735760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff1680158015906117ab57504263ffffffff168163ffffffff16115b156117c95760405163079994c560e31b815260040160405180910390fd5b5f848152600460205260409020600301546117e5903490612fad565b5f858152600460205260409081902060030182905551339186917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab669161183691349190918252602082015260400190565b60405180910390a350505050565b5f8681526002602052604081205481036118715760405163bbbf712b60e01b815260040160405180910390fd5b5f87848860405160200161188793929190613043565b6040516020818303038152906040528051906020012090505f8187875f3033896040516020016118bd979695949392919061307b565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c4260405161191c97969594939291906130ff565b60405180910390a461193381838989895f3461262e565b98975050505050505050565b5f838152600460205260408120600101548491600160c01b90910463ffffffff16900361197f5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff16156119b1576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff1680158015906119ea57504263ffffffff168163ffffffff1611155b15611a085760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff168015801590611a4057504263ffffffff168163ffffffff16115b15611a5e5760405163079994c560e31b815260040160405180910390fd5b8534805f03611a8057604051635de374cf60e11b815260040160405180910390fd5b5f8281526004602052604081206006015490819003611acf575f83815260046020526040902060070154821015611aca5760405163291784d560e01b815260040160405180910390fd5b611afa565b611ada81600261300a565b821015611afa576040516328eecafb60e21b815260040160405180910390fd5b88878015611b33575f82815260046020526040902060060154811015611b335760405163f6631e6760e01b815260040160405180910390fd5b611b3f8b8b33346124f5565b611b498b8b6125c6565b5050505050505050505050565b5f8181526004602052604081206001810154600290910154600160e01b90910463ffffffff169060ff16158015611b92575063ffffffff811615155b8015611baa57504263ffffffff168163ffffffff1611155b9392505050565b6001545f81815260026020908152604080832043905551919291611bd79185910161314e565b60408051601f1981840301815282825280516020918201205f858152600390925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e490611c2d908790613169565b60405180910390a3611c40816001612fad565b60015590505b919050565b5f80611c5688611bb1565b9050611933818888888888611844565b5f81611c7181611b56565b611c8e57604051636030e5f560e11b815260040160405180910390fd5b50505f908152600460208190526040909120015490565b5f80611cb083611c66565b905060028101611d13575f8381526007602052604090205480611ce65760405163079442c960e01b815260040160405180910390fd5b611cef81611c66565b915060028201611d115760405162a5c78160e11b815260040160405180910390fd5b505b92915050565b5f8681526004602052604090206005810154600690910154611d4091908590859085612377565b611d5d576040516303a479f160e11b815260040160405180910390fd5b5f868152600460208190526040822001548614611d7a5784611d7c565b815b9050611d89878783612258565b50505050505050565b5f858152600460205260408120600101548690600160c01b900463ffffffff168203611dd15760405163a42db76b60e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff168015801590611e0a57504263ffffffff168163ffffffff1611155b15611e285760405163372900d560e21b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff168015801590611e6057504263ffffffff168163ffffffff16115b15611e7e5760405163079994c560e31b815260040160405180910390fd5b5f898152600460205260409020600501548851885181141580611ea2575080885114155b80611eae575080875114155b15611ebd575f95505050611f23565b5f5b81811015611f1b57611edd838c8381518110610a2c57610a2c612f85565b611eec575f9650505050611f23565b8a8181518110611efe57611efe612f85565b602002602001015192508080611f1390612ff2565b915050611ebf565b506001955050505b50505095945050505050565b5f8181526004602052604090206001015481906001600160a01b03163314611f6a57604051634361661f60e11b815260040160405180910390fd5b5f82815260046020526040902060020154829060ff16611f9d5760405163f476ed1160e01b815260040160405180910390fd5b5f83815260046020526040902060028101805460ff1916905560010154611fd190600160c01b900463ffffffff164261317b565b5f84815260046020526040808220600101805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255905184917f71bf7c2b9df0b8818e7eb6746a5bf69699ebbab041f3795f9ed58e469afa9a3a91a2505050565b5f8381526004602052604090206001015483906001600160a01b0316331461206c57604051634361661f60e11b815260040160405180910390fd5b5f848152600460205260408120600101548591600160c01b90910463ffffffff1690036120ac5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff16156120de576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff16801580159061211757504263ffffffff168163ffffffff1611155b156121355760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff16801580159061216d57504263ffffffff168163ffffffff16115b1561218b5760405163079994c560e31b815260040160405180910390fd5b868580156121c4575f828152600460205260409020600601548110156121c45760405163f6631e6760e01b815260040160405180910390fd5b5f89815260046020526040902060010154600160e01b900463ffffffff166121ff576040516397fe1f2760e01b815260040160405180910390fd5b5f89815260046020526040808220600201805460ff19166001179055516001600160a01b038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b5f8381526004602052604090206001015483906001600160a01b0316331461229357604051634361661f60e11b815260040160405180910390fd5b5f84815260046020526040902060020154849060ff166122c65760405163f476ed1160e01b815260040160405180910390fd5b6001600160a01b0383166122ed576040516335050b6960e11b815260040160405180910390fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f97905f90a35f858152600460205260408120600201805460ff19169055612340908690869086906124f5565b5050505f9182526004602081905260409092209182015560010180546001600160e01b0316600160e01b4263ffffffff1602179055565b5f848484845f604051602001612391959493929190613198565b604051602081830303815290604052805190602001208614905095945050505050565b5f8087830361246e576001600160a01b03861661242b575f898152600460205260409020600301549495508594158015906123f157506001198814155b15612426575f89815260046020526040902060030154612414908a90889061247d565b5f898152600460205260408120600301555b61246e565b856001600160a01b0316856001600160a01b03161461246e575f848810156124535787612455565b845b90506124668a88610be1848c612fdf565b859650809750505b50949793965092945050505050565b6001600160a01b0382165f908152602081905260409020546124a0908290612fad565b6001600160a01b0383165f81815260208181526040918290209390935551838152909185917f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a6910160405180910390a3505050565b5f84815260046020908152604080832060050154905161251d92879186918891879101613198565b6040516020818303038152906040528051906020012090505f821115612551575f8581526004602052604090206006018290555b5f8581526004602090815260408083206005018490558051878152918201849052810184905242606082015260808101919091526001600160a01b0384169086907fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219060a00160405180910390a35050505050565b5f828152600460208190526040909120908101829055600101546125f790600160c01b900463ffffffff164261317b565b5f92835260046020526040909220600101805463ffffffff93909316600160e01b026001600160e01b039093169290921790915550565b5f878152600460205260409020600101548790600160c01b900463ffffffff161561266f576040516001627a443360e01b0319815260040160405180910390fd5b8463ffffffff165f036126955760405163c44c737960e01b815260040160405180910390fd5b6301e133808563ffffffff16106126bf57604051630ce43fd960e41b815260040160405180910390fd5b816001600160a01b038716158015906126e15750336001600160a01b03881614155b15612769576001600160a01b0387165f908152600660205260409020548082101561271f5760405163d72564c760e01b815260040160405180910390fd5b6127298183612fdf565b6001600160a01b0389165f9081526020819052604090205490925061274f908290612fad565b6001600160a01b0389165f90815260208190526040902055505b5f898152600460205260409020888155600101805463ffffffff888116600160c01b0263ffffffff60c01b19918916600160a01b026001600160c01b03199093166001600160a01b038c161792909217161790558015612815575f89815260046020908152604091829020600301839055815183815290810183905233918b917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab66910160405180910390a35b831561286b575f89815260046020526040908190206007018590555189907f9641ca9d53af3bead658ffcc6c7d8c35e7dae9938367bd8eb45bee35d5c62504906128629087815260200190565b60405180910390a25b505050505050505050565b5f60208284031215612886575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156128c9576128c961288d565b604052919050565b5f6001600160401b038211156128e9576128e961288d565b5060051b60200190565b5f82601f830112612902575f80fd5b81356020612917612912836128d1565b6128a1565b82815260059290921b84018101918181019086841115612935575f80fd5b8286015b848110156129505780358352918301918301612939565b509695505050505050565b80356001600160a01b0381168114611c46575f80fd5b5f82601f830112612980575f80fd5b81356020612990612912836128d1565b82815260059290921b840181019181810190868411156129ae575f80fd5b8286015b84811015612950576129c38161295b565b83529183019183016129b2565b5f805f805f60a086880312156129e4575f80fd5b8535945060208601356001600160401b0380821115612a01575f80fd5b612a0d89838a016128f3565b95506040880135915080821115612a22575f80fd5b612a2e89838a01612971565b94506060880135915080821115612a43575f80fd5b612a4f89838a016128f3565b93506080880135915080821115612a64575f80fd5b50612a71888289016128f3565b9150509295509295909350565b5f805f8060808587031215612a91575f80fd5b843593506020850135925060408501359150612aaf6060860161295b565b905092959194509250565b5f82601f830112612ac9575f80fd5b81356001600160401b03811115612ae257612ae261288d565b612af5601f8201601f19166020016128a1565b818152846020838601011115612b09575f80fd5b816020850160208301375f918101602001919091529392505050565b803563ffffffff81168114611c46575f80fd5b5f805f805f805f80610100898b031215612b50575f80fd5b8835975060208901356001600160401b03811115612b6c575f80fd5b612b788b828c01612aba565b975050612b8760408a0161295b565b9550612b9560608a01612b25565b9450612ba360808a01612b25565b979a969950949793969560a0850135955060c08501359460e001359350915050565b5f805f805f60a08688031215612bd9575f80fd5b8535945060208601359350612bf06040870161295b565b9250612bfe60608701612b25565b949793965091946080013592915050565b5f805f805f8060c08789031215612c24575f80fd5b86356001600160401b0380821115612c3a575f80fd5b612c468a838b016128f3565b97506020890135915080821115612c5b575f80fd5b612c678a838b016128f3565b96506040890135915080821115612c7c575f80fd5b612c888a838b016128f3565b95506060890135915080821115612c9d575f80fd5b612ca98a838b01612971565b94506080890135915080821115612cbe575f80fd5b612cca8a838b016128f3565b935060a0890135915080821115612cdf575f80fd5b50612cec89828a016128f3565b9150509295509295509295565b5f805f805f805f60e0888a031215612d0f575f80fd5b8735965060208801356001600160401b03811115612d2b575f80fd5b612d378a828b01612aba565b965050612d466040890161295b565b9450612d5460608901612b25565b9350612d6260808901612b25565b925060a0880135915060c0880135905092959891949750929550565b5f60208284031215612d8e575f80fd5b611baa8261295b565b5f805f805f8060c08789031215612dac575f80fd5b8635955060208701356001600160401b03811115612dc8575f80fd5b612dd489828a01612aba565b955050612de36040880161295b565b9350612df160608801612b25565b9250612dff60808801612b25565b915060a087013590509295509295509295565b5f805f60608486031215612e24575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215612e4b575f80fd5b81356001600160401b03811115612e60575f80fd5b612e6c84828501612aba565b949350505050565b5f805f805f8060c08789031215612e89575f80fd5b86356001600160401b0380821115612e9f575f80fd5b612eab8a838b01612aba565b97506020890135915080821115612ec0575f80fd5b50612dd489828a01612aba565b5f805f805f8060c08789031215612ee2575f80fd5b8635955060208701359450612ef96040880161295b565b93506060870135925060808701359150612f1560a0880161295b565b90509295509295509295565b5f805f60608486031215612f33575f80fd5b83359250612f436020850161295b565b9150604084013590509250925092565b5f805f60608486031215612f65575f80fd5b8335925060208401359150612f7c6040850161295b565b90509250925092565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115611d1357611d13612f99565b5f82612fda57634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115611d1357611d13612f99565b5f6001820161300357613003612f99565b5060010190565b8082028115828204841417611d1357611d13612f99565b5f5b8381101561303b578181015183820152602001613023565b50505f910152565b83815263ffffffff60e01b8360e01b1660208201525f825161306c816024850160208701613021565b91909101602401949350505050565b968752606095861b6bffffffffffffffffffffffff19908116602089015260e09590951b6001600160e01b0319166034880152603887019390935290841b8316605886015290921b16606c830152608082015260a00190565b5f81518084526130eb816020860160208601613021565b601f01601f19169290920160200192915050565b87815260e060208201525f61311760e08301896130d4565b6001600160a01b039790971660408301525063ffffffff948516606082015292909316608083015260a082015260c0015292915050565b5f825161315f818460208701613021565b9190910192915050565b602081525f611baa60208301846130d4565b63ffffffff818116838216019080821115611d1157611d11612f99565b94855260208501939093526040840191909152606090811b6bffffffffffffffffffffffff191690830152151560f81b60748201526075019056fea26469706673582212208e07caada7f2a0bff1665740f8ff2994e2a2b6519e2762d015d330f503fcfb8c64736f6c634300081400337b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d
|
|
1
|
+
60806040525f805534801562000013575f80fd5b50620000386040518060600160405280603f8152602001620033e0603f9139620000d3565b506200005d6040518060800160405280604f8152602001620034bc604f9139620000d3565b50620000826040518060800160405280605a815260200162003462605a9139620000d3565b50620000a76040518060800160405280605c815260200162003384605c9139620000d3565b50620000cc6040518060800160405280604381526020016200341f60439139620000d3565b5062000207565b5f805480825260016020908152604080842043905551620000f79185910162000190565b60408051601f1981840301815282825280516020918201205f858152600290925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4906200014f908790620001ad565b60405180910390a362000164816001620001e1565b5f5592915050565b5f5b83811015620001885781810151838201526020016200016e565b50505f910152565b5f8251620001a38184602087016200016c565b9190910192915050565b602081525f8251806020840152620001cd8160408501602087016200016c565b601f01601f19169190910160400192915050565b808201808211156200020157634e487b7160e01b5f52601160045260245ffd5b92915050565b61316f80620002155f395ff3fe60806040526004361061023e575f3560e01c806377f325df11610134578063ab5a4e35116100b3578063d44e293c11610078578063d44e293c14610890578063e12891d4146108af578063e83bfb58146108ce578063ebbdd2b0146108fc578063f6a94ecb1461091b578063fe92049d1461093a575f80fd5b8063ab5a4e35146107e0578063acae8f4e146107ff578063bc5256521461083a578063c081d8a314610865578063d09cc57e146107c1575f80fd5b8063924532fb116100f9578063924532fb1461061157806395addb90146106425780639e63fa6a146107365780639f1025c614610786578063a462fb7b146107c1575f80fd5b806377f325df146105645780637f8d429e1461057757806382ffa9f71461059657806383bf4609146105c45780638d552d46146105e3575f80fd5b8063484b93c4116101c0578063590158a711610185578063590158a71461047f57806359245ff3146104e85780636fa42742146104fb57806370a0823114610526578063762c38fd14610551575f80fd5b8063484b93c4146103c9578063484c0714146103dc5780634df6ca2a1461040a5780634e60f8831461042957806351577ea914610454575f80fd5b80632417395c116102065780632417395c146102ea5780632518904c1461031957806326d6c97b1461036857806328828b1e146103965780633ccfd60b146103b5575f80fd5b806306c3b67a146102425780631101a0fd14610276578063111ec138146102975780631126a9dc146102aa57806312a203c3146102cb575b5f80fd5b34801561024d575f80fd5b5061026161025c366004612835565b610959565b60405190151581526020015b60405180910390f35b348015610281575f80fd5b5061029561029036600461298f565b61096d565b005b6102956102a5366004612a3d565b610c0f565b6102bd6102b8366004612af7565b610e4e565b60405190815260200161026d565b3480156102d6575f80fd5b506102bd6102e5366004612b84565b6110f0565b3480156102f5575f80fd5b506102bd610304366004612835565b5f908152600360208190526040909120015490565b348015610324575f80fd5b50610350610333366004612835565b5f908152600360205260409020600101546001600160a01b031690565b6040516001600160a01b03909116815260200161026d565b348015610373575f80fd5b506102bd610382366004612835565b5f9081526003602052604090206006015490565b3480156103a1575f80fd5b506102956103b0366004612bce565b61120e565b3480156103c0575f80fd5b506102956114be565b6102bd6103d7366004612cb8565b611535565b3480156103e7575f80fd5b506102bd6103f6366004612835565b5f9081526003602052604090206007015490565b348015610415575f80fd5b50610295610424366004612835565b611631565b348015610434575f80fd5b506102bd610443366004612835565b60026020525f908152604090205481565b34801561045f575f80fd5b506102bd61046e366004612835565b5f9081526003602052604090205490565b34801561048a575f80fd5b506104c3610499366004612835565b60046020525f90815260409020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b03909416845260208401929092529082015260600161026d565b6102956104f6366004612835565b61167e565b348015610506575f80fd5b506102bd610515366004612d3d565b60056020525f908152604090205481565b348015610531575f80fd5b506102bd610540366004612d3d565b60066020525f908152604090205481565b6102bd61055f366004612d56565b611819565b610295610572366004612dd1565b611914565b348015610582575f80fd5b50610261610591366004612835565b611b2b565b3480156105a1575f80fd5b506102bd6105b0366004612835565b5f9081526003602052604090206005015490565b3480156105cf575f80fd5b506102bd6105de366004612dfa565b611b86565b3480156105ee575f80fd5b506102bd6105fd366004612835565b5f9081526003602052604090206004015490565b34801561061c575f80fd5b5061026161062b366004612835565b5f9081526003602052604090206002015460ff1690565b34801561064d575f80fd5b506106cf61065c366004612835565b600360208190525f91825260409091208054600182015460028301549383015460048401546005850154600686015460079096015494966001600160a01b0385169663ffffffff600160a01b8704811697600160c01b8804821697600160e01b90049091169560ff90931694929391908b565b604080519b8c526001600160a01b03909a1660208c015263ffffffff988916998b019990995295871660608a015295909316608088015290151560a087015260c086015260e08501526101008401919091526101208301526101408201526101600161026d565b348015610741575f80fd5b50610771610750366004612835565b5f90815260036020526040902060010154600160a01b900463ffffffff1690565b60405163ffffffff909116815260200161026d565b348015610791575f80fd5b506107716107a0366004612835565b5f90815260036020526040902060010154600160c01b900463ffffffff1690565b3480156107cc575f80fd5b506102bd6107db366004612835565b611c1b565b3480156107eb575f80fd5b506102bd6107fa366004612835565b611c59565b34801561080a575f80fd5b50610771610819366004612835565b5f90815260036020526040902060010154600160e01b900463ffffffff1690565b348015610845575f80fd5b506102bd610854366004612835565b60016020525f908152604090205481565b348015610870575f80fd5b506102bd61087f366004612835565b60076020525f908152604090205481565b34801561089b575f80fd5b506102956108aa366004612e33565b611ccd565b3480156108ba575f80fd5b506102616108c936600461298f565b611d46565b3480156108d9575f80fd5b506102616108e8366004612835565b60086020525f908152604090205460ff1681565b348015610907575f80fd5b50610295610916366004612835565b611ee3565b348015610926575f80fd5b50610295610935366004612e87565b611fe5565b348015610945575f80fd5b50610295610954366004612eb9565b61220c565b5f60011961096683611c1b565b1492915050565b8461097781611b2b565b61099457604051636030e5f560e11b815260040160405180910390fd5b84515f036109b5576040516312fdb46960e31b815260040160405180910390fd5b5f8681526004602081815260408084208054600190910154600390935290842060058101549301546001600160a01b0390911693919290825b8a51811015610b7157610a68838c8381518110610a0d57610a0d612eeb565b60200260200101518a8481518110610a2757610a27612eeb565b60200260200101518c8581518110610a4157610a41612eeb565b60200260200101518e8681518110610a5b57610a5b612eeb565b602002602001015161232d565b610a85576040516303a479f160e11b815260040160405180910390fd5b610a8f8585612f13565b9350610aeb8c8386898e8681518110610aaa57610aaa612eeb565b60200260200101518e8781518110610ac457610ac4612eeb565b60200260200101518e8881518110610ade57610ade612eeb565b602002602001015161236a565b8097508195505050888181518110610b0557610b05612eeb565b6020026020010151945060035f8d81526020019081526020015f20600601548514610b4257610b35602886612f26565b610b3f9086612f45565b94505b8a8181518110610b5457610b54612eeb565b602002602001015192508080610b6990612f58565b9150506109ee565b8215610bb357610b828c8786612436565b5f8c815260046020526040902080546001600160a01b0319166001600160a01b038816178155600101859055610bee565b610bc78c87610bc28888612f13565b612436565b5f8c815260046020526040812080546001600160a01b031916815560018101829055600201555b50505f998a5260036020526040909920600501989098555050505050505050565b5f848152600360205260408120600101548591600160c01b90910463ffffffff169003610c4f5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526003602052604090206002015460ff1615610c81576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff168015801590610cba57504263ffffffff168163ffffffff1611155b15610cd85760405163be17c46b60e01b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff168015801590610d1057504263ffffffff168163ffffffff16115b15610d2e5760405163079994c560e31b815260040160405180910390fd5b8634805f03610d5057604051635de374cf60e11b815260040160405180910390fd5b5f8281526003602052604081206006015490819003610d9f575f83815260036020526040902060070154821015610d9a5760405163291784d560e01b815260040160405180910390fd5b610dca565b610daa816002612f70565b821015610dca576040516328eecafb60e21b815260040160405180910390fd5b89888015610e03575f82815260036020526040902060060154811015610e035760405163f6631e6760e01b815260040160405180910390fd5b6001600160a01b038916610e2a57604051630ca6549f60e11b815260040160405180910390fd5b610e368c8c8b346124b6565b610e408c8c612587565b505050505050505050505050565b5f610e5882610959565b610e7557604051631f45e42760e11b815260040160405180910390fd5b5f89868a604051602001610e8b93929190612fa9565b60408051601f1981840301815291815281516020928301205f86815260039093529120549091508114610ed1576040516349923ed160e11b815260040160405180910390fd5b5f838152600360205260409020600101546001600160a01b03898116911614610f0d5760405163611876b160e01b815260040160405180910390fd5b5f8381526003602052604090206001015463ffffffff888116600160c01b9092041614610f4d57604051635f4c19f760e01b815260040160405180910390fd5b5f8381526003602052604090206001015463ffffffff878116600160a01b9092041614610f8d57604051630a5ab81d60e41b815260040160405180910390fd5b5f838152600360205260409020600701548414610fbd57604051633246892f60e01b815260040160405180910390fd5b5f8381526008602052604090205460ff1615610fec5760405163331c2c3f60e11b815260040160405180910390fd5b5f8381526007602052604090205483811561103f5761100a82610959565b61102757604051634ec30c8560e01b815260040160405180910390fd5b505f818152600860205260409020805460ff19169055805b5f61104f8d8d8d8d8d8d8d611535565b5f87815260076020908152604080832084905583835260088252808320805460ff191660011790556003918290528083208201548684529220015491925061109691612f13565b5f828152600360208190526040808320820193909355848252828220018190559051879183917f32e7d5617fb1be6bd0e7c3974d438d4514c4cf349e9330691d8abf6f6fd431219190a39c9b505050505050505050505050565b5f856110fb81611b2b565b61111857604051636030e5f560e11b815260040160405180910390fd5b5f87815260036020526040902054861461114557604051630763e45d60e41b815260040160405180910390fd5b5f878152600360205260409020600101546001600160a01b038681169116146111815760405163f089a18560e01b815260040160405180910390fd5b5f8781526003602052604090206001015463ffffffff600160c01b909104811690851611156111c357604051633f61762b60e01b815260040160405180910390fd5b5f878152600360205260409020600601548311156111f457604051634d497e9360e11b815260040160405180910390fd5b5050505f9384525050600360205250604090206004015490565b5f805b87518210156114ac575f88838151811061122d5761122d612eeb565b602002602001015190505f88848151811061124a5761124a612eeb565b602002602001015190505f816001600160401b0381111561126d5761126d61284c565b604051908082528060200260200182016040528015611296578160200160208202803683370190505b5090505f826001600160401b038111156112b2576112b261284c565b6040519080825280602002602001820160405280156112db578160200160208202803683370190505b5090505f836001600160401b038111156112f7576112f761284c565b604051908082528060200260200182016040528015611320578160200160208202803683370190505b5090505f846001600160401b0381111561133c5761133c61284c565b604051908082528060200260200182016040528015611365578160200160208202803683370190505b5090505f5b85811015611485578c888151811061138457611384612eeb565b602002602001015185828151811061139e5761139e612eeb565b6020026020010181815250508b88815181106113bc576113bc612eeb565b60200260200101518482815181106113d6576113d6612eeb565b60200260200101906001600160a01b031690816001600160a01b0316815250508a888151811061140857611408612eeb565b602002602001015183828151811061142257611422612eeb565b60200260200101818152505089888151811061144057611440612eeb565b602002602001015182828151811061145a5761145a612eeb565b60209081029190910101528761146f81612f58565b985050808061147d90612f58565b91505061136a565b611492878686868661096d565b5050505050505081806114a490612f58565b925050611211565b6114b46114be565b5050505050505050565b335f81815260066020526040808220805490839055905190929183156108fc02918491818181858888f193505050501580156114fc573d5f803e3d5ffd5b5060405181815233907f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab7089060200160405180910390a250565b5f8781526001602052604081205481036115625760405163bbbf712b60e01b815260040160405180910390fd5b5f88858960405160200161157893929190612fa9565b6040516020818303038152906040528051906020012090505f8188888630338a6040516020016115ae9796959493929190612fe1565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d4260405161160d9796959493929190613065565b60405180910390a461162481838a8a8a89346125ed565b9998505050505050505050565b335f81815260056020908152604091829020849055815192835282018390527fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda910160405180910390a150565b5f818152600360205260408120600101548291600160c01b90910463ffffffff1690036116be5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526003602052604090206002015460ff16156116f0576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff16801580159061172957504263ffffffff168163ffffffff1611155b156117475760405163be17c46b60e01b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff16801580159061177f57504263ffffffff168163ffffffff16115b1561179d5760405163079994c560e31b815260040160405180910390fd5b5f84815260036020819052604090912001546117ba903490612f13565b5f858152600360208190526040918290200182905551339186917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab669161180b91349190918252602082015260400190565b60405180910390a350505050565b5f8681526001602052604081205481036118465760405163bbbf712b60e01b815260040160405180910390fd5b5f87848860405160200161185c93929190612fa9565b6040516020818303038152906040528051906020012090505f8187875f3033896040516020016118929796959493929190612fe1565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c426040516118f19796959493929190613065565b60405180910390a461190881838989895f346125ed565b98975050505050505050565b5f838152600360205260408120600101548491600160c01b90910463ffffffff1690036119545760405163a42db76b60e01b815260040160405180910390fd5b5f8181526003602052604090206002015460ff1615611986576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff1680158015906119bf57504263ffffffff168163ffffffff1611155b156119dd5760405163be17c46b60e01b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff168015801590611a1557504263ffffffff168163ffffffff16115b15611a335760405163079994c560e31b815260040160405180910390fd5b8534805f03611a5557604051635de374cf60e11b815260040160405180910390fd5b5f8281526003602052604081206006015490819003611aa4575f83815260036020526040902060070154821015611a9f5760405163291784d560e01b815260040160405180910390fd5b611acf565b611aaf816002612f70565b821015611acf576040516328eecafb60e21b815260040160405180910390fd5b88878015611b08575f82815260036020526040902060060154811015611b085760405163f6631e6760e01b815260040160405180910390fd5b611b148b8b33346124b6565b611b1e8b8b612587565b5050505050505050505050565b5f8181526003602052604081206001810154600290910154600160e01b90910463ffffffff169060ff16158015611b6757505f8163ffffffff16115b8015611b7f57504263ffffffff168163ffffffff1611155b9392505050565b5f805480825260016020908152604080842043905551611ba8918591016130b4565b60408051601f1981840301815282825280516020918201205f858152600290925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e490611bfe9087906130cf565b60405180910390a3611c11816001612f13565b5f5590505b919050565b5f81611c2681611b2b565b611c4357604051636030e5f560e11b815260040160405180910390fd5b50505f9081526003602052604090206004015490565b5f80611c6483611c1b565b905060028101611cc7575f8381526007602052604090205480611c9a5760405163079442c960e01b815260040160405180910390fd5b611ca381611c1b565b915060028201611cc55760405162a5c78160e11b815260040160405180910390fd5b505b92915050565b5f8681526003602052604090206005810154600690910154611cf49190859085908561232d565b611d11576040516303a479f160e11b815260040160405180910390fd5b5f868152600360205260408120600401548614611d2e5784611d30565b815b9050611d3d87878361220c565b50505050505050565b5f858152600360205260408120600101548690600160c01b900463ffffffff168203611d855760405163a42db76b60e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff168015801590611dbe57504263ffffffff168163ffffffff1611155b15611ddc5760405163372900d560e21b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff168015801590611e1457504263ffffffff168163ffffffff16115b15611e325760405163079994c560e31b815260040160405180910390fd5b5f898152600360205260409020600501548851885181141580611e56575080885114155b80611e62575080875114155b15611e71575f95505050611ed7565b5f5b81811015611ecf57611e91838c8381518110610a0d57610a0d612eeb565b611ea0575f9650505050611ed7565b8a8181518110611eb257611eb2612eeb565b602002602001015192508080611ec790612f58565b915050611e73565b506001955050505b50505095945050505050565b5f8181526003602052604090206001015481906001600160a01b03163314611f1e57604051634361661f60e11b815260040160405180910390fd5b5f82815260036020526040902060020154829060ff16611f515760405163f476ed1160e01b815260040160405180910390fd5b5f83815260036020526040902060028101805460ff1916905560010154611f8590600160c01b900463ffffffff16426130e1565b5f84815260036020526040808220600101805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255905184917f71bf7c2b9df0b8818e7eb6746a5bf69699ebbab041f3795f9ed58e469afa9a3a91a2505050565b5f8381526003602052604090206001015483906001600160a01b0316331461202057604051634361661f60e11b815260040160405180910390fd5b5f848152600360205260408120600101548591600160c01b90910463ffffffff1690036120605760405163a42db76b60e01b815260040160405180910390fd5b5f8181526003602052604090206002015460ff1615612092576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260036020526040902060010154600160e01b900463ffffffff1680158015906120cb57504263ffffffff168163ffffffff1611155b156120e95760405163be17c46b60e01b815260040160405180910390fd5b5f82815260036020526040902060010154600160a01b900463ffffffff16801580159061212157504263ffffffff168163ffffffff16115b1561213f5760405163079994c560e31b815260040160405180910390fd5b86858015612178575f828152600360205260409020600601548110156121785760405163f6631e6760e01b815260040160405180910390fd5b5f89815260036020526040902060010154600160e01b900463ffffffff166121b3576040516397fe1f2760e01b815260040160405180910390fd5b5f89815260036020526040808220600201805460ff19166001179055516001600160a01b038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b5f8381526003602052604090206001015483906001600160a01b0316331461224757604051634361661f60e11b815260040160405180910390fd5b5f84815260036020526040902060020154849060ff1661227a5760405163f476ed1160e01b815260040160405180910390fd5b6001600160a01b0383166122a1576040516335050b6960e11b815260040160405180910390fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f97905f90a35f858152600360205260408120600201805460ff191690556122f4908690869086906124b6565b5f8581526003602052604090206004810185905560010180546001600160e01b0316600160e01b4263ffffffff16021790555050505050565b5f848484845f6040516020016123479594939291906130fe565b604051602081830303815290604052805190602001208614905095945050505050565b5f80878303612427576001600160a01b0386166123e4578495505f60035f8b81526020019081526020015f20600301541180156123a957506001198814155b156123df576123cd898760035f8d81526020019081526020015f2060030154612436565b5f898152600360208190526040822001555b612427565b856001600160a01b0316856001600160a01b031614612427575f8488101561240c578761240e565b845b905061241f8a88610bc2848c612f45565b859650809750505b50949793965092945050505050565b6001600160a01b0382165f90815260066020526040902054612459908290612f13565b6001600160a01b0383165f818152600660205260409081902092909255905184907f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a6906124a99085815260200190565b60405180910390a3505050565b5f8481526003602090815260408083206005015490516124de928791869188918791016130fe565b6040516020818303038152906040528051906020012090505f821115612512575f8581526003602052604090206006018290555b5f8581526003602090815260408083206005018490558051878152918201849052810184905242606082015260808101919091526001600160a01b0384169086907fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219060a00160405180910390a35050505050565b5f82815260036020526040902060048101829055600101546125b690600160c01b900463ffffffff16426130e1565b5f92835260036020526040909220600101805463ffffffff93909316600160e01b026001600160e01b039093169290921790915550565b5f878152600360205260409020600101548790600160c01b900463ffffffff161561262e576040516001627a443360e01b0319815260040160405180910390fd5b8463ffffffff165f036126545760405163c44c737960e01b815260040160405180910390fd5b6301e133808563ffffffff161061267e57604051630ce43fd960e41b815260040160405180910390fd5b816001600160a01b038716158015906126a05750336001600160a01b03881614155b15612728576001600160a01b0387165f90815260056020526040902054808210156126de5760405163d72564c760e01b815260040160405180910390fd5b6126e88183612f45565b6001600160a01b0389165f9081526006602052604090205490925061270e908290612f13565b6001600160a01b0389165f90815260066020526040902055505b5f898152600360205260409020888155600101805463ffffffff888116600160c01b0263ffffffff60c01b19918916600160a01b026001600160c01b03199093166001600160a01b038c1617929092171617905580156127d4575f89815260036020818152604092839020909101839055815183815290810183905233918b917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab66910160405180910390a35b831561282a575f89815260036020526040908190206007018590555189907f9641ca9d53af3bead658ffcc6c7d8c35e7dae9938367bd8eb45bee35d5c62504906128219087815260200190565b60405180910390a25b505050505050505050565b5f60208284031215612845575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156128885761288861284c565b604052919050565b5f6001600160401b038211156128a8576128a861284c565b5060051b60200190565b5f82601f8301126128c1575f80fd5b813560206128d66128d183612890565b612860565b82815260059290921b840181019181810190868411156128f4575f80fd5b8286015b8481101561290f57803583529183019183016128f8565b509695505050505050565b80356001600160a01b0381168114611c16575f80fd5b5f82601f83011261293f575f80fd5b8135602061294f6128d183612890565b82815260059290921b8401810191818101908684111561296d575f80fd5b8286015b8481101561290f576129828161291a565b8352918301918301612971565b5f805f805f60a086880312156129a3575f80fd5b8535945060208601356001600160401b03808211156129c0575f80fd5b6129cc89838a016128b2565b955060408801359150808211156129e1575f80fd5b6129ed89838a01612930565b94506060880135915080821115612a02575f80fd5b612a0e89838a016128b2565b93506080880135915080821115612a23575f80fd5b50612a30888289016128b2565b9150509295509295909350565b5f805f8060808587031215612a50575f80fd5b843593506020850135925060408501359150612a6e6060860161291a565b905092959194509250565b5f82601f830112612a88575f80fd5b81356001600160401b03811115612aa157612aa161284c565b612ab4601f8201601f1916602001612860565b818152846020838601011115612ac8575f80fd5b816020850160208301375f918101602001919091529392505050565b803563ffffffff81168114611c16575f80fd5b5f805f805f805f80610100898b031215612b0f575f80fd5b8835975060208901356001600160401b03811115612b2b575f80fd5b612b378b828c01612a79565b975050612b4660408a0161291a565b9550612b5460608a01612ae4565b9450612b6260808a01612ae4565b979a969950949793969560a0850135955060c08501359460e001359350915050565b5f805f805f60a08688031215612b98575f80fd5b8535945060208601359350612baf6040870161291a565b9250612bbd60608701612ae4565b949793965091946080013592915050565b5f805f805f8060c08789031215612be3575f80fd5b86356001600160401b0380821115612bf9575f80fd5b612c058a838b016128b2565b97506020890135915080821115612c1a575f80fd5b612c268a838b016128b2565b96506040890135915080821115612c3b575f80fd5b612c478a838b016128b2565b95506060890135915080821115612c5c575f80fd5b612c688a838b01612930565b94506080890135915080821115612c7d575f80fd5b612c898a838b016128b2565b935060a0890135915080821115612c9e575f80fd5b50612cab89828a016128b2565b9150509295509295509295565b5f805f805f805f60e0888a031215612cce575f80fd5b8735965060208801356001600160401b03811115612cea575f80fd5b612cf68a828b01612a79565b965050612d056040890161291a565b9450612d1360608901612ae4565b9350612d2160808901612ae4565b925060a0880135915060c0880135905092959891949750929550565b5f60208284031215612d4d575f80fd5b611b7f8261291a565b5f805f805f8060c08789031215612d6b575f80fd5b8635955060208701356001600160401b03811115612d87575f80fd5b612d9389828a01612a79565b955050612da26040880161291a565b9350612db060608801612ae4565b9250612dbe60808801612ae4565b915060a087013590509295509295509295565b5f805f60608486031215612de3575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215612e0a575f80fd5b81356001600160401b03811115612e1f575f80fd5b612e2b84828501612a79565b949350505050565b5f805f805f8060c08789031215612e48575f80fd5b8635955060208701359450612e5f6040880161291a565b93506060870135925060808701359150612e7b60a0880161291a565b90509295509295509295565b5f805f60608486031215612e99575f80fd5b83359250612ea96020850161291a565b9150604084013590509250925092565b5f805f60608486031215612ecb575f80fd5b8335925060208401359150612ee26040850161291a565b90509250925092565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115611cc757611cc7612eff565b5f82612f4057634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115611cc757611cc7612eff565b5f60018201612f6957612f69612eff565b5060010190565b8082028115828204841417611cc757611cc7612eff565b5f5b83811015612fa1578181015183820152602001612f89565b50505f910152565b83815263ffffffff60e01b8360e01b1660208201525f8251612fd2816024850160208701612f87565b91909101602401949350505050565b968752606095861b6bffffffffffffffffffffffff19908116602089015260e09590951b6001600160e01b0319166034880152603887019390935290841b8316605886015290921b16606c830152608082015260a00190565b5f8151808452613051816020860160208601612f87565b601f01601f19169290920160200192915050565b87815260e060208201525f61307d60e083018961303a565b6001600160a01b039790971660408301525063ffffffff948516606082015292909316608083015260a082015260c0015292915050565b5f82516130c5818460208701612f87565b9190910192915050565b602081525f611b7f602083018461303a565b63ffffffff818116838216019080821115611cc557611cc5612eff565b94855260208501939093526040840191909152606090811b6bffffffffffffffffffffffff191690830152151560f81b60748201526075019056fea2646970667358221220f95c8652d07779fc0de6ffc3e93f0d15630c13a205b8f9e65f2f68a0efbd12e464736f6c634300081400337b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d
|