@keep-network/tbtc-v2 0.1.1-dev.8 → 0.1.1-dev.80

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 (112) hide show
  1. package/README.adoc +12 -0
  2. package/artifacts/Bank.json +757 -0
  3. package/artifacts/Bridge.json +2644 -0
  4. package/artifacts/Deposit.json +117 -0
  5. package/artifacts/DepositSweep.json +77 -0
  6. package/artifacts/EcdsaDkgValidator.json +532 -0
  7. package/artifacts/EcdsaInactivity.json +156 -0
  8. package/artifacts/EcdsaSortitionPool.json +1004 -0
  9. package/artifacts/Fraud.json +164 -0
  10. package/artifacts/KeepRegistry.json +99 -0
  11. package/artifacts/KeepStake.json +286 -0
  12. package/artifacts/KeepToken.json +711 -0
  13. package/artifacts/KeepTokenStaking.json +483 -0
  14. package/artifacts/MovingFunds.json +249 -0
  15. package/artifacts/NuCypherStakingEscrow.json +256 -0
  16. package/artifacts/NuCypherToken.json +711 -0
  17. package/artifacts/RandomBeaconStub.json +141 -0
  18. package/artifacts/Redemption.json +162 -0
  19. package/artifacts/ReimbursementPool.json +509 -0
  20. package/artifacts/Relay.json +123 -0
  21. package/artifacts/T.json +1148 -0
  22. package/artifacts/TBTC.json +27 -26
  23. package/artifacts/TBTCToken.json +27 -26
  24. package/artifacts/TBTCVault.json +462 -0
  25. package/artifacts/TokenStaking.json +2288 -0
  26. package/artifacts/TokenholderGovernor.json +1795 -0
  27. package/artifacts/TokenholderTimelock.json +1058 -0
  28. package/artifacts/VendingMachine.json +30 -29
  29. package/artifacts/VendingMachineKeep.json +400 -0
  30. package/artifacts/VendingMachineNuCypher.json +400 -0
  31. package/artifacts/WalletRegistry.json +1843 -0
  32. package/artifacts/WalletRegistryGovernance.json +2754 -0
  33. package/artifacts/Wallets.json +186 -0
  34. package/artifacts/solcInputs/4f6d4f5cd1e3d835e20ed55926a445cd.json +311 -0
  35. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  36. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.json +2 -2
  37. package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
  38. package/build/contracts/bank/Bank.sol/Bank.json +25 -2
  39. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +4 -0
  40. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.json +34 -0
  41. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
  42. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +2 -2
  43. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  44. package/build/contracts/bridge/Bridge.sol/Bridge.json +2516 -196
  45. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +4 -0
  46. package/build/contracts/bridge/BridgeState.sol/BridgeState.json +226 -0
  47. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +4 -0
  48. package/build/contracts/bridge/Deposit.sol/Deposit.json +72 -0
  49. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +4 -0
  50. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.json +30 -0
  51. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +4 -0
  52. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.json +10 -0
  53. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +4 -0
  54. package/build/contracts/bridge/Fraud.sol/Fraud.json +86 -0
  55. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +4 -0
  56. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.json +10 -0
  57. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +4 -0
  58. package/build/contracts/bridge/IRelay.sol/IRelay.json +37 -0
  59. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +4 -0
  60. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.json +138 -0
  61. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +4 -0
  62. package/build/contracts/bridge/Redemption.sol/OutboundTx.json +10 -0
  63. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +4 -0
  64. package/build/contracts/bridge/Redemption.sol/Redemption.json +92 -0
  65. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  66. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.json +2 -2
  67. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +4 -0
  68. package/build/contracts/bridge/Wallets.sol/Wallets.json +112 -0
  69. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  70. package/build/contracts/token/TBTC.sol/TBTC.json +2 -2
  71. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +4 -0
  72. package/build/contracts/vault/DonationVault.sol/DonationVault.json +108 -0
  73. package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
  74. package/build/contracts/vault/IVault.sol/IVault.json +24 -1
  75. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
  76. package/build/contracts/vault/TBTCVault.sol/TBTCVault.json +126 -7
  77. package/contracts/GovernanceUtils.sol +4 -4
  78. package/contracts/bank/Bank.sol +45 -20
  79. package/contracts/bank/IReceiveBalanceApproval.sol +45 -0
  80. package/contracts/bridge/BitcoinTx.sol +232 -10
  81. package/contracts/bridge/Bridge.sol +1601 -244
  82. package/contracts/bridge/BridgeState.sol +739 -0
  83. package/contracts/bridge/Deposit.sol +269 -0
  84. package/contracts/bridge/DepositSweep.sol +571 -0
  85. package/contracts/bridge/EcdsaLib.sol +45 -0
  86. package/contracts/bridge/Fraud.sol +604 -0
  87. package/contracts/bridge/Heartbeat.sol +112 -0
  88. package/contracts/bridge/IRelay.sol +28 -0
  89. package/contracts/bridge/MovingFunds.sol +1089 -0
  90. package/contracts/bridge/Redemption.sol +867 -0
  91. package/contracts/bridge/VendingMachine.sol +1 -1
  92. package/contracts/bridge/Wallets.sol +553 -0
  93. package/contracts/hardhat-dependency-compiler/.hardhat-dependency-compiler +1 -0
  94. package/contracts/hardhat-dependency-compiler/@keep-network/ecdsa/contracts/WalletRegistry.sol +3 -0
  95. package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol +3 -0
  96. package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +3 -0
  97. package/contracts/token/TBTC.sol +1 -1
  98. package/contracts/vault/DonationVault.sol +125 -0
  99. package/contracts/vault/IVault.sol +19 -13
  100. package/contracts/vault/TBTCVault.sol +58 -8
  101. package/deploy/00_resolve_relay.ts +28 -0
  102. package/deploy/04_deploy_bank.ts +27 -0
  103. package/deploy/05_deploy_bridge.ts +80 -0
  104. package/deploy/06_deploy_tbtc_vault.ts +30 -0
  105. package/deploy/07_bank_update_bridge.ts +19 -0
  106. package/deploy/08_transfer_ownership.ts +15 -0
  107. package/deploy/09_transfer_governance.ts +20 -0
  108. package/deploy/10_transfer_proxy_admin_ownership.ts +30 -0
  109. package/deploy/11_deploy_proxy_admin_with_deputy.ts +33 -0
  110. package/export.json +15993 -475
  111. package/package.json +32 -25
  112. package/artifacts/solcInputs/4cf328e09411ac69d75a3c381680bc2c.json +0 -128
@@ -3,6 +3,31 @@
3
3
  "contractName": "Bridge",
4
4
  "sourceName": "contracts/bridge/Bridge.sol",
5
5
  "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "uint64",
12
+ "name": "depositDustThreshold",
13
+ "type": "uint64"
14
+ },
15
+ {
16
+ "indexed": false,
17
+ "internalType": "uint64",
18
+ "name": "depositTreasuryFeeDivisor",
19
+ "type": "uint64"
20
+ },
21
+ {
22
+ "indexed": false,
23
+ "internalType": "uint64",
24
+ "name": "depositTxMaxFee",
25
+ "type": "uint64"
26
+ }
27
+ ],
28
+ "name": "DepositParametersUpdated",
29
+ "type": "event"
30
+ },
6
31
  {
7
32
  "anonymous": false,
8
33
  "inputs": [
@@ -14,16 +39,22 @@
14
39
  },
15
40
  {
16
41
  "indexed": false,
17
- "internalType": "uint8",
42
+ "internalType": "uint32",
18
43
  "name": "fundingOutputIndex",
19
- "type": "uint8"
44
+ "type": "uint32"
20
45
  },
21
46
  {
22
- "indexed": false,
47
+ "indexed": true,
23
48
  "internalType": "address",
24
49
  "name": "depositor",
25
50
  "type": "address"
26
51
  },
52
+ {
53
+ "indexed": false,
54
+ "internalType": "uint64",
55
+ "name": "amount",
56
+ "type": "uint64"
57
+ },
27
58
  {
28
59
  "indexed": false,
29
60
  "internalType": "bytes8",
@@ -31,7 +62,7 @@
31
62
  "type": "bytes8"
32
63
  },
33
64
  {
34
- "indexed": false,
65
+ "indexed": true,
35
66
  "internalType": "bytes20",
36
67
  "name": "walletPubKeyHash",
37
68
  "type": "bytes20"
@@ -62,19 +93,19 @@
62
93
  "anonymous": false,
63
94
  "inputs": [
64
95
  {
65
- "indexed": true,
66
- "internalType": "address",
67
- "name": "previousOwner",
68
- "type": "address"
96
+ "indexed": false,
97
+ "internalType": "bytes20",
98
+ "name": "walletPubKeyHash",
99
+ "type": "bytes20"
69
100
  },
70
101
  {
71
- "indexed": true,
72
- "internalType": "address",
73
- "name": "newOwner",
74
- "type": "address"
102
+ "indexed": false,
103
+ "internalType": "bytes32",
104
+ "name": "sweepTxHash",
105
+ "type": "bytes32"
75
106
  }
76
107
  ],
77
- "name": "OwnershipTransferred",
108
+ "name": "DepositsSwept",
78
109
  "type": "event"
79
110
  },
80
111
  {
@@ -82,254 +113,2543 @@
82
113
  "inputs": [
83
114
  {
84
115
  "indexed": true,
85
- "internalType": "address",
86
- "name": "vault",
87
- "type": "address"
116
+ "internalType": "bytes20",
117
+ "name": "walletPubKeyHash",
118
+ "type": "bytes20"
88
119
  },
89
120
  {
90
121
  "indexed": false,
91
- "internalType": "bool",
92
- "name": "isTrusted",
93
- "type": "bool"
122
+ "internalType": "bytes32",
123
+ "name": "sighash",
124
+ "type": "bytes32"
94
125
  }
95
126
  ],
96
- "name": "VaultStatusUpdated",
127
+ "name": "FraudChallengeDefeatTimedOut",
97
128
  "type": "event"
98
129
  },
99
130
  {
131
+ "anonymous": false,
100
132
  "inputs": [
101
133
  {
102
- "internalType": "address",
103
- "name": "",
104
- "type": "address"
105
- }
106
- ],
107
- "name": "isVaultTrusted",
108
- "outputs": [
109
- {
110
- "internalType": "bool",
111
- "name": "",
112
- "type": "bool"
113
- }
114
- ],
115
- "stateMutability": "view",
116
- "type": "function"
117
- },
118
- {
119
- "inputs": [],
120
- "name": "owner",
121
- "outputs": [
134
+ "indexed": true,
135
+ "internalType": "bytes20",
136
+ "name": "walletPubKeyHash",
137
+ "type": "bytes20"
138
+ },
122
139
  {
123
- "internalType": "address",
124
- "name": "",
125
- "type": "address"
140
+ "indexed": false,
141
+ "internalType": "bytes32",
142
+ "name": "sighash",
143
+ "type": "bytes32"
126
144
  }
127
145
  ],
128
- "stateMutability": "view",
129
- "type": "function"
130
- },
131
- {
132
- "inputs": [],
133
- "name": "renounceOwnership",
134
- "outputs": [],
135
- "stateMutability": "nonpayable",
136
- "type": "function"
146
+ "name": "FraudChallengeDefeated",
147
+ "type": "event"
137
148
  },
138
149
  {
150
+ "anonymous": false,
139
151
  "inputs": [
140
152
  {
141
- "components": [
142
- {
143
- "internalType": "bytes4",
144
- "name": "version",
145
- "type": "bytes4"
146
- },
147
- {
148
- "internalType": "bytes",
149
- "name": "inputVector",
150
- "type": "bytes"
151
- },
152
- {
153
- "internalType": "bytes",
154
- "name": "outputVector",
155
- "type": "bytes"
156
- },
157
- {
158
- "internalType": "bytes4",
159
- "name": "locktime",
160
- "type": "bytes4"
161
- }
162
- ],
163
- "internalType": "struct BitcoinTx.Info",
164
- "name": "fundingTx",
165
- "type": "tuple"
153
+ "indexed": true,
154
+ "internalType": "bytes20",
155
+ "name": "walletPubKeyHash",
156
+ "type": "bytes20"
166
157
  },
167
158
  {
168
- "components": [
169
- {
170
- "internalType": "uint8",
171
- "name": "fundingOutputIndex",
172
- "type": "uint8"
173
- },
174
- {
175
- "internalType": "address",
176
- "name": "depositor",
177
- "type": "address"
178
- },
179
- {
180
- "internalType": "bytes8",
181
- "name": "blindingFactor",
182
- "type": "bytes8"
183
- },
184
- {
185
- "internalType": "bytes20",
186
- "name": "walletPubKeyHash",
187
- "type": "bytes20"
188
- },
189
- {
190
- "internalType": "bytes20",
191
- "name": "refundPubKeyHash",
192
- "type": "bytes20"
193
- },
194
- {
195
- "internalType": "bytes4",
196
- "name": "refundLocktime",
197
- "type": "bytes4"
198
- },
199
- {
200
- "internalType": "address",
201
- "name": "vault",
202
- "type": "address"
203
- }
204
- ],
205
- "internalType": "struct Bridge.RevealInfo",
206
- "name": "reveal",
207
- "type": "tuple"
208
- }
209
- ],
210
- "name": "revealDeposit",
211
- "outputs": [],
212
- "stateMutability": "nonpayable",
213
- "type": "function"
214
- },
215
- {
216
- "inputs": [
159
+ "indexed": false,
160
+ "internalType": "bytes32",
161
+ "name": "sighash",
162
+ "type": "bytes32"
163
+ },
217
164
  {
218
- "internalType": "address",
219
- "name": "vault",
220
- "type": "address"
165
+ "indexed": false,
166
+ "internalType": "uint8",
167
+ "name": "v",
168
+ "type": "uint8"
221
169
  },
222
170
  {
223
- "internalType": "bool",
224
- "name": "isTrusted",
225
- "type": "bool"
171
+ "indexed": false,
172
+ "internalType": "bytes32",
173
+ "name": "r",
174
+ "type": "bytes32"
175
+ },
176
+ {
177
+ "indexed": false,
178
+ "internalType": "bytes32",
179
+ "name": "s",
180
+ "type": "bytes32"
226
181
  }
227
182
  ],
228
- "name": "setVaultStatus",
229
- "outputs": [],
230
- "stateMutability": "nonpayable",
231
- "type": "function"
183
+ "name": "FraudChallengeSubmitted",
184
+ "type": "event"
232
185
  },
233
186
  {
187
+ "anonymous": false,
234
188
  "inputs": [
235
189
  {
236
- "components": [
237
- {
238
- "internalType": "bytes4",
239
- "name": "version",
240
- "type": "bytes4"
241
- },
242
- {
243
- "internalType": "bytes",
244
- "name": "inputVector",
245
- "type": "bytes"
246
- },
247
- {
248
- "internalType": "bytes",
249
- "name": "outputVector",
250
- "type": "bytes"
251
- },
252
- {
253
- "internalType": "bytes4",
254
- "name": "locktime",
255
- "type": "bytes4"
256
- }
257
- ],
258
- "internalType": "struct BitcoinTx.Info",
259
- "name": "sweepTx",
260
- "type": "tuple"
261
- },
262
- {
263
- "internalType": "bytes",
264
- "name": "merkleProof",
265
- "type": "bytes"
190
+ "indexed": false,
191
+ "internalType": "uint256",
192
+ "name": "fraudChallengeDepositAmount",
193
+ "type": "uint256"
266
194
  },
267
195
  {
196
+ "indexed": false,
268
197
  "internalType": "uint256",
269
- "name": "txIndexInBlock",
198
+ "name": "fraudChallengeDefeatTimeout",
270
199
  "type": "uint256"
271
200
  },
272
201
  {
273
- "internalType": "bytes",
274
- "name": "bitcoinHeaders",
275
- "type": "bytes"
202
+ "indexed": false,
203
+ "internalType": "uint96",
204
+ "name": "fraudSlashingAmount",
205
+ "type": "uint96"
206
+ },
207
+ {
208
+ "indexed": false,
209
+ "internalType": "uint256",
210
+ "name": "fraudNotifierRewardMultiplier",
211
+ "type": "uint256"
276
212
  }
277
213
  ],
278
- "name": "sweep",
279
- "outputs": [],
280
- "stateMutability": "nonpayable",
281
- "type": "function"
214
+ "name": "FraudParametersUpdated",
215
+ "type": "event"
282
216
  },
283
217
  {
218
+ "anonymous": false,
284
219
  "inputs": [
285
220
  {
221
+ "indexed": false,
222
+ "internalType": "address",
223
+ "name": "oldGovernance",
224
+ "type": "address"
225
+ },
226
+ {
227
+ "indexed": false,
286
228
  "internalType": "address",
287
- "name": "newOwner",
229
+ "name": "newGovernance",
288
230
  "type": "address"
289
231
  }
290
232
  ],
291
- "name": "transferOwnership",
292
- "outputs": [],
293
- "stateMutability": "nonpayable",
294
- "type": "function"
233
+ "name": "GovernanceTransferred",
234
+ "type": "event"
295
235
  },
296
236
  {
237
+ "anonymous": false,
297
238
  "inputs": [
298
239
  {
299
- "internalType": "uint256",
300
- "name": "",
240
+ "indexed": false,
241
+ "internalType": "uint8",
242
+ "name": "version",
243
+ "type": "uint8"
244
+ }
245
+ ],
246
+ "name": "Initialized",
247
+ "type": "event"
248
+ },
249
+ {
250
+ "anonymous": false,
251
+ "inputs": [
252
+ {
253
+ "indexed": true,
254
+ "internalType": "bytes20",
255
+ "name": "walletPubKeyHash",
256
+ "type": "bytes20"
257
+ },
258
+ {
259
+ "indexed": false,
260
+ "internalType": "bytes32",
261
+ "name": "movingFundsTxHash",
262
+ "type": "bytes32"
263
+ },
264
+ {
265
+ "indexed": false,
266
+ "internalType": "uint32",
267
+ "name": "movingFundsTxOutputIndex",
268
+ "type": "uint32"
269
+ }
270
+ ],
271
+ "name": "MovedFundsSweepTimedOut",
272
+ "type": "event"
273
+ },
274
+ {
275
+ "anonymous": false,
276
+ "inputs": [
277
+ {
278
+ "indexed": true,
279
+ "internalType": "bytes20",
280
+ "name": "walletPubKeyHash",
281
+ "type": "bytes20"
282
+ },
283
+ {
284
+ "indexed": false,
285
+ "internalType": "bytes32",
286
+ "name": "sweepTxHash",
287
+ "type": "bytes32"
288
+ }
289
+ ],
290
+ "name": "MovedFundsSwept",
291
+ "type": "event"
292
+ },
293
+ {
294
+ "anonymous": false,
295
+ "inputs": [
296
+ {
297
+ "indexed": true,
298
+ "internalType": "bytes20",
299
+ "name": "walletPubKeyHash",
300
+ "type": "bytes20"
301
+ }
302
+ ],
303
+ "name": "MovingFundsBelowDustReported",
304
+ "type": "event"
305
+ },
306
+ {
307
+ "anonymous": false,
308
+ "inputs": [
309
+ {
310
+ "indexed": true,
311
+ "internalType": "bytes20",
312
+ "name": "walletPubKeyHash",
313
+ "type": "bytes20"
314
+ },
315
+ {
316
+ "indexed": false,
317
+ "internalType": "bytes20[]",
318
+ "name": "targetWallets",
319
+ "type": "bytes20[]"
320
+ },
321
+ {
322
+ "indexed": false,
323
+ "internalType": "address",
324
+ "name": "submitter",
325
+ "type": "address"
326
+ }
327
+ ],
328
+ "name": "MovingFundsCommitmentSubmitted",
329
+ "type": "event"
330
+ },
331
+ {
332
+ "anonymous": false,
333
+ "inputs": [
334
+ {
335
+ "indexed": true,
336
+ "internalType": "bytes20",
337
+ "name": "walletPubKeyHash",
338
+ "type": "bytes20"
339
+ },
340
+ {
341
+ "indexed": false,
342
+ "internalType": "bytes32",
343
+ "name": "movingFundsTxHash",
344
+ "type": "bytes32"
345
+ }
346
+ ],
347
+ "name": "MovingFundsCompleted",
348
+ "type": "event"
349
+ },
350
+ {
351
+ "anonymous": false,
352
+ "inputs": [
353
+ {
354
+ "indexed": false,
355
+ "internalType": "uint64",
356
+ "name": "movingFundsTxMaxTotalFee",
357
+ "type": "uint64"
358
+ },
359
+ {
360
+ "indexed": false,
361
+ "internalType": "uint64",
362
+ "name": "movingFundsDustThreshold",
363
+ "type": "uint64"
364
+ },
365
+ {
366
+ "indexed": false,
367
+ "internalType": "uint32",
368
+ "name": "movingFundsTimeoutResetDelay",
369
+ "type": "uint32"
370
+ },
371
+ {
372
+ "indexed": false,
373
+ "internalType": "uint32",
374
+ "name": "movingFundsTimeout",
375
+ "type": "uint32"
376
+ },
377
+ {
378
+ "indexed": false,
379
+ "internalType": "uint96",
380
+ "name": "movingFundsTimeoutSlashingAmount",
381
+ "type": "uint96"
382
+ },
383
+ {
384
+ "indexed": false,
385
+ "internalType": "uint256",
386
+ "name": "movingFundsTimeoutNotifierRewardMultiplier",
387
+ "type": "uint256"
388
+ },
389
+ {
390
+ "indexed": false,
391
+ "internalType": "uint64",
392
+ "name": "movedFundsSweepTxMaxTotalFee",
393
+ "type": "uint64"
394
+ },
395
+ {
396
+ "indexed": false,
397
+ "internalType": "uint32",
398
+ "name": "movedFundsSweepTimeout",
399
+ "type": "uint32"
400
+ },
401
+ {
402
+ "indexed": false,
403
+ "internalType": "uint96",
404
+ "name": "movedFundsSweepTimeoutSlashingAmount",
405
+ "type": "uint96"
406
+ },
407
+ {
408
+ "indexed": false,
409
+ "internalType": "uint256",
410
+ "name": "movedFundsSweepTimeoutNotifierRewardMultiplier",
411
+ "type": "uint256"
412
+ }
413
+ ],
414
+ "name": "MovingFundsParametersUpdated",
415
+ "type": "event"
416
+ },
417
+ {
418
+ "anonymous": false,
419
+ "inputs": [
420
+ {
421
+ "indexed": true,
422
+ "internalType": "bytes20",
423
+ "name": "walletPubKeyHash",
424
+ "type": "bytes20"
425
+ }
426
+ ],
427
+ "name": "MovingFundsTimedOut",
428
+ "type": "event"
429
+ },
430
+ {
431
+ "anonymous": false,
432
+ "inputs": [
433
+ {
434
+ "indexed": true,
435
+ "internalType": "bytes20",
436
+ "name": "walletPubKeyHash",
437
+ "type": "bytes20"
438
+ }
439
+ ],
440
+ "name": "MovingFundsTimeoutReset",
441
+ "type": "event"
442
+ },
443
+ {
444
+ "anonymous": false,
445
+ "inputs": [
446
+ {
447
+ "indexed": true,
448
+ "internalType": "bytes32",
449
+ "name": "ecdsaWalletID",
450
+ "type": "bytes32"
451
+ },
452
+ {
453
+ "indexed": true,
454
+ "internalType": "bytes20",
455
+ "name": "walletPubKeyHash",
456
+ "type": "bytes20"
457
+ }
458
+ ],
459
+ "name": "NewWalletRegistered",
460
+ "type": "event"
461
+ },
462
+ {
463
+ "anonymous": false,
464
+ "inputs": [],
465
+ "name": "NewWalletRequested",
466
+ "type": "event"
467
+ },
468
+ {
469
+ "anonymous": false,
470
+ "inputs": [
471
+ {
472
+ "indexed": false,
473
+ "internalType": "uint64",
474
+ "name": "redemptionDustThreshold",
475
+ "type": "uint64"
476
+ },
477
+ {
478
+ "indexed": false,
479
+ "internalType": "uint64",
480
+ "name": "redemptionTreasuryFeeDivisor",
481
+ "type": "uint64"
482
+ },
483
+ {
484
+ "indexed": false,
485
+ "internalType": "uint64",
486
+ "name": "redemptionTxMaxFee",
487
+ "type": "uint64"
488
+ },
489
+ {
490
+ "indexed": false,
491
+ "internalType": "uint256",
492
+ "name": "redemptionTimeout",
493
+ "type": "uint256"
494
+ },
495
+ {
496
+ "indexed": false,
497
+ "internalType": "uint96",
498
+ "name": "redemptionTimeoutSlashingAmount",
499
+ "type": "uint96"
500
+ },
501
+ {
502
+ "indexed": false,
503
+ "internalType": "uint256",
504
+ "name": "redemptionTimeoutNotifierRewardMultiplier",
505
+ "type": "uint256"
506
+ }
507
+ ],
508
+ "name": "RedemptionParametersUpdated",
509
+ "type": "event"
510
+ },
511
+ {
512
+ "anonymous": false,
513
+ "inputs": [
514
+ {
515
+ "indexed": true,
516
+ "internalType": "bytes20",
517
+ "name": "walletPubKeyHash",
518
+ "type": "bytes20"
519
+ },
520
+ {
521
+ "indexed": false,
522
+ "internalType": "bytes",
523
+ "name": "redeemerOutputScript",
524
+ "type": "bytes"
525
+ },
526
+ {
527
+ "indexed": true,
528
+ "internalType": "address",
529
+ "name": "redeemer",
530
+ "type": "address"
531
+ },
532
+ {
533
+ "indexed": false,
534
+ "internalType": "uint64",
535
+ "name": "requestedAmount",
536
+ "type": "uint64"
537
+ },
538
+ {
539
+ "indexed": false,
540
+ "internalType": "uint64",
541
+ "name": "treasuryFee",
542
+ "type": "uint64"
543
+ },
544
+ {
545
+ "indexed": false,
546
+ "internalType": "uint64",
547
+ "name": "txMaxFee",
548
+ "type": "uint64"
549
+ }
550
+ ],
551
+ "name": "RedemptionRequested",
552
+ "type": "event"
553
+ },
554
+ {
555
+ "anonymous": false,
556
+ "inputs": [
557
+ {
558
+ "indexed": true,
559
+ "internalType": "bytes20",
560
+ "name": "walletPubKeyHash",
561
+ "type": "bytes20"
562
+ },
563
+ {
564
+ "indexed": false,
565
+ "internalType": "bytes",
566
+ "name": "redeemerOutputScript",
567
+ "type": "bytes"
568
+ }
569
+ ],
570
+ "name": "RedemptionTimedOut",
571
+ "type": "event"
572
+ },
573
+ {
574
+ "anonymous": false,
575
+ "inputs": [
576
+ {
577
+ "indexed": true,
578
+ "internalType": "bytes20",
579
+ "name": "walletPubKeyHash",
580
+ "type": "bytes20"
581
+ },
582
+ {
583
+ "indexed": false,
584
+ "internalType": "bytes32",
585
+ "name": "redemptionTxHash",
586
+ "type": "bytes32"
587
+ }
588
+ ],
589
+ "name": "RedemptionsCompleted",
590
+ "type": "event"
591
+ },
592
+ {
593
+ "anonymous": false,
594
+ "inputs": [
595
+ {
596
+ "indexed": true,
597
+ "internalType": "address",
598
+ "name": "vault",
599
+ "type": "address"
600
+ },
601
+ {
602
+ "indexed": false,
603
+ "internalType": "bool",
604
+ "name": "isTrusted",
605
+ "type": "bool"
606
+ }
607
+ ],
608
+ "name": "VaultStatusUpdated",
609
+ "type": "event"
610
+ },
611
+ {
612
+ "anonymous": false,
613
+ "inputs": [
614
+ {
615
+ "indexed": true,
616
+ "internalType": "bytes32",
617
+ "name": "ecdsaWalletID",
618
+ "type": "bytes32"
619
+ },
620
+ {
621
+ "indexed": true,
622
+ "internalType": "bytes20",
623
+ "name": "walletPubKeyHash",
624
+ "type": "bytes20"
625
+ }
626
+ ],
627
+ "name": "WalletClosed",
628
+ "type": "event"
629
+ },
630
+ {
631
+ "anonymous": false,
632
+ "inputs": [
633
+ {
634
+ "indexed": true,
635
+ "internalType": "bytes32",
636
+ "name": "ecdsaWalletID",
637
+ "type": "bytes32"
638
+ },
639
+ {
640
+ "indexed": true,
641
+ "internalType": "bytes20",
642
+ "name": "walletPubKeyHash",
643
+ "type": "bytes20"
644
+ }
645
+ ],
646
+ "name": "WalletClosing",
647
+ "type": "event"
648
+ },
649
+ {
650
+ "anonymous": false,
651
+ "inputs": [
652
+ {
653
+ "indexed": true,
654
+ "internalType": "bytes32",
655
+ "name": "ecdsaWalletID",
656
+ "type": "bytes32"
657
+ },
658
+ {
659
+ "indexed": true,
660
+ "internalType": "bytes20",
661
+ "name": "walletPubKeyHash",
662
+ "type": "bytes20"
663
+ }
664
+ ],
665
+ "name": "WalletMovingFunds",
666
+ "type": "event"
667
+ },
668
+ {
669
+ "anonymous": false,
670
+ "inputs": [
671
+ {
672
+ "indexed": false,
673
+ "internalType": "uint32",
674
+ "name": "walletCreationPeriod",
675
+ "type": "uint32"
676
+ },
677
+ {
678
+ "indexed": false,
679
+ "internalType": "uint64",
680
+ "name": "walletCreationMinBtcBalance",
681
+ "type": "uint64"
682
+ },
683
+ {
684
+ "indexed": false,
685
+ "internalType": "uint64",
686
+ "name": "walletCreationMaxBtcBalance",
687
+ "type": "uint64"
688
+ },
689
+ {
690
+ "indexed": false,
691
+ "internalType": "uint64",
692
+ "name": "walletClosureMinBtcBalance",
693
+ "type": "uint64"
694
+ },
695
+ {
696
+ "indexed": false,
697
+ "internalType": "uint32",
698
+ "name": "walletMaxAge",
699
+ "type": "uint32"
700
+ },
701
+ {
702
+ "indexed": false,
703
+ "internalType": "uint64",
704
+ "name": "walletMaxBtcTransfer",
705
+ "type": "uint64"
706
+ },
707
+ {
708
+ "indexed": false,
709
+ "internalType": "uint32",
710
+ "name": "walletClosingPeriod",
711
+ "type": "uint32"
712
+ }
713
+ ],
714
+ "name": "WalletParametersUpdated",
715
+ "type": "event"
716
+ },
717
+ {
718
+ "anonymous": false,
719
+ "inputs": [
720
+ {
721
+ "indexed": true,
722
+ "internalType": "bytes32",
723
+ "name": "ecdsaWalletID",
724
+ "type": "bytes32"
725
+ },
726
+ {
727
+ "indexed": true,
728
+ "internalType": "bytes20",
729
+ "name": "walletPubKeyHash",
730
+ "type": "bytes20"
731
+ }
732
+ ],
733
+ "name": "WalletTerminated",
734
+ "type": "event"
735
+ },
736
+ {
737
+ "inputs": [
738
+ {
739
+ "internalType": "bytes32",
740
+ "name": "ecdsaWalletID",
741
+ "type": "bytes32"
742
+ },
743
+ {
744
+ "internalType": "bytes32",
745
+ "name": "publicKeyX",
746
+ "type": "bytes32"
747
+ },
748
+ {
749
+ "internalType": "bytes32",
750
+ "name": "publicKeyY",
751
+ "type": "bytes32"
752
+ }
753
+ ],
754
+ "name": "__ecdsaWalletCreatedCallback",
755
+ "outputs": [],
756
+ "stateMutability": "nonpayable",
757
+ "type": "function"
758
+ },
759
+ {
760
+ "inputs": [
761
+ {
762
+ "internalType": "bytes32",
763
+ "name": "",
764
+ "type": "bytes32"
765
+ },
766
+ {
767
+ "internalType": "bytes32",
768
+ "name": "publicKeyX",
769
+ "type": "bytes32"
770
+ },
771
+ {
772
+ "internalType": "bytes32",
773
+ "name": "publicKeyY",
774
+ "type": "bytes32"
775
+ }
776
+ ],
777
+ "name": "__ecdsaWalletHeartbeatFailedCallback",
778
+ "outputs": [],
779
+ "stateMutability": "nonpayable",
780
+ "type": "function"
781
+ },
782
+ {
783
+ "inputs": [],
784
+ "name": "activeWalletPubKeyHash",
785
+ "outputs": [
786
+ {
787
+ "internalType": "bytes20",
788
+ "name": "",
789
+ "type": "bytes20"
790
+ }
791
+ ],
792
+ "stateMutability": "view",
793
+ "type": "function"
794
+ },
795
+ {
796
+ "inputs": [],
797
+ "name": "contractReferences",
798
+ "outputs": [
799
+ {
800
+ "internalType": "contract Bank",
801
+ "name": "bank",
802
+ "type": "address"
803
+ },
804
+ {
805
+ "internalType": "contract IRelay",
806
+ "name": "relay",
807
+ "type": "address"
808
+ },
809
+ {
810
+ "internalType": "contract IWalletRegistry",
811
+ "name": "ecdsaWalletRegistry",
812
+ "type": "address"
813
+ }
814
+ ],
815
+ "stateMutability": "view",
816
+ "type": "function"
817
+ },
818
+ {
819
+ "inputs": [
820
+ {
821
+ "internalType": "bytes",
822
+ "name": "walletPublicKey",
823
+ "type": "bytes"
824
+ },
825
+ {
826
+ "internalType": "bytes",
827
+ "name": "preimage",
828
+ "type": "bytes"
829
+ },
830
+ {
831
+ "internalType": "bool",
832
+ "name": "witness",
833
+ "type": "bool"
834
+ }
835
+ ],
836
+ "name": "defeatFraudChallenge",
837
+ "outputs": [],
838
+ "stateMutability": "nonpayable",
839
+ "type": "function"
840
+ },
841
+ {
842
+ "inputs": [
843
+ {
844
+ "internalType": "bytes",
845
+ "name": "walletPublicKey",
846
+ "type": "bytes"
847
+ },
848
+ {
849
+ "internalType": "bytes",
850
+ "name": "heartbeatMessage",
851
+ "type": "bytes"
852
+ }
853
+ ],
854
+ "name": "defeatFraudChallengeWithHeartbeat",
855
+ "outputs": [],
856
+ "stateMutability": "nonpayable",
857
+ "type": "function"
858
+ },
859
+ {
860
+ "inputs": [],
861
+ "name": "depositParameters",
862
+ "outputs": [
863
+ {
864
+ "internalType": "uint64",
865
+ "name": "depositDustThreshold",
866
+ "type": "uint64"
867
+ },
868
+ {
869
+ "internalType": "uint64",
870
+ "name": "depositTreasuryFeeDivisor",
871
+ "type": "uint64"
872
+ },
873
+ {
874
+ "internalType": "uint64",
875
+ "name": "depositTxMaxFee",
876
+ "type": "uint64"
877
+ }
878
+ ],
879
+ "stateMutability": "view",
880
+ "type": "function"
881
+ },
882
+ {
883
+ "inputs": [
884
+ {
885
+ "internalType": "uint256",
886
+ "name": "depositKey",
887
+ "type": "uint256"
888
+ }
889
+ ],
890
+ "name": "deposits",
891
+ "outputs": [
892
+ {
893
+ "components": [
894
+ {
895
+ "internalType": "address",
896
+ "name": "depositor",
897
+ "type": "address"
898
+ },
899
+ {
900
+ "internalType": "uint64",
901
+ "name": "amount",
902
+ "type": "uint64"
903
+ },
904
+ {
905
+ "internalType": "uint32",
906
+ "name": "revealedAt",
907
+ "type": "uint32"
908
+ },
909
+ {
910
+ "internalType": "address",
911
+ "name": "vault",
912
+ "type": "address"
913
+ },
914
+ {
915
+ "internalType": "uint64",
916
+ "name": "treasuryFee",
917
+ "type": "uint64"
918
+ },
919
+ {
920
+ "internalType": "uint32",
921
+ "name": "sweptAt",
922
+ "type": "uint32"
923
+ }
924
+ ],
925
+ "internalType": "struct Deposit.DepositRequest",
926
+ "name": "",
927
+ "type": "tuple"
928
+ }
929
+ ],
930
+ "stateMutability": "view",
931
+ "type": "function"
932
+ },
933
+ {
934
+ "inputs": [
935
+ {
936
+ "internalType": "uint256",
937
+ "name": "challengeKey",
938
+ "type": "uint256"
939
+ }
940
+ ],
941
+ "name": "fraudChallenges",
942
+ "outputs": [
943
+ {
944
+ "components": [
945
+ {
946
+ "internalType": "address",
947
+ "name": "challenger",
948
+ "type": "address"
949
+ },
950
+ {
951
+ "internalType": "uint256",
952
+ "name": "depositAmount",
953
+ "type": "uint256"
954
+ },
955
+ {
956
+ "internalType": "uint32",
957
+ "name": "reportedAt",
958
+ "type": "uint32"
959
+ },
960
+ {
961
+ "internalType": "bool",
962
+ "name": "resolved",
963
+ "type": "bool"
964
+ }
965
+ ],
966
+ "internalType": "struct Fraud.FraudChallenge",
967
+ "name": "",
968
+ "type": "tuple"
969
+ }
970
+ ],
971
+ "stateMutability": "view",
972
+ "type": "function"
973
+ },
974
+ {
975
+ "inputs": [],
976
+ "name": "fraudParameters",
977
+ "outputs": [
978
+ {
979
+ "internalType": "uint256",
980
+ "name": "fraudChallengeDepositAmount",
981
+ "type": "uint256"
982
+ },
983
+ {
984
+ "internalType": "uint256",
985
+ "name": "fraudChallengeDefeatTimeout",
986
+ "type": "uint256"
987
+ },
988
+ {
989
+ "internalType": "uint96",
990
+ "name": "fraudSlashingAmount",
991
+ "type": "uint96"
992
+ },
993
+ {
994
+ "internalType": "uint256",
995
+ "name": "fraudNotifierRewardMultiplier",
996
+ "type": "uint256"
997
+ }
998
+ ],
999
+ "stateMutability": "view",
1000
+ "type": "function"
1001
+ },
1002
+ {
1003
+ "inputs": [],
1004
+ "name": "governance",
1005
+ "outputs": [
1006
+ {
1007
+ "internalType": "address",
1008
+ "name": "",
1009
+ "type": "address"
1010
+ }
1011
+ ],
1012
+ "stateMutability": "view",
1013
+ "type": "function"
1014
+ },
1015
+ {
1016
+ "inputs": [
1017
+ {
1018
+ "internalType": "address",
1019
+ "name": "_bank",
1020
+ "type": "address"
1021
+ },
1022
+ {
1023
+ "internalType": "address",
1024
+ "name": "_relay",
1025
+ "type": "address"
1026
+ },
1027
+ {
1028
+ "internalType": "address",
1029
+ "name": "_treasury",
1030
+ "type": "address"
1031
+ },
1032
+ {
1033
+ "internalType": "address",
1034
+ "name": "_ecdsaWalletRegistry",
1035
+ "type": "address"
1036
+ },
1037
+ {
1038
+ "internalType": "uint256",
1039
+ "name": "_txProofDifficultyFactor",
1040
+ "type": "uint256"
1041
+ }
1042
+ ],
1043
+ "name": "initialize",
1044
+ "outputs": [],
1045
+ "stateMutability": "nonpayable",
1046
+ "type": "function"
1047
+ },
1048
+ {
1049
+ "inputs": [
1050
+ {
1051
+ "internalType": "address",
1052
+ "name": "vault",
1053
+ "type": "address"
1054
+ }
1055
+ ],
1056
+ "name": "isVaultTrusted",
1057
+ "outputs": [
1058
+ {
1059
+ "internalType": "bool",
1060
+ "name": "",
1061
+ "type": "bool"
1062
+ }
1063
+ ],
1064
+ "stateMutability": "view",
1065
+ "type": "function"
1066
+ },
1067
+ {
1068
+ "inputs": [],
1069
+ "name": "liveWalletsCount",
1070
+ "outputs": [
1071
+ {
1072
+ "internalType": "uint32",
1073
+ "name": "",
1074
+ "type": "uint32"
1075
+ }
1076
+ ],
1077
+ "stateMutability": "view",
1078
+ "type": "function"
1079
+ },
1080
+ {
1081
+ "inputs": [
1082
+ {
1083
+ "internalType": "uint256",
1084
+ "name": "requestKey",
1085
+ "type": "uint256"
1086
+ }
1087
+ ],
1088
+ "name": "movedFundsSweepRequests",
1089
+ "outputs": [
1090
+ {
1091
+ "components": [
1092
+ {
1093
+ "internalType": "bytes20",
1094
+ "name": "walletPubKeyHash",
1095
+ "type": "bytes20"
1096
+ },
1097
+ {
1098
+ "internalType": "uint64",
1099
+ "name": "value",
1100
+ "type": "uint64"
1101
+ },
1102
+ {
1103
+ "internalType": "uint32",
1104
+ "name": "createdAt",
1105
+ "type": "uint32"
1106
+ },
1107
+ {
1108
+ "internalType": "enum MovingFunds.MovedFundsSweepRequestState",
1109
+ "name": "state",
1110
+ "type": "uint8"
1111
+ }
1112
+ ],
1113
+ "internalType": "struct MovingFunds.MovedFundsSweepRequest",
1114
+ "name": "",
1115
+ "type": "tuple"
1116
+ }
1117
+ ],
1118
+ "stateMutability": "view",
1119
+ "type": "function"
1120
+ },
1121
+ {
1122
+ "inputs": [],
1123
+ "name": "movingFundsParameters",
1124
+ "outputs": [
1125
+ {
1126
+ "internalType": "uint64",
1127
+ "name": "movingFundsTxMaxTotalFee",
1128
+ "type": "uint64"
1129
+ },
1130
+ {
1131
+ "internalType": "uint64",
1132
+ "name": "movingFundsDustThreshold",
1133
+ "type": "uint64"
1134
+ },
1135
+ {
1136
+ "internalType": "uint32",
1137
+ "name": "movingFundsTimeoutResetDelay",
1138
+ "type": "uint32"
1139
+ },
1140
+ {
1141
+ "internalType": "uint32",
1142
+ "name": "movingFundsTimeout",
1143
+ "type": "uint32"
1144
+ },
1145
+ {
1146
+ "internalType": "uint96",
1147
+ "name": "movingFundsTimeoutSlashingAmount",
1148
+ "type": "uint96"
1149
+ },
1150
+ {
1151
+ "internalType": "uint256",
1152
+ "name": "movingFundsTimeoutNotifierRewardMultiplier",
1153
+ "type": "uint256"
1154
+ },
1155
+ {
1156
+ "internalType": "uint64",
1157
+ "name": "movedFundsSweepTxMaxTotalFee",
1158
+ "type": "uint64"
1159
+ },
1160
+ {
1161
+ "internalType": "uint32",
1162
+ "name": "movedFundsSweepTimeout",
1163
+ "type": "uint32"
1164
+ },
1165
+ {
1166
+ "internalType": "uint96",
1167
+ "name": "movedFundsSweepTimeoutSlashingAmount",
1168
+ "type": "uint96"
1169
+ },
1170
+ {
1171
+ "internalType": "uint256",
1172
+ "name": "movedFundsSweepTimeoutNotifierRewardMultiplier",
1173
+ "type": "uint256"
1174
+ }
1175
+ ],
1176
+ "stateMutability": "view",
1177
+ "type": "function"
1178
+ },
1179
+ {
1180
+ "inputs": [
1181
+ {
1182
+ "internalType": "bytes20",
1183
+ "name": "walletPubKeyHash",
1184
+ "type": "bytes20"
1185
+ },
1186
+ {
1187
+ "components": [
1188
+ {
1189
+ "internalType": "bytes32",
1190
+ "name": "txHash",
1191
+ "type": "bytes32"
1192
+ },
1193
+ {
1194
+ "internalType": "uint32",
1195
+ "name": "txOutputIndex",
1196
+ "type": "uint32"
1197
+ },
1198
+ {
1199
+ "internalType": "uint64",
1200
+ "name": "txOutputValue",
1201
+ "type": "uint64"
1202
+ }
1203
+ ],
1204
+ "internalType": "struct BitcoinTx.UTXO",
1205
+ "name": "walletMainUtxo",
1206
+ "type": "tuple"
1207
+ }
1208
+ ],
1209
+ "name": "notifyCloseableWallet",
1210
+ "outputs": [],
1211
+ "stateMutability": "nonpayable",
1212
+ "type": "function"
1213
+ },
1214
+ {
1215
+ "inputs": [
1216
+ {
1217
+ "internalType": "bytes",
1218
+ "name": "walletPublicKey",
1219
+ "type": "bytes"
1220
+ },
1221
+ {
1222
+ "internalType": "uint32[]",
1223
+ "name": "walletMembersIDs",
1224
+ "type": "uint32[]"
1225
+ },
1226
+ {
1227
+ "internalType": "bytes",
1228
+ "name": "preimageSha256",
1229
+ "type": "bytes"
1230
+ }
1231
+ ],
1232
+ "name": "notifyFraudChallengeDefeatTimeout",
1233
+ "outputs": [],
1234
+ "stateMutability": "nonpayable",
1235
+ "type": "function"
1236
+ },
1237
+ {
1238
+ "inputs": [
1239
+ {
1240
+ "internalType": "bytes32",
1241
+ "name": "movingFundsTxHash",
1242
+ "type": "bytes32"
1243
+ },
1244
+ {
1245
+ "internalType": "uint32",
1246
+ "name": "movingFundsTxOutputIndex",
1247
+ "type": "uint32"
1248
+ },
1249
+ {
1250
+ "internalType": "uint32[]",
1251
+ "name": "walletMembersIDs",
1252
+ "type": "uint32[]"
1253
+ }
1254
+ ],
1255
+ "name": "notifyMovedFundsSweepTimeout",
1256
+ "outputs": [],
1257
+ "stateMutability": "nonpayable",
1258
+ "type": "function"
1259
+ },
1260
+ {
1261
+ "inputs": [
1262
+ {
1263
+ "internalType": "bytes20",
1264
+ "name": "walletPubKeyHash",
1265
+ "type": "bytes20"
1266
+ },
1267
+ {
1268
+ "components": [
1269
+ {
1270
+ "internalType": "bytes32",
1271
+ "name": "txHash",
1272
+ "type": "bytes32"
1273
+ },
1274
+ {
1275
+ "internalType": "uint32",
1276
+ "name": "txOutputIndex",
1277
+ "type": "uint32"
1278
+ },
1279
+ {
1280
+ "internalType": "uint64",
1281
+ "name": "txOutputValue",
1282
+ "type": "uint64"
1283
+ }
1284
+ ],
1285
+ "internalType": "struct BitcoinTx.UTXO",
1286
+ "name": "mainUtxo",
1287
+ "type": "tuple"
1288
+ }
1289
+ ],
1290
+ "name": "notifyMovingFundsBelowDust",
1291
+ "outputs": [],
1292
+ "stateMutability": "nonpayable",
1293
+ "type": "function"
1294
+ },
1295
+ {
1296
+ "inputs": [
1297
+ {
1298
+ "internalType": "bytes20",
1299
+ "name": "walletPubKeyHash",
1300
+ "type": "bytes20"
1301
+ },
1302
+ {
1303
+ "internalType": "uint32[]",
1304
+ "name": "walletMembersIDs",
1305
+ "type": "uint32[]"
1306
+ }
1307
+ ],
1308
+ "name": "notifyMovingFundsTimeout",
1309
+ "outputs": [],
1310
+ "stateMutability": "nonpayable",
1311
+ "type": "function"
1312
+ },
1313
+ {
1314
+ "inputs": [
1315
+ {
1316
+ "internalType": "bytes20",
1317
+ "name": "walletPubKeyHash",
1318
+ "type": "bytes20"
1319
+ },
1320
+ {
1321
+ "internalType": "uint32[]",
1322
+ "name": "walletMembersIDs",
1323
+ "type": "uint32[]"
1324
+ },
1325
+ {
1326
+ "internalType": "bytes",
1327
+ "name": "redeemerOutputScript",
1328
+ "type": "bytes"
1329
+ }
1330
+ ],
1331
+ "name": "notifyRedemptionTimeout",
1332
+ "outputs": [],
1333
+ "stateMutability": "nonpayable",
1334
+ "type": "function"
1335
+ },
1336
+ {
1337
+ "inputs": [
1338
+ {
1339
+ "internalType": "bytes20",
1340
+ "name": "walletPubKeyHash",
1341
+ "type": "bytes20"
1342
+ }
1343
+ ],
1344
+ "name": "notifyWalletClosingPeriodElapsed",
1345
+ "outputs": [],
1346
+ "stateMutability": "nonpayable",
1347
+ "type": "function"
1348
+ },
1349
+ {
1350
+ "inputs": [
1351
+ {
1352
+ "internalType": "uint256",
1353
+ "name": "redemptionKey",
1354
+ "type": "uint256"
1355
+ }
1356
+ ],
1357
+ "name": "pendingRedemptions",
1358
+ "outputs": [
1359
+ {
1360
+ "components": [
1361
+ {
1362
+ "internalType": "address",
1363
+ "name": "redeemer",
1364
+ "type": "address"
1365
+ },
1366
+ {
1367
+ "internalType": "uint64",
1368
+ "name": "requestedAmount",
1369
+ "type": "uint64"
1370
+ },
1371
+ {
1372
+ "internalType": "uint64",
1373
+ "name": "treasuryFee",
1374
+ "type": "uint64"
1375
+ },
1376
+ {
1377
+ "internalType": "uint64",
1378
+ "name": "txMaxFee",
1379
+ "type": "uint64"
1380
+ },
1381
+ {
1382
+ "internalType": "uint32",
1383
+ "name": "requestedAt",
1384
+ "type": "uint32"
1385
+ }
1386
+ ],
1387
+ "internalType": "struct Redemption.RedemptionRequest",
1388
+ "name": "",
1389
+ "type": "tuple"
1390
+ }
1391
+ ],
1392
+ "stateMutability": "view",
1393
+ "type": "function"
1394
+ },
1395
+ {
1396
+ "inputs": [],
1397
+ "name": "redemptionParameters",
1398
+ "outputs": [
1399
+ {
1400
+ "internalType": "uint64",
1401
+ "name": "redemptionDustThreshold",
1402
+ "type": "uint64"
1403
+ },
1404
+ {
1405
+ "internalType": "uint64",
1406
+ "name": "redemptionTreasuryFeeDivisor",
1407
+ "type": "uint64"
1408
+ },
1409
+ {
1410
+ "internalType": "uint64",
1411
+ "name": "redemptionTxMaxFee",
1412
+ "type": "uint64"
1413
+ },
1414
+ {
1415
+ "internalType": "uint256",
1416
+ "name": "redemptionTimeout",
1417
+ "type": "uint256"
1418
+ },
1419
+ {
1420
+ "internalType": "uint96",
1421
+ "name": "redemptionTimeoutSlashingAmount",
1422
+ "type": "uint96"
1423
+ },
1424
+ {
1425
+ "internalType": "uint256",
1426
+ "name": "redemptionTimeoutNotifierRewardMultiplier",
1427
+ "type": "uint256"
1428
+ }
1429
+ ],
1430
+ "stateMutability": "view",
1431
+ "type": "function"
1432
+ },
1433
+ {
1434
+ "inputs": [
1435
+ {
1436
+ "components": [
1437
+ {
1438
+ "internalType": "bytes32",
1439
+ "name": "txHash",
1440
+ "type": "bytes32"
1441
+ },
1442
+ {
1443
+ "internalType": "uint32",
1444
+ "name": "txOutputIndex",
1445
+ "type": "uint32"
1446
+ },
1447
+ {
1448
+ "internalType": "uint64",
1449
+ "name": "txOutputValue",
1450
+ "type": "uint64"
1451
+ }
1452
+ ],
1453
+ "internalType": "struct BitcoinTx.UTXO",
1454
+ "name": "activeWalletMainUtxo",
1455
+ "type": "tuple"
1456
+ }
1457
+ ],
1458
+ "name": "requestNewWallet",
1459
+ "outputs": [],
1460
+ "stateMutability": "nonpayable",
1461
+ "type": "function"
1462
+ },
1463
+ {
1464
+ "inputs": [
1465
+ {
1466
+ "internalType": "bytes20",
1467
+ "name": "walletPubKeyHash",
1468
+ "type": "bytes20"
1469
+ },
1470
+ {
1471
+ "components": [
1472
+ {
1473
+ "internalType": "bytes32",
1474
+ "name": "txHash",
1475
+ "type": "bytes32"
1476
+ },
1477
+ {
1478
+ "internalType": "uint32",
1479
+ "name": "txOutputIndex",
1480
+ "type": "uint32"
1481
+ },
1482
+ {
1483
+ "internalType": "uint64",
1484
+ "name": "txOutputValue",
1485
+ "type": "uint64"
1486
+ }
1487
+ ],
1488
+ "internalType": "struct BitcoinTx.UTXO",
1489
+ "name": "mainUtxo",
1490
+ "type": "tuple"
1491
+ },
1492
+ {
1493
+ "internalType": "bytes",
1494
+ "name": "redeemerOutputScript",
1495
+ "type": "bytes"
1496
+ },
1497
+ {
1498
+ "internalType": "uint64",
1499
+ "name": "amount",
1500
+ "type": "uint64"
1501
+ }
1502
+ ],
1503
+ "name": "requestRedemption",
1504
+ "outputs": [],
1505
+ "stateMutability": "nonpayable",
1506
+ "type": "function"
1507
+ },
1508
+ {
1509
+ "inputs": [
1510
+ {
1511
+ "internalType": "bytes20",
1512
+ "name": "walletPubKeyHash",
1513
+ "type": "bytes20"
1514
+ }
1515
+ ],
1516
+ "name": "resetMovingFundsTimeout",
1517
+ "outputs": [],
1518
+ "stateMutability": "nonpayable",
1519
+ "type": "function"
1520
+ },
1521
+ {
1522
+ "inputs": [
1523
+ {
1524
+ "components": [
1525
+ {
1526
+ "internalType": "bytes4",
1527
+ "name": "version",
1528
+ "type": "bytes4"
1529
+ },
1530
+ {
1531
+ "internalType": "bytes",
1532
+ "name": "inputVector",
1533
+ "type": "bytes"
1534
+ },
1535
+ {
1536
+ "internalType": "bytes",
1537
+ "name": "outputVector",
1538
+ "type": "bytes"
1539
+ },
1540
+ {
1541
+ "internalType": "bytes4",
1542
+ "name": "locktime",
1543
+ "type": "bytes4"
1544
+ }
1545
+ ],
1546
+ "internalType": "struct BitcoinTx.Info",
1547
+ "name": "fundingTx",
1548
+ "type": "tuple"
1549
+ },
1550
+ {
1551
+ "components": [
1552
+ {
1553
+ "internalType": "uint32",
1554
+ "name": "fundingOutputIndex",
1555
+ "type": "uint32"
1556
+ },
1557
+ {
1558
+ "internalType": "address",
1559
+ "name": "depositor",
1560
+ "type": "address"
1561
+ },
1562
+ {
1563
+ "internalType": "bytes8",
1564
+ "name": "blindingFactor",
1565
+ "type": "bytes8"
1566
+ },
1567
+ {
1568
+ "internalType": "bytes20",
1569
+ "name": "walletPubKeyHash",
1570
+ "type": "bytes20"
1571
+ },
1572
+ {
1573
+ "internalType": "bytes20",
1574
+ "name": "refundPubKeyHash",
1575
+ "type": "bytes20"
1576
+ },
1577
+ {
1578
+ "internalType": "bytes4",
1579
+ "name": "refundLocktime",
1580
+ "type": "bytes4"
1581
+ },
1582
+ {
1583
+ "internalType": "address",
1584
+ "name": "vault",
1585
+ "type": "address"
1586
+ }
1587
+ ],
1588
+ "internalType": "struct Deposit.DepositRevealInfo",
1589
+ "name": "reveal",
1590
+ "type": "tuple"
1591
+ }
1592
+ ],
1593
+ "name": "revealDeposit",
1594
+ "outputs": [],
1595
+ "stateMutability": "nonpayable",
1596
+ "type": "function"
1597
+ },
1598
+ {
1599
+ "inputs": [
1600
+ {
1601
+ "internalType": "address",
1602
+ "name": "vault",
1603
+ "type": "address"
1604
+ },
1605
+ {
1606
+ "internalType": "bool",
1607
+ "name": "isTrusted",
1608
+ "type": "bool"
1609
+ }
1610
+ ],
1611
+ "name": "setVaultStatus",
1612
+ "outputs": [],
1613
+ "stateMutability": "nonpayable",
1614
+ "type": "function"
1615
+ },
1616
+ {
1617
+ "inputs": [
1618
+ {
1619
+ "internalType": "uint256",
1620
+ "name": "utxoKey",
1621
+ "type": "uint256"
1622
+ }
1623
+ ],
1624
+ "name": "spentMainUTXOs",
1625
+ "outputs": [
1626
+ {
1627
+ "internalType": "bool",
1628
+ "name": "",
1629
+ "type": "bool"
1630
+ }
1631
+ ],
1632
+ "stateMutability": "view",
1633
+ "type": "function"
1634
+ },
1635
+ {
1636
+ "inputs": [
1637
+ {
1638
+ "components": [
1639
+ {
1640
+ "internalType": "bytes4",
1641
+ "name": "version",
1642
+ "type": "bytes4"
1643
+ },
1644
+ {
1645
+ "internalType": "bytes",
1646
+ "name": "inputVector",
1647
+ "type": "bytes"
1648
+ },
1649
+ {
1650
+ "internalType": "bytes",
1651
+ "name": "outputVector",
1652
+ "type": "bytes"
1653
+ },
1654
+ {
1655
+ "internalType": "bytes4",
1656
+ "name": "locktime",
1657
+ "type": "bytes4"
1658
+ }
1659
+ ],
1660
+ "internalType": "struct BitcoinTx.Info",
1661
+ "name": "sweepTx",
1662
+ "type": "tuple"
1663
+ },
1664
+ {
1665
+ "components": [
1666
+ {
1667
+ "internalType": "bytes",
1668
+ "name": "merkleProof",
1669
+ "type": "bytes"
1670
+ },
1671
+ {
1672
+ "internalType": "uint256",
1673
+ "name": "txIndexInBlock",
1674
+ "type": "uint256"
1675
+ },
1676
+ {
1677
+ "internalType": "bytes",
1678
+ "name": "bitcoinHeaders",
1679
+ "type": "bytes"
1680
+ }
1681
+ ],
1682
+ "internalType": "struct BitcoinTx.Proof",
1683
+ "name": "sweepProof",
1684
+ "type": "tuple"
1685
+ },
1686
+ {
1687
+ "components": [
1688
+ {
1689
+ "internalType": "bytes32",
1690
+ "name": "txHash",
1691
+ "type": "bytes32"
1692
+ },
1693
+ {
1694
+ "internalType": "uint32",
1695
+ "name": "txOutputIndex",
1696
+ "type": "uint32"
1697
+ },
1698
+ {
1699
+ "internalType": "uint64",
1700
+ "name": "txOutputValue",
1701
+ "type": "uint64"
1702
+ }
1703
+ ],
1704
+ "internalType": "struct BitcoinTx.UTXO",
1705
+ "name": "mainUtxo",
1706
+ "type": "tuple"
1707
+ },
1708
+ {
1709
+ "internalType": "address",
1710
+ "name": "vault",
1711
+ "type": "address"
1712
+ }
1713
+ ],
1714
+ "name": "submitDepositSweepProof",
1715
+ "outputs": [],
1716
+ "stateMutability": "nonpayable",
1717
+ "type": "function"
1718
+ },
1719
+ {
1720
+ "inputs": [
1721
+ {
1722
+ "internalType": "bytes",
1723
+ "name": "walletPublicKey",
1724
+ "type": "bytes"
1725
+ },
1726
+ {
1727
+ "internalType": "bytes",
1728
+ "name": "preimageSha256",
1729
+ "type": "bytes"
1730
+ },
1731
+ {
1732
+ "components": [
1733
+ {
1734
+ "internalType": "bytes32",
1735
+ "name": "r",
1736
+ "type": "bytes32"
1737
+ },
1738
+ {
1739
+ "internalType": "bytes32",
1740
+ "name": "s",
1741
+ "type": "bytes32"
1742
+ },
1743
+ {
1744
+ "internalType": "uint8",
1745
+ "name": "v",
1746
+ "type": "uint8"
1747
+ }
1748
+ ],
1749
+ "internalType": "struct BitcoinTx.RSVSignature",
1750
+ "name": "signature",
1751
+ "type": "tuple"
1752
+ }
1753
+ ],
1754
+ "name": "submitFraudChallenge",
1755
+ "outputs": [],
1756
+ "stateMutability": "payable",
1757
+ "type": "function"
1758
+ },
1759
+ {
1760
+ "inputs": [
1761
+ {
1762
+ "components": [
1763
+ {
1764
+ "internalType": "bytes4",
1765
+ "name": "version",
1766
+ "type": "bytes4"
1767
+ },
1768
+ {
1769
+ "internalType": "bytes",
1770
+ "name": "inputVector",
1771
+ "type": "bytes"
1772
+ },
1773
+ {
1774
+ "internalType": "bytes",
1775
+ "name": "outputVector",
1776
+ "type": "bytes"
1777
+ },
1778
+ {
1779
+ "internalType": "bytes4",
1780
+ "name": "locktime",
1781
+ "type": "bytes4"
1782
+ }
1783
+ ],
1784
+ "internalType": "struct BitcoinTx.Info",
1785
+ "name": "sweepTx",
1786
+ "type": "tuple"
1787
+ },
1788
+ {
1789
+ "components": [
1790
+ {
1791
+ "internalType": "bytes",
1792
+ "name": "merkleProof",
1793
+ "type": "bytes"
1794
+ },
1795
+ {
1796
+ "internalType": "uint256",
1797
+ "name": "txIndexInBlock",
1798
+ "type": "uint256"
1799
+ },
1800
+ {
1801
+ "internalType": "bytes",
1802
+ "name": "bitcoinHeaders",
1803
+ "type": "bytes"
1804
+ }
1805
+ ],
1806
+ "internalType": "struct BitcoinTx.Proof",
1807
+ "name": "sweepProof",
1808
+ "type": "tuple"
1809
+ },
1810
+ {
1811
+ "components": [
1812
+ {
1813
+ "internalType": "bytes32",
1814
+ "name": "txHash",
1815
+ "type": "bytes32"
1816
+ },
1817
+ {
1818
+ "internalType": "uint32",
1819
+ "name": "txOutputIndex",
1820
+ "type": "uint32"
1821
+ },
1822
+ {
1823
+ "internalType": "uint64",
1824
+ "name": "txOutputValue",
1825
+ "type": "uint64"
1826
+ }
1827
+ ],
1828
+ "internalType": "struct BitcoinTx.UTXO",
1829
+ "name": "mainUtxo",
1830
+ "type": "tuple"
1831
+ }
1832
+ ],
1833
+ "name": "submitMovedFundsSweepProof",
1834
+ "outputs": [],
1835
+ "stateMutability": "nonpayable",
1836
+ "type": "function"
1837
+ },
1838
+ {
1839
+ "inputs": [
1840
+ {
1841
+ "internalType": "bytes20",
1842
+ "name": "walletPubKeyHash",
1843
+ "type": "bytes20"
1844
+ },
1845
+ {
1846
+ "components": [
1847
+ {
1848
+ "internalType": "bytes32",
1849
+ "name": "txHash",
1850
+ "type": "bytes32"
1851
+ },
1852
+ {
1853
+ "internalType": "uint32",
1854
+ "name": "txOutputIndex",
1855
+ "type": "uint32"
1856
+ },
1857
+ {
1858
+ "internalType": "uint64",
1859
+ "name": "txOutputValue",
1860
+ "type": "uint64"
1861
+ }
1862
+ ],
1863
+ "internalType": "struct BitcoinTx.UTXO",
1864
+ "name": "walletMainUtxo",
1865
+ "type": "tuple"
1866
+ },
1867
+ {
1868
+ "internalType": "uint32[]",
1869
+ "name": "walletMembersIDs",
1870
+ "type": "uint32[]"
1871
+ },
1872
+ {
1873
+ "internalType": "uint256",
1874
+ "name": "walletMemberIndex",
1875
+ "type": "uint256"
1876
+ },
1877
+ {
1878
+ "internalType": "bytes20[]",
1879
+ "name": "targetWallets",
1880
+ "type": "bytes20[]"
1881
+ }
1882
+ ],
1883
+ "name": "submitMovingFundsCommitment",
1884
+ "outputs": [],
1885
+ "stateMutability": "nonpayable",
1886
+ "type": "function"
1887
+ },
1888
+ {
1889
+ "inputs": [
1890
+ {
1891
+ "components": [
1892
+ {
1893
+ "internalType": "bytes4",
1894
+ "name": "version",
1895
+ "type": "bytes4"
1896
+ },
1897
+ {
1898
+ "internalType": "bytes",
1899
+ "name": "inputVector",
1900
+ "type": "bytes"
1901
+ },
1902
+ {
1903
+ "internalType": "bytes",
1904
+ "name": "outputVector",
1905
+ "type": "bytes"
1906
+ },
1907
+ {
1908
+ "internalType": "bytes4",
1909
+ "name": "locktime",
1910
+ "type": "bytes4"
1911
+ }
1912
+ ],
1913
+ "internalType": "struct BitcoinTx.Info",
1914
+ "name": "movingFundsTx",
1915
+ "type": "tuple"
1916
+ },
1917
+ {
1918
+ "components": [
1919
+ {
1920
+ "internalType": "bytes",
1921
+ "name": "merkleProof",
1922
+ "type": "bytes"
1923
+ },
1924
+ {
1925
+ "internalType": "uint256",
1926
+ "name": "txIndexInBlock",
1927
+ "type": "uint256"
1928
+ },
1929
+ {
1930
+ "internalType": "bytes",
1931
+ "name": "bitcoinHeaders",
1932
+ "type": "bytes"
1933
+ }
1934
+ ],
1935
+ "internalType": "struct BitcoinTx.Proof",
1936
+ "name": "movingFundsProof",
1937
+ "type": "tuple"
1938
+ },
1939
+ {
1940
+ "components": [
1941
+ {
1942
+ "internalType": "bytes32",
1943
+ "name": "txHash",
1944
+ "type": "bytes32"
1945
+ },
1946
+ {
1947
+ "internalType": "uint32",
1948
+ "name": "txOutputIndex",
1949
+ "type": "uint32"
1950
+ },
1951
+ {
1952
+ "internalType": "uint64",
1953
+ "name": "txOutputValue",
1954
+ "type": "uint64"
1955
+ }
1956
+ ],
1957
+ "internalType": "struct BitcoinTx.UTXO",
1958
+ "name": "mainUtxo",
1959
+ "type": "tuple"
1960
+ },
1961
+ {
1962
+ "internalType": "bytes20",
1963
+ "name": "walletPubKeyHash",
1964
+ "type": "bytes20"
1965
+ }
1966
+ ],
1967
+ "name": "submitMovingFundsProof",
1968
+ "outputs": [],
1969
+ "stateMutability": "nonpayable",
1970
+ "type": "function"
1971
+ },
1972
+ {
1973
+ "inputs": [
1974
+ {
1975
+ "components": [
1976
+ {
1977
+ "internalType": "bytes4",
1978
+ "name": "version",
1979
+ "type": "bytes4"
1980
+ },
1981
+ {
1982
+ "internalType": "bytes",
1983
+ "name": "inputVector",
1984
+ "type": "bytes"
1985
+ },
1986
+ {
1987
+ "internalType": "bytes",
1988
+ "name": "outputVector",
1989
+ "type": "bytes"
1990
+ },
1991
+ {
1992
+ "internalType": "bytes4",
1993
+ "name": "locktime",
1994
+ "type": "bytes4"
1995
+ }
1996
+ ],
1997
+ "internalType": "struct BitcoinTx.Info",
1998
+ "name": "redemptionTx",
1999
+ "type": "tuple"
2000
+ },
2001
+ {
2002
+ "components": [
2003
+ {
2004
+ "internalType": "bytes",
2005
+ "name": "merkleProof",
2006
+ "type": "bytes"
2007
+ },
2008
+ {
2009
+ "internalType": "uint256",
2010
+ "name": "txIndexInBlock",
2011
+ "type": "uint256"
2012
+ },
2013
+ {
2014
+ "internalType": "bytes",
2015
+ "name": "bitcoinHeaders",
2016
+ "type": "bytes"
2017
+ }
2018
+ ],
2019
+ "internalType": "struct BitcoinTx.Proof",
2020
+ "name": "redemptionProof",
2021
+ "type": "tuple"
2022
+ },
2023
+ {
2024
+ "components": [
2025
+ {
2026
+ "internalType": "bytes32",
2027
+ "name": "txHash",
2028
+ "type": "bytes32"
2029
+ },
2030
+ {
2031
+ "internalType": "uint32",
2032
+ "name": "txOutputIndex",
2033
+ "type": "uint32"
2034
+ },
2035
+ {
2036
+ "internalType": "uint64",
2037
+ "name": "txOutputValue",
2038
+ "type": "uint64"
2039
+ }
2040
+ ],
2041
+ "internalType": "struct BitcoinTx.UTXO",
2042
+ "name": "mainUtxo",
2043
+ "type": "tuple"
2044
+ },
2045
+ {
2046
+ "internalType": "bytes20",
2047
+ "name": "walletPubKeyHash",
2048
+ "type": "bytes20"
2049
+ }
2050
+ ],
2051
+ "name": "submitRedemptionProof",
2052
+ "outputs": [],
2053
+ "stateMutability": "nonpayable",
2054
+ "type": "function"
2055
+ },
2056
+ {
2057
+ "inputs": [
2058
+ {
2059
+ "internalType": "uint256",
2060
+ "name": "redemptionKey",
2061
+ "type": "uint256"
2062
+ }
2063
+ ],
2064
+ "name": "timedOutRedemptions",
2065
+ "outputs": [
2066
+ {
2067
+ "components": [
2068
+ {
2069
+ "internalType": "address",
2070
+ "name": "redeemer",
2071
+ "type": "address"
2072
+ },
2073
+ {
2074
+ "internalType": "uint64",
2075
+ "name": "requestedAmount",
2076
+ "type": "uint64"
2077
+ },
2078
+ {
2079
+ "internalType": "uint64",
2080
+ "name": "treasuryFee",
2081
+ "type": "uint64"
2082
+ },
2083
+ {
2084
+ "internalType": "uint64",
2085
+ "name": "txMaxFee",
2086
+ "type": "uint64"
2087
+ },
2088
+ {
2089
+ "internalType": "uint32",
2090
+ "name": "requestedAt",
2091
+ "type": "uint32"
2092
+ }
2093
+ ],
2094
+ "internalType": "struct Redemption.RedemptionRequest",
2095
+ "name": "",
2096
+ "type": "tuple"
2097
+ }
2098
+ ],
2099
+ "stateMutability": "view",
2100
+ "type": "function"
2101
+ },
2102
+ {
2103
+ "inputs": [
2104
+ {
2105
+ "internalType": "address",
2106
+ "name": "newGovernance",
2107
+ "type": "address"
2108
+ }
2109
+ ],
2110
+ "name": "transferGovernance",
2111
+ "outputs": [],
2112
+ "stateMutability": "nonpayable",
2113
+ "type": "function"
2114
+ },
2115
+ {
2116
+ "inputs": [],
2117
+ "name": "treasury",
2118
+ "outputs": [
2119
+ {
2120
+ "internalType": "address",
2121
+ "name": "",
2122
+ "type": "address"
2123
+ }
2124
+ ],
2125
+ "stateMutability": "view",
2126
+ "type": "function"
2127
+ },
2128
+ {
2129
+ "inputs": [],
2130
+ "name": "txProofDifficultyFactor",
2131
+ "outputs": [
2132
+ {
2133
+ "internalType": "uint256",
2134
+ "name": "",
2135
+ "type": "uint256"
2136
+ }
2137
+ ],
2138
+ "stateMutability": "view",
2139
+ "type": "function"
2140
+ },
2141
+ {
2142
+ "inputs": [
2143
+ {
2144
+ "internalType": "uint64",
2145
+ "name": "depositDustThreshold",
2146
+ "type": "uint64"
2147
+ },
2148
+ {
2149
+ "internalType": "uint64",
2150
+ "name": "depositTreasuryFeeDivisor",
2151
+ "type": "uint64"
2152
+ },
2153
+ {
2154
+ "internalType": "uint64",
2155
+ "name": "depositTxMaxFee",
2156
+ "type": "uint64"
2157
+ }
2158
+ ],
2159
+ "name": "updateDepositParameters",
2160
+ "outputs": [],
2161
+ "stateMutability": "nonpayable",
2162
+ "type": "function"
2163
+ },
2164
+ {
2165
+ "inputs": [
2166
+ {
2167
+ "internalType": "uint256",
2168
+ "name": "fraudChallengeDepositAmount",
2169
+ "type": "uint256"
2170
+ },
2171
+ {
2172
+ "internalType": "uint256",
2173
+ "name": "fraudChallengeDefeatTimeout",
2174
+ "type": "uint256"
2175
+ },
2176
+ {
2177
+ "internalType": "uint96",
2178
+ "name": "fraudSlashingAmount",
2179
+ "type": "uint96"
2180
+ },
2181
+ {
2182
+ "internalType": "uint256",
2183
+ "name": "fraudNotifierRewardMultiplier",
2184
+ "type": "uint256"
2185
+ }
2186
+ ],
2187
+ "name": "updateFraudParameters",
2188
+ "outputs": [],
2189
+ "stateMutability": "nonpayable",
2190
+ "type": "function"
2191
+ },
2192
+ {
2193
+ "inputs": [
2194
+ {
2195
+ "internalType": "uint64",
2196
+ "name": "movingFundsTxMaxTotalFee",
2197
+ "type": "uint64"
2198
+ },
2199
+ {
2200
+ "internalType": "uint64",
2201
+ "name": "movingFundsDustThreshold",
2202
+ "type": "uint64"
2203
+ },
2204
+ {
2205
+ "internalType": "uint32",
2206
+ "name": "movingFundsTimeoutResetDelay",
2207
+ "type": "uint32"
2208
+ },
2209
+ {
2210
+ "internalType": "uint32",
2211
+ "name": "movingFundsTimeout",
2212
+ "type": "uint32"
2213
+ },
2214
+ {
2215
+ "internalType": "uint96",
2216
+ "name": "movingFundsTimeoutSlashingAmount",
2217
+ "type": "uint96"
2218
+ },
2219
+ {
2220
+ "internalType": "uint256",
2221
+ "name": "movingFundsTimeoutNotifierRewardMultiplier",
2222
+ "type": "uint256"
2223
+ },
2224
+ {
2225
+ "internalType": "uint64",
2226
+ "name": "movedFundsSweepTxMaxTotalFee",
2227
+ "type": "uint64"
2228
+ },
2229
+ {
2230
+ "internalType": "uint32",
2231
+ "name": "movedFundsSweepTimeout",
2232
+ "type": "uint32"
2233
+ },
2234
+ {
2235
+ "internalType": "uint96",
2236
+ "name": "movedFundsSweepTimeoutSlashingAmount",
2237
+ "type": "uint96"
2238
+ },
2239
+ {
2240
+ "internalType": "uint256",
2241
+ "name": "movedFundsSweepTimeoutNotifierRewardMultiplier",
2242
+ "type": "uint256"
2243
+ }
2244
+ ],
2245
+ "name": "updateMovingFundsParameters",
2246
+ "outputs": [],
2247
+ "stateMutability": "nonpayable",
2248
+ "type": "function"
2249
+ },
2250
+ {
2251
+ "inputs": [
2252
+ {
2253
+ "internalType": "uint64",
2254
+ "name": "redemptionDustThreshold",
2255
+ "type": "uint64"
2256
+ },
2257
+ {
2258
+ "internalType": "uint64",
2259
+ "name": "redemptionTreasuryFeeDivisor",
2260
+ "type": "uint64"
2261
+ },
2262
+ {
2263
+ "internalType": "uint64",
2264
+ "name": "redemptionTxMaxFee",
2265
+ "type": "uint64"
2266
+ },
2267
+ {
2268
+ "internalType": "uint256",
2269
+ "name": "redemptionTimeout",
2270
+ "type": "uint256"
2271
+ },
2272
+ {
2273
+ "internalType": "uint96",
2274
+ "name": "redemptionTimeoutSlashingAmount",
2275
+ "type": "uint96"
2276
+ },
2277
+ {
2278
+ "internalType": "uint256",
2279
+ "name": "redemptionTimeoutNotifierRewardMultiplier",
301
2280
  "type": "uint256"
302
2281
  }
303
2282
  ],
304
- "name": "unswept",
2283
+ "name": "updateRedemptionParameters",
2284
+ "outputs": [],
2285
+ "stateMutability": "nonpayable",
2286
+ "type": "function"
2287
+ },
2288
+ {
2289
+ "inputs": [
2290
+ {
2291
+ "internalType": "uint32",
2292
+ "name": "walletCreationPeriod",
2293
+ "type": "uint32"
2294
+ },
2295
+ {
2296
+ "internalType": "uint64",
2297
+ "name": "walletCreationMinBtcBalance",
2298
+ "type": "uint64"
2299
+ },
2300
+ {
2301
+ "internalType": "uint64",
2302
+ "name": "walletCreationMaxBtcBalance",
2303
+ "type": "uint64"
2304
+ },
2305
+ {
2306
+ "internalType": "uint64",
2307
+ "name": "walletClosureMinBtcBalance",
2308
+ "type": "uint64"
2309
+ },
2310
+ {
2311
+ "internalType": "uint32",
2312
+ "name": "walletMaxAge",
2313
+ "type": "uint32"
2314
+ },
2315
+ {
2316
+ "internalType": "uint64",
2317
+ "name": "walletMaxBtcTransfer",
2318
+ "type": "uint64"
2319
+ },
2320
+ {
2321
+ "internalType": "uint32",
2322
+ "name": "walletClosingPeriod",
2323
+ "type": "uint32"
2324
+ }
2325
+ ],
2326
+ "name": "updateWalletParameters",
2327
+ "outputs": [],
2328
+ "stateMutability": "nonpayable",
2329
+ "type": "function"
2330
+ },
2331
+ {
2332
+ "inputs": [],
2333
+ "name": "walletParameters",
305
2334
  "outputs": [
306
2335
  {
307
- "internalType": "address",
308
- "name": "depositor",
309
- "type": "address"
2336
+ "internalType": "uint32",
2337
+ "name": "walletCreationPeriod",
2338
+ "type": "uint32"
310
2339
  },
311
2340
  {
312
- "internalType": "bytes8",
313
- "name": "amount",
314
- "type": "bytes8"
2341
+ "internalType": "uint64",
2342
+ "name": "walletCreationMinBtcBalance",
2343
+ "type": "uint64"
2344
+ },
2345
+ {
2346
+ "internalType": "uint64",
2347
+ "name": "walletCreationMaxBtcBalance",
2348
+ "type": "uint64"
2349
+ },
2350
+ {
2351
+ "internalType": "uint64",
2352
+ "name": "walletClosureMinBtcBalance",
2353
+ "type": "uint64"
315
2354
  },
316
2355
  {
317
2356
  "internalType": "uint32",
318
- "name": "revealedAt",
2357
+ "name": "walletMaxAge",
319
2358
  "type": "uint32"
320
2359
  },
321
2360
  {
322
- "internalType": "address",
323
- "name": "vault",
324
- "type": "address"
2361
+ "internalType": "uint64",
2362
+ "name": "walletMaxBtcTransfer",
2363
+ "type": "uint64"
2364
+ },
2365
+ {
2366
+ "internalType": "uint32",
2367
+ "name": "walletClosingPeriod",
2368
+ "type": "uint32"
2369
+ }
2370
+ ],
2371
+ "stateMutability": "view",
2372
+ "type": "function"
2373
+ },
2374
+ {
2375
+ "inputs": [
2376
+ {
2377
+ "internalType": "bytes20",
2378
+ "name": "walletPubKeyHash",
2379
+ "type": "bytes20"
2380
+ }
2381
+ ],
2382
+ "name": "wallets",
2383
+ "outputs": [
2384
+ {
2385
+ "components": [
2386
+ {
2387
+ "internalType": "bytes32",
2388
+ "name": "ecdsaWalletID",
2389
+ "type": "bytes32"
2390
+ },
2391
+ {
2392
+ "internalType": "bytes32",
2393
+ "name": "mainUtxoHash",
2394
+ "type": "bytes32"
2395
+ },
2396
+ {
2397
+ "internalType": "uint64",
2398
+ "name": "pendingRedemptionsValue",
2399
+ "type": "uint64"
2400
+ },
2401
+ {
2402
+ "internalType": "uint32",
2403
+ "name": "createdAt",
2404
+ "type": "uint32"
2405
+ },
2406
+ {
2407
+ "internalType": "uint32",
2408
+ "name": "movingFundsRequestedAt",
2409
+ "type": "uint32"
2410
+ },
2411
+ {
2412
+ "internalType": "uint32",
2413
+ "name": "closingStartedAt",
2414
+ "type": "uint32"
2415
+ },
2416
+ {
2417
+ "internalType": "uint32",
2418
+ "name": "pendingMovedFundsSweepRequestsCount",
2419
+ "type": "uint32"
2420
+ },
2421
+ {
2422
+ "internalType": "enum Wallets.WalletState",
2423
+ "name": "state",
2424
+ "type": "uint8"
2425
+ },
2426
+ {
2427
+ "internalType": "bytes32",
2428
+ "name": "movingFundsTargetWalletsCommitmentHash",
2429
+ "type": "bytes32"
2430
+ }
2431
+ ],
2432
+ "internalType": "struct Wallets.Wallet",
2433
+ "name": "",
2434
+ "type": "tuple"
325
2435
  }
326
2436
  ],
327
2437
  "stateMutability": "view",
328
2438
  "type": "function"
329
2439
  }
330
2440
  ],
331
- "bytecode": "0x60806040523480156200001157600080fd5b5062000032620000266200003860201b60201c565b6200004060201b60201c565b62000104565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6131a080620001146000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638d658d4e1161005b5780638d658d4e146101025780638da5cb5b1461011e578063e53c0b551461013c578063f2fde38b1461016c57610088565b806325750db71461008d57806343c6de29146100a957806360d712fc146100dc578063715018a6146100f8575b600080fd5b6100a760048036038101906100a29190611cae565b610188565b005b6100c360048036038101906100be9190611d03565b610772565b6040516100d3949392919061240e565b60405180910390f35b6100f660048036038101906100f19190611b23565b6107ff565b005b610100610924565b005b61011c60048036038101906101179190611c03565b6109ac565b005b6101266109b2565b60405161013391906123f3565b60405180910390f35b61015660048036038101906101519190611afa565b6109db565b6040516101639190612453565b60405180910390f35b61018660048036038101906101819190611afa565b6109fb565b005b600073ffffffffffffffffffffffffffffffffffffffff168160c00160208101906101b39190611afa565b73ffffffffffffffffffffffffffffffffffffffff1614806102305750600160008260c00160208101906101e79190611afa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61026f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102669061254c565b60405180910390fd5b60008160200160208101906102849190611afa565b8260400160208101906102979190611bda565b8360600160208101906102aa9190611b5f565b8460800160208101906102bd9190611b5f565b8560a00160208101906102d09190611bb1565b6040516020016102e49594939291906122b8565b6040516020818303038152906040529050600061037183600001602081019061030d9190611d2c565b60ff16858060400190610320919061264c565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610af390919063ffffffff16565b9050600061037e82610d33565b90506014815114156103e757610393836110d5565b805190602001208180519060200120146103e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d9906125ec565b60405180910390fd5b610484565b602081511415610448576103fa836111a2565b61040382611268565b14610443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043a9061256c565b60405180910390fd5b610483565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047a9061258c565b60405180910390fd5b5b60006104f886600001602081019061049c9190611bb1565b8780602001906104ac919061264c565b8980604001906104bc919061264c565b8b60600160208101906104cf9190611bb1565b6040516020016104e496959493929190612257565b6040516020818303038152906040526111a2565b9050600060026000838860000160208101906105149190611d2c565b60405160200161052592919061222b565b6040516020818303038152906040528051906020012060001c81526020019081526020016000209050600081600001601c9054906101000a900463ffffffff1663ffffffff16146105ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a2906125cc565b60405180910390fd5b600060208501519050808260000160146101000a81548167ffffffffffffffff021916908360c01c02179055508660200160208101906105eb9190611afa565b8260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504282600001601c6101000a81548163ffffffff021916908363ffffffff1602179055508660c00160208101906106639190611afa565b8260010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f293519c6fe266b8b9ca154d153e408c6ef03135a5abeb42e9a91781d620ca47b838860000160208101906106da9190611d2c565b8960200160208101906106ed9190611afa565b8a60400160208101906107009190611bda565b8b60600160208101906107139190611b5f565b8c60800160208101906107269190611b5f565b8d60a00160208101906107399190611bb1565b8e60c001602081019061074c9190611afa565b60405161076098979695949392919061246e565b60405180910390a15050505050505050565b60026020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460c01b9080600001601c9054906101000a900463ffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b61080761128b565b73ffffffffffffffffffffffffffffffffffffffff166108256109b2565b73ffffffffffffffffffffffffffffffffffffffff161461087b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610872906125ac565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f826040516109189190612453565b60405180910390a25050565b61092c61128b565b73ffffffffffffffffffffffffffffffffffffffff1661094a6109b2565b73ffffffffffffffffffffffffffffffffffffffff16146109a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610997906125ac565b60405180910390fd5b6109aa6000611293565b565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60016020528060005260406000206000915054906101000a900460ff1681565b610a0361128b565b73ffffffffffffffffffffffffffffffffffffffff16610a216109b2565b73ffffffffffffffffffffffffffffffffffffffff1614610a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6e906125ac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade906124ec565b60405180910390fd5b610af081611293565b50565b6060600080610b0185611357565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b639061250c565b60405180910390fd5b808410610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba59061260c565b60405180910390fd5b6060600080846001610bc0919061272b565b905060005b87811015610c7f57610bee82838b51610bde9190612983565b8b6114539092919063ffffffff16565b9350610bf984611519565b92507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831415610c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c559061252c565b60405180910390fd5b8282610c6a919061272b565b91508080610c7790612b51565b915050610bc5565b50610ca181828a51610c919190612983565b8a6114539092919063ffffffff16565b9250610cac83611519565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d089061252c565b60405180910390fd5b610d2681838a6114539092919063ffffffff16565b9550505050505092915050565b6060600082600881518110610d71577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c90508251600982610d909190612781565b60ff1614610db057604051806020016040528060008152509150506110d0565b600083600981518110610dec577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161415610edf5760028160ff161015610e2757604051806020016040528060008152509150506110d0565b600083600a81518110610e63577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff169050600282610e8391906129b7565b60ff1681141580610ea2575060208114158015610ea1575060148114155b5b15610ec05760405180602001604052806000815250925050506110d0565b610ed6600b82866114539092919063ffffffff16565b925050506110d0565b6000610ef860086003866115fd9092919063ffffffff16565b90507fe1683aec1a10d43657f3f2c82e683d8e19e8a3f320ce9d3bf22c6ca6ab4cbce6811415610ffc57601484600b81518110610f5e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16141580610fbe57507f3b50b2715f5a28d2a7eeb517f17ec797e8536bd425bf31fc4f6bf7ce1e34b77d610fbb60028651610fa99190612983565b6002876115fd9092919063ffffffff16565b14155b15610fdc5760405180602001604052806000815250925050506110d0565b610ff3600c6014866114539092919063ffffffff16565b925050506110d0565b7fa0916ee0b243ee20fb4ce56170744d86b54d7ae03a418a7a12156f40dedcf7d78114156110bb57608784600186516110359190612983565b8151811061106c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161461109b5760405180602001604052806000815250925050506110d0565b6110b2600b6014866114539092919063ffffffff16565b925050506110d0565b50604051806020016040528060008152509150505b919050565b606060036002836040516110e991906122a1565b602060405180830381855afa158015611106573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906111299190611b88565b6040516020016111399190612210565b60405160208183030381529060405260405161115591906122a1565b602060405180830381855afa158015611172573d6000803e3d6000fd5b5050506040515160601b60405160200161118c91906121f5565b6040516020818303038152906040529050919050565b6000600280836040516111b591906122a1565b602060405180830381855afa1580156111d2573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906111f59190611b88565b6040516020016112059190612210565b60405160208183030381529060405260405161122191906122a1565b602060405180830381855afa15801561123e573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906112619190611b88565b9050919050565b6000808251141561127e576000801b9050611286565b602082015190505b919050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060006113658461166f565b905060008160ff1614156113cd576000846000815181106113af577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c8060ff169050925092505061144e565b8060016113da9190612781565b60ff1684511015611412577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000925092505061144e565b600061143d61143861143360018560ff16896114539092919063ffffffff16565b61178f565b6118f6565b905081818160ff1691509350935050505b915091565b6060600082141561147557604051806020016040528060008152509050611512565b60008284611483919061272b565b90508381118015611495575080855110155b6114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb9061262c565b60405180910390fd5b604051915082604083010160405282825283850182038460208701018481015b8082101561150d578151838301526020820191506114f4565b505050505b9392505050565b600060098251101561154d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90506115f8565b600061157160088085516115619190612983565b856114539092919063ffffffff16565b905060008061157f83611357565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156115da577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff93505050506115f8565b808260096115e8919061272b565b6115f2919061272b565b93505050505b919050565b600080828461160c919061272b565b9050838111801561161e575080855110155b61165d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116549061262c565b60405180910390fd5b82846020870101209150509392505050565b600060ff826000815181106116ad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614156116cd576008905061178a565b60fe82600081518110611709577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161415611729576004905061178a565b60fd82600081518110611765577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161415611785576002905061178a565b600090505b919050565b60606000825167ffffffffffffffff8111156117d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156118065781602001600182028036833780820191505090505b50905060005b83518110156118ec5783818151811061184e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b8260018387516118699190612983565b6118739190612983565b815181106118aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806118e490612b51565b91505061180c565b5080915050919050565b60008060005b83518110156119aa57600181611912919061272b565b845161191e9190612983565b600861192a9190612929565b6002611936919061280b565b84828151811061196f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1661198a9190612929565b82611995919061272b565b915080806119a290612b51565b9150506118fc565b5080915050919050565b60006119c76119c2846126c8565b6126a3565b9050828152602081018484840111156119df57600080fd5b6119ea848285612ade565b509392505050565b600081359050611a01816130b2565b92915050565b600081359050611a16816130c9565b92915050565b600081359050611a2b816130e0565b92915050565b600081519050611a40816130f7565b92915050565b600081359050611a558161310e565b92915050565b600081359050611a6a81613125565b92915050565b600082601f830112611a8157600080fd5b8135611a918482602086016119b4565b91505092915050565b600060808284031215611aac57600080fd5b81905092915050565b600060e08284031215611ac757600080fd5b81905092915050565b600081359050611adf8161313c565b92915050565b600081359050611af481613153565b92915050565b600060208284031215611b0c57600080fd5b6000611b1a848285016119f2565b91505092915050565b60008060408385031215611b3657600080fd5b6000611b44858286016119f2565b9250506020611b5585828601611a07565b9150509250929050565b600060208284031215611b7157600080fd5b6000611b7f84828501611a1c565b91505092915050565b600060208284031215611b9a57600080fd5b6000611ba884828501611a31565b91505092915050565b600060208284031215611bc357600080fd5b6000611bd184828501611a46565b91505092915050565b600060208284031215611bec57600080fd5b6000611bfa84828501611a5b565b91505092915050565b60008060008060808587031215611c1957600080fd5b600085013567ffffffffffffffff811115611c3357600080fd5b611c3f87828801611a9a565b945050602085013567ffffffffffffffff811115611c5c57600080fd5b611c6887828801611a70565b9350506040611c7987828801611ad0565b925050606085013567ffffffffffffffff811115611c9657600080fd5b611ca287828801611a70565b91505092959194509250565b6000806101008385031215611cc257600080fd5b600083013567ffffffffffffffff811115611cdc57600080fd5b611ce885828601611a9a565b9250506020611cf985828601611ab5565b9150509250929050565b600060208284031215611d1557600080fd5b6000611d2384828501611ad0565b91505092915050565b600060208284031215611d3e57600080fd5b6000611d4c84828501611ae5565b91505092915050565b611d5e816129eb565b82525050565b611d75611d70826129eb565b612b9a565b82525050565b611d84816129fd565b82525050565b611d9381612a09565b82525050565b611daa611da582612a09565b612bac565b82525050565b611db981612a35565b82525050565b611dd0611dcb82612a35565b612bb6565b82525050565b611ddf81612a3f565b82525050565b611df6611df182612a3f565b612bc0565b82525050565b611e0581612a6b565b82525050565b611e1c611e1782612a6b565b612bca565b82525050565b6000611e2e8385612704565b9350611e3b838584612ade565b82840190509392505050565b6000611e52826126f9565b611e5c8185612704565b9350611e6c818560208601612aed565b80840191505092915050565b6000611e85600183612720565b9150611e9082612c8e565b600182019050919050565b6000611ea8600183612720565b9150611eb382612cb7565b600182019050919050565b6000611ecb60268361270f565b9150611ed682612ce0565b604082019050919050565b6000611eee600183612720565b9150611ef982612d2f565b600182019050919050565b6000611f11600183612720565b9150611f1c82612d58565b600182019050919050565b6000611f3460228361270f565b9150611f3f82612d81565b604082019050919050565b6000611f57601a8361270f565b9150611f6282612dd0565b602082019050919050565b6000611f7a600183612720565b9150611f8582612df9565b600182019050919050565b6000611f9d60148361270f565b9150611fa882612e22565b602082019050919050565b6000611fc0600183612720565b9150611fcb82612e4b565b600182019050919050565b6000611fe3600183612720565b9150611fee82612e74565b600182019050919050565b600061200660198361270f565b915061201182612e9d565b602082019050919050565b600061202960188361270f565b915061203482612ec6565b602082019050919050565b600061204c600183612720565b915061205782612eef565b600182019050919050565b600061206f60208361270f565b915061207a82612f18565b602082019050919050565b6000612092600183612720565b915061209d82612f41565b600182019050919050565b60006120b5600183612720565b91506120c082612f6a565b600182019050919050565b60006120d860188361270f565b91506120e382612f93565b602082019050919050565b60006120fb60198361270f565b915061210682612fbc565b602082019050919050565b600061211e600183612720565b915061212982612fe5565b600182019050919050565b600061214160118361270f565b915061214c8261300e565b602082019050919050565b600061216460138361270f565b915061216f82613037565b602082019050919050565b6000612187600183612720565b915061219282613060565b600182019050919050565b60006121aa600183612720565b91506121b582613089565b600182019050919050565b6121c981612ac1565b82525050565b6121d881612ad1565b82525050565b6121ef6121ea82612ad1565b612be6565b82525050565b60006122018284611d99565b60148201915081905092915050565b600061221c8284611dbf565b60208201915081905092915050565b60006122378285611dbf565b60208201915061224782846121de565b6001820191508190509392505050565b60006122638289611de5565b600482019150612274828789611e22565b9150612281828587611e22565b915061228d8284611de5565b600482019150819050979650505050505050565b60006122ad8284611e47565b915081905092915050565b60006122c382611f6d565b91506122cf8288611d64565b6014820191506122de82611f04565b91506122e982612111565b91506122f58287611e0b565b60088201915061230482611f04565b915061230f82612085565b915061231a82611fb3565b915061232582611f6d565b91506123318286611d99565b6014820191506123408261203f565b915061234b82611e78565b91506123568261219d565b915061236182611e9b565b915061236c82612085565b915061237782611fb3565b915061238282611f6d565b915061238e8285611d99565b60148201915061239d82611ee1565b91506123a88261217a565b91506123b48284611de5565b6004820191506123c382611fd6565b91506123ce82611f04565b91506123d98261219d565b91506123e4826120a8565b91508190509695505050505050565b60006020820190506124086000830184611d55565b92915050565b60006080820190506124236000830187611d55565b6124306020830186611dfc565b61243d60408301856121c0565b61244a6060830184611d55565b95945050505050565b60006020820190506124686000830184611d7b565b92915050565b600061010082019050612484600083018b611db0565b612491602083018a6121cf565b61249e6040830189611d55565b6124ab6060830188611dfc565b6124b86080830187611d8a565b6124c560a0830186611d8a565b6124d260c0830185611dd6565b6124df60e0830184611d55565b9998505050505050505050565b6000602082019050818103600083015261250581611ebe565b9050919050565b6000602082019050818103600083015261252581611f27565b9050919050565b6000602082019050818103600083015261254581611f4a565b9050919050565b6000602082019050818103600083015261256581611f90565b9050919050565b6000602082019050818103600083015261258581611ff9565b9050919050565b600060208201905081810360008301526125a58161201c565b9050919050565b600060208201905081810360008301526125c581612062565b9050919050565b600060208201905081810360008301526125e5816120cb565b9050919050565b60006020820190508181036000830152612605816120ee565b9050919050565b6000602082019050818103600083015261262581612134565b9050919050565b6000602082019050818103600083015261264581612157565b9050919050565b6000808335600160200384360303811261266557600080fd5b80840192508235915067ffffffffffffffff82111561268357600080fd5b60208301925060018202360383131561269b57600080fd5b509250929050565b60006126ad6126be565b90506126b98282612b20565b919050565b6000604051905090565b600067ffffffffffffffff8211156126e3576126e2612c27565b5b6126ec82612c56565b9050602081019050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061273682612ab7565b915061274183612ab7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561277657612775612bf8565b5b828201905092915050565b600061278c82612ad1565b915061279783612ad1565b92508260ff038211156127ad576127ac612bf8565b5b828201905092915050565b6000808291508390505b6001851115612802578086048111156127de576127dd612bf8565b5b60018516156127ed5780820291505b80810290506127fb85612c81565b94506127c2565b94509492505050565b600061281682612ab7565b915061282183612ab7565b925061284e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612856565b905092915050565b6000826128665760019050612922565b816128745760009050612922565b816001811461288a5760028114612894576128c3565b6001915050612922565b60ff8411156128a6576128a5612bf8565b5b8360020a9150848211156128bd576128bc612bf8565b5b50612922565b5060208310610133831016604e8410600b84101617156128f85782820a9050838111156128f3576128f2612bf8565b5b612922565b61290584848460016127b8565b9250905081840481111561291c5761291b612bf8565b5b81810290505b9392505050565b600061293482612ab7565b915061293f83612ab7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561297857612977612bf8565b5b828202905092915050565b600061298e82612ab7565b915061299983612ab7565b9250828210156129ac576129ab612bf8565b5b828203905092915050565b60006129c282612ad1565b91506129cd83612ad1565b9250828210156129e0576129df612bf8565b5b828203905092915050565b60006129f682612a97565b9050919050565b60008115159050919050565b60007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612b0b578082015181840152602081019050612af0565b83811115612b1a576000848401525b50505050565b612b2982612c56565b810181811067ffffffffffffffff82111715612b4857612b47612c27565b5b80604052505050565b6000612b5c82612ab7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b8f57612b8e612bf8565b5b600182019050919050565b6000612ba582612bd4565b9050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000612bdf82612c74565b9050919050565b6000612bf182612c67565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160601b9050919050565b60008160011c9050919050565b7f6300000000000000000000000000000000000000000000000000000000000000600082015250565b7f6700000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f8800000000000000000000000000000000000000000000000000000000000000600082015250565b7f7500000000000000000000000000000000000000000000000000000000000000600082015250565b7f52656164206f76657272756e20647572696e6720566172496e7420706172736960008201527f6e67000000000000000000000000000000000000000000000000000000000000602082015250565b7f42616420566172496e7420696e207363726970745075626b6579000000000000600082015250565b7f1400000000000000000000000000000000000000000000000000000000000000600082015250565b7f5661756c74206973206e6f742074727573746564000000000000000000000000600082015250565b7fa900000000000000000000000000000000000000000000000000000000000000600082015250565b7fb100000000000000000000000000000000000000000000000000000000000000600082015250565b7f57726f6e672033322d6279746520736372697074206861736800000000000000600082015250565b7f57726f6e67207363726970742068617368206c656e6774680000000000000000600082015250565b7f8700000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f7600000000000000000000000000000000000000000000000000000000000000600082015250565b7f6800000000000000000000000000000000000000000000000000000000000000600082015250565b7f4465706f73697420616c72656164792072657665616c65640000000000000000600082015250565b7f57726f6e672032302d6279746520736372697074206861736800000000000000600082015250565b7f0800000000000000000000000000000000000000000000000000000000000000600082015250565b7f566f75742072656164206f76657272756e000000000000000000000000000000600082015250565b7f536c696365206f7574206f6620626f756e647300000000000000000000000000600082015250565b7f0400000000000000000000000000000000000000000000000000000000000000600082015250565b7fac00000000000000000000000000000000000000000000000000000000000000600082015250565b6130bb816129eb565b81146130c657600080fd5b50565b6130d2816129fd565b81146130dd57600080fd5b50565b6130e981612a09565b81146130f457600080fd5b50565b61310081612a35565b811461310b57600080fd5b50565b61311781612a3f565b811461312257600080fd5b50565b61312e81612a6b565b811461313957600080fd5b50565b61314581612ab7565b811461315057600080fd5b50565b61315c81612ad1565b811461316757600080fd5b5056fea2646970667358221220295f3b4ea195fd7fba9f5296085182facf835e59f603d9d4791d500bcbfc014564736f6c63430008040033",
332
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80638d658d4e1161005b5780638d658d4e146101025780638da5cb5b1461011e578063e53c0b551461013c578063f2fde38b1461016c57610088565b806325750db71461008d57806343c6de29146100a957806360d712fc146100dc578063715018a6146100f8575b600080fd5b6100a760048036038101906100a29190611cae565b610188565b005b6100c360048036038101906100be9190611d03565b610772565b6040516100d3949392919061240e565b60405180910390f35b6100f660048036038101906100f19190611b23565b6107ff565b005b610100610924565b005b61011c60048036038101906101179190611c03565b6109ac565b005b6101266109b2565b60405161013391906123f3565b60405180910390f35b61015660048036038101906101519190611afa565b6109db565b6040516101639190612453565b60405180910390f35b61018660048036038101906101819190611afa565b6109fb565b005b600073ffffffffffffffffffffffffffffffffffffffff168160c00160208101906101b39190611afa565b73ffffffffffffffffffffffffffffffffffffffff1614806102305750600160008260c00160208101906101e79190611afa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61026f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102669061254c565b60405180910390fd5b60008160200160208101906102849190611afa565b8260400160208101906102979190611bda565b8360600160208101906102aa9190611b5f565b8460800160208101906102bd9190611b5f565b8560a00160208101906102d09190611bb1565b6040516020016102e49594939291906122b8565b6040516020818303038152906040529050600061037183600001602081019061030d9190611d2c565b60ff16858060400190610320919061264c565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610af390919063ffffffff16565b9050600061037e82610d33565b90506014815114156103e757610393836110d5565b805190602001208180519060200120146103e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d9906125ec565b60405180910390fd5b610484565b602081511415610448576103fa836111a2565b61040382611268565b14610443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043a9061256c565b60405180910390fd5b610483565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047a9061258c565b60405180910390fd5b5b60006104f886600001602081019061049c9190611bb1565b8780602001906104ac919061264c565b8980604001906104bc919061264c565b8b60600160208101906104cf9190611bb1565b6040516020016104e496959493929190612257565b6040516020818303038152906040526111a2565b9050600060026000838860000160208101906105149190611d2c565b60405160200161052592919061222b565b6040516020818303038152906040528051906020012060001c81526020019081526020016000209050600081600001601c9054906101000a900463ffffffff1663ffffffff16146105ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a2906125cc565b60405180910390fd5b600060208501519050808260000160146101000a81548167ffffffffffffffff021916908360c01c02179055508660200160208101906105eb9190611afa565b8260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504282600001601c6101000a81548163ffffffff021916908363ffffffff1602179055508660c00160208101906106639190611afa565b8260010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f293519c6fe266b8b9ca154d153e408c6ef03135a5abeb42e9a91781d620ca47b838860000160208101906106da9190611d2c565b8960200160208101906106ed9190611afa565b8a60400160208101906107009190611bda565b8b60600160208101906107139190611b5f565b8c60800160208101906107269190611b5f565b8d60a00160208101906107399190611bb1565b8e60c001602081019061074c9190611afa565b60405161076098979695949392919061246e565b60405180910390a15050505050505050565b60026020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460c01b9080600001601c9054906101000a900463ffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b61080761128b565b73ffffffffffffffffffffffffffffffffffffffff166108256109b2565b73ffffffffffffffffffffffffffffffffffffffff161461087b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610872906125ac565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f826040516109189190612453565b60405180910390a25050565b61092c61128b565b73ffffffffffffffffffffffffffffffffffffffff1661094a6109b2565b73ffffffffffffffffffffffffffffffffffffffff16146109a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610997906125ac565b60405180910390fd5b6109aa6000611293565b565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60016020528060005260406000206000915054906101000a900460ff1681565b610a0361128b565b73ffffffffffffffffffffffffffffffffffffffff16610a216109b2565b73ffffffffffffffffffffffffffffffffffffffff1614610a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6e906125ac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade906124ec565b60405180910390fd5b610af081611293565b50565b6060600080610b0185611357565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b639061250c565b60405180910390fd5b808410610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba59061260c565b60405180910390fd5b6060600080846001610bc0919061272b565b905060005b87811015610c7f57610bee82838b51610bde9190612983565b8b6114539092919063ffffffff16565b9350610bf984611519565b92507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831415610c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c559061252c565b60405180910390fd5b8282610c6a919061272b565b91508080610c7790612b51565b915050610bc5565b50610ca181828a51610c919190612983565b8a6114539092919063ffffffff16565b9250610cac83611519565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d089061252c565b60405180910390fd5b610d2681838a6114539092919063ffffffff16565b9550505050505092915050565b6060600082600881518110610d71577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c90508251600982610d909190612781565b60ff1614610db057604051806020016040528060008152509150506110d0565b600083600981518110610dec577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161415610edf5760028160ff161015610e2757604051806020016040528060008152509150506110d0565b600083600a81518110610e63577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff169050600282610e8391906129b7565b60ff1681141580610ea2575060208114158015610ea1575060148114155b5b15610ec05760405180602001604052806000815250925050506110d0565b610ed6600b82866114539092919063ffffffff16565b925050506110d0565b6000610ef860086003866115fd9092919063ffffffff16565b90507fe1683aec1a10d43657f3f2c82e683d8e19e8a3f320ce9d3bf22c6ca6ab4cbce6811415610ffc57601484600b81518110610f5e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16141580610fbe57507f3b50b2715f5a28d2a7eeb517f17ec797e8536bd425bf31fc4f6bf7ce1e34b77d610fbb60028651610fa99190612983565b6002876115fd9092919063ffffffff16565b14155b15610fdc5760405180602001604052806000815250925050506110d0565b610ff3600c6014866114539092919063ffffffff16565b925050506110d0565b7fa0916ee0b243ee20fb4ce56170744d86b54d7ae03a418a7a12156f40dedcf7d78114156110bb57608784600186516110359190612983565b8151811061106c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161461109b5760405180602001604052806000815250925050506110d0565b6110b2600b6014866114539092919063ffffffff16565b925050506110d0565b50604051806020016040528060008152509150505b919050565b606060036002836040516110e991906122a1565b602060405180830381855afa158015611106573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906111299190611b88565b6040516020016111399190612210565b60405160208183030381529060405260405161115591906122a1565b602060405180830381855afa158015611172573d6000803e3d6000fd5b5050506040515160601b60405160200161118c91906121f5565b6040516020818303038152906040529050919050565b6000600280836040516111b591906122a1565b602060405180830381855afa1580156111d2573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906111f59190611b88565b6040516020016112059190612210565b60405160208183030381529060405260405161122191906122a1565b602060405180830381855afa15801561123e573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906112619190611b88565b9050919050565b6000808251141561127e576000801b9050611286565b602082015190505b919050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060006113658461166f565b905060008160ff1614156113cd576000846000815181106113af577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c8060ff169050925092505061144e565b8060016113da9190612781565b60ff1684511015611412577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000925092505061144e565b600061143d61143861143360018560ff16896114539092919063ffffffff16565b61178f565b6118f6565b905081818160ff1691509350935050505b915091565b6060600082141561147557604051806020016040528060008152509050611512565b60008284611483919061272b565b90508381118015611495575080855110155b6114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb9061262c565b60405180910390fd5b604051915082604083010160405282825283850182038460208701018481015b8082101561150d578151838301526020820191506114f4565b505050505b9392505050565b600060098251101561154d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90506115f8565b600061157160088085516115619190612983565b856114539092919063ffffffff16565b905060008061157f83611357565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156115da577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff93505050506115f8565b808260096115e8919061272b565b6115f2919061272b565b93505050505b919050565b600080828461160c919061272b565b9050838111801561161e575080855110155b61165d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116549061262c565b60405180910390fd5b82846020870101209150509392505050565b600060ff826000815181106116ad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614156116cd576008905061178a565b60fe82600081518110611709577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161415611729576004905061178a565b60fd82600081518110611765577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161415611785576002905061178a565b600090505b919050565b60606000825167ffffffffffffffff8111156117d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156118065781602001600182028036833780820191505090505b50905060005b83518110156118ec5783818151811061184e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b8260018387516118699190612983565b6118739190612983565b815181106118aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806118e490612b51565b91505061180c565b5080915050919050565b60008060005b83518110156119aa57600181611912919061272b565b845161191e9190612983565b600861192a9190612929565b6002611936919061280b565b84828151811061196f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1661198a9190612929565b82611995919061272b565b915080806119a290612b51565b9150506118fc565b5080915050919050565b60006119c76119c2846126c8565b6126a3565b9050828152602081018484840111156119df57600080fd5b6119ea848285612ade565b509392505050565b600081359050611a01816130b2565b92915050565b600081359050611a16816130c9565b92915050565b600081359050611a2b816130e0565b92915050565b600081519050611a40816130f7565b92915050565b600081359050611a558161310e565b92915050565b600081359050611a6a81613125565b92915050565b600082601f830112611a8157600080fd5b8135611a918482602086016119b4565b91505092915050565b600060808284031215611aac57600080fd5b81905092915050565b600060e08284031215611ac757600080fd5b81905092915050565b600081359050611adf8161313c565b92915050565b600081359050611af481613153565b92915050565b600060208284031215611b0c57600080fd5b6000611b1a848285016119f2565b91505092915050565b60008060408385031215611b3657600080fd5b6000611b44858286016119f2565b9250506020611b5585828601611a07565b9150509250929050565b600060208284031215611b7157600080fd5b6000611b7f84828501611a1c565b91505092915050565b600060208284031215611b9a57600080fd5b6000611ba884828501611a31565b91505092915050565b600060208284031215611bc357600080fd5b6000611bd184828501611a46565b91505092915050565b600060208284031215611bec57600080fd5b6000611bfa84828501611a5b565b91505092915050565b60008060008060808587031215611c1957600080fd5b600085013567ffffffffffffffff811115611c3357600080fd5b611c3f87828801611a9a565b945050602085013567ffffffffffffffff811115611c5c57600080fd5b611c6887828801611a70565b9350506040611c7987828801611ad0565b925050606085013567ffffffffffffffff811115611c9657600080fd5b611ca287828801611a70565b91505092959194509250565b6000806101008385031215611cc257600080fd5b600083013567ffffffffffffffff811115611cdc57600080fd5b611ce885828601611a9a565b9250506020611cf985828601611ab5565b9150509250929050565b600060208284031215611d1557600080fd5b6000611d2384828501611ad0565b91505092915050565b600060208284031215611d3e57600080fd5b6000611d4c84828501611ae5565b91505092915050565b611d5e816129eb565b82525050565b611d75611d70826129eb565b612b9a565b82525050565b611d84816129fd565b82525050565b611d9381612a09565b82525050565b611daa611da582612a09565b612bac565b82525050565b611db981612a35565b82525050565b611dd0611dcb82612a35565b612bb6565b82525050565b611ddf81612a3f565b82525050565b611df6611df182612a3f565b612bc0565b82525050565b611e0581612a6b565b82525050565b611e1c611e1782612a6b565b612bca565b82525050565b6000611e2e8385612704565b9350611e3b838584612ade565b82840190509392505050565b6000611e52826126f9565b611e5c8185612704565b9350611e6c818560208601612aed565b80840191505092915050565b6000611e85600183612720565b9150611e9082612c8e565b600182019050919050565b6000611ea8600183612720565b9150611eb382612cb7565b600182019050919050565b6000611ecb60268361270f565b9150611ed682612ce0565b604082019050919050565b6000611eee600183612720565b9150611ef982612d2f565b600182019050919050565b6000611f11600183612720565b9150611f1c82612d58565b600182019050919050565b6000611f3460228361270f565b9150611f3f82612d81565b604082019050919050565b6000611f57601a8361270f565b9150611f6282612dd0565b602082019050919050565b6000611f7a600183612720565b9150611f8582612df9565b600182019050919050565b6000611f9d60148361270f565b9150611fa882612e22565b602082019050919050565b6000611fc0600183612720565b9150611fcb82612e4b565b600182019050919050565b6000611fe3600183612720565b9150611fee82612e74565b600182019050919050565b600061200660198361270f565b915061201182612e9d565b602082019050919050565b600061202960188361270f565b915061203482612ec6565b602082019050919050565b600061204c600183612720565b915061205782612eef565b600182019050919050565b600061206f60208361270f565b915061207a82612f18565b602082019050919050565b6000612092600183612720565b915061209d82612f41565b600182019050919050565b60006120b5600183612720565b91506120c082612f6a565b600182019050919050565b60006120d860188361270f565b91506120e382612f93565b602082019050919050565b60006120fb60198361270f565b915061210682612fbc565b602082019050919050565b600061211e600183612720565b915061212982612fe5565b600182019050919050565b600061214160118361270f565b915061214c8261300e565b602082019050919050565b600061216460138361270f565b915061216f82613037565b602082019050919050565b6000612187600183612720565b915061219282613060565b600182019050919050565b60006121aa600183612720565b91506121b582613089565b600182019050919050565b6121c981612ac1565b82525050565b6121d881612ad1565b82525050565b6121ef6121ea82612ad1565b612be6565b82525050565b60006122018284611d99565b60148201915081905092915050565b600061221c8284611dbf565b60208201915081905092915050565b60006122378285611dbf565b60208201915061224782846121de565b6001820191508190509392505050565b60006122638289611de5565b600482019150612274828789611e22565b9150612281828587611e22565b915061228d8284611de5565b600482019150819050979650505050505050565b60006122ad8284611e47565b915081905092915050565b60006122c382611f6d565b91506122cf8288611d64565b6014820191506122de82611f04565b91506122e982612111565b91506122f58287611e0b565b60088201915061230482611f04565b915061230f82612085565b915061231a82611fb3565b915061232582611f6d565b91506123318286611d99565b6014820191506123408261203f565b915061234b82611e78565b91506123568261219d565b915061236182611e9b565b915061236c82612085565b915061237782611fb3565b915061238282611f6d565b915061238e8285611d99565b60148201915061239d82611ee1565b91506123a88261217a565b91506123b48284611de5565b6004820191506123c382611fd6565b91506123ce82611f04565b91506123d98261219d565b91506123e4826120a8565b91508190509695505050505050565b60006020820190506124086000830184611d55565b92915050565b60006080820190506124236000830187611d55565b6124306020830186611dfc565b61243d60408301856121c0565b61244a6060830184611d55565b95945050505050565b60006020820190506124686000830184611d7b565b92915050565b600061010082019050612484600083018b611db0565b612491602083018a6121cf565b61249e6040830189611d55565b6124ab6060830188611dfc565b6124b86080830187611d8a565b6124c560a0830186611d8a565b6124d260c0830185611dd6565b6124df60e0830184611d55565b9998505050505050505050565b6000602082019050818103600083015261250581611ebe565b9050919050565b6000602082019050818103600083015261252581611f27565b9050919050565b6000602082019050818103600083015261254581611f4a565b9050919050565b6000602082019050818103600083015261256581611f90565b9050919050565b6000602082019050818103600083015261258581611ff9565b9050919050565b600060208201905081810360008301526125a58161201c565b9050919050565b600060208201905081810360008301526125c581612062565b9050919050565b600060208201905081810360008301526125e5816120cb565b9050919050565b60006020820190508181036000830152612605816120ee565b9050919050565b6000602082019050818103600083015261262581612134565b9050919050565b6000602082019050818103600083015261264581612157565b9050919050565b6000808335600160200384360303811261266557600080fd5b80840192508235915067ffffffffffffffff82111561268357600080fd5b60208301925060018202360383131561269b57600080fd5b509250929050565b60006126ad6126be565b90506126b98282612b20565b919050565b6000604051905090565b600067ffffffffffffffff8211156126e3576126e2612c27565b5b6126ec82612c56565b9050602081019050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061273682612ab7565b915061274183612ab7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561277657612775612bf8565b5b828201905092915050565b600061278c82612ad1565b915061279783612ad1565b92508260ff038211156127ad576127ac612bf8565b5b828201905092915050565b6000808291508390505b6001851115612802578086048111156127de576127dd612bf8565b5b60018516156127ed5780820291505b80810290506127fb85612c81565b94506127c2565b94509492505050565b600061281682612ab7565b915061282183612ab7565b925061284e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612856565b905092915050565b6000826128665760019050612922565b816128745760009050612922565b816001811461288a5760028114612894576128c3565b6001915050612922565b60ff8411156128a6576128a5612bf8565b5b8360020a9150848211156128bd576128bc612bf8565b5b50612922565b5060208310610133831016604e8410600b84101617156128f85782820a9050838111156128f3576128f2612bf8565b5b612922565b61290584848460016127b8565b9250905081840481111561291c5761291b612bf8565b5b81810290505b9392505050565b600061293482612ab7565b915061293f83612ab7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561297857612977612bf8565b5b828202905092915050565b600061298e82612ab7565b915061299983612ab7565b9250828210156129ac576129ab612bf8565b5b828203905092915050565b60006129c282612ad1565b91506129cd83612ad1565b9250828210156129e0576129df612bf8565b5b828203905092915050565b60006129f682612a97565b9050919050565b60008115159050919050565b60007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612b0b578082015181840152602081019050612af0565b83811115612b1a576000848401525b50505050565b612b2982612c56565b810181811067ffffffffffffffff82111715612b4857612b47612c27565b5b80604052505050565b6000612b5c82612ab7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b8f57612b8e612bf8565b5b600182019050919050565b6000612ba582612bd4565b9050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000612bdf82612c74565b9050919050565b6000612bf182612c67565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160601b9050919050565b60008160011c9050919050565b7f6300000000000000000000000000000000000000000000000000000000000000600082015250565b7f6700000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f8800000000000000000000000000000000000000000000000000000000000000600082015250565b7f7500000000000000000000000000000000000000000000000000000000000000600082015250565b7f52656164206f76657272756e20647572696e6720566172496e7420706172736960008201527f6e67000000000000000000000000000000000000000000000000000000000000602082015250565b7f42616420566172496e7420696e207363726970745075626b6579000000000000600082015250565b7f1400000000000000000000000000000000000000000000000000000000000000600082015250565b7f5661756c74206973206e6f742074727573746564000000000000000000000000600082015250565b7fa900000000000000000000000000000000000000000000000000000000000000600082015250565b7fb100000000000000000000000000000000000000000000000000000000000000600082015250565b7f57726f6e672033322d6279746520736372697074206861736800000000000000600082015250565b7f57726f6e67207363726970742068617368206c656e6774680000000000000000600082015250565b7f8700000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f7600000000000000000000000000000000000000000000000000000000000000600082015250565b7f6800000000000000000000000000000000000000000000000000000000000000600082015250565b7f4465706f73697420616c72656164792072657665616c65640000000000000000600082015250565b7f57726f6e672032302d6279746520736372697074206861736800000000000000600082015250565b7f0800000000000000000000000000000000000000000000000000000000000000600082015250565b7f566f75742072656164206f76657272756e000000000000000000000000000000600082015250565b7f536c696365206f7574206f6620626f756e647300000000000000000000000000600082015250565b7f0400000000000000000000000000000000000000000000000000000000000000600082015250565b7fac00000000000000000000000000000000000000000000000000000000000000600082015250565b6130bb816129eb565b81146130c657600080fd5b50565b6130d2816129fd565b81146130dd57600080fd5b50565b6130e981612a09565b81146130f457600080fd5b50565b61310081612a35565b811461310b57600080fd5b50565b61311781612a3f565b811461312257600080fd5b50565b61312e81612a6b565b811461313957600080fd5b50565b61314581612ab7565b811461315057600080fd5b50565b61315c81612ad1565b811461316757600080fd5b5056fea2646970667358221220295f3b4ea195fd7fba9f5296085182facf835e59f603d9d4791d500bcbfc014564736f6c63430008040033",
333
- "linkReferences": {},
334
- "deployedLinkReferences": {}
2441
+ "bytecode": "0x608060405234801561001057600080fd5b50614a92806100206000396000f3fe6080604052600436106103135760003560e01c8063883d6a111161019a578063b7d372a4116100e1578063ded1d24a1161008a578063ee1dd3ea11610064578063ee1dd3ea14610e95578063f18cf1b114610eb5578063f7013ef614610ee257600080fd5b8063ded1d24a14610e03578063e53c0b5514610e2f578063e65e19d514610e6857600080fd5b8063c8b5d2db116100bb578063c8b5d2db14610da3578063d38bfff414610dc3578063d6eccdf014610de357600080fd5b8063b7d372a414610c82578063be05abe314610ca2578063c42b64d014610d5857600080fd5b8063abaeed8f11610143578063b216bd351161011d578063b216bd3514610c22578063b29a604b14610c42578063b34b321614610c6257600080fd5b8063abaeed8f14610a80578063b02c43d014610aa0578063b2146cd614610be257600080fd5b8063a145e2d511610174578063a145e2d514610a00578063a8fa0f4214610a20578063a9de2f3a14610a4057600080fd5b8063883d6a11146109a057806392238f32146109c05780639c49c418146109e057600080fd5b806350aea15a1161025e57806361d027b31161020757806375b922d1116101e157806375b922d11461091957806377145f211461096057806379fc4eb31461098057600080fd5b806361d027b314610856578063685ce1b1146108745780636e70ce411461088757600080fd5b80635c0b4812116102385780635c0b48121461078657806360d712fc146107a657806361ccf97a146107c657600080fd5b806350aea15a1461070e578063575e42791461072e5780635aa6e6751461074e57600080fd5b806324028c11116102c057806331a4889a1161029a57806331a4889a146105ef57806333e957cb1461060f5780633dce9812146106ee57600080fd5b806324028c111461057f5780632bb818c2146105b15780632f429b64146105cf57600080fd5b80630b6ba19d116102f15780630b6ba19d14610482578063133cafc81461053f57806317c964001461055f57600080fd5b806303d952f7146103185780630674f2661461044057806307f7d22314610462575b600080fd5b34801561032457600080fd5b506103d56103333660046136d7565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260456020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b6040516104379190600060a0820190506001600160a01b03835116825260208301516001600160401b038082166020850152806040860151166040850152806060860151166060850152505063ffffffff608084015116608083015292915050565b60405180910390f35b34801561044c57600080fd5b5061046061045b366004613738565b610f02565b005b34801561046e57600080fd5b5061046061047d3660046137d3565b610f91565b34801561048e57600080fd5b506103d561049d3660046136d7565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260466020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b34801561054b57600080fd5b5061046061055a366004613830565b61101a565b34801561056b57600080fd5b5061046061057a3660046138cc565b611073565b34801561058b57600080fd5b50604e54600160a01b900463ffffffff1660405163ffffffff9091168152602001610437565b3480156105bd57600080fd5b50603654604051908152602001610437565b3480156105db57600080fd5b506104606105ea36600461390f565b6110e4565b3480156105fb57600080fd5b5061046061060a3660046139cd565b61113b565b34801561061b57600080fd5b506106aa61062a3660046136d7565b604080516080810182526000808252602082018190529181018290526060810191909152506000908152604b6020908152604091829020825160808101845281546001600160a01b031681526001820154928101929092526002015463ffffffff81169282019290925264010000000090910460ff161515606082015290565b604051610437919081516001600160a01b031681526020808301519082015260408083015163ffffffff169082015260609182015115159181019190915260800190565b3480156106fa57600080fd5b50610460610709366004613a4d565b6111cd565b34801561071a57600080fd5b50610460610729366004613a8d565b61125d565b34801561073a57600080fd5b506104606107493660046137d3565b6112b6565b34801561075a57600080fd5b5060005461076e906001600160a01b031681565b6040516001600160a01b039091168152602001610437565b34801561079257600080fd5b506104606107a1366004613ada565b61130b565b3480156107b257600080fd5b506104606107c1366004613b44565b611360565b3480156107d257600080fd5b50604d54604e54604f546040805163ffffffff80861682526001600160401b036401000000008704811660208401526c010000000000000000000000008704811693830193909352600160a01b860483166060830152600160e01b90950485166080820152600160c01b9093041660a08301529190911660c082015260e001610437565b34801561086257600080fd5b506037546001600160a01b031661076e565b610460610882366004613c10565b611419565b34801561089357600080fd5b506108d26041546042546043546044546001600160401b0380851695600160401b8604821695600160801b900490911693926001600160601b03169190565b604080516001600160401b0397881681529587166020870152939095169284019290925260608301526001600160601b0316608082015260a081019190915260c001610437565b34801561092557600080fd5b50604754604854604954604a546040805194855260208501939093526001600160601b03909116918301919091526060820152608001610437565b34801561096c57600080fd5b5061046061097b366004613c7f565b611472565b34801561098c57600080fd5b5061046061099b366004613cff565b6114cd565b3480156109ac57600080fd5b506104606109bb366004613d92565b611528565b3480156109cc57600080fd5b506104606109db366004613e18565b611593565b3480156109ec57600080fd5b506104606109fb366004613e81565b6115ea565b348015610a0c57600080fd5b50610460610a1b366004613f2d565b611664565b348015610a2c57600080fd5b50610460610a3b366004613a4d565b6116ea565b348015610a4c57600080fd5b50603354603454603554604080516001600160a01b0394851681529284166020840152921691810191909152606001610437565b348015610a8c57600080fd5b50610460610a9b366004613f50565b611750565b348015610aac57600080fd5b50610b6d610abb3660046136d7565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915250600090815260396020908152604091829020825160c08101845281546001600160a01b0380821683526001600160401b03600160a01b80840482169685019690965263ffffffff600160e01b9384900481169785019790975260019094015490811660608401529384049092166080820152910490911660a082015290565b6040516104379190600060c0820190506001600160a01b0380845116835260208401516001600160401b0380821660208601526040860151915063ffffffff80831660408701528360608801511660608701528160808801511660808701528060a08801511660a08701525050505092915050565b348015610bee57600080fd5b50610c12610bfd3660046136d7565b6000908152604c602052604090205460ff1690565b6040519015158152602001610437565b348015610c2e57600080fd5b50610460610c3d366004613feb565b6117e8565b348015610c4e57600080fd5b50610460610c5d366004614051565b611852565b348015610c6e57600080fd5b50610460610c7d36600461390f565b6118c0565b348015610c8e57600080fd5b50610460610c9d36600461408e565b611919565b348015610cae57600080fd5b50603b54603c54603d54603e54603f54604080516001600160401b038088168252600160401b8089048216602084015263ffffffff600160801b8a04811694840194909452600160a01b909804831660608301526001600160601b03968716608083015260a082019590955293831660c085015294820490941660e08301526c01000000000000000000000000900490911661010082015261012081019190915261014001610437565b348015610d6457600080fd5b5060375460385460408051600160a01b9093046001600160401b0390811684528083166020850152600160401b90920490911690820152606001610437565b348015610daf57600080fd5b50610460610dbe3660046140f9565b611970565b348015610dcf57600080fd5b50610460610dde366004614114565b61197e565b348015610def57600080fd5b50610460610dfe36600461412f565b611a5d565b348015610e0f57600080fd5b50604e5460601b6040516001600160601b03199091168152602001610437565b348015610e3b57600080fd5b50610c12610e4a366004614114565b6001600160a01b03166000908152603a602052604090205460ff1690565b348015610e7457600080fd5b50610e88610e833660046140f9565b611ab8565b60405161043791906141c3565b348015610ea157600080fd5b50610460610eb03660046140f9565b611bdb565b348015610ec157600080fd5b50610ed5610ed03660046136d7565b611c3c565b6040516104379190614267565b348015610eee57600080fd5b50610460610efd3660046142bf565b611cf5565b6040517f94fcaf8d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906394fcaf8d90610f5b906033908890889088908890600401614344565b60006040518083038186803b158015610f7357600080fd5b505af4158015610f87573d6000803e3d6000fd5b5050505050505050565b6040517f260b6cde00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063260b6cde90610fe690603390869086906004016143b6565b60006040518083038186803b158015610ffe57600080fd5b505af4158015611012573d6000803e3d6000fd5b505050505050565b6040517fd22cd45b00000000000000000000000000000000000000000000000000000000815273__$24f7e155a6d011c1bf9032506ba9b1954c$__9063d22cd45b90610f5b906033908890889088908890600401614513565b6000546001600160a01b031633146110d25760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064015b60405180910390fd5b6110df6033848484612110565b505050565b6040517e92bac900000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906292bac990610f5b906033908890889088908890600401614567565b6040517fa76558b300000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a76558b3906111969060339089908990899089908990600401614600565b60006040518083038186803b1580156111ae57600080fd5b505af41580156111c2573d6000803e3d6000fd5b505050505050505050565b6040517fc87de7f400000000000000000000000000000000000000000000000000000000815260336004820152602481018390526044810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063c87de7f4906064015b60006040518083038186803b15801561124057600080fd5b505af4158015611254573d6000803e3d6000fd5b50505050505050565b6040517f899bef9d00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063899bef9d90610f5b90603390889088908890889060040161464a565b6040517f99b0b84700000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__906399b0b84790610fe690603390869086906004016143b6565b6040517faea7fd0b00000000000000000000000000000000000000000000000000000000815273__$894ce12e79ca3e5683c1b49e363f37fa22$__9063aea7fd0b90610fe69060339086908690600401614681565b6000546001600160a01b031633146113ba5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110c9565b6001600160a01b0382166000818152603a6020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6040517feb8fdd5d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063eb8fdd5d90610f5b9060339088908890889088906004016147db565b6040517f624526fe00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063624526fe906111969060339089908990899089908990600401614842565b6040517f80ffe94a00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906380ffe94a906111969060339089908990899089908990600401614885565b6000546001600160a01b031633146115825760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110c9565b611254603388888888888888612343565b6040517f07f96c4200000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906307f96c4290611228906033908790879087906004016148c6565b6000546001600160a01b031633146116445760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110c9565b61165860338b8b8b8b8b8b8b8b8b8b612706565b50505050505050505050565b6040517fd079fbb100000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063d079fbb1906116b79060339085906004016148f0565b60006040518083038186803b1580156116cf57600080fd5b505af41580156116e3573d6000803e3d6000fd5b5050505050565b6040517f4afbe4c90000000000000000000000000000000000000000000000000000000081526033600482015260248101849052604481018390526064810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__90634afbe4c990608401611228565b6040517fc8f7794300000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063c8f77943906117af906033908b908b908b908b908b908b908b90600401614904565b60006040518083038186803b1580156117c757600080fd5b505af41580156117db573d6000803e3d6000fd5b5050505050505050505050565b6000546001600160a01b031633146118425760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110c9565b6110126033878787878787612da3565b6000546001600160a01b031633146118ac5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110c9565b6118ba60338585858561315c565b50505050565b6040517fa164de6e00000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a164de6e90610f5b906033908890889088908890600401614567565b6040517fb79a972500000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063b79a9725906112289060339087908790879060040161498f565b61197b6033826132ce565b50565b6000546001600160a01b031633146119d85760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110c9565b6001600160a01b038116611a545760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016110c9565b61197b81613426565b6040517f7333b36900000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__90637333b3699061119690603390899089908990899089906004016149d3565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101919091526001600160601b031982166000908152605060209081526040918290208251610120810184528154815260018201549281019290925260028101546001600160401b0381169383019390935263ffffffff600160401b8404811660608401526c01000000000000000000000000840481166080840152600160801b8404811660a0840152600160a01b84041660c0830152909160e083019060ff600160c01b909104166005811115611bb557611bb5614199565b6005811115611bc657611bc6614199565b81526020016003820154815250509050919050565b6040517f9b69e71d000000000000000000000000000000000000000000000000000000008152603360048201526001600160601b03198216602482015273__$edce581bb06331cf4dae1387760565e5d1$__90639b69e71d906044016116b7565b611c646040805160808101825260008082526020820181905291810182905290606082015290565b6000828152604060208181529181902081516080810183528154606081811b6001600160601b0319168352600160a01b82046001600160401b031695830195909552600160e01b900463ffffffff16928101929092526001810154919290919083019060ff166003811115611cdb57611cdb614199565b6003811115611cec57611cec614199565b90525092915050565b6000611d016001613494565b90508015611d19576032805461ff0019166101001790555b6001600160a01b038616611d6f5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064016110c9565b6033805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03888116919091179091558516611dea5760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f0000000060448201526064016110c9565b6034805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03878116919091179091558316611e8b5760405162461bcd60e51b815260206004820152602c60248201527f45434453412057616c6c6574205265676973747279206164647265737320636160448201527f6e6e6f74206265207a65726f000000000000000000000000000000000000000060648201526084016110c9565b6035805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03858116919091179091558416611f065760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f0060448201526064016110c9565b6037805460368490556001600160a01b0386166001600160e01b031990911617760f42400000000000000000000000000000000000000000179055603880546fffffffffffffffffffffffffffffffff191669271000000000000007d01790556041805477ffffffffffffffffffffffffffffffffffffffffffffffff1990811671271000000000000007d000000000000f4240179091556202a3006042556043805469021e19e0c9bab24000006001600160601b0319918216811790925560646044819055603b8054851676093a800007e9000000000000004e200000000000002710179055603c8054831684179055603d819055603e805490941675021e19e0c9bab240000000093a80000000000000271017909355603f839055671bc16d674ec8000060475562093a80604855604980549091169091179055604a557eeff1000000000002faf08000000002540be4000000000005f5e10000093a80604d55604e805477ffffffffffffffffffffffffffffffffffffffffffffffff167b3b9aca00000000000000000000000000000000000000000000000000179055604f80546234bc0063ffffffff199091161790556120c333613426565b8015611012576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6000836001600160401b03161161218f5760405162461bcd60e51b815260206004820152603060248201527f4465706f7369742064757374207468726573686f6c64206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016110c9565b6000826001600160401b03161161220e5760405162461bcd60e51b815260206004820152603660248201527f4465706f736974207472656173757279206665652064697669736f72206d757360448201527f742062652067726561746572207468616e207a65726f0000000000000000000060648201526084016110c9565b6000816001600160401b03161161228d5760405162461bcd60e51b815260206004820152603560248201527f4465706f736974207472616e73616374696f6e206d617820666565206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110c9565b6004840180547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b03868116918202929092179092556005860180548583166fffffffffffffffffffffffffffffffff199091168117600160401b938616938402179091556040805193845260208401919091528201527f1ced468902ca566e746a3c8c9516af81f8de9f1021c365083be9f2625ebfb7b59060600160405180910390a150505050565b856001600160401b0316856001600160401b0316116123f05760405162461bcd60e51b815260206004820152605960248201527f57616c6c6574206372656174696f6e206d6178696d756d204254432062616c6160448201527f6e6365206d7573742062652067726561746572207468616e207468652063726560648201527f6174696f6e206d696e696d756d204254432062616c616e636500000000000000608482015260a4016110c9565b6000846001600160401b03161161246f5760405162461bcd60e51b815260206004820152603c60248201527f57616c6c657420636c6f73757265206d696e696d756d204254432062616c616e60448201527f6365206d7573742062652067726561746572207468616e207a65726f0000000060648201526084016110c9565b6000826001600160401b0316116124ee5760405162461bcd60e51b815260206004820152603560248201527f57616c6c6574206d6178696d756d20425443207472616e73666572206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110c9565b60008163ffffffff161161256a5760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420636c6f73696e6720706572696f64206d75737420626520677260448201527f6561746572207468616e207a65726f000000000000000000000000000000000060648201526084016110c9565b8688601a0160006101000a81548163ffffffff021916908363ffffffff1602179055508588601a0160046101000a8154816001600160401b0302191690836001600160401b031602179055508488601a01600c6101000a8154816001600160401b0302191690836001600160401b031602179055508388601a0160146101000a8154816001600160401b0302191690836001600160401b031602179055508288601a01601c6101000a81548163ffffffff021916908363ffffffff1602179055508188601b0160186101000a8154816001600160401b0302191690836001600160401b031602179055508088601c0160006101000a81548163ffffffff021916908363ffffffff1602179055507fc7d3a9af08692aeae771c329fddd95c7237a9f76fec996325f3959eeff07d4ac878787878787876040516126f4979695949392919063ffffffff97881681526001600160401b03968716602082015294861660408601529285166060850152908516608084015290921660a0820152911660c082015260e00190565b60405180910390a15050505050505050565b60008a6001600160401b031611612787576040805162461bcd60e51b81526020600482015260248101919091527f4d6f76696e672066756e6473207472616e73616374696f6e206d617820746f7460448201527f616c20666565206d7573742062652067726561746572207468616e207a65726f60648201526084016110c9565b6000896001600160401b03161180156127b05750600e8b01546001600160401b03908116908a16105b6128485760405162461bcd60e51b815260206004820152605e60248201527f4d6f76696e672066756e64732064757374207468726573686f6c64206d75737460448201527f2062652067726561746572207468616e207a65726f20616e64206c6f7765722060648201527f7468616e20726564656d7074696f6e2064757374207468726573686f6c640000608482015260a4016110c9565b60008863ffffffff16116128c45760405162461bcd60e51b815260206004820152603a60248201527f4d6f76696e672066756e64732074696d656f75742072657365742064656c617960448201527f206d7573742062652067726561746572207468616e207a65726f00000000000060648201526084016110c9565b8763ffffffff168763ffffffff16116129455760405162461bcd60e51b815260206004820152603960248201527f4d6f76696e672066756e64732074696d656f7574206d7573742062652067726560448201527f61746572207468616e206974732072657365742064656c61790000000000000060648201526084016110c9565b60648511156129e25760405162461bcd60e51b815260206004820152604d60248201527f4d6f76696e672066756e64732074696d656f7574206e6f74696669657220726560448201527f77617264206d756c7469706c696572206d75737420626520696e20746865207260648201527f616e6765205b302c203130305d00000000000000000000000000000000000000608482015260a4016110c9565b6000846001600160401b031611612a875760405162461bcd60e51b815260206004820152604560248201527f4d6f7665642066756e6473207377656570207472616e73616374696f6e206d6160448201527f7820746f74616c20666565206d7573742062652067726561746572207468616e60648201527f207a65726f000000000000000000000000000000000000000000000000000000608482015260a4016110c9565b60008363ffffffff1611612b035760405162461bcd60e51b815260206004820152603360248201527f4d6f7665642066756e64732073776565702074696d656f7574206d757374206260448201527f652067726561746572207468616e207a65726f0000000000000000000000000060648201526084016110c9565b6064811115612ba05760405162461bcd60e51b815260206004820152605260248201527f4d6f7665642066756e64732073776565702074696d656f7574206e6f7469666960448201527f657220726577617264206d756c7469706c696572206d75737420626520696e2060648201527f7468652072616e6765205b302c203130305d0000000000000000000000000000608482015260a4016110c9565b898b60080160006101000a8154816001600160401b0302191690836001600160401b03160217905550888b60080160086101000a8154816001600160401b0302191690836001600160401b03160217905550878b60080160106101000a81548163ffffffff021916908363ffffffff160217905550868b60080160146101000a81548163ffffffff021916908363ffffffff160217905550858b60090160006101000a8154816001600160601b0302191690836001600160601b03160217905550848b600a0181905550838b600b0160006101000a8154816001600160401b0302191690836001600160401b03160217905550828b600b0160086101000a81548163ffffffff021916908363ffffffff160217905550818b600b01600c6101000a8154816001600160601b0302191690836001600160601b03160217905550808b600c01819055507f9fbab8abcd4ce947cd4ffe98e310cc5290d30644941a68e43899b3b6e219ca928a8a8a8a8a8a8a8a8a8a604051612d8e9a999897969594939291906001600160401b039a8b168152988a1660208a015263ffffffff97881660408a015295871660608901526001600160601b03948516608089015260a0880193909352961660c08601529490921660e084015292166101008201526101208101919091526101400190565b60405180910390a15050505050505050505050565b60088701546001600160401b03600160401b909104811690871611612e565760405162461bcd60e51b815260206004820152604a60248201527f526564656d7074696f6e2064757374207468726573686f6c64206d757374206260448201527f652067726561746572207468616e206d6f76696e672066756e6473206475737460648201527f207468726573686f6c6400000000000000000000000000000000000000000000608482015260a4016110c9565b6000856001600160401b031611612ed55760405162461bcd60e51b815260206004820152603960248201527f526564656d7074696f6e207472656173757279206665652064697669736f722060448201527f6d7573742062652067726561746572207468616e207a65726f0000000000000060648201526084016110c9565b6000846001600160401b031611612f545760405162461bcd60e51b815260206004820152603860248201527f526564656d7074696f6e207472616e73616374696f6e206d617820666565206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110c9565b60008311612fca5760405162461bcd60e51b815260206004820152602c60248201527f526564656d7074696f6e2074696d656f7574206d75737420626520677265617460448201527f6572207468616e207a65726f000000000000000000000000000000000000000060648201526084016110c9565b60648111156130675760405162461bcd60e51b815260206004820152604b60248201527f526564656d7074696f6e2074696d656f7574206e6f746966696572207265776160448201527f7264206d756c7469706c696572206d75737420626520696e207468652072616e60648201527f6765205b302c203130305d000000000000000000000000000000000000000000608482015260a4016110c9565b600e870180546001600160401b038881166fffffffffffffffffffffffffffffffff199092168217600160401b898316908102919091177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff16600160801b92891692830217909355600f8a0186905560108a0180546001600160601b0319166001600160601b03871690811790915560118b018590556040805193845260208401949094529282015260608101859052608081019190915260a081018290527f944cd06e316cc3da4159300dd41ab23416c89a5136c41fa79d57fe8a34bcc10f9060c00160405180910390a150505050505050565b600083116131d25760405162461bcd60e51b815260206004820152603860248201527f4672617564206368616c6c656e6765206465666561742074696d656f7574206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110c9565b60648111156132495760405162461bcd60e51b815260206004820152603e60248201527f4672617564206e6f74696669657220726577617264206d756c7469706c69657260448201527f206d75737420626520696e207468652072616e6765205b302c203130305d000060648201526084016110c9565b60148501849055601585018390556016850180546001600160601b0319166001600160601b03841690811790915560178601829055604080518681526020810186905290810191909152606081018290527fd0d6d92441fbb139a023c9c62586dbd767824f37869c45da6443fc3aef64194f9060800160405180910390a15050505050565b6001600160601b031981166000908152601d83016020526040902060036002820154600160c01b900460ff16600581111561330b5761330b614199565b1461337e5760405162461bcd60e51b815260206004820152602560248201527f45434453412077616c6c6574206d75737420626520696e20436c6f73696e672060448201527f737461746500000000000000000000000000000000000000000000000000000060648201526084016110c9565b601c83015460028201546133a29163ffffffff90811691600160801b900416614a26565b63ffffffff16421161341c5760405162461bcd60e51b815260206004820152602260248201527f436c6f73696e6720706572696f6420686173206e6f7420656c6170736564207960448201527f657400000000000000000000000000000000000000000000000000000000000060648201526084016110c9565b6110df83836135cf565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff1983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b603254600090610100900460ff1615613533578160ff1660011480156134b95750303b155b61352b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110c9565b506000919050565b60325460ff8084169116106135b05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110c9565b506032805460ff191660ff92909216919091179055600190565b919050565b6001600160601b031981166000818152601d840160205260408082206002810180547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff167804000000000000000000000000000000000000000000000000179055805491519093927f47b159947c3066cb253f60e8f046cfd747411788a545cb189679e3fa1467b28d91a3600283015481546040517f343bb9270000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163343bb927916136a99160040190815260200190565b600060405180830381600087803b1580156136c357600080fd5b505af1158015611254573d6000803e3d6000fd5b6000602082840312156136e957600080fd5b5035919050565b60008083601f84011261370257600080fd5b5081356001600160401b0381111561371957600080fd5b60208301915083602082850101111561373157600080fd5b9250929050565b6000806000806040858703121561374e57600080fd5b84356001600160401b038082111561376557600080fd5b613771888389016136f0565b9096509450602087013591508082111561378a57600080fd5b50613797878288016136f0565b95989497509550505050565b80356001600160601b0319811681146135ca57600080fd5b6000606082840312156137cd57600080fd5b50919050565b600080608083850312156137e657600080fd5b6137ef836137a3565b91506137fe84602085016137bb565b90509250929050565b6000608082840312156137cd57600080fd5b80356001600160a01b03811681146135ca57600080fd5b60008060008060c0858703121561384657600080fd5b84356001600160401b038082111561385d57600080fd5b61386988838901613807565b9550602087013591508082111561387f57600080fd5b5061388c878288016137bb565b93505061389c86604087016137bb565b91506138aa60a08601613819565b905092959194509250565b80356001600160401b03811681146135ca57600080fd5b6000806000606084860312156138e157600080fd5b6138ea846138b5565b92506138f8602085016138b5565b9150613906604085016138b5565b90509250925092565b60008060008060c0858703121561392557600080fd5b84356001600160401b038082111561393c57600080fd5b61394888838901613807565b9550602087013591508082111561395e57600080fd5b5061396b878288016137bb565b93505061397b86604087016137bb565b91506138aa60a086016137a3565b60008083601f84011261399b57600080fd5b5081356001600160401b038111156139b257600080fd5b6020830191508360208260051b850101111561373157600080fd5b6000806000806000606086880312156139e557600080fd5b6139ee866137a3565b945060208601356001600160401b0380821115613a0a57600080fd5b613a1689838a01613989565b90965094506040880135915080821115613a2f57600080fd5b50613a3c888289016136f0565b969995985093965092949392505050565b600080600060608486031215613a6257600080fd5b505081359360208301359350604090920135919050565b803563ffffffff811681146135ca57600080fd5b60008060008060608587031215613aa357600080fd5b84359350613ab360208601613a79565b925060408501356001600160401b03811115613ace57600080fd5b61379787828801613989565b600080828403610100811215613aef57600080fd5b83356001600160401b03811115613b0557600080fd5b613b1186828701613807565b93505060e0601f1982011215613b2657600080fd5b506020830190509250929050565b803580151581146135ca57600080fd5b60008060408385031215613b5757600080fd5b613b6083613819565b91506137fe60208401613b34565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613b9557600080fd5b81356001600160401b0380821115613baf57613baf613b6e565b604051601f8301601f19908116603f01168101908282118183101715613bd757613bd7613b6e565b81604052838152866020858801011115613bf057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060a08587031215613c2657600080fd5b84356001600160401b0380821115613c3d57600080fd5b613c49888389016136f0565b90965094506020870135915080821115613c6257600080fd5b50613c6f87828801613b84565b9250506138aa86604087016137bb565b600080600080600060608688031215613c9757600080fd5b85356001600160401b0380821115613cae57600080fd5b613cba89838a016136f0565b90975095506020880135915080821115613cd357600080fd5b50613ce0888289016136f0565b9094509250613cf3905060408701613b34565b90509295509295909350565b600080600080600060608688031215613d1757600080fd5b85356001600160401b0380821115613d2e57600080fd5b613d3a89838a016136f0565b90975095506020880135915080821115613d5357600080fd5b613d5f89838a01613989565b90955093506040880135915080821115613d7857600080fd5b50613d8588828901613b84565b9150509295509295909350565b600080600080600080600060e0888a031215613dad57600080fd5b613db688613a79565b9650613dc4602089016138b5565b9550613dd2604089016138b5565b9450613de0606089016138b5565b9350613dee60808901613a79565b9250613dfc60a089016138b5565b9150613e0a60c08901613a79565b905092959891949750929550565b600080600060408486031215613e2d57600080fd5b613e36846137a3565b925060208401356001600160401b03811115613e5157600080fd5b613e5d86828701613989565b9497909650939450505050565b80356001600160601b03811681146135ca57600080fd5b6000806000806000806000806000806101408b8d031215613ea157600080fd5b613eaa8b6138b5565b9950613eb860208c016138b5565b9850613ec660408c01613a79565b9750613ed460608c01613a79565b9650613ee260808c01613e6a565b955060a08b01359450613ef760c08c016138b5565b9350613f0560e08c01613a79565b9250613f146101008c01613e6a565b91506101208b013590509295989b9194979a5092959850565b600060608284031215613f3f57600080fd5b613f4983836137bb565b9392505050565b600080600080600080600060e0888a031215613f6b57600080fd5b613f74886137a3565b9650613f838960208a016137bb565b955060808801356001600160401b0380821115613f9f57600080fd5b613fab8b838c01613989565b909750955060a08a0135945060c08a0135915080821115613fcb57600080fd5b50613fd88a828b01613989565b989b979a50959850939692959293505050565b60008060008060008060c0878903121561400457600080fd5b61400d876138b5565b955061401b602088016138b5565b9450614029604088016138b5565b93506060870135925061403e60808801613e6a565b915060a087013590509295509295509295565b6000806000806080858703121561406757600080fd5b843593506020850135925061407e60408601613e6a565b9396929550929360600135925050565b600080600060a084860312156140a357600080fd5b83356001600160401b03808211156140ba57600080fd5b6140c687838801613807565b945060208601359150808211156140dc57600080fd5b506140e9868287016137bb565b92505061390685604086016137bb565b60006020828403121561410b57600080fd5b613f49826137a3565b60006020828403121561412657600080fd5b613f4982613819565b600080600080600060c0868803121561414757600080fd5b614150866137a3565b945061415f87602088016137bb565b935060808601356001600160401b0381111561417a57600080fd5b614186888289016136f0565b9094509250613cf3905060a087016138b5565b634e487b7160e01b600052602160045260246000fd5b600681106141bf576141bf614199565b9052565b60006101208201905082518252602083015160208301526001600160401b03604084015116604083015263ffffffff60608401511660608301526080830151614214608084018263ffffffff169052565b5060a083015161422c60a084018263ffffffff169052565b5060c083015161424460c084018263ffffffff169052565b5060e083015161425760e08401826141af565b5061010092830151919092015290565b81516001600160601b03191681526020808301516001600160401b03169082015260408083015163ffffffff169082015260608201516080820190600481106142b2576142b2614199565b8060608401525092915050565b600080600080600060a086880312156142d757600080fd5b6142e086613819565b94506142ee60208701613819565b93506142fc60408701613819565b925061430a60608701613819565b949793965091946080013592915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b85815260606020820152600061435e60608301868861431b565b828103604084015261437181858761431b565b98975050505050505050565b8035825263ffffffff61439260208301613a79565b1660208301526001600160401b036143ac604083016138b5565b1660408301525050565b8381526001600160601b03198316602082015260a081016143da604083018461437d565b949350505050565b80356001600160e01b0319811681146135ca57600080fd5b6000808335601e1984360301811261441157600080fd5b83016020810192503590506001600160401b0381111561443057600080fd5b80360383131561373157600080fd5b60006001600160e01b031980614454846143e2565b16845261446460208401846143fa565b6080602087015261447960808701828461431b565b91505061448960408501856143fa565b868303604088015261449c83828461431b565b92505050816144ad606086016143e2565b166060860152809250505092915050565b60006144ca82836143fa565b606085526144dc60608601828461431b565b915050602083013560208501526144f660408401846143fa565b858303604087015261450983828461431b565b9695505050505050565b85815260e06020820152600061452c60e083018761443f565b828103604084015261453e81876144be565b91505061454e606083018561437d565b6001600160a01b03831660c08301529695505050505050565b85815260e06020820152600061458060e083018761443f565b828103604084015261459281876144be565b9150506145a2606083018561437d565b6001600160601b0319831660c08301529695505050505050565b8183526000602080850194508260005b858110156145f55763ffffffff6145e283613a79565b16875295820195908201906001016145cc565b509495945050505050565b8681526001600160601b03198616602082015260806040820152600061462a6080830186886145bc565b828103606084015261463d81858761431b565b9998505050505050505050565b85815284602082015263ffffffff841660408201526080606082015260006146766080830184866145bc565b979650505050505050565b600061012085835280602084015261469b8184018661443f565b91505063ffffffff6146ac84613a79565b1660408301526001600160a01b036146c660208501613819565b166060830152604083013577ffffffffffffffffffffffffffffffffffffffffffffffff19811681146146f857600080fd5b77ffffffffffffffffffffffffffffffffffffffffffffffff19166080830152614724606084016137a3565b6001600160601b03191660a083015261473f608084016137a3565b6001600160601b03191660c083015261475a60a084016143e2565b6001600160e01b03191660e083015261477560c08401613819565b6001600160a01b03811661010084015250949350505050565b6000815180845260005b818110156147b457602081850181015186830182015201614798565b818111156147c6576000602083870101525b50601f01601f19169290920160200192915050565b85815260c0602082015260006147f560c08301868861431b565b8281036040840152614807818661478e565b9150508235606083015260208301356080830152604083013560ff811680821461483057600080fd5b8060a085015250509695505050505050565b86815260806020820152600061485c60808301878961431b565b828103604084015261486f81868861431b565b9150508215156060830152979650505050505050565b86815260806020820152600061489f60808301878961431b565b82810360408401526148b28186886145bc565b9050828103606084015261463d818561478e565b8481526001600160601b0319841660208201526060604082015260006145096060830184866145bc565b82815260808101613f49602083018461437d565b60006101008a835260206001600160601b0319808c168286015261492b604086018c61437d565b8260a086015261493e8386018a8c6145bc565b60c0860189905285810360e0870152868152879350820160005b8781101561497d578261496a866137a3565b1682529383019390830190600101614958565b509d9c50505050505050505050505050565b84815260c0602082015260006149a860c083018661443f565b82810360408401526149ba81866144be565b9150506149ca606083018461437d565b95945050505050565b8681526001600160601b0319861660208201526149f3604082018661437d565b60e060a08201526000614a0a60e08301858761431b565b90506001600160401b03831660c0830152979650505050505050565b600063ffffffff808316818516808303821115614a5357634e487b7160e01b600052601160045260246000fd5b0194935050505056fea2646970667358221220d01fac442abd6fb4465cc44e597510e2102e8ffceb12ab7d2f5c30a5e0b406ff64736f6c63430008090033",
2442
+ "deployedBytecode": "0x6080604052600436106103135760003560e01c8063883d6a111161019a578063b7d372a4116100e1578063ded1d24a1161008a578063ee1dd3ea11610064578063ee1dd3ea14610e95578063f18cf1b114610eb5578063f7013ef614610ee257600080fd5b8063ded1d24a14610e03578063e53c0b5514610e2f578063e65e19d514610e6857600080fd5b8063c8b5d2db116100bb578063c8b5d2db14610da3578063d38bfff414610dc3578063d6eccdf014610de357600080fd5b8063b7d372a414610c82578063be05abe314610ca2578063c42b64d014610d5857600080fd5b8063abaeed8f11610143578063b216bd351161011d578063b216bd3514610c22578063b29a604b14610c42578063b34b321614610c6257600080fd5b8063abaeed8f14610a80578063b02c43d014610aa0578063b2146cd614610be257600080fd5b8063a145e2d511610174578063a145e2d514610a00578063a8fa0f4214610a20578063a9de2f3a14610a4057600080fd5b8063883d6a11146109a057806392238f32146109c05780639c49c418146109e057600080fd5b806350aea15a1161025e57806361d027b31161020757806375b922d1116101e157806375b922d11461091957806377145f211461096057806379fc4eb31461098057600080fd5b806361d027b314610856578063685ce1b1146108745780636e70ce411461088757600080fd5b80635c0b4812116102385780635c0b48121461078657806360d712fc146107a657806361ccf97a146107c657600080fd5b806350aea15a1461070e578063575e42791461072e5780635aa6e6751461074e57600080fd5b806324028c11116102c057806331a4889a1161029a57806331a4889a146105ef57806333e957cb1461060f5780633dce9812146106ee57600080fd5b806324028c111461057f5780632bb818c2146105b15780632f429b64146105cf57600080fd5b80630b6ba19d116102f15780630b6ba19d14610482578063133cafc81461053f57806317c964001461055f57600080fd5b806303d952f7146103185780630674f2661461044057806307f7d22314610462575b600080fd5b34801561032457600080fd5b506103d56103333660046136d7565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260456020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b6040516104379190600060a0820190506001600160a01b03835116825260208301516001600160401b038082166020850152806040860151166040850152806060860151166060850152505063ffffffff608084015116608083015292915050565b60405180910390f35b34801561044c57600080fd5b5061046061045b366004613738565b610f02565b005b34801561046e57600080fd5b5061046061047d3660046137d3565b610f91565b34801561048e57600080fd5b506103d561049d3660046136d7565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260466020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b34801561054b57600080fd5b5061046061055a366004613830565b61101a565b34801561056b57600080fd5b5061046061057a3660046138cc565b611073565b34801561058b57600080fd5b50604e54600160a01b900463ffffffff1660405163ffffffff9091168152602001610437565b3480156105bd57600080fd5b50603654604051908152602001610437565b3480156105db57600080fd5b506104606105ea36600461390f565b6110e4565b3480156105fb57600080fd5b5061046061060a3660046139cd565b61113b565b34801561061b57600080fd5b506106aa61062a3660046136d7565b604080516080810182526000808252602082018190529181018290526060810191909152506000908152604b6020908152604091829020825160808101845281546001600160a01b031681526001820154928101929092526002015463ffffffff81169282019290925264010000000090910460ff161515606082015290565b604051610437919081516001600160a01b031681526020808301519082015260408083015163ffffffff169082015260609182015115159181019190915260800190565b3480156106fa57600080fd5b50610460610709366004613a4d565b6111cd565b34801561071a57600080fd5b50610460610729366004613a8d565b61125d565b34801561073a57600080fd5b506104606107493660046137d3565b6112b6565b34801561075a57600080fd5b5060005461076e906001600160a01b031681565b6040516001600160a01b039091168152602001610437565b34801561079257600080fd5b506104606107a1366004613ada565b61130b565b3480156107b257600080fd5b506104606107c1366004613b44565b611360565b3480156107d257600080fd5b50604d54604e54604f546040805163ffffffff80861682526001600160401b036401000000008704811660208401526c010000000000000000000000008704811693830193909352600160a01b860483166060830152600160e01b90950485166080820152600160c01b9093041660a08301529190911660c082015260e001610437565b34801561086257600080fd5b506037546001600160a01b031661076e565b610460610882366004613c10565b611419565b34801561089357600080fd5b506108d26041546042546043546044546001600160401b0380851695600160401b8604821695600160801b900490911693926001600160601b03169190565b604080516001600160401b0397881681529587166020870152939095169284019290925260608301526001600160601b0316608082015260a081019190915260c001610437565b34801561092557600080fd5b50604754604854604954604a546040805194855260208501939093526001600160601b03909116918301919091526060820152608001610437565b34801561096c57600080fd5b5061046061097b366004613c7f565b611472565b34801561098c57600080fd5b5061046061099b366004613cff565b6114cd565b3480156109ac57600080fd5b506104606109bb366004613d92565b611528565b3480156109cc57600080fd5b506104606109db366004613e18565b611593565b3480156109ec57600080fd5b506104606109fb366004613e81565b6115ea565b348015610a0c57600080fd5b50610460610a1b366004613f2d565b611664565b348015610a2c57600080fd5b50610460610a3b366004613a4d565b6116ea565b348015610a4c57600080fd5b50603354603454603554604080516001600160a01b0394851681529284166020840152921691810191909152606001610437565b348015610a8c57600080fd5b50610460610a9b366004613f50565b611750565b348015610aac57600080fd5b50610b6d610abb3660046136d7565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915250600090815260396020908152604091829020825160c08101845281546001600160a01b0380821683526001600160401b03600160a01b80840482169685019690965263ffffffff600160e01b9384900481169785019790975260019094015490811660608401529384049092166080820152910490911660a082015290565b6040516104379190600060c0820190506001600160a01b0380845116835260208401516001600160401b0380821660208601526040860151915063ffffffff80831660408701528360608801511660608701528160808801511660808701528060a08801511660a08701525050505092915050565b348015610bee57600080fd5b50610c12610bfd3660046136d7565b6000908152604c602052604090205460ff1690565b6040519015158152602001610437565b348015610c2e57600080fd5b50610460610c3d366004613feb565b6117e8565b348015610c4e57600080fd5b50610460610c5d366004614051565b611852565b348015610c6e57600080fd5b50610460610c7d36600461390f565b6118c0565b348015610c8e57600080fd5b50610460610c9d36600461408e565b611919565b348015610cae57600080fd5b50603b54603c54603d54603e54603f54604080516001600160401b038088168252600160401b8089048216602084015263ffffffff600160801b8a04811694840194909452600160a01b909804831660608301526001600160601b03968716608083015260a082019590955293831660c085015294820490941660e08301526c01000000000000000000000000900490911661010082015261012081019190915261014001610437565b348015610d6457600080fd5b5060375460385460408051600160a01b9093046001600160401b0390811684528083166020850152600160401b90920490911690820152606001610437565b348015610daf57600080fd5b50610460610dbe3660046140f9565b611970565b348015610dcf57600080fd5b50610460610dde366004614114565b61197e565b348015610def57600080fd5b50610460610dfe36600461412f565b611a5d565b348015610e0f57600080fd5b50604e5460601b6040516001600160601b03199091168152602001610437565b348015610e3b57600080fd5b50610c12610e4a366004614114565b6001600160a01b03166000908152603a602052604090205460ff1690565b348015610e7457600080fd5b50610e88610e833660046140f9565b611ab8565b60405161043791906141c3565b348015610ea157600080fd5b50610460610eb03660046140f9565b611bdb565b348015610ec157600080fd5b50610ed5610ed03660046136d7565b611c3c565b6040516104379190614267565b348015610eee57600080fd5b50610460610efd3660046142bf565b611cf5565b6040517f94fcaf8d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906394fcaf8d90610f5b906033908890889088908890600401614344565b60006040518083038186803b158015610f7357600080fd5b505af4158015610f87573d6000803e3d6000fd5b5050505050505050565b6040517f260b6cde00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063260b6cde90610fe690603390869086906004016143b6565b60006040518083038186803b158015610ffe57600080fd5b505af4158015611012573d6000803e3d6000fd5b505050505050565b6040517fd22cd45b00000000000000000000000000000000000000000000000000000000815273__$24f7e155a6d011c1bf9032506ba9b1954c$__9063d22cd45b90610f5b906033908890889088908890600401614513565b6000546001600160a01b031633146110d25760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064015b60405180910390fd5b6110df6033848484612110565b505050565b6040517e92bac900000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906292bac990610f5b906033908890889088908890600401614567565b6040517fa76558b300000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a76558b3906111969060339089908990899089908990600401614600565b60006040518083038186803b1580156111ae57600080fd5b505af41580156111c2573d6000803e3d6000fd5b505050505050505050565b6040517fc87de7f400000000000000000000000000000000000000000000000000000000815260336004820152602481018390526044810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063c87de7f4906064015b60006040518083038186803b15801561124057600080fd5b505af4158015611254573d6000803e3d6000fd5b50505050505050565b6040517f899bef9d00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063899bef9d90610f5b90603390889088908890889060040161464a565b6040517f99b0b84700000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__906399b0b84790610fe690603390869086906004016143b6565b6040517faea7fd0b00000000000000000000000000000000000000000000000000000000815273__$894ce12e79ca3e5683c1b49e363f37fa22$__9063aea7fd0b90610fe69060339086908690600401614681565b6000546001600160a01b031633146113ba5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110c9565b6001600160a01b0382166000818152603a6020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6040517feb8fdd5d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063eb8fdd5d90610f5b9060339088908890889088906004016147db565b6040517f624526fe00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063624526fe906111969060339089908990899089908990600401614842565b6040517f80ffe94a00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906380ffe94a906111969060339089908990899089908990600401614885565b6000546001600160a01b031633146115825760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110c9565b611254603388888888888888612343565b6040517f07f96c4200000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906307f96c4290611228906033908790879087906004016148c6565b6000546001600160a01b031633146116445760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110c9565b61165860338b8b8b8b8b8b8b8b8b8b612706565b50505050505050505050565b6040517fd079fbb100000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063d079fbb1906116b79060339085906004016148f0565b60006040518083038186803b1580156116cf57600080fd5b505af41580156116e3573d6000803e3d6000fd5b5050505050565b6040517f4afbe4c90000000000000000000000000000000000000000000000000000000081526033600482015260248101849052604481018390526064810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__90634afbe4c990608401611228565b6040517fc8f7794300000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063c8f77943906117af906033908b908b908b908b908b908b908b90600401614904565b60006040518083038186803b1580156117c757600080fd5b505af41580156117db573d6000803e3d6000fd5b5050505050505050505050565b6000546001600160a01b031633146118425760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110c9565b6110126033878787878787612da3565b6000546001600160a01b031633146118ac5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110c9565b6118ba60338585858561315c565b50505050565b6040517fa164de6e00000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a164de6e90610f5b906033908890889088908890600401614567565b6040517fb79a972500000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063b79a9725906112289060339087908790879060040161498f565b61197b6033826132ce565b50565b6000546001600160a01b031633146119d85760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110c9565b6001600160a01b038116611a545760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016110c9565b61197b81613426565b6040517f7333b36900000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__90637333b3699061119690603390899089908990899089906004016149d3565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101919091526001600160601b031982166000908152605060209081526040918290208251610120810184528154815260018201549281019290925260028101546001600160401b0381169383019390935263ffffffff600160401b8404811660608401526c01000000000000000000000000840481166080840152600160801b8404811660a0840152600160a01b84041660c0830152909160e083019060ff600160c01b909104166005811115611bb557611bb5614199565b6005811115611bc657611bc6614199565b81526020016003820154815250509050919050565b6040517f9b69e71d000000000000000000000000000000000000000000000000000000008152603360048201526001600160601b03198216602482015273__$edce581bb06331cf4dae1387760565e5d1$__90639b69e71d906044016116b7565b611c646040805160808101825260008082526020820181905291810182905290606082015290565b6000828152604060208181529181902081516080810183528154606081811b6001600160601b0319168352600160a01b82046001600160401b031695830195909552600160e01b900463ffffffff16928101929092526001810154919290919083019060ff166003811115611cdb57611cdb614199565b6003811115611cec57611cec614199565b90525092915050565b6000611d016001613494565b90508015611d19576032805461ff0019166101001790555b6001600160a01b038616611d6f5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064016110c9565b6033805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03888116919091179091558516611dea5760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f0000000060448201526064016110c9565b6034805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03878116919091179091558316611e8b5760405162461bcd60e51b815260206004820152602c60248201527f45434453412057616c6c6574205265676973747279206164647265737320636160448201527f6e6e6f74206265207a65726f000000000000000000000000000000000000000060648201526084016110c9565b6035805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03858116919091179091558416611f065760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f0060448201526064016110c9565b6037805460368490556001600160a01b0386166001600160e01b031990911617760f42400000000000000000000000000000000000000000179055603880546fffffffffffffffffffffffffffffffff191669271000000000000007d01790556041805477ffffffffffffffffffffffffffffffffffffffffffffffff1990811671271000000000000007d000000000000f4240179091556202a3006042556043805469021e19e0c9bab24000006001600160601b0319918216811790925560646044819055603b8054851676093a800007e9000000000000004e200000000000002710179055603c8054831684179055603d819055603e805490941675021e19e0c9bab240000000093a80000000000000271017909355603f839055671bc16d674ec8000060475562093a80604855604980549091169091179055604a557eeff1000000000002faf08000000002540be4000000000005f5e10000093a80604d55604e805477ffffffffffffffffffffffffffffffffffffffffffffffff167b3b9aca00000000000000000000000000000000000000000000000000179055604f80546234bc0063ffffffff199091161790556120c333613426565b8015611012576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6000836001600160401b03161161218f5760405162461bcd60e51b815260206004820152603060248201527f4465706f7369742064757374207468726573686f6c64206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016110c9565b6000826001600160401b03161161220e5760405162461bcd60e51b815260206004820152603660248201527f4465706f736974207472656173757279206665652064697669736f72206d757360448201527f742062652067726561746572207468616e207a65726f0000000000000000000060648201526084016110c9565b6000816001600160401b03161161228d5760405162461bcd60e51b815260206004820152603560248201527f4465706f736974207472616e73616374696f6e206d617820666565206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110c9565b6004840180547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b03868116918202929092179092556005860180548583166fffffffffffffffffffffffffffffffff199091168117600160401b938616938402179091556040805193845260208401919091528201527f1ced468902ca566e746a3c8c9516af81f8de9f1021c365083be9f2625ebfb7b59060600160405180910390a150505050565b856001600160401b0316856001600160401b0316116123f05760405162461bcd60e51b815260206004820152605960248201527f57616c6c6574206372656174696f6e206d6178696d756d204254432062616c6160448201527f6e6365206d7573742062652067726561746572207468616e207468652063726560648201527f6174696f6e206d696e696d756d204254432062616c616e636500000000000000608482015260a4016110c9565b6000846001600160401b03161161246f5760405162461bcd60e51b815260206004820152603c60248201527f57616c6c657420636c6f73757265206d696e696d756d204254432062616c616e60448201527f6365206d7573742062652067726561746572207468616e207a65726f0000000060648201526084016110c9565b6000826001600160401b0316116124ee5760405162461bcd60e51b815260206004820152603560248201527f57616c6c6574206d6178696d756d20425443207472616e73666572206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110c9565b60008163ffffffff161161256a5760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420636c6f73696e6720706572696f64206d75737420626520677260448201527f6561746572207468616e207a65726f000000000000000000000000000000000060648201526084016110c9565b8688601a0160006101000a81548163ffffffff021916908363ffffffff1602179055508588601a0160046101000a8154816001600160401b0302191690836001600160401b031602179055508488601a01600c6101000a8154816001600160401b0302191690836001600160401b031602179055508388601a0160146101000a8154816001600160401b0302191690836001600160401b031602179055508288601a01601c6101000a81548163ffffffff021916908363ffffffff1602179055508188601b0160186101000a8154816001600160401b0302191690836001600160401b031602179055508088601c0160006101000a81548163ffffffff021916908363ffffffff1602179055507fc7d3a9af08692aeae771c329fddd95c7237a9f76fec996325f3959eeff07d4ac878787878787876040516126f4979695949392919063ffffffff97881681526001600160401b03968716602082015294861660408601529285166060850152908516608084015290921660a0820152911660c082015260e00190565b60405180910390a15050505050505050565b60008a6001600160401b031611612787576040805162461bcd60e51b81526020600482015260248101919091527f4d6f76696e672066756e6473207472616e73616374696f6e206d617820746f7460448201527f616c20666565206d7573742062652067726561746572207468616e207a65726f60648201526084016110c9565b6000896001600160401b03161180156127b05750600e8b01546001600160401b03908116908a16105b6128485760405162461bcd60e51b815260206004820152605e60248201527f4d6f76696e672066756e64732064757374207468726573686f6c64206d75737460448201527f2062652067726561746572207468616e207a65726f20616e64206c6f7765722060648201527f7468616e20726564656d7074696f6e2064757374207468726573686f6c640000608482015260a4016110c9565b60008863ffffffff16116128c45760405162461bcd60e51b815260206004820152603a60248201527f4d6f76696e672066756e64732074696d656f75742072657365742064656c617960448201527f206d7573742062652067726561746572207468616e207a65726f00000000000060648201526084016110c9565b8763ffffffff168763ffffffff16116129455760405162461bcd60e51b815260206004820152603960248201527f4d6f76696e672066756e64732074696d656f7574206d7573742062652067726560448201527f61746572207468616e206974732072657365742064656c61790000000000000060648201526084016110c9565b60648511156129e25760405162461bcd60e51b815260206004820152604d60248201527f4d6f76696e672066756e64732074696d656f7574206e6f74696669657220726560448201527f77617264206d756c7469706c696572206d75737420626520696e20746865207260648201527f616e6765205b302c203130305d00000000000000000000000000000000000000608482015260a4016110c9565b6000846001600160401b031611612a875760405162461bcd60e51b815260206004820152604560248201527f4d6f7665642066756e6473207377656570207472616e73616374696f6e206d6160448201527f7820746f74616c20666565206d7573742062652067726561746572207468616e60648201527f207a65726f000000000000000000000000000000000000000000000000000000608482015260a4016110c9565b60008363ffffffff1611612b035760405162461bcd60e51b815260206004820152603360248201527f4d6f7665642066756e64732073776565702074696d656f7574206d757374206260448201527f652067726561746572207468616e207a65726f0000000000000000000000000060648201526084016110c9565b6064811115612ba05760405162461bcd60e51b815260206004820152605260248201527f4d6f7665642066756e64732073776565702074696d656f7574206e6f7469666960448201527f657220726577617264206d756c7469706c696572206d75737420626520696e2060648201527f7468652072616e6765205b302c203130305d0000000000000000000000000000608482015260a4016110c9565b898b60080160006101000a8154816001600160401b0302191690836001600160401b03160217905550888b60080160086101000a8154816001600160401b0302191690836001600160401b03160217905550878b60080160106101000a81548163ffffffff021916908363ffffffff160217905550868b60080160146101000a81548163ffffffff021916908363ffffffff160217905550858b60090160006101000a8154816001600160601b0302191690836001600160601b03160217905550848b600a0181905550838b600b0160006101000a8154816001600160401b0302191690836001600160401b03160217905550828b600b0160086101000a81548163ffffffff021916908363ffffffff160217905550818b600b01600c6101000a8154816001600160601b0302191690836001600160601b03160217905550808b600c01819055507f9fbab8abcd4ce947cd4ffe98e310cc5290d30644941a68e43899b3b6e219ca928a8a8a8a8a8a8a8a8a8a604051612d8e9a999897969594939291906001600160401b039a8b168152988a1660208a015263ffffffff97881660408a015295871660608901526001600160601b03948516608089015260a0880193909352961660c08601529490921660e084015292166101008201526101208101919091526101400190565b60405180910390a15050505050505050505050565b60088701546001600160401b03600160401b909104811690871611612e565760405162461bcd60e51b815260206004820152604a60248201527f526564656d7074696f6e2064757374207468726573686f6c64206d757374206260448201527f652067726561746572207468616e206d6f76696e672066756e6473206475737460648201527f207468726573686f6c6400000000000000000000000000000000000000000000608482015260a4016110c9565b6000856001600160401b031611612ed55760405162461bcd60e51b815260206004820152603960248201527f526564656d7074696f6e207472656173757279206665652064697669736f722060448201527f6d7573742062652067726561746572207468616e207a65726f0000000000000060648201526084016110c9565b6000846001600160401b031611612f545760405162461bcd60e51b815260206004820152603860248201527f526564656d7074696f6e207472616e73616374696f6e206d617820666565206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110c9565b60008311612fca5760405162461bcd60e51b815260206004820152602c60248201527f526564656d7074696f6e2074696d656f7574206d75737420626520677265617460448201527f6572207468616e207a65726f000000000000000000000000000000000000000060648201526084016110c9565b60648111156130675760405162461bcd60e51b815260206004820152604b60248201527f526564656d7074696f6e2074696d656f7574206e6f746966696572207265776160448201527f7264206d756c7469706c696572206d75737420626520696e207468652072616e60648201527f6765205b302c203130305d000000000000000000000000000000000000000000608482015260a4016110c9565b600e870180546001600160401b038881166fffffffffffffffffffffffffffffffff199092168217600160401b898316908102919091177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff16600160801b92891692830217909355600f8a0186905560108a0180546001600160601b0319166001600160601b03871690811790915560118b018590556040805193845260208401949094529282015260608101859052608081019190915260a081018290527f944cd06e316cc3da4159300dd41ab23416c89a5136c41fa79d57fe8a34bcc10f9060c00160405180910390a150505050505050565b600083116131d25760405162461bcd60e51b815260206004820152603860248201527f4672617564206368616c6c656e6765206465666561742074696d656f7574206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110c9565b60648111156132495760405162461bcd60e51b815260206004820152603e60248201527f4672617564206e6f74696669657220726577617264206d756c7469706c69657260448201527f206d75737420626520696e207468652072616e6765205b302c203130305d000060648201526084016110c9565b60148501849055601585018390556016850180546001600160601b0319166001600160601b03841690811790915560178601829055604080518681526020810186905290810191909152606081018290527fd0d6d92441fbb139a023c9c62586dbd767824f37869c45da6443fc3aef64194f9060800160405180910390a15050505050565b6001600160601b031981166000908152601d83016020526040902060036002820154600160c01b900460ff16600581111561330b5761330b614199565b1461337e5760405162461bcd60e51b815260206004820152602560248201527f45434453412077616c6c6574206d75737420626520696e20436c6f73696e672060448201527f737461746500000000000000000000000000000000000000000000000000000060648201526084016110c9565b601c83015460028201546133a29163ffffffff90811691600160801b900416614a26565b63ffffffff16421161341c5760405162461bcd60e51b815260206004820152602260248201527f436c6f73696e6720706572696f6420686173206e6f7420656c6170736564207960448201527f657400000000000000000000000000000000000000000000000000000000000060648201526084016110c9565b6110df83836135cf565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff1983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b603254600090610100900460ff1615613533578160ff1660011480156134b95750303b155b61352b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110c9565b506000919050565b60325460ff8084169116106135b05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110c9565b506032805460ff191660ff92909216919091179055600190565b919050565b6001600160601b031981166000818152601d840160205260408082206002810180547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff167804000000000000000000000000000000000000000000000000179055805491519093927f47b159947c3066cb253f60e8f046cfd747411788a545cb189679e3fa1467b28d91a3600283015481546040517f343bb9270000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163343bb927916136a99160040190815260200190565b600060405180830381600087803b1580156136c357600080fd5b505af1158015611254573d6000803e3d6000fd5b6000602082840312156136e957600080fd5b5035919050565b60008083601f84011261370257600080fd5b5081356001600160401b0381111561371957600080fd5b60208301915083602082850101111561373157600080fd5b9250929050565b6000806000806040858703121561374e57600080fd5b84356001600160401b038082111561376557600080fd5b613771888389016136f0565b9096509450602087013591508082111561378a57600080fd5b50613797878288016136f0565b95989497509550505050565b80356001600160601b0319811681146135ca57600080fd5b6000606082840312156137cd57600080fd5b50919050565b600080608083850312156137e657600080fd5b6137ef836137a3565b91506137fe84602085016137bb565b90509250929050565b6000608082840312156137cd57600080fd5b80356001600160a01b03811681146135ca57600080fd5b60008060008060c0858703121561384657600080fd5b84356001600160401b038082111561385d57600080fd5b61386988838901613807565b9550602087013591508082111561387f57600080fd5b5061388c878288016137bb565b93505061389c86604087016137bb565b91506138aa60a08601613819565b905092959194509250565b80356001600160401b03811681146135ca57600080fd5b6000806000606084860312156138e157600080fd5b6138ea846138b5565b92506138f8602085016138b5565b9150613906604085016138b5565b90509250925092565b60008060008060c0858703121561392557600080fd5b84356001600160401b038082111561393c57600080fd5b61394888838901613807565b9550602087013591508082111561395e57600080fd5b5061396b878288016137bb565b93505061397b86604087016137bb565b91506138aa60a086016137a3565b60008083601f84011261399b57600080fd5b5081356001600160401b038111156139b257600080fd5b6020830191508360208260051b850101111561373157600080fd5b6000806000806000606086880312156139e557600080fd5b6139ee866137a3565b945060208601356001600160401b0380821115613a0a57600080fd5b613a1689838a01613989565b90965094506040880135915080821115613a2f57600080fd5b50613a3c888289016136f0565b969995985093965092949392505050565b600080600060608486031215613a6257600080fd5b505081359360208301359350604090920135919050565b803563ffffffff811681146135ca57600080fd5b60008060008060608587031215613aa357600080fd5b84359350613ab360208601613a79565b925060408501356001600160401b03811115613ace57600080fd5b61379787828801613989565b600080828403610100811215613aef57600080fd5b83356001600160401b03811115613b0557600080fd5b613b1186828701613807565b93505060e0601f1982011215613b2657600080fd5b506020830190509250929050565b803580151581146135ca57600080fd5b60008060408385031215613b5757600080fd5b613b6083613819565b91506137fe60208401613b34565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613b9557600080fd5b81356001600160401b0380821115613baf57613baf613b6e565b604051601f8301601f19908116603f01168101908282118183101715613bd757613bd7613b6e565b81604052838152866020858801011115613bf057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060a08587031215613c2657600080fd5b84356001600160401b0380821115613c3d57600080fd5b613c49888389016136f0565b90965094506020870135915080821115613c6257600080fd5b50613c6f87828801613b84565b9250506138aa86604087016137bb565b600080600080600060608688031215613c9757600080fd5b85356001600160401b0380821115613cae57600080fd5b613cba89838a016136f0565b90975095506020880135915080821115613cd357600080fd5b50613ce0888289016136f0565b9094509250613cf3905060408701613b34565b90509295509295909350565b600080600080600060608688031215613d1757600080fd5b85356001600160401b0380821115613d2e57600080fd5b613d3a89838a016136f0565b90975095506020880135915080821115613d5357600080fd5b613d5f89838a01613989565b90955093506040880135915080821115613d7857600080fd5b50613d8588828901613b84565b9150509295509295909350565b600080600080600080600060e0888a031215613dad57600080fd5b613db688613a79565b9650613dc4602089016138b5565b9550613dd2604089016138b5565b9450613de0606089016138b5565b9350613dee60808901613a79565b9250613dfc60a089016138b5565b9150613e0a60c08901613a79565b905092959891949750929550565b600080600060408486031215613e2d57600080fd5b613e36846137a3565b925060208401356001600160401b03811115613e5157600080fd5b613e5d86828701613989565b9497909650939450505050565b80356001600160601b03811681146135ca57600080fd5b6000806000806000806000806000806101408b8d031215613ea157600080fd5b613eaa8b6138b5565b9950613eb860208c016138b5565b9850613ec660408c01613a79565b9750613ed460608c01613a79565b9650613ee260808c01613e6a565b955060a08b01359450613ef760c08c016138b5565b9350613f0560e08c01613a79565b9250613f146101008c01613e6a565b91506101208b013590509295989b9194979a5092959850565b600060608284031215613f3f57600080fd5b613f4983836137bb565b9392505050565b600080600080600080600060e0888a031215613f6b57600080fd5b613f74886137a3565b9650613f838960208a016137bb565b955060808801356001600160401b0380821115613f9f57600080fd5b613fab8b838c01613989565b909750955060a08a0135945060c08a0135915080821115613fcb57600080fd5b50613fd88a828b01613989565b989b979a50959850939692959293505050565b60008060008060008060c0878903121561400457600080fd5b61400d876138b5565b955061401b602088016138b5565b9450614029604088016138b5565b93506060870135925061403e60808801613e6a565b915060a087013590509295509295509295565b6000806000806080858703121561406757600080fd5b843593506020850135925061407e60408601613e6a565b9396929550929360600135925050565b600080600060a084860312156140a357600080fd5b83356001600160401b03808211156140ba57600080fd5b6140c687838801613807565b945060208601359150808211156140dc57600080fd5b506140e9868287016137bb565b92505061390685604086016137bb565b60006020828403121561410b57600080fd5b613f49826137a3565b60006020828403121561412657600080fd5b613f4982613819565b600080600080600060c0868803121561414757600080fd5b614150866137a3565b945061415f87602088016137bb565b935060808601356001600160401b0381111561417a57600080fd5b614186888289016136f0565b9094509250613cf3905060a087016138b5565b634e487b7160e01b600052602160045260246000fd5b600681106141bf576141bf614199565b9052565b60006101208201905082518252602083015160208301526001600160401b03604084015116604083015263ffffffff60608401511660608301526080830151614214608084018263ffffffff169052565b5060a083015161422c60a084018263ffffffff169052565b5060c083015161424460c084018263ffffffff169052565b5060e083015161425760e08401826141af565b5061010092830151919092015290565b81516001600160601b03191681526020808301516001600160401b03169082015260408083015163ffffffff169082015260608201516080820190600481106142b2576142b2614199565b8060608401525092915050565b600080600080600060a086880312156142d757600080fd5b6142e086613819565b94506142ee60208701613819565b93506142fc60408701613819565b925061430a60608701613819565b949793965091946080013592915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b85815260606020820152600061435e60608301868861431b565b828103604084015261437181858761431b565b98975050505050505050565b8035825263ffffffff61439260208301613a79565b1660208301526001600160401b036143ac604083016138b5565b1660408301525050565b8381526001600160601b03198316602082015260a081016143da604083018461437d565b949350505050565b80356001600160e01b0319811681146135ca57600080fd5b6000808335601e1984360301811261441157600080fd5b83016020810192503590506001600160401b0381111561443057600080fd5b80360383131561373157600080fd5b60006001600160e01b031980614454846143e2565b16845261446460208401846143fa565b6080602087015261447960808701828461431b565b91505061448960408501856143fa565b868303604088015261449c83828461431b565b92505050816144ad606086016143e2565b166060860152809250505092915050565b60006144ca82836143fa565b606085526144dc60608601828461431b565b915050602083013560208501526144f660408401846143fa565b858303604087015261450983828461431b565b9695505050505050565b85815260e06020820152600061452c60e083018761443f565b828103604084015261453e81876144be565b91505061454e606083018561437d565b6001600160a01b03831660c08301529695505050505050565b85815260e06020820152600061458060e083018761443f565b828103604084015261459281876144be565b9150506145a2606083018561437d565b6001600160601b0319831660c08301529695505050505050565b8183526000602080850194508260005b858110156145f55763ffffffff6145e283613a79565b16875295820195908201906001016145cc565b509495945050505050565b8681526001600160601b03198616602082015260806040820152600061462a6080830186886145bc565b828103606084015261463d81858761431b565b9998505050505050505050565b85815284602082015263ffffffff841660408201526080606082015260006146766080830184866145bc565b979650505050505050565b600061012085835280602084015261469b8184018661443f565b91505063ffffffff6146ac84613a79565b1660408301526001600160a01b036146c660208501613819565b166060830152604083013577ffffffffffffffffffffffffffffffffffffffffffffffff19811681146146f857600080fd5b77ffffffffffffffffffffffffffffffffffffffffffffffff19166080830152614724606084016137a3565b6001600160601b03191660a083015261473f608084016137a3565b6001600160601b03191660c083015261475a60a084016143e2565b6001600160e01b03191660e083015261477560c08401613819565b6001600160a01b03811661010084015250949350505050565b6000815180845260005b818110156147b457602081850181015186830182015201614798565b818111156147c6576000602083870101525b50601f01601f19169290920160200192915050565b85815260c0602082015260006147f560c08301868861431b565b8281036040840152614807818661478e565b9150508235606083015260208301356080830152604083013560ff811680821461483057600080fd5b8060a085015250509695505050505050565b86815260806020820152600061485c60808301878961431b565b828103604084015261486f81868861431b565b9150508215156060830152979650505050505050565b86815260806020820152600061489f60808301878961431b565b82810360408401526148b28186886145bc565b9050828103606084015261463d818561478e565b8481526001600160601b0319841660208201526060604082015260006145096060830184866145bc565b82815260808101613f49602083018461437d565b60006101008a835260206001600160601b0319808c168286015261492b604086018c61437d565b8260a086015261493e8386018a8c6145bc565b60c0860189905285810360e0870152868152879350820160005b8781101561497d578261496a866137a3565b1682529383019390830190600101614958565b509d9c50505050505050505050505050565b84815260c0602082015260006149a860c083018661443f565b82810360408401526149ba81866144be565b9150506149ca606083018461437d565b95945050505050565b8681526001600160601b0319861660208201526149f3604082018661437d565b60e060a08201526000614a0a60e08301858761431b565b90506001600160401b03831660c0830152979650505050505050565b600063ffffffff808316818516808303821115614a5357634e487b7160e01b600052601160045260246000fd5b0194935050505056fea2646970667358221220d01fac442abd6fb4465cc44e597510e2102e8ffceb12ab7d2f5c30a5e0b406ff64736f6c63430008090033",
2443
+ "linkReferences": {
2444
+ "contracts/bridge/Deposit.sol": {
2445
+ "Deposit": [
2446
+ {
2447
+ "length": 20,
2448
+ "start": 4947
2449
+ }
2450
+ ]
2451
+ },
2452
+ "contracts/bridge/DepositSweep.sol": {
2453
+ "DepositSweep": [
2454
+ {
2455
+ "length": 20,
2456
+ "start": 4194
2457
+ }
2458
+ ]
2459
+ },
2460
+ "contracts/bridge/Fraud.sol": {
2461
+ "Fraud": [
2462
+ {
2463
+ "length": 20,
2464
+ "start": 3914
2465
+ },
2466
+ {
2467
+ "length": 20,
2468
+ "start": 5217
2469
+ },
2470
+ {
2471
+ "length": 20,
2472
+ "start": 5306
2473
+ },
2474
+ {
2475
+ "length": 20,
2476
+ "start": 5397
2477
+ }
2478
+ ]
2479
+ },
2480
+ "contracts/bridge/MovingFunds.sol": {
2481
+ "MovingFunds": [
2482
+ {
2483
+ "length": 20,
2484
+ "start": 4057
2485
+ },
2486
+ {
2487
+ "length": 20,
2488
+ "start": 4395
2489
+ },
2490
+ {
2491
+ "length": 20,
2492
+ "start": 4773
2493
+ },
2494
+ {
2495
+ "length": 20,
2496
+ "start": 5595
2497
+ },
2498
+ {
2499
+ "length": 20,
2500
+ "start": 6040
2501
+ },
2502
+ {
2503
+ "length": 20,
2504
+ "start": 6497
2505
+ },
2506
+ {
2507
+ "length": 20,
2508
+ "start": 7226
2509
+ }
2510
+ ]
2511
+ },
2512
+ "contracts/bridge/Redemption.sol": {
2513
+ "Redemption": [
2514
+ {
2515
+ "length": 20,
2516
+ "start": 4483
2517
+ },
2518
+ {
2519
+ "length": 20,
2520
+ "start": 6408
2521
+ },
2522
+ {
2523
+ "length": 20,
2524
+ "start": 6821
2525
+ }
2526
+ ]
2527
+ },
2528
+ "contracts/bridge/Wallets.sol": {
2529
+ "Wallets": [
2530
+ {
2531
+ "length": 20,
2532
+ "start": 4650
2533
+ },
2534
+ {
2535
+ "length": 20,
2536
+ "start": 4862
2537
+ },
2538
+ {
2539
+ "length": 20,
2540
+ "start": 5804
2541
+ },
2542
+ {
2543
+ "length": 20,
2544
+ "start": 5966
2545
+ }
2546
+ ]
2547
+ }
2548
+ },
2549
+ "deployedLinkReferences": {
2550
+ "contracts/bridge/Deposit.sol": {
2551
+ "Deposit": [
2552
+ {
2553
+ "length": 20,
2554
+ "start": 4915
2555
+ }
2556
+ ]
2557
+ },
2558
+ "contracts/bridge/DepositSweep.sol": {
2559
+ "DepositSweep": [
2560
+ {
2561
+ "length": 20,
2562
+ "start": 4162
2563
+ }
2564
+ ]
2565
+ },
2566
+ "contracts/bridge/Fraud.sol": {
2567
+ "Fraud": [
2568
+ {
2569
+ "length": 20,
2570
+ "start": 3882
2571
+ },
2572
+ {
2573
+ "length": 20,
2574
+ "start": 5185
2575
+ },
2576
+ {
2577
+ "length": 20,
2578
+ "start": 5274
2579
+ },
2580
+ {
2581
+ "length": 20,
2582
+ "start": 5365
2583
+ }
2584
+ ]
2585
+ },
2586
+ "contracts/bridge/MovingFunds.sol": {
2587
+ "MovingFunds": [
2588
+ {
2589
+ "length": 20,
2590
+ "start": 4025
2591
+ },
2592
+ {
2593
+ "length": 20,
2594
+ "start": 4363
2595
+ },
2596
+ {
2597
+ "length": 20,
2598
+ "start": 4741
2599
+ },
2600
+ {
2601
+ "length": 20,
2602
+ "start": 5563
2603
+ },
2604
+ {
2605
+ "length": 20,
2606
+ "start": 6008
2607
+ },
2608
+ {
2609
+ "length": 20,
2610
+ "start": 6465
2611
+ },
2612
+ {
2613
+ "length": 20,
2614
+ "start": 7194
2615
+ }
2616
+ ]
2617
+ },
2618
+ "contracts/bridge/Redemption.sol": {
2619
+ "Redemption": [
2620
+ {
2621
+ "length": 20,
2622
+ "start": 4451
2623
+ },
2624
+ {
2625
+ "length": 20,
2626
+ "start": 6376
2627
+ },
2628
+ {
2629
+ "length": 20,
2630
+ "start": 6789
2631
+ }
2632
+ ]
2633
+ },
2634
+ "contracts/bridge/Wallets.sol": {
2635
+ "Wallets": [
2636
+ {
2637
+ "length": 20,
2638
+ "start": 4618
2639
+ },
2640
+ {
2641
+ "length": 20,
2642
+ "start": 4830
2643
+ },
2644
+ {
2645
+ "length": 20,
2646
+ "start": 5772
2647
+ },
2648
+ {
2649
+ "length": 20,
2650
+ "start": 5934
2651
+ }
2652
+ ]
2653
+ }
2654
+ }
335
2655
  }