@keep-network/tbtc-v2 0.1.1-dev.93 → 0.1.1-dev.96
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/artifacts/Bank.json +3 -3
- package/artifacts/Bridge.json +11 -11
- package/artifacts/Deposit.json +7 -7
- package/artifacts/DepositSweep.json +7 -7
- package/artifacts/EcdsaDkgValidator.json +1 -1
- package/artifacts/EcdsaInactivity.json +1 -1
- package/artifacts/EcdsaSortitionPool.json +2 -2
- package/artifacts/Fraud.json +9 -9
- package/artifacts/KeepRegistry.json +1 -1
- package/artifacts/KeepStake.json +2 -2
- package/artifacts/KeepToken.json +2 -2
- package/artifacts/KeepTokenStaking.json +1 -1
- package/artifacts/MovingFunds.json +9 -9
- package/artifacts/NuCypherStakingEscrow.json +1 -1
- package/artifacts/NuCypherToken.json +2 -2
- package/artifacts/RandomBeaconStub.json +1 -1
- package/artifacts/Redemption.json +9 -9
- package/artifacts/ReimbursementPool.json +2 -2
- package/artifacts/Relay.json +9 -9
- package/artifacts/T.json +2 -2
- package/artifacts/TBTC.json +3 -3
- package/artifacts/TBTCToken.json +3 -3
- package/artifacts/TBTCVault.json +12 -12
- package/artifacts/TokenStaking.json +1 -1
- package/artifacts/TokenholderGovernor.json +9 -9
- package/artifacts/TokenholderTimelock.json +8 -8
- package/artifacts/VendingMachine.json +10 -10
- package/artifacts/VendingMachineKeep.json +1 -1
- package/artifacts/VendingMachineNuCypher.json +1 -1
- package/artifacts/WalletRegistry.json +5 -5
- package/artifacts/WalletRegistryGovernance.json +2 -2
- package/artifacts/Wallets.json +9 -9
- package/artifacts/solcInputs/{4a775d74796a3fcb9cf30efbb6a767dd.json → 3cf46a7694ce157f71d9dbf4db692b09.json} +4 -4
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
- package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
- package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +2 -2
- package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/bridge/Bridge.sol/Bridge.json +2 -2
- package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
- package/build/contracts/bridge/BridgeState.sol/BridgeState.json +2 -2
- package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
- package/build/contracts/bridge/Deposit.sol/Deposit.json +2 -2
- package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
- package/build/contracts/bridge/DepositSweep.sol/DepositSweep.json +2 -2
- package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
- package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
- package/build/contracts/bridge/Fraud.sol/Fraud.json +2 -2
- package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
- package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
- package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
- package/build/contracts/bridge/MovingFunds.sol/MovingFunds.json +2 -2
- package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
- package/build/contracts/bridge/Redemption.sol/OutboundTx.json +2 -2
- package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
- package/build/contracts/bridge/Redemption.sol/Redemption.json +2 -2
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
- package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
- package/build/contracts/bridge/Wallets.sol/Wallets.json +2 -2
- package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
- package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
- package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
- package/contracts/bridge/DepositSweep.sol +3 -0
- package/contracts/bridge/MovingFunds.sol +27 -6
- package/contracts/bridge/Redemption.sol +56 -38
- package/contracts/bridge/Wallets.sol +5 -5
- package/package.json +2 -2
|
@@ -85,8 +85,8 @@
|
|
|
85
85
|
"type": "event"
|
|
86
86
|
}
|
|
87
87
|
],
|
|
88
|
-
"bytecode": "0x613f7761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c8063a164de6e1461005b578063a76558b31461007d578063d25398081461009d578063f5ada442146100bd575b600080fd5b81801561006757600080fd5b5061007b61007636600461356a565b6100dd565b005b81801561008957600080fd5b5061007b610098366004613642565b610476565b8180156100a957600080fd5b5061007b6100b836600461372b565b6109f9565b8180156100c957600080fd5b5061007b6100d836600461379b565b610a5d565b60006100ea868686610aba565b905061013b866100fd602088018861382e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250879150610daa9050565b6001600160601b031982166000908152601d8701602052604090206002810154600160c01b900460ff16600181600581111561017957610179613874565b14806101965750600281600581111561019457610194613874565b145b61020d5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201527f46756e647320737461746500000000000000000000000000000000000000000060648201526084015b60405180910390fd5b600061025c8961022060408b018b61382e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611004915050565b60608101519091506001600160401b0316156102dc5783816040015182606001516040516020016102ba9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f19818403018152919052805160209091012060018401556102e4565b600060018401555b80516002840180546000906103039084906001600160401b03166138a0565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550846bffffffffffffffffffffffff19167fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe8560405161036891815260200190565b60405180910390a2885481516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201526001600160a01b039091169063392aee4390602401600060405180830381600087803b1580156103d957600080fd5b505af11580156103ed573d6000803e3d6000fd5b50508a546004808d015460208601516040516356a6d9ef60e01b81526001600160a01b03928316938101939093526001600160401b0316602483015290911692506356a6d9ef91506044015b600060405180830381600087803b15801561045357600080fd5b505af1158015610467573d6000803e3d6000fd5b50505050505050505050505050565b600085838360405160200161048d939291906138c8565b60408051808303601f190181528282528051602091820120600081815260128c01835283902060a08501845280546001600160a01b0381168652600160a01b90046001600160401b039081169386019390935260010154808316938501939093526801000000000000000083049091166060840152600160801b90910463ffffffff16608083018190529092506105705760405162461bcd60e51b815260206004820152602160248201527f526564656d7074696f6e207265717565737420646f6573206e6f7420657869736044820152601d60fa1b6064820152608401610204565b4288600f0154826080015163ffffffff1661058b91906138ec565b106105fd5760405162461bcd60e51b8152602060048201526024808201527f526564656d7074696f6e207265717565737420686173206e6f742074696d656460448201527f206f7574000000000000000000000000000000000000000000000000000000006064820152608401610204565b6001600160601b031987166000908152601d89016020908152604091829020918301519083015161062e91906138a0565b60028201805460009061064b9084906001600160401b03166138a0565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506001600581111561068257610682613874565b6002820154600160c01b900460ff1660058111156106a2576106a2613874565b14806106cc5750600280820154600160c01b900460ff1660058111156106ca576106ca613874565b145b806106f6575060056002820154600160c01b900460ff1660058111156106f4576106f4613874565b145b6107685760405162461bcd60e51b815260206004820152603b60248201527f5468652077616c6c6574206d75737420626520696e204c6976652c204d6f766960448201527f6e6746756e6473206f72205465726d696e6174656420737461746500000000006064820152608401610204565b600083815260138a016020908152604080832085518154878501516001600160a01b039092166001600160e01b031991821617600160a01b6001600160401b0393841602178355878401516001938401805460608b015160808c01519386167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090921691909117680100000000000000009190951602939093177fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff16600160801b63ffffffff909216919091021790915560128e019093529220805490911681558101805473ffffffffffffffffffffffffffffffffffffffff191690556002820154600160c01b900460ff16600581111561088657610886613874565b14806108b05750600280820154600160c01b900460ff1660058111156108ae576108ae613874565b145b1561096957600289015460108a015460118b015483546040517fd8dc404d0000000000000000000000000000000000000000000000000000000081526001600160a01b039094169363d8dc404d93610924936bffffffffffffffffffffffff9091169290913391908e908e90600401613918565b600060405180830381600087803b15801561093e57600080fd5b505af1158015610952573d6000803e3d6000fd5b50505050610969888a61113b90919063ffffffff16565b876bffffffffffffffffffffffff19167f013dddc8debc4730cd01232fdcea9ae6013689837732356c187fe5edb9a8a8d586866040516109aa92919061399a565b60405180910390a28854825160208401516040516356a6d9ef60e01b81526001600160a01b0392831660048201526001600160401b0390911660248201529116906356a6d9ef90604401610439565b60008080808080610a0c87890189613a0f565b955095509550955095509550610a508b8660405180606001604052808881526020018763ffffffff168152602001866001600160401b03168152508d8a868f611230565b5050505050505050505050565b610ab18787610a7136899003890189613af0565b878888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611230915050565b50505050505050565b6000610b06610acc602085018561382e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119cd92505050565b610b525760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f76696465640000006044820152606401610204565b610b9c610b62604085018561382e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a7d92505050565b610be85760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f766964656400006044820152606401610204565b610c4b610bf86020850185613b54565b610c05602086018661382e565b610c12604088018861382e565b610c2260808a0160608b01613b54565b604051602001610c3796959493929190613b7e565b604051602081830303815290604052611b20565b9050610ce6610c9a610c60604085018561382e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b4792505050565b610ca4848061382e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869493925050506020860135611b56565b610d585760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e642074782068617368000000006064820152608401610204565b610da384610d69604085018561382e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b9492505050565b9392505050565b6001600160601b031981166000908152601d8501602052604090206001015480610e165760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c65740000006044820152606401610204565b808335610e296040860160208701613bc0565b610e396060870160408801613bdb565b604051602001610e769392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014610ed95760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f2064617461000000000000000000006044820152606401610204565b600080610ee586611f03565b9092509050843582148015610f14575063ffffffff8116610f0c6040870160208801613bc0565b63ffffffff16145b610f865760405162461bcd60e51b815260206004820152603f60248201527f4f7574626f756e64207472616e73616374696f6e20696e707574206d7573742060448201527f706f696e7420746f207468652077616c6c65742773206d61696e205554584f006064820152608401610204565b60016019880160008735610fa060408a0160208b01613bc0565b604051602001610fc792919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff191691151591909117905550505050505050565b6040805160808101825260008082526020820181905291810182905260608101829052908061103285611fde565b909250905060006110448360016138ec565b6040517f1976a9140000000000000000000000000000000000000000000000000000000060208201526001600160601b03198716602482015261222b60f21b6038820152909150600090603a0160408051601f198184030181529082905280516020918201207f1600140000000000000000000000000000000000000000000000000000000000918301919091526001600160601b031988166023830152915060009060370160405160208183030381529060405280519060200120905061112e898989604051806080016040528088815260200189815260200187815260200186815250611ff5565b9998505050505050505050565b6001600160601b031981166000908152601d83016020526040902060020154600160c01b900460ff16600181600581111561117857611178613874565b14806111955750600281600581111561119357611193613874565b145b6112075760405162461bcd60e51b815260206004820152603160248201527f45434453412077616c6c6574206d75737420626520696e204c697665206f722060448201527f4d6f76696e6746756e64732073746174650000000000000000000000000000006064820152608401610204565b600181600581111561121b5761121b613874565b141561122b5761122b83836121ef565b505050565b6001600160601b031986166000908152601d88016020526040902060016002820154600160c01b900460ff16600581111561126d5761126d613874565b146112ba5760405162461bcd60e51b815260206004820152601c60248201527f57616c6c6574206d75737420626520696e204c697665207374617465000000006044820152606401610204565b6001810154806113165760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c656044820152601d60fa1b6064820152608401610204565b808760000151886020015189604001516040516020016113639392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146113c65760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f2064617461000000000000000000006044820152606401610204565b60006113f6600060c01b866040516020016113e2929190613c26565b604051602081830303815290604052612339565b9050600081511161146f5760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e6461726420747970650000000000000000000000000000000000006064820152608401610204565b80805190602001208960405160200161149891906001600160601b031991909116815260140190565b6040516020818303038152906040528051906020012014156115225760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b480000000000000000006064820152608401610204565b600e8a01546001600160401b0390811690851610156115835760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c00000000006044820152606401610204565b60008986604051602001611598929190613c56565b60408051808303601f190181529181528151602092830120600081815260128f01909352912060010154909150600160801b900463ffffffff161561166b5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a401610204565b600e8b01546000906801000000000000000090046001600160401b03166116935760006116b7565b600e8c01546116b7906801000000000000000090046001600160401b031687613ca1565b600e8d0154909150600160801b90046001600160401b03166116d982886138a0565b6002870180546000906116f69084906001600160401b0316613cc7565b92506101000a8154816001600160401b0302191690836001600160401b031602179055508560020160009054906101000a90046001600160401b03166001600160401b03168b604001516001600160401b031610156117975760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e6473000000000000006044820152606401610204565b6040518060a001604052808a6001600160a01b03168152602001886001600160401b03168152602001836001600160401b03168152602001826001600160401b031681526020014263ffffffff168152508d601201600085815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160010160086101000a8154816001600160401b0302191690836001600160401b0316021790555060808201518160010160106101000a81548163ffffffff021916908363ffffffff160217905550905050886001600160a01b03168c6bffffffffffffffffffffffff19167f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d958a8a868660405161192a9493929190613cf2565b60405180910390a38c546040517f7c6db49c0000000000000000000000000000000000000000000000000000000081526001600160a01b038c811660048301523060248301526001600160401b038a16604483015290911690637c6db49c90606401600060405180830381600087803b1580156119a657600080fd5b505af11580156119ba573d6000803e3d6000fd5b5050505050505050505050505050505050565b60008060006119db84611fde565b90925090508015806119ee575060001982145b156119fd575060009392505050565b6000611a0a8360016138ec565b905060005b82811015611a705785518210611a2b5750600095945050505050565b6000611a3787846125d7565b9050600019811415611a50575060009695505050505050565b611a5a81846138ec565b9250508080611a6890613d41565b915050611a0f565b5093519093149392505050565b6000806000611a8b84611fde565b9092509050801580611a9e575060001982145b15611aad575060009392505050565b6000611aba8360016138ec565b905060005b82811015611a705785518210611adb5750600095945050505050565b6000611ae7878461262b565b9050600019811415611b00575060009695505050505050565b611b0a81846138ec565b9250508080611b1890613d41565b915050611abf565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60448101516000905b92915050565b60008385148015611b65575081155b8015611b7057508251155b15611b7d57506001611b8c565b611b8985848685612691565b90505b949350505050565b6001820154604080517f113764be00000000000000000000000000000000000000000000000000000000815290516001600160a01b0390921691600091839163113764be91600480820192602092909190829003018186803b158015611bf957600080fd5b505afa158015611c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c319190613d5c565b90506000826001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b158015611c6e57600080fd5b505afa158015611c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca69190613d5c565b9050600080611cbc611cb787612739565b6127ce565b905083811415611cce57839150611d4c565b82811415611cde57829150611d4c565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c74790000000000000000000000000000000000000000000000000000006064820152608401610204565b6000611d57876127f6565b9050600019811415611dd15760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e00000000000000000000000000000000000000000000000000000000006064820152608401610204565b600119811415611e235760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e00000000000000000000006044820152606401610204565b600219811415611e755760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e2061206865616465720000006044820152606401610204565b6003880154611e849084613d75565b811015611ef95760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e000000000000000000000000006064820152608401610204565b5050505050505050565b6000806000611f1184611fde565b91505080600114611f8a5760405162461bcd60e51b815260206004820152602d60248201527f4f7574626f756e64207472616e73616374696f6e206d7573742068617665206160448201527f2073696e676c6520696e707574000000000000000000000000000000000000006064820152608401610204565b6000611f9685826129fd565b9050611fa181612be3565b9350611fd5611faf82612bf0565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b92505050915091565b600080611fec836000612bfd565b91509150915091565b604080516080810182526000808252602082018190529181018290526060810182905290805b836020015181101561217257835160009061203790889061262b565b855190915060009061204b90899084612d79565b9050600061205882612e43565b90506000612076600880855161206e9190613d94565b859190612d79565b905086606001516001600160401b031660001480156120b1575060408801518151602083012014806120b15750606088015181516020830120145b80156120c657506000826001600160401b0316115b156120eb5763ffffffff851660408801526001600160401b0382166060880152612143565b6000806120fa8d8c8587612eb9565b9150915081896000018181516121109190613cc7565b6001600160401b0316905250602089018051829190612130908390613cc7565b6001600160401b03169052506001975050505b838860000181815161215591906138ec565b90525084935061216a9250839150613d419050565b91505061201b565b50806121e65760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e00000000006064820152608401610204565b50949350505050565b6001600160601b031981166000908152601d83016020526040902060018101546122225761221d838361323d565b6122b9565b60028101805463ffffffff42166c01000000000000000000000000027fffffffffffffff00ffffffffffffffff00000000ffffffffffffffffffffffff90911617780200000000000000000000000000000000000000000000000017905580546040516001600160601b0319841691907fbdc9ce990a067e5fd3a5d8dfc68e27e9f221aaa3fe55265e0b7e93c460b3efe290600090a35b601b83015460601b6001600160601b031990811690831614156122f657601b8301805473ffffffffffffffffffffffffffffffffffffffff191690555b601b83018054600160a01b900463ffffffff1690601461231583613dab565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050565b606060008260088151811061235057612350613dcb565b0160200151835160f89190911c915061236a826009613de1565b60ff1614612388575050604080516020810190915260008152919050565b8260098151811061239b5761239b613dcb565b016020015160f81c6124395760028160ff1610156123c9575050604080516020810190915260008152919050565b600083600a815181106123de576123de613dcb565b016020015160f81c90506123f3600283613e06565b60ff1681141580612411575080602014158015612411575080601414155b1561242d57505060408051602081019091526000815292915050565b611b8c84600b83612d79565b60006124468460086132dd565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156125235783600b815181106124a5576124a5613dcb565b60209101015160f81c60141415806124fa57506124d0600285516124c99190613d94565b85906132dd565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b1561251657505060408051602081019091526000815292915050565b611b8c84600c6014612d79565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156125c057836001855161257c9190613d94565b8151811061258c5761258c613dcb565b60209101015160f81c6087146125b357505060408051602081019091526000815292915050565b611b8c84600b6014612d79565b505050604080516020810190915260008152919050565b60008060006125e685856132ec565b90925090506000198214156126015760001992505050611b50565b8061260d8360256138ec565b61261791906138ec565b6126229060046138ec565b95945050505050565b60006126388260096138ec565b835110156126495750600019611b50565b6000806126608561265b8660086138ec565b612bfd565b909250905060001982141561267b5760001992505050611b50565b806126878360096138ec565b61262291906138ec565b6000602084516126a19190613e29565b156126ae57506000611b8c565b83516126bc57506000611b8c565b818560005b865181101561272c576126d5600284613e29565b600114156126fa576126f36126ed8883016020015190565b8361332e565b9150612713565b6127108261270b8984016020015190565b61332e565b91505b60019290921c916127256020826138ec565b90506126c1565b5090931495945050505050565b6000806127478360486132dd565b60e81c9050600083604b8151811061276157612761613dcb565b016020015160f81c9050600061279583600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006127a9600384613e06565b60ff1690506127ba81610100613f21565b6127c49083613d75565b9695505050505050565b6000611b507bffff00000000000000000000000000000000000000000000000000008361333a565b6000605082516128069190613e29565b156128145750600019919050565b506040805160808101909152605081526000908190815b84518110156129f55761283f858383613346565b801561285f5761284f82846133db565b61285f5750600119949350505050565b600061286a83612739565b905061287583611b20565b9350806129b98560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b11156129cc575060021995945050505050565b6129df6129d8826127ce565b8690613404565b94506129ee90506050826138ec565b905061282b565b505050919050565b6060600080612a0b85611fde565b9092509050600019821415612a885760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e670000000000000000000000000000000000000000000000000000000000006064820152608401610204565b808410612ad75760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e000000000000000000000000000000006044820152606401610204565b600080612ae58460016138ec565b905060005b86811015612b6e57612afc88836125d7565b9250600019831415612b505760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e207363726970745369670000000000000000006044820152606401610204565b612b5a83836138ec565b915080612b6681613d41565b915050612aea565b50612b7987826125d7565b9150600019821415612bcd5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e207363726970745369670000000000000000006044820152606401610204565b612bd8878284612d79565b979650505050505050565b6020810151600090611b50565b6000611b508260206132dd565b6000806000612c0c8585613462565b905060ff8116612c3e576000858581518110612c2a57612c2a613dcb565b016020015190935060f81c9150612d729050565b83612c4a826001613de1565b60ff16612c5791906138ec565b85511015612c6e5760001960009250925050612d72565b60008160ff1660021415612cb357612ca8612c94612c8d8760016138ec565b88906132dd565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612d68565b8160ff1660041415612cdd57612cd0611faf612c8d8760016138ec565b63ffffffff169050612d68565b8160ff1660081415612d6857612d5c612cfa612c8d8760016138ec565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b606081612d955750604080516020810190915260008152610da3565b6000612da183856138ec565b90508381118015612db3575080855110155b612dff5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610204565b604051915082604083010160405282825283850182038460208701018481015b80821015612e3857815183830152602082019150612e1f565b505050509392505050565b600080612e4f836134ee565b60c01c90506000611b8c8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b60008060008585604051602001612ed1929190613c56565b60408051808303601f190181529181528151602092830120600081815260128b01909352912060010154909150600160801b900463ffffffff1615613088576000818152601288016020526040812060018101548154919291612f47916001600160401b0390811691600160a01b9004166138a0565b60018301549091506001600160401b0380881691612f73916801000000000000000090910416836138a0565b6001600160401b031611158015612f9c5750806001600160401b0316866001600160401b031611155b6130345760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a401610204565b600191820154600084815260128b016020526040902080546001600160e01b0319168155909201805473ffffffffffffffffffffffffffffffffffffffff1916905593506001600160401b03169150613233565b600081815260138801602052604090206001810154600160801b900463ffffffff1661311b5760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e000000000000000000000000000000000000000000000000000000006064820152608401610204565b60018101548154600091613143916001600160401b0391821691600160a01b909104166138a0565b60018301549091506001600160401b038088169161316f916801000000000000000090910416836138a0565b6001600160401b0316111580156131985750806001600160401b0316866001600160401b031611155b6132305760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a401610204565b50505b5094509492505050565b6001600160601b031981166000818152601d8401602052604080822060028101805463ffffffff4216600160801b027fffffffffffffff00ffffffff00000000ffffffffffffffffffffffffffffffff909116177803000000000000000000000000000000000000000000000000179055805491519093927f68cb496f5e64383745876664ef119840f154a729c03ba866b8aecb5c9f53d51691a3505050565b6000610da38383016020015190565b6000806132fa8360256138ec565b8451101561330f575060001990506000612d72565b6000806133218661265b8760246138ec565b9097909650945050505050565b6000610da383836134fa565b6000610da38284613f2d565b8151600061335482846138ec565b90508281118015613366575080855110155b6133b25760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610204565b826020860101602085018382015b80831015611ef95782518252602092830192909101906133c0565b6000806133e784613528565b90508281146133fa576000915050611b50565b5060019392505050565b600061341082846138ec565b905082811015611b505760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e000000000000006044820152606401610204565b600082828151811061347657613476613dcb565b60209101015160f81c60ff141561348f57506008611b50565b8282815181106134a1576134a1613dcb565b60209101015160f81c60fe14156134ba57506004611b50565b8282815181106134cc576134cc613dcb565b60209101015160f81c60fd14156134e557506002611b50565b50600092915050565b6000611b5082826132dd565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6024810151600090611b50565b60006060828403121561354757600080fd5b50919050565b80356001600160601b03198116811461356557600080fd5b919050565b600080600080600060e0868803121561358257600080fd5b8535945060208601356001600160401b03808211156135a057600080fd5b908701906080828a0312156135b457600080fd5b909450604087013590808211156135ca57600080fd5b506135d788828901613535565b9350506135e78760608801613535565b91506135f560c0870161354d565b90509295509295909350565b60008083601f84011261361357600080fd5b5081356001600160401b0381111561362a57600080fd5b602083019150836020828501011115612d7257600080fd5b6000806000806000806080878903121561365b57600080fd5b8635955061366b6020880161354d565b945060408701356001600160401b038082111561368757600080fd5b818901915089601f83011261369b57600080fd5b8135818111156136aa57600080fd5b8a60208260051b85010111156136bf57600080fd5b6020830196508095505060608901359150808211156136dd57600080fd5b506136ea89828a01613601565b979a9699509497509295939492505050565b6001600160a01b038116811461371157600080fd5b50565b80356001600160401b038116811461356557600080fd5b60008060008060006080868803121561374357600080fd5b853594506020860135613755816136fc565b935061376360408701613714565b925060608601356001600160401b0381111561377e57600080fd5b61378a88828901613601565b969995985093965092949392505050565b6000806000806000806000610100888a0312156137b757600080fd5b873596506137c76020890161354d565b95506137d68960408a01613535565b945060a08801356137e6816136fc565b935060c08801356001600160401b0381111561380157600080fd5b61380d8a828b01613601565b9094509250613820905060e08901613714565b905092959891949750929550565b6000808335601e1984360301811261384557600080fd5b8301803591506001600160401b0382111561385f57600080fd5b602001915036819003821315612d7257600080fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160401b03838116908316818110156138c0576138c061388a565b039392505050565b6001600160601b031984168152818360148301376000910160140190815292915050565b600082198211156138ff576138ff61388a565b500190565b803563ffffffff8116811461356557600080fd5b600060a082016bffffffffffffffffffffffff89168352602088818501526001600160a01b038816604085015286606085015260a060808501528185835260c08501905086925060005b8681101561398b5763ffffffff61397885613904565b1682529282019290820190600101613962565b509a9950505050505050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613a0757613a076139c9565b604052919050565b60008060008060008060c08789031215613a2857600080fd5b8635613a33816136fc565b95506020613a4288820161354d565b955060408801359450613a5760608901613904565b9350613a6560808901613714565b925060a08801356001600160401b0380821115613a8157600080fd5b818a0191508a601f830112613a9557600080fd5b813581811115613aa757613aa76139c9565b613ab9601f8201601f191685016139df565b91508082528b84828501011115613acf57600080fd5b80848401858401376000848284010152508093505050509295509295509295565b600060608284031215613b0257600080fd5b604051606081018181106001600160401b0382111715613b2457613b246139c9565b60405282358152613b3760208401613904565b6020820152613b4860408401613714565b60408201529392505050565b600060208284031215613b6657600080fd5b81356001600160e01b031981168114610da357600080fd5b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b600060208284031215613bd257600080fd5b610da382613904565b600060208284031215613bed57600080fd5b610da382613714565b60005b83811015613c11578181015183820152602001613bf9565b83811115613c20576000848401525b50505050565b6001600160c01b03198316815260008251613c48816008850160208701613bf6565b919091016008019392505050565b6bffffffffffffffffffffffff198316815260008251613c7d816014850160208701613bf6565b919091016014019392505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680613cbb57613cbb613c8b565b92169190910492915050565b60006001600160401b03808316818516808303821115613ce957613ce961388a565b01949350505050565b6080815260008551806080840152613d118160a0850160208a01613bf6565b6001600160401b03958616602084015293851660408301525092166060830152601f01601f19160160a001919050565b6000600019821415613d5557613d5561388a565b5060010190565b600060208284031215613d6e57600080fd5b5051919050565b6000816000190483118215151615613d8f57613d8f61388a565b500290565b600082821015613da657613da661388a565b500390565b600063ffffffff821680613dc157613dc161388a565b6000190192915050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff84168060ff03821115613dfe57613dfe61388a565b019392505050565b600060ff821660ff841680821015613e2057613e2061388a565b90039392505050565b600082613e3857613e38613c8b565b500690565b600181815b80851115613e78578160001904821115613e5e57613e5e61388a565b80851615613e6b57918102915b93841c9390800290613e42565b509250929050565b600082613e8f57506001611b50565b81613e9c57506000611b50565b8160018114613eb25760028114613ebc57613ed8565b6001915050611b50565b60ff841115613ecd57613ecd61388a565b50506001821b611b50565b5060208310610133831016604e8410600b8410161715613efb575081810a611b50565b613f058383613e3d565b8060001904821115613f1957613f1961388a565b029392505050565b6000610da38383613e80565b600082613f3c57613f3c613c8b565b50049056fea2646970667358221220042965c22806b1033f3d44cccc7d771f9d885b2a3da1a32fdec39fe1298a87ca64736f6c63430008090033",
|
|
89
|
-
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c8063a164de6e1461005b578063a76558b31461007d578063d25398081461009d578063f5ada442146100bd575b600080fd5b81801561006757600080fd5b5061007b61007636600461356a565b6100dd565b005b81801561008957600080fd5b5061007b610098366004613642565b610476565b8180156100a957600080fd5b5061007b6100b836600461372b565b6109f9565b8180156100c957600080fd5b5061007b6100d836600461379b565b610a5d565b60006100ea868686610aba565b905061013b866100fd602088018861382e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250879150610daa9050565b6001600160601b031982166000908152601d8701602052604090206002810154600160c01b900460ff16600181600581111561017957610179613874565b14806101965750600281600581111561019457610194613874565b145b61020d5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201527f46756e647320737461746500000000000000000000000000000000000000000060648201526084015b60405180910390fd5b600061025c8961022060408b018b61382e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611004915050565b60608101519091506001600160401b0316156102dc5783816040015182606001516040516020016102ba9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f19818403018152919052805160209091012060018401556102e4565b600060018401555b80516002840180546000906103039084906001600160401b03166138a0565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550846bffffffffffffffffffffffff19167fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe8560405161036891815260200190565b60405180910390a2885481516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201526001600160a01b039091169063392aee4390602401600060405180830381600087803b1580156103d957600080fd5b505af11580156103ed573d6000803e3d6000fd5b50508a546004808d015460208601516040516356a6d9ef60e01b81526001600160a01b03928316938101939093526001600160401b0316602483015290911692506356a6d9ef91506044015b600060405180830381600087803b15801561045357600080fd5b505af1158015610467573d6000803e3d6000fd5b50505050505050505050505050565b600085838360405160200161048d939291906138c8565b60408051808303601f190181528282528051602091820120600081815260128c01835283902060a08501845280546001600160a01b0381168652600160a01b90046001600160401b039081169386019390935260010154808316938501939093526801000000000000000083049091166060840152600160801b90910463ffffffff16608083018190529092506105705760405162461bcd60e51b815260206004820152602160248201527f526564656d7074696f6e207265717565737420646f6573206e6f7420657869736044820152601d60fa1b6064820152608401610204565b4288600f0154826080015163ffffffff1661058b91906138ec565b106105fd5760405162461bcd60e51b8152602060048201526024808201527f526564656d7074696f6e207265717565737420686173206e6f742074696d656460448201527f206f7574000000000000000000000000000000000000000000000000000000006064820152608401610204565b6001600160601b031987166000908152601d89016020908152604091829020918301519083015161062e91906138a0565b60028201805460009061064b9084906001600160401b03166138a0565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506001600581111561068257610682613874565b6002820154600160c01b900460ff1660058111156106a2576106a2613874565b14806106cc5750600280820154600160c01b900460ff1660058111156106ca576106ca613874565b145b806106f6575060056002820154600160c01b900460ff1660058111156106f4576106f4613874565b145b6107685760405162461bcd60e51b815260206004820152603b60248201527f5468652077616c6c6574206d75737420626520696e204c6976652c204d6f766960448201527f6e6746756e6473206f72205465726d696e6174656420737461746500000000006064820152608401610204565b600083815260138a016020908152604080832085518154878501516001600160a01b039092166001600160e01b031991821617600160a01b6001600160401b0393841602178355878401516001938401805460608b015160808c01519386167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090921691909117680100000000000000009190951602939093177fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff16600160801b63ffffffff909216919091021790915560128e019093529220805490911681558101805473ffffffffffffffffffffffffffffffffffffffff191690556002820154600160c01b900460ff16600581111561088657610886613874565b14806108b05750600280820154600160c01b900460ff1660058111156108ae576108ae613874565b145b1561096957600289015460108a015460118b015483546040517fd8dc404d0000000000000000000000000000000000000000000000000000000081526001600160a01b039094169363d8dc404d93610924936bffffffffffffffffffffffff9091169290913391908e908e90600401613918565b600060405180830381600087803b15801561093e57600080fd5b505af1158015610952573d6000803e3d6000fd5b50505050610969888a61113b90919063ffffffff16565b876bffffffffffffffffffffffff19167f013dddc8debc4730cd01232fdcea9ae6013689837732356c187fe5edb9a8a8d586866040516109aa92919061399a565b60405180910390a28854825160208401516040516356a6d9ef60e01b81526001600160a01b0392831660048201526001600160401b0390911660248201529116906356a6d9ef90604401610439565b60008080808080610a0c87890189613a0f565b955095509550955095509550610a508b8660405180606001604052808881526020018763ffffffff168152602001866001600160401b03168152508d8a868f611230565b5050505050505050505050565b610ab18787610a7136899003890189613af0565b878888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611230915050565b50505050505050565b6000610b06610acc602085018561382e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119cd92505050565b610b525760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f76696465640000006044820152606401610204565b610b9c610b62604085018561382e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a7d92505050565b610be85760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f766964656400006044820152606401610204565b610c4b610bf86020850185613b54565b610c05602086018661382e565b610c12604088018861382e565b610c2260808a0160608b01613b54565b604051602001610c3796959493929190613b7e565b604051602081830303815290604052611b20565b9050610ce6610c9a610c60604085018561382e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b4792505050565b610ca4848061382e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869493925050506020860135611b56565b610d585760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e642074782068617368000000006064820152608401610204565b610da384610d69604085018561382e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b9492505050565b9392505050565b6001600160601b031981166000908152601d8501602052604090206001015480610e165760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c65740000006044820152606401610204565b808335610e296040860160208701613bc0565b610e396060870160408801613bdb565b604051602001610e769392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014610ed95760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f2064617461000000000000000000006044820152606401610204565b600080610ee586611f03565b9092509050843582148015610f14575063ffffffff8116610f0c6040870160208801613bc0565b63ffffffff16145b610f865760405162461bcd60e51b815260206004820152603f60248201527f4f7574626f756e64207472616e73616374696f6e20696e707574206d7573742060448201527f706f696e7420746f207468652077616c6c65742773206d61696e205554584f006064820152608401610204565b60016019880160008735610fa060408a0160208b01613bc0565b604051602001610fc792919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff191691151591909117905550505050505050565b6040805160808101825260008082526020820181905291810182905260608101829052908061103285611fde565b909250905060006110448360016138ec565b6040517f1976a9140000000000000000000000000000000000000000000000000000000060208201526001600160601b03198716602482015261222b60f21b6038820152909150600090603a0160408051601f198184030181529082905280516020918201207f1600140000000000000000000000000000000000000000000000000000000000918301919091526001600160601b031988166023830152915060009060370160405160208183030381529060405280519060200120905061112e898989604051806080016040528088815260200189815260200187815260200186815250611ff5565b9998505050505050505050565b6001600160601b031981166000908152601d83016020526040902060020154600160c01b900460ff16600181600581111561117857611178613874565b14806111955750600281600581111561119357611193613874565b145b6112075760405162461bcd60e51b815260206004820152603160248201527f45434453412077616c6c6574206d75737420626520696e204c697665206f722060448201527f4d6f76696e6746756e64732073746174650000000000000000000000000000006064820152608401610204565b600181600581111561121b5761121b613874565b141561122b5761122b83836121ef565b505050565b6001600160601b031986166000908152601d88016020526040902060016002820154600160c01b900460ff16600581111561126d5761126d613874565b146112ba5760405162461bcd60e51b815260206004820152601c60248201527f57616c6c6574206d75737420626520696e204c697665207374617465000000006044820152606401610204565b6001810154806113165760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c656044820152601d60fa1b6064820152608401610204565b808760000151886020015189604001516040516020016113639392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146113c65760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f2064617461000000000000000000006044820152606401610204565b60006113f6600060c01b866040516020016113e2929190613c26565b604051602081830303815290604052612339565b9050600081511161146f5760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e6461726420747970650000000000000000000000000000000000006064820152608401610204565b80805190602001208960405160200161149891906001600160601b031991909116815260140190565b6040516020818303038152906040528051906020012014156115225760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b480000000000000000006064820152608401610204565b600e8a01546001600160401b0390811690851610156115835760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c00000000006044820152606401610204565b60008986604051602001611598929190613c56565b60408051808303601f190181529181528151602092830120600081815260128f01909352912060010154909150600160801b900463ffffffff161561166b5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a401610204565b600e8b01546000906801000000000000000090046001600160401b03166116935760006116b7565b600e8c01546116b7906801000000000000000090046001600160401b031687613ca1565b600e8d0154909150600160801b90046001600160401b03166116d982886138a0565b6002870180546000906116f69084906001600160401b0316613cc7565b92506101000a8154816001600160401b0302191690836001600160401b031602179055508560020160009054906101000a90046001600160401b03166001600160401b03168b604001516001600160401b031610156117975760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e6473000000000000006044820152606401610204565b6040518060a001604052808a6001600160a01b03168152602001886001600160401b03168152602001836001600160401b03168152602001826001600160401b031681526020014263ffffffff168152508d601201600085815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160010160086101000a8154816001600160401b0302191690836001600160401b0316021790555060808201518160010160106101000a81548163ffffffff021916908363ffffffff160217905550905050886001600160a01b03168c6bffffffffffffffffffffffff19167f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d958a8a868660405161192a9493929190613cf2565b60405180910390a38c546040517f7c6db49c0000000000000000000000000000000000000000000000000000000081526001600160a01b038c811660048301523060248301526001600160401b038a16604483015290911690637c6db49c90606401600060405180830381600087803b1580156119a657600080fd5b505af11580156119ba573d6000803e3d6000fd5b5050505050505050505050505050505050565b60008060006119db84611fde565b90925090508015806119ee575060001982145b156119fd575060009392505050565b6000611a0a8360016138ec565b905060005b82811015611a705785518210611a2b5750600095945050505050565b6000611a3787846125d7565b9050600019811415611a50575060009695505050505050565b611a5a81846138ec565b9250508080611a6890613d41565b915050611a0f565b5093519093149392505050565b6000806000611a8b84611fde565b9092509050801580611a9e575060001982145b15611aad575060009392505050565b6000611aba8360016138ec565b905060005b82811015611a705785518210611adb5750600095945050505050565b6000611ae7878461262b565b9050600019811415611b00575060009695505050505050565b611b0a81846138ec565b9250508080611b1890613d41565b915050611abf565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60448101516000905b92915050565b60008385148015611b65575081155b8015611b7057508251155b15611b7d57506001611b8c565b611b8985848685612691565b90505b949350505050565b6001820154604080517f113764be00000000000000000000000000000000000000000000000000000000815290516001600160a01b0390921691600091839163113764be91600480820192602092909190829003018186803b158015611bf957600080fd5b505afa158015611c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c319190613d5c565b90506000826001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b158015611c6e57600080fd5b505afa158015611c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca69190613d5c565b9050600080611cbc611cb787612739565b6127ce565b905083811415611cce57839150611d4c565b82811415611cde57829150611d4c565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c74790000000000000000000000000000000000000000000000000000006064820152608401610204565b6000611d57876127f6565b9050600019811415611dd15760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e00000000000000000000000000000000000000000000000000000000006064820152608401610204565b600119811415611e235760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e00000000000000000000006044820152606401610204565b600219811415611e755760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e2061206865616465720000006044820152606401610204565b6003880154611e849084613d75565b811015611ef95760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e000000000000000000000000006064820152608401610204565b5050505050505050565b6000806000611f1184611fde565b91505080600114611f8a5760405162461bcd60e51b815260206004820152602d60248201527f4f7574626f756e64207472616e73616374696f6e206d7573742068617665206160448201527f2073696e676c6520696e707574000000000000000000000000000000000000006064820152608401610204565b6000611f9685826129fd565b9050611fa181612be3565b9350611fd5611faf82612bf0565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b92505050915091565b600080611fec836000612bfd565b91509150915091565b604080516080810182526000808252602082018190529181018290526060810182905290805b836020015181101561217257835160009061203790889061262b565b855190915060009061204b90899084612d79565b9050600061205882612e43565b90506000612076600880855161206e9190613d94565b859190612d79565b905086606001516001600160401b031660001480156120b1575060408801518151602083012014806120b15750606088015181516020830120145b80156120c657506000826001600160401b0316115b156120eb5763ffffffff851660408801526001600160401b0382166060880152612143565b6000806120fa8d8c8587612eb9565b9150915081896000018181516121109190613cc7565b6001600160401b0316905250602089018051829190612130908390613cc7565b6001600160401b03169052506001975050505b838860000181815161215591906138ec565b90525084935061216a9250839150613d419050565b91505061201b565b50806121e65760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e00000000006064820152608401610204565b50949350505050565b6001600160601b031981166000908152601d83016020526040902060018101546122225761221d838361323d565b6122b9565b60028101805463ffffffff42166c01000000000000000000000000027fffffffffffffff00ffffffffffffffff00000000ffffffffffffffffffffffff90911617780200000000000000000000000000000000000000000000000017905580546040516001600160601b0319841691907fbdc9ce990a067e5fd3a5d8dfc68e27e9f221aaa3fe55265e0b7e93c460b3efe290600090a35b601b83015460601b6001600160601b031990811690831614156122f657601b8301805473ffffffffffffffffffffffffffffffffffffffff191690555b601b83018054600160a01b900463ffffffff1690601461231583613dab565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050565b606060008260088151811061235057612350613dcb565b0160200151835160f89190911c915061236a826009613de1565b60ff1614612388575050604080516020810190915260008152919050565b8260098151811061239b5761239b613dcb565b016020015160f81c6124395760028160ff1610156123c9575050604080516020810190915260008152919050565b600083600a815181106123de576123de613dcb565b016020015160f81c90506123f3600283613e06565b60ff1681141580612411575080602014158015612411575080601414155b1561242d57505060408051602081019091526000815292915050565b611b8c84600b83612d79565b60006124468460086132dd565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156125235783600b815181106124a5576124a5613dcb565b60209101015160f81c60141415806124fa57506124d0600285516124c99190613d94565b85906132dd565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b1561251657505060408051602081019091526000815292915050565b611b8c84600c6014612d79565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156125c057836001855161257c9190613d94565b8151811061258c5761258c613dcb565b60209101015160f81c6087146125b357505060408051602081019091526000815292915050565b611b8c84600b6014612d79565b505050604080516020810190915260008152919050565b60008060006125e685856132ec565b90925090506000198214156126015760001992505050611b50565b8061260d8360256138ec565b61261791906138ec565b6126229060046138ec565b95945050505050565b60006126388260096138ec565b835110156126495750600019611b50565b6000806126608561265b8660086138ec565b612bfd565b909250905060001982141561267b5760001992505050611b50565b806126878360096138ec565b61262291906138ec565b6000602084516126a19190613e29565b156126ae57506000611b8c565b83516126bc57506000611b8c565b818560005b865181101561272c576126d5600284613e29565b600114156126fa576126f36126ed8883016020015190565b8361332e565b9150612713565b6127108261270b8984016020015190565b61332e565b91505b60019290921c916127256020826138ec565b90506126c1565b5090931495945050505050565b6000806127478360486132dd565b60e81c9050600083604b8151811061276157612761613dcb565b016020015160f81c9050600061279583600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006127a9600384613e06565b60ff1690506127ba81610100613f21565b6127c49083613d75565b9695505050505050565b6000611b507bffff00000000000000000000000000000000000000000000000000008361333a565b6000605082516128069190613e29565b156128145750600019919050565b506040805160808101909152605081526000908190815b84518110156129f55761283f858383613346565b801561285f5761284f82846133db565b61285f5750600119949350505050565b600061286a83612739565b905061287583611b20565b9350806129b98560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b11156129cc575060021995945050505050565b6129df6129d8826127ce565b8690613404565b94506129ee90506050826138ec565b905061282b565b505050919050565b6060600080612a0b85611fde565b9092509050600019821415612a885760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e670000000000000000000000000000000000000000000000000000000000006064820152608401610204565b808410612ad75760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e000000000000000000000000000000006044820152606401610204565b600080612ae58460016138ec565b905060005b86811015612b6e57612afc88836125d7565b9250600019831415612b505760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e207363726970745369670000000000000000006044820152606401610204565b612b5a83836138ec565b915080612b6681613d41565b915050612aea565b50612b7987826125d7565b9150600019821415612bcd5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e207363726970745369670000000000000000006044820152606401610204565b612bd8878284612d79565b979650505050505050565b6020810151600090611b50565b6000611b508260206132dd565b6000806000612c0c8585613462565b905060ff8116612c3e576000858581518110612c2a57612c2a613dcb565b016020015190935060f81c9150612d729050565b83612c4a826001613de1565b60ff16612c5791906138ec565b85511015612c6e5760001960009250925050612d72565b60008160ff1660021415612cb357612ca8612c94612c8d8760016138ec565b88906132dd565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612d68565b8160ff1660041415612cdd57612cd0611faf612c8d8760016138ec565b63ffffffff169050612d68565b8160ff1660081415612d6857612d5c612cfa612c8d8760016138ec565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b606081612d955750604080516020810190915260008152610da3565b6000612da183856138ec565b90508381118015612db3575080855110155b612dff5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610204565b604051915082604083010160405282825283850182038460208701018481015b80821015612e3857815183830152602082019150612e1f565b505050509392505050565b600080612e4f836134ee565b60c01c90506000611b8c8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b60008060008585604051602001612ed1929190613c56565b60408051808303601f190181529181528151602092830120600081815260128b01909352912060010154909150600160801b900463ffffffff1615613088576000818152601288016020526040812060018101548154919291612f47916001600160401b0390811691600160a01b9004166138a0565b60018301549091506001600160401b0380881691612f73916801000000000000000090910416836138a0565b6001600160401b031611158015612f9c5750806001600160401b0316866001600160401b031611155b6130345760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a401610204565b600191820154600084815260128b016020526040902080546001600160e01b0319168155909201805473ffffffffffffffffffffffffffffffffffffffff1916905593506001600160401b03169150613233565b600081815260138801602052604090206001810154600160801b900463ffffffff1661311b5760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e000000000000000000000000000000000000000000000000000000006064820152608401610204565b60018101548154600091613143916001600160401b0391821691600160a01b909104166138a0565b60018301549091506001600160401b038088169161316f916801000000000000000090910416836138a0565b6001600160401b0316111580156131985750806001600160401b0316866001600160401b031611155b6132305760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a401610204565b50505b5094509492505050565b6001600160601b031981166000818152601d8401602052604080822060028101805463ffffffff4216600160801b027fffffffffffffff00ffffffff00000000ffffffffffffffffffffffffffffffff909116177803000000000000000000000000000000000000000000000000179055805491519093927f68cb496f5e64383745876664ef119840f154a729c03ba866b8aecb5c9f53d51691a3505050565b6000610da38383016020015190565b6000806132fa8360256138ec565b8451101561330f575060001990506000612d72565b6000806133218661265b8760246138ec565b9097909650945050505050565b6000610da383836134fa565b6000610da38284613f2d565b8151600061335482846138ec565b90508281118015613366575080855110155b6133b25760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610204565b826020860101602085018382015b80831015611ef95782518252602092830192909101906133c0565b6000806133e784613528565b90508281146133fa576000915050611b50565b5060019392505050565b600061341082846138ec565b905082811015611b505760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e000000000000006044820152606401610204565b600082828151811061347657613476613dcb565b60209101015160f81c60ff141561348f57506008611b50565b8282815181106134a1576134a1613dcb565b60209101015160f81c60fe14156134ba57506004611b50565b8282815181106134cc576134cc613dcb565b60209101015160f81c60fd14156134e557506002611b50565b50600092915050565b6000611b5082826132dd565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6024810151600090611b50565b60006060828403121561354757600080fd5b50919050565b80356001600160601b03198116811461356557600080fd5b919050565b600080600080600060e0868803121561358257600080fd5b8535945060208601356001600160401b03808211156135a057600080fd5b908701906080828a0312156135b457600080fd5b909450604087013590808211156135ca57600080fd5b506135d788828901613535565b9350506135e78760608801613535565b91506135f560c0870161354d565b90509295509295909350565b60008083601f84011261361357600080fd5b5081356001600160401b0381111561362a57600080fd5b602083019150836020828501011115612d7257600080fd5b6000806000806000806080878903121561365b57600080fd5b8635955061366b6020880161354d565b945060408701356001600160401b038082111561368757600080fd5b818901915089601f83011261369b57600080fd5b8135818111156136aa57600080fd5b8a60208260051b85010111156136bf57600080fd5b6020830196508095505060608901359150808211156136dd57600080fd5b506136ea89828a01613601565b979a9699509497509295939492505050565b6001600160a01b038116811461371157600080fd5b50565b80356001600160401b038116811461356557600080fd5b60008060008060006080868803121561374357600080fd5b853594506020860135613755816136fc565b935061376360408701613714565b925060608601356001600160401b0381111561377e57600080fd5b61378a88828901613601565b969995985093965092949392505050565b6000806000806000806000610100888a0312156137b757600080fd5b873596506137c76020890161354d565b95506137d68960408a01613535565b945060a08801356137e6816136fc565b935060c08801356001600160401b0381111561380157600080fd5b61380d8a828b01613601565b9094509250613820905060e08901613714565b905092959891949750929550565b6000808335601e1984360301811261384557600080fd5b8301803591506001600160401b0382111561385f57600080fd5b602001915036819003821315612d7257600080fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160401b03838116908316818110156138c0576138c061388a565b039392505050565b6001600160601b031984168152818360148301376000910160140190815292915050565b600082198211156138ff576138ff61388a565b500190565b803563ffffffff8116811461356557600080fd5b600060a082016bffffffffffffffffffffffff89168352602088818501526001600160a01b038816604085015286606085015260a060808501528185835260c08501905086925060005b8681101561398b5763ffffffff61397885613904565b1682529282019290820190600101613962565b509a9950505050505050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613a0757613a076139c9565b604052919050565b60008060008060008060c08789031215613a2857600080fd5b8635613a33816136fc565b95506020613a4288820161354d565b955060408801359450613a5760608901613904565b9350613a6560808901613714565b925060a08801356001600160401b0380821115613a8157600080fd5b818a0191508a601f830112613a9557600080fd5b813581811115613aa757613aa76139c9565b613ab9601f8201601f191685016139df565b91508082528b84828501011115613acf57600080fd5b80848401858401376000848284010152508093505050509295509295509295565b600060608284031215613b0257600080fd5b604051606081018181106001600160401b0382111715613b2457613b246139c9565b60405282358152613b3760208401613904565b6020820152613b4860408401613714565b60408201529392505050565b600060208284031215613b6657600080fd5b81356001600160e01b031981168114610da357600080fd5b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b600060208284031215613bd257600080fd5b610da382613904565b600060208284031215613bed57600080fd5b610da382613714565b60005b83811015613c11578181015183820152602001613bf9565b83811115613c20576000848401525b50505050565b6001600160c01b03198316815260008251613c48816008850160208701613bf6565b919091016008019392505050565b6bffffffffffffffffffffffff198316815260008251613c7d816014850160208701613bf6565b919091016014019392505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680613cbb57613cbb613c8b565b92169190910492915050565b60006001600160401b03808316818516808303821115613ce957613ce961388a565b01949350505050565b6080815260008551806080840152613d118160a0850160208a01613bf6565b6001600160401b03958616602084015293851660408301525092166060830152601f01601f19160160a001919050565b6000600019821415613d5557613d5561388a565b5060010190565b600060208284031215613d6e57600080fd5b5051919050565b6000816000190483118215151615613d8f57613d8f61388a565b500290565b600082821015613da657613da661388a565b500390565b600063ffffffff821680613dc157613dc161388a565b6000190192915050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff84168060ff03821115613dfe57613dfe61388a565b019392505050565b600060ff821660ff841680821015613e2057613e2061388a565b90039392505050565b600082613e3857613e38613c8b565b500690565b600181815b80851115613e78578160001904821115613e5e57613e5e61388a565b80851615613e6b57918102915b93841c9390800290613e42565b509250929050565b600082613e8f57506001611b50565b81613e9c57506000611b50565b8160018114613eb25760028114613ebc57613ed8565b6001915050611b50565b60ff841115613ecd57613ecd61388a565b50506001821b611b50565b5060208310610133831016604e8410600b8410161715613efb575081810a611b50565b613f058383613e3d565b8060001904821115613f1957613f1961388a565b029392505050565b6000610da38383613e80565b600082613f3c57613f3c613c8b565b50049056fea2646970667358221220042965c22806b1033f3d44cccc7d771f9d885b2a3da1a32fdec39fe1298a87ca64736f6c63430008090033",
|
|
88
|
+
"bytecode": "0x613f8361003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c8063a164de6e1461005b578063a76558b31461007d578063d25398081461009d578063f5ada442146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004613576565b6100dd565b005b81801561008957600080fd5b5061007b61009836600461364e565b6103af565b8180156100a957600080fd5b5061007b6100b8366004613737565b61096f565b8180156100c957600080fd5b5061007b6100d83660046137a7565b6109d3565b60006100ea868686610a30565b905060006100f9878486610d20565b90506101488761010c602089018961383a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250610ef9915050565b60006101978861015b60408a018a61383a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250611022915050565b60608101519091506001600160401b0316156102175782816040015182606001516040516020016101f59392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f198184030181529190528051602090910120600183015561021f565b600060018301555b805160028301805460009061023e9084906001600160401b0316613896565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550836bffffffffffffffffffffffff19167fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe846040516102a391815260200190565b60405180910390a2875481516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201526001600160a01b039091169063392aee4390602401600060405180830381600087803b15801561031457600080fd5b505af1158015610328573d6000803e3d6000fd5b505089546004808c015460208601516040516356a6d9ef60e01b81526001600160a01b03928316938101939093526001600160401b0316602483015290911692506356a6d9ef9150604401600060405180830381600087803b15801561038d57600080fd5b505af11580156103a1573d6000803e3d6000fd5b505050505050505050505050565b60008583836040516020016103c6939291906138be565b60408051808303601f190181528282528051602091820120600081815260128c01835283902060a08501845280546001600160a01b0381168652600160a01b90046001600160401b039081169386019390935260010154808316938501939093526801000000000000000083049091166060840152600160801b90910463ffffffff16608083018190529092506104ae5760405162461bcd60e51b815260206004820152602160248201527f526564656d7074696f6e207265717565737420646f6573206e6f7420657869736044820152601d60fa1b60648201526084015b60405180910390fd5b4288600f0154826080015163ffffffff166104c991906138e2565b1061053b5760405162461bcd60e51b8152602060048201526024808201527f526564656d7074696f6e207265717565737420686173206e6f742074696d656460448201527f206f75740000000000000000000000000000000000000000000000000000000060648201526084016104a5565b6001600160601b031987166000908152601d89016020908152604091829020918301519083015161056c9190613896565b6002820180546000906105899084906001600160401b0316613896565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550600160058111156105c0576105c06138fa565b6002820154600160c01b900460ff1660058111156105e0576105e06138fa565b148061060a5750600280820154600160c01b900460ff166005811115610608576106086138fa565b145b80610634575060056002820154600160c01b900460ff166005811115610632576106326138fa565b145b6106a65760405162461bcd60e51b815260206004820152603760248201527f57616c6c6574206d75737420626520696e204c6976652c204d6f76696e67467560448201527f6e6473206f72205465726d696e6174656420737461746500000000000000000060648201526084016104a5565b600083815260138a016020908152604080832085518154878501516001600160a01b039092166001600160e01b031991821617600160a01b6001600160401b0393841602178355878401516001938401805460608b015160808c01519386167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090921691909117680100000000000000009190951602939093177fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff16600160801b63ffffffff909216919091021790915560128e019093529220805490911681558101805473ffffffffffffffffffffffffffffffffffffffff191690556002820154600160c01b900460ff1660058111156107c4576107c46138fa565b14806107ee5750600280820154600160c01b900460ff1660058111156107ec576107ec6138fa565b145b156108a757600289015460108a015460118b015483546040517fd8dc404d0000000000000000000000000000000000000000000000000000000081526001600160a01b039094169363d8dc404d93610862936bffffffffffffffffffffffff9091169290913391908e908e90600401613924565b600060405180830381600087803b15801561087c57600080fd5b505af1158015610890573d6000803e3d6000fd5b505050506108a7888a61115990919063ffffffff16565b876bffffffffffffffffffffffff19167f013dddc8debc4730cd01232fdcea9ae6013689837732356c187fe5edb9a8a8d586866040516108e89291906139a6565b60405180910390a28854825160208401516040516356a6d9ef60e01b81526001600160a01b0392831660048201526001600160401b0390911660248201529116906356a6d9ef90604401600060405180830381600087803b15801561094c57600080fd5b505af1158015610960573d6000803e3d6000fd5b50505050505050505050505050565b6000808080808061098287890189613a1b565b9550955095509550955095506109c68b8660405180606001604052808881526020018763ffffffff168152602001866001600160401b03168152508d8a868f61123c565b5050505050505050505050565b610a2787876109e736899003890189613afc565b878888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a925061123c915050565b50505050505050565b6000610a7c610a42602085018561383a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119d992505050565b610ac85760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016104a5565b610b12610ad8604085018561383a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a8992505050565b610b5e5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016104a5565b610bc1610b6e6020850185613b60565b610b7b602086018661383a565b610b88604088018861383a565b610b9860808a0160608b01613b60565b604051602001610bad96959493929190613b8a565b604051602081830303815290604052611b2c565b9050610c5c610c10610bd6604085018561383a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b5392505050565b610c1a848061383a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869493925050506020860135611b62565b610cce5760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016104a5565b610d1984610cdf604085018561383a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ba092505050565b9392505050565b6001600160601b031982166000908152601d840160205260409020600181015480610d8d5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016104a5565b808335610da06040860160208701613bcc565b610db06060870160408801613be7565b604051602001610ded9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014610e505760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016104a5565b6002820154600160c01b900460ff166001816005811115610e7357610e736138fa565b1480610e9057506002816005811115610e8e57610e8e6138fa565b145b610ef05760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201526a46756e647320737461746560a81b60648201526084016104a5565b50509392505050565b600080610f0584611f0f565b9092509050823582148015610f34575063ffffffff8116610f2c6040850160208601613bcc565b63ffffffff16145b610fa65760405162461bcd60e51b815260206004820152603f60248201527f4f7574626f756e64207472616e73616374696f6e20696e707574206d7573742060448201527f706f696e7420746f207468652077616c6c65742773206d61696e205554584f0060648201526084016104a5565b60016019860160008535610fc06040880160208901613bcc565b604051602001610fe792919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff19169115159190911790555050505050565b6040805160808101825260008082526020820181905291810182905260608101829052908061105085611fea565b909250905060006110628360016138e2565b6040517f1976a9140000000000000000000000000000000000000000000000000000000060208201526001600160601b03198716602482015261222b60f21b6038820152909150600090603a0160408051601f198184030181529082905280516020918201207f1600140000000000000000000000000000000000000000000000000000000000918301919091526001600160601b031988166023830152915060009060370160405160208183030381529060405280519060200120905061114c898989604051806080016040528088815260200189815260200187815260200186815250612001565b9998505050505050505050565b6001600160601b031981166000908152601d83016020526040902060020154600160c01b900460ff166001816005811115611196576111966138fa565b14806111b3575060028160058111156111b1576111b16138fa565b145b6112135760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201526a46756e647320737461746560a81b60648201526084016104a5565b6001816005811115611227576112276138fa565b14156112375761123783836121fb565b505050565b6001600160601b031986166000908152601d88016020526040902060016002820154600160c01b900460ff166005811115611279576112796138fa565b146112c65760405162461bcd60e51b815260206004820152601c60248201527f57616c6c6574206d75737420626520696e204c6976652073746174650000000060448201526064016104a5565b6001810154806113225760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c656044820152601d60fa1b60648201526084016104a5565b8087600001518860200151896040015160405160200161136f9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146113d25760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016104a5565b6000611402600060c01b866040516020016113ee929190613c32565b604051602081830303815290604052612345565b9050600081511161147b5760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016104a5565b8080519060200120896040516020016114a491906001600160601b031991909116815260140190565b60405160208183030381529060405280519060200120141561152e5760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016104a5565b600e8a01546001600160401b03908116908516101561158f5760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016104a5565b600089866040516020016115a4929190613c62565b60408051808303601f190181529181528151602092830120600081815260128f01909352912060010154909150600160801b900463ffffffff16156116775760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016104a5565b600e8b01546000906801000000000000000090046001600160401b031661169f5760006116c3565b600e8c01546116c3906801000000000000000090046001600160401b031687613cad565b600e8d0154909150600160801b90046001600160401b03166116e58288613896565b6002870180546000906117029084906001600160401b0316613cd3565b92506101000a8154816001600160401b0302191690836001600160401b031602179055508560020160009054906101000a90046001600160401b03166001600160401b03168b604001516001600160401b031610156117a35760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016104a5565b6040518060a001604052808a6001600160a01b03168152602001886001600160401b03168152602001836001600160401b03168152602001826001600160401b031681526020014263ffffffff168152508d601201600085815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160010160086101000a8154816001600160401b0302191690836001600160401b0316021790555060808201518160010160106101000a81548163ffffffff021916908363ffffffff160217905550905050886001600160a01b03168c6bffffffffffffffffffffffff19167f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d958a8a86866040516119369493929190613cfe565b60405180910390a38c546040517f7c6db49c0000000000000000000000000000000000000000000000000000000081526001600160a01b038c811660048301523060248301526001600160401b038a16604483015290911690637c6db49c90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b5050505050505050505050505050505050565b60008060006119e784611fea565b90925090508015806119fa575060001982145b15611a09575060009392505050565b6000611a168360016138e2565b905060005b82811015611a7c5785518210611a375750600095945050505050565b6000611a4387846125e3565b9050600019811415611a5c575060009695505050505050565b611a6681846138e2565b9250508080611a7490613d4d565b915050611a1b565b5093519093149392505050565b6000806000611a9784611fea565b9092509050801580611aaa575060001982145b15611ab9575060009392505050565b6000611ac68360016138e2565b905060005b82811015611a7c5785518210611ae75750600095945050505050565b6000611af38784612637565b9050600019811415611b0c575060009695505050505050565b611b1681846138e2565b9250508080611b2490613d4d565b915050611acb565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60448101516000905b92915050565b60008385148015611b71575081155b8015611b7c57508251155b15611b8957506001611b98565b611b958584868561269d565b90505b949350505050565b6001820154604080517f113764be00000000000000000000000000000000000000000000000000000000815290516001600160a01b0390921691600091839163113764be91600480820192602092909190829003018186803b158015611c0557600080fd5b505afa158015611c19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3d9190613d68565b90506000826001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b158015611c7a57600080fd5b505afa158015611c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb29190613d68565b9050600080611cc8611cc387612745565b6127da565b905083811415611cda57839150611d58565b82811415611cea57829150611d58565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016104a5565b6000611d6387612802565b9050600019811415611ddd5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016104a5565b600119811415611e2f5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016104a5565b600219811415611e815760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016104a5565b6003880154611e909084613d81565b811015611f055760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016104a5565b5050505050505050565b6000806000611f1d84611fea565b91505080600114611f965760405162461bcd60e51b815260206004820152602d60248201527f4f7574626f756e64207472616e73616374696f6e206d7573742068617665206160448201527f2073696e676c6520696e7075740000000000000000000000000000000000000060648201526084016104a5565b6000611fa28582612a09565b9050611fad81612bef565b9350611fe1611fbb82612bfc565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b92505050915091565b600080611ff8836000612c09565b91509150915091565b604080516080810182526000808252602082018190529181018290526060810182905290805b836020015181101561217e578351600090612043908890612637565b855190915060009061205790899084612d85565b9050600061206482612e4f565b90506000612082600880855161207a9190613da0565b859190612d85565b905086606001516001600160401b031660001480156120bd575060408801518151602083012014806120bd5750606088015181516020830120145b80156120d257506000826001600160401b0316115b156120f75763ffffffff851660408801526001600160401b038216606088015261214f565b6000806121068d8c8587612ec5565b91509150818960000181815161211c9190613cd3565b6001600160401b031690525060208901805182919061213c908390613cd3565b6001600160401b03169052506001975050505b838860000181815161216191906138e2565b9052508493506121769250839150613d4d9050565b915050612027565b50806121f25760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016104a5565b50949350505050565b6001600160601b031981166000908152601d830160205260409020600181015461222e576122298383613249565b6122c5565b60028101805463ffffffff42166c01000000000000000000000000027fffffffffffffff00ffffffffffffffff00000000ffffffffffffffffffffffff90911617780200000000000000000000000000000000000000000000000017905580546040516001600160601b0319841691907fbdc9ce990a067e5fd3a5d8dfc68e27e9f221aaa3fe55265e0b7e93c460b3efe290600090a35b601b83015460601b6001600160601b0319908116908316141561230257601b8301805473ffffffffffffffffffffffffffffffffffffffff191690555b601b83018054600160a01b900463ffffffff1690601461232183613db7565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050565b606060008260088151811061235c5761235c613dd7565b0160200151835160f89190911c9150612376826009613ded565b60ff1614612394575050604080516020810190915260008152919050565b826009815181106123a7576123a7613dd7565b016020015160f81c6124455760028160ff1610156123d5575050604080516020810190915260008152919050565b600083600a815181106123ea576123ea613dd7565b016020015160f81c90506123ff600283613e12565b60ff168114158061241d57508060201415801561241d575080601414155b1561243957505060408051602081019091526000815292915050565b611b9884600b83612d85565b60006124528460086132e9565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000000000000000008216141561252f5783600b815181106124b1576124b1613dd7565b60209101015160f81c601414158061250657506124dc600285516124d59190613da0565b85906132e9565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b1561252257505060408051602081019091526000815292915050565b611b9884600c6014612d85565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156125cc5783600185516125889190613da0565b8151811061259857612598613dd7565b60209101015160f81c6087146125bf57505060408051602081019091526000815292915050565b611b9884600b6014612d85565b505050604080516020810190915260008152919050565b60008060006125f285856132f8565b909250905060001982141561260d5760001992505050611b5c565b806126198360256138e2565b61262391906138e2565b61262e9060046138e2565b95945050505050565b60006126448260096138e2565b835110156126555750600019611b5c565b60008061266c856126678660086138e2565b612c09565b90925090506000198214156126875760001992505050611b5c565b806126938360096138e2565b61262e91906138e2565b6000602084516126ad9190613e35565b156126ba57506000611b98565b83516126c857506000611b98565b818560005b8651811015612738576126e1600284613e35565b60011415612706576126ff6126f98883016020015190565b8361333a565b915061271f565b61271c826127178984016020015190565b61333a565b91505b60019290921c916127316020826138e2565b90506126cd565b5090931495945050505050565b6000806127538360486132e9565b60e81c9050600083604b8151811061276d5761276d613dd7565b016020015160f81c905060006127a183600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006127b5600384613e12565b60ff1690506127c681610100613f2d565b6127d09083613d81565b9695505050505050565b6000611b5c7bffff000000000000000000000000000000000000000000000000000083613346565b6000605082516128129190613e35565b156128205750600019919050565b506040805160808101909152605081526000908190815b8451811015612a015761284b858383613352565b801561286b5761285b82846133e7565b61286b5750600119949350505050565b600061287683612745565b905061288183611b2c565b9350806129c58560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b11156129d8575060021995945050505050565b6129eb6129e4826127da565b8690613410565b94506129fa90506050826138e2565b9050612837565b505050919050565b6060600080612a1785611fea565b9092509050600019821415612a945760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e6700000000000000000000000000000000000000000000000000000000000060648201526084016104a5565b808410612ae35760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016104a5565b600080612af18460016138e2565b905060005b86811015612b7a57612b0888836125e3565b9250600019831415612b5c5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016104a5565b612b6683836138e2565b915080612b7281613d4d565b915050612af6565b50612b8587826125e3565b9150600019821415612bd95760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016104a5565b612be4878284612d85565b979650505050505050565b6020810151600090611b5c565b6000611b5c8260206132e9565b6000806000612c18858561346e565b905060ff8116612c4a576000858581518110612c3657612c36613dd7565b016020015190935060f81c9150612d7e9050565b83612c56826001613ded565b60ff16612c6391906138e2565b85511015612c7a5760001960009250925050612d7e565b60008160ff1660021415612cbf57612cb4612ca0612c998760016138e2565b88906132e9565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612d74565b8160ff1660041415612ce957612cdc611fbb612c998760016138e2565b63ffffffff169050612d74565b8160ff1660081415612d7457612d68612d06612c998760016138e2565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b606081612da15750604080516020810190915260008152610d19565b6000612dad83856138e2565b90508381118015612dbf575080855110155b612e0b5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016104a5565b604051915082604083010160405282825283850182038460208701018481015b80821015612e4457815183830152602082019150612e2b565b505050509392505050565b600080612e5b836134fa565b60c01c90506000611b988264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b60008060008585604051602001612edd929190613c62565b60408051808303601f190181529181528151602092830120600081815260128b01909352912060010154909150600160801b900463ffffffff1615613094576000818152601288016020526040812060018101548154919291612f53916001600160401b0390811691600160a01b900416613896565b60018301549091506001600160401b0380881691612f7f91680100000000000000009091041683613896565b6001600160401b031611158015612fa85750806001600160401b0316866001600160401b031611155b6130405760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016104a5565b600191820154600084815260128b016020526040902080546001600160e01b0319168155909201805473ffffffffffffffffffffffffffffffffffffffff1916905593506001600160401b0316915061323f565b600081815260138801602052604090206001810154600160801b900463ffffffff166131275760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016104a5565b6001810154815460009161314f916001600160401b0391821691600160a01b90910416613896565b60018301549091506001600160401b038088169161317b91680100000000000000009091041683613896565b6001600160401b0316111580156131a45750806001600160401b0316866001600160401b031611155b61323c5760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016104a5565b50505b5094509492505050565b6001600160601b031981166000818152601d8401602052604080822060028101805463ffffffff4216600160801b027fffffffffffffff00ffffffff00000000ffffffffffffffffffffffffffffffff909116177803000000000000000000000000000000000000000000000000179055805491519093927f68cb496f5e64383745876664ef119840f154a729c03ba866b8aecb5c9f53d51691a3505050565b6000610d198383016020015190565b6000806133068360256138e2565b8451101561331b575060001990506000612d7e565b60008061332d866126678760246138e2565b9097909650945050505050565b6000610d198383613506565b6000610d198284613f39565b8151600061336082846138e2565b90508281118015613372575080855110155b6133be5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016104a5565b826020860101602085018382015b80831015611f055782518252602092830192909101906133cc565b6000806133f384613534565b9050828114613406576000915050611b5c565b5060019392505050565b600061341c82846138e2565b905082811015611b5c5760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016104a5565b600082828151811061348257613482613dd7565b60209101015160f81c60ff141561349b57506008611b5c565b8282815181106134ad576134ad613dd7565b60209101015160f81c60fe14156134c657506004611b5c565b8282815181106134d8576134d8613dd7565b60209101015160f81c60fd14156134f157506002611b5c565b50600092915050565b6000611b5c82826132e9565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6024810151600090611b5c565b60006060828403121561355357600080fd5b50919050565b80356001600160601b03198116811461357157600080fd5b919050565b600080600080600060e0868803121561358e57600080fd5b8535945060208601356001600160401b03808211156135ac57600080fd5b908701906080828a0312156135c057600080fd5b909450604087013590808211156135d657600080fd5b506135e388828901613541565b9350506135f38760608801613541565b915061360160c08701613559565b90509295509295909350565b60008083601f84011261361f57600080fd5b5081356001600160401b0381111561363657600080fd5b602083019150836020828501011115612d7e57600080fd5b6000806000806000806080878903121561366757600080fd5b8635955061367760208801613559565b945060408701356001600160401b038082111561369357600080fd5b818901915089601f8301126136a757600080fd5b8135818111156136b657600080fd5b8a60208260051b85010111156136cb57600080fd5b6020830196508095505060608901359150808211156136e957600080fd5b506136f689828a0161360d565b979a9699509497509295939492505050565b6001600160a01b038116811461371d57600080fd5b50565b80356001600160401b038116811461357157600080fd5b60008060008060006080868803121561374f57600080fd5b85359450602086013561376181613708565b935061376f60408701613720565b925060608601356001600160401b0381111561378a57600080fd5b6137968882890161360d565b969995985093965092949392505050565b6000806000806000806000610100888a0312156137c357600080fd5b873596506137d360208901613559565b95506137e28960408a01613541565b945060a08801356137f281613708565b935060c08801356001600160401b0381111561380d57600080fd5b6138198a828b0161360d565b909450925061382c905060e08901613720565b905092959891949750929550565b6000808335601e1984360301811261385157600080fd5b8301803591506001600160401b0382111561386b57600080fd5b602001915036819003821315612d7e57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160401b03838116908316818110156138b6576138b6613880565b039392505050565b6001600160601b031984168152818360148301376000910160140190815292915050565b600082198211156138f5576138f5613880565b500190565b634e487b7160e01b600052602160045260246000fd5b803563ffffffff8116811461357157600080fd5b600060a082016bffffffffffffffffffffffff89168352602088818501526001600160a01b038816604085015286606085015260a060808501528185835260c08501905086925060005b868110156139975763ffffffff61398485613910565b168252928201929082019060010161396e565b509a9950505050505050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613a1357613a136139d5565b604052919050565b60008060008060008060c08789031215613a3457600080fd5b8635613a3f81613708565b95506020613a4e888201613559565b955060408801359450613a6360608901613910565b9350613a7160808901613720565b925060a08801356001600160401b0380821115613a8d57600080fd5b818a0191508a601f830112613aa157600080fd5b813581811115613ab357613ab36139d5565b613ac5601f8201601f191685016139eb565b91508082528b84828501011115613adb57600080fd5b80848401858401376000848284010152508093505050509295509295509295565b600060608284031215613b0e57600080fd5b604051606081018181106001600160401b0382111715613b3057613b306139d5565b60405282358152613b4360208401613910565b6020820152613b5460408401613720565b60408201529392505050565b600060208284031215613b7257600080fd5b81356001600160e01b031981168114610d1957600080fd5b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b600060208284031215613bde57600080fd5b610d1982613910565b600060208284031215613bf957600080fd5b610d1982613720565b60005b83811015613c1d578181015183820152602001613c05565b83811115613c2c576000848401525b50505050565b6001600160c01b03198316815260008251613c54816008850160208701613c02565b919091016008019392505050565b6bffffffffffffffffffffffff198316815260008251613c89816014850160208701613c02565b919091016014019392505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680613cc757613cc7613c97565b92169190910492915050565b60006001600160401b03808316818516808303821115613cf557613cf5613880565b01949350505050565b6080815260008551806080840152613d1d8160a0850160208a01613c02565b6001600160401b03958616602084015293851660408301525092166060830152601f01601f19160160a001919050565b6000600019821415613d6157613d61613880565b5060010190565b600060208284031215613d7a57600080fd5b5051919050565b6000816000190483118215151615613d9b57613d9b613880565b500290565b600082821015613db257613db2613880565b500390565b600063ffffffff821680613dcd57613dcd613880565b6000190192915050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff84168060ff03821115613e0a57613e0a613880565b019392505050565b600060ff821660ff841680821015613e2c57613e2c613880565b90039392505050565b600082613e4457613e44613c97565b500690565b600181815b80851115613e84578160001904821115613e6a57613e6a613880565b80851615613e7757918102915b93841c9390800290613e4e565b509250929050565b600082613e9b57506001611b5c565b81613ea857506000611b5c565b8160018114613ebe5760028114613ec857613ee4565b6001915050611b5c565b60ff841115613ed957613ed9613880565b50506001821b611b5c565b5060208310610133831016604e8410600b8410161715613f07575081810a611b5c565b613f118383613e49565b8060001904821115613f2557613f25613880565b029392505050565b6000610d198383613e8c565b600082613f4857613f48613c97565b50049056fea2646970667358221220ff261bcb03488a88f98ff228a4bb289a52672f59f944b3e8f990273e41bda59864736f6c63430008090033",
|
|
89
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c8063a164de6e1461005b578063a76558b31461007d578063d25398081461009d578063f5ada442146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004613576565b6100dd565b005b81801561008957600080fd5b5061007b61009836600461364e565b6103af565b8180156100a957600080fd5b5061007b6100b8366004613737565b61096f565b8180156100c957600080fd5b5061007b6100d83660046137a7565b6109d3565b60006100ea868686610a30565b905060006100f9878486610d20565b90506101488761010c602089018961383a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250610ef9915050565b60006101978861015b60408a018a61383a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250611022915050565b60608101519091506001600160401b0316156102175782816040015182606001516040516020016101f59392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f198184030181529190528051602090910120600183015561021f565b600060018301555b805160028301805460009061023e9084906001600160401b0316613896565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550836bffffffffffffffffffffffff19167fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe846040516102a391815260200190565b60405180910390a2875481516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201526001600160a01b039091169063392aee4390602401600060405180830381600087803b15801561031457600080fd5b505af1158015610328573d6000803e3d6000fd5b505089546004808c015460208601516040516356a6d9ef60e01b81526001600160a01b03928316938101939093526001600160401b0316602483015290911692506356a6d9ef9150604401600060405180830381600087803b15801561038d57600080fd5b505af11580156103a1573d6000803e3d6000fd5b505050505050505050505050565b60008583836040516020016103c6939291906138be565b60408051808303601f190181528282528051602091820120600081815260128c01835283902060a08501845280546001600160a01b0381168652600160a01b90046001600160401b039081169386019390935260010154808316938501939093526801000000000000000083049091166060840152600160801b90910463ffffffff16608083018190529092506104ae5760405162461bcd60e51b815260206004820152602160248201527f526564656d7074696f6e207265717565737420646f6573206e6f7420657869736044820152601d60fa1b60648201526084015b60405180910390fd5b4288600f0154826080015163ffffffff166104c991906138e2565b1061053b5760405162461bcd60e51b8152602060048201526024808201527f526564656d7074696f6e207265717565737420686173206e6f742074696d656460448201527f206f75740000000000000000000000000000000000000000000000000000000060648201526084016104a5565b6001600160601b031987166000908152601d89016020908152604091829020918301519083015161056c9190613896565b6002820180546000906105899084906001600160401b0316613896565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550600160058111156105c0576105c06138fa565b6002820154600160c01b900460ff1660058111156105e0576105e06138fa565b148061060a5750600280820154600160c01b900460ff166005811115610608576106086138fa565b145b80610634575060056002820154600160c01b900460ff166005811115610632576106326138fa565b145b6106a65760405162461bcd60e51b815260206004820152603760248201527f57616c6c6574206d75737420626520696e204c6976652c204d6f76696e67467560448201527f6e6473206f72205465726d696e6174656420737461746500000000000000000060648201526084016104a5565b600083815260138a016020908152604080832085518154878501516001600160a01b039092166001600160e01b031991821617600160a01b6001600160401b0393841602178355878401516001938401805460608b015160808c01519386167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090921691909117680100000000000000009190951602939093177fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff16600160801b63ffffffff909216919091021790915560128e019093529220805490911681558101805473ffffffffffffffffffffffffffffffffffffffff191690556002820154600160c01b900460ff1660058111156107c4576107c46138fa565b14806107ee5750600280820154600160c01b900460ff1660058111156107ec576107ec6138fa565b145b156108a757600289015460108a015460118b015483546040517fd8dc404d0000000000000000000000000000000000000000000000000000000081526001600160a01b039094169363d8dc404d93610862936bffffffffffffffffffffffff9091169290913391908e908e90600401613924565b600060405180830381600087803b15801561087c57600080fd5b505af1158015610890573d6000803e3d6000fd5b505050506108a7888a61115990919063ffffffff16565b876bffffffffffffffffffffffff19167f013dddc8debc4730cd01232fdcea9ae6013689837732356c187fe5edb9a8a8d586866040516108e89291906139a6565b60405180910390a28854825160208401516040516356a6d9ef60e01b81526001600160a01b0392831660048201526001600160401b0390911660248201529116906356a6d9ef90604401600060405180830381600087803b15801561094c57600080fd5b505af1158015610960573d6000803e3d6000fd5b50505050505050505050505050565b6000808080808061098287890189613a1b565b9550955095509550955095506109c68b8660405180606001604052808881526020018763ffffffff168152602001866001600160401b03168152508d8a868f61123c565b5050505050505050505050565b610a2787876109e736899003890189613afc565b878888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a925061123c915050565b50505050505050565b6000610a7c610a42602085018561383a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119d992505050565b610ac85760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016104a5565b610b12610ad8604085018561383a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a8992505050565b610b5e5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016104a5565b610bc1610b6e6020850185613b60565b610b7b602086018661383a565b610b88604088018861383a565b610b9860808a0160608b01613b60565b604051602001610bad96959493929190613b8a565b604051602081830303815290604052611b2c565b9050610c5c610c10610bd6604085018561383a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b5392505050565b610c1a848061383a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869493925050506020860135611b62565b610cce5760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016104a5565b610d1984610cdf604085018561383a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ba092505050565b9392505050565b6001600160601b031982166000908152601d840160205260409020600181015480610d8d5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016104a5565b808335610da06040860160208701613bcc565b610db06060870160408801613be7565b604051602001610ded9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014610e505760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016104a5565b6002820154600160c01b900460ff166001816005811115610e7357610e736138fa565b1480610e9057506002816005811115610e8e57610e8e6138fa565b145b610ef05760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201526a46756e647320737461746560a81b60648201526084016104a5565b50509392505050565b600080610f0584611f0f565b9092509050823582148015610f34575063ffffffff8116610f2c6040850160208601613bcc565b63ffffffff16145b610fa65760405162461bcd60e51b815260206004820152603f60248201527f4f7574626f756e64207472616e73616374696f6e20696e707574206d7573742060448201527f706f696e7420746f207468652077616c6c65742773206d61696e205554584f0060648201526084016104a5565b60016019860160008535610fc06040880160208901613bcc565b604051602001610fe792919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff19169115159190911790555050505050565b6040805160808101825260008082526020820181905291810182905260608101829052908061105085611fea565b909250905060006110628360016138e2565b6040517f1976a9140000000000000000000000000000000000000000000000000000000060208201526001600160601b03198716602482015261222b60f21b6038820152909150600090603a0160408051601f198184030181529082905280516020918201207f1600140000000000000000000000000000000000000000000000000000000000918301919091526001600160601b031988166023830152915060009060370160405160208183030381529060405280519060200120905061114c898989604051806080016040528088815260200189815260200187815260200186815250612001565b9998505050505050505050565b6001600160601b031981166000908152601d83016020526040902060020154600160c01b900460ff166001816005811115611196576111966138fa565b14806111b3575060028160058111156111b1576111b16138fa565b145b6112135760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201526a46756e647320737461746560a81b60648201526084016104a5565b6001816005811115611227576112276138fa565b14156112375761123783836121fb565b505050565b6001600160601b031986166000908152601d88016020526040902060016002820154600160c01b900460ff166005811115611279576112796138fa565b146112c65760405162461bcd60e51b815260206004820152601c60248201527f57616c6c6574206d75737420626520696e204c6976652073746174650000000060448201526064016104a5565b6001810154806113225760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c656044820152601d60fa1b60648201526084016104a5565b8087600001518860200151896040015160405160200161136f9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146113d25760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016104a5565b6000611402600060c01b866040516020016113ee929190613c32565b604051602081830303815290604052612345565b9050600081511161147b5760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016104a5565b8080519060200120896040516020016114a491906001600160601b031991909116815260140190565b60405160208183030381529060405280519060200120141561152e5760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016104a5565b600e8a01546001600160401b03908116908516101561158f5760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016104a5565b600089866040516020016115a4929190613c62565b60408051808303601f190181529181528151602092830120600081815260128f01909352912060010154909150600160801b900463ffffffff16156116775760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016104a5565b600e8b01546000906801000000000000000090046001600160401b031661169f5760006116c3565b600e8c01546116c3906801000000000000000090046001600160401b031687613cad565b600e8d0154909150600160801b90046001600160401b03166116e58288613896565b6002870180546000906117029084906001600160401b0316613cd3565b92506101000a8154816001600160401b0302191690836001600160401b031602179055508560020160009054906101000a90046001600160401b03166001600160401b03168b604001516001600160401b031610156117a35760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016104a5565b6040518060a001604052808a6001600160a01b03168152602001886001600160401b03168152602001836001600160401b03168152602001826001600160401b031681526020014263ffffffff168152508d601201600085815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160010160086101000a8154816001600160401b0302191690836001600160401b0316021790555060808201518160010160106101000a81548163ffffffff021916908363ffffffff160217905550905050886001600160a01b03168c6bffffffffffffffffffffffff19167f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d958a8a86866040516119369493929190613cfe565b60405180910390a38c546040517f7c6db49c0000000000000000000000000000000000000000000000000000000081526001600160a01b038c811660048301523060248301526001600160401b038a16604483015290911690637c6db49c90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b5050505050505050505050505050505050565b60008060006119e784611fea565b90925090508015806119fa575060001982145b15611a09575060009392505050565b6000611a168360016138e2565b905060005b82811015611a7c5785518210611a375750600095945050505050565b6000611a4387846125e3565b9050600019811415611a5c575060009695505050505050565b611a6681846138e2565b9250508080611a7490613d4d565b915050611a1b565b5093519093149392505050565b6000806000611a9784611fea565b9092509050801580611aaa575060001982145b15611ab9575060009392505050565b6000611ac68360016138e2565b905060005b82811015611a7c5785518210611ae75750600095945050505050565b6000611af38784612637565b9050600019811415611b0c575060009695505050505050565b611b1681846138e2565b9250508080611b2490613d4d565b915050611acb565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60448101516000905b92915050565b60008385148015611b71575081155b8015611b7c57508251155b15611b8957506001611b98565b611b958584868561269d565b90505b949350505050565b6001820154604080517f113764be00000000000000000000000000000000000000000000000000000000815290516001600160a01b0390921691600091839163113764be91600480820192602092909190829003018186803b158015611c0557600080fd5b505afa158015611c19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3d9190613d68565b90506000826001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b158015611c7a57600080fd5b505afa158015611c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb29190613d68565b9050600080611cc8611cc387612745565b6127da565b905083811415611cda57839150611d58565b82811415611cea57829150611d58565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016104a5565b6000611d6387612802565b9050600019811415611ddd5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016104a5565b600119811415611e2f5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016104a5565b600219811415611e815760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016104a5565b6003880154611e909084613d81565b811015611f055760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016104a5565b5050505050505050565b6000806000611f1d84611fea565b91505080600114611f965760405162461bcd60e51b815260206004820152602d60248201527f4f7574626f756e64207472616e73616374696f6e206d7573742068617665206160448201527f2073696e676c6520696e7075740000000000000000000000000000000000000060648201526084016104a5565b6000611fa28582612a09565b9050611fad81612bef565b9350611fe1611fbb82612bfc565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b92505050915091565b600080611ff8836000612c09565b91509150915091565b604080516080810182526000808252602082018190529181018290526060810182905290805b836020015181101561217e578351600090612043908890612637565b855190915060009061205790899084612d85565b9050600061206482612e4f565b90506000612082600880855161207a9190613da0565b859190612d85565b905086606001516001600160401b031660001480156120bd575060408801518151602083012014806120bd5750606088015181516020830120145b80156120d257506000826001600160401b0316115b156120f75763ffffffff851660408801526001600160401b038216606088015261214f565b6000806121068d8c8587612ec5565b91509150818960000181815161211c9190613cd3565b6001600160401b031690525060208901805182919061213c908390613cd3565b6001600160401b03169052506001975050505b838860000181815161216191906138e2565b9052508493506121769250839150613d4d9050565b915050612027565b50806121f25760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016104a5565b50949350505050565b6001600160601b031981166000908152601d830160205260409020600181015461222e576122298383613249565b6122c5565b60028101805463ffffffff42166c01000000000000000000000000027fffffffffffffff00ffffffffffffffff00000000ffffffffffffffffffffffff90911617780200000000000000000000000000000000000000000000000017905580546040516001600160601b0319841691907fbdc9ce990a067e5fd3a5d8dfc68e27e9f221aaa3fe55265e0b7e93c460b3efe290600090a35b601b83015460601b6001600160601b0319908116908316141561230257601b8301805473ffffffffffffffffffffffffffffffffffffffff191690555b601b83018054600160a01b900463ffffffff1690601461232183613db7565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050565b606060008260088151811061235c5761235c613dd7565b0160200151835160f89190911c9150612376826009613ded565b60ff1614612394575050604080516020810190915260008152919050565b826009815181106123a7576123a7613dd7565b016020015160f81c6124455760028160ff1610156123d5575050604080516020810190915260008152919050565b600083600a815181106123ea576123ea613dd7565b016020015160f81c90506123ff600283613e12565b60ff168114158061241d57508060201415801561241d575080601414155b1561243957505060408051602081019091526000815292915050565b611b9884600b83612d85565b60006124528460086132e9565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000000000000000008216141561252f5783600b815181106124b1576124b1613dd7565b60209101015160f81c601414158061250657506124dc600285516124d59190613da0565b85906132e9565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b1561252257505060408051602081019091526000815292915050565b611b9884600c6014612d85565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156125cc5783600185516125889190613da0565b8151811061259857612598613dd7565b60209101015160f81c6087146125bf57505060408051602081019091526000815292915050565b611b9884600b6014612d85565b505050604080516020810190915260008152919050565b60008060006125f285856132f8565b909250905060001982141561260d5760001992505050611b5c565b806126198360256138e2565b61262391906138e2565b61262e9060046138e2565b95945050505050565b60006126448260096138e2565b835110156126555750600019611b5c565b60008061266c856126678660086138e2565b612c09565b90925090506000198214156126875760001992505050611b5c565b806126938360096138e2565b61262e91906138e2565b6000602084516126ad9190613e35565b156126ba57506000611b98565b83516126c857506000611b98565b818560005b8651811015612738576126e1600284613e35565b60011415612706576126ff6126f98883016020015190565b8361333a565b915061271f565b61271c826127178984016020015190565b61333a565b91505b60019290921c916127316020826138e2565b90506126cd565b5090931495945050505050565b6000806127538360486132e9565b60e81c9050600083604b8151811061276d5761276d613dd7565b016020015160f81c905060006127a183600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006127b5600384613e12565b60ff1690506127c681610100613f2d565b6127d09083613d81565b9695505050505050565b6000611b5c7bffff000000000000000000000000000000000000000000000000000083613346565b6000605082516128129190613e35565b156128205750600019919050565b506040805160808101909152605081526000908190815b8451811015612a015761284b858383613352565b801561286b5761285b82846133e7565b61286b5750600119949350505050565b600061287683612745565b905061288183611b2c565b9350806129c58560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b11156129d8575060021995945050505050565b6129eb6129e4826127da565b8690613410565b94506129fa90506050826138e2565b9050612837565b505050919050565b6060600080612a1785611fea565b9092509050600019821415612a945760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e6700000000000000000000000000000000000000000000000000000000000060648201526084016104a5565b808410612ae35760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016104a5565b600080612af18460016138e2565b905060005b86811015612b7a57612b0888836125e3565b9250600019831415612b5c5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016104a5565b612b6683836138e2565b915080612b7281613d4d565b915050612af6565b50612b8587826125e3565b9150600019821415612bd95760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016104a5565b612be4878284612d85565b979650505050505050565b6020810151600090611b5c565b6000611b5c8260206132e9565b6000806000612c18858561346e565b905060ff8116612c4a576000858581518110612c3657612c36613dd7565b016020015190935060f81c9150612d7e9050565b83612c56826001613ded565b60ff16612c6391906138e2565b85511015612c7a5760001960009250925050612d7e565b60008160ff1660021415612cbf57612cb4612ca0612c998760016138e2565b88906132e9565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612d74565b8160ff1660041415612ce957612cdc611fbb612c998760016138e2565b63ffffffff169050612d74565b8160ff1660081415612d7457612d68612d06612c998760016138e2565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b606081612da15750604080516020810190915260008152610d19565b6000612dad83856138e2565b90508381118015612dbf575080855110155b612e0b5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016104a5565b604051915082604083010160405282825283850182038460208701018481015b80821015612e4457815183830152602082019150612e2b565b505050509392505050565b600080612e5b836134fa565b60c01c90506000611b988264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b60008060008585604051602001612edd929190613c62565b60408051808303601f190181529181528151602092830120600081815260128b01909352912060010154909150600160801b900463ffffffff1615613094576000818152601288016020526040812060018101548154919291612f53916001600160401b0390811691600160a01b900416613896565b60018301549091506001600160401b0380881691612f7f91680100000000000000009091041683613896565b6001600160401b031611158015612fa85750806001600160401b0316866001600160401b031611155b6130405760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016104a5565b600191820154600084815260128b016020526040902080546001600160e01b0319168155909201805473ffffffffffffffffffffffffffffffffffffffff1916905593506001600160401b0316915061323f565b600081815260138801602052604090206001810154600160801b900463ffffffff166131275760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016104a5565b6001810154815460009161314f916001600160401b0391821691600160a01b90910416613896565b60018301549091506001600160401b038088169161317b91680100000000000000009091041683613896565b6001600160401b0316111580156131a45750806001600160401b0316866001600160401b031611155b61323c5760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016104a5565b50505b5094509492505050565b6001600160601b031981166000818152601d8401602052604080822060028101805463ffffffff4216600160801b027fffffffffffffff00ffffffff00000000ffffffffffffffffffffffffffffffff909116177803000000000000000000000000000000000000000000000000179055805491519093927f68cb496f5e64383745876664ef119840f154a729c03ba866b8aecb5c9f53d51691a3505050565b6000610d198383016020015190565b6000806133068360256138e2565b8451101561331b575060001990506000612d7e565b60008061332d866126678760246138e2565b9097909650945050505050565b6000610d198383613506565b6000610d198284613f39565b8151600061336082846138e2565b90508281118015613372575080855110155b6133be5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016104a5565b826020860101602085018382015b80831015611f055782518252602092830192909101906133cc565b6000806133f384613534565b9050828114613406576000915050611b5c565b5060019392505050565b600061341c82846138e2565b905082811015611b5c5760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016104a5565b600082828151811061348257613482613dd7565b60209101015160f81c60ff141561349b57506008611b5c565b8282815181106134ad576134ad613dd7565b60209101015160f81c60fe14156134c657506004611b5c565b8282815181106134d8576134d8613dd7565b60209101015160f81c60fd14156134f157506002611b5c565b50600092915050565b6000611b5c82826132e9565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6024810151600090611b5c565b60006060828403121561355357600080fd5b50919050565b80356001600160601b03198116811461357157600080fd5b919050565b600080600080600060e0868803121561358e57600080fd5b8535945060208601356001600160401b03808211156135ac57600080fd5b908701906080828a0312156135c057600080fd5b909450604087013590808211156135d657600080fd5b506135e388828901613541565b9350506135f38760608801613541565b915061360160c08701613559565b90509295509295909350565b60008083601f84011261361f57600080fd5b5081356001600160401b0381111561363657600080fd5b602083019150836020828501011115612d7e57600080fd5b6000806000806000806080878903121561366757600080fd5b8635955061367760208801613559565b945060408701356001600160401b038082111561369357600080fd5b818901915089601f8301126136a757600080fd5b8135818111156136b657600080fd5b8a60208260051b85010111156136cb57600080fd5b6020830196508095505060608901359150808211156136e957600080fd5b506136f689828a0161360d565b979a9699509497509295939492505050565b6001600160a01b038116811461371d57600080fd5b50565b80356001600160401b038116811461357157600080fd5b60008060008060006080868803121561374f57600080fd5b85359450602086013561376181613708565b935061376f60408701613720565b925060608601356001600160401b0381111561378a57600080fd5b6137968882890161360d565b969995985093965092949392505050565b6000806000806000806000610100888a0312156137c357600080fd5b873596506137d360208901613559565b95506137e28960408a01613541565b945060a08801356137f281613708565b935060c08801356001600160401b0381111561380d57600080fd5b6138198a828b0161360d565b909450925061382c905060e08901613720565b905092959891949750929550565b6000808335601e1984360301811261385157600080fd5b8301803591506001600160401b0382111561386b57600080fd5b602001915036819003821315612d7e57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160401b03838116908316818110156138b6576138b6613880565b039392505050565b6001600160601b031984168152818360148301376000910160140190815292915050565b600082198211156138f5576138f5613880565b500190565b634e487b7160e01b600052602160045260246000fd5b803563ffffffff8116811461357157600080fd5b600060a082016bffffffffffffffffffffffff89168352602088818501526001600160a01b038816604085015286606085015260a060808501528185835260c08501905086925060005b868110156139975763ffffffff61398485613910565b168252928201929082019060010161396e565b509a9950505050505050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613a1357613a136139d5565b604052919050565b60008060008060008060c08789031215613a3457600080fd5b8635613a3f81613708565b95506020613a4e888201613559565b955060408801359450613a6360608901613910565b9350613a7160808901613720565b925060a08801356001600160401b0380821115613a8d57600080fd5b818a0191508a601f830112613aa157600080fd5b813581811115613ab357613ab36139d5565b613ac5601f8201601f191685016139eb565b91508082528b84828501011115613adb57600080fd5b80848401858401376000848284010152508093505050509295509295509295565b600060608284031215613b0e57600080fd5b604051606081018181106001600160401b0382111715613b3057613b306139d5565b60405282358152613b4360208401613910565b6020820152613b5460408401613720565b60408201529392505050565b600060208284031215613b7257600080fd5b81356001600160e01b031981168114610d1957600080fd5b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b600060208284031215613bde57600080fd5b610d1982613910565b600060208284031215613bf957600080fd5b610d1982613720565b60005b83811015613c1d578181015183820152602001613c05565b83811115613c2c576000848401525b50505050565b6001600160c01b03198316815260008251613c54816008850160208701613c02565b919091016008019392505050565b6bffffffffffffffffffffffff198316815260008251613c89816014850160208701613c02565b919091016014019392505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680613cc757613cc7613c97565b92169190910492915050565b60006001600160401b03808316818516808303821115613cf557613cf5613880565b01949350505050565b6080815260008551806080840152613d1d8160a0850160208a01613c02565b6001600160401b03958616602084015293851660408301525092166060830152601f01601f19160160a001919050565b6000600019821415613d6157613d61613880565b5060010190565b600060208284031215613d7a57600080fd5b5051919050565b6000816000190483118215151615613d9b57613d9b613880565b500290565b600082821015613db257613db2613880565b500390565b600063ffffffff821680613dcd57613dcd613880565b6000190192915050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff84168060ff03821115613e0a57613e0a613880565b019392505050565b600060ff821660ff841680821015613e2c57613e2c613880565b90039392505050565b600082613e4457613e44613c97565b500690565b600181815b80851115613e84578160001904821115613e6a57613e6a613880565b80851615613e7757918102915b93841c9390800290613e4e565b509250929050565b600082613e9b57506001611b5c565b81613ea857506000611b5c565b8160018114613ebe5760028114613ec857613ee4565b6001915050611b5c565b60ff841115613ed957613ed9613880565b50506001821b611b5c565b5060208310610133831016604e8410600b8410161715613f07575081810a611b5c565b613f118383613e49565b8060001904821115613f2557613f25613880565b029392505050565b6000610d198383613e8c565b600082613f4857613f48613c97565b50049056fea2646970667358221220ff261bcb03488a88f98ff228a4bb289a52672f59f944b3e8f990273e41bda59864736f6c63430008090033",
|
|
90
90
|
"linkReferences": {},
|
|
91
91
|
"deployedLinkReferences": {}
|
|
92
92
|
}
|
|
@@ -105,8 +105,8 @@
|
|
|
105
105
|
"type": "event"
|
|
106
106
|
}
|
|
107
107
|
],
|
|
108
|
-
"bytecode": "
|
|
109
|
-
"deployedBytecode": "
|
|
108
|
+
"bytecode": "0x610fbf61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c80634afbe4c91461005b57806399b0b8471461007d578063c87de7f41461009d578063d079fbb1146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004610d63565b6100dd565b005b81801561008957600080fd5b5061007b610098366004610dad565b610307565b8180156100a957600080fd5b5061007b6100b8366004610dfe565b610535565b8180156100c957600080fd5b5061007b6100d8366004610e2a565b610650565b60028401546001600160a01b0316331461014e5760405162461bcd60e51b815260206004820152602760248201527f43616c6c6572206973206e6f74207468652045434453412057616c6c657420526044820152666567697374727960c81b60648201526084015b60405180910390fd5b600061016261015d848461094f565b6109f9565b6bffffffffffffffffffffffff1981166000908152601d8701602052604081209192506002820154600160c01b900460ff1660058111156101a5576101a5610e57565b146102185760405162461bcd60e51b815260206004820152602860248201527f45434453412077616c6c657420686173206265656e20616c726561647920726560448201527f67697374657265640000000000000000000000000000000000000000000000006064820152608401610145565b8481556002810180547fffffffffffffff00ffffffffffffffffffffffff00000000ffffffffffffffff16680100000000000000004263ffffffff9081169190910291909117600160c01b17909155601b8701805473ffffffffffffffffffffffffffffffffffffffff1916606085901c17808255600160a01b90049091169060146102a383610e83565b91906101000a81548163ffffffff021916908363ffffffff16021790555050816bffffffffffffffffffffffff1916857f2dbb47dce81d6b11cca1f1e3b10143d6f7e1e7e92d2dd9aacbb1f875379d308e60405160405180910390a3505050505050565b601b83015460601b6bffffffffffffffffffffffff1990811690831614156103975760405162461bcd60e51b815260206004820152602c60248201527f4163746976652077616c6c65742063616e6e6f7420626520636f6e736964657260448201527f656420636c6f736561626c6500000000000000000000000000000000000000006064820152608401610145565b6bffffffffffffffffffffffff1982166000908152601d84016020526040902060016002820154600160c01b900460ff1660058111156103d9576103d9610e57565b146104265760405162461bcd60e51b815260206004820152601c60248201527f57616c6c6574206d75737420626520696e204c697665207374617465000000006044820152606401610145565b601a84015460028201546000916104739163ffffffff7c01000000000000000000000000000000000000000000000000000000009092048216916801000000000000000090910416610ea7565b63ffffffff16421015905080806104b25750601a850154600160a01b900467ffffffffffffffff166104a6868686610a20565b67ffffffffffffffff16105b6105245760405162461bcd60e51b815260206004820152603660248201527f57616c6c6574206e6565647320746f206265206f6c6420656e6f756768206f7260448201527f206861766520746f6f20666577207361746f73686973000000000000000000006064820152608401610145565b61052e8585610b58565b5050505050565b60028301546001600160a01b031633146105a15760405162461bcd60e51b815260206004820152602760248201527f43616c6c6572206973206e6f74207468652045434453412057616c6c657420526044820152666567697374727960c81b6064820152608401610145565b60006105b061015d848461094f565b905060016bffffffffffffffffffffffff1982166000908152601d86016020526040902060020154600160c01b900460ff1660058111156105f3576105f3610e57565b146106405760405162461bcd60e51b815260206004820152601c60248201527f57616c6c6574206d75737420626520696e204c697665207374617465000000006044820152606401610145565b61064a8482610b58565b50505050565b6002820154604080517fcc56238800000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cc562388916004808301926020929190829003018186803b1580156106b057600080fd5b505afa1580156106c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e89190610ecf565b60038111156106f9576106f9610e57565b1461076c5760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206372656174696f6e20616c726561647920696e2070726f677260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610145565b601b82015460601b6bffffffffffffffffffffffff198116156108b7576000610796848385610a20565b6bffffffffffffffffffffffff1983166000908152601d86016020526040812060020154601a87015492935063ffffffff680100000000000000009091048116926107e2911683610ea7565b63ffffffff1642101590508080156108145750601a86015467ffffffffffffffff640100000000909104811690841610155b806108415750601a86015467ffffffffffffffff6c01000000000000000000000000909104811690841610155b6108b35760405162461bcd60e51b815260206004820152602660248201527f57616c6c6574206372656174696f6e20636f6e646974696f6e7320617265206e60448201527f6f74206d657400000000000000000000000000000000000000000000000000006064820152608401610145565b5050505b6040517f31fecb80caf1e1128496dd5a6f1083ba29fd5fe64c3fe04e2d1b6f9cfc27d5a390600090a18260020160009054906101000a90046001600160a01b03166001600160a01b03166372cc8c6d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561093257600080fd5b505af1158015610946573d6000803e3d6000fd5b50505050505050565b6060600061095e600284610ef7565b61098957507f02000000000000000000000000000000000000000000000000000000000000006109ac565b507f03000000000000000000000000000000000000000000000000000000000000005b6040517fff00000000000000000000000000000000000000000000000000000000000000821660208201526021810185905260410160405160208183030381529060405291505092915050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6bffffffffffffffffffffffff1982166000908152601d840160205260408120600101548015610b5057808335610a5d6040860160208701610f19565b610a6d6060870160408801610f3f565b604051602001610ada9392919092835260e09190911b7fffffffff0000000000000000000000000000000000000000000000000000000016602083015260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166024820152602c0190565b6040516020818303038152906040528051906020012014610b3d5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642077616c6c6574206d61696e205554584f20646174610000006044820152606401610145565b610b4d6060840160408501610f3f565b91505b509392505050565b6bffffffffffffffffffffffff1981166000908152601d8301602052604090206001810154610b9057610b8b8383610cb1565b610c2c565b60028101805463ffffffff42166c01000000000000000000000000027fffffffffffffff00ffffffffffffffff00000000ffffffffffffffffffffffff90911617780200000000000000000000000000000000000000000000000017905580546040516bffffffffffffffffffffffff19841691907fbdc9ce990a067e5fd3a5d8dfc68e27e9f221aaa3fe55265e0b7e93c460b3efe290600090a35b601b83015460601b6bffffffffffffffffffffffff199081169083161415610c6e57601b8301805473ffffffffffffffffffffffffffffffffffffffff191690555b601b83018054600160a01b900463ffffffff16906014610c8d83610f69565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050565b6bffffffffffffffffffffffff1981166000818152601d8401602052604080822060028101805463ffffffff4216700100000000000000000000000000000000027fffffffffffffff00ffffffff00000000ffffffffffffffffffffffffffffffff909116177803000000000000000000000000000000000000000000000000179055805491519093927f68cb496f5e64383745876664ef119840f154a729c03ba866b8aecb5c9f53d51691a3505050565b60008060008060808587031215610d7957600080fd5b5050823594602084013594506040840135936060013592509050565b600060608284031215610da757600080fd5b50919050565b600080600060a08486031215610dc257600080fd5b8335925060208401356bffffffffffffffffffffffff1981168114610de657600080fd5b9150610df58560408601610d95565b90509250925092565b600080600060608486031215610e1357600080fd5b505081359360208301359350604090920135919050565b60008060808385031215610e3d57600080fd5b82359150610e4e8460208501610d95565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff80831681811415610e9d57610e9d610e6d565b6001019392505050565b600063ffffffff808316818516808303821115610ec657610ec6610e6d565b01949350505050565b600060208284031215610ee157600080fd5b815160048110610ef057600080fd5b9392505050565b600082610f1457634e487b7160e01b600052601260045260246000fd5b500690565b600060208284031215610f2b57600080fd5b813563ffffffff81168114610ef057600080fd5b600060208284031215610f5157600080fd5b813567ffffffffffffffff81168114610ef057600080fd5b600063ffffffff821680610f7f57610f7f610e6d565b600019019291505056fea2646970667358221220866f43562a694652eca7f37a9edae2d6c262963a80e8abc3ec82ae2a14f3250a64736f6c63430008090033",
|
|
109
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c80634afbe4c91461005b57806399b0b8471461007d578063c87de7f41461009d578063d079fbb1146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004610d63565b6100dd565b005b81801561008957600080fd5b5061007b610098366004610dad565b610307565b8180156100a957600080fd5b5061007b6100b8366004610dfe565b610535565b8180156100c957600080fd5b5061007b6100d8366004610e2a565b610650565b60028401546001600160a01b0316331461014e5760405162461bcd60e51b815260206004820152602760248201527f43616c6c6572206973206e6f74207468652045434453412057616c6c657420526044820152666567697374727960c81b60648201526084015b60405180910390fd5b600061016261015d848461094f565b6109f9565b6bffffffffffffffffffffffff1981166000908152601d8701602052604081209192506002820154600160c01b900460ff1660058111156101a5576101a5610e57565b146102185760405162461bcd60e51b815260206004820152602860248201527f45434453412077616c6c657420686173206265656e20616c726561647920726560448201527f67697374657265640000000000000000000000000000000000000000000000006064820152608401610145565b8481556002810180547fffffffffffffff00ffffffffffffffffffffffff00000000ffffffffffffffff16680100000000000000004263ffffffff9081169190910291909117600160c01b17909155601b8701805473ffffffffffffffffffffffffffffffffffffffff1916606085901c17808255600160a01b90049091169060146102a383610e83565b91906101000a81548163ffffffff021916908363ffffffff16021790555050816bffffffffffffffffffffffff1916857f2dbb47dce81d6b11cca1f1e3b10143d6f7e1e7e92d2dd9aacbb1f875379d308e60405160405180910390a3505050505050565b601b83015460601b6bffffffffffffffffffffffff1990811690831614156103975760405162461bcd60e51b815260206004820152602c60248201527f4163746976652077616c6c65742063616e6e6f7420626520636f6e736964657260448201527f656420636c6f736561626c6500000000000000000000000000000000000000006064820152608401610145565b6bffffffffffffffffffffffff1982166000908152601d84016020526040902060016002820154600160c01b900460ff1660058111156103d9576103d9610e57565b146104265760405162461bcd60e51b815260206004820152601c60248201527f57616c6c6574206d75737420626520696e204c697665207374617465000000006044820152606401610145565b601a84015460028201546000916104739163ffffffff7c01000000000000000000000000000000000000000000000000000000009092048216916801000000000000000090910416610ea7565b63ffffffff16421015905080806104b25750601a850154600160a01b900467ffffffffffffffff166104a6868686610a20565b67ffffffffffffffff16105b6105245760405162461bcd60e51b815260206004820152603660248201527f57616c6c6574206e6565647320746f206265206f6c6420656e6f756768206f7260448201527f206861766520746f6f20666577207361746f73686973000000000000000000006064820152608401610145565b61052e8585610b58565b5050505050565b60028301546001600160a01b031633146105a15760405162461bcd60e51b815260206004820152602760248201527f43616c6c6572206973206e6f74207468652045434453412057616c6c657420526044820152666567697374727960c81b6064820152608401610145565b60006105b061015d848461094f565b905060016bffffffffffffffffffffffff1982166000908152601d86016020526040902060020154600160c01b900460ff1660058111156105f3576105f3610e57565b146106405760405162461bcd60e51b815260206004820152601c60248201527f57616c6c6574206d75737420626520696e204c697665207374617465000000006044820152606401610145565b61064a8482610b58565b50505050565b6002820154604080517fcc56238800000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cc562388916004808301926020929190829003018186803b1580156106b057600080fd5b505afa1580156106c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e89190610ecf565b60038111156106f9576106f9610e57565b1461076c5760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206372656174696f6e20616c726561647920696e2070726f677260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610145565b601b82015460601b6bffffffffffffffffffffffff198116156108b7576000610796848385610a20565b6bffffffffffffffffffffffff1983166000908152601d86016020526040812060020154601a87015492935063ffffffff680100000000000000009091048116926107e2911683610ea7565b63ffffffff1642101590508080156108145750601a86015467ffffffffffffffff640100000000909104811690841610155b806108415750601a86015467ffffffffffffffff6c01000000000000000000000000909104811690841610155b6108b35760405162461bcd60e51b815260206004820152602660248201527f57616c6c6574206372656174696f6e20636f6e646974696f6e7320617265206e60448201527f6f74206d657400000000000000000000000000000000000000000000000000006064820152608401610145565b5050505b6040517f31fecb80caf1e1128496dd5a6f1083ba29fd5fe64c3fe04e2d1b6f9cfc27d5a390600090a18260020160009054906101000a90046001600160a01b03166001600160a01b03166372cc8c6d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561093257600080fd5b505af1158015610946573d6000803e3d6000fd5b50505050505050565b6060600061095e600284610ef7565b61098957507f02000000000000000000000000000000000000000000000000000000000000006109ac565b507f03000000000000000000000000000000000000000000000000000000000000005b6040517fff00000000000000000000000000000000000000000000000000000000000000821660208201526021810185905260410160405160208183030381529060405291505092915050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6bffffffffffffffffffffffff1982166000908152601d840160205260408120600101548015610b5057808335610a5d6040860160208701610f19565b610a6d6060870160408801610f3f565b604051602001610ada9392919092835260e09190911b7fffffffff0000000000000000000000000000000000000000000000000000000016602083015260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166024820152602c0190565b6040516020818303038152906040528051906020012014610b3d5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642077616c6c6574206d61696e205554584f20646174610000006044820152606401610145565b610b4d6060840160408501610f3f565b91505b509392505050565b6bffffffffffffffffffffffff1981166000908152601d8301602052604090206001810154610b9057610b8b8383610cb1565b610c2c565b60028101805463ffffffff42166c01000000000000000000000000027fffffffffffffff00ffffffffffffffff00000000ffffffffffffffffffffffff90911617780200000000000000000000000000000000000000000000000017905580546040516bffffffffffffffffffffffff19841691907fbdc9ce990a067e5fd3a5d8dfc68e27e9f221aaa3fe55265e0b7e93c460b3efe290600090a35b601b83015460601b6bffffffffffffffffffffffff199081169083161415610c6e57601b8301805473ffffffffffffffffffffffffffffffffffffffff191690555b601b83018054600160a01b900463ffffffff16906014610c8d83610f69565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050565b6bffffffffffffffffffffffff1981166000818152601d8401602052604080822060028101805463ffffffff4216700100000000000000000000000000000000027fffffffffffffff00ffffffff00000000ffffffffffffffffffffffffffffffff909116177803000000000000000000000000000000000000000000000000179055805491519093927f68cb496f5e64383745876664ef119840f154a729c03ba866b8aecb5c9f53d51691a3505050565b60008060008060808587031215610d7957600080fd5b5050823594602084013594506040840135936060013592509050565b600060608284031215610da757600080fd5b50919050565b600080600060a08486031215610dc257600080fd5b8335925060208401356bffffffffffffffffffffffff1981168114610de657600080fd5b9150610df58560408601610d95565b90509250925092565b600080600060608486031215610e1357600080fd5b505081359360208301359350604090920135919050565b60008060808385031215610e3d57600080fd5b82359150610e4e8460208501610d95565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff80831681811415610e9d57610e9d610e6d565b6001019392505050565b600063ffffffff808316818516808303821115610ec657610ec6610e6d565b01949350505050565b600060208284031215610ee157600080fd5b815160048110610ef057600080fd5b9392505050565b600082610f1457634e487b7160e01b600052601260045260246000fd5b500690565b600060208284031215610f2b57600080fd5b813563ffffffff81168114610ef057600080fd5b600060208284031215610f5157600080fd5b813567ffffffffffffffff81168114610ef057600080fd5b600063ffffffff821680610f7f57610f7f610e6d565b600019019291505056fea2646970667358221220866f43562a694652eca7f37a9edae2d6c262963a80e8abc3ec82ae2a14f3250a64736f6c63430008090033",
|
|
110
110
|
"linkReferences": {},
|
|
111
111
|
"deployedLinkReferences": {}
|
|
112
112
|
}
|
|
@@ -149,6 +149,9 @@ library DepositSweep {
|
|
|
149
149
|
BitcoinTx.UTXO calldata mainUtxo,
|
|
150
150
|
address vault
|
|
151
151
|
) external {
|
|
152
|
+
// Wallet state validation is performed in the
|
|
153
|
+
// `resolveDepositSweepingWallet` function.
|
|
154
|
+
|
|
152
155
|
// The actual transaction proof is performed here. After that point, we
|
|
153
156
|
// can assume the transaction happened on Bitcoin chain and has
|
|
154
157
|
// a sufficient number of confirmations as determined by
|
|
@@ -280,7 +280,7 @@ library MovingFunds {
|
|
|
280
280
|
|
|
281
281
|
require(
|
|
282
282
|
wallet.state == Wallets.WalletState.MovingFunds,
|
|
283
|
-
"
|
|
283
|
+
"Wallet must be in MovingFunds state"
|
|
284
284
|
);
|
|
285
285
|
|
|
286
286
|
// If the moving funds wallet already submitted their target wallets
|
|
@@ -368,13 +368,31 @@ library MovingFunds {
|
|
|
368
368
|
movingFundsProof
|
|
369
369
|
);
|
|
370
370
|
|
|
371
|
+
// Assert that main UTXO for passed wallet exists in storage.
|
|
372
|
+
bytes32 mainUtxoHash = self
|
|
373
|
+
.registeredWallets[walletPubKeyHash]
|
|
374
|
+
.mainUtxoHash;
|
|
375
|
+
require(mainUtxoHash != bytes32(0), "No main UTXO for given wallet");
|
|
376
|
+
|
|
377
|
+
// Assert that passed main UTXO parameter is the same as in storage and
|
|
378
|
+
// can be used for further processing.
|
|
379
|
+
require(
|
|
380
|
+
keccak256(
|
|
381
|
+
abi.encodePacked(
|
|
382
|
+
mainUtxo.txHash,
|
|
383
|
+
mainUtxo.txOutputIndex,
|
|
384
|
+
mainUtxo.txOutputValue
|
|
385
|
+
)
|
|
386
|
+
) == mainUtxoHash,
|
|
387
|
+
"Invalid main UTXO data"
|
|
388
|
+
);
|
|
389
|
+
|
|
371
390
|
// Process the moving funds transaction input. Specifically, check if
|
|
372
391
|
// it refers to the expected wallet's main UTXO.
|
|
373
392
|
OutboundTx.processWalletOutboundTxInput(
|
|
374
393
|
self,
|
|
375
394
|
movingFundsTx.inputVector,
|
|
376
|
-
mainUtxo
|
|
377
|
-
walletPubKeyHash
|
|
395
|
+
mainUtxo
|
|
378
396
|
);
|
|
379
397
|
|
|
380
398
|
(
|
|
@@ -554,7 +572,7 @@ library MovingFunds {
|
|
|
554
572
|
|
|
555
573
|
require(
|
|
556
574
|
wallet.state == Wallets.WalletState.MovingFunds,
|
|
557
|
-
"
|
|
575
|
+
"Wallet must be in MovingFunds state"
|
|
558
576
|
);
|
|
559
577
|
|
|
560
578
|
require(
|
|
@@ -602,7 +620,7 @@ library MovingFunds {
|
|
|
602
620
|
|
|
603
621
|
require(
|
|
604
622
|
wallet.state == Wallets.WalletState.MovingFunds,
|
|
605
|
-
"
|
|
623
|
+
"Wallet must be in MovingFunds state"
|
|
606
624
|
);
|
|
607
625
|
|
|
608
626
|
uint64 walletBtcBalance = self.getWalletBtcBalance(
|
|
@@ -666,6 +684,9 @@ library MovingFunds {
|
|
|
666
684
|
BitcoinTx.Proof calldata sweepProof,
|
|
667
685
|
BitcoinTx.UTXO calldata mainUtxo
|
|
668
686
|
) external {
|
|
687
|
+
// Wallet state validation is performed in the
|
|
688
|
+
// `resolveMovedFundsSweepingWallet` function.
|
|
689
|
+
|
|
669
690
|
// The actual transaction proof is performed here. After that point, we
|
|
670
691
|
// can assume the transaction happened on Bitcoin chain and has
|
|
671
692
|
// a sufficient number of confirmations as determined by
|
|
@@ -1058,7 +1079,7 @@ library MovingFunds {
|
|
|
1058
1079
|
walletState == Wallets.WalletState.Live ||
|
|
1059
1080
|
walletState == Wallets.WalletState.MovingFunds ||
|
|
1060
1081
|
walletState == Wallets.WalletState.Terminated,
|
|
1061
|
-
"
|
|
1082
|
+
"Wallet must be in Live or MovingFunds or Terminated state"
|
|
1062
1083
|
);
|
|
1063
1084
|
|
|
1064
1085
|
sweepRequest.state = MovedFundsSweepRequestState.TimedOut;
|