@keep-network/tbtc-v2 1.6.0-dev.25 → 1.6.0-dev.26

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.
Files changed (131) hide show
  1. package/artifacts/BLS.json +1 -1
  2. package/artifacts/Bank.json +3 -3
  3. package/artifacts/BeaconAuthorization.json +1 -1
  4. package/artifacts/BeaconDkg.json +1 -1
  5. package/artifacts/BeaconDkgValidator.json +1 -1
  6. package/artifacts/BeaconInactivity.json +1 -1
  7. package/artifacts/BeaconSortitionPool.json +3 -3
  8. package/artifacts/Bridge.json +5 -5
  9. package/artifacts/BridgeGovernance.json +2 -2
  10. package/artifacts/BridgeGovernanceParameters.json +2 -2
  11. package/artifacts/Deposit.json +2 -2
  12. package/artifacts/DepositSweep.json +2 -2
  13. package/artifacts/DonationVault.json +3 -3
  14. package/artifacts/EcdsaDkgValidator.json +1 -1
  15. package/artifacts/EcdsaInactivity.json +1 -1
  16. package/artifacts/EcdsaSortitionPool.json +3 -3
  17. package/artifacts/Fraud.json +2 -2
  18. package/artifacts/LightRelay.json +18 -18
  19. package/artifacts/LightRelayMaintainerProxy.json +8 -8
  20. package/artifacts/MaintainerProxy.json +19 -19
  21. package/artifacts/MovingFunds.json +2 -2
  22. package/artifacts/NuCypherToken.json +2 -2
  23. package/artifacts/RandomBeacon.json +2 -2
  24. package/artifacts/RandomBeaconChaosnet.json +2 -2
  25. package/artifacts/RandomBeaconGovernance.json +2 -2
  26. package/artifacts/Redemption.json +2 -2
  27. package/artifacts/RedemptionWatchtower.json +5 -5
  28. package/artifacts/ReimbursementPool.json +2 -2
  29. package/artifacts/T.json +2 -2
  30. package/artifacts/TBTC.json +3 -3
  31. package/artifacts/TBTCToken.json +3 -3
  32. package/artifacts/TBTCVault.json +23 -23
  33. package/artifacts/TokenStaking.json +1 -1
  34. package/artifacts/TokenholderGovernor.json +9 -9
  35. package/artifacts/TokenholderTimelock.json +8 -8
  36. package/artifacts/VendingMachine.json +3 -3
  37. package/artifacts/VendingMachineNuCypher.json +1 -1
  38. package/artifacts/VendingMachineV2.json +3 -3
  39. package/artifacts/VendingMachineV3.json +3 -3
  40. package/artifacts/WalletProposalValidator.json +11 -11
  41. package/artifacts/WalletRegistry.json +5 -5
  42. package/artifacts/WalletRegistryGovernance.json +2 -2
  43. package/artifacts/Wallets.json +2 -2
  44. package/artifacts/solcInputs/{0c97856295d2a2e5cbbdaa36b4913700.json → c151efc9521638a56d4195bcc684d7ff.json} +1 -1
  45. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  46. package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
  47. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
  48. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
  49. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  50. package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +1 -1
  51. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
  52. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
  53. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
  54. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
  55. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
  56. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
  57. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
  58. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
  59. package/build/contracts/bridge/Redemption.sol/IRedemptionWatchtower.dbg.json +1 -1
  60. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
  61. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
  62. package/build/contracts/bridge/RedemptionWatchtower.sol/RedemptionWatchtower.dbg.json +1 -1
  63. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  64. package/build/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.dbg.json +1 -1
  65. package/build/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.dbg.json +1 -1
  66. package/build/contracts/bridge/WalletProposalValidator.sol/WalletProposalValidator.dbg.json +1 -1
  67. package/build/contracts/bridge/WalletProposalValidator.sol/WalletProposalValidator.json +2 -2
  68. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
  69. package/build/contracts/integrator/AbstractTBTCDepositor.sol/AbstractTBTCDepositor.dbg.json +1 -1
  70. package/build/contracts/integrator/IBridge.sol/IBridge.dbg.json +1 -1
  71. package/build/contracts/integrator/IBridge.sol/IBridgeTypes.dbg.json +1 -1
  72. package/build/contracts/integrator/ITBTCVault.sol/ITBTCVault.dbg.json +1 -1
  73. package/build/contracts/l2/L2TBTC.sol/L2TBTC.dbg.json +1 -1
  74. package/build/contracts/l2/L2WormholeGateway.sol/IWormholeTokenBridge.dbg.json +1 -1
  75. package/build/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.dbg.json +1 -1
  76. package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +1 -1
  77. package/build/contracts/relay/LightRelay.sol/ILightRelay.dbg.json +1 -1
  78. package/build/contracts/relay/LightRelay.sol/LightRelay.dbg.json +1 -1
  79. package/build/contracts/relay/LightRelay.sol/RelayUtils.dbg.json +1 -1
  80. package/build/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.dbg.json +1 -1
  81. package/build/contracts/test/BankStub.sol/BankStub.dbg.json +1 -1
  82. package/build/contracts/test/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  83. package/build/contracts/test/HeartbeatStub.sol/HeartbeatStub.dbg.json +1 -1
  84. package/build/contracts/test/LightRelayStub.sol/LightRelayStub.dbg.json +1 -1
  85. package/build/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.dbg.json +1 -1
  86. package/build/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.dbg.json +1 -1
  87. package/build/contracts/test/SystemTestRelay.sol/SystemTestRelay.dbg.json +1 -1
  88. package/build/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.dbg.json +1 -1
  89. package/build/contracts/test/TestERC20.sol/TestERC20.dbg.json +1 -1
  90. package/build/contracts/test/TestERC721.sol/TestERC721.dbg.json +1 -1
  91. package/build/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.dbg.json +1 -1
  92. package/build/contracts/test/TestTBTCDepositor.sol/MockBridge.dbg.json +1 -1
  93. package/build/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.dbg.json +1 -1
  94. package/build/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.dbg.json +1 -1
  95. package/build/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.dbg.json +1 -1
  96. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  97. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
  98. package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
  99. package/build/contracts/vault/TBTCOptimisticMinting.sol/TBTCOptimisticMinting.dbg.json +1 -1
  100. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
  101. package/contracts/bridge/WalletProposalValidator.sol +16 -8
  102. package/export/artifacts/contracts/bridge/Bridge.sol/Bridge.json +22 -22
  103. package/export/artifacts/contracts/bridge/VendingMachine.sol/VendingMachine.json +6 -6
  104. package/export/artifacts/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.json +6 -6
  105. package/export/artifacts/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.json +6 -6
  106. package/export/artifacts/contracts/bridge/WalletProposalValidator.sol/WalletProposalValidator.json +4838 -4792
  107. package/export/artifacts/contracts/l2/L2TBTC.sol/L2TBTC.json +40 -40
  108. package/export/artifacts/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.json +47 -47
  109. package/export/artifacts/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.json +88 -88
  110. package/export/artifacts/contracts/relay/LightRelay.sol/LightRelay.json +57 -57
  111. package/export/artifacts/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.json +31 -31
  112. package/export/artifacts/contracts/test/BankStub.sol/BankStub.json +2 -2
  113. package/export/artifacts/contracts/test/BridgeStub.sol/BridgeStub.json +58 -58
  114. package/export/artifacts/contracts/test/HeartbeatStub.sol/HeartbeatStub.json +2 -2
  115. package/export/artifacts/contracts/test/LightRelayStub.sol/LightRelayStub.json +59 -59
  116. package/export/artifacts/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.json +7 -7
  117. package/export/artifacts/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.json +59 -59
  118. package/export/artifacts/contracts/test/SystemTestRelay.sol/SystemTestRelay.json +14 -14
  119. package/export/artifacts/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.json +20 -20
  120. package/export/artifacts/contracts/test/TestERC20.sol/TestERC20.json +6 -6
  121. package/export/artifacts/contracts/test/TestERC721.sol/TestERC721.json +8 -8
  122. package/export/artifacts/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.json +2 -2
  123. package/export/artifacts/contracts/test/TestTBTCDepositor.sol/MockBridge.json +34 -34
  124. package/export/artifacts/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.json +18 -18
  125. package/export/artifacts/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.json +48 -48
  126. package/export/artifacts/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.json +37 -37
  127. package/export/artifacts/contracts/token/TBTC.sol/TBTC.json +2 -2
  128. package/export/artifacts/contracts/vault/DonationVault.sol/DonationVault.json +11 -11
  129. package/export/artifacts/contracts/vault/TBTCVault.sol/TBTCVault.json +135 -135
  130. package/export/typechain/factories/WalletProposalValidator__factory.js +1 -1
  131. package/package.json +1 -1
@@ -379,8 +379,8 @@
379
379
  "type": "function"
380
380
  }
381
381
  ],
382
- "bytecode": "0x60a06040523480156200001157600080fd5b5060405162003c4b38038062003c4b833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b608051613b63620000e86000396000818161018b015281816101e60152818161039e01528181610528015281816106ec01528181610b1101528181610ebc015281816112fd015281816115500152818161178a0152818161195b01528181611aef0152611d4c0152613b636000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80639b337db211610081578063e0276b261161005b578063e0276b261461013c578063e78cea9214610186578063f03a4bc5146101c557600080fd5b80639b337db214610157578063d09520f71461016a578063d6c7fa781461017357600080fd5b80637405d7bf116100b25780637405d7bf1461011f578063765f28f914610132578063996a756b1461013c57600080fd5b80630538ac1b146100d95780630fde6c76146100fc5780636b562cec146100d9575b600080fd5b6100e2611c2081565b60405163ffffffff90911681526020015b60405180910390f35b61010f61010a366004612b45565b6101d8565b60405190151581526020016100f3565b61010f61012d366004612b94565b610b03565b6100e26201518081565b610144601481565b60405161ffff90911681526020016100f3565b61010f610165366004612c2e565b6112f0565b6100e261025881565b61010f610181366004612c7d565b61177d565b6101ad7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100f3565b61010f6101d3366004612c99565b611c56565b600060016001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d56102186020860186612d13565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa15801561025e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102829190612e03565b60e00151600581111561029757610297612cd4565b146102e95760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c697665207374617465000000000060448201526064015b60405180910390fd5b60006102f86020840184612ea6565b915050806103485760405162461bcd60e51b815260206004820152601d60248201527f526564656d7074696f6e2062656c6f7720746865206d696e2073697a6500000060448201526064016102e0565b60148111156103995760405162461bcd60e51b815260206004820152601f60248201527f526564656d7074696f6e206578636565647320746865206d61782073697a650060448201526064016102e0565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e70ce416040518163ffffffff1660e01b815260040160e060405180830381865afa1580156103fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041e9190612f0c565b505094509450505050600085604001351161048b5760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b60648201526084016102e0565b8167ffffffffffffffff16856040013511156104f55760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b60648201526084016102e0565b6000610505846040880135612fba565b90506000846105188360408a0135612fe4565b6105229190612ff7565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635f3281ca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a89190613022565b905060008667ffffffffffffffff8111156105c5576105c5612d30565b6040519080825280602002602001820160405280156105ee578160200160208202803683370190505b50905060005b87811015610af357600061060b60208c018c612ea6565b8381811061061b5761061b61303d565b905060200281019061062d9190613053565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525084516020808701919091209596509094935061067e92508f0190508e612d13565b6040516020016106a29291909182526001600160601b031916602082015260340190565b60408051808303601f190181529082905280516020909101207f03d952f70000000000000000000000000000000000000000000000000000000082526004820181905291506000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906303d952f79060240160a060405180830381865afa15801561073b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075f919061309a565b9050806080015163ffffffff166000036107bb5760405162461bcd60e51b815260206004820181905260248201527f4e6f7420612070656e64696e6720726564656d7074696f6e207265717565737460448201526064016102e0565b6102586001600160a01b0387161561086e576040517f0df5db70000000000000000000000000000000000000000000000000000000008152600481018490526000906001600160a01b03891690630df5db7090602401602060405180830381865afa15801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190613130565b90508163ffffffff168163ffffffff16111561086c578091505b505b80826080015161087e919061314d565b63ffffffff1642116108f85760405162461bcd60e51b815260206004820152602b60248201527f526564656d7074696f6e2072657175657374206d696e20616765206e6f74206160448201527f636869657665642079657400000000000000000000000000000000000000000060648201526084016102e0565b60008a836080015161090a919061314d565b9050610918611c2082613171565b63ffffffff1642106109925760405162461bcd60e51b815260206004820152603960248201527f526564656d7074696f6e20726571756573742074696d656f757420736166657460448201527f79206d617267696e206973206e6f74207072657365727665640000000000000060648201526084016102e0565b8861099e60018f612fe4565b87036109b1576109ae8b8261318e565b90505b836060015167ffffffffffffffff16811115610a355760405162461bcd60e51b815260206004820152603660248201527f50726f706f736564207472616e73616374696f6e207065722d7265717565737460448201527f2066656520736861726520697320746f6f20686967680000000000000000000060648201526084016102e0565b60005b87811015610aba5785898281518110610a5357610a5361303d565b602002602001015103610aa85760405162461bcd60e51b815260206004820152601260248201527f4475706c6963617465642072657175657374000000000000000000000000000060448201526064016102e0565b80610ab2816131a1565b915050610a38565b5084888881518110610ace57610ace61303d565b6020026020010181815250505050505050508080610aeb906131a1565b9150506105f4565b5060019998505050505050505050565b600060016001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d5610b436020880188612d13565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015610b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bad9190612e03565b60e001516005811115610bc257610bc2612cd4565b14610c0f5760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c697665207374617465000000000060448201526064016102e0565b6000610c1e60208601866131ba565b905011610c6d5760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a65000000000000000060448201526064016102e0565b6014610c7c60208601866131ba565b90501115610ccc5760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a6500000000000060448201526064016102e0565b81610cda60208601866131ba565b905014610d4f5760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e6720657874726120696e666f00000000000000000000000000000000000060648201526084016102e0565b610d6b6040850135610d6460208701876131ba565b9050611cc1565b600080610d7b60208701876131ba565b905067ffffffffffffffff811115610d9557610d95612d30565b604051908082528060200260200182016040528015610dbe578160200160208202803683370190505b50905060005b610dd160208801886131ba565b90508110156112e1576000610de960208901896131ba565b83818110610df957610df961303d565b905060400201803603810190610e0f9190613204565b90506000878784818110610e2557610e2561303d565b9050602002810190610e37919061325a565b610e4090613337565b8251602080850151604051939450600093610e7293920191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529082905280516020909101207fb02c43d00000000000000000000000000000000000000000000000000000000082526004820181905291506000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b02c43d09060240160e060405180830381865afa158015610f0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2f9190613439565b9050806040015163ffffffff16600003610f8b5760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c656400000000000000000000000060448201526064016102e0565b611c208160400151610f9d919061314d565b63ffffffff164211610ff15760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f742061636869657665642079657460448201526064016102e0565b60a081015163ffffffff16156110495760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016102e0565b61105d8482600001518360c0015186611e48565b608083015160e881901c62ff00ff1663ff00ff0060d89290921c9190911617601081811c91901b176110926201518082613171565b63ffffffff16421061110c5760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f74207072657365727665640000000000000000000000000000000000000060648201526084016102e0565b61111960208d018d612d13565b6bffffffffffffffffffffffff191684604001516bffffffffffffffffffffffff1916146111af5760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c6574000000000000000000000000000000000000000000000000000060648201526084016102e0565b856000036111bf57816060015197505b876001600160a01b031682606001516001600160a01b0316146112245760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c740060448201526064016102e0565b60005b868110156112a957838882815181106112425761124261303d565b6020026020010151036112975760405162461bcd60e51b815260206004820152601260248201527f4475706c696361746564206465706f736974000000000000000000000000000060448201526064016102e0565b806112a1816131a1565b915050611227565b50828787815181106112bd576112bd61303d565b602002602001018181525050505050505080806112d9906131a1565b915050610dc4565b506001925050505b9392505050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d561132f6020870187612d13565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015611375573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113999190612e03565b905060028160e0015160058111156113b3576113b3612cd4565b146114265760405162461bcd60e51b815260206004820152602960248201527f536f757263652077616c6c6574206973206e6f7420696e204d6f76696e67467560448201527f6e6473207374617465000000000000000000000000000000000000000000000060648201526084016102e0565b61010081015161149e5760405162461bcd60e51b815260206004820152602a60248201527f5461726765742077616c6c65747320636f6d6d69746d656e74206973206e6f7460448201527f207375626d69747465640000000000000000000000000000000000000000000060648201526084016102e0565b6114ab6020850185612ea6565b6040516020016114bc9291906134ec565b604051602081830303815290604052805190602001208161010001511461154b5760405162461bcd60e51b815260206004820152603a60248201527f5461726765742077616c6c65747320646f206e6f74206d61746368207461726760448201527f65742077616c6c65747320636f6d6d69746d656e74206861736800000000000060648201526084016102e0565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663be05abe36040518163ffffffff1660e01b815260040161016060405180830381865afa1580156115ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d1919061352f565b5050505050505050509150915060006115ee8460200151876120e6565b90508167ffffffffffffffff168167ffffffffffffffff1610156116a05760405162461bcd60e51b815260206004820152604260248201527f536f757263652077616c6c6574204254432062616c616e63652069732062656c60448201527f6f7720746865206d6f76696e672066756e64732064757374207468726573686f60648201527f6c64000000000000000000000000000000000000000000000000000000000000608482015260a4016102e0565b60008760400135116117045760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b60648201526084016102e0565b8267ffffffffffffffff168760400135111561176e5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b60648201526084016102e0565b60019450505050505b92915050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d56117bc6020860186612d13565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015611802573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118269190612e03565b905060018160e00151600581111561184057611840612cd4565b1480611861575060028160e00151600581111561185f5761185f612cd4565b145b6118d35760405162461bcd60e51b815260206004820152603160248201527f536f757263652077616c6c6574206973206e6f7420696e204c697665206f722060448201527f4d6f76696e6746756e647320737461746500000000000000000000000000000060648201526084016102e0565b600060208401356118ea6060860160408701613612565b60405160200161191192919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529082905280516020909101207ff18cf1b10000000000000000000000000000000000000000000000000000000082526004820181905291506000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f18cf1b190602401608060405180830381865afa1580156119aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ce919061362f565b90506001816060015160038111156119e8576119e8612cd4565b14611a5b5760405162461bcd60e51b815260206004820152602560248201527f53776565702072657175657374206973206e6f7420696e2050656e64696e672060448201527f737461746500000000000000000000000000000000000000000000000000000060648201526084016102e0565b611a686020860186612d13565b81516001600160601b0319908116911614611aeb5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207265717565737420646f6573206e6f742062656c6f6e6720746f60448201527f207468652077616c6c657400000000000000000000000000000000000000000060648201526084016102e0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663be05abe36040518163ffffffff1660e01b815260040161016060405180830381865afa158015611b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b70919061352f565b5050509750505050505050506000866060013511611be05760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b60648201526084016102e0565b8067ffffffffffffffff1686606001351115611c4a5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b60648201526084016102e0565b50600195945050505050565b6000611c6d611c686020840184613053565b6121c1565b611cb95760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420612076616c696420686561727462656174206d65737361676500000060448201526064016102e0565b506001919050565b60008211611d215760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b60648201526084016102e0565b6000611d2d8284612fba565b9050600082611d3c8386612fe4565b611d469190612ff7565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611da8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dcc91906136b8565b5092505067ffffffffffffffff82169050611de7848461318e565b1115611e415760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b60648201526084016102e0565b5050505050565b805180516020808301516040808501516060909501519051600095611e8a95611e7695909493919201613747565b604051602081830303815290604052612239565b85519091508114611f035760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d61746368000000000000000000000000000000000000000000000060648201526084016102e0565b606083611f4657602080840151604080860151606087015160808801519251611f30958b9594910161377d565b6040516020818303038152906040529050611f83565b84848460200151856040015186606001518760800151604051602001611f7196959493929190613991565b60405160208183030381529060405290505b6000611faa876020015163ffffffff1685600001516040015161226090919063ffffffff16565b90506000611fb782612442565b905080516014148015611fef5750611fce8361245c565b6001600160601b031916611fe3826000612483565b6001600160601b031916145b15611ffd57505050506120e0565b8051602014801561206457506002836040516120199190613ab9565b602060405180830381855afa158015612036573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906120599190613ac5565b61206282612492565b145b1561207257505050506120e0565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d61746368000000000000000000000000000000000060648201526084016102e0565b50505050565b60008215611777578282356121016040850160208601613612565b6121116060860160408701613ade565b60405160200161214e9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146121b15760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642077616c6c6574206d61696e205554584f206461746100000060448201526064016102e0565b6112e96060830160408401613ade565b6000601082146121d357506000611777565b612217600084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506124839050565b6001600160c01b03199081161461223057506000611777565b50600192915050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b606060008061226e856124ad565b9092509050600182016122e95760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e6700000000000000000000000000000000000000000000000000000000000060648201526084016102e0565b8084106123385760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016102e0565b60008061234684600161318e565b905060005b868110156123ce5761235d88836124c4565b925060001983036123b05760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016102e0565b6123ba838361318e565b9150806123c6816131a1565b91505061234b565b506123d987826124c4565b9150600019820361242c5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016102e0565b612437878284612531565b979650505050505050565b60606117778260088085516124579190612fe4565b6125fe565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b60006112e98383016020015190565b600081516000036124a557506000919050565b506020015190565b6000806124bb836000612903565b91509150915091565b60006124d182600961318e565b835110156124e25750600019611777565b6000806124f9856124f486600861318e565b612903565b9092509050600182016125125760001992505050611777565b8061251e83600961318e565b612528919061318e565b95945050505050565b60608160000361255057506040805160208101909152600081526112e9565b600061255c838561318e565b9050838111801561256e575080855110155b6125ba5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016102e0565b604051915082604083010160405282825283850182038460208701018481015b808210156125f3578151838301526020820191506125da565b505050509392505050565b606060008484815181106126145761261461303d565b016020015160f81c90508261262a826001613afb565b60ff16146126485750506040805160208101909152600081526112e9565b8461265485600161318e565b815181106126645761266461303d565b016020015160f81c6000036127235760028160ff1610156126955750506040805160208101909152600081526112e9565b6000856126a386600261318e565b815181106126b3576126b361303d565b016020015160f81c90506126c8600283613b14565b60ff16811415806126e65750806020141580156126e6575080601414155b156127045760405180602001604052806000815250925050506112e9565b61271a61271286600361318e565b879083612531565b925050506112e9565b600061272f8686612483565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a9000000000000000000000000000000000000000000000000000000000003612843578561278686600361318e565b815181106127965761279661303d565b60209101015160f81c601414158061280e57506127c960026127b8868861318e565b6127c29190612fe4565b8790612483565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b1561282c5760405180602001604052806000815250925050506112e9565b61271a61283a86600461318e565b87906014612531565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a9140000000000000000000000000000000000000000000000000000000000036128ea57856001612899868861318e565b6128a39190612fe4565b815181106128b3576128b361303d565b60209101015160f81c6087146128dc5760405180602001604052806000815250925050506112e9565b61271a61283a86600361318e565b5050506040805160208101909152600081529392505050565b60008060006129128585612aa7565b90508060ff166000036129475760008585815181106129335761293361303d565b016020015190935060f81c9150612aa09050565b83612953826001613afb565b60ff16612960919061318e565b855110156129775760001960009250925050612aa0565b60008160ff166002036129bb576129b061299c61299587600161318e565b8890612483565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612a96565b8160ff16600403612a0a576129fd6129d761299587600161318e565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050612a96565b8160ff16600803612a9657612a89612a2661299587600161318e565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000828281518110612abb57612abb61303d565b016020015160f81c60ff03612ad257506008611777565b828281518110612ae457612ae461303d565b016020015160f81c60fe03612afb57506004611777565b828281518110612b0d57612b0d61303d565b016020015160f81c60fd03612b2457506002611777565b50600092915050565b600060608284031215612b3f57600080fd5b50919050565b600060208284031215612b5757600080fd5b813567ffffffffffffffff811115612b6e57600080fd5b612b7a84828501612b2d565b949350505050565b600060808284031215612b3f57600080fd5b600080600060408486031215612ba957600080fd5b833567ffffffffffffffff80821115612bc157600080fd5b612bcd87838801612b82565b94506020860135915080821115612be357600080fd5b818601915086601f830112612bf757600080fd5b813581811115612c0657600080fd5b8760208260051b8501011115612c1b57600080fd5b6020830194508093505050509250925092565b60008060808385031215612c4157600080fd5b823567ffffffffffffffff811115612c5857600080fd5b612c6485828601612b2d565b925050612c748460208501612b2d565b90509250929050565b600060808284031215612c8f57600080fd5b6112e98383612b82565b600060208284031215612cab57600080fd5b813567ffffffffffffffff811115612cc257600080fd5b8201604081850312156112e957600080fd5b634e487b7160e01b600052602160045260246000fd5b6001600160601b031981168114612d0057600080fd5b50565b8035612d0e81612cea565b919050565b600060208284031215612d2557600080fd5b81356112e981612cea565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612d6a57612d6a612d30565b60405290565b60405160a0810167ffffffffffffffff81118282101715612d6a57612d6a612d30565b6040516080810167ffffffffffffffff81118282101715612d6a57612d6a612d30565b67ffffffffffffffff81168114612d0057600080fd5b8051612d0e81612db6565b63ffffffff81168114612d0057600080fd5b8051612d0e81612dd7565b805160068110612d0e57600080fd5b60006101208284031215612e1657600080fd5b612e1e612d46565b8251815260208301516020820152612e3860408401612dcc565b6040820152612e4960608401612de9565b6060820152612e5a60808401612de9565b6080820152612e6b60a08401612de9565b60a0820152612e7c60c08401612de9565b60c0820152612e8d60e08401612df4565b60e0820152610100928301519281019290925250919050565b6000808335601e19843603018112612ebd57600080fd5b83018035915067ffffffffffffffff821115612ed857600080fd5b6020019150600581901b3603821315612aa057600080fd5b80516bffffffffffffffffffffffff81168114612d0e57600080fd5b600080600080600080600060e0888a031215612f2757600080fd5b8751612f3281612db6565b6020890151909750612f4381612db6565b6040890151909650612f5481612db6565b6060890151909550612f6581612db6565b6080890151909450612f7681612dd7565b9250612f8460a08901612ef0565b915060c0880151612f9481612dd7565b8091505092959891949750929550565b634e487b7160e01b600052601260045260246000fd5b600082612fc957612fc9612fa4565b500690565b634e487b7160e01b600052601160045260246000fd5b8181038181111561177757611777612fce565b60008261300657613006612fa4565b500490565b80516001600160a01b0381168114612d0e57600080fd5b60006020828403121561303457600080fd5b6112e98261300b565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261306a57600080fd5b83018035915067ffffffffffffffff82111561308557600080fd5b602001915036819003821315612aa057600080fd5b600060a082840312156130ac57600080fd5b60405160a0810181811067ffffffffffffffff821117156130cf576130cf612d30565b6040526130db8361300b565b815260208301516130eb81612db6565b602082015260408301516130fe81612db6565b6040820152606083015161311181612db6565b6060820152608083015161312481612dd7565b60808201529392505050565b60006020828403121561314257600080fd5b81516112e981612dd7565b63ffffffff81811683821601908082111561316a5761316a612fce565b5092915050565b63ffffffff82811682821603908082111561316a5761316a612fce565b8082018082111561177757611777612fce565b6000600182016131b3576131b3612fce565b5060010190565b6000808335601e198436030181126131d157600080fd5b83018035915067ffffffffffffffff8211156131ec57600080fd5b6020019150600681901b3603821315612aa057600080fd5b60006040828403121561321657600080fd5b6040516040810181811067ffffffffffffffff8211171561323957613239612d30565b60405282358152602083013561324e81612dd7565b60208201529392505050565b60008235609e1983360301811261327057600080fd5b9190910192915050565b80356001600160e01b031981168114612d0e57600080fd5b600082601f8301126132a357600080fd5b813567ffffffffffffffff808211156132be576132be612d30565b604051601f8301601f19908116603f011681019082821181831017156132e6576132e6612d30565b816040528381528660208588010111156132ff57600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160c01b031981168114612d0e57600080fd5b600060a0823603121561334957600080fd5b613351612d70565b823567ffffffffffffffff8082111561336957600080fd5b81850191506080823603121561337e57600080fd5b613386612d93565b61338f8361327a565b81526020830135828111156133a357600080fd5b6133af36828601613292565b6020830152506040830135828111156133c757600080fd5b6133d336828601613292565b6040830152506133e56060840161327a565b60608201528352506133fb90506020840161331f565b602082015261340c60408401612d03565b604082015261341d60608401612d03565b606082015261342e6080840161327a565b608082015292915050565b600060e0828403121561344b57600080fd5b60405160e0810181811067ffffffffffffffff8211171561346e5761346e612d30565b60405261347a8361300b565b8152602083015161348a81612db6565b6020820152604083015161349d81612dd7565b60408201526134ae6060840161300b565b606082015260808301516134c181612db6565b608082015260a08301516134d481612dd7565b60a082015260c0928301519281019290925250919050565b60008184825b8581101561352457813561350581612cea565b6001600160601b031916835260209283019291909101906001016134f2565b509095945050505050565b60008060008060008060008060008060006101608c8e03121561355157600080fd5b8b5161355c81612db6565b60208d0151909b5061356d81612db6565b60408d0151909a5061357e81612dd7565b60608d015190995061358f81612dd7565b975061359d60808d01612ef0565b965060a08c01516135ad81612dd7565b60c08d015190965061ffff811681146135c557600080fd5b94506135d360e08d01612dcc565b93506135e26101008d01612de9565b92506135f16101208d01612ef0565b91506136006101408d01612de9565b90509295989b509295989b9093969950565b60006020828403121561362457600080fd5b81356112e981612dd7565b60006080828403121561364157600080fd5b6040516080810181811067ffffffffffffffff8211171561366457613664612d30565b604052825161367281612cea565b8152602083015161368281612db6565b6020820152604083015161369581612dd7565b60408201526060830151600481106136ac57600080fd5b60608201529392505050565b600080600080608085870312156136ce57600080fd5b84516136d981612db6565b60208601519094506136ea81612db6565b60408601519093506136fb81612db6565b606086015190925061370c81612dd7565b939692955090935050565b6000815160005b81811015613738576020818501810151868301520161371e565b50600093019283525090919050565b60006001600160e01b0319808716835261376d6137676004850188613717565b86613717565b9316835250506004019392505050565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b6015820152600160fb1b60168201526001600160c01b031985166017820152607560f81b601f82015260006138356138286137ff602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b031986168152608760f81b60148201526138de6138286137ff6137d66138b561388c601587015b7f6300000000000000000000000000000000000000000000000000000000000000815260010190565b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681529050601160fb1b6014820152613928601582015b7f0400000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160e01b031985168152905060b160f81b600482015261398561395c61388c600584015b607560f81b815260010190565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b600560fa1b81526001600160601b0319606088901b166001820152607560f81b60158201527f20000000000000000000000000000000000000000000000000000000000000006016820152600060178201878152607560f81b6020820152600160fb1b6021820152602281016001600160c01b0319881681529050607560f81b6008820152613a286138286137ff600984016137d6565b6001600160601b0319871681529050608760f81b6014820152613a5c6138286137ff6137d66138b561388c60158701613863565b6001600160601b0319861681529050601160fb1b6014820152613a81601582016138ff565b6001600160e01b031985168152905060b160f81b6004820152613aac61395c61388c6005840161394f565b9998505050505050505050565b60006112e98284613717565b600060208284031215613ad757600080fd5b5051919050565b600060208284031215613af057600080fd5b81356112e981612db6565b60ff818116838216019081111561177757611777612fce565b60ff828116828216039081111561177757611777612fce56fea26469706673582212207537e01290c7f04c95d89a96862132db57b4da240dff62725eb6356bbd1e39b664736f6c63430008110033",
383
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80639b337db211610081578063e0276b261161005b578063e0276b261461013c578063e78cea9214610186578063f03a4bc5146101c557600080fd5b80639b337db214610157578063d09520f71461016a578063d6c7fa781461017357600080fd5b80637405d7bf116100b25780637405d7bf1461011f578063765f28f914610132578063996a756b1461013c57600080fd5b80630538ac1b146100d95780630fde6c76146100fc5780636b562cec146100d9575b600080fd5b6100e2611c2081565b60405163ffffffff90911681526020015b60405180910390f35b61010f61010a366004612b45565b6101d8565b60405190151581526020016100f3565b61010f61012d366004612b94565b610b03565b6100e26201518081565b610144601481565b60405161ffff90911681526020016100f3565b61010f610165366004612c2e565b6112f0565b6100e261025881565b61010f610181366004612c7d565b61177d565b6101ad7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100f3565b61010f6101d3366004612c99565b611c56565b600060016001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d56102186020860186612d13565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa15801561025e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102829190612e03565b60e00151600581111561029757610297612cd4565b146102e95760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c697665207374617465000000000060448201526064015b60405180910390fd5b60006102f86020840184612ea6565b915050806103485760405162461bcd60e51b815260206004820152601d60248201527f526564656d7074696f6e2062656c6f7720746865206d696e2073697a6500000060448201526064016102e0565b60148111156103995760405162461bcd60e51b815260206004820152601f60248201527f526564656d7074696f6e206578636565647320746865206d61782073697a650060448201526064016102e0565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e70ce416040518163ffffffff1660e01b815260040160e060405180830381865afa1580156103fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041e9190612f0c565b505094509450505050600085604001351161048b5760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b60648201526084016102e0565b8167ffffffffffffffff16856040013511156104f55760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b60648201526084016102e0565b6000610505846040880135612fba565b90506000846105188360408a0135612fe4565b6105229190612ff7565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635f3281ca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a89190613022565b905060008667ffffffffffffffff8111156105c5576105c5612d30565b6040519080825280602002602001820160405280156105ee578160200160208202803683370190505b50905060005b87811015610af357600061060b60208c018c612ea6565b8381811061061b5761061b61303d565b905060200281019061062d9190613053565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525084516020808701919091209596509094935061067e92508f0190508e612d13565b6040516020016106a29291909182526001600160601b031916602082015260340190565b60408051808303601f190181529082905280516020909101207f03d952f70000000000000000000000000000000000000000000000000000000082526004820181905291506000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906303d952f79060240160a060405180830381865afa15801561073b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075f919061309a565b9050806080015163ffffffff166000036107bb5760405162461bcd60e51b815260206004820181905260248201527f4e6f7420612070656e64696e6720726564656d7074696f6e207265717565737460448201526064016102e0565b6102586001600160a01b0387161561086e576040517f0df5db70000000000000000000000000000000000000000000000000000000008152600481018490526000906001600160a01b03891690630df5db7090602401602060405180830381865afa15801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190613130565b90508163ffffffff168163ffffffff16111561086c578091505b505b80826080015161087e919061314d565b63ffffffff1642116108f85760405162461bcd60e51b815260206004820152602b60248201527f526564656d7074696f6e2072657175657374206d696e20616765206e6f74206160448201527f636869657665642079657400000000000000000000000000000000000000000060648201526084016102e0565b60008a836080015161090a919061314d565b9050610918611c2082613171565b63ffffffff1642106109925760405162461bcd60e51b815260206004820152603960248201527f526564656d7074696f6e20726571756573742074696d656f757420736166657460448201527f79206d617267696e206973206e6f74207072657365727665640000000000000060648201526084016102e0565b8861099e60018f612fe4565b87036109b1576109ae8b8261318e565b90505b836060015167ffffffffffffffff16811115610a355760405162461bcd60e51b815260206004820152603660248201527f50726f706f736564207472616e73616374696f6e207065722d7265717565737460448201527f2066656520736861726520697320746f6f20686967680000000000000000000060648201526084016102e0565b60005b87811015610aba5785898281518110610a5357610a5361303d565b602002602001015103610aa85760405162461bcd60e51b815260206004820152601260248201527f4475706c6963617465642072657175657374000000000000000000000000000060448201526064016102e0565b80610ab2816131a1565b915050610a38565b5084888881518110610ace57610ace61303d565b6020026020010181815250505050505050508080610aeb906131a1565b9150506105f4565b5060019998505050505050505050565b600060016001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d5610b436020880188612d13565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015610b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bad9190612e03565b60e001516005811115610bc257610bc2612cd4565b14610c0f5760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c697665207374617465000000000060448201526064016102e0565b6000610c1e60208601866131ba565b905011610c6d5760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a65000000000000000060448201526064016102e0565b6014610c7c60208601866131ba565b90501115610ccc5760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a6500000000000060448201526064016102e0565b81610cda60208601866131ba565b905014610d4f5760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e6720657874726120696e666f00000000000000000000000000000000000060648201526084016102e0565b610d6b6040850135610d6460208701876131ba565b9050611cc1565b600080610d7b60208701876131ba565b905067ffffffffffffffff811115610d9557610d95612d30565b604051908082528060200260200182016040528015610dbe578160200160208202803683370190505b50905060005b610dd160208801886131ba565b90508110156112e1576000610de960208901896131ba565b83818110610df957610df961303d565b905060400201803603810190610e0f9190613204565b90506000878784818110610e2557610e2561303d565b9050602002810190610e37919061325a565b610e4090613337565b8251602080850151604051939450600093610e7293920191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529082905280516020909101207fb02c43d00000000000000000000000000000000000000000000000000000000082526004820181905291506000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b02c43d09060240160e060405180830381865afa158015610f0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2f9190613439565b9050806040015163ffffffff16600003610f8b5760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c656400000000000000000000000060448201526064016102e0565b611c208160400151610f9d919061314d565b63ffffffff164211610ff15760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f742061636869657665642079657460448201526064016102e0565b60a081015163ffffffff16156110495760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016102e0565b61105d8482600001518360c0015186611e48565b608083015160e881901c62ff00ff1663ff00ff0060d89290921c9190911617601081811c91901b176110926201518082613171565b63ffffffff16421061110c5760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f74207072657365727665640000000000000000000000000000000000000060648201526084016102e0565b61111960208d018d612d13565b6bffffffffffffffffffffffff191684604001516bffffffffffffffffffffffff1916146111af5760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c6574000000000000000000000000000000000000000000000000000060648201526084016102e0565b856000036111bf57816060015197505b876001600160a01b031682606001516001600160a01b0316146112245760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c740060448201526064016102e0565b60005b868110156112a957838882815181106112425761124261303d565b6020026020010151036112975760405162461bcd60e51b815260206004820152601260248201527f4475706c696361746564206465706f736974000000000000000000000000000060448201526064016102e0565b806112a1816131a1565b915050611227565b50828787815181106112bd576112bd61303d565b602002602001018181525050505050505080806112d9906131a1565b915050610dc4565b506001925050505b9392505050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d561132f6020870187612d13565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015611375573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113999190612e03565b905060028160e0015160058111156113b3576113b3612cd4565b146114265760405162461bcd60e51b815260206004820152602960248201527f536f757263652077616c6c6574206973206e6f7420696e204d6f76696e67467560448201527f6e6473207374617465000000000000000000000000000000000000000000000060648201526084016102e0565b61010081015161149e5760405162461bcd60e51b815260206004820152602a60248201527f5461726765742077616c6c65747320636f6d6d69746d656e74206973206e6f7460448201527f207375626d69747465640000000000000000000000000000000000000000000060648201526084016102e0565b6114ab6020850185612ea6565b6040516020016114bc9291906134ec565b604051602081830303815290604052805190602001208161010001511461154b5760405162461bcd60e51b815260206004820152603a60248201527f5461726765742077616c6c65747320646f206e6f74206d61746368207461726760448201527f65742077616c6c65747320636f6d6d69746d656e74206861736800000000000060648201526084016102e0565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663be05abe36040518163ffffffff1660e01b815260040161016060405180830381865afa1580156115ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d1919061352f565b5050505050505050509150915060006115ee8460200151876120e6565b90508167ffffffffffffffff168167ffffffffffffffff1610156116a05760405162461bcd60e51b815260206004820152604260248201527f536f757263652077616c6c6574204254432062616c616e63652069732062656c60448201527f6f7720746865206d6f76696e672066756e64732064757374207468726573686f60648201527f6c64000000000000000000000000000000000000000000000000000000000000608482015260a4016102e0565b60008760400135116117045760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b60648201526084016102e0565b8267ffffffffffffffff168760400135111561176e5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b60648201526084016102e0565b60019450505050505b92915050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d56117bc6020860186612d13565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015611802573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118269190612e03565b905060018160e00151600581111561184057611840612cd4565b1480611861575060028160e00151600581111561185f5761185f612cd4565b145b6118d35760405162461bcd60e51b815260206004820152603160248201527f536f757263652077616c6c6574206973206e6f7420696e204c697665206f722060448201527f4d6f76696e6746756e647320737461746500000000000000000000000000000060648201526084016102e0565b600060208401356118ea6060860160408701613612565b60405160200161191192919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529082905280516020909101207ff18cf1b10000000000000000000000000000000000000000000000000000000082526004820181905291506000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f18cf1b190602401608060405180830381865afa1580156119aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ce919061362f565b90506001816060015160038111156119e8576119e8612cd4565b14611a5b5760405162461bcd60e51b815260206004820152602560248201527f53776565702072657175657374206973206e6f7420696e2050656e64696e672060448201527f737461746500000000000000000000000000000000000000000000000000000060648201526084016102e0565b611a686020860186612d13565b81516001600160601b0319908116911614611aeb5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207265717565737420646f6573206e6f742062656c6f6e6720746f60448201527f207468652077616c6c657400000000000000000000000000000000000000000060648201526084016102e0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663be05abe36040518163ffffffff1660e01b815260040161016060405180830381865afa158015611b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b70919061352f565b5050509750505050505050506000866060013511611be05760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b60648201526084016102e0565b8067ffffffffffffffff1686606001351115611c4a5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b60648201526084016102e0565b50600195945050505050565b6000611c6d611c686020840184613053565b6121c1565b611cb95760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420612076616c696420686561727462656174206d65737361676500000060448201526064016102e0565b506001919050565b60008211611d215760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b60648201526084016102e0565b6000611d2d8284612fba565b9050600082611d3c8386612fe4565b611d469190612ff7565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611da8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dcc91906136b8565b5092505067ffffffffffffffff82169050611de7848461318e565b1115611e415760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b60648201526084016102e0565b5050505050565b805180516020808301516040808501516060909501519051600095611e8a95611e7695909493919201613747565b604051602081830303815290604052612239565b85519091508114611f035760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d61746368000000000000000000000000000000000000000000000060648201526084016102e0565b606083611f4657602080840151604080860151606087015160808801519251611f30958b9594910161377d565b6040516020818303038152906040529050611f83565b84848460200151856040015186606001518760800151604051602001611f7196959493929190613991565b60405160208183030381529060405290505b6000611faa876020015163ffffffff1685600001516040015161226090919063ffffffff16565b90506000611fb782612442565b905080516014148015611fef5750611fce8361245c565b6001600160601b031916611fe3826000612483565b6001600160601b031916145b15611ffd57505050506120e0565b8051602014801561206457506002836040516120199190613ab9565b602060405180830381855afa158015612036573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906120599190613ac5565b61206282612492565b145b1561207257505050506120e0565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d61746368000000000000000000000000000000000060648201526084016102e0565b50505050565b60008215611777578282356121016040850160208601613612565b6121116060860160408701613ade565b60405160200161214e9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146121b15760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642077616c6c6574206d61696e205554584f206461746100000060448201526064016102e0565b6112e96060830160408401613ade565b6000601082146121d357506000611777565b612217600084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506124839050565b6001600160c01b03199081161461223057506000611777565b50600192915050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b606060008061226e856124ad565b9092509050600182016122e95760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e6700000000000000000000000000000000000000000000000000000000000060648201526084016102e0565b8084106123385760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016102e0565b60008061234684600161318e565b905060005b868110156123ce5761235d88836124c4565b925060001983036123b05760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016102e0565b6123ba838361318e565b9150806123c6816131a1565b91505061234b565b506123d987826124c4565b9150600019820361242c5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016102e0565b612437878284612531565b979650505050505050565b60606117778260088085516124579190612fe4565b6125fe565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b60006112e98383016020015190565b600081516000036124a557506000919050565b506020015190565b6000806124bb836000612903565b91509150915091565b60006124d182600961318e565b835110156124e25750600019611777565b6000806124f9856124f486600861318e565b612903565b9092509050600182016125125760001992505050611777565b8061251e83600961318e565b612528919061318e565b95945050505050565b60608160000361255057506040805160208101909152600081526112e9565b600061255c838561318e565b9050838111801561256e575080855110155b6125ba5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016102e0565b604051915082604083010160405282825283850182038460208701018481015b808210156125f3578151838301526020820191506125da565b505050509392505050565b606060008484815181106126145761261461303d565b016020015160f81c90508261262a826001613afb565b60ff16146126485750506040805160208101909152600081526112e9565b8461265485600161318e565b815181106126645761266461303d565b016020015160f81c6000036127235760028160ff1610156126955750506040805160208101909152600081526112e9565b6000856126a386600261318e565b815181106126b3576126b361303d565b016020015160f81c90506126c8600283613b14565b60ff16811415806126e65750806020141580156126e6575080601414155b156127045760405180602001604052806000815250925050506112e9565b61271a61271286600361318e565b879083612531565b925050506112e9565b600061272f8686612483565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a9000000000000000000000000000000000000000000000000000000000003612843578561278686600361318e565b815181106127965761279661303d565b60209101015160f81c601414158061280e57506127c960026127b8868861318e565b6127c29190612fe4565b8790612483565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b1561282c5760405180602001604052806000815250925050506112e9565b61271a61283a86600461318e565b87906014612531565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a9140000000000000000000000000000000000000000000000000000000000036128ea57856001612899868861318e565b6128a39190612fe4565b815181106128b3576128b361303d565b60209101015160f81c6087146128dc5760405180602001604052806000815250925050506112e9565b61271a61283a86600361318e565b5050506040805160208101909152600081529392505050565b60008060006129128585612aa7565b90508060ff166000036129475760008585815181106129335761293361303d565b016020015190935060f81c9150612aa09050565b83612953826001613afb565b60ff16612960919061318e565b855110156129775760001960009250925050612aa0565b60008160ff166002036129bb576129b061299c61299587600161318e565b8890612483565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612a96565b8160ff16600403612a0a576129fd6129d761299587600161318e565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050612a96565b8160ff16600803612a9657612a89612a2661299587600161318e565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000828281518110612abb57612abb61303d565b016020015160f81c60ff03612ad257506008611777565b828281518110612ae457612ae461303d565b016020015160f81c60fe03612afb57506004611777565b828281518110612b0d57612b0d61303d565b016020015160f81c60fd03612b2457506002611777565b50600092915050565b600060608284031215612b3f57600080fd5b50919050565b600060208284031215612b5757600080fd5b813567ffffffffffffffff811115612b6e57600080fd5b612b7a84828501612b2d565b949350505050565b600060808284031215612b3f57600080fd5b600080600060408486031215612ba957600080fd5b833567ffffffffffffffff80821115612bc157600080fd5b612bcd87838801612b82565b94506020860135915080821115612be357600080fd5b818601915086601f830112612bf757600080fd5b813581811115612c0657600080fd5b8760208260051b8501011115612c1b57600080fd5b6020830194508093505050509250925092565b60008060808385031215612c4157600080fd5b823567ffffffffffffffff811115612c5857600080fd5b612c6485828601612b2d565b925050612c748460208501612b2d565b90509250929050565b600060808284031215612c8f57600080fd5b6112e98383612b82565b600060208284031215612cab57600080fd5b813567ffffffffffffffff811115612cc257600080fd5b8201604081850312156112e957600080fd5b634e487b7160e01b600052602160045260246000fd5b6001600160601b031981168114612d0057600080fd5b50565b8035612d0e81612cea565b919050565b600060208284031215612d2557600080fd5b81356112e981612cea565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612d6a57612d6a612d30565b60405290565b60405160a0810167ffffffffffffffff81118282101715612d6a57612d6a612d30565b6040516080810167ffffffffffffffff81118282101715612d6a57612d6a612d30565b67ffffffffffffffff81168114612d0057600080fd5b8051612d0e81612db6565b63ffffffff81168114612d0057600080fd5b8051612d0e81612dd7565b805160068110612d0e57600080fd5b60006101208284031215612e1657600080fd5b612e1e612d46565b8251815260208301516020820152612e3860408401612dcc565b6040820152612e4960608401612de9565b6060820152612e5a60808401612de9565b6080820152612e6b60a08401612de9565b60a0820152612e7c60c08401612de9565b60c0820152612e8d60e08401612df4565b60e0820152610100928301519281019290925250919050565b6000808335601e19843603018112612ebd57600080fd5b83018035915067ffffffffffffffff821115612ed857600080fd5b6020019150600581901b3603821315612aa057600080fd5b80516bffffffffffffffffffffffff81168114612d0e57600080fd5b600080600080600080600060e0888a031215612f2757600080fd5b8751612f3281612db6565b6020890151909750612f4381612db6565b6040890151909650612f5481612db6565b6060890151909550612f6581612db6565b6080890151909450612f7681612dd7565b9250612f8460a08901612ef0565b915060c0880151612f9481612dd7565b8091505092959891949750929550565b634e487b7160e01b600052601260045260246000fd5b600082612fc957612fc9612fa4565b500690565b634e487b7160e01b600052601160045260246000fd5b8181038181111561177757611777612fce565b60008261300657613006612fa4565b500490565b80516001600160a01b0381168114612d0e57600080fd5b60006020828403121561303457600080fd5b6112e98261300b565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261306a57600080fd5b83018035915067ffffffffffffffff82111561308557600080fd5b602001915036819003821315612aa057600080fd5b600060a082840312156130ac57600080fd5b60405160a0810181811067ffffffffffffffff821117156130cf576130cf612d30565b6040526130db8361300b565b815260208301516130eb81612db6565b602082015260408301516130fe81612db6565b6040820152606083015161311181612db6565b6060820152608083015161312481612dd7565b60808201529392505050565b60006020828403121561314257600080fd5b81516112e981612dd7565b63ffffffff81811683821601908082111561316a5761316a612fce565b5092915050565b63ffffffff82811682821603908082111561316a5761316a612fce565b8082018082111561177757611777612fce565b6000600182016131b3576131b3612fce565b5060010190565b6000808335601e198436030181126131d157600080fd5b83018035915067ffffffffffffffff8211156131ec57600080fd5b6020019150600681901b3603821315612aa057600080fd5b60006040828403121561321657600080fd5b6040516040810181811067ffffffffffffffff8211171561323957613239612d30565b60405282358152602083013561324e81612dd7565b60208201529392505050565b60008235609e1983360301811261327057600080fd5b9190910192915050565b80356001600160e01b031981168114612d0e57600080fd5b600082601f8301126132a357600080fd5b813567ffffffffffffffff808211156132be576132be612d30565b604051601f8301601f19908116603f011681019082821181831017156132e6576132e6612d30565b816040528381528660208588010111156132ff57600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160c01b031981168114612d0e57600080fd5b600060a0823603121561334957600080fd5b613351612d70565b823567ffffffffffffffff8082111561336957600080fd5b81850191506080823603121561337e57600080fd5b613386612d93565b61338f8361327a565b81526020830135828111156133a357600080fd5b6133af36828601613292565b6020830152506040830135828111156133c757600080fd5b6133d336828601613292565b6040830152506133e56060840161327a565b60608201528352506133fb90506020840161331f565b602082015261340c60408401612d03565b604082015261341d60608401612d03565b606082015261342e6080840161327a565b608082015292915050565b600060e0828403121561344b57600080fd5b60405160e0810181811067ffffffffffffffff8211171561346e5761346e612d30565b60405261347a8361300b565b8152602083015161348a81612db6565b6020820152604083015161349d81612dd7565b60408201526134ae6060840161300b565b606082015260808301516134c181612db6565b608082015260a08301516134d481612dd7565b60a082015260c0928301519281019290925250919050565b60008184825b8581101561352457813561350581612cea565b6001600160601b031916835260209283019291909101906001016134f2565b509095945050505050565b60008060008060008060008060008060006101608c8e03121561355157600080fd5b8b5161355c81612db6565b60208d0151909b5061356d81612db6565b60408d0151909a5061357e81612dd7565b60608d015190995061358f81612dd7565b975061359d60808d01612ef0565b965060a08c01516135ad81612dd7565b60c08d015190965061ffff811681146135c557600080fd5b94506135d360e08d01612dcc565b93506135e26101008d01612de9565b92506135f16101208d01612ef0565b91506136006101408d01612de9565b90509295989b509295989b9093969950565b60006020828403121561362457600080fd5b81356112e981612dd7565b60006080828403121561364157600080fd5b6040516080810181811067ffffffffffffffff8211171561366457613664612d30565b604052825161367281612cea565b8152602083015161368281612db6565b6020820152604083015161369581612dd7565b60408201526060830151600481106136ac57600080fd5b60608201529392505050565b600080600080608085870312156136ce57600080fd5b84516136d981612db6565b60208601519094506136ea81612db6565b60408601519093506136fb81612db6565b606086015190925061370c81612dd7565b939692955090935050565b6000815160005b81811015613738576020818501810151868301520161371e565b50600093019283525090919050565b60006001600160e01b0319808716835261376d6137676004850188613717565b86613717565b9316835250506004019392505050565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b6015820152600160fb1b60168201526001600160c01b031985166017820152607560f81b601f82015260006138356138286137ff602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b031986168152608760f81b60148201526138de6138286137ff6137d66138b561388c601587015b7f6300000000000000000000000000000000000000000000000000000000000000815260010190565b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681529050601160fb1b6014820152613928601582015b7f0400000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160e01b031985168152905060b160f81b600482015261398561395c61388c600584015b607560f81b815260010190565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b600560fa1b81526001600160601b0319606088901b166001820152607560f81b60158201527f20000000000000000000000000000000000000000000000000000000000000006016820152600060178201878152607560f81b6020820152600160fb1b6021820152602281016001600160c01b0319881681529050607560f81b6008820152613a286138286137ff600984016137d6565b6001600160601b0319871681529050608760f81b6014820152613a5c6138286137ff6137d66138b561388c60158701613863565b6001600160601b0319861681529050601160fb1b6014820152613a81601582016138ff565b6001600160e01b031985168152905060b160f81b6004820152613aac61395c61388c6005840161394f565b9998505050505050505050565b60006112e98284613717565b600060208284031215613ad757600080fd5b5051919050565b600060208284031215613af057600080fd5b81356112e981612db6565b60ff818116838216019081111561177757611777612fce565b60ff828116828216039081111561177757611777612fce56fea26469706673582212207537e01290c7f04c95d89a96862132db57b4da240dff62725eb6356bbd1e39b664736f6c63430008110033",
382
+ "bytecode": "0x60a06040523480156200001157600080fd5b5060405162003ccc38038062003ccc833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b608051613be4620000e86000396000818161018b015281816101e5015281816103d50152818161055f0152818161073401528181610b5901528181610f3c0152818161137e015281816115d10152818161180b015281816119dc01528181611b700152611dcd0152613be46000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80639b337db211610081578063e0276b261161005b578063e0276b261461013c578063e78cea9214610186578063f03a4bc5146101c557600080fd5b80639b337db214610157578063d09520f71461016a578063d6c7fa781461017357600080fd5b80637405d7bf116100b25780637405d7bf1461011f578063765f28f914610132578063996a756b1461013c57600080fd5b80630538ac1b146100d95780630fde6c76146100fc5780636b562cec146100d9575b600080fd5b6100e2611c2081565b60405163ffffffff90911681526020015b60405180910390f35b61010f61010a366004612bc6565b6101d8565b60405190151581526020016100f3565b61010f61012d366004612c15565b610b4c565b6100e26201518081565b610144601481565b60405161ffff90911681526020016100f3565b61010f610165366004612caf565b611371565b6100e261025881565b61010f610181366004612cfe565b6117fe565b6101ad7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100f3565b61010f6101d3366004612d1a565b611cd7565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d56102176020860186612d7e565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa15801561025d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102819190612e6e565b905060018160e00151600581111561029b5761029b612f11565b14806102bc575060028160e0015160058111156102ba576102ba612f11565b145b6103205760405162461bcd60e51b815260206004820152602a60248201527f57616c6c6574206973206e6f7420696e204c697665206f72204d6f76696e6746604482015269756e647320737461746560b01b60648201526084015b60405180910390fd5b600061032f6020850185612f27565b9150508061037f5760405162461bcd60e51b815260206004820152601d60248201527f526564656d7074696f6e2062656c6f7720746865206d696e2073697a650000006044820152606401610317565b60148111156103d05760405162461bcd60e51b815260206004820152601f60248201527f526564656d7074696f6e206578636565647320746865206d61782073697a65006044820152606401610317565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e70ce416040518163ffffffff1660e01b815260040160e060405180830381865afa158015610431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104559190612f8d565b50509450945050505060008660400135116104c25760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b6064820152608401610317565b8167ffffffffffffffff168660400135111561052c5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b6064820152608401610317565b600061053c84604089013561303b565b905060008461054f8360408b0135613065565b6105599190613078565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635f3281ca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105df91906130a3565b905060008667ffffffffffffffff8111156105fc576105fc612d9b565b604051908082528060200260200182016040528015610625578160200160208202803683370190505b50905060005b87811015610b3b57600061064260208d018d612f27565b83818110610652576106526130be565b905060200281019061066491906130d4565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600081805190602001208d60000160208101906106c69190612d7e565b6040516020016106ea9291909182526001600160601b031916602082015260340190565b60408051808303601f190181529082905280516020909101207f03d952f70000000000000000000000000000000000000000000000000000000082526004820181905291506000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906303d952f79060240160a060405180830381865afa158015610783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a7919061311b565b9050806080015163ffffffff166000036108035760405162461bcd60e51b815260206004820181905260248201527f4e6f7420612070656e64696e6720726564656d7074696f6e20726571756573746044820152606401610317565b6102586001600160a01b038716156108b6576040517f0df5db70000000000000000000000000000000000000000000000000000000008152600481018490526000906001600160a01b03891690630df5db7090602401602060405180830381865afa158015610876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089a91906131b1565b90508163ffffffff168163ffffffff1611156108b4578091505b505b8082608001516108c691906131ce565b63ffffffff1642116109405760405162461bcd60e51b815260206004820152602b60248201527f526564656d7074696f6e2072657175657374206d696e20616765206e6f74206160448201527f63686965766564207965740000000000000000000000000000000000000000006064820152608401610317565b60008a836080015161095291906131ce565b9050610960611c20826131f2565b63ffffffff1642106109da5760405162461bcd60e51b815260206004820152603960248201527f526564656d7074696f6e20726571756573742074696d656f757420736166657460448201527f79206d617267696e206973206e6f7420707265736572766564000000000000006064820152608401610317565b886109e660018f613065565b87036109f9576109f68b8261320f565b90505b836060015167ffffffffffffffff16811115610a7d5760405162461bcd60e51b815260206004820152603660248201527f50726f706f736564207472616e73616374696f6e207065722d7265717565737460448201527f2066656520736861726520697320746f6f2068696768000000000000000000006064820152608401610317565b60005b87811015610b025785898281518110610a9b57610a9b6130be565b602002602001015103610af05760405162461bcd60e51b815260206004820152601260248201527f4475706c696361746564207265717565737400000000000000000000000000006044820152606401610317565b80610afa81613222565b915050610a80565b5084888881518110610b1657610b166130be565b6020026020010181815250505050505050508080610b3390613222565b91505061062b565b5060019a9950505050505050505050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d5610b8b6020880188612d7e565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015610bd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf59190612e6e565b905060018160e001516005811115610c0f57610c0f612f11565b1480610c30575060028160e001516005811115610c2e57610c2e612f11565b145b610c8f5760405162461bcd60e51b815260206004820152602a60248201527f57616c6c6574206973206e6f7420696e204c697665206f72204d6f76696e6746604482015269756e647320737461746560b01b6064820152608401610317565b6000610c9e602087018761323b565b905011610ced5760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a6500000000000000006044820152606401610317565b6014610cfc602087018761323b565b90501115610d4c5760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a650000000000006044820152606401610317565b82610d5a602087018761323b565b905014610dcf5760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e6720657874726120696e666f0000000000000000000000000000000000006064820152608401610317565b610deb6040860135610de4602088018861323b565b9050611d42565b600080610dfb602088018861323b565b905067ffffffffffffffff811115610e1557610e15612d9b565b604051908082528060200260200182016040528015610e3e578160200160208202803683370190505b50905060005b610e51602089018961323b565b9050811015611361576000610e6960208a018a61323b565b83818110610e7957610e796130be565b905060400201803603810190610e8f9190613285565b90506000888884818110610ea557610ea56130be565b9050602002810190610eb791906132db565b610ec0906133b8565b8251602080850151604051939450600093610ef293920191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529082905280516020909101207fb02c43d00000000000000000000000000000000000000000000000000000000082526004820181905291506000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b02c43d09060240160e060405180830381865afa158015610f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faf91906134ba565b9050806040015163ffffffff1660000361100b5760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c65640000000000000000000000006044820152606401610317565b611c20816040015161101d91906131ce565b63ffffffff1642116110715760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f74206163686965766564207965746044820152606401610317565b60a081015163ffffffff16156110c95760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c726561647920737765707400000000000000000000006044820152606401610317565b6110dd8482600001518360c0015186611ec9565b608083015160e881901c62ff00ff1663ff00ff0060d89290921c9190911617601081811c91901b1761111262015180826131f2565b63ffffffff16421061118c5760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f7420707265736572766564000000000000000000000000000000000000006064820152608401610317565b61119960208e018e612d7e565b6bffffffffffffffffffffffff191684604001516bffffffffffffffffffffffff19161461122f5760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c657400000000000000000000000000000000000000000000000000006064820152608401610317565b8560000361123f57816060015197505b876001600160a01b031682606001516001600160a01b0316146112a45760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c74006044820152606401610317565b60005b8681101561132957838882815181106112c2576112c26130be565b6020026020010151036113175760405162461bcd60e51b815260206004820152601260248201527f4475706c696361746564206465706f73697400000000000000000000000000006044820152606401610317565b8061132181613222565b9150506112a7565b508287878151811061133d5761133d6130be565b6020026020010181815250505050505050808061135990613222565b915050610e44565b50600193505050505b9392505050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d56113b06020870187612d7e565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa1580156113f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141a9190612e6e565b905060028160e00151600581111561143457611434612f11565b146114a75760405162461bcd60e51b815260206004820152602960248201527f536f757263652077616c6c6574206973206e6f7420696e204d6f76696e67467560448201527f6e647320737461746500000000000000000000000000000000000000000000006064820152608401610317565b61010081015161151f5760405162461bcd60e51b815260206004820152602a60248201527f5461726765742077616c6c65747320636f6d6d69746d656e74206973206e6f7460448201527f207375626d6974746564000000000000000000000000000000000000000000006064820152608401610317565b61152c6020850185612f27565b60405160200161153d92919061356d565b60405160208183030381529060405280519060200120816101000151146115cc5760405162461bcd60e51b815260206004820152603a60248201527f5461726765742077616c6c65747320646f206e6f74206d61746368207461726760448201527f65742077616c6c65747320636f6d6d69746d656e7420686173680000000000006064820152608401610317565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663be05abe36040518163ffffffff1660e01b815260040161016060405180830381865afa15801561162e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165291906135b0565b50505050505050505091509150600061166f846020015187612167565b90508167ffffffffffffffff168167ffffffffffffffff1610156117215760405162461bcd60e51b815260206004820152604260248201527f536f757263652077616c6c6574204254432062616c616e63652069732062656c60448201527f6f7720746865206d6f76696e672066756e64732064757374207468726573686f60648201527f6c64000000000000000000000000000000000000000000000000000000000000608482015260a401610317565b60008760400135116117855760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b6064820152608401610317565b8267ffffffffffffffff16876040013511156117ef5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b6064820152608401610317565b60019450505050505b92915050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d561183d6020860186612d7e565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015611883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a79190612e6e565b905060018160e0015160058111156118c1576118c1612f11565b14806118e2575060028160e0015160058111156118e0576118e0612f11565b145b6119545760405162461bcd60e51b815260206004820152603160248201527f536f757263652077616c6c6574206973206e6f7420696e204c697665206f722060448201527f4d6f76696e6746756e64732073746174650000000000000000000000000000006064820152608401610317565b6000602084013561196b6060860160408701613693565b60405160200161199292919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529082905280516020909101207ff18cf1b10000000000000000000000000000000000000000000000000000000082526004820181905291506000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f18cf1b190602401608060405180830381865afa158015611a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4f91906136b0565b9050600181606001516003811115611a6957611a69612f11565b14611adc5760405162461bcd60e51b815260206004820152602560248201527f53776565702072657175657374206973206e6f7420696e2050656e64696e672060448201527f73746174650000000000000000000000000000000000000000000000000000006064820152608401610317565b611ae96020860186612d7e565b81516001600160601b0319908116911614611b6c5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207265717565737420646f6573206e6f742062656c6f6e6720746f60448201527f207468652077616c6c65740000000000000000000000000000000000000000006064820152608401610317565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663be05abe36040518163ffffffff1660e01b815260040161016060405180830381865afa158015611bcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf191906135b0565b5050509750505050505050506000866060013511611c615760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b6064820152608401610317565b8067ffffffffffffffff1686606001351115611ccb5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b6064820152608401610317565b50600195945050505050565b6000611cee611ce960208401846130d4565b612242565b611d3a5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420612076616c696420686561727462656174206d6573736167650000006044820152606401610317565b506001919050565b60008211611da25760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b6064820152608401610317565b6000611dae828461303b565b9050600082611dbd8386613065565b611dc79190613078565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611e29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4d9190613739565b5092505067ffffffffffffffff82169050611e68848461320f565b1115611ec25760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b6064820152608401610317565b5050505050565b805180516020808301516040808501516060909501519051600095611f0b95611ef7959094939192016137c8565b6040516020818303038152906040526122ba565b85519091508114611f845760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d6174636800000000000000000000000000000000000000000000006064820152608401610317565b606083611fc757602080840151604080860151606087015160808801519251611fb1958b959491016137fe565b6040516020818303038152906040529050612004565b84848460200151856040015186606001518760800151604051602001611ff296959493929190613a12565b60405160208183030381529060405290505b600061202b876020015163ffffffff168560000151604001516122e190919063ffffffff16565b90506000612038826124c3565b905080516014148015612070575061204f836124dd565b6001600160601b031916612064826000612504565b6001600160601b031916145b1561207e5750505050612161565b805160201480156120e5575060028360405161209a9190613b3a565b602060405180830381855afa1580156120b7573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906120da9190613b46565b6120e382612513565b145b156120f35750505050612161565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d6174636800000000000000000000000000000000006064820152608401610317565b50505050565b600082156117f8578282356121826040850160208601613693565b6121926060860160408701613b5f565b6040516020016121cf9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146122325760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642077616c6c6574206d61696e205554584f20646174610000006044820152606401610317565b61136a6060830160408401613b5f565b600060108214612254575060006117f8565b612298600084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506125049050565b6001600160c01b0319908116146122b1575060006117f8565b50600192915050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60606000806122ef8561252e565b90925090506001820161236a5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e670000000000000000000000000000000000000000000000000000000000006064820152608401610317565b8084106123b95760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e0000000000000000000000000000006044820152606401610317565b6000806123c784600161320f565b905060005b8681101561244f576123de8883612545565b925060001983036124315760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610317565b61243b838361320f565b91508061244781613222565b9150506123cc565b5061245a8782612545565b915060001982036124ad5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610317565b6124b88782846125b2565b979650505050505050565b60606117f88260088085516124d89190613065565b61267f565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b600061136a8383016020015190565b6000815160000361252657506000919050565b506020015190565b60008061253c836000612984565b91509150915091565b600061255282600961320f565b8351101561256357506000196117f8565b60008061257a8561257586600861320f565b612984565b90925090506001820161259357600019925050506117f8565b8061259f83600961320f565b6125a9919061320f565b95945050505050565b6060816000036125d1575060408051602081019091526000815261136a565b60006125dd838561320f565b905083811180156125ef575080855110155b61263b5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610317565b604051915082604083010160405282825283850182038460208701018481015b808210156126745781518383015260208201915061265b565b505050509392505050565b60606000848481518110612695576126956130be565b016020015160f81c9050826126ab826001613b7c565b60ff16146126c957505060408051602081019091526000815261136a565b846126d585600161320f565b815181106126e5576126e56130be565b016020015160f81c6000036127a45760028160ff16101561271657505060408051602081019091526000815261136a565b60008561272486600261320f565b81518110612734576127346130be565b016020015160f81c9050612749600283613b95565b60ff1681141580612767575080602014158015612767575080601414155b1561278557604051806020016040528060008152509250505061136a565b61279b61279386600361320f565b8790836125b2565b9250505061136a565b60006127b08686612504565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a90000000000000000000000000000000000000000000000000000000000036128c4578561280786600361320f565b81518110612817576128176130be565b60209101015160f81c601414158061288f575061284a6002612839868861320f565b6128439190613065565b8790612504565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b156128ad57604051806020016040528060008152509250505061136a565b61279b6128bb86600461320f565b879060146125b2565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a91400000000000000000000000000000000000000000000000000000000000361296b5785600161291a868861320f565b6129249190613065565b81518110612934576129346130be565b60209101015160f81c60871461295d57604051806020016040528060008152509250505061136a565b61279b6128bb86600361320f565b5050506040805160208101909152600081529392505050565b60008060006129938585612b28565b90508060ff166000036129c85760008585815181106129b4576129b46130be565b016020015190935060f81c9150612b219050565b836129d4826001613b7c565b60ff166129e1919061320f565b855110156129f85760001960009250925050612b21565b60008160ff16600203612a3c57612a31612a1d612a1687600161320f565b8890612504565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612b17565b8160ff16600403612a8b57612a7e612a58612a1687600161320f565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050612b17565b8160ff16600803612b1757612b0a612aa7612a1687600161320f565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000828281518110612b3c57612b3c6130be565b016020015160f81c60ff03612b53575060086117f8565b828281518110612b6557612b656130be565b016020015160f81c60fe03612b7c575060046117f8565b828281518110612b8e57612b8e6130be565b016020015160f81c60fd03612ba5575060026117f8565b50600092915050565b600060608284031215612bc057600080fd5b50919050565b600060208284031215612bd857600080fd5b813567ffffffffffffffff811115612bef57600080fd5b612bfb84828501612bae565b949350505050565b600060808284031215612bc057600080fd5b600080600060408486031215612c2a57600080fd5b833567ffffffffffffffff80821115612c4257600080fd5b612c4e87838801612c03565b94506020860135915080821115612c6457600080fd5b818601915086601f830112612c7857600080fd5b813581811115612c8757600080fd5b8760208260051b8501011115612c9c57600080fd5b6020830194508093505050509250925092565b60008060808385031215612cc257600080fd5b823567ffffffffffffffff811115612cd957600080fd5b612ce585828601612bae565b925050612cf58460208501612bae565b90509250929050565b600060808284031215612d1057600080fd5b61136a8383612c03565b600060208284031215612d2c57600080fd5b813567ffffffffffffffff811115612d4357600080fd5b82016040818503121561136a57600080fd5b6001600160601b031981168114612d6b57600080fd5b50565b8035612d7981612d55565b919050565b600060208284031215612d9057600080fd5b813561136a81612d55565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612dd557612dd5612d9b565b60405290565b60405160a0810167ffffffffffffffff81118282101715612dd557612dd5612d9b565b6040516080810167ffffffffffffffff81118282101715612dd557612dd5612d9b565b67ffffffffffffffff81168114612d6b57600080fd5b8051612d7981612e21565b63ffffffff81168114612d6b57600080fd5b8051612d7981612e42565b805160068110612d7957600080fd5b60006101208284031215612e8157600080fd5b612e89612db1565b8251815260208301516020820152612ea360408401612e37565b6040820152612eb460608401612e54565b6060820152612ec560808401612e54565b6080820152612ed660a08401612e54565b60a0820152612ee760c08401612e54565b60c0820152612ef860e08401612e5f565b60e0820152610100928301519281019290925250919050565b634e487b7160e01b600052602160045260246000fd5b6000808335601e19843603018112612f3e57600080fd5b83018035915067ffffffffffffffff821115612f5957600080fd5b6020019150600581901b3603821315612b2157600080fd5b80516bffffffffffffffffffffffff81168114612d7957600080fd5b600080600080600080600060e0888a031215612fa857600080fd5b8751612fb381612e21565b6020890151909750612fc481612e21565b6040890151909650612fd581612e21565b6060890151909550612fe681612e21565b6080890151909450612ff781612e42565b925061300560a08901612f71565b915060c088015161301581612e42565b8091505092959891949750929550565b634e487b7160e01b600052601260045260246000fd5b60008261304a5761304a613025565b500690565b634e487b7160e01b600052601160045260246000fd5b818103818111156117f8576117f861304f565b60008261308757613087613025565b500490565b80516001600160a01b0381168114612d7957600080fd5b6000602082840312156130b557600080fd5b61136a8261308c565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126130eb57600080fd5b83018035915067ffffffffffffffff82111561310657600080fd5b602001915036819003821315612b2157600080fd5b600060a0828403121561312d57600080fd5b60405160a0810181811067ffffffffffffffff8211171561315057613150612d9b565b60405261315c8361308c565b8152602083015161316c81612e21565b6020820152604083015161317f81612e21565b6040820152606083015161319281612e21565b606082015260808301516131a581612e42565b60808201529392505050565b6000602082840312156131c357600080fd5b815161136a81612e42565b63ffffffff8181168382160190808211156131eb576131eb61304f565b5092915050565b63ffffffff8281168282160390808211156131eb576131eb61304f565b808201808211156117f8576117f861304f565b6000600182016132345761323461304f565b5060010190565b6000808335601e1984360301811261325257600080fd5b83018035915067ffffffffffffffff82111561326d57600080fd5b6020019150600681901b3603821315612b2157600080fd5b60006040828403121561329757600080fd5b6040516040810181811067ffffffffffffffff821117156132ba576132ba612d9b565b6040528235815260208301356132cf81612e42565b60208201529392505050565b60008235609e198336030181126132f157600080fd5b9190910192915050565b80356001600160e01b031981168114612d7957600080fd5b600082601f83011261332457600080fd5b813567ffffffffffffffff8082111561333f5761333f612d9b565b604051601f8301601f19908116603f0116810190828211818310171561336757613367612d9b565b8160405283815286602085880101111561338057600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160c01b031981168114612d7957600080fd5b600060a082360312156133ca57600080fd5b6133d2612ddb565b823567ffffffffffffffff808211156133ea57600080fd5b8185019150608082360312156133ff57600080fd5b613407612dfe565b613410836132fb565b815260208301358281111561342457600080fd5b61343036828601613313565b60208301525060408301358281111561344857600080fd5b61345436828601613313565b604083015250613466606084016132fb565b606082015283525061347c9050602084016133a0565b602082015261348d60408401612d6e565b604082015261349e60608401612d6e565b60608201526134af608084016132fb565b608082015292915050565b600060e082840312156134cc57600080fd5b60405160e0810181811067ffffffffffffffff821117156134ef576134ef612d9b565b6040526134fb8361308c565b8152602083015161350b81612e21565b6020820152604083015161351e81612e42565b604082015261352f6060840161308c565b6060820152608083015161354281612e21565b608082015260a083015161355581612e42565b60a082015260c0928301519281019290925250919050565b60008184825b858110156135a557813561358681612d55565b6001600160601b03191683526020928301929190910190600101613573565b509095945050505050565b60008060008060008060008060008060006101608c8e0312156135d257600080fd5b8b516135dd81612e21565b60208d0151909b506135ee81612e21565b60408d0151909a506135ff81612e42565b60608d015190995061361081612e42565b975061361e60808d01612f71565b965060a08c015161362e81612e42565b60c08d015190965061ffff8116811461364657600080fd5b945061365460e08d01612e37565b93506136636101008d01612e54565b92506136726101208d01612f71565b91506136816101408d01612e54565b90509295989b509295989b9093969950565b6000602082840312156136a557600080fd5b813561136a81612e42565b6000608082840312156136c257600080fd5b6040516080810181811067ffffffffffffffff821117156136e5576136e5612d9b565b60405282516136f381612d55565b8152602083015161370381612e21565b6020820152604083015161371681612e42565b604082015260608301516004811061372d57600080fd5b60608201529392505050565b6000806000806080858703121561374f57600080fd5b845161375a81612e21565b602086015190945061376b81612e21565b604086015190935061377c81612e21565b606086015190925061378d81612e42565b939692955090935050565b6000815160005b818110156137b9576020818501810151868301520161379f565b50600093019283525090919050565b60006001600160e01b031980871683526137ee6137e86004850188613798565b86613798565b9316835250506004019392505050565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b6015820152600160fb1b60168201526001600160c01b031985166017820152607560f81b601f82015260006138b66138a9613880602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b031986168152608760f81b601482015261395f6138a961388061385761393661390d601587015b7f6300000000000000000000000000000000000000000000000000000000000000815260010190565b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681529050601160fb1b60148201526139a9601582015b7f0400000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160e01b031985168152905060b160f81b6004820152613a066139dd61390d600584015b607560f81b815260010190565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b600560fa1b81526001600160601b0319606088901b166001820152607560f81b60158201527f20000000000000000000000000000000000000000000000000000000000000006016820152600060178201878152607560f81b6020820152600160fb1b6021820152602281016001600160c01b0319881681529050607560f81b6008820152613aa96138a961388060098401613857565b6001600160601b0319871681529050608760f81b6014820152613add6138a961388061385761393661390d601587016138e4565b6001600160601b0319861681529050601160fb1b6014820152613b0260158201613980565b6001600160e01b031985168152905060b160f81b6004820152613b2d6139dd61390d600584016139d0565b9998505050505050505050565b600061136a8284613798565b600060208284031215613b5857600080fd5b5051919050565b600060208284031215613b7157600080fd5b813561136a81612e21565b60ff81811683821601908111156117f8576117f861304f565b60ff82811682821603908111156117f8576117f861304f56fea264697066735822122046aa98c10d8a2e2e4de16c0640692f50deefb1cb7fc23c4cd570310e9df033e464736f6c63430008110033",
383
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80639b337db211610081578063e0276b261161005b578063e0276b261461013c578063e78cea9214610186578063f03a4bc5146101c557600080fd5b80639b337db214610157578063d09520f71461016a578063d6c7fa781461017357600080fd5b80637405d7bf116100b25780637405d7bf1461011f578063765f28f914610132578063996a756b1461013c57600080fd5b80630538ac1b146100d95780630fde6c76146100fc5780636b562cec146100d9575b600080fd5b6100e2611c2081565b60405163ffffffff90911681526020015b60405180910390f35b61010f61010a366004612bc6565b6101d8565b60405190151581526020016100f3565b61010f61012d366004612c15565b610b4c565b6100e26201518081565b610144601481565b60405161ffff90911681526020016100f3565b61010f610165366004612caf565b611371565b6100e261025881565b61010f610181366004612cfe565b6117fe565b6101ad7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100f3565b61010f6101d3366004612d1a565b611cd7565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d56102176020860186612d7e565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa15801561025d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102819190612e6e565b905060018160e00151600581111561029b5761029b612f11565b14806102bc575060028160e0015160058111156102ba576102ba612f11565b145b6103205760405162461bcd60e51b815260206004820152602a60248201527f57616c6c6574206973206e6f7420696e204c697665206f72204d6f76696e6746604482015269756e647320737461746560b01b60648201526084015b60405180910390fd5b600061032f6020850185612f27565b9150508061037f5760405162461bcd60e51b815260206004820152601d60248201527f526564656d7074696f6e2062656c6f7720746865206d696e2073697a650000006044820152606401610317565b60148111156103d05760405162461bcd60e51b815260206004820152601f60248201527f526564656d7074696f6e206578636565647320746865206d61782073697a65006044820152606401610317565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e70ce416040518163ffffffff1660e01b815260040160e060405180830381865afa158015610431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104559190612f8d565b50509450945050505060008660400135116104c25760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b6064820152608401610317565b8167ffffffffffffffff168660400135111561052c5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b6064820152608401610317565b600061053c84604089013561303b565b905060008461054f8360408b0135613065565b6105599190613078565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635f3281ca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105df91906130a3565b905060008667ffffffffffffffff8111156105fc576105fc612d9b565b604051908082528060200260200182016040528015610625578160200160208202803683370190505b50905060005b87811015610b3b57600061064260208d018d612f27565b83818110610652576106526130be565b905060200281019061066491906130d4565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600081805190602001208d60000160208101906106c69190612d7e565b6040516020016106ea9291909182526001600160601b031916602082015260340190565b60408051808303601f190181529082905280516020909101207f03d952f70000000000000000000000000000000000000000000000000000000082526004820181905291506000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906303d952f79060240160a060405180830381865afa158015610783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a7919061311b565b9050806080015163ffffffff166000036108035760405162461bcd60e51b815260206004820181905260248201527f4e6f7420612070656e64696e6720726564656d7074696f6e20726571756573746044820152606401610317565b6102586001600160a01b038716156108b6576040517f0df5db70000000000000000000000000000000000000000000000000000000008152600481018490526000906001600160a01b03891690630df5db7090602401602060405180830381865afa158015610876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089a91906131b1565b90508163ffffffff168163ffffffff1611156108b4578091505b505b8082608001516108c691906131ce565b63ffffffff1642116109405760405162461bcd60e51b815260206004820152602b60248201527f526564656d7074696f6e2072657175657374206d696e20616765206e6f74206160448201527f63686965766564207965740000000000000000000000000000000000000000006064820152608401610317565b60008a836080015161095291906131ce565b9050610960611c20826131f2565b63ffffffff1642106109da5760405162461bcd60e51b815260206004820152603960248201527f526564656d7074696f6e20726571756573742074696d656f757420736166657460448201527f79206d617267696e206973206e6f7420707265736572766564000000000000006064820152608401610317565b886109e660018f613065565b87036109f9576109f68b8261320f565b90505b836060015167ffffffffffffffff16811115610a7d5760405162461bcd60e51b815260206004820152603660248201527f50726f706f736564207472616e73616374696f6e207065722d7265717565737460448201527f2066656520736861726520697320746f6f2068696768000000000000000000006064820152608401610317565b60005b87811015610b025785898281518110610a9b57610a9b6130be565b602002602001015103610af05760405162461bcd60e51b815260206004820152601260248201527f4475706c696361746564207265717565737400000000000000000000000000006044820152606401610317565b80610afa81613222565b915050610a80565b5084888881518110610b1657610b166130be565b6020026020010181815250505050505050508080610b3390613222565b91505061062b565b5060019a9950505050505050505050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d5610b8b6020880188612d7e565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015610bd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf59190612e6e565b905060018160e001516005811115610c0f57610c0f612f11565b1480610c30575060028160e001516005811115610c2e57610c2e612f11565b145b610c8f5760405162461bcd60e51b815260206004820152602a60248201527f57616c6c6574206973206e6f7420696e204c697665206f72204d6f76696e6746604482015269756e647320737461746560b01b6064820152608401610317565b6000610c9e602087018761323b565b905011610ced5760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a6500000000000000006044820152606401610317565b6014610cfc602087018761323b565b90501115610d4c5760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a650000000000006044820152606401610317565b82610d5a602087018761323b565b905014610dcf5760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e6720657874726120696e666f0000000000000000000000000000000000006064820152608401610317565b610deb6040860135610de4602088018861323b565b9050611d42565b600080610dfb602088018861323b565b905067ffffffffffffffff811115610e1557610e15612d9b565b604051908082528060200260200182016040528015610e3e578160200160208202803683370190505b50905060005b610e51602089018961323b565b9050811015611361576000610e6960208a018a61323b565b83818110610e7957610e796130be565b905060400201803603810190610e8f9190613285565b90506000888884818110610ea557610ea56130be565b9050602002810190610eb791906132db565b610ec0906133b8565b8251602080850151604051939450600093610ef293920191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529082905280516020909101207fb02c43d00000000000000000000000000000000000000000000000000000000082526004820181905291506000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b02c43d09060240160e060405180830381865afa158015610f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faf91906134ba565b9050806040015163ffffffff1660000361100b5760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c65640000000000000000000000006044820152606401610317565b611c20816040015161101d91906131ce565b63ffffffff1642116110715760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f74206163686965766564207965746044820152606401610317565b60a081015163ffffffff16156110c95760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c726561647920737765707400000000000000000000006044820152606401610317565b6110dd8482600001518360c0015186611ec9565b608083015160e881901c62ff00ff1663ff00ff0060d89290921c9190911617601081811c91901b1761111262015180826131f2565b63ffffffff16421061118c5760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f7420707265736572766564000000000000000000000000000000000000006064820152608401610317565b61119960208e018e612d7e565b6bffffffffffffffffffffffff191684604001516bffffffffffffffffffffffff19161461122f5760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c657400000000000000000000000000000000000000000000000000006064820152608401610317565b8560000361123f57816060015197505b876001600160a01b031682606001516001600160a01b0316146112a45760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c74006044820152606401610317565b60005b8681101561132957838882815181106112c2576112c26130be565b6020026020010151036113175760405162461bcd60e51b815260206004820152601260248201527f4475706c696361746564206465706f73697400000000000000000000000000006044820152606401610317565b8061132181613222565b9150506112a7565b508287878151811061133d5761133d6130be565b6020026020010181815250505050505050808061135990613222565b915050610e44565b50600193505050505b9392505050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d56113b06020870187612d7e565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa1580156113f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141a9190612e6e565b905060028160e00151600581111561143457611434612f11565b146114a75760405162461bcd60e51b815260206004820152602960248201527f536f757263652077616c6c6574206973206e6f7420696e204d6f76696e67467560448201527f6e647320737461746500000000000000000000000000000000000000000000006064820152608401610317565b61010081015161151f5760405162461bcd60e51b815260206004820152602a60248201527f5461726765742077616c6c65747320636f6d6d69746d656e74206973206e6f7460448201527f207375626d6974746564000000000000000000000000000000000000000000006064820152608401610317565b61152c6020850185612f27565b60405160200161153d92919061356d565b60405160208183030381529060405280519060200120816101000151146115cc5760405162461bcd60e51b815260206004820152603a60248201527f5461726765742077616c6c65747320646f206e6f74206d61746368207461726760448201527f65742077616c6c65747320636f6d6d69746d656e7420686173680000000000006064820152608401610317565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663be05abe36040518163ffffffff1660e01b815260040161016060405180830381865afa15801561162e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165291906135b0565b50505050505050505091509150600061166f846020015187612167565b90508167ffffffffffffffff168167ffffffffffffffff1610156117215760405162461bcd60e51b815260206004820152604260248201527f536f757263652077616c6c6574204254432062616c616e63652069732062656c60448201527f6f7720746865206d6f76696e672066756e64732064757374207468726573686f60648201527f6c64000000000000000000000000000000000000000000000000000000000000608482015260a401610317565b60008760400135116117855760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b6064820152608401610317565b8267ffffffffffffffff16876040013511156117ef5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b6064820152608401610317565b60019450505050505b92915050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e65e19d561183d6020860186612d7e565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015611883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a79190612e6e565b905060018160e0015160058111156118c1576118c1612f11565b14806118e2575060028160e0015160058111156118e0576118e0612f11565b145b6119545760405162461bcd60e51b815260206004820152603160248201527f536f757263652077616c6c6574206973206e6f7420696e204c697665206f722060448201527f4d6f76696e6746756e64732073746174650000000000000000000000000000006064820152608401610317565b6000602084013561196b6060860160408701613693565b60405160200161199292919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529082905280516020909101207ff18cf1b10000000000000000000000000000000000000000000000000000000082526004820181905291506000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f18cf1b190602401608060405180830381865afa158015611a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4f91906136b0565b9050600181606001516003811115611a6957611a69612f11565b14611adc5760405162461bcd60e51b815260206004820152602560248201527f53776565702072657175657374206973206e6f7420696e2050656e64696e672060448201527f73746174650000000000000000000000000000000000000000000000000000006064820152608401610317565b611ae96020860186612d7e565b81516001600160601b0319908116911614611b6c5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207265717565737420646f6573206e6f742062656c6f6e6720746f60448201527f207468652077616c6c65740000000000000000000000000000000000000000006064820152608401610317565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663be05abe36040518163ffffffff1660e01b815260040161016060405180830381865afa158015611bcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf191906135b0565b5050509750505050505050506000866060013511611c615760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b6064820152608401610317565b8067ffffffffffffffff1686606001351115611ccb5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b6064820152608401610317565b50600195945050505050565b6000611cee611ce960208401846130d4565b612242565b611d3a5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420612076616c696420686561727462656174206d6573736167650000006044820152606401610317565b506001919050565b60008211611da25760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f74206044820152666265207a65726f60c81b6064820152608401610317565b6000611dae828461303b565b9050600082611dbd8386613065565b611dc79190613078565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611e29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4d9190613739565b5092505067ffffffffffffffff82169050611e68848461320f565b1115611ec25760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f206044820152630d0d2ced60e31b6064820152608401610317565b5050505050565b805180516020808301516040808501516060909501519051600095611f0b95611ef7959094939192016137c8565b6040516020818303038152906040526122ba565b85519091508114611f845760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d6174636800000000000000000000000000000000000000000000006064820152608401610317565b606083611fc757602080840151604080860151606087015160808801519251611fb1958b959491016137fe565b6040516020818303038152906040529050612004565b84848460200151856040015186606001518760800151604051602001611ff296959493929190613a12565b60405160208183030381529060405290505b600061202b876020015163ffffffff168560000151604001516122e190919063ffffffff16565b90506000612038826124c3565b905080516014148015612070575061204f836124dd565b6001600160601b031916612064826000612504565b6001600160601b031916145b1561207e5750505050612161565b805160201480156120e5575060028360405161209a9190613b3a565b602060405180830381855afa1580156120b7573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906120da9190613b46565b6120e382612513565b145b156120f35750505050612161565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d6174636800000000000000000000000000000000006064820152608401610317565b50505050565b600082156117f8578282356121826040850160208601613693565b6121926060860160408701613b5f565b6040516020016121cf9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146122325760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642077616c6c6574206d61696e205554584f20646174610000006044820152606401610317565b61136a6060830160408401613b5f565b600060108214612254575060006117f8565b612298600084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506125049050565b6001600160c01b0319908116146122b1575060006117f8565b50600192915050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60606000806122ef8561252e565b90925090506001820161236a5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e670000000000000000000000000000000000000000000000000000000000006064820152608401610317565b8084106123b95760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e0000000000000000000000000000006044820152606401610317565b6000806123c784600161320f565b905060005b8681101561244f576123de8883612545565b925060001983036124315760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610317565b61243b838361320f565b91508061244781613222565b9150506123cc565b5061245a8782612545565b915060001982036124ad5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610317565b6124b88782846125b2565b979650505050505050565b60606117f88260088085516124d89190613065565b61267f565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b600061136a8383016020015190565b6000815160000361252657506000919050565b506020015190565b60008061253c836000612984565b91509150915091565b600061255282600961320f565b8351101561256357506000196117f8565b60008061257a8561257586600861320f565b612984565b90925090506001820161259357600019925050506117f8565b8061259f83600961320f565b6125a9919061320f565b95945050505050565b6060816000036125d1575060408051602081019091526000815261136a565b60006125dd838561320f565b905083811180156125ef575080855110155b61263b5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610317565b604051915082604083010160405282825283850182038460208701018481015b808210156126745781518383015260208201915061265b565b505050509392505050565b60606000848481518110612695576126956130be565b016020015160f81c9050826126ab826001613b7c565b60ff16146126c957505060408051602081019091526000815261136a565b846126d585600161320f565b815181106126e5576126e56130be565b016020015160f81c6000036127a45760028160ff16101561271657505060408051602081019091526000815261136a565b60008561272486600261320f565b81518110612734576127346130be565b016020015160f81c9050612749600283613b95565b60ff1681141580612767575080602014158015612767575080601414155b1561278557604051806020016040528060008152509250505061136a565b61279b61279386600361320f565b8790836125b2565b9250505061136a565b60006127b08686612504565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a90000000000000000000000000000000000000000000000000000000000036128c4578561280786600361320f565b81518110612817576128176130be565b60209101015160f81c601414158061288f575061284a6002612839868861320f565b6128439190613065565b8790612504565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b156128ad57604051806020016040528060008152509250505061136a565b61279b6128bb86600461320f565b879060146125b2565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a91400000000000000000000000000000000000000000000000000000000000361296b5785600161291a868861320f565b6129249190613065565b81518110612934576129346130be565b60209101015160f81c60871461295d57604051806020016040528060008152509250505061136a565b61279b6128bb86600361320f565b5050506040805160208101909152600081529392505050565b60008060006129938585612b28565b90508060ff166000036129c85760008585815181106129b4576129b46130be565b016020015190935060f81c9150612b219050565b836129d4826001613b7c565b60ff166129e1919061320f565b855110156129f85760001960009250925050612b21565b60008160ff16600203612a3c57612a31612a1d612a1687600161320f565b8890612504565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612b17565b8160ff16600403612a8b57612a7e612a58612a1687600161320f565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050612b17565b8160ff16600803612b1757612b0a612aa7612a1687600161320f565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000828281518110612b3c57612b3c6130be565b016020015160f81c60ff03612b53575060086117f8565b828281518110612b6557612b656130be565b016020015160f81c60fe03612b7c575060046117f8565b828281518110612b8e57612b8e6130be565b016020015160f81c60fd03612ba5575060026117f8565b50600092915050565b600060608284031215612bc057600080fd5b50919050565b600060208284031215612bd857600080fd5b813567ffffffffffffffff811115612bef57600080fd5b612bfb84828501612bae565b949350505050565b600060808284031215612bc057600080fd5b600080600060408486031215612c2a57600080fd5b833567ffffffffffffffff80821115612c4257600080fd5b612c4e87838801612c03565b94506020860135915080821115612c6457600080fd5b818601915086601f830112612c7857600080fd5b813581811115612c8757600080fd5b8760208260051b8501011115612c9c57600080fd5b6020830194508093505050509250925092565b60008060808385031215612cc257600080fd5b823567ffffffffffffffff811115612cd957600080fd5b612ce585828601612bae565b925050612cf58460208501612bae565b90509250929050565b600060808284031215612d1057600080fd5b61136a8383612c03565b600060208284031215612d2c57600080fd5b813567ffffffffffffffff811115612d4357600080fd5b82016040818503121561136a57600080fd5b6001600160601b031981168114612d6b57600080fd5b50565b8035612d7981612d55565b919050565b600060208284031215612d9057600080fd5b813561136a81612d55565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612dd557612dd5612d9b565b60405290565b60405160a0810167ffffffffffffffff81118282101715612dd557612dd5612d9b565b6040516080810167ffffffffffffffff81118282101715612dd557612dd5612d9b565b67ffffffffffffffff81168114612d6b57600080fd5b8051612d7981612e21565b63ffffffff81168114612d6b57600080fd5b8051612d7981612e42565b805160068110612d7957600080fd5b60006101208284031215612e8157600080fd5b612e89612db1565b8251815260208301516020820152612ea360408401612e37565b6040820152612eb460608401612e54565b6060820152612ec560808401612e54565b6080820152612ed660a08401612e54565b60a0820152612ee760c08401612e54565b60c0820152612ef860e08401612e5f565b60e0820152610100928301519281019290925250919050565b634e487b7160e01b600052602160045260246000fd5b6000808335601e19843603018112612f3e57600080fd5b83018035915067ffffffffffffffff821115612f5957600080fd5b6020019150600581901b3603821315612b2157600080fd5b80516bffffffffffffffffffffffff81168114612d7957600080fd5b600080600080600080600060e0888a031215612fa857600080fd5b8751612fb381612e21565b6020890151909750612fc481612e21565b6040890151909650612fd581612e21565b6060890151909550612fe681612e21565b6080890151909450612ff781612e42565b925061300560a08901612f71565b915060c088015161301581612e42565b8091505092959891949750929550565b634e487b7160e01b600052601260045260246000fd5b60008261304a5761304a613025565b500690565b634e487b7160e01b600052601160045260246000fd5b818103818111156117f8576117f861304f565b60008261308757613087613025565b500490565b80516001600160a01b0381168114612d7957600080fd5b6000602082840312156130b557600080fd5b61136a8261308c565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126130eb57600080fd5b83018035915067ffffffffffffffff82111561310657600080fd5b602001915036819003821315612b2157600080fd5b600060a0828403121561312d57600080fd5b60405160a0810181811067ffffffffffffffff8211171561315057613150612d9b565b60405261315c8361308c565b8152602083015161316c81612e21565b6020820152604083015161317f81612e21565b6040820152606083015161319281612e21565b606082015260808301516131a581612e42565b60808201529392505050565b6000602082840312156131c357600080fd5b815161136a81612e42565b63ffffffff8181168382160190808211156131eb576131eb61304f565b5092915050565b63ffffffff8281168282160390808211156131eb576131eb61304f565b808201808211156117f8576117f861304f565b6000600182016132345761323461304f565b5060010190565b6000808335601e1984360301811261325257600080fd5b83018035915067ffffffffffffffff82111561326d57600080fd5b6020019150600681901b3603821315612b2157600080fd5b60006040828403121561329757600080fd5b6040516040810181811067ffffffffffffffff821117156132ba576132ba612d9b565b6040528235815260208301356132cf81612e42565b60208201529392505050565b60008235609e198336030181126132f157600080fd5b9190910192915050565b80356001600160e01b031981168114612d7957600080fd5b600082601f83011261332457600080fd5b813567ffffffffffffffff8082111561333f5761333f612d9b565b604051601f8301601f19908116603f0116810190828211818310171561336757613367612d9b565b8160405283815286602085880101111561338057600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160c01b031981168114612d7957600080fd5b600060a082360312156133ca57600080fd5b6133d2612ddb565b823567ffffffffffffffff808211156133ea57600080fd5b8185019150608082360312156133ff57600080fd5b613407612dfe565b613410836132fb565b815260208301358281111561342457600080fd5b61343036828601613313565b60208301525060408301358281111561344857600080fd5b61345436828601613313565b604083015250613466606084016132fb565b606082015283525061347c9050602084016133a0565b602082015261348d60408401612d6e565b604082015261349e60608401612d6e565b60608201526134af608084016132fb565b608082015292915050565b600060e082840312156134cc57600080fd5b60405160e0810181811067ffffffffffffffff821117156134ef576134ef612d9b565b6040526134fb8361308c565b8152602083015161350b81612e21565b6020820152604083015161351e81612e42565b604082015261352f6060840161308c565b6060820152608083015161354281612e21565b608082015260a083015161355581612e42565b60a082015260c0928301519281019290925250919050565b60008184825b858110156135a557813561358681612d55565b6001600160601b03191683526020928301929190910190600101613573565b509095945050505050565b60008060008060008060008060008060006101608c8e0312156135d257600080fd5b8b516135dd81612e21565b60208d0151909b506135ee81612e21565b60408d0151909a506135ff81612e42565b60608d015190995061361081612e42565b975061361e60808d01612f71565b965060a08c015161362e81612e42565b60c08d015190965061ffff8116811461364657600080fd5b945061365460e08d01612e37565b93506136636101008d01612e54565b92506136726101208d01612f71565b91506136816101408d01612e54565b90509295989b509295989b9093969950565b6000602082840312156136a557600080fd5b813561136a81612e42565b6000608082840312156136c257600080fd5b6040516080810181811067ffffffffffffffff821117156136e5576136e5612d9b565b60405282516136f381612d55565b8152602083015161370381612e21565b6020820152604083015161371681612e42565b604082015260608301516004811061372d57600080fd5b60608201529392505050565b6000806000806080858703121561374f57600080fd5b845161375a81612e21565b602086015190945061376b81612e21565b604086015190935061377c81612e21565b606086015190925061378d81612e42565b939692955090935050565b6000815160005b818110156137b9576020818501810151868301520161379f565b50600093019283525090919050565b60006001600160e01b031980871683526137ee6137e86004850188613798565b86613798565b9316835250506004019392505050565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b6015820152600160fb1b60168201526001600160c01b031985166017820152607560f81b601f82015260006138b66138a9613880602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b031986168152608760f81b601482015261395f6138a961388061385761393661390d601587015b7f6300000000000000000000000000000000000000000000000000000000000000815260010190565b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681529050601160fb1b60148201526139a9601582015b7f0400000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160e01b031985168152905060b160f81b6004820152613a066139dd61390d600584015b607560f81b815260010190565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b600560fa1b81526001600160601b0319606088901b166001820152607560f81b60158201527f20000000000000000000000000000000000000000000000000000000000000006016820152600060178201878152607560f81b6020820152600160fb1b6021820152602281016001600160c01b0319881681529050607560f81b6008820152613aa96138a961388060098401613857565b6001600160601b0319871681529050608760f81b6014820152613add6138a961388061385761393661390d601587016138e4565b6001600160601b0319861681529050601160fb1b6014820152613b0260158201613980565b6001600160e01b031985168152905060b160f81b6004820152613b2d6139dd61390d600584016139d0565b9998505050505050505050565b600061136a8284613798565b600060208284031215613b5857600080fd5b5051919050565b600060208284031215613b7157600080fd5b813561136a81612e21565b60ff81811683821601908111156117f8576117f861304f565b60ff82811682821603908111156117f8576117f861304f56fea264697066735822122046aa98c10d8a2e2e4de16c0640692f50deefb1cb7fc23c4cd570310e9df033e464736f6c63430008110033",
384
384
  "linkReferences": {},
385
385
  "deployedLinkReferences": {}
386
386
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3eab7c66c0ac7b5c2fd576e0f721347a.json"
3
+ "buildInfo": "../../../build-info/a3a46a4061ea66973be43b2f92dc2912.json"
4
4
  }
@@ -216,7 +216,7 @@ contract WalletProposalValidator {
216
216
  /// @param depositsExtraInfo Deposits extra info required to perform the validation.
217
217
  /// @return True if the proposal is valid. Reverts otherwise.
218
218
  /// @dev Requirements:
219
- /// - The target wallet must be in the Live state,
219
+ /// - The target wallet must be in the Live or MovingFunds state,
220
220
  /// - The number of deposits included in the sweep must be in
221
221
  /// the range [1, `DEPOSIT_SWEEP_MAX_SIZE`],
222
222
  /// - The length of `depositsExtraInfo` array must be equal to the
@@ -242,10 +242,14 @@ contract WalletProposalValidator {
242
242
  DepositSweepProposal calldata proposal,
243
243
  DepositExtraInfo[] calldata depositsExtraInfo
244
244
  ) external view returns (bool) {
245
+ Wallets.Wallet memory wallet = bridge.wallets(
246
+ proposal.walletPubKeyHash
247
+ );
248
+
245
249
  require(
246
- bridge.wallets(proposal.walletPubKeyHash).state ==
247
- Wallets.WalletState.Live,
248
- "Wallet is not in Live state"
250
+ wallet.state == Wallets.WalletState.Live ||
251
+ wallet.state == Wallets.WalletState.MovingFunds,
252
+ "Wallet is not in Live or MovingFunds state"
249
253
  );
250
254
 
251
255
  require(proposal.depositsKeys.length > 0, "Sweep below the min size");
@@ -517,7 +521,7 @@ contract WalletProposalValidator {
517
521
  /// @param proposal The redemption proposal to validate.
518
522
  /// @return True if the proposal is valid. Reverts otherwise.
519
523
  /// @dev Requirements:
520
- /// - The target wallet must be in the Live state,
524
+ /// - The target wallet must be in the Live or MovingFunds state,
521
525
  /// - The number of redemption requests included in the redemption
522
526
  /// proposal must be in the range [1, `redemptionMaxSize`],
523
527
  /// - The proposed redemption tx fee must be grater than zero,
@@ -539,10 +543,14 @@ contract WalletProposalValidator {
539
543
  view
540
544
  returns (bool)
541
545
  {
546
+ Wallets.Wallet memory wallet = bridge.wallets(
547
+ proposal.walletPubKeyHash
548
+ );
549
+
542
550
  require(
543
- bridge.wallets(proposal.walletPubKeyHash).state ==
544
- Wallets.WalletState.Live,
545
- "Wallet is not in Live state"
551
+ wallet.state == Wallets.WalletState.Live ||
552
+ wallet.state == Wallets.WalletState.MovingFunds,
553
+ "Wallet is not in Live or MovingFunds state"
546
554
  );
547
555
 
548
556
  uint256 requestsCount = proposal.redeemersOutputScripts.length;