@keep-network/tbtc-v2 1.6.0-dev.17 → 1.6.0-dev.18

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 (86) hide show
  1. package/artifacts/BLS.json +1 -1
  2. package/artifacts/Bank.json +2 -2
  3. package/artifacts/BeaconAuthorization.json +1 -1
  4. package/artifacts/BeaconDkg.json +1 -1
  5. package/artifacts/BeaconDkgValidator.json +1 -1
  6. package/artifacts/BeaconInactivity.json +1 -1
  7. package/artifacts/BeaconSortitionPool.json +3 -3
  8. package/artifacts/Bridge.json +5 -5
  9. package/artifacts/BridgeGovernance.json +2 -2
  10. package/artifacts/BridgeGovernanceParameters.json +1 -1
  11. package/artifacts/Deposit.json +1 -1
  12. package/artifacts/DepositSweep.json +1 -1
  13. package/artifacts/DonationVault.json +1 -1
  14. package/artifacts/EcdsaDkgValidator.json +1 -1
  15. package/artifacts/EcdsaInactivity.json +1 -1
  16. package/artifacts/EcdsaSortitionPool.json +3 -3
  17. package/artifacts/Fraud.json +1 -1
  18. package/artifacts/LightRelay.json +2 -2
  19. package/artifacts/LightRelayMaintainerProxy.json +2 -2
  20. package/artifacts/MaintainerProxy.json +2 -2
  21. package/artifacts/MovingFunds.json +1 -1
  22. package/artifacts/NuCypherToken.json +2 -2
  23. package/artifacts/RandomBeacon.json +2 -2
  24. package/artifacts/RandomBeaconChaosnet.json +2 -2
  25. package/artifacts/RandomBeaconGovernance.json +2 -2
  26. package/artifacts/Redemption.json +1 -1
  27. package/artifacts/ReimbursementPool.json +2 -2
  28. package/artifacts/T.json +2 -2
  29. package/artifacts/TBTC.json +2 -2
  30. package/artifacts/TBTCToken.json +2 -2
  31. package/artifacts/TBTCVault.json +2 -2
  32. package/artifacts/TokenStaking.json +1 -1
  33. package/artifacts/TokenholderGovernor.json +9 -9
  34. package/artifacts/TokenholderTimelock.json +8 -8
  35. package/artifacts/VendingMachine.json +2 -2
  36. package/artifacts/VendingMachineNuCypher.json +1 -1
  37. package/artifacts/VendingMachineV2.json +2 -2
  38. package/artifacts/VendingMachineV3.json +2 -2
  39. package/artifacts/WalletProposalValidator.json +1 -1
  40. package/artifacts/WalletRegistry.json +5 -5
  41. package/artifacts/WalletRegistryGovernance.json +2 -2
  42. package/artifacts/Wallets.json +1 -1
  43. package/build/contracts/test/BankStub.sol/BankStub.dbg.json +4 -0
  44. package/build/contracts/test/BankStub.sol/BankStub.json +555 -0
  45. package/build/contracts/test/BridgeStub.sol/BridgeStub.dbg.json +4 -0
  46. package/build/contracts/test/BridgeStub.sol/BridgeStub.json +3318 -0
  47. package/build/contracts/test/HeartbeatStub.sol/HeartbeatStub.dbg.json +4 -0
  48. package/build/contracts/test/HeartbeatStub.sol/HeartbeatStub.json +30 -0
  49. package/build/contracts/test/LightRelayStub.sol/LightRelayStub.dbg.json +4 -0
  50. package/build/contracts/test/LightRelayStub.sol/LightRelayStub.json +467 -0
  51. package/build/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.dbg.json +4 -0
  52. package/build/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.json +96 -0
  53. package/build/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.dbg.json +4 -0
  54. package/build/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.json +456 -0
  55. package/build/contracts/test/SystemTestRelay.sol/SystemTestRelay.dbg.json +4 -0
  56. package/build/contracts/test/SystemTestRelay.sol/SystemTestRelay.json +89 -0
  57. package/build/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.dbg.json +4 -0
  58. package/build/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.json +102 -0
  59. package/build/contracts/test/TestERC20.sol/TestERC20.dbg.json +4 -0
  60. package/build/contracts/test/TestERC20.sol/TestERC20.json +508 -0
  61. package/build/contracts/test/TestERC721.sol/TestERC721.dbg.json +4 -0
  62. package/build/contracts/test/TestERC721.sol/TestERC721.json +390 -0
  63. package/build/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.dbg.json +4 -0
  64. package/build/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.json +35 -0
  65. package/build/contracts/test/TestTBTCDepositor.sol/MockBridge.dbg.json +4 -0
  66. package/build/contracts/test/TestTBTCDepositor.sol/MockBridge.json +224 -0
  67. package/build/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.dbg.json +4 -0
  68. package/build/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.json +87 -0
  69. package/build/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.dbg.json +4 -0
  70. package/build/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.json +283 -0
  71. package/build/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.dbg.json +4 -0
  72. package/build/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.json +372 -0
  73. package/contracts/test/BankStub.sol +11 -0
  74. package/contracts/test/BridgeStub.sol +174 -0
  75. package/contracts/test/HeartbeatStub.sol +16 -0
  76. package/contracts/test/LightRelayStub.sol +15 -0
  77. package/contracts/test/ReceiveApprovalStub.sol +33 -0
  78. package/contracts/test/SepoliaLightRelay.sol +48 -0
  79. package/contracts/test/SystemTestRelay.sol +57 -0
  80. package/contracts/test/TestBitcoinTx.sol +24 -0
  81. package/contracts/test/TestERC20.sol +12 -0
  82. package/contracts/test/TestERC721.sol +16 -0
  83. package/contracts/test/TestEcdsaLib.sol +17 -0
  84. package/contracts/test/TestTBTCDepositor.sol +196 -0
  85. package/contracts/test/WormholeBridgeStub.sol +125 -0
  86. package/package.json +1 -2
@@ -0,0 +1,96 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ReceiveApprovalStub",
4
+ "sourceName": "contracts/test/ReceiveApprovalStub.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "address",
12
+ "name": "from",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "indexed": false,
17
+ "internalType": "uint256",
18
+ "name": "value",
19
+ "type": "uint256"
20
+ },
21
+ {
22
+ "indexed": false,
23
+ "internalType": "address",
24
+ "name": "token",
25
+ "type": "address"
26
+ },
27
+ {
28
+ "indexed": false,
29
+ "internalType": "bytes",
30
+ "name": "extraData",
31
+ "type": "bytes"
32
+ }
33
+ ],
34
+ "name": "ApprovalReceived",
35
+ "type": "event"
36
+ },
37
+ {
38
+ "inputs": [
39
+ {
40
+ "internalType": "address",
41
+ "name": "from",
42
+ "type": "address"
43
+ },
44
+ {
45
+ "internalType": "uint256",
46
+ "name": "value",
47
+ "type": "uint256"
48
+ },
49
+ {
50
+ "internalType": "address",
51
+ "name": "token",
52
+ "type": "address"
53
+ },
54
+ {
55
+ "internalType": "bytes",
56
+ "name": "extraData",
57
+ "type": "bytes"
58
+ }
59
+ ],
60
+ "name": "receiveApproval",
61
+ "outputs": [],
62
+ "stateMutability": "nonpayable",
63
+ "type": "function"
64
+ },
65
+ {
66
+ "inputs": [
67
+ {
68
+ "internalType": "bool",
69
+ "name": "_shouldRevert",
70
+ "type": "bool"
71
+ }
72
+ ],
73
+ "name": "setShouldRevert",
74
+ "outputs": [],
75
+ "stateMutability": "nonpayable",
76
+ "type": "function"
77
+ },
78
+ {
79
+ "inputs": [],
80
+ "name": "shouldRevert",
81
+ "outputs": [
82
+ {
83
+ "internalType": "bool",
84
+ "name": "",
85
+ "type": "bool"
86
+ }
87
+ ],
88
+ "stateMutability": "view",
89
+ "type": "function"
90
+ }
91
+ ],
92
+ "bytecode": "0x608060405234801561001057600080fd5b506102d8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80636813d787146100465780638f4ffcb114610069578063d3072d821461007c575b600080fd5b610067610054366004610154565b6000805460ff1916911515919091179055565b005b6100676100773660046101a6565b61009d565b6000546100899060ff1681565b604051901515815260200160405180910390f35b60005460ff161561010e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6920616d20796f757220666174686572206c756b650000000000000000000000604482015260640160405180910390fd5b7fc63af2ad6010d3d2613f98ba69779c3c407a587c09ec33352636f307a597fa0f8585858585604051610145959493929190610241565b60405180910390a15050505050565b60006020828403121561016657600080fd5b8135801515811461017657600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146101a157600080fd5b919050565b6000806000806000608086880312156101be57600080fd5b6101c78661017d565b9450602086013593506101dc6040870161017d565b9250606086013567ffffffffffffffff808211156101f957600080fd5b818801915088601f83011261020d57600080fd5b81358181111561021c57600080fd5b89602082850101111561022e57600080fd5b9699959850939650602001949392505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835286602084015280861660408401525060806060830152826080830152828460a0840137600060a0848401015260a0601f19601f8501168301019050969550505050505056fea26469706673582212201ffc40bd72b3ba51d9f2d1b2d594d8f82d08c9a4115bd36e47079f15d23791a064736f6c63430008110033",
93
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80636813d787146100465780638f4ffcb114610069578063d3072d821461007c575b600080fd5b610067610054366004610154565b6000805460ff1916911515919091179055565b005b6100676100773660046101a6565b61009d565b6000546100899060ff1681565b604051901515815260200160405180910390f35b60005460ff161561010e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6920616d20796f757220666174686572206c756b650000000000000000000000604482015260640160405180910390fd5b7fc63af2ad6010d3d2613f98ba69779c3c407a587c09ec33352636f307a597fa0f8585858585604051610145959493929190610241565b60405180910390a15050505050565b60006020828403121561016657600080fd5b8135801515811461017657600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146101a157600080fd5b919050565b6000806000806000608086880312156101be57600080fd5b6101c78661017d565b9450602086013593506101dc6040870161017d565b9250606086013567ffffffffffffffff808211156101f957600080fd5b818801915088601f83011261020d57600080fd5b81358181111561021c57600080fd5b89602082850101111561022e57600080fd5b9699959850939650602001949392505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835286602084015280861660408401525060806060830152826080830152828460a0840137600060a0848401015260a0601f19601f8501168301019050969550505050505056fea26469706673582212201ffc40bd72b3ba51d9f2d1b2d594d8f82d08c9a4115bd36e47079f15d23791a064736f6c63430008110033",
94
+ "linkReferences": {},
95
+ "deployedLinkReferences": {}
96
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/fd90cfb34a89b5cd7ef101e64705ab37.json"
4
+ }
@@ -0,0 +1,456 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "SepoliaLightRelay",
4
+ "sourceName": "contracts/test/SepoliaLightRelay.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "bool",
12
+ "name": "newStatus",
13
+ "type": "bool"
14
+ }
15
+ ],
16
+ "name": "AuthorizationRequirementChanged",
17
+ "type": "event"
18
+ },
19
+ {
20
+ "anonymous": false,
21
+ "inputs": [
22
+ {
23
+ "indexed": false,
24
+ "internalType": "uint256",
25
+ "name": "blockHeight",
26
+ "type": "uint256"
27
+ }
28
+ ],
29
+ "name": "Genesis",
30
+ "type": "event"
31
+ },
32
+ {
33
+ "anonymous": false,
34
+ "inputs": [
35
+ {
36
+ "indexed": true,
37
+ "internalType": "address",
38
+ "name": "previousOwner",
39
+ "type": "address"
40
+ },
41
+ {
42
+ "indexed": true,
43
+ "internalType": "address",
44
+ "name": "newOwner",
45
+ "type": "address"
46
+ }
47
+ ],
48
+ "name": "OwnershipTransferred",
49
+ "type": "event"
50
+ },
51
+ {
52
+ "anonymous": false,
53
+ "inputs": [
54
+ {
55
+ "indexed": false,
56
+ "internalType": "uint256",
57
+ "name": "newLength",
58
+ "type": "uint256"
59
+ }
60
+ ],
61
+ "name": "ProofLengthChanged",
62
+ "type": "event"
63
+ },
64
+ {
65
+ "anonymous": false,
66
+ "inputs": [
67
+ {
68
+ "indexed": false,
69
+ "internalType": "uint256",
70
+ "name": "oldDifficulty",
71
+ "type": "uint256"
72
+ },
73
+ {
74
+ "indexed": false,
75
+ "internalType": "uint256",
76
+ "name": "newDifficulty",
77
+ "type": "uint256"
78
+ }
79
+ ],
80
+ "name": "Retarget",
81
+ "type": "event"
82
+ },
83
+ {
84
+ "anonymous": false,
85
+ "inputs": [
86
+ {
87
+ "indexed": false,
88
+ "internalType": "address",
89
+ "name": "submitter",
90
+ "type": "address"
91
+ }
92
+ ],
93
+ "name": "SubmitterAuthorized",
94
+ "type": "event"
95
+ },
96
+ {
97
+ "anonymous": false,
98
+ "inputs": [
99
+ {
100
+ "indexed": false,
101
+ "internalType": "address",
102
+ "name": "submitter",
103
+ "type": "address"
104
+ }
105
+ ],
106
+ "name": "SubmitterDeauthorized",
107
+ "type": "event"
108
+ },
109
+ {
110
+ "inputs": [],
111
+ "name": "authorizationRequired",
112
+ "outputs": [
113
+ {
114
+ "internalType": "bool",
115
+ "name": "",
116
+ "type": "bool"
117
+ }
118
+ ],
119
+ "stateMutability": "view",
120
+ "type": "function"
121
+ },
122
+ {
123
+ "inputs": [
124
+ {
125
+ "internalType": "address",
126
+ "name": "submitter",
127
+ "type": "address"
128
+ }
129
+ ],
130
+ "name": "authorize",
131
+ "outputs": [],
132
+ "stateMutability": "nonpayable",
133
+ "type": "function"
134
+ },
135
+ {
136
+ "inputs": [],
137
+ "name": "currentEpoch",
138
+ "outputs": [
139
+ {
140
+ "internalType": "uint64",
141
+ "name": "",
142
+ "type": "uint64"
143
+ }
144
+ ],
145
+ "stateMutability": "view",
146
+ "type": "function"
147
+ },
148
+ {
149
+ "inputs": [
150
+ {
151
+ "internalType": "address",
152
+ "name": "submitter",
153
+ "type": "address"
154
+ }
155
+ ],
156
+ "name": "deauthorize",
157
+ "outputs": [],
158
+ "stateMutability": "nonpayable",
159
+ "type": "function"
160
+ },
161
+ {
162
+ "inputs": [
163
+ {
164
+ "internalType": "bytes",
165
+ "name": "genesisHeader",
166
+ "type": "bytes"
167
+ },
168
+ {
169
+ "internalType": "uint256",
170
+ "name": "genesisHeight",
171
+ "type": "uint256"
172
+ },
173
+ {
174
+ "internalType": "uint64",
175
+ "name": "genesisProofLength",
176
+ "type": "uint64"
177
+ }
178
+ ],
179
+ "name": "genesis",
180
+ "outputs": [],
181
+ "stateMutability": "nonpayable",
182
+ "type": "function"
183
+ },
184
+ {
185
+ "inputs": [],
186
+ "name": "genesisEpoch",
187
+ "outputs": [
188
+ {
189
+ "internalType": "uint64",
190
+ "name": "",
191
+ "type": "uint64"
192
+ }
193
+ ],
194
+ "stateMutability": "view",
195
+ "type": "function"
196
+ },
197
+ {
198
+ "inputs": [
199
+ {
200
+ "internalType": "uint256",
201
+ "name": "blockNumber",
202
+ "type": "uint256"
203
+ }
204
+ ],
205
+ "name": "getBlockDifficulty",
206
+ "outputs": [
207
+ {
208
+ "internalType": "uint256",
209
+ "name": "",
210
+ "type": "uint256"
211
+ }
212
+ ],
213
+ "stateMutability": "view",
214
+ "type": "function"
215
+ },
216
+ {
217
+ "inputs": [],
218
+ "name": "getCurrentAndPrevEpochDifficulty",
219
+ "outputs": [
220
+ {
221
+ "internalType": "uint256",
222
+ "name": "current",
223
+ "type": "uint256"
224
+ },
225
+ {
226
+ "internalType": "uint256",
227
+ "name": "previous",
228
+ "type": "uint256"
229
+ }
230
+ ],
231
+ "stateMutability": "view",
232
+ "type": "function"
233
+ },
234
+ {
235
+ "inputs": [],
236
+ "name": "getCurrentEpochDifficulty",
237
+ "outputs": [
238
+ {
239
+ "internalType": "uint256",
240
+ "name": "",
241
+ "type": "uint256"
242
+ }
243
+ ],
244
+ "stateMutability": "view",
245
+ "type": "function"
246
+ },
247
+ {
248
+ "inputs": [
249
+ {
250
+ "internalType": "uint256",
251
+ "name": "epochNumber",
252
+ "type": "uint256"
253
+ }
254
+ ],
255
+ "name": "getEpochDifficulty",
256
+ "outputs": [
257
+ {
258
+ "internalType": "uint256",
259
+ "name": "",
260
+ "type": "uint256"
261
+ }
262
+ ],
263
+ "stateMutability": "view",
264
+ "type": "function"
265
+ },
266
+ {
267
+ "inputs": [],
268
+ "name": "getPrevEpochDifficulty",
269
+ "outputs": [
270
+ {
271
+ "internalType": "uint256",
272
+ "name": "",
273
+ "type": "uint256"
274
+ }
275
+ ],
276
+ "stateMutability": "view",
277
+ "type": "function"
278
+ },
279
+ {
280
+ "inputs": [],
281
+ "name": "getRelayRange",
282
+ "outputs": [
283
+ {
284
+ "internalType": "uint256",
285
+ "name": "relayGenesis",
286
+ "type": "uint256"
287
+ },
288
+ {
289
+ "internalType": "uint256",
290
+ "name": "currentEpochEnd",
291
+ "type": "uint256"
292
+ }
293
+ ],
294
+ "stateMutability": "view",
295
+ "type": "function"
296
+ },
297
+ {
298
+ "inputs": [
299
+ {
300
+ "internalType": "address",
301
+ "name": "",
302
+ "type": "address"
303
+ }
304
+ ],
305
+ "name": "isAuthorized",
306
+ "outputs": [
307
+ {
308
+ "internalType": "bool",
309
+ "name": "",
310
+ "type": "bool"
311
+ }
312
+ ],
313
+ "stateMutability": "view",
314
+ "type": "function"
315
+ },
316
+ {
317
+ "inputs": [],
318
+ "name": "owner",
319
+ "outputs": [
320
+ {
321
+ "internalType": "address",
322
+ "name": "",
323
+ "type": "address"
324
+ }
325
+ ],
326
+ "stateMutability": "view",
327
+ "type": "function"
328
+ },
329
+ {
330
+ "inputs": [],
331
+ "name": "proofLength",
332
+ "outputs": [
333
+ {
334
+ "internalType": "uint64",
335
+ "name": "",
336
+ "type": "uint64"
337
+ }
338
+ ],
339
+ "stateMutability": "view",
340
+ "type": "function"
341
+ },
342
+ {
343
+ "inputs": [],
344
+ "name": "ready",
345
+ "outputs": [
346
+ {
347
+ "internalType": "bool",
348
+ "name": "",
349
+ "type": "bool"
350
+ }
351
+ ],
352
+ "stateMutability": "view",
353
+ "type": "function"
354
+ },
355
+ {
356
+ "inputs": [],
357
+ "name": "renounceOwnership",
358
+ "outputs": [],
359
+ "stateMutability": "nonpayable",
360
+ "type": "function"
361
+ },
362
+ {
363
+ "inputs": [
364
+ {
365
+ "internalType": "bytes",
366
+ "name": "headers",
367
+ "type": "bytes"
368
+ }
369
+ ],
370
+ "name": "retarget",
371
+ "outputs": [],
372
+ "stateMutability": "nonpayable",
373
+ "type": "function"
374
+ },
375
+ {
376
+ "inputs": [
377
+ {
378
+ "internalType": "bool",
379
+ "name": "status",
380
+ "type": "bool"
381
+ }
382
+ ],
383
+ "name": "setAuthorizationStatus",
384
+ "outputs": [],
385
+ "stateMutability": "nonpayable",
386
+ "type": "function"
387
+ },
388
+ {
389
+ "inputs": [
390
+ {
391
+ "internalType": "bytes",
392
+ "name": "bitcoinHeaders",
393
+ "type": "bytes"
394
+ }
395
+ ],
396
+ "name": "setDifficultyFromHeaders",
397
+ "outputs": [],
398
+ "stateMutability": "nonpayable",
399
+ "type": "function"
400
+ },
401
+ {
402
+ "inputs": [
403
+ {
404
+ "internalType": "uint64",
405
+ "name": "newLength",
406
+ "type": "uint64"
407
+ }
408
+ ],
409
+ "name": "setProofLength",
410
+ "outputs": [],
411
+ "stateMutability": "nonpayable",
412
+ "type": "function"
413
+ },
414
+ {
415
+ "inputs": [
416
+ {
417
+ "internalType": "address",
418
+ "name": "newOwner",
419
+ "type": "address"
420
+ }
421
+ ],
422
+ "name": "transferOwnership",
423
+ "outputs": [],
424
+ "stateMutability": "nonpayable",
425
+ "type": "function"
426
+ },
427
+ {
428
+ "inputs": [
429
+ {
430
+ "internalType": "bytes",
431
+ "name": "headers",
432
+ "type": "bytes"
433
+ }
434
+ ],
435
+ "name": "validateChain",
436
+ "outputs": [
437
+ {
438
+ "internalType": "uint256",
439
+ "name": "startingHeaderTimestamp",
440
+ "type": "uint256"
441
+ },
442
+ {
443
+ "internalType": "uint256",
444
+ "name": "headerCount",
445
+ "type": "uint256"
446
+ }
447
+ ],
448
+ "stateMutability": "view",
449
+ "type": "function"
450
+ }
451
+ ],
452
+ "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6120d58061007e6000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c8063715018a6116100e3578063b70e6be61161008c578063f2fde38b11610066578063f2fde38b14610340578063f5619fda14610353578063fe9fbb801461036e57600080fd5b8063b70e6be614610306578063d38c29a11461031a578063eb8695ef1461032d57600080fd5b80638da5cb5b116100bd5780638da5cb5b146102c457806395410d2b146102df578063b6a5d7de146102f357600080fd5b8063715018a614610275578063766718081461027d5780637ca5b1dd146102b157600080fd5b806327c97fa5116101455780634ca49f511161011f5780634ca49f511461022b578063620414e61461023e5780636defbf801461025157600080fd5b806327c97fa5146102055780632b97be24146102185780633a1b77b01461022057600080fd5b8063113764be11610176578063113764be146101d5578063189179a3146101dd57806319c9aa32146101f057600080fd5b806306a274221461019257806310b76ed8146101b8575b600080fd5b6101a56101a0366004611c75565b610391565b6040519081526020015b60405180910390f35b6101c06103a8565b604080519283526020830191909152016101af565b6002546101a5565b6101c06101eb366004611ca4565b610408565b6102036101fe366004611d72565b610800565b005b610203610213366004611d8d565b6109f3565b6003546101a5565b6002546003546101c0565b610203610239366004611db6565b610a4c565b6101a561024c366004611c75565b610e15565b60005461026590600160a01b900460ff1681565b60405190151581526020016101af565b610203610f25565b60015461029890600160401b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101af565b6102036102bf366004611ca4565b610f39565b6000546040516001600160a01b0390911681526020016101af565b60005461026590600160a81b900460ff1681565b610203610301366004611d8d565b6114d7565b6001546102989067ffffffffffffffff1681565b610203610328366004611ca4565b611533565b61020361033b366004611e3f565b61155a565b61020361034e366004611d8d565b6115ca565b60005461029890600160b01b900467ffffffffffffffff1681565b61026561037c366004611d8d565b60056020526000908152604090205460ff1681565b60006103a261024c6107e084611e8d565b92915050565b60015460009081906103c69067ffffffffffffffff166107e0611ea1565b60015467ffffffffffffffff91821693506103ec91600160401b909104166107e0611ea1565b6103f8906107df611ecd565b67ffffffffffffffff1690509091565b600080605083516104199190611ef5565b1561046b5760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e677468000000000000000000000060448201526064015b60405180910390fd5b605083516104799190611e8d565b905060018111801561048c57506107e081105b6104d85760405162461bcd60e51b815260206004820152601960248201527f496e76616c6964206e756d626572206f662068656164657273000000000000006044820152606401610462565b6104e18361165a565b63ffffffff1691506000806104f785828061168e565b6040805180820182526000808252602080830182905260015467ffffffffffffffff600160401b90910416808352600482529184902084518086019095525463ffffffff8116855264010000000090046001600160e01b031690840152939550919350909190825b815163ffffffff168810156105bd57610579600184611f09565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b03169082015290935091905061055f565b815163ffffffff166106375760405162461bcd60e51b815260206004820152602b60248201527f43616e6e6f742076616c696461746520636861696e73206265666f726520726560448201527f6c61792067656e657369730000000000000000000000000000000000000000006064820152608401610462565b81602001516001600160e01b031685146107015780602001516001600160e01b0316850361066757905082610701565b610672600184611f09565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b031690820181905291945092915085146107015760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e00006044820152606401610462565b60015b878110156107f45760006107238b61071d846050611f1c565b8a61168e565b60208601519098509091506001600160e01b031687146107e057600061075461074d846050611f1c565b8d90611766565b845163ffffffff9182169250161580159061077b575083602001516001600160e01b031688145b801561078d5750835163ffffffff1681145b6107d95760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e00006044820152606401610462565b5091925084915b9650806107ec81611f33565b915050610704565b50505050505050915091565b600054600160a01b900460ff166108595760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f72207573650000000000006044820152606401610462565b610861611787565b6107e08167ffffffffffffffff16106108bc5760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820657863657373697665000000000000000000006044820152606401610462565b60008167ffffffffffffffff16116109165760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f000000006044820152606401610462565b60005467ffffffffffffffff600160b01b90910481169082160361097c5760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820756e6368616e676564000000000000000000006044820152606401610462565b600080547fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff16600160b01b67ffffffffffffffff8416908102919091179091556040519081527f3e9f904d8cf11753c79b67c8259c582056d4a7d8af120f81257a59eeb8824b96906020015b60405180910390a150565b6109fb611787565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f7498b96beeabea5ad3139f1a2861a03e480034254e36b10aae2e6e42ad7b4b6891016109e8565b610a54611787565b600054600160a01b900460ff1615610aae5760405162461bcd60e51b815260206004820152601960248201527f47656e6573697320616c726561647920706572666f726d6564000000000000006044820152606401610462565b60508314610afe5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642067656e6573697320686561646572206c656e6774680000006044820152606401610462565b610b0a6107e083611ef5565b15610b7d5760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420686569676874206f662072656c61792067656e657369732060448201527f626c6f636b0000000000000000000000000000000000000000000000000000006064820152608401610462565b6107e08167ffffffffffffffff1610610bd85760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820657863657373697665000000000000000000006044820152606401610462565b60008167ffffffffffffffff1611610c325760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f000000006044820152606401610462565b610c3e6107e083611e8d565b600180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001667ffffffffffffffff92909216918217600160401b92909202919091179055604080516020601f8601819004810282018101909252848152600091610cc4919087908790819084018382808284376000920191909152506117e192505050565b90506000610d0786868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061165a92505050565b60408051808201825263ffffffff9283168082526001600160e01b03808716602080850191825260015467ffffffffffffffff9081166000908152600490925295812094519151909216640100000000029516949094179091558254918616600160b01b027fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff909216919091179091559050610da2826117ee565b600255600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790556040517f2381d16925551c2fb1a5edfcf4fce2f6d085e1f85f4b88340c09c9d191f9d4e990610e059086815260200190565b60405180910390a1505050505050565b60015460009067ffffffffffffffff16821015610e745760405162461bcd60e51b815260206004820152601d60248201527f45706f6368206973206265666f72652072656c61792067656e657369730000006044820152606401610462565b600154600160401b900467ffffffffffffffff16821115610efc5760405162461bcd60e51b8152602060048201526024808201527f45706f6368206973206e6f742070726f76656e20746f207468652072656c617960448201527f20796574000000000000000000000000000000000000000000000000000000006064820152608401610462565b6000828152600460205260409020546103a29064010000000090046001600160e01b03166117ee565b610f2d611787565b610f376000611816565b565b600054600160a01b900460ff16610f925760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f72207573650000000000006044820152606401610462565b600054600160a81b900460ff1615611003573360009081526005602052604090205460ff166110035760405162461bcd60e51b815260206004820152601660248201527f5375626d697474657220756e617574686f72697a6564000000000000000000006044820152606401610462565b60005461102290600160b01b900467ffffffffffffffff166002611ea1565b61102d906050611ea1565b67ffffffffffffffff168151146110865760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e67746800000000000000000000006044820152606401610462565b600154600160401b900467ffffffffffffffff166000908152600460205260408120805490916401000000009091046001600160e01b031690805b600054600160b01b900467ffffffffffffffff16811015611182576000806110f4876110ee856050611f1c565b8661168e565b9150915084811461116d5760405162461bcd60e51b815260206004820152602660248201527f496e76616c69642074617267657420696e207072652d7265746172676574206860448201527f65616465727300000000000000000000000000000000000000000000000000006064820152608401610462565b5091508061117a81611f33565b9150506110c1565b50600080546111c4906111a890600190600160b01b900467ffffffffffffffff16611f4c565b6111b3906050611ea1565b869067ffffffffffffffff16611766565b63ffffffff16905042811061121b5760405162461bcd60e51b815260206004820152601e60248201527f45706f63682063616e6e6f7420656e6420696e207468652066757475726500006044820152606401610462565b835460009061123290859063ffffffff168461187e565b905060008061126e600060169054906101000a900467ffffffffffffffff16605061125d9190611ea1565b899067ffffffffffffffff16611766565b60005463ffffffff919091169150600160b01b900467ffffffffffffffff165b6000546112ad90600160b01b900467ffffffffffffffff166002611ea1565b67ffffffffffffffff168110156113bf576000806112d08b61071d856050611f1c565b91509150846000036113355780945080861681146113305760405162461bcd60e51b815260206004820152601b60248201527f496e76616c69642074617267657420696e206e65772065706f636800000000006044820152606401610462565b6113aa565b8481146113aa5760405162461bcd60e51b815260206004820152602760248201527f556e657870656374656420746172676574206368616e6765206166746572207260448201527f65746172676574000000000000000000000000000000000000000000000000006064820152608401610462565b509550806113b781611f33565b91505061128e565b50600160089054906101000a900467ffffffffffffffff1660016113e39190611ecd565b6001805467ffffffffffffffff928316600160401b9081027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179182905560408051808201825263ffffffff80871682526001600160e01b0380891660208085019182529590960490961660009081526004909452918320905193519094166401000000000292169190911790915560025490611485846117ee565b6003839055600281905560408051848152602081018390529192507fa282ee798b132f9dc11e06cd4d8e767e562be8709602ca14fea7ab3392acbdab910160405180910390a150505050505050505050565b6114df611787565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527fd53649b492f738bb59d6825099b5955073efda0bf9e3a7ad20da22e110122e2991016109e8565b61153b611787565b600061154e611549836117e1565b6117ee565b60028190556003555050565b611562611787565b60008054821515600160a81b027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9091161790556040517fd813b248d49c8bf08be2b6947126da6763df310beed7bea97756456c5727419a906109e890831515815260200190565b6115d2611787565b6001600160a01b03811661164e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610462565b61165781611816565b50565b60006103a261166883611912565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b60008082156116ee576116a285858561191f565b6116ee5760405162461bcd60e51b815260206004820152600d60248201527f496e76616c696420636861696e000000000000000000000000000000000000006044820152606401610462565b6116f8858561194a565b9050611706858560506119ec565b91506117128282611a16565b61175e5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c696420776f726b00000000000000000000000000000000000000006044820152606401610462565b935093915050565b6000611780611668611779846044611f6d565b8590611b6f565b9392505050565b6000546001600160a01b03163314610f375760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610462565b60006103a282600061194a565b60006103a27bffff000000000000000000000000000000000000000000000000000083611b7e565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008061188b8385611b8a565b905061189b621275006004611b7e565b8110156118b3576118b0621275006004611b7e565b90505b6118c1621275006004611be6565b8111156118d9576118d6621275006004611be6565b90505b60006118f2826118ec8862010000611b7e565b90611be6565b9050611908620100006118ec8362127500611b7e565b9695505050505050565b60006103a2826044611b6f565b60008061192c8585611c5c565b905082811461193f576000915050611780565b506001949350505050565b60008061195b611779846048611f6d565b60e81c905060008461196e85604b611f6d565b8151811061197e5761197e611f80565b016020015160f81c905060006119b283600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006119c6600384611f96565b60ff1690506119d781610100612093565b6119e19083611f1c565b979650505050505050565b6000602060008385602001870160025afa50602060006020600060025afa50506000519392505050565b600082611a25575060006103a2565b81611b678460008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b109392505050565b60006117808383016020015190565b60006117808284611e8d565b600082821115611bdc5760405162461bcd60e51b815260206004820152601d60248201527f556e646572666c6f7720647572696e67207375627472616374696f6e2e0000006044820152606401610462565b6117808284611f09565b600082600003611bf8575060006103a2565b611c028284611f1c565b905081611c0f8483611e8d565b146103a25760405162461bcd60e51b815260206004820152601f60248201527f4f766572666c6f7720647572696e67206d756c7469706c69636174696f6e2e006044820152606401610462565b6000611780611c6c836004611f6d565b84016020015190565b600060208284031215611c8757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611cb657600080fd5b813567ffffffffffffffff80821115611cce57600080fd5b818401915084601f830112611ce257600080fd5b813581811115611cf457611cf4611c8e565b604051601f8201601f19908116603f01168101908382118183101715611d1c57611d1c611c8e565b81604052828152876020848701011115611d3557600080fd5b826020860160208301376000928101602001929092525095945050505050565b803567ffffffffffffffff81168114611d6d57600080fd5b919050565b600060208284031215611d8457600080fd5b61178082611d55565b600060208284031215611d9f57600080fd5b81356001600160a01b038116811461178057600080fd5b60008060008060608587031215611dcc57600080fd5b843567ffffffffffffffff80821115611de457600080fd5b818701915087601f830112611df857600080fd5b813581811115611e0757600080fd5b886020828501011115611e1957600080fd5b602092830196509450508501359150611e3460408601611d55565b905092959194509250565b600060208284031215611e5157600080fd5b8135801515811461178057600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082611e9c57611e9c611e61565b500490565b67ffffffffffffffff818116838216028082169190828114611ec557611ec5611e77565b505092915050565b67ffffffffffffffff818116838216019080821115611eee57611eee611e77565b5092915050565b600082611f0457611f04611e61565b500690565b818103818111156103a2576103a2611e77565b80820281158282048414176103a2576103a2611e77565b600060018201611f4557611f45611e77565b5060010190565b67ffffffffffffffff828116828216039080821115611eee57611eee611e77565b808201808211156103a2576103a2611e77565b634e487b7160e01b600052603260045260246000fd5b60ff82811682821603908111156103a2576103a2611e77565b600181815b80851115611fea578160001904821115611fd057611fd0611e77565b80851615611fdd57918102915b93841c9390800290611fb4565b509250929050565b600082612001575060016103a2565b8161200e575060006103a2565b8160018114612024576002811461202e5761204a565b60019150506103a2565b60ff84111561203f5761203f611e77565b50506001821b6103a2565b5060208310610133831016604e8410600b841016171561206d575081810a6103a2565b6120778383611faf565b806000190482111561208b5761208b611e77565b029392505050565b60006117808383611ff256fea2646970667358221220334ce8ff81d3bd1bae8e6767b4e9ae5639cddf2acf3968e7f41da3b2deff78b764736f6c63430008110033",
453
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061018d5760003560e01c8063715018a6116100e3578063b70e6be61161008c578063f2fde38b11610066578063f2fde38b14610340578063f5619fda14610353578063fe9fbb801461036e57600080fd5b8063b70e6be614610306578063d38c29a11461031a578063eb8695ef1461032d57600080fd5b80638da5cb5b116100bd5780638da5cb5b146102c457806395410d2b146102df578063b6a5d7de146102f357600080fd5b8063715018a614610275578063766718081461027d5780637ca5b1dd146102b157600080fd5b806327c97fa5116101455780634ca49f511161011f5780634ca49f511461022b578063620414e61461023e5780636defbf801461025157600080fd5b806327c97fa5146102055780632b97be24146102185780633a1b77b01461022057600080fd5b8063113764be11610176578063113764be146101d5578063189179a3146101dd57806319c9aa32146101f057600080fd5b806306a274221461019257806310b76ed8146101b8575b600080fd5b6101a56101a0366004611c75565b610391565b6040519081526020015b60405180910390f35b6101c06103a8565b604080519283526020830191909152016101af565b6002546101a5565b6101c06101eb366004611ca4565b610408565b6102036101fe366004611d72565b610800565b005b610203610213366004611d8d565b6109f3565b6003546101a5565b6002546003546101c0565b610203610239366004611db6565b610a4c565b6101a561024c366004611c75565b610e15565b60005461026590600160a01b900460ff1681565b60405190151581526020016101af565b610203610f25565b60015461029890600160401b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101af565b6102036102bf366004611ca4565b610f39565b6000546040516001600160a01b0390911681526020016101af565b60005461026590600160a81b900460ff1681565b610203610301366004611d8d565b6114d7565b6001546102989067ffffffffffffffff1681565b610203610328366004611ca4565b611533565b61020361033b366004611e3f565b61155a565b61020361034e366004611d8d565b6115ca565b60005461029890600160b01b900467ffffffffffffffff1681565b61026561037c366004611d8d565b60056020526000908152604090205460ff1681565b60006103a261024c6107e084611e8d565b92915050565b60015460009081906103c69067ffffffffffffffff166107e0611ea1565b60015467ffffffffffffffff91821693506103ec91600160401b909104166107e0611ea1565b6103f8906107df611ecd565b67ffffffffffffffff1690509091565b600080605083516104199190611ef5565b1561046b5760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e677468000000000000000000000060448201526064015b60405180910390fd5b605083516104799190611e8d565b905060018111801561048c57506107e081105b6104d85760405162461bcd60e51b815260206004820152601960248201527f496e76616c6964206e756d626572206f662068656164657273000000000000006044820152606401610462565b6104e18361165a565b63ffffffff1691506000806104f785828061168e565b6040805180820182526000808252602080830182905260015467ffffffffffffffff600160401b90910416808352600482529184902084518086019095525463ffffffff8116855264010000000090046001600160e01b031690840152939550919350909190825b815163ffffffff168810156105bd57610579600184611f09565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b03169082015290935091905061055f565b815163ffffffff166106375760405162461bcd60e51b815260206004820152602b60248201527f43616e6e6f742076616c696461746520636861696e73206265666f726520726560448201527f6c61792067656e657369730000000000000000000000000000000000000000006064820152608401610462565b81602001516001600160e01b031685146107015780602001516001600160e01b0316850361066757905082610701565b610672600184611f09565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b031690820181905291945092915085146107015760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e00006044820152606401610462565b60015b878110156107f45760006107238b61071d846050611f1c565b8a61168e565b60208601519098509091506001600160e01b031687146107e057600061075461074d846050611f1c565b8d90611766565b845163ffffffff9182169250161580159061077b575083602001516001600160e01b031688145b801561078d5750835163ffffffff1681145b6107d95760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e00006044820152606401610462565b5091925084915b9650806107ec81611f33565b915050610704565b50505050505050915091565b600054600160a01b900460ff166108595760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f72207573650000000000006044820152606401610462565b610861611787565b6107e08167ffffffffffffffff16106108bc5760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820657863657373697665000000000000000000006044820152606401610462565b60008167ffffffffffffffff16116109165760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f000000006044820152606401610462565b60005467ffffffffffffffff600160b01b90910481169082160361097c5760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820756e6368616e676564000000000000000000006044820152606401610462565b600080547fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff16600160b01b67ffffffffffffffff8416908102919091179091556040519081527f3e9f904d8cf11753c79b67c8259c582056d4a7d8af120f81257a59eeb8824b96906020015b60405180910390a150565b6109fb611787565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f7498b96beeabea5ad3139f1a2861a03e480034254e36b10aae2e6e42ad7b4b6891016109e8565b610a54611787565b600054600160a01b900460ff1615610aae5760405162461bcd60e51b815260206004820152601960248201527f47656e6573697320616c726561647920706572666f726d6564000000000000006044820152606401610462565b60508314610afe5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642067656e6573697320686561646572206c656e6774680000006044820152606401610462565b610b0a6107e083611ef5565b15610b7d5760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420686569676874206f662072656c61792067656e657369732060448201527f626c6f636b0000000000000000000000000000000000000000000000000000006064820152608401610462565b6107e08167ffffffffffffffff1610610bd85760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820657863657373697665000000000000000000006044820152606401610462565b60008167ffffffffffffffff1611610c325760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f000000006044820152606401610462565b610c3e6107e083611e8d565b600180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001667ffffffffffffffff92909216918217600160401b92909202919091179055604080516020601f8601819004810282018101909252848152600091610cc4919087908790819084018382808284376000920191909152506117e192505050565b90506000610d0786868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061165a92505050565b60408051808201825263ffffffff9283168082526001600160e01b03808716602080850191825260015467ffffffffffffffff9081166000908152600490925295812094519151909216640100000000029516949094179091558254918616600160b01b027fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff909216919091179091559050610da2826117ee565b600255600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790556040517f2381d16925551c2fb1a5edfcf4fce2f6d085e1f85f4b88340c09c9d191f9d4e990610e059086815260200190565b60405180910390a1505050505050565b60015460009067ffffffffffffffff16821015610e745760405162461bcd60e51b815260206004820152601d60248201527f45706f6368206973206265666f72652072656c61792067656e657369730000006044820152606401610462565b600154600160401b900467ffffffffffffffff16821115610efc5760405162461bcd60e51b8152602060048201526024808201527f45706f6368206973206e6f742070726f76656e20746f207468652072656c617960448201527f20796574000000000000000000000000000000000000000000000000000000006064820152608401610462565b6000828152600460205260409020546103a29064010000000090046001600160e01b03166117ee565b610f2d611787565b610f376000611816565b565b600054600160a01b900460ff16610f925760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f72207573650000000000006044820152606401610462565b600054600160a81b900460ff1615611003573360009081526005602052604090205460ff166110035760405162461bcd60e51b815260206004820152601660248201527f5375626d697474657220756e617574686f72697a6564000000000000000000006044820152606401610462565b60005461102290600160b01b900467ffffffffffffffff166002611ea1565b61102d906050611ea1565b67ffffffffffffffff168151146110865760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e67746800000000000000000000006044820152606401610462565b600154600160401b900467ffffffffffffffff166000908152600460205260408120805490916401000000009091046001600160e01b031690805b600054600160b01b900467ffffffffffffffff16811015611182576000806110f4876110ee856050611f1c565b8661168e565b9150915084811461116d5760405162461bcd60e51b815260206004820152602660248201527f496e76616c69642074617267657420696e207072652d7265746172676574206860448201527f65616465727300000000000000000000000000000000000000000000000000006064820152608401610462565b5091508061117a81611f33565b9150506110c1565b50600080546111c4906111a890600190600160b01b900467ffffffffffffffff16611f4c565b6111b3906050611ea1565b869067ffffffffffffffff16611766565b63ffffffff16905042811061121b5760405162461bcd60e51b815260206004820152601e60248201527f45706f63682063616e6e6f7420656e6420696e207468652066757475726500006044820152606401610462565b835460009061123290859063ffffffff168461187e565b905060008061126e600060169054906101000a900467ffffffffffffffff16605061125d9190611ea1565b899067ffffffffffffffff16611766565b60005463ffffffff919091169150600160b01b900467ffffffffffffffff165b6000546112ad90600160b01b900467ffffffffffffffff166002611ea1565b67ffffffffffffffff168110156113bf576000806112d08b61071d856050611f1c565b91509150846000036113355780945080861681146113305760405162461bcd60e51b815260206004820152601b60248201527f496e76616c69642074617267657420696e206e65772065706f636800000000006044820152606401610462565b6113aa565b8481146113aa5760405162461bcd60e51b815260206004820152602760248201527f556e657870656374656420746172676574206368616e6765206166746572207260448201527f65746172676574000000000000000000000000000000000000000000000000006064820152608401610462565b509550806113b781611f33565b91505061128e565b50600160089054906101000a900467ffffffffffffffff1660016113e39190611ecd565b6001805467ffffffffffffffff928316600160401b9081027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179182905560408051808201825263ffffffff80871682526001600160e01b0380891660208085019182529590960490961660009081526004909452918320905193519094166401000000000292169190911790915560025490611485846117ee565b6003839055600281905560408051848152602081018390529192507fa282ee798b132f9dc11e06cd4d8e767e562be8709602ca14fea7ab3392acbdab910160405180910390a150505050505050505050565b6114df611787565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527fd53649b492f738bb59d6825099b5955073efda0bf9e3a7ad20da22e110122e2991016109e8565b61153b611787565b600061154e611549836117e1565b6117ee565b60028190556003555050565b611562611787565b60008054821515600160a81b027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9091161790556040517fd813b248d49c8bf08be2b6947126da6763df310beed7bea97756456c5727419a906109e890831515815260200190565b6115d2611787565b6001600160a01b03811661164e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610462565b61165781611816565b50565b60006103a261166883611912565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b60008082156116ee576116a285858561191f565b6116ee5760405162461bcd60e51b815260206004820152600d60248201527f496e76616c696420636861696e000000000000000000000000000000000000006044820152606401610462565b6116f8858561194a565b9050611706858560506119ec565b91506117128282611a16565b61175e5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c696420776f726b00000000000000000000000000000000000000006044820152606401610462565b935093915050565b6000611780611668611779846044611f6d565b8590611b6f565b9392505050565b6000546001600160a01b03163314610f375760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610462565b60006103a282600061194a565b60006103a27bffff000000000000000000000000000000000000000000000000000083611b7e565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008061188b8385611b8a565b905061189b621275006004611b7e565b8110156118b3576118b0621275006004611b7e565b90505b6118c1621275006004611be6565b8111156118d9576118d6621275006004611be6565b90505b60006118f2826118ec8862010000611b7e565b90611be6565b9050611908620100006118ec8362127500611b7e565b9695505050505050565b60006103a2826044611b6f565b60008061192c8585611c5c565b905082811461193f576000915050611780565b506001949350505050565b60008061195b611779846048611f6d565b60e81c905060008461196e85604b611f6d565b8151811061197e5761197e611f80565b016020015160f81c905060006119b283600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006119c6600384611f96565b60ff1690506119d781610100612093565b6119e19083611f1c565b979650505050505050565b6000602060008385602001870160025afa50602060006020600060025afa50506000519392505050565b600082611a25575060006103a2565b81611b678460008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b109392505050565b60006117808383016020015190565b60006117808284611e8d565b600082821115611bdc5760405162461bcd60e51b815260206004820152601d60248201527f556e646572666c6f7720647572696e67207375627472616374696f6e2e0000006044820152606401610462565b6117808284611f09565b600082600003611bf8575060006103a2565b611c028284611f1c565b905081611c0f8483611e8d565b146103a25760405162461bcd60e51b815260206004820152601f60248201527f4f766572666c6f7720647572696e67206d756c7469706c69636174696f6e2e006044820152606401610462565b6000611780611c6c836004611f6d565b84016020015190565b600060208284031215611c8757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611cb657600080fd5b813567ffffffffffffffff80821115611cce57600080fd5b818401915084601f830112611ce257600080fd5b813581811115611cf457611cf4611c8e565b604051601f8201601f19908116603f01168101908382118183101715611d1c57611d1c611c8e565b81604052828152876020848701011115611d3557600080fd5b826020860160208301376000928101602001929092525095945050505050565b803567ffffffffffffffff81168114611d6d57600080fd5b919050565b600060208284031215611d8457600080fd5b61178082611d55565b600060208284031215611d9f57600080fd5b81356001600160a01b038116811461178057600080fd5b60008060008060608587031215611dcc57600080fd5b843567ffffffffffffffff80821115611de457600080fd5b818701915087601f830112611df857600080fd5b813581811115611e0757600080fd5b886020828501011115611e1957600080fd5b602092830196509450508501359150611e3460408601611d55565b905092959194509250565b600060208284031215611e5157600080fd5b8135801515811461178057600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082611e9c57611e9c611e61565b500490565b67ffffffffffffffff818116838216028082169190828114611ec557611ec5611e77565b505092915050565b67ffffffffffffffff818116838216019080821115611eee57611eee611e77565b5092915050565b600082611f0457611f04611e61565b500690565b818103818111156103a2576103a2611e77565b80820281158282048414176103a2576103a2611e77565b600060018201611f4557611f45611e77565b5060010190565b67ffffffffffffffff828116828216039080821115611eee57611eee611e77565b808201808211156103a2576103a2611e77565b634e487b7160e01b600052603260045260246000fd5b60ff82811682821603908111156103a2576103a2611e77565b600181815b80851115611fea578160001904821115611fd057611fd0611e77565b80851615611fdd57918102915b93841c9390800290611fb4565b509250929050565b600082612001575060016103a2565b8161200e575060006103a2565b8160018114612024576002811461202e5761204a565b60019150506103a2565b60ff84111561203f5761203f611e77565b50506001821b6103a2565b5060208310610133831016604e8410600b841016171561206d575081810a6103a2565b6120778383611faf565b806000190482111561208b5761208b611e77565b029392505050565b60006117808383611ff256fea2646970667358221220334ce8ff81d3bd1bae8e6767b4e9ae5639cddf2acf3968e7f41da3b2deff78b764736f6c63430008110033",
454
+ "linkReferences": {},
455
+ "deployedLinkReferences": {}
456
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/fd90cfb34a89b5cd7ef101e64705ab37.json"
4
+ }