@layerzerolabs/lz-evm-sdk-v2 2.0.8 → 2.0.10-tron

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 (117) hide show
  1. package/deployments/arbitrum-sandbox-local/DVN.json +1896 -0
  2. package/deployments/arbitrum-sandbox-local/DVNFeeLib.json +387 -0
  3. package/deployments/arbitrum-sandbox-local/EndpointV2.json +2955 -0
  4. package/deployments/{ethereum-sandbox-local/Oracle.json → arbitrum-sandbox-local/Executor.json} +656 -398
  5. package/deployments/arbitrum-sandbox-local/ExecutorFeeLib.json +407 -0
  6. package/deployments/arbitrum-sandbox-local/ExecutorProxyAdmin.json +283 -0
  7. package/deployments/arbitrum-sandbox-local/Executor_Implementation.json +1591 -0
  8. package/deployments/{ethereum-sandbox-local/Oracle_Proxy.json → arbitrum-sandbox-local/Executor_Proxy.json} +135 -60
  9. package/deployments/arbitrum-sandbox-local/NonceContractMock.json +163 -0
  10. package/deployments/{polygon-sandbox-local/Relayer.json → arbitrum-sandbox-local/PriceFeed.json} +339 -445
  11. package/deployments/arbitrum-sandbox-local/PriceFeedProxyAdmin.json +283 -0
  12. package/deployments/arbitrum-sandbox-local/PriceFeed_Implementation.json +912 -0
  13. package/deployments/{ethereum-sandbox-local/Relayer_Proxy.json → arbitrum-sandbox-local/PriceFeed_Proxy.json} +33 -64
  14. package/deployments/arbitrum-sandbox-local/ReceiveUln301.json +1264 -0
  15. package/deployments/arbitrum-sandbox-local/ReceiveUln302.json +954 -0
  16. package/deployments/arbitrum-sandbox-local/SendUln301.json +1569 -0
  17. package/deployments/arbitrum-sandbox-local/SendUln302.json +1527 -0
  18. package/deployments/arbitrum-sandbox-local/SimpleMessageLib.json +708 -0
  19. package/deployments/arbitrum-sandbox-local/Treasury.json +412 -0
  20. package/deployments/arbitrum-sandbox-local/TreasuryFeeHandler.json +125 -0
  21. package/deployments/ethereum-sandbox-local/DVN.json +5 -5
  22. package/deployments/ethereum-sandbox-local/DVNFeeLib.json +2 -2
  23. package/deployments/ethereum-sandbox-local/EndpointV2.json +4 -4
  24. package/deployments/ethereum-sandbox-local/Executor.json +14 -14
  25. package/deployments/ethereum-sandbox-local/ExecutorFeeLib.json +2 -2
  26. package/deployments/ethereum-sandbox-local/ExecutorProxyAdmin.json +3 -3
  27. package/deployments/ethereum-sandbox-local/Executor_Implementation.json +1 -1
  28. package/deployments/ethereum-sandbox-local/Executor_Proxy.json +14 -14
  29. package/deployments/ethereum-sandbox-local/NonceContractMock.json +1 -1
  30. package/deployments/ethereum-sandbox-local/PriceFeed.json +5 -5
  31. package/deployments/ethereum-sandbox-local/PriceFeedProxyAdmin.json +3 -3
  32. package/deployments/ethereum-sandbox-local/PriceFeed_Implementation.json +1 -1
  33. package/deployments/ethereum-sandbox-local/PriceFeed_Proxy.json +5 -5
  34. package/deployments/ethereum-sandbox-local/ReceiveUln301.json +2 -2
  35. package/deployments/ethereum-sandbox-local/ReceiveUln302.json +2 -2
  36. package/deployments/ethereum-sandbox-local/SendUln301.json +2 -2
  37. package/deployments/ethereum-sandbox-local/SendUln302.json +2 -2
  38. package/deployments/ethereum-sandbox-local/SimpleMessageLib.json +2 -2
  39. package/deployments/ethereum-sandbox-local/Treasury.json +2 -2
  40. package/deployments/ethereum-sandbox-local/TreasuryFeeHandler.json +1 -1
  41. package/deployments/polygon-sandbox-local/DVN.json +5 -5
  42. package/deployments/polygon-sandbox-local/DVNFeeLib.json +2 -2
  43. package/deployments/polygon-sandbox-local/EndpointV2.json +4 -4
  44. package/deployments/polygon-sandbox-local/Executor.json +14 -14
  45. package/deployments/polygon-sandbox-local/ExecutorFeeLib.json +2 -2
  46. package/deployments/polygon-sandbox-local/ExecutorProxyAdmin.json +3 -3
  47. package/deployments/polygon-sandbox-local/Executor_Implementation.json +1 -1
  48. package/deployments/polygon-sandbox-local/Executor_Proxy.json +14 -14
  49. package/deployments/polygon-sandbox-local/NonceContractMock.json +1 -1
  50. package/deployments/polygon-sandbox-local/PriceFeed.json +5 -5
  51. package/deployments/polygon-sandbox-local/PriceFeedProxyAdmin.json +3 -3
  52. package/deployments/polygon-sandbox-local/PriceFeed_Implementation.json +1 -1
  53. package/deployments/polygon-sandbox-local/PriceFeed_Proxy.json +5 -5
  54. package/deployments/polygon-sandbox-local/ReceiveUln301.json +2 -2
  55. package/deployments/polygon-sandbox-local/ReceiveUln302.json +2 -2
  56. package/deployments/polygon-sandbox-local/SendUln301.json +2 -2
  57. package/deployments/polygon-sandbox-local/SendUln302.json +2 -2
  58. package/deployments/polygon-sandbox-local/SimpleMessageLib.json +2 -2
  59. package/deployments/polygon-sandbox-local/Treasury.json +2 -2
  60. package/deployments/polygon-sandbox-local/TreasuryFeeHandler.json +1 -1
  61. package/deployments/tron-sandbox-local/DVN.json +1896 -0
  62. package/deployments/tron-sandbox-local/DVNFeeLib.json +387 -0
  63. package/deployments/tron-sandbox-local/EndpointV2.json +2955 -0
  64. package/deployments/{polygon-sandbox-local/Oracle.json → tron-sandbox-local/Executor.json} +656 -398
  65. package/deployments/tron-sandbox-local/ExecutorFeeLib.json +407 -0
  66. package/deployments/tron-sandbox-local/ExecutorProxyAdmin.json +283 -0
  67. package/deployments/tron-sandbox-local/Executor_Implementation.json +1591 -0
  68. package/deployments/{polygon-sandbox-local/Oracle_Proxy.json → tron-sandbox-local/Executor_Proxy.json} +135 -60
  69. package/deployments/tron-sandbox-local/NonceContractMock.json +163 -0
  70. package/deployments/{ethereum-sandbox-local/Relayer.json → tron-sandbox-local/PriceFeed.json} +339 -445
  71. package/deployments/tron-sandbox-local/PriceFeedProxyAdmin.json +283 -0
  72. package/deployments/tron-sandbox-local/PriceFeed_Implementation.json +912 -0
  73. package/deployments/{polygon-sandbox-local/Relayer_Proxy.json → tron-sandbox-local/PriceFeed_Proxy.json} +33 -64
  74. package/deployments/tron-sandbox-local/ReceiveUln301.json +1264 -0
  75. package/deployments/tron-sandbox-local/ReceiveUln302.json +954 -0
  76. package/deployments/tron-sandbox-local/SendUln301.json +1569 -0
  77. package/deployments/tron-sandbox-local/SendUln302.json +1527 -0
  78. package/deployments/tron-sandbox-local/SimpleMessageLib.json +708 -0
  79. package/deployments/tron-sandbox-local/Treasury.json +412 -0
  80. package/deployments/tron-sandbox-local/TreasuryFeeHandler.json +125 -0
  81. package/package.json +9 -20
  82. package/deployments/ethereum-sandbox-local/BlockedMessageLib.json +0 -90
  83. package/deployments/ethereum-sandbox-local/Endpoint.json +0 -2355
  84. package/deployments/ethereum-sandbox-local/MultiSigOracle.json +0 -1448
  85. package/deployments/ethereum-sandbox-local/NonceContract.json +0 -158
  86. package/deployments/ethereum-sandbox-local/OmniCounter.json +0 -1133
  87. package/deployments/ethereum-sandbox-local/OmniCounterPreCrime.json +0 -493
  88. package/deployments/ethereum-sandbox-local/OmniCounterPreCrimeView.json +0 -672
  89. package/deployments/ethereum-sandbox-local/OmniCounterViewer.json +0 -214
  90. package/deployments/ethereum-sandbox-local/OmniCounterWithPreCrime.json +0 -1646
  91. package/deployments/ethereum-sandbox-local/OracleFeeLib.json +0 -166
  92. package/deployments/ethereum-sandbox-local/OracleProxyAdmin.json +0 -272
  93. package/deployments/ethereum-sandbox-local/Oracle_Implementation.json +0 -1326
  94. package/deployments/ethereum-sandbox-local/RelayerFeeLib.json +0 -130
  95. package/deployments/ethereum-sandbox-local/RelayerProxyAdmin.json +0 -272
  96. package/deployments/ethereum-sandbox-local/Relayer_Implementation.json +0 -1014
  97. package/deployments/ethereum-sandbox-local/UlnConfig301.json +0 -1003
  98. package/deployments/ethereum-sandbox-local/UlnConfig302.json +0 -1003
  99. package/deployments/ethereum-sandbox-local/UltraLightNodeE302.json +0 -1696
  100. package/deployments/polygon-sandbox-local/BlockedMessageLib.json +0 -90
  101. package/deployments/polygon-sandbox-local/Endpoint.json +0 -2355
  102. package/deployments/polygon-sandbox-local/MultiSigOracle.json +0 -1448
  103. package/deployments/polygon-sandbox-local/NonceContract.json +0 -158
  104. package/deployments/polygon-sandbox-local/OmniCounter.json +0 -1133
  105. package/deployments/polygon-sandbox-local/OmniCounterPreCrime.json +0 -493
  106. package/deployments/polygon-sandbox-local/OmniCounterPreCrimeView.json +0 -672
  107. package/deployments/polygon-sandbox-local/OmniCounterViewer.json +0 -214
  108. package/deployments/polygon-sandbox-local/OmniCounterWithPreCrime.json +0 -1646
  109. package/deployments/polygon-sandbox-local/OracleFeeLib.json +0 -166
  110. package/deployments/polygon-sandbox-local/OracleProxyAdmin.json +0 -272
  111. package/deployments/polygon-sandbox-local/Oracle_Implementation.json +0 -1326
  112. package/deployments/polygon-sandbox-local/RelayerFeeLib.json +0 -130
  113. package/deployments/polygon-sandbox-local/RelayerProxyAdmin.json +0 -272
  114. package/deployments/polygon-sandbox-local/Relayer_Implementation.json +0 -1014
  115. package/deployments/polygon-sandbox-local/UlnConfig301.json +0 -1003
  116. package/deployments/polygon-sandbox-local/UlnConfig302.json +0 -1003
  117. package/deployments/polygon-sandbox-local/UltraLightNodeE302.json +0 -1696
@@ -1,1646 +0,0 @@
1
- {
2
- "address": "0xef11D1c2aA48826D4c41e54ab82D1Ff5Ad8A64Ca",
3
- "abi": [
4
- {
5
- "inputs": [
6
- {
7
- "internalType": "address",
8
- "name": "_endpoint",
9
- "type": "address"
10
- }
11
- ],
12
- "stateMutability": "nonpayable",
13
- "type": "constructor"
14
- },
15
- {
16
- "inputs": [
17
- {
18
- "internalType": "uint16",
19
- "name": "code",
20
- "type": "uint16"
21
- },
22
- {
23
- "internalType": "bytes",
24
- "name": "message",
25
- "type": "bytes"
26
- }
27
- ],
28
- "name": "SimulateRevert",
29
- "type": "error"
30
- },
31
- {
32
- "anonymous": false,
33
- "inputs": [
34
- {
35
- "indexed": true,
36
- "internalType": "address",
37
- "name": "previousOwner",
38
- "type": "address"
39
- },
40
- {
41
- "indexed": true,
42
- "internalType": "address",
43
- "name": "newOwner",
44
- "type": "address"
45
- }
46
- ],
47
- "name": "OwnershipTransferred",
48
- "type": "event"
49
- },
50
- {
51
- "anonymous": false,
52
- "inputs": [
53
- {
54
- "indexed": false,
55
- "internalType": "uint32",
56
- "name": "eid",
57
- "type": "uint32"
58
- },
59
- {
60
- "indexed": false,
61
- "internalType": "bytes32",
62
- "name": "peer",
63
- "type": "bytes32"
64
- },
65
- {
66
- "indexed": false,
67
- "internalType": "bool",
68
- "name": "active",
69
- "type": "bool"
70
- }
71
- ],
72
- "name": "SetPeer",
73
- "type": "event"
74
- },
75
- {
76
- "stateMutability": "payable",
77
- "type": "fallback"
78
- },
79
- {
80
- "inputs": [],
81
- "name": "CODE_MISS_SIMULATE_RESULT",
82
- "outputs": [
83
- {
84
- "internalType": "uint16",
85
- "name": "",
86
- "type": "uint16"
87
- }
88
- ],
89
- "stateMutability": "view",
90
- "type": "function"
91
- },
92
- {
93
- "inputs": [],
94
- "name": "CODE_PACKETS_OVERSIZE",
95
- "outputs": [
96
- {
97
- "internalType": "uint16",
98
- "name": "",
99
- "type": "uint16"
100
- }
101
- ],
102
- "stateMutability": "view",
103
- "type": "function"
104
- },
105
- {
106
- "inputs": [],
107
- "name": "CODE_PACKETS_UNSORTED",
108
- "outputs": [
109
- {
110
- "internalType": "uint16",
111
- "name": "",
112
- "type": "uint16"
113
- }
114
- ],
115
- "stateMutability": "view",
116
- "type": "function"
117
- },
118
- {
119
- "inputs": [],
120
- "name": "CODE_PRECRIME_FAILURE",
121
- "outputs": [
122
- {
123
- "internalType": "uint16",
124
- "name": "",
125
- "type": "uint16"
126
- }
127
- ],
128
- "stateMutability": "view",
129
- "type": "function"
130
- },
131
- {
132
- "inputs": [],
133
- "name": "CODE_SUCCESS",
134
- "outputs": [
135
- {
136
- "internalType": "uint16",
137
- "name": "",
138
- "type": "uint16"
139
- }
140
- ],
141
- "stateMutability": "view",
142
- "type": "function"
143
- },
144
- {
145
- "inputs": [],
146
- "name": "CONFIG_VERSION",
147
- "outputs": [
148
- {
149
- "internalType": "uint16",
150
- "name": "",
151
- "type": "uint16"
152
- }
153
- ],
154
- "stateMutability": "view",
155
- "type": "function"
156
- },
157
- {
158
- "inputs": [],
159
- "name": "PRECRIME_VERSION",
160
- "outputs": [
161
- {
162
- "internalType": "uint16",
163
- "name": "",
164
- "type": "uint16"
165
- }
166
- ],
167
- "stateMutability": "view",
168
- "type": "function"
169
- },
170
- {
171
- "inputs": [
172
- {
173
- "components": [
174
- {
175
- "components": [
176
- {
177
- "internalType": "uint32",
178
- "name": "srcEid",
179
- "type": "uint32"
180
- },
181
- {
182
- "internalType": "bytes32",
183
- "name": "sender",
184
- "type": "bytes32"
185
- },
186
- {
187
- "internalType": "bytes",
188
- "name": "message",
189
- "type": "bytes"
190
- },
191
- {
192
- "internalType": "uint64",
193
- "name": "nonce",
194
- "type": "uint64"
195
- }
196
- ],
197
- "internalType": "struct ILayerZeroReceiver.MessagingContext",
198
- "name": "context",
199
- "type": "tuple"
200
- },
201
- {
202
- "internalType": "bytes32",
203
- "name": "guid",
204
- "type": "bytes32"
205
- },
206
- {
207
- "internalType": "bytes",
208
- "name": "callParams",
209
- "type": "bytes"
210
- }
211
- ],
212
- "internalType": "struct IPreCrime.Packet[]",
213
- "name": "_packets",
214
- "type": "tuple[]"
215
- }
216
- ],
217
- "name": "_simulateAndRevert",
218
- "outputs": [],
219
- "stateMutability": "payable",
220
- "type": "function"
221
- },
222
- {
223
- "inputs": [],
224
- "name": "admin",
225
- "outputs": [
226
- {
227
- "internalType": "address",
228
- "name": "",
229
- "type": "address"
230
- }
231
- ],
232
- "stateMutability": "view",
233
- "type": "function"
234
- },
235
- {
236
- "inputs": [
237
- {
238
- "internalType": "uint32",
239
- "name": "_eid",
240
- "type": "uint32"
241
- },
242
- {
243
- "internalType": "bytes32",
244
- "name": "_peer",
245
- "type": "bytes32"
246
- }
247
- ],
248
- "name": "assertPeer",
249
- "outputs": [],
250
- "stateMutability": "view",
251
- "type": "function"
252
- },
253
- {
254
- "inputs": [
255
- {
256
- "internalType": "uint32[]",
257
- "name": "_eids",
258
- "type": "uint32[]"
259
- },
260
- {
261
- "internalType": "uint8[]",
262
- "name": "_types",
263
- "type": "uint8[]"
264
- },
265
- {
266
- "internalType": "bytes[]",
267
- "name": "_options",
268
- "type": "bytes[]"
269
- }
270
- ],
271
- "name": "batchIncrement",
272
- "outputs": [],
273
- "stateMutability": "payable",
274
- "type": "function"
275
- },
276
- {
277
- "inputs": [
278
- {
279
- "internalType": "uint32",
280
- "name": "_eid",
281
- "type": "uint32"
282
- },
283
- {
284
- "internalType": "uint8",
285
- "name": "_type",
286
- "type": "uint8"
287
- },
288
- {
289
- "internalType": "bytes",
290
- "name": "_options",
291
- "type": "bytes"
292
- }
293
- ],
294
- "name": "brokenIncrement",
295
- "outputs": [],
296
- "stateMutability": "payable",
297
- "type": "function"
298
- },
299
- {
300
- "inputs": [
301
- {
302
- "internalType": "uint32",
303
- "name": "_srcEid",
304
- "type": "uint32"
305
- },
306
- {
307
- "internalType": "bytes32",
308
- "name": "_sender",
309
- "type": "bytes32"
310
- },
311
- {
312
- "internalType": "uint64",
313
- "name": "_nonce",
314
- "type": "uint64"
315
- },
316
- {
317
- "internalType": "bytes32",
318
- "name": "_guid",
319
- "type": "bytes32"
320
- },
321
- {
322
- "internalType": "bytes",
323
- "name": "_message",
324
- "type": "bytes"
325
- }
326
- ],
327
- "name": "burn",
328
- "outputs": [],
329
- "stateMutability": "nonpayable",
330
- "type": "function"
331
- },
332
- {
333
- "inputs": [],
334
- "name": "composedCount",
335
- "outputs": [
336
- {
337
- "internalType": "uint256",
338
- "name": "",
339
- "type": "uint256"
340
- }
341
- ],
342
- "stateMutability": "view",
343
- "type": "function"
344
- },
345
- {
346
- "inputs": [],
347
- "name": "count",
348
- "outputs": [
349
- {
350
- "internalType": "uint256",
351
- "name": "",
352
- "type": "uint256"
353
- }
354
- ],
355
- "stateMutability": "view",
356
- "type": "function"
357
- },
358
- {
359
- "inputs": [],
360
- "name": "eid",
361
- "outputs": [
362
- {
363
- "internalType": "uint32",
364
- "name": "",
365
- "type": "uint32"
366
- }
367
- ],
368
- "stateMutability": "view",
369
- "type": "function"
370
- },
371
- {
372
- "inputs": [],
373
- "name": "endpoint",
374
- "outputs": [
375
- {
376
- "internalType": "contract ILayerZeroEndpoint",
377
- "name": "",
378
- "type": "address"
379
- }
380
- ],
381
- "stateMutability": "view",
382
- "type": "function"
383
- },
384
- {
385
- "inputs": [
386
- {
387
- "components": [
388
- {
389
- "components": [
390
- {
391
- "internalType": "uint32",
392
- "name": "srcEid",
393
- "type": "uint32"
394
- },
395
- {
396
- "internalType": "bytes32",
397
- "name": "sender",
398
- "type": "bytes32"
399
- },
400
- {
401
- "internalType": "bytes",
402
- "name": "message",
403
- "type": "bytes"
404
- },
405
- {
406
- "internalType": "uint64",
407
- "name": "nonce",
408
- "type": "uint64"
409
- }
410
- ],
411
- "internalType": "struct ILayerZeroReceiver.MessagingContext",
412
- "name": "context",
413
- "type": "tuple"
414
- },
415
- {
416
- "internalType": "bytes32",
417
- "name": "guid",
418
- "type": "bytes32"
419
- },
420
- {
421
- "internalType": "bytes",
422
- "name": "callParams",
423
- "type": "bytes"
424
- }
425
- ],
426
- "internalType": "struct IPreCrime.Packet[]",
427
- "name": "_packets",
428
- "type": "tuple[]"
429
- }
430
- ],
431
- "name": "getPrecrimeConfig",
432
- "outputs": [
433
- {
434
- "internalType": "bytes",
435
- "name": "",
436
- "type": "bytes"
437
- }
438
- ],
439
- "stateMutability": "view",
440
- "type": "function"
441
- },
442
- {
443
- "inputs": [
444
- {
445
- "internalType": "uint32",
446
- "name": "",
447
- "type": "uint32"
448
- }
449
- ],
450
- "name": "inboundCount",
451
- "outputs": [
452
- {
453
- "internalType": "uint256",
454
- "name": "",
455
- "type": "uint256"
456
- }
457
- ],
458
- "stateMutability": "view",
459
- "type": "function"
460
- },
461
- {
462
- "inputs": [
463
- {
464
- "internalType": "uint32",
465
- "name": "_eid",
466
- "type": "uint32"
467
- },
468
- {
469
- "internalType": "uint8",
470
- "name": "_type",
471
- "type": "uint8"
472
- },
473
- {
474
- "internalType": "bytes",
475
- "name": "_options",
476
- "type": "bytes"
477
- }
478
- ],
479
- "name": "increment",
480
- "outputs": [],
481
- "stateMutability": "payable",
482
- "type": "function"
483
- },
484
- {
485
- "inputs": [
486
- {
487
- "internalType": "uint32",
488
- "name": "_eid",
489
- "type": "uint32"
490
- },
491
- {
492
- "internalType": "bytes32",
493
- "name": "_peer",
494
- "type": "bytes32"
495
- }
496
- ],
497
- "name": "isPeer",
498
- "outputs": [
499
- {
500
- "internalType": "bool",
501
- "name": "",
502
- "type": "bool"
503
- }
504
- ],
505
- "stateMutability": "view",
506
- "type": "function"
507
- },
508
- {
509
- "inputs": [],
510
- "name": "localEid",
511
- "outputs": [
512
- {
513
- "internalType": "uint32",
514
- "name": "",
515
- "type": "uint32"
516
- }
517
- ],
518
- "stateMutability": "view",
519
- "type": "function"
520
- },
521
- {
522
- "inputs": [
523
- {
524
- "internalType": "address",
525
- "name": "",
526
- "type": "address"
527
- },
528
- {
529
- "internalType": "bytes32",
530
- "name": "",
531
- "type": "bytes32"
532
- },
533
- {
534
- "internalType": "bytes",
535
- "name": "_message",
536
- "type": "bytes"
537
- },
538
- {
539
- "internalType": "address",
540
- "name": "",
541
- "type": "address"
542
- },
543
- {
544
- "internalType": "bytes",
545
- "name": "",
546
- "type": "bytes"
547
- }
548
- ],
549
- "name": "lzCompose",
550
- "outputs": [],
551
- "stateMutability": "payable",
552
- "type": "function"
553
- },
554
- {
555
- "inputs": [],
556
- "name": "lzEndpoint",
557
- "outputs": [
558
- {
559
- "internalType": "contract ILayerZeroEndpoint",
560
- "name": "",
561
- "type": "address"
562
- }
563
- ],
564
- "stateMutability": "view",
565
- "type": "function"
566
- },
567
- {
568
- "inputs": [
569
- {
570
- "components": [
571
- {
572
- "internalType": "uint32",
573
- "name": "srcEid",
574
- "type": "uint32"
575
- },
576
- {
577
- "internalType": "bytes32",
578
- "name": "sender",
579
- "type": "bytes32"
580
- },
581
- {
582
- "internalType": "bytes",
583
- "name": "message",
584
- "type": "bytes"
585
- },
586
- {
587
- "internalType": "uint64",
588
- "name": "nonce",
589
- "type": "uint64"
590
- }
591
- ],
592
- "internalType": "struct ILayerZeroReceiver.MessagingContext",
593
- "name": "_context",
594
- "type": "tuple"
595
- },
596
- {
597
- "internalType": "bytes32",
598
- "name": "_guid",
599
- "type": "bytes32"
600
- },
601
- {
602
- "internalType": "address",
603
- "name": "_executor",
604
- "type": "address"
605
- },
606
- {
607
- "internalType": "bytes",
608
- "name": "_callerParams",
609
- "type": "bytes"
610
- }
611
- ],
612
- "name": "lzReceive",
613
- "outputs": [],
614
- "stateMutability": "payable",
615
- "type": "function"
616
- },
617
- {
618
- "inputs": [
619
- {
620
- "internalType": "uint32",
621
- "name": "",
622
- "type": "uint32"
623
- },
624
- {
625
- "internalType": "bytes32",
626
- "name": "",
627
- "type": "bytes32"
628
- }
629
- ],
630
- "name": "maxNonceByPath",
631
- "outputs": [
632
- {
633
- "internalType": "uint64",
634
- "name": "",
635
- "type": "uint64"
636
- }
637
- ],
638
- "stateMutability": "view",
639
- "type": "function"
640
- },
641
- {
642
- "inputs": [
643
- {
644
- "internalType": "uint32",
645
- "name": "_srcEid",
646
- "type": "uint32"
647
- },
648
- {
649
- "internalType": "bytes32",
650
- "name": "_sender",
651
- "type": "bytes32"
652
- }
653
- ],
654
- "name": "nextNonce",
655
- "outputs": [
656
- {
657
- "internalType": "uint64",
658
- "name": "",
659
- "type": "uint64"
660
- }
661
- ],
662
- "stateMutability": "view",
663
- "type": "function"
664
- },
665
- {
666
- "inputs": [],
667
- "name": "orderedNonce",
668
- "outputs": [
669
- {
670
- "internalType": "bool",
671
- "name": "",
672
- "type": "bool"
673
- }
674
- ],
675
- "stateMutability": "view",
676
- "type": "function"
677
- },
678
- {
679
- "inputs": [
680
- {
681
- "internalType": "uint32",
682
- "name": "",
683
- "type": "uint32"
684
- }
685
- ],
686
- "name": "outboundCount",
687
- "outputs": [
688
- {
689
- "internalType": "uint256",
690
- "name": "",
691
- "type": "uint256"
692
- }
693
- ],
694
- "stateMutability": "view",
695
- "type": "function"
696
- },
697
- {
698
- "inputs": [],
699
- "name": "owner",
700
- "outputs": [
701
- {
702
- "internalType": "address",
703
- "name": "",
704
- "type": "address"
705
- }
706
- ],
707
- "stateMutability": "view",
708
- "type": "function"
709
- },
710
- {
711
- "inputs": [],
712
- "name": "pAdmin",
713
- "outputs": [
714
- {
715
- "internalType": "address",
716
- "name": "",
717
- "type": "address"
718
- }
719
- ],
720
- "stateMutability": "view",
721
- "type": "function"
722
- },
723
- {
724
- "inputs": [],
725
- "name": "pMaxBatchSize",
726
- "outputs": [
727
- {
728
- "internalType": "uint64",
729
- "name": "",
730
- "type": "uint64"
731
- }
732
- ],
733
- "stateMutability": "view",
734
- "type": "function"
735
- },
736
- {
737
- "inputs": [
738
- {
739
- "internalType": "uint32",
740
- "name": "",
741
- "type": "uint32"
742
- }
743
- ],
744
- "name": "peers",
745
- "outputs": [
746
- {
747
- "internalType": "bytes32",
748
- "name": "",
749
- "type": "bytes32"
750
- }
751
- ],
752
- "stateMutability": "view",
753
- "type": "function"
754
- },
755
- {
756
- "inputs": [
757
- {
758
- "components": [
759
- {
760
- "components": [
761
- {
762
- "internalType": "uint32",
763
- "name": "srcEid",
764
- "type": "uint32"
765
- },
766
- {
767
- "internalType": "bytes32",
768
- "name": "sender",
769
- "type": "bytes32"
770
- },
771
- {
772
- "internalType": "bytes",
773
- "name": "message",
774
- "type": "bytes"
775
- },
776
- {
777
- "internalType": "uint64",
778
- "name": "nonce",
779
- "type": "uint64"
780
- }
781
- ],
782
- "internalType": "struct ILayerZeroReceiver.MessagingContext",
783
- "name": "context",
784
- "type": "tuple"
785
- },
786
- {
787
- "internalType": "bytes32",
788
- "name": "guid",
789
- "type": "bytes32"
790
- },
791
- {
792
- "internalType": "bytes",
793
- "name": "callParams",
794
- "type": "bytes"
795
- }
796
- ],
797
- "internalType": "struct IPreCrime.Packet[]",
798
- "name": "_packets",
799
- "type": "tuple[]"
800
- },
801
- {
802
- "internalType": "bytes[]",
803
- "name": "_simulation",
804
- "type": "bytes[]"
805
- }
806
- ],
807
- "name": "precrime",
808
- "outputs": [
809
- {
810
- "internalType": "uint16",
811
- "name": "code",
812
- "type": "uint16"
813
- },
814
- {
815
- "internalType": "bytes",
816
- "name": "reason",
817
- "type": "bytes"
818
- }
819
- ],
820
- "stateMutability": "view",
821
- "type": "function"
822
- },
823
- {
824
- "inputs": [
825
- {
826
- "internalType": "uint32",
827
- "name": "",
828
- "type": "uint32"
829
- }
830
- ],
831
- "name": "precrimeEidToPeer",
832
- "outputs": [
833
- {
834
- "internalType": "bytes32",
835
- "name": "",
836
- "type": "bytes32"
837
- }
838
- ],
839
- "stateMutability": "view",
840
- "type": "function"
841
- },
842
- {
843
- "inputs": [
844
- {
845
- "internalType": "uint256",
846
- "name": "",
847
- "type": "uint256"
848
- }
849
- ],
850
- "name": "precrimeEids",
851
- "outputs": [
852
- {
853
- "internalType": "uint32",
854
- "name": "",
855
- "type": "uint32"
856
- }
857
- ],
858
- "stateMutability": "view",
859
- "type": "function"
860
- },
861
- {
862
- "inputs": [
863
- {
864
- "internalType": "uint256",
865
- "name": "",
866
- "type": "uint256"
867
- }
868
- ],
869
- "name": "precrimePeers",
870
- "outputs": [
871
- {
872
- "internalType": "bytes32",
873
- "name": "",
874
- "type": "bytes32"
875
- }
876
- ],
877
- "stateMutability": "view",
878
- "type": "function"
879
- },
880
- {
881
- "inputs": [],
882
- "name": "precrimeVersion",
883
- "outputs": [
884
- {
885
- "internalType": "uint16",
886
- "name": "",
887
- "type": "uint16"
888
- }
889
- ],
890
- "stateMutability": "pure",
891
- "type": "function"
892
- },
893
- {
894
- "inputs": [
895
- {
896
- "internalType": "uint32",
897
- "name": "_eid",
898
- "type": "uint32"
899
- },
900
- {
901
- "internalType": "uint8",
902
- "name": "_type",
903
- "type": "uint8"
904
- },
905
- {
906
- "internalType": "bytes",
907
- "name": "_options",
908
- "type": "bytes"
909
- }
910
- ],
911
- "name": "quote",
912
- "outputs": [
913
- {
914
- "internalType": "uint256",
915
- "name": "nativeFee",
916
- "type": "uint256"
917
- },
918
- {
919
- "internalType": "uint256",
920
- "name": "zroFee",
921
- "type": "uint256"
922
- }
923
- ],
924
- "stateMutability": "view",
925
- "type": "function"
926
- },
927
- {
928
- "inputs": [],
929
- "name": "renounceOwnership",
930
- "outputs": [],
931
- "stateMutability": "nonpayable",
932
- "type": "function"
933
- },
934
- {
935
- "inputs": [
936
- {
937
- "internalType": "address",
938
- "name": "_messageLib",
939
- "type": "address"
940
- },
941
- {
942
- "internalType": "uint32[]",
943
- "name": "_eids",
944
- "type": "uint32[]"
945
- }
946
- ],
947
- "name": "resetConfig",
948
- "outputs": [],
949
- "stateMutability": "nonpayable",
950
- "type": "function"
951
- },
952
- {
953
- "inputs": [
954
- {
955
- "internalType": "uint32",
956
- "name": "_eid",
957
- "type": "uint32"
958
- }
959
- ],
960
- "name": "safeGetPeer",
961
- "outputs": [
962
- {
963
- "internalType": "bytes32",
964
- "name": "peer",
965
- "type": "bytes32"
966
- }
967
- ],
968
- "stateMutability": "view",
969
- "type": "function"
970
- },
971
- {
972
- "inputs": [
973
- {
974
- "internalType": "address",
975
- "name": "_admin",
976
- "type": "address"
977
- }
978
- ],
979
- "name": "setAdmin",
980
- "outputs": [],
981
- "stateMutability": "nonpayable",
982
- "type": "function"
983
- },
984
- {
985
- "inputs": [
986
- {
987
- "internalType": "address",
988
- "name": "_messageLib",
989
- "type": "address"
990
- },
991
- {
992
- "internalType": "uint32",
993
- "name": "_eid",
994
- "type": "uint32"
995
- },
996
- {
997
- "internalType": "uint32",
998
- "name": "_configType",
999
- "type": "uint32"
1000
- },
1001
- {
1002
- "internalType": "bytes",
1003
- "name": "_config",
1004
- "type": "bytes"
1005
- }
1006
- ],
1007
- "name": "setConfig",
1008
- "outputs": [],
1009
- "stateMutability": "nonpayable",
1010
- "type": "function"
1011
- },
1012
- {
1013
- "inputs": [
1014
- {
1015
- "internalType": "bool",
1016
- "name": "_orderedNonce",
1017
- "type": "bool"
1018
- }
1019
- ],
1020
- "name": "setOrderedNonce",
1021
- "outputs": [],
1022
- "stateMutability": "nonpayable",
1023
- "type": "function"
1024
- },
1025
- {
1026
- "inputs": [
1027
- {
1028
- "internalType": "uint32",
1029
- "name": "_eid",
1030
- "type": "uint32"
1031
- },
1032
- {
1033
- "internalType": "bytes32",
1034
- "name": "_peer",
1035
- "type": "bytes32"
1036
- },
1037
- {
1038
- "internalType": "bool",
1039
- "name": "_active",
1040
- "type": "bool"
1041
- }
1042
- ],
1043
- "name": "setPeer",
1044
- "outputs": [],
1045
- "stateMutability": "nonpayable",
1046
- "type": "function"
1047
- },
1048
- {
1049
- "inputs": [
1050
- {
1051
- "internalType": "address",
1052
- "name": "_admin",
1053
- "type": "address"
1054
- }
1055
- ],
1056
- "name": "setPrecrimeAdmin",
1057
- "outputs": [],
1058
- "stateMutability": "nonpayable",
1059
- "type": "function"
1060
- },
1061
- {
1062
- "inputs": [
1063
- {
1064
- "internalType": "uint64",
1065
- "name": "_maxBatchSize",
1066
- "type": "uint64"
1067
- }
1068
- ],
1069
- "name": "setPrecrimeMaxBatchSize",
1070
- "outputs": [],
1071
- "stateMutability": "nonpayable",
1072
- "type": "function"
1073
- },
1074
- {
1075
- "inputs": [
1076
- {
1077
- "internalType": "uint32[]",
1078
- "name": "_eids",
1079
- "type": "uint32[]"
1080
- },
1081
- {
1082
- "internalType": "bytes32[]",
1083
- "name": "_peers",
1084
- "type": "bytes32[]"
1085
- }
1086
- ],
1087
- "name": "setPrecrimePeers",
1088
- "outputs": [],
1089
- "stateMutability": "nonpayable",
1090
- "type": "function"
1091
- },
1092
- {
1093
- "inputs": [
1094
- {
1095
- "internalType": "uint32",
1096
- "name": "_eid",
1097
- "type": "uint32"
1098
- },
1099
- {
1100
- "internalType": "address",
1101
- "name": "_newLib",
1102
- "type": "address"
1103
- },
1104
- {
1105
- "internalType": "uint256",
1106
- "name": "_gracePeriod",
1107
- "type": "uint256"
1108
- }
1109
- ],
1110
- "name": "setReceiveMessageLib",
1111
- "outputs": [],
1112
- "stateMutability": "nonpayable",
1113
- "type": "function"
1114
- },
1115
- {
1116
- "inputs": [
1117
- {
1118
- "internalType": "uint32",
1119
- "name": "_eid",
1120
- "type": "uint32"
1121
- },
1122
- {
1123
- "internalType": "address",
1124
- "name": "_lib",
1125
- "type": "address"
1126
- },
1127
- {
1128
- "internalType": "uint256",
1129
- "name": "_timeout",
1130
- "type": "uint256"
1131
- }
1132
- ],
1133
- "name": "setReceiveMessageLibTimeout",
1134
- "outputs": [],
1135
- "stateMutability": "nonpayable",
1136
- "type": "function"
1137
- },
1138
- {
1139
- "inputs": [
1140
- {
1141
- "internalType": "uint32",
1142
- "name": "_eid",
1143
- "type": "uint32"
1144
- },
1145
- {
1146
- "internalType": "address",
1147
- "name": "_newLib",
1148
- "type": "address"
1149
- }
1150
- ],
1151
- "name": "setSendMessageLib",
1152
- "outputs": [],
1153
- "stateMutability": "nonpayable",
1154
- "type": "function"
1155
- },
1156
- {
1157
- "inputs": [
1158
- {
1159
- "components": [
1160
- {
1161
- "components": [
1162
- {
1163
- "internalType": "uint32",
1164
- "name": "srcEid",
1165
- "type": "uint32"
1166
- },
1167
- {
1168
- "internalType": "bytes32",
1169
- "name": "sender",
1170
- "type": "bytes32"
1171
- },
1172
- {
1173
- "internalType": "bytes",
1174
- "name": "message",
1175
- "type": "bytes"
1176
- },
1177
- {
1178
- "internalType": "uint64",
1179
- "name": "nonce",
1180
- "type": "uint64"
1181
- }
1182
- ],
1183
- "internalType": "struct ILayerZeroReceiver.MessagingContext",
1184
- "name": "context",
1185
- "type": "tuple"
1186
- },
1187
- {
1188
- "internalType": "bytes32",
1189
- "name": "guid",
1190
- "type": "bytes32"
1191
- },
1192
- {
1193
- "internalType": "bytes",
1194
- "name": "callParams",
1195
- "type": "bytes"
1196
- }
1197
- ],
1198
- "internalType": "struct IPreCrime.Packet[]",
1199
- "name": "_packets",
1200
- "type": "tuple[]"
1201
- }
1202
- ],
1203
- "name": "simulate",
1204
- "outputs": [
1205
- {
1206
- "internalType": "uint16",
1207
- "name": "code",
1208
- "type": "uint16"
1209
- },
1210
- {
1211
- "internalType": "bytes",
1212
- "name": "data",
1213
- "type": "bytes"
1214
- }
1215
- ],
1216
- "stateMutability": "payable",
1217
- "type": "function"
1218
- },
1219
- {
1220
- "inputs": [
1221
- {
1222
- "components": [
1223
- {
1224
- "components": [
1225
- {
1226
- "internalType": "uint32",
1227
- "name": "srcEid",
1228
- "type": "uint32"
1229
- },
1230
- {
1231
- "internalType": "bytes32",
1232
- "name": "sender",
1233
- "type": "bytes32"
1234
- },
1235
- {
1236
- "internalType": "bytes",
1237
- "name": "message",
1238
- "type": "bytes"
1239
- },
1240
- {
1241
- "internalType": "uint64",
1242
- "name": "nonce",
1243
- "type": "uint64"
1244
- }
1245
- ],
1246
- "internalType": "struct ILayerZeroReceiver.MessagingContext",
1247
- "name": "context",
1248
- "type": "tuple"
1249
- },
1250
- {
1251
- "internalType": "bytes32",
1252
- "name": "guid",
1253
- "type": "bytes32"
1254
- },
1255
- {
1256
- "internalType": "bytes",
1257
- "name": "callParams",
1258
- "type": "bytes"
1259
- }
1260
- ],
1261
- "internalType": "struct IPreCrime.Packet[]",
1262
- "name": "",
1263
- "type": "tuple[]"
1264
- }
1265
- ],
1266
- "name": "simulateView",
1267
- "outputs": [
1268
- {
1269
- "internalType": "uint16",
1270
- "name": "",
1271
- "type": "uint16"
1272
- },
1273
- {
1274
- "internalType": "bytes",
1275
- "name": "",
1276
- "type": "bytes"
1277
- }
1278
- ],
1279
- "stateMutability": "pure",
1280
- "type": "function"
1281
- },
1282
- {
1283
- "inputs": [
1284
- {
1285
- "internalType": "uint32",
1286
- "name": "_srcEid",
1287
- "type": "uint32"
1288
- },
1289
- {
1290
- "internalType": "bytes32",
1291
- "name": "_sender",
1292
- "type": "bytes32"
1293
- },
1294
- {
1295
- "internalType": "uint64",
1296
- "name": "_nonce",
1297
- "type": "uint64"
1298
- }
1299
- ],
1300
- "name": "skipInboundNonce",
1301
- "outputs": [],
1302
- "stateMutability": "nonpayable",
1303
- "type": "function"
1304
- },
1305
- {
1306
- "inputs": [
1307
- {
1308
- "internalType": "address",
1309
- "name": "_messageLib",
1310
- "type": "address"
1311
- },
1312
- {
1313
- "internalType": "uint32[]",
1314
- "name": "_eids",
1315
- "type": "uint32[]"
1316
- }
1317
- ],
1318
- "name": "snapshotConfig",
1319
- "outputs": [],
1320
- "stateMutability": "nonpayable",
1321
- "type": "function"
1322
- },
1323
- {
1324
- "inputs": [
1325
- {
1326
- "internalType": "address",
1327
- "name": "newOwner",
1328
- "type": "address"
1329
- }
1330
- ],
1331
- "name": "transferOwnership",
1332
- "outputs": [],
1333
- "stateMutability": "nonpayable",
1334
- "type": "function"
1335
- },
1336
- {
1337
- "inputs": [],
1338
- "name": "version",
1339
- "outputs": [
1340
- {
1341
- "internalType": "uint256",
1342
- "name": "",
1343
- "type": "uint256"
1344
- }
1345
- ],
1346
- "stateMutability": "view",
1347
- "type": "function"
1348
- },
1349
- {
1350
- "inputs": [
1351
- {
1352
- "internalType": "address payable",
1353
- "name": "_to",
1354
- "type": "address"
1355
- },
1356
- {
1357
- "internalType": "uint256",
1358
- "name": "_amount",
1359
- "type": "uint256"
1360
- }
1361
- ],
1362
- "name": "withdraw",
1363
- "outputs": [],
1364
- "stateMutability": "nonpayable",
1365
- "type": "function"
1366
- },
1367
- {
1368
- "stateMutability": "payable",
1369
- "type": "receive"
1370
- }
1371
- ],
1372
- "transactionHash": "0x37583e1f07b21a057835d3922483acf58c39041691f1e84ee1309801716a9c95",
1373
- "receipt": {
1374
- "to": null,
1375
- "from": "0x14dC79964da2C08b23698B3D3cc7Ca32193d9955",
1376
- "contractAddress": "0xef11D1c2aA48826D4c41e54ab82D1Ff5Ad8A64Ca",
1377
- "transactionIndex": 0,
1378
- "gasUsed": "5341982",
1379
- "logsBloom": "0x20000000000000000002000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000400000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000040000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000",
1380
- "blockHash": "0x55529d7c51eb65918f63a9a6cc78597603a4a60fdead6263980eafde1cf8804b",
1381
- "transactionHash": "0x37583e1f07b21a057835d3922483acf58c39041691f1e84ee1309801716a9c95",
1382
- "logs": [
1383
- {
1384
- "transactionIndex": 0,
1385
- "blockNumber": 140,
1386
- "transactionHash": "0x37583e1f07b21a057835d3922483acf58c39041691f1e84ee1309801716a9c95",
1387
- "address": "0xef11D1c2aA48826D4c41e54ab82D1Ff5Ad8A64Ca",
1388
- "topics": [
1389
- "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
1390
- "0x0000000000000000000000000000000000000000000000000000000000000000",
1391
- "0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"
1392
- ],
1393
- "data": "0x",
1394
- "logIndex": 0,
1395
- "blockHash": "0x55529d7c51eb65918f63a9a6cc78597603a4a60fdead6263980eafde1cf8804b"
1396
- }
1397
- ],
1398
- "blockNumber": 140,
1399
- "cumulativeGasUsed": "5341982",
1400
- "status": 1,
1401
- "byzantium": true
1402
- },
1403
- "args": [
1404
- "0x71C95911E9a5D330f4D621842EC243EE1343292e"
1405
- ],
1406
- "numDeployments": 1,
1407
- "solcInputHash": "c8b47804361e5cf76333cc7a8dd4cabc",
1408
- "bytecode": "0x60c060405260016002553480156200001657600080fd5b50604051620060a4380380620060a48339810160408190526200003991620001e5565b8080808080620000493362000195565b6001600160a01b03166080819052600580546001600160a01b031916331790556040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa158015620000a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000cb919062000217565b6005805463ffffffff92909216600160a01b0263ffffffff60a01b19909216919091179055506001600160a01b03811660a08190526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa1580156200013c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000162919062000217565b600a805463ffffffff929092166001600160c01b0319909216919091173364010000000002179055506200023f92505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620001f857600080fd5b81516001600160a01b03811681146200021057600080fd5b9392505050565b6000602082840312156200022a57600080fd5b815163ffffffff811681146200021057600080fd5b60805160a051615ddd620002c76000396000818161086b01526120d701526000818161064901528181610aab01528181610b400152818161130f01528181611482015281816116dd015281816117c00152818161190d0152818161197901528181611a7e01528181611c8301528181611ef5015281816128770152612c2e0152615ddd6000f3fe6080604052600436106102f85760003560e01c80636ece7d3611610190578063baa460fd116100dc578063e2a0844e1161008d578063e2a0844e14610998578063e51ac4b0146109b8578063e76d614f146109df578063e9b1796c14610a0c578063f2fde38b14610a2c578063f3fef3a314610a4c578063f851a44014610a6c578063f95d1404146104dd57005b8063baa460fd146108ba578063bb0b6a53146108da578063bc4374f914610907578063c6be4b9b14610927578063c95c55be1461093d578063d0a1026014610950578063d22446ce1461096357005b80638da5cb5b116101415780638da5cb5b146107d557806392d99a7f146107f357806398166ccc146108135780639e7fffcc14610826578063ae14023b14610846578063b353aaa714610859578063b7abbb5d1461088d578063b7bc8acd146108a057005b80636ece7d3614610703578063704b6c02146107235780637112f86f14610743578063715018a61461076357806372607537146107785780637624f505146107955780637d25a05e146107b557005b806335d671de1161024f5780635a0dfe4d116102005780635a0dfe4d146105c75780635b849af6146105f75780635bf88a00146106175780635e280f11146106375780636052d3c714610683578063622f17f6146106965780636a0494af146106c35780636d41812d146106e357005b806335d671de146104f2578063416ecebf14610520578063472641c1146104dd578063542e7b561461054457806354b3ab691461055757806354fd4d501461058457806356a472891461059a57005b80631f2fac53116102a95780631f2fac53146103de578063257f4e051461043757806326b27f841461044d57806329c246281461046d5780632c79305d146104a257806330515e56146104b657806334e30097146104dd57005b806303e83c13146103015780630638fb641461032157806306661abd1461034f5780630678327f146103735780630e735a631461039357806312fb9ea5146103a957806317c9efb0146103c957005b366102ff57005b005b34801561030d57600080fd5b506102ff61031c366004614762565b610a8c565b34801561032d57600080fd5b5061033761019081565b60405161ffff90911681526020015b60405180910390f35b34801561035b57600080fd5b5061036560035481565b604051908152602001610346565b34801561037f57600080fd5b506102ff61038e366004614821565b610b21565b34801561039f57600080fd5b5061033761019181565b3480156103b557600080fd5b506103656103c4366004614875565b610bb0565b3480156103d557600080fd5b50610337600081565b3480156103ea57600080fd5b5061041f6103f936600461488e565b60066020908152600092835260408084209091529082529020546001600160401b031681565b6040516001600160401b039091168152602001610346565b34801561044357600080fd5b5061036560045481565b34801561045957600080fd5b506103656104683660046148ba565b610bd1565b34801561047957600080fd5b5061048d610488366004614875565b610c35565b60405163ffffffff9091168152602001610346565b3480156104ae57600080fd5b506001610337565b3480156104c257600080fd5b50600a5461041f90600160c01b90046001600160401b031681565b3480156104e957600080fd5b50610337600181565b3480156104fe57600080fd5b5061051261050d3660046148d7565b610c6f565b604051610346929190614968565b34801561052c57600080fd5b5060055461048d90600160a01b900463ffffffff1681565b6102ff610552366004614985565b610caf565b34801561056357600080fd5b506103656105723660046148ba565b600d6020526000908152604090205481565b34801561059057600080fd5b5061036560025481565b3480156105a657600080fd5b506103656105b53660046148ba565b60086020526000908152604090205481565b3480156105d357600080fd5b506105e76105e236600461488e565b610e75565b6040519015158152602001610346565b34801561060357600080fd5b506102ff610612366004614a2e565b610e94565b34801561062357600080fd5b506102ff610632366004614b89565b610eaf565b34801561064357600080fd5b5061066b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610346565b6105126106913660046148d7565b610f82565b3480156106a257600080fd5b506103656106b13660046148ba565b60096020526000908152604090205481565b3480156106cf57600080fd5b506105126106de366004614c4a565b611178565b3480156106ef57600080fd5b506102ff6106fe366004614cca565b6112f0565b34801561070f57600080fd5b506102ff61071e366004614d33565b6113a4565b34801561072f57600080fd5b506102ff61073e366004614d50565b6113fd565b34801561074f57600080fd5b506102ff61075e366004614d6d565b611449565b34801561076f57600080fd5b506102ff611552565b34801561078457600080fd5b50600a5461048d9063ffffffff1681565b3480156107a157600080fd5b506102ff6107b0366004614daf565b611566565b3480156107c157600080fd5b5061041f6107d036600461488e565b61162b565b3480156107e157600080fd5b506000546001600160a01b031661066b565b3480156107ff57600080fd5b506102ff61080e366004614d50565b61167d565b6102ff610821366004614ded565b6116db565b34801561083257600080fd5b506102ff610841366004614821565b6117a1565b6102ff6108543660046148d7565b6117f9565b34801561086557600080fd5b5061066b7f000000000000000000000000000000000000000000000000000000000000000081565b6102ff61089b366004614e7d565b61186c565b3480156108ac57600080fd5b506007546105e79060ff1681565b3480156108c657600080fd5b506102ff6108d5366004614ed3565b6118ee565b3480156108e657600080fd5b506103656108f53660046148ba565b60016020526000908152604090205481565b34801561091357600080fd5b506102ff610922366004614f14565b611946565b34801561093357600080fd5b5061033761019281565b6102ff61094b366004614e7d565b6119d1565b6102ff61095e366004614f4d565b611a73565b34801561096f57600080fd5b5061098361097e366004614e7d565b611bf6565b60408051928352602083019190915201610346565b3480156109a457600080fd5b506102ff6109b3366004614ed3565b611c64565b3480156109c457600080fd5b50600a5461066b90600160201b90046001600160a01b031681565b3480156109eb57600080fd5b506109ff6109fa3660046148d7565b611cbc565b6040516103469190614fed565b348015610a1857600080fd5b506102ff610a2736600461488e565b611d18565b348015610a3857600080fd5b506102ff610a47366004614d50565b611d67565b348015610a5857600080fd5b506102ff610a67366004615000565b611de0565b348015610a7857600080fd5b5060055461066b906001600160a01b031681565b610a94611e40565b6040516303e83c1360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906303e83c1390610ae89088908890889088908890600401615047565b600060405180830381600087803b158015610b0257600080fd5b505af1158015610b16573d6000803e3d6000fd5b505050505050505050565b610b29611e40565b604051630678327f60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630678327f90610b799086908690869060040161508b565b600060405180830381600087803b158015610b9357600080fd5b505af1158015610ba7573d6000803e3d6000fd5b50505050505050565b600c8181548110610bc057600080fd5b600091825260209091200154905081565b63ffffffff811660009081526001602052604090205480610c305760405162461bcd60e51b81526020600482015260146024820152731419595c8e881c19595c881b9bdd08199bdd5b9960621b60448201526064015b60405180910390fd5b919050565b600b8181548110610c4557600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152600090606090606401610c27565b8481148015610cbd57508483145b610d095760405162461bcd60e51b815260206004820152601c60248201527f4f6d6e69436f756e7465723a206c656e677468206d69736d61746368000000006044820152606401610c27565b610d116145b8565b3460005b87811015610b16576000610d2a60018a6150ff565b8214610d365730610d38565b335b90506000610d7b898985818110610d5157610d51615112565b9050602002016020810190610d669190615128565b600554600160a01b900463ffffffff16611e9a565b9050610e1d8b8b85818110610d9257610d92615112565b9050602002016020810190610da791906148ba565b82898987818110610dba57610dba615112565b9050602002810190610dcc9190615143565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080518082019091528c815260208101919091529250889150611edc9050565b9450610e4e8b8b85818110610e3457610e34615112565b9050602002016020810190610e4991906148ba565b611fc1565b604085015151610e5e90856150ff565b935050508080610e6d90615189565b915050610d15565b63ffffffff821660009081526001602052604090205481145b92915050565b610e9c611e40565b6007805460ff1916911515919091179055565b600a54600160201b90046001600160a01b03163314610ee05760405162461bcd60e51b8152600401610c27906151a2565b8151610ef390600b9060208501906145ff565b508051610f0790600c9060208401906146aa565b5060005b8251811015610f7d57818181518110610f2657610f26615112565b6020026020010151600d6000858481518110610f4457610f44615112565b602002602001015163ffffffff1663ffffffff168152602001908152602001600020819055508080610f7590615189565b915050610f0b565b505050565b60006060323314610fd55760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920454f412063616e2063616c6c2073696d756c6174650000000000006044820152606401610c27565b610fdf8484611fea565b909250905061ffff821661117157600080306001600160a01b03163463ae14023b60e01b888860405160240161101692919061520b565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611054919061531f565b60006040518083038185875af1925050503d8060008114611091576040519150601f19603f3d011682016040523d82523d6000602084013e611096565b606091505b50909250905034156110d05760405133903480156108fc02916000818181858888f193505050501580156110ce573d6000803e3d6000fd5b505b811561112a5760405162461bcd60e51b8152602060048201526024808201527f73696d756c6174652073686f756c64206e657665722072657475726e207375636044820152636365737360e01b6064820152608401610c27565b6111338161227d565b909450925061ffff841661116e57600a5460405161115c9163ffffffff1690859060200161533b565b60405160208183030381529060405292505b50505b9250929050565b6000606081836001600160401b0381111561119557611195614a49565b6040519080825280602002602001820160405280156111c857816020015b60608152602001906001900390816111b35790505b5090506000846001600160401b038111156111e5576111e5614a49565b60405190808252806020026020018201604052801561120e578160200160208202803683370190505b50905060005b858110156112b45760008088888481811061123157611231615112565b90506020028101906112439190615143565b81019061125091906153d2565b915091508184848151811061126757611267615112565b602002602001019063ffffffff16908163ffffffff16815250508085848151811061129457611294615112565b6020026020010181905250505080806112ac90615189565b915050611214565b506112c08888836122cc565b909450925061ffff8416156112d65750506112e7565b6112df8261247d565b909450925050505b94509492505050565b6112f8611e40565b604051635a898aef60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b51315de9061134e90899089908990899089908990600401615417565b6020604051808303816000875af115801561136d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113919190615452565b5061139c8686611d18565b505050505050565b600a54600160201b90046001600160a01b031633146113d55760405162461bcd60e51b8152600401610c27906151a2565b600a80546001600160401b03909216600160c01b026001600160c01b03909216919091179055565b6005546001600160a01b031633146114275760405162461bcd60e51b8152600401610c27906151a2565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b611451611e40565b60405163eaeacd6360e01b815263ffffffff84166004820152602481018390526001600160401b03821660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063eaeacd6390606401600060405180830381600087803b1580156114ce57600080fd5b505af11580156114e2573d6000803e3d6000fd5b505060075460ff16159150610f7d90505763ffffffff83166000908152600660209081526040808320858452909152812080546001600160401b0316916115288361546b565b91906101000a8154816001600160401b0302191690836001600160401b0316021790555050505050565b61155a611e40565b6115646000612694565b565b61156e611e40565b63ffffffff8316600090815260016020526040902054151581151581036115cd5760405162461bcd60e51b8152602060048201526013602482015272506565723a20696e76616c696420737461746560681b6044820152606401610c27565b63ffffffff84166000818152600160209081526040918290208690558151928352820185905283151582820152517fc55181d68816686be8ec55890d24aefed84c9a6a875145822aad2b2c950f027f9181900360600190a150505050565b60075460009060ff16156116755763ffffffff8316600090815260066020908152604080832085845290915290205461166e906001600160401b03166001615491565b9050610e8e565b506000610e8e565b600a54600160201b90046001600160a01b031633146116ae5760405162461bcd60e51b8152600401610c27906151a2565b600a80546001600160a01b03909216600160201b02640100000000600160c01b0319909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146117495760405162461bcd60e51b81526020600482015260136024820152724f4170703a20656e64706f696e74206f6e6c7960681b6044820152606401610c27565b61176361175960208701876148ba565b8660200135611d18565b61178d61177360208701876148ba565b60208701356117886080890160608a01614d33565b6126e4565b61179a85858585856127d8565b5050505050565b6117a9611e40565b60405163279ffff360e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639e7fffcc90610b799086908690869060040161508b565b33301461183e5760405162461bcd60e51b8152602060048201526013602482015272283932b1b934b6b29d1037b7363c9039b2b63360691b6044820152606401610c27565b60008061184b848461298b565b915091508181604051631f78298160e11b8152600401610c27929190614968565b600061188a84600560149054906101000a900463ffffffff16611e9a565b90506118e4858285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805180820190915234815260208101919091529250339150611edc9050565b5061179a85611fc1565b6118f6611e40565b60405163b8849ac960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b8849ac990610b79908690869086906004016154b8565b61194e611e40565b60405163e16f964d60e01b815263ffffffff831660048201526001600160a01b0382811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063e16f964d90604401600060405180830381600087803b1580156119bd57600080fd5b505af115801561139c573d6000803e3d6000fd5b6005546001600160a01b031633146119fb5760405162461bcd60e51b8152600401610c27906151a2565b6000611a1984600560149054906101000a900463ffffffff16611e9a565b905061139c858285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805180820190915234815260208101919091529250339150611edc9050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611ad75760405162461bcd60e51b815260206004820152600960248201526808595b991c1bda5b9d60ba1b6044820152606401610c27565b6000611ae38686612b6e565b905060011960ff821601611b0f57600160046000828254611b0491906154df565b90915550611bec9050565b60031960ff821601611bad57600160046000828254611b2e91906154df565b9091555060009050611b408787612b90565b9050611b4b81611fc1565b6000611b6562030d406000611b5e612bb2565b9190612c02565b9050611ba582611b886001600560149054906101000a900463ffffffff16611e9a565b836040518060400160405280348152602001600081525030611edc565b505050611bec565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206d657373616765207479706560601b6044820152606401610c27565b5050505050505050565b600080611c5786611c1987600560149054906101000a900463ffffffff16611e9a565b600087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c2792505050565b9150915094509492505050565b611c6c611e40565b60405163335fa1eb60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366bf43d690610b79908690869086906004016154b8565b6060600080611ccb8585612cd6565b915091506001600a60189054906101000a90046001600160401b031683518484604051602001611cff9594939291906154f2565b6040516020818303038152906040529250505092915050565b611d228282610e75565b611d635760405162461bcd60e51b81526020600482015260126024820152712832b2b91d1034b73b30b634b2103832b2b960711b6044820152606401610c27565b5050565b611d6f611e40565b6001600160a01b038116611dd45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c27565b611ddd81612694565b50565b6005546001600160a01b03163314611e0a5760405162461bcd60e51b8152600401610c27906151a2565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610f7d573d6000803e3d6000fd5b6000546001600160a01b031633146115645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c27565b6040805160f89390931b6001600160f81b031916602084015260e09190911b6001600160e01b0319166021830152805160058184030181526025909201905290565b611ee46145b8565b6000611eef87610bd1565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663aca1b45a866000015160405180608001604052808c63ffffffff1681526020018681526020018b81526020018a8152508860200151886040518563ffffffff1660e01b8152600401611f7293929190615585565b60806040518083038185885af1158015611f90573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fb5919061562a565b98975050505050505050565b63ffffffff81166000908152600960205260408120805491611fe283615189565b919050555050565b600a54600090606090600160c01b90046001600160401b031683111561205257600a546101909061202a90600160c01b90046001600160401b0316612dd4565b60405160200161203a9190615674565b60405160208183030381529060405291509150611171565b82156122635760008080805b8681101561225e57600088888381811061207a5761207a615112565b905060200281019061208c91906156b9565b612095906156cf565b80515190915063ffffffff86811691161415806120b757508051602001518414155b156121e657805180516020820151606090920151909650909450925060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344760576306040516001600160e01b031960e084901b1681526001600160a01b03909116600482015263ffffffff8916602482015260448101889052606401602060405180830381865afa15801561215c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218091906157a9565b61218b906001615491565b9050806001600160401b0316846001600160401b0316146121e0576101916121b284612dd4565b6040516020016121c291906157c6565b60405160208183030381529060405297509750505050505050611171565b5061224b565b6121ef8361546b565b9250826001600160401b03168160000151606001516001600160401b03161461224b5761019161221e83612dd4565b60405160200161222e9190615818565b604051602081830303815290604052965096505050505050611171565b508061225681615189565b91505061205e565b505050505b505060408051602081019091526000808252909250929050565b60006060631f78298160e11b6122928461585d565b6001600160e01b031916146122a957825160208401fd5b600483019250828060200190518101906122c39190615894565b91509150915091565b6000606083156123bf5760006122e28686612cd6565b50905060005b81518110156123bc576000805b865181101561235e5783838151811061231057612310615112565b602002602001015163ffffffff1687828151811061233057612330615112565b602002602001015163ffffffff160361234c576001915061235e565b8061235681615189565b9150506122f5565b50806123a9576101926040518060400160405280601e81526020017f6d697373696e6720706565722073696d756c6174696f6e20726573756c74000081525094509450505050612475565b50806123b481615189565b9150506122e8565b50505b6000805b845181101561241a57600a54855163ffffffff909116908690839081106123ec576123ec615112565b602002602001015163ffffffff1603612408576001915061241a565b8061241281615189565b9150506123c3565b508061246057505060408051808201909152601f81527f6d697373696e67206c6f63616c2073696d756c6174696f6e20726573756c740060208201526101929150612475565b50506040805160208101909152600080825291505b935093915050565b600060606124a46040518060400160405280600063ffffffff168152602001606081525090565b600084516001600160401b038111156124bf576124bf614a49565b60405190808252806020026020018201604052801561250557816020015b6040805180820190915260008152606060208201528152602001906001900390816124dd5790505b50905060005b85518110156125c45785818151811061252657612526615112565b60200260200101518060200190518101906125419190615927565b82828151811061255357612553615112565b6020908102919091010152600a54825163ffffffff9091169083908390811061257e5761257e615112565b60200260200101516000015163ffffffff16036125b2578181815181106125a7576125a7615112565b602002602001015192505b806125bc81615189565b91505061250b565b5060005b81518110156126765760006125fa848484815181106125e9576125e9615112565b602002602001015160000151612e66565b509050600061262d84848151811061261457612614615112565b6020908102919091010151600a5463ffffffff16612e66565b91505080821115612661576001604051806060016040528060318152602001615d7760319139965096505050505050915091565b5050808061266e90615189565b9150506125c8565b50600060405180602001604052806000815250935093505050915091565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b63ffffffff831660009081526006602090815260408083208584529091529020546007546001600160401b039091169060ff161561277d57612727816001615491565b6001600160401b0316826001600160401b03161461277d5760405162461bcd60e51b81526020600482015260136024820152724f4170703a20696e76616c6964206e6f6e636560681b6044820152606401610c27565b806001600160401b0316826001600160401b031611156127d25763ffffffff841660009081526006602090815260408083208684529091529020805467ffffffffffffffff19166001600160401b0384161790555b50505050565b60006127ef6127ea6040880188615143565b612b6e565b905060001960ff82160161282d576003805490600061280d83615189565b90915550612828905061282360208801886148ba565b612f1a565b61139c565b60ff811660021480612842575060ff81166004145b15612901576003805490600061285783615189565b9091555061286d905061282360208801886148ba565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663754d3b9c30876128ab60408b018b615143565b6040518563ffffffff1660e01b81526004016128ca9493929190615a35565b600060405180830381600087803b1580156128e457600080fd5b505af11580156128f8573d6000803e3d6000fd5b5050505061139c565b60021960ff821601611bad576003805490600061291d83615189565b90915550612933905061282360208801886148ba565b612943610e4960208801886148ba565b600061295662030d406000611b5e612bb2565b905061298461296860208901896148ba565b600554611b8890600190600160a01b900463ffffffff16611e9a565b505061139c565b6000606060005b838110156129d8576129c68585838181106129af576129af615112565b90506020028101906129c191906156b9565b612f3b565b806129d081615189565b915050612992565b50600b546000906001600160401b038111156129f6576129f6614a49565b604051908082528060200260200182016040528015612a5157816020015b612a3e6040518060600160405280600063ffffffff16815260200160008152602001600081525090565b815260200190600190039081612a145790505b50905060005b600b54811015612b26576000600b8281548110612a7657612a76615112565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16905060405180606001604052808263ffffffff168152602001612ad18363ffffffff1660009081526008602052604090205490565b8152602001612af28363ffffffff1660009081526009602052604090205490565b815250838381518110612b0757612b07615112565b6020026020010181905250508080612b1e90615189565b915050612a57565b50604080518082018252600a5463ffffffff16815260208082018490529151600092612b53929101615a67565b60405160208183030381529060405292509250509250929050565b6000612b7d6001828486615ae2565b612b8691615b0c565b60f81c9392505050565b6000612b9f8260018186615ae2565b612ba891615b3c565b60e01c9392505050565b60408051600080825260208201909252606091612bfd9190612bf7565b604080518082019091526000815260606020820152815260200190600190039081612bcf5790505b50612fb0565b905090565b60606000612c1084846130eb565b9050612c1e85600183613190565b95945050505050565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166383c4755930898989896040518663ffffffff1660e01b8152600401612c80959493929190615b6a565b6040805180830381865afa158015612c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc09190615bb4565b8051602090910151909890975095505050505050565b6060806000839003612dbf57600b600c81805480602002602001604051908101604052809291908181526020018280548015612d5d57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411612d205790505b5050505050915080805480602002602001604051908101604052809291908181526020018280548015612daf57602002820191906000526020600020905b815481526020019060010190808311612d9b575b5050505050905091509150611171565b612dc984846132b9565b915091509250929050565b60606000612de1836134e1565b60010190506000816001600160401b03811115612e0057612e00614a49565b6040519080825280601f01601f191660200182016040528015612e2a576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612e3457509392505050565b60008060005b846020015151811015612f0d578363ffffffff1685602001518281518110612e9657612e96615112565b60200260200101516000015163ffffffff1603612efb5784602001518181518110612ec357612ec3615112565b60200260200101516020015185602001518281518110612ee557612ee5615112565b6020026020010151604001519250925050611171565b80612f0581615189565b915050612e6c565b5060009485945092505050565b63ffffffff81166000908152600860205260408120805491611fe283615189565b6000612f478280615bd0565b6020013560016000612f598580615bd0565b612f679060208101906148ba565b63ffffffff1663ffffffff168152602001908152602001600020541490508015611d6357611d63612f988380615bd0565b602084013533612fab6040870187615143565b6127d8565b60606000612fbe83516135b9565b60408051600360f01b60208201526001600160f01b031960f084901b1660228201528151600481830301815260249091019091529091506000805b8361ffff168110156130e157600086828151811061301957613019615112565b6020026020010151600001519050816000148061303d57508261ffff168161ffff16115b6130595760405162461bcd60e51b8152600401610c2790615be6565b600061308288848151811061307057613070615112565b602002602001015160200151516135b9565b90508482828a868151811061309957613099615112565b6020026020010151602001516040516020016130b89493929190615c07565b6040516020818303038152906040529450819350505080806130d990615189565b915050612ff9565b5090949350505050565b60408051808201909152600081526060602082015260006001600160801b0383161561314857604080516001600160801b0319608087811b8216602084015286901b16603082015201604051602081830303815290604052613172565b6040516001600160801b0319608086901b1660208201526030016040516020818303038152906040525b60408051808201909152600181526020810191909152949350505050565b60608360036131a08260006135e1565b61ffff16146131fd5760405162461bcd60e51b8152602060048201526024808201527f4f7074696f6e734275696c6465723a20696e76616c6964206f7074696f6e73206044820152637479706560e01b6064820152608401610c27565b60006132088661363e565b905060008060006132198489613850565b925092509250821561326e576000613230826138eb565b905061323c8189613a57565b905061324781613cd8565b85848151811061325957613259615112565b602002602001015160200181905250506132a3565b600061327988613e33565b6040805180820190915261ffff8b1681526020810182905290915061329e8682613ea7565b955050505b6132ac84612fb0565b9998505050505050505050565b6060806000805b84811015613349576000600d818888858181106132df576132df615112565b90506020028101906132f191906156b9565b6132fb9080615bd0565b6133099060208101906148ba565b63ffffffff1663ffffffff1681526020019081526020016000205414613337578161333381615c59565b9250505b8061334181615189565b9150506132c0565b508061ffff166001600160401b0381111561336657613366614a49565b60405190808252806020026020018201604052801561338f578160200160208202803683370190505b5092508061ffff166001600160401b038111156133ae576133ae614a49565b6040519080825280602002602001820160405280156133d7578160200160208202803683370190505b50915060005b8481101561116e576000600d60008888858181106133fd576133fd615112565b905060200281019061340f91906156b9565b6134199080615bd0565b6134279060208101906148ba565b63ffffffff168152602081019190915260400160002054905080156134ce5786868381811061345857613458615112565b905060200281019061346a91906156b9565b6134749080615bd0565b6134829060208101906148ba565b85838151811061349457613494615112565b602002602001019063ffffffff16908163ffffffff1681525050808483815181106134c1576134c1615112565b6020026020010181815250505b50806134d981615189565b9150506133dd565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106135205772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061354c576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061356a57662386f26fc10000830492506010015b6305f5e1008310613582576305f5e100830492506008015b612710831061359657612710830492506004015b606483106135a8576064830492506002015b600a8310610e8e5760010192915050565b600061ffff8211156135dd5760405162461bcd60e51b8152600401610c2790615c70565b5090565b60006135ee8260026154df565b835110156136355760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606401610c27565b50016002015190565b6060600061364c83826135e1565b905061ffff811660011480613665575061ffff81166002145b1561368257600061367a8261ffff1685614106565b949350505050565b8061ffff1660030361381e57600061369b8460026135e1565b905060008161ffff166001600160401b038111156136bb576136bb614a49565b60405190808252806020026020018201604052801561370157816020015b6040805180820190915260008152606060208201528152602001906001900390816136d95790505b50905060046000805b8461ffff168110156137f257600061372289856135e1565b905061372f6002856154df565b935081158061374557508261ffff168161ffff16115b6137615760405162461bcd60e51b8152600401610c2790615be6565b91508160006137708a866135e1565b905061377d6002866154df565b945060405180604001604052808361ffff1681526020016137ad878461ffff168e6143d09092919063ffffffff16565b8152508684815181106137c2576137c2615112565b60209081029190910101526137db61ffff8216866154df565b9450505080806137ea90615189565b91505061370a565b50865182146138135760405162461bcd60e51b8152600401610c2790615c70565b509095945050505050565b60405162461bcd60e51b815260206004820152600760248201526604c5a43303030360cc1b6044820152606401610c27565b600080606060005b85518110156138cc578461ffff1686828151811061387857613878615112565b60200260200101516000015161ffff16036138ba576001818783815181106138a2576138a2615112565b602002602001015160200151935093509350506138e4565b806138c481615189565b915050613858565b50506040805160208101909152600080825292508291505b9250925092565b60606000806138fa84826135e1565b90506139076002836154df565b915060008161ffff166001600160401b0381111561392757613927614a49565b60405190808252806020026020018201604052801561396d57816020015b6040805180820190915260008152606060208201528152602001906001900390816139455790505b5090506000805b8361ffff168161ffff16101561381357600061399088876135e1565b905061399d6002876154df565b95508261ffff168161ffff16116139c65760405162461bcd60e51b8152600401610c2790615be6565b91508160006139d589886135e1565b90506139e26002886154df565b965060006139f58a8961ffff85166143d0565b9050613a0561ffff8316896154df565b975060405180604001604052808461ffff16815260200182815250868561ffff1681518110613a3657613a36615112565b60200260200101819052505050508080613a4f90615c59565b915050613974565b6060600083516001613a6991906154df565b6001600160401b03811115613a8057613a80614a49565b604051908082528060200260200182016040528015613ac657816020015b604080518082019091526000815260606020820152815260200190600190039081613a9e5790505b5090508051600103613af8578281600081518110613ae657613ae6615112565b60209081029190910101529050610e8e565b60005b8451811015613cd057836000015161ffff16858281518110613b1f57613b1f615112565b60200260200101516000015161ffff1603613b8f5760405162461bcd60e51b815260206004820152602a60248201527f4f7074696f6e734275696c6465723a206f7074696f6e207479706520616c72656044820152696164792065786973747360b01b6064820152608401610c27565b836000015161ffff16858281518110613baa57613baa615112565b60200260200101516000015161ffff161015613bfc57848181518110613bd257613bd2615112565b6020026020010151828281518110613bec57613bec615112565b6020026020010181905250613c81565b83828281518110613c0f57613c0f615112565b6020908102919091010152805b8551811015613c7b57858181518110613c3757613c37615112565b602002602001015183826001613c4d91906154df565b81518110613c5d57613c5d615112565b60200260200101819052508080613c7390615189565b915050613c1c565b50613cd0565b60018551613c8f91906150ff565b8103613cbe578382613ca28360016154df565b81518110613cb257613cb2615112565b60200260200101819052505b80613cc881615189565b915050613afb565b509392505050565b60606000825111613cfb5760405162461bcd60e51b8152600401610c2790615c70565b6000613d0783516135b9565b9050600081604051602001613d1c9190615c91565b60408051601f1981840301815291905290506000805b8361ffff168110156130e1576000868281518110613d5257613d52615112565b60200260200101516000015190508160001480613d7657508261ffff168161ffff16115b613d925760405162461bcd60e51b8152600401610c2790615be6565b8092506000613dac88848151811061307057613070615112565b90506000888481518110613dc257613dc2615112565b602002602001015160000151828a8681518110613de157613de1615112565b602002602001015160200151604051602001613dff93929190615ca9565b60408051601f198184030181529190529050613e1b86826144dd565b95505050508080613e2b90615189565b915050613d32565b60408051600180825281830190925260609160009190816020015b604080518082019091526000815260606020820152815260200190600190039081613e4e5790505090508281600081518110613e8c57613e8c615112565b6020026020010181905250613ea081613cd8565b9392505050565b6060600083516001613eb991906154df565b6001600160401b03811115613ed057613ed0614a49565b604051908082528060200260200182016040528015613f1657816020015b604080518082019091526000815260606020820152815260200190600190039081613eee5790505b5090508051600103613f36578281600081518110613ae657613ae6615112565b60005b8451811015613cd057836000015161ffff16858281518110613f5d57613f5d615112565b60200260200101516000015161ffff1603613fcb5760405162461bcd60e51b815260206004820152602860248201527f4f7074696f6e734275696c6465723a20776f726b657220696420616c72656164604482015267792065786973747360c01b6064820152608401610c27565b836000015161ffff16858281518110613fe657613fe6615112565b60200260200101516000015161ffff1610156140385784818151811061400e5761400e615112565b602002602001015182828151811061402857614028615112565b60200260200101819052506140b7565b8382828151811061404b5761404b615112565b6020908102919091010152805b8551811015613c7b5785818151811061407357614073615112565b60200260200101518382600161408991906154df565b8151811061409957614099615112565b602002602001018190525080806140af90615189565b915050614058565b600185516140c591906150ff565b81036140f45783826140d88360016154df565b815181106140e8576140e8615112565b60200260200101819052505b806140fe81615189565b915050613f39565b604080516001808252818301909252606091816020015b60408051808201909152600081526060602082015281526020019060019003908161411d579050509050606060001984016141fc5782516022146141735760405162461bcd60e51b8152600401610c2790615c70565b600061418084600261455a565b90506001600160801b038111156141a95760405162461bcd60e51b8152600401610c2790615c70565b60016040516020016141bb9190615c91565b60405160208183030381529060405291508160016010836040516020016141e59493929190615ce7565b604051602081830303815290604052915050614391565b600119840161381e576042835111801561421857506062835111155b6142345760405162461bcd60e51b8152600401610c2790615c70565b600061424184600261455a565b90506001600160801b0381111561426a5760405162461bcd60e51b8152600401610c2790615c70565b600061427785602261455a565b90506001600160801b038111156142a05760405162461bcd60e51b8152600401610c2790615c70565b6000604286516142b091906150ff565b905060006142c0876042846143d0565b6142c990615d38565b90506142d68260206150ff565b6142e1906008615d5f565b60408051608086901b6001600160801b03191660208201529290911c603080840182905282518085039091018152605084019092529161432690600290607001615c91565b60405160208183030381529060405295508560016010876040516020016143509493929190615ce7565b604051602081830303815290604052955085600282518360405160200161437a9493929190615c07565b604051602081830303815290604052955050505050505b6040518060400160405280600161ffff16815260200182815250826000815181106143be576143be615112565b60200260200101819052505092915050565b6060816143de81601f6154df565b101561441d5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610c27565b61442782846154df565b8451101561446b5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610c27565b60608215801561448a57604051915060008252602082016040526144d4565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156144c35780518352602092830192016144ab565b5050858452601f01601f1916604052505b50949350505050565b6060806040519050835180825260208201818101602087015b8183101561450e5780518352602092830192016144f6565b50855184518101855292509050808201602086015b8183101561453b578051835260209283019201614523565b508651929092011591909101601f01601f191660405250905092915050565b60006145678260206154df565b835110156145af5760405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606401610c27565b50016020015190565b60405180606001604052806000801916815260200160006001600160401b031681526020016145fa604051806040016040528060008152602001600081525090565b905290565b8280548282559060005260206000209060070160089004810192821561469e5791602002820160005b8382111561466c57835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302614628565b801561469c5782816101000a81549063ffffffff021916905560040160208160030104928301926001030261466c565b505b506135dd9291506146e5565b82805482825590600052602060002090810192821561469e579160200282015b8281111561469e5782518255916020019190600101906146ca565b5b808211156135dd57600081556001016146e6565b6001600160a01b0381168114611ddd57600080fd5b63ffffffff81168114611ddd57600080fd5b60008083601f84011261473357600080fd5b5081356001600160401b0381111561474a57600080fd5b60208301915083602082850101111561117157600080fd5b60008060008060006080868803121561477a57600080fd5b8535614785816146fa565b945060208601356147958161470f565b935060408601356147a58161470f565b925060608601356001600160401b038111156147c057600080fd5b6147cc88828901614721565b969995985093965092949392505050565b60008083601f8401126147ef57600080fd5b5081356001600160401b0381111561480657600080fd5b6020830191508360208260051b850101111561117157600080fd5b60008060006040848603121561483657600080fd5b8335614841816146fa565b925060208401356001600160401b0381111561485c57600080fd5b614868868287016147dd565b9497909650939450505050565b60006020828403121561488757600080fd5b5035919050565b600080604083850312156148a157600080fd5b82356148ac8161470f565b946020939093013593505050565b6000602082840312156148cc57600080fd5b8135613ea08161470f565b600080602083850312156148ea57600080fd5b82356001600160401b0381111561490057600080fd5b61490c858286016147dd565b90969095509350505050565b60005b8381101561493357818101518382015260200161491b565b50506000910152565b60008151808452614954816020860160208601614918565b601f01601f19169290920160200192915050565b61ffff8316815260406020820152600061367a604083018461493c565b6000806000806000806060878903121561499e57600080fd5b86356001600160401b03808211156149b557600080fd5b6149c18a838b016147dd565b909850965060208901359150808211156149da57600080fd5b6149e68a838b016147dd565b909650945060408901359150808211156149ff57600080fd5b50614a0c89828a016147dd565b979a9699509497509295939492505050565b80358015158114610c3057600080fd5b600060208284031215614a4057600080fd5b613ea082614a1e565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614a8157614a81614a49565b60405290565b604051606081016001600160401b0381118282101715614a8157614a81614a49565b604051608081016001600160401b0381118282101715614a8157614a81614a49565b604051601f8201601f191681016001600160401b0381118282101715614af357614af3614a49565b604052919050565b60006001600160401b03821115614b1457614b14614a49565b5060051b60200190565b600082601f830112614b2f57600080fd5b81356020614b44614b3f83614afb565b614acb565b82815260059290921b84018101918181019086841115614b6357600080fd5b8286015b84811015614b7e5780358352918301918301614b67565b509695505050505050565b60008060408385031215614b9c57600080fd5b82356001600160401b0380821115614bb357600080fd5b818501915085601f830112614bc757600080fd5b81356020614bd7614b3f83614afb565b82815260059290921b84018101918181019089841115614bf657600080fd5b948201945b83861015614c1d578535614c0e8161470f565b82529482019490820190614bfb565b96505086013592505080821115614c3357600080fd5b50614c4085828601614b1e565b9150509250929050565b60008060008060408587031215614c6057600080fd5b84356001600160401b0380821115614c7757600080fd5b614c83888389016147dd565b90965094506020870135915080821115614c9c57600080fd5b50614ca9878288016147dd565b95989497509550505050565b6001600160401b0381168114611ddd57600080fd5b60008060008060008060a08789031215614ce357600080fd5b8635614cee8161470f565b9550602087013594506040870135614d0581614cb5565b93506060870135925060808701356001600160401b03811115614d2757600080fd5b614a0c89828a01614721565b600060208284031215614d4557600080fd5b8135613ea081614cb5565b600060208284031215614d6257600080fd5b8135613ea0816146fa565b600080600060608486031215614d8257600080fd5b8335614d8d8161470f565b9250602084013591506040840135614da481614cb5565b809150509250925092565b600080600060608486031215614dc457600080fd5b8335614dcf8161470f565b925060208401359150614de460408501614a1e565b90509250925092565b600080600080600060808688031215614e0557600080fd5b85356001600160401b0380821115614e1c57600080fd5b908701906080828a031215614e3057600080fd5b90955060208701359450604087013590614e49826146fa565b90935060608701359080821115614e5f57600080fd5b506147cc88828901614721565b803560ff81168114610c3057600080fd5b60008060008060608587031215614e9357600080fd5b8435614e9e8161470f565b9350614eac60208601614e6c565b925060408501356001600160401b03811115614ec757600080fd5b614ca987828801614721565b600080600060608486031215614ee857600080fd5b8335614ef38161470f565b92506020840135614f03816146fa565b929592945050506040919091013590565b60008060408385031215614f2757600080fd5b8235614f328161470f565b91506020830135614f42816146fa565b809150509250929050565b600080600080600080600060a0888a031215614f6857600080fd5b8735614f73816146fa565b96506020880135955060408801356001600160401b0380821115614f9657600080fd5b614fa28b838c01614721565b909750955060608a01359150614fb7826146fa565b90935060808901359080821115614fcd57600080fd5b50614fda8a828b01614721565b989b979a50959850939692959293505050565b602081526000613ea0602083018461493c565b6000806040838503121561501357600080fd5b82356148ac816146fa565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038616815263ffffffff858116602083015284166040820152608060608201819052600090615080908301848661501e565b979650505050505050565b6001600160a01b038416815260406020808301829052908201839052600090849060608401835b868110156150dd5783356150c58161470f565b63ffffffff16825292820192908201906001016150b2565b50979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610e8e57610e8e6150e9565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561513a57600080fd5b613ea082614e6c565b6000808335601e1984360301811261515a57600080fd5b8301803591506001600160401b0382111561517457600080fd5b60200191503681900382131561117157600080fd5b60006001820161519b5761519b6150e9565b5060010190565b6020808252600a908201526937b7363c9030b236b4b760b11b604082015260600190565b6000808335601e198436030181126151dd57600080fd5b83016020810192503590506001600160401b038111156151fc57600080fd5b80360382131561117157600080fd5b60208082528181018390526000906040808401600586901b8501820187855b8881101561531157878303603f190184528135368b9003605e1901811261525057600080fd5b8a016060813536839003607e1901811261526957600080fd5b818652820180356152798161470f565b63ffffffff811683880152506080898201358188015261529b898301836151c6565b8260a08a01526152af60e08a01828461501e565b925050508282013592506152c283614cb5565b6001600160401b03831660c0880152898401358a8801526152e5898501856151c6565b94509250868103898801526152fb81858561501e565b978a01979650505092870192505060010161522a565b509098975050505050505050565b60008251615331818460208701614918565b9190910192915050565b63ffffffff8316815260406020820152600061367a604083018461493c565b60006001600160401b0382111561537357615373614a49565b50601f01601f191660200190565b600082601f83011261539257600080fd5b81356153a0614b3f8261535a565b8181528460208386010111156153b557600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156153e557600080fd5b82356153f08161470f565b915060208301356001600160401b0381111561540b57600080fd5b614c4085828601615381565b63ffffffff871681528560208201526001600160401b038516604082015283606082015260a060808201526000611fb560a08301848661501e565b60006020828403121561546457600080fd5b5051919050565b60006001600160401b03808316818103615487576154876150e9565b6001019392505050565b6001600160401b038181168382160190808211156154b1576154b16150e9565b5092915050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b80820180821115610e8e57610e8e6150e9565b61ffff60f01b8660f01b1681526001600160401b0360c01b8560c01b16600282015283600a8201526000602a82018451602080870160005b8381101561554c57815163ffffffff168552938201939082019060010161552a565b5050855181870193925060005b8181101561557557845184529382019392820192600101615559565b50919a9950505050505050505050565b6060815263ffffffff84511660608201526020840151608082015260006040850151608060a08401526155bb60e084018261493c565b90506060860151605f198483030160c08501526155d8828261493c565b60208501969096525050506001600160a01b0391909116604090910152919050565b60006040828403121561560c57600080fd5b615614614a5f565b9050815181526020820151602082015292915050565b60006080828403121561563c57600080fd5b615644614a87565b82518152602083015161565681614cb5565b602082015261566884604085016155fa565b60408201529392505050565b7f7061636b6574732073697a6520657863656564206c696d6974656420000000008152600082516156ac81601c850160208701614918565b91909101601c0192915050565b60008235605e1983360301811261533157600080fd5b6000606082360312156156e157600080fd5b6156e9614a87565b82356001600160401b038082111561570057600080fd5b81850191506080823603121561571557600080fd5b61571d614aa9565b82356157288161470f565b81526020838101359082015260408301358281111561574657600080fd5b61575236828601615381565b6040830152506060830135925061576883614cb5565b8260608201528084525060208501356020840152604085013591508082111561579057600080fd5b5061579d36828601615381565b60408301525092915050565b6000602082840312156157bb57600080fd5b8151613ea081614cb5565b7f736b697070656420696e626f756e644e6f6e63652c207061636b657420696e64815263032bc1d160e51b60208201526000825161580b816024850160208701614918565b9190910160240192915050565b7f756e736f72746564207061636b6574732c207061636b657420696e6465783a20815260008251615850816020850160208701614918565b9190910160200192915050565b805160208201516001600160e01b0319808216929190600483101561588c5780818460040360031b1b83161693505b505050919050565b600080604083850312156158a757600080fd5b825161ffff811681146158b957600080fd5b60208401519092506001600160401b038111156158d557600080fd5b8301601f810185136158e657600080fd5b80516158f4614b3f8261535a565b81815286602083850101111561590957600080fd5b61591a826020830160208601614918565b8093505050509250929050565b6000602080838503121561593a57600080fd5b82516001600160401b038082111561595157600080fd5b8185019150604080838803121561596757600080fd5b61596f614a5f565b835161597a8161470f565b8152838501518381111561598d57600080fd5b80850194505087601f8501126159a257600080fd5b835192506159b2614b3f84614afb565b8381526060938402850186019386820191908a8611156159d157600080fd5b958701955b85871015615a225780878c0312156159ee5760008081fd5b6159f6614a87565b8751615a018161470f565b815287890151898201528588015186820152835295860195918701916159d6565b5095820195909552979650505050505050565b60018060a01b0385168152836020820152606060408201526000615a5d60608301848661501e565b9695505050505050565b60006020808352606080840163ffffffff8087511684870152838701516040808189015283825180865260808a0191508784019550600093505b80841015615ad4578551805186168352888101518984015283015183830152948701946001939093019290860190615aa1565b509998505050505050505050565b60008085851115615af257600080fd5b83861115615aff57600080fd5b5050820193919092039150565b6001600160f81b03198135818116916001851015615b345780818660010360031b1b83161692505b505092915050565b6001600160e01b03198135818116916004851015615b345760049490940360031b84901b1690921692915050565b6001600160a01b038616815263ffffffff8516602082015260a060408201819052600090615b9a9083018661493c565b84151560608401528281036080840152611fb5818561493c565b600060408284031215615bc657600080fd5b613ea083836155fa565b60008235607e1983360301811261533157600080fd5b602080825260079082015266262d189818181b60c91b604082015260600190565b60008551615c19818460208a01614918565b6001600160f01b031960f087811b821692850192835286901b1660028201528351615c4b816004840160208801614918565b016004019695505050505050565b600061ffff808316818103615487576154876150e9565b6020808252600790820152664c5a313030303960c81b604082015260600190565b60f09190911b6001600160f01b031916815260020190565b600061ffff60f01b808660f01b168352808560f01b166002840152508251615cd8816004850160208701614918565b91909101600401949350505050565b60008551615cf9818460208a01614918565b60f095861b6001600160f01b0319908116939091019283529390941b909216600283015260801b6001600160801b031916600482015260140192915050565b80516020808301519190811015615d59576000198160200360031b1b821691505b50919050565b8082028115828204841417610e8e57610e8e6150e956fe4f6d6e69436f756e7465725072656372696d653a20696e626f756e64436f756e74203e206f7574626f756e64436f756e74a2646970667358221220760495f15abced4faae6a26e6c5237f0afd9f2f03b567368227818c581856a3764736f6c63430008110033",
1409
- "deployedBytecode": "0x6080604052600436106102f85760003560e01c80636ece7d3611610190578063baa460fd116100dc578063e2a0844e1161008d578063e2a0844e14610998578063e51ac4b0146109b8578063e76d614f146109df578063e9b1796c14610a0c578063f2fde38b14610a2c578063f3fef3a314610a4c578063f851a44014610a6c578063f95d1404146104dd57005b8063baa460fd146108ba578063bb0b6a53146108da578063bc4374f914610907578063c6be4b9b14610927578063c95c55be1461093d578063d0a1026014610950578063d22446ce1461096357005b80638da5cb5b116101415780638da5cb5b146107d557806392d99a7f146107f357806398166ccc146108135780639e7fffcc14610826578063ae14023b14610846578063b353aaa714610859578063b7abbb5d1461088d578063b7bc8acd146108a057005b80636ece7d3614610703578063704b6c02146107235780637112f86f14610743578063715018a61461076357806372607537146107785780637624f505146107955780637d25a05e146107b557005b806335d671de1161024f5780635a0dfe4d116102005780635a0dfe4d146105c75780635b849af6146105f75780635bf88a00146106175780635e280f11146106375780636052d3c714610683578063622f17f6146106965780636a0494af146106c35780636d41812d146106e357005b806335d671de146104f2578063416ecebf14610520578063472641c1146104dd578063542e7b561461054457806354b3ab691461055757806354fd4d501461058457806356a472891461059a57005b80631f2fac53116102a95780631f2fac53146103de578063257f4e051461043757806326b27f841461044d57806329c246281461046d5780632c79305d146104a257806330515e56146104b657806334e30097146104dd57005b806303e83c13146103015780630638fb641461032157806306661abd1461034f5780630678327f146103735780630e735a631461039357806312fb9ea5146103a957806317c9efb0146103c957005b366102ff57005b005b34801561030d57600080fd5b506102ff61031c366004614762565b610a8c565b34801561032d57600080fd5b5061033761019081565b60405161ffff90911681526020015b60405180910390f35b34801561035b57600080fd5b5061036560035481565b604051908152602001610346565b34801561037f57600080fd5b506102ff61038e366004614821565b610b21565b34801561039f57600080fd5b5061033761019181565b3480156103b557600080fd5b506103656103c4366004614875565b610bb0565b3480156103d557600080fd5b50610337600081565b3480156103ea57600080fd5b5061041f6103f936600461488e565b60066020908152600092835260408084209091529082529020546001600160401b031681565b6040516001600160401b039091168152602001610346565b34801561044357600080fd5b5061036560045481565b34801561045957600080fd5b506103656104683660046148ba565b610bd1565b34801561047957600080fd5b5061048d610488366004614875565b610c35565b60405163ffffffff9091168152602001610346565b3480156104ae57600080fd5b506001610337565b3480156104c257600080fd5b50600a5461041f90600160c01b90046001600160401b031681565b3480156104e957600080fd5b50610337600181565b3480156104fe57600080fd5b5061051261050d3660046148d7565b610c6f565b604051610346929190614968565b34801561052c57600080fd5b5060055461048d90600160a01b900463ffffffff1681565b6102ff610552366004614985565b610caf565b34801561056357600080fd5b506103656105723660046148ba565b600d6020526000908152604090205481565b34801561059057600080fd5b5061036560025481565b3480156105a657600080fd5b506103656105b53660046148ba565b60086020526000908152604090205481565b3480156105d357600080fd5b506105e76105e236600461488e565b610e75565b6040519015158152602001610346565b34801561060357600080fd5b506102ff610612366004614a2e565b610e94565b34801561062357600080fd5b506102ff610632366004614b89565b610eaf565b34801561064357600080fd5b5061066b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610346565b6105126106913660046148d7565b610f82565b3480156106a257600080fd5b506103656106b13660046148ba565b60096020526000908152604090205481565b3480156106cf57600080fd5b506105126106de366004614c4a565b611178565b3480156106ef57600080fd5b506102ff6106fe366004614cca565b6112f0565b34801561070f57600080fd5b506102ff61071e366004614d33565b6113a4565b34801561072f57600080fd5b506102ff61073e366004614d50565b6113fd565b34801561074f57600080fd5b506102ff61075e366004614d6d565b611449565b34801561076f57600080fd5b506102ff611552565b34801561078457600080fd5b50600a5461048d9063ffffffff1681565b3480156107a157600080fd5b506102ff6107b0366004614daf565b611566565b3480156107c157600080fd5b5061041f6107d036600461488e565b61162b565b3480156107e157600080fd5b506000546001600160a01b031661066b565b3480156107ff57600080fd5b506102ff61080e366004614d50565b61167d565b6102ff610821366004614ded565b6116db565b34801561083257600080fd5b506102ff610841366004614821565b6117a1565b6102ff6108543660046148d7565b6117f9565b34801561086557600080fd5b5061066b7f000000000000000000000000000000000000000000000000000000000000000081565b6102ff61089b366004614e7d565b61186c565b3480156108ac57600080fd5b506007546105e79060ff1681565b3480156108c657600080fd5b506102ff6108d5366004614ed3565b6118ee565b3480156108e657600080fd5b506103656108f53660046148ba565b60016020526000908152604090205481565b34801561091357600080fd5b506102ff610922366004614f14565b611946565b34801561093357600080fd5b5061033761019281565b6102ff61094b366004614e7d565b6119d1565b6102ff61095e366004614f4d565b611a73565b34801561096f57600080fd5b5061098361097e366004614e7d565b611bf6565b60408051928352602083019190915201610346565b3480156109a457600080fd5b506102ff6109b3366004614ed3565b611c64565b3480156109c457600080fd5b50600a5461066b90600160201b90046001600160a01b031681565b3480156109eb57600080fd5b506109ff6109fa3660046148d7565b611cbc565b6040516103469190614fed565b348015610a1857600080fd5b506102ff610a2736600461488e565b611d18565b348015610a3857600080fd5b506102ff610a47366004614d50565b611d67565b348015610a5857600080fd5b506102ff610a67366004615000565b611de0565b348015610a7857600080fd5b5060055461066b906001600160a01b031681565b610a94611e40565b6040516303e83c1360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906303e83c1390610ae89088908890889088908890600401615047565b600060405180830381600087803b158015610b0257600080fd5b505af1158015610b16573d6000803e3d6000fd5b505050505050505050565b610b29611e40565b604051630678327f60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630678327f90610b799086908690869060040161508b565b600060405180830381600087803b158015610b9357600080fd5b505af1158015610ba7573d6000803e3d6000fd5b50505050505050565b600c8181548110610bc057600080fd5b600091825260209091200154905081565b63ffffffff811660009081526001602052604090205480610c305760405162461bcd60e51b81526020600482015260146024820152731419595c8e881c19595c881b9bdd08199bdd5b9960621b60448201526064015b60405180910390fd5b919050565b600b8181548110610c4557600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152600090606090606401610c27565b8481148015610cbd57508483145b610d095760405162461bcd60e51b815260206004820152601c60248201527f4f6d6e69436f756e7465723a206c656e677468206d69736d61746368000000006044820152606401610c27565b610d116145b8565b3460005b87811015610b16576000610d2a60018a6150ff565b8214610d365730610d38565b335b90506000610d7b898985818110610d5157610d51615112565b9050602002016020810190610d669190615128565b600554600160a01b900463ffffffff16611e9a565b9050610e1d8b8b85818110610d9257610d92615112565b9050602002016020810190610da791906148ba565b82898987818110610dba57610dba615112565b9050602002810190610dcc9190615143565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080518082019091528c815260208101919091529250889150611edc9050565b9450610e4e8b8b85818110610e3457610e34615112565b9050602002016020810190610e4991906148ba565b611fc1565b604085015151610e5e90856150ff565b935050508080610e6d90615189565b915050610d15565b63ffffffff821660009081526001602052604090205481145b92915050565b610e9c611e40565b6007805460ff1916911515919091179055565b600a54600160201b90046001600160a01b03163314610ee05760405162461bcd60e51b8152600401610c27906151a2565b8151610ef390600b9060208501906145ff565b508051610f0790600c9060208401906146aa565b5060005b8251811015610f7d57818181518110610f2657610f26615112565b6020026020010151600d6000858481518110610f4457610f44615112565b602002602001015163ffffffff1663ffffffff168152602001908152602001600020819055508080610f7590615189565b915050610f0b565b505050565b60006060323314610fd55760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920454f412063616e2063616c6c2073696d756c6174650000000000006044820152606401610c27565b610fdf8484611fea565b909250905061ffff821661117157600080306001600160a01b03163463ae14023b60e01b888860405160240161101692919061520b565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611054919061531f565b60006040518083038185875af1925050503d8060008114611091576040519150601f19603f3d011682016040523d82523d6000602084013e611096565b606091505b50909250905034156110d05760405133903480156108fc02916000818181858888f193505050501580156110ce573d6000803e3d6000fd5b505b811561112a5760405162461bcd60e51b8152602060048201526024808201527f73696d756c6174652073686f756c64206e657665722072657475726e207375636044820152636365737360e01b6064820152608401610c27565b6111338161227d565b909450925061ffff841661116e57600a5460405161115c9163ffffffff1690859060200161533b565b60405160208183030381529060405292505b50505b9250929050565b6000606081836001600160401b0381111561119557611195614a49565b6040519080825280602002602001820160405280156111c857816020015b60608152602001906001900390816111b35790505b5090506000846001600160401b038111156111e5576111e5614a49565b60405190808252806020026020018201604052801561120e578160200160208202803683370190505b50905060005b858110156112b45760008088888481811061123157611231615112565b90506020028101906112439190615143565b81019061125091906153d2565b915091508184848151811061126757611267615112565b602002602001019063ffffffff16908163ffffffff16815250508085848151811061129457611294615112565b6020026020010181905250505080806112ac90615189565b915050611214565b506112c08888836122cc565b909450925061ffff8416156112d65750506112e7565b6112df8261247d565b909450925050505b94509492505050565b6112f8611e40565b604051635a898aef60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b51315de9061134e90899089908990899089908990600401615417565b6020604051808303816000875af115801561136d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113919190615452565b5061139c8686611d18565b505050505050565b600a54600160201b90046001600160a01b031633146113d55760405162461bcd60e51b8152600401610c27906151a2565b600a80546001600160401b03909216600160c01b026001600160c01b03909216919091179055565b6005546001600160a01b031633146114275760405162461bcd60e51b8152600401610c27906151a2565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b611451611e40565b60405163eaeacd6360e01b815263ffffffff84166004820152602481018390526001600160401b03821660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063eaeacd6390606401600060405180830381600087803b1580156114ce57600080fd5b505af11580156114e2573d6000803e3d6000fd5b505060075460ff16159150610f7d90505763ffffffff83166000908152600660209081526040808320858452909152812080546001600160401b0316916115288361546b565b91906101000a8154816001600160401b0302191690836001600160401b0316021790555050505050565b61155a611e40565b6115646000612694565b565b61156e611e40565b63ffffffff8316600090815260016020526040902054151581151581036115cd5760405162461bcd60e51b8152602060048201526013602482015272506565723a20696e76616c696420737461746560681b6044820152606401610c27565b63ffffffff84166000818152600160209081526040918290208690558151928352820185905283151582820152517fc55181d68816686be8ec55890d24aefed84c9a6a875145822aad2b2c950f027f9181900360600190a150505050565b60075460009060ff16156116755763ffffffff8316600090815260066020908152604080832085845290915290205461166e906001600160401b03166001615491565b9050610e8e565b506000610e8e565b600a54600160201b90046001600160a01b031633146116ae5760405162461bcd60e51b8152600401610c27906151a2565b600a80546001600160a01b03909216600160201b02640100000000600160c01b0319909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146117495760405162461bcd60e51b81526020600482015260136024820152724f4170703a20656e64706f696e74206f6e6c7960681b6044820152606401610c27565b61176361175960208701876148ba565b8660200135611d18565b61178d61177360208701876148ba565b60208701356117886080890160608a01614d33565b6126e4565b61179a85858585856127d8565b5050505050565b6117a9611e40565b60405163279ffff360e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639e7fffcc90610b799086908690869060040161508b565b33301461183e5760405162461bcd60e51b8152602060048201526013602482015272283932b1b934b6b29d1037b7363c9039b2b63360691b6044820152606401610c27565b60008061184b848461298b565b915091508181604051631f78298160e11b8152600401610c27929190614968565b600061188a84600560149054906101000a900463ffffffff16611e9a565b90506118e4858285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805180820190915234815260208101919091529250339150611edc9050565b5061179a85611fc1565b6118f6611e40565b60405163b8849ac960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b8849ac990610b79908690869086906004016154b8565b61194e611e40565b60405163e16f964d60e01b815263ffffffff831660048201526001600160a01b0382811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063e16f964d90604401600060405180830381600087803b1580156119bd57600080fd5b505af115801561139c573d6000803e3d6000fd5b6005546001600160a01b031633146119fb5760405162461bcd60e51b8152600401610c27906151a2565b6000611a1984600560149054906101000a900463ffffffff16611e9a565b905061139c858285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805180820190915234815260208101919091529250339150611edc9050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611ad75760405162461bcd60e51b815260206004820152600960248201526808595b991c1bda5b9d60ba1b6044820152606401610c27565b6000611ae38686612b6e565b905060011960ff821601611b0f57600160046000828254611b0491906154df565b90915550611bec9050565b60031960ff821601611bad57600160046000828254611b2e91906154df565b9091555060009050611b408787612b90565b9050611b4b81611fc1565b6000611b6562030d406000611b5e612bb2565b9190612c02565b9050611ba582611b886001600560149054906101000a900463ffffffff16611e9a565b836040518060400160405280348152602001600081525030611edc565b505050611bec565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206d657373616765207479706560601b6044820152606401610c27565b5050505050505050565b600080611c5786611c1987600560149054906101000a900463ffffffff16611e9a565b600087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c2792505050565b9150915094509492505050565b611c6c611e40565b60405163335fa1eb60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366bf43d690610b79908690869086906004016154b8565b6060600080611ccb8585612cd6565b915091506001600a60189054906101000a90046001600160401b031683518484604051602001611cff9594939291906154f2565b6040516020818303038152906040529250505092915050565b611d228282610e75565b611d635760405162461bcd60e51b81526020600482015260126024820152712832b2b91d1034b73b30b634b2103832b2b960711b6044820152606401610c27565b5050565b611d6f611e40565b6001600160a01b038116611dd45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c27565b611ddd81612694565b50565b6005546001600160a01b03163314611e0a5760405162461bcd60e51b8152600401610c27906151a2565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610f7d573d6000803e3d6000fd5b6000546001600160a01b031633146115645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c27565b6040805160f89390931b6001600160f81b031916602084015260e09190911b6001600160e01b0319166021830152805160058184030181526025909201905290565b611ee46145b8565b6000611eef87610bd1565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663aca1b45a866000015160405180608001604052808c63ffffffff1681526020018681526020018b81526020018a8152508860200151886040518563ffffffff1660e01b8152600401611f7293929190615585565b60806040518083038185885af1158015611f90573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fb5919061562a565b98975050505050505050565b63ffffffff81166000908152600960205260408120805491611fe283615189565b919050555050565b600a54600090606090600160c01b90046001600160401b031683111561205257600a546101909061202a90600160c01b90046001600160401b0316612dd4565b60405160200161203a9190615674565b60405160208183030381529060405291509150611171565b82156122635760008080805b8681101561225e57600088888381811061207a5761207a615112565b905060200281019061208c91906156b9565b612095906156cf565b80515190915063ffffffff86811691161415806120b757508051602001518414155b156121e657805180516020820151606090920151909650909450925060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344760576306040516001600160e01b031960e084901b1681526001600160a01b03909116600482015263ffffffff8916602482015260448101889052606401602060405180830381865afa15801561215c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218091906157a9565b61218b906001615491565b9050806001600160401b0316846001600160401b0316146121e0576101916121b284612dd4565b6040516020016121c291906157c6565b60405160208183030381529060405297509750505050505050611171565b5061224b565b6121ef8361546b565b9250826001600160401b03168160000151606001516001600160401b03161461224b5761019161221e83612dd4565b60405160200161222e9190615818565b604051602081830303815290604052965096505050505050611171565b508061225681615189565b91505061205e565b505050505b505060408051602081019091526000808252909250929050565b60006060631f78298160e11b6122928461585d565b6001600160e01b031916146122a957825160208401fd5b600483019250828060200190518101906122c39190615894565b91509150915091565b6000606083156123bf5760006122e28686612cd6565b50905060005b81518110156123bc576000805b865181101561235e5783838151811061231057612310615112565b602002602001015163ffffffff1687828151811061233057612330615112565b602002602001015163ffffffff160361234c576001915061235e565b8061235681615189565b9150506122f5565b50806123a9576101926040518060400160405280601e81526020017f6d697373696e6720706565722073696d756c6174696f6e20726573756c74000081525094509450505050612475565b50806123b481615189565b9150506122e8565b50505b6000805b845181101561241a57600a54855163ffffffff909116908690839081106123ec576123ec615112565b602002602001015163ffffffff1603612408576001915061241a565b8061241281615189565b9150506123c3565b508061246057505060408051808201909152601f81527f6d697373696e67206c6f63616c2073696d756c6174696f6e20726573756c740060208201526101929150612475565b50506040805160208101909152600080825291505b935093915050565b600060606124a46040518060400160405280600063ffffffff168152602001606081525090565b600084516001600160401b038111156124bf576124bf614a49565b60405190808252806020026020018201604052801561250557816020015b6040805180820190915260008152606060208201528152602001906001900390816124dd5790505b50905060005b85518110156125c45785818151811061252657612526615112565b60200260200101518060200190518101906125419190615927565b82828151811061255357612553615112565b6020908102919091010152600a54825163ffffffff9091169083908390811061257e5761257e615112565b60200260200101516000015163ffffffff16036125b2578181815181106125a7576125a7615112565b602002602001015192505b806125bc81615189565b91505061250b565b5060005b81518110156126765760006125fa848484815181106125e9576125e9615112565b602002602001015160000151612e66565b509050600061262d84848151811061261457612614615112565b6020908102919091010151600a5463ffffffff16612e66565b91505080821115612661576001604051806060016040528060318152602001615d7760319139965096505050505050915091565b5050808061266e90615189565b9150506125c8565b50600060405180602001604052806000815250935093505050915091565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b63ffffffff831660009081526006602090815260408083208584529091529020546007546001600160401b039091169060ff161561277d57612727816001615491565b6001600160401b0316826001600160401b03161461277d5760405162461bcd60e51b81526020600482015260136024820152724f4170703a20696e76616c6964206e6f6e636560681b6044820152606401610c27565b806001600160401b0316826001600160401b031611156127d25763ffffffff841660009081526006602090815260408083208684529091529020805467ffffffffffffffff19166001600160401b0384161790555b50505050565b60006127ef6127ea6040880188615143565b612b6e565b905060001960ff82160161282d576003805490600061280d83615189565b90915550612828905061282360208801886148ba565b612f1a565b61139c565b60ff811660021480612842575060ff81166004145b15612901576003805490600061285783615189565b9091555061286d905061282360208801886148ba565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663754d3b9c30876128ab60408b018b615143565b6040518563ffffffff1660e01b81526004016128ca9493929190615a35565b600060405180830381600087803b1580156128e457600080fd5b505af11580156128f8573d6000803e3d6000fd5b5050505061139c565b60021960ff821601611bad576003805490600061291d83615189565b90915550612933905061282360208801886148ba565b612943610e4960208801886148ba565b600061295662030d406000611b5e612bb2565b905061298461296860208901896148ba565b600554611b8890600190600160a01b900463ffffffff16611e9a565b505061139c565b6000606060005b838110156129d8576129c68585838181106129af576129af615112565b90506020028101906129c191906156b9565b612f3b565b806129d081615189565b915050612992565b50600b546000906001600160401b038111156129f6576129f6614a49565b604051908082528060200260200182016040528015612a5157816020015b612a3e6040518060600160405280600063ffffffff16815260200160008152602001600081525090565b815260200190600190039081612a145790505b50905060005b600b54811015612b26576000600b8281548110612a7657612a76615112565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16905060405180606001604052808263ffffffff168152602001612ad18363ffffffff1660009081526008602052604090205490565b8152602001612af28363ffffffff1660009081526009602052604090205490565b815250838381518110612b0757612b07615112565b6020026020010181905250508080612b1e90615189565b915050612a57565b50604080518082018252600a5463ffffffff16815260208082018490529151600092612b53929101615a67565b60405160208183030381529060405292509250509250929050565b6000612b7d6001828486615ae2565b612b8691615b0c565b60f81c9392505050565b6000612b9f8260018186615ae2565b612ba891615b3c565b60e01c9392505050565b60408051600080825260208201909252606091612bfd9190612bf7565b604080518082019091526000815260606020820152815260200190600190039081612bcf5790505b50612fb0565b905090565b60606000612c1084846130eb565b9050612c1e85600183613190565b95945050505050565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166383c4755930898989896040518663ffffffff1660e01b8152600401612c80959493929190615b6a565b6040805180830381865afa158015612c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc09190615bb4565b8051602090910151909890975095505050505050565b6060806000839003612dbf57600b600c81805480602002602001604051908101604052809291908181526020018280548015612d5d57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411612d205790505b5050505050915080805480602002602001604051908101604052809291908181526020018280548015612daf57602002820191906000526020600020905b815481526020019060010190808311612d9b575b5050505050905091509150611171565b612dc984846132b9565b915091509250929050565b60606000612de1836134e1565b60010190506000816001600160401b03811115612e0057612e00614a49565b6040519080825280601f01601f191660200182016040528015612e2a576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612e3457509392505050565b60008060005b846020015151811015612f0d578363ffffffff1685602001518281518110612e9657612e96615112565b60200260200101516000015163ffffffff1603612efb5784602001518181518110612ec357612ec3615112565b60200260200101516020015185602001518281518110612ee557612ee5615112565b6020026020010151604001519250925050611171565b80612f0581615189565b915050612e6c565b5060009485945092505050565b63ffffffff81166000908152600860205260408120805491611fe283615189565b6000612f478280615bd0565b6020013560016000612f598580615bd0565b612f679060208101906148ba565b63ffffffff1663ffffffff168152602001908152602001600020541490508015611d6357611d63612f988380615bd0565b602084013533612fab6040870187615143565b6127d8565b60606000612fbe83516135b9565b60408051600360f01b60208201526001600160f01b031960f084901b1660228201528151600481830301815260249091019091529091506000805b8361ffff168110156130e157600086828151811061301957613019615112565b6020026020010151600001519050816000148061303d57508261ffff168161ffff16115b6130595760405162461bcd60e51b8152600401610c2790615be6565b600061308288848151811061307057613070615112565b602002602001015160200151516135b9565b90508482828a868151811061309957613099615112565b6020026020010151602001516040516020016130b89493929190615c07565b6040516020818303038152906040529450819350505080806130d990615189565b915050612ff9565b5090949350505050565b60408051808201909152600081526060602082015260006001600160801b0383161561314857604080516001600160801b0319608087811b8216602084015286901b16603082015201604051602081830303815290604052613172565b6040516001600160801b0319608086901b1660208201526030016040516020818303038152906040525b60408051808201909152600181526020810191909152949350505050565b60608360036131a08260006135e1565b61ffff16146131fd5760405162461bcd60e51b8152602060048201526024808201527f4f7074696f6e734275696c6465723a20696e76616c6964206f7074696f6e73206044820152637479706560e01b6064820152608401610c27565b60006132088661363e565b905060008060006132198489613850565b925092509250821561326e576000613230826138eb565b905061323c8189613a57565b905061324781613cd8565b85848151811061325957613259615112565b602002602001015160200181905250506132a3565b600061327988613e33565b6040805180820190915261ffff8b1681526020810182905290915061329e8682613ea7565b955050505b6132ac84612fb0565b9998505050505050505050565b6060806000805b84811015613349576000600d818888858181106132df576132df615112565b90506020028101906132f191906156b9565b6132fb9080615bd0565b6133099060208101906148ba565b63ffffffff1663ffffffff1681526020019081526020016000205414613337578161333381615c59565b9250505b8061334181615189565b9150506132c0565b508061ffff166001600160401b0381111561336657613366614a49565b60405190808252806020026020018201604052801561338f578160200160208202803683370190505b5092508061ffff166001600160401b038111156133ae576133ae614a49565b6040519080825280602002602001820160405280156133d7578160200160208202803683370190505b50915060005b8481101561116e576000600d60008888858181106133fd576133fd615112565b905060200281019061340f91906156b9565b6134199080615bd0565b6134279060208101906148ba565b63ffffffff168152602081019190915260400160002054905080156134ce5786868381811061345857613458615112565b905060200281019061346a91906156b9565b6134749080615bd0565b6134829060208101906148ba565b85838151811061349457613494615112565b602002602001019063ffffffff16908163ffffffff1681525050808483815181106134c1576134c1615112565b6020026020010181815250505b50806134d981615189565b9150506133dd565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106135205772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061354c576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061356a57662386f26fc10000830492506010015b6305f5e1008310613582576305f5e100830492506008015b612710831061359657612710830492506004015b606483106135a8576064830492506002015b600a8310610e8e5760010192915050565b600061ffff8211156135dd5760405162461bcd60e51b8152600401610c2790615c70565b5090565b60006135ee8260026154df565b835110156136355760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606401610c27565b50016002015190565b6060600061364c83826135e1565b905061ffff811660011480613665575061ffff81166002145b1561368257600061367a8261ffff1685614106565b949350505050565b8061ffff1660030361381e57600061369b8460026135e1565b905060008161ffff166001600160401b038111156136bb576136bb614a49565b60405190808252806020026020018201604052801561370157816020015b6040805180820190915260008152606060208201528152602001906001900390816136d95790505b50905060046000805b8461ffff168110156137f257600061372289856135e1565b905061372f6002856154df565b935081158061374557508261ffff168161ffff16115b6137615760405162461bcd60e51b8152600401610c2790615be6565b91508160006137708a866135e1565b905061377d6002866154df565b945060405180604001604052808361ffff1681526020016137ad878461ffff168e6143d09092919063ffffffff16565b8152508684815181106137c2576137c2615112565b60209081029190910101526137db61ffff8216866154df565b9450505080806137ea90615189565b91505061370a565b50865182146138135760405162461bcd60e51b8152600401610c2790615c70565b509095945050505050565b60405162461bcd60e51b815260206004820152600760248201526604c5a43303030360cc1b6044820152606401610c27565b600080606060005b85518110156138cc578461ffff1686828151811061387857613878615112565b60200260200101516000015161ffff16036138ba576001818783815181106138a2576138a2615112565b602002602001015160200151935093509350506138e4565b806138c481615189565b915050613858565b50506040805160208101909152600080825292508291505b9250925092565b60606000806138fa84826135e1565b90506139076002836154df565b915060008161ffff166001600160401b0381111561392757613927614a49565b60405190808252806020026020018201604052801561396d57816020015b6040805180820190915260008152606060208201528152602001906001900390816139455790505b5090506000805b8361ffff168161ffff16101561381357600061399088876135e1565b905061399d6002876154df565b95508261ffff168161ffff16116139c65760405162461bcd60e51b8152600401610c2790615be6565b91508160006139d589886135e1565b90506139e26002886154df565b965060006139f58a8961ffff85166143d0565b9050613a0561ffff8316896154df565b975060405180604001604052808461ffff16815260200182815250868561ffff1681518110613a3657613a36615112565b60200260200101819052505050508080613a4f90615c59565b915050613974565b6060600083516001613a6991906154df565b6001600160401b03811115613a8057613a80614a49565b604051908082528060200260200182016040528015613ac657816020015b604080518082019091526000815260606020820152815260200190600190039081613a9e5790505b5090508051600103613af8578281600081518110613ae657613ae6615112565b60209081029190910101529050610e8e565b60005b8451811015613cd057836000015161ffff16858281518110613b1f57613b1f615112565b60200260200101516000015161ffff1603613b8f5760405162461bcd60e51b815260206004820152602a60248201527f4f7074696f6e734275696c6465723a206f7074696f6e207479706520616c72656044820152696164792065786973747360b01b6064820152608401610c27565b836000015161ffff16858281518110613baa57613baa615112565b60200260200101516000015161ffff161015613bfc57848181518110613bd257613bd2615112565b6020026020010151828281518110613bec57613bec615112565b6020026020010181905250613c81565b83828281518110613c0f57613c0f615112565b6020908102919091010152805b8551811015613c7b57858181518110613c3757613c37615112565b602002602001015183826001613c4d91906154df565b81518110613c5d57613c5d615112565b60200260200101819052508080613c7390615189565b915050613c1c565b50613cd0565b60018551613c8f91906150ff565b8103613cbe578382613ca28360016154df565b81518110613cb257613cb2615112565b60200260200101819052505b80613cc881615189565b915050613afb565b509392505050565b60606000825111613cfb5760405162461bcd60e51b8152600401610c2790615c70565b6000613d0783516135b9565b9050600081604051602001613d1c9190615c91565b60408051601f1981840301815291905290506000805b8361ffff168110156130e1576000868281518110613d5257613d52615112565b60200260200101516000015190508160001480613d7657508261ffff168161ffff16115b613d925760405162461bcd60e51b8152600401610c2790615be6565b8092506000613dac88848151811061307057613070615112565b90506000888481518110613dc257613dc2615112565b602002602001015160000151828a8681518110613de157613de1615112565b602002602001015160200151604051602001613dff93929190615ca9565b60408051601f198184030181529190529050613e1b86826144dd565b95505050508080613e2b90615189565b915050613d32565b60408051600180825281830190925260609160009190816020015b604080518082019091526000815260606020820152815260200190600190039081613e4e5790505090508281600081518110613e8c57613e8c615112565b6020026020010181905250613ea081613cd8565b9392505050565b6060600083516001613eb991906154df565b6001600160401b03811115613ed057613ed0614a49565b604051908082528060200260200182016040528015613f1657816020015b604080518082019091526000815260606020820152815260200190600190039081613eee5790505b5090508051600103613f36578281600081518110613ae657613ae6615112565b60005b8451811015613cd057836000015161ffff16858281518110613f5d57613f5d615112565b60200260200101516000015161ffff1603613fcb5760405162461bcd60e51b815260206004820152602860248201527f4f7074696f6e734275696c6465723a20776f726b657220696420616c72656164604482015267792065786973747360c01b6064820152608401610c27565b836000015161ffff16858281518110613fe657613fe6615112565b60200260200101516000015161ffff1610156140385784818151811061400e5761400e615112565b602002602001015182828151811061402857614028615112565b60200260200101819052506140b7565b8382828151811061404b5761404b615112565b6020908102919091010152805b8551811015613c7b5785818151811061407357614073615112565b60200260200101518382600161408991906154df565b8151811061409957614099615112565b602002602001018190525080806140af90615189565b915050614058565b600185516140c591906150ff565b81036140f45783826140d88360016154df565b815181106140e8576140e8615112565b60200260200101819052505b806140fe81615189565b915050613f39565b604080516001808252818301909252606091816020015b60408051808201909152600081526060602082015281526020019060019003908161411d579050509050606060001984016141fc5782516022146141735760405162461bcd60e51b8152600401610c2790615c70565b600061418084600261455a565b90506001600160801b038111156141a95760405162461bcd60e51b8152600401610c2790615c70565b60016040516020016141bb9190615c91565b60405160208183030381529060405291508160016010836040516020016141e59493929190615ce7565b604051602081830303815290604052915050614391565b600119840161381e576042835111801561421857506062835111155b6142345760405162461bcd60e51b8152600401610c2790615c70565b600061424184600261455a565b90506001600160801b0381111561426a5760405162461bcd60e51b8152600401610c2790615c70565b600061427785602261455a565b90506001600160801b038111156142a05760405162461bcd60e51b8152600401610c2790615c70565b6000604286516142b091906150ff565b905060006142c0876042846143d0565b6142c990615d38565b90506142d68260206150ff565b6142e1906008615d5f565b60408051608086901b6001600160801b03191660208201529290911c603080840182905282518085039091018152605084019092529161432690600290607001615c91565b60405160208183030381529060405295508560016010876040516020016143509493929190615ce7565b604051602081830303815290604052955085600282518360405160200161437a9493929190615c07565b604051602081830303815290604052955050505050505b6040518060400160405280600161ffff16815260200182815250826000815181106143be576143be615112565b60200260200101819052505092915050565b6060816143de81601f6154df565b101561441d5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610c27565b61442782846154df565b8451101561446b5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610c27565b60608215801561448a57604051915060008252602082016040526144d4565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156144c35780518352602092830192016144ab565b5050858452601f01601f1916604052505b50949350505050565b6060806040519050835180825260208201818101602087015b8183101561450e5780518352602092830192016144f6565b50855184518101855292509050808201602086015b8183101561453b578051835260209283019201614523565b508651929092011591909101601f01601f191660405250905092915050565b60006145678260206154df565b835110156145af5760405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606401610c27565b50016020015190565b60405180606001604052806000801916815260200160006001600160401b031681526020016145fa604051806040016040528060008152602001600081525090565b905290565b8280548282559060005260206000209060070160089004810192821561469e5791602002820160005b8382111561466c57835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302614628565b801561469c5782816101000a81549063ffffffff021916905560040160208160030104928301926001030261466c565b505b506135dd9291506146e5565b82805482825590600052602060002090810192821561469e579160200282015b8281111561469e5782518255916020019190600101906146ca565b5b808211156135dd57600081556001016146e6565b6001600160a01b0381168114611ddd57600080fd5b63ffffffff81168114611ddd57600080fd5b60008083601f84011261473357600080fd5b5081356001600160401b0381111561474a57600080fd5b60208301915083602082850101111561117157600080fd5b60008060008060006080868803121561477a57600080fd5b8535614785816146fa565b945060208601356147958161470f565b935060408601356147a58161470f565b925060608601356001600160401b038111156147c057600080fd5b6147cc88828901614721565b969995985093965092949392505050565b60008083601f8401126147ef57600080fd5b5081356001600160401b0381111561480657600080fd5b6020830191508360208260051b850101111561117157600080fd5b60008060006040848603121561483657600080fd5b8335614841816146fa565b925060208401356001600160401b0381111561485c57600080fd5b614868868287016147dd565b9497909650939450505050565b60006020828403121561488757600080fd5b5035919050565b600080604083850312156148a157600080fd5b82356148ac8161470f565b946020939093013593505050565b6000602082840312156148cc57600080fd5b8135613ea08161470f565b600080602083850312156148ea57600080fd5b82356001600160401b0381111561490057600080fd5b61490c858286016147dd565b90969095509350505050565b60005b8381101561493357818101518382015260200161491b565b50506000910152565b60008151808452614954816020860160208601614918565b601f01601f19169290920160200192915050565b61ffff8316815260406020820152600061367a604083018461493c565b6000806000806000806060878903121561499e57600080fd5b86356001600160401b03808211156149b557600080fd5b6149c18a838b016147dd565b909850965060208901359150808211156149da57600080fd5b6149e68a838b016147dd565b909650945060408901359150808211156149ff57600080fd5b50614a0c89828a016147dd565b979a9699509497509295939492505050565b80358015158114610c3057600080fd5b600060208284031215614a4057600080fd5b613ea082614a1e565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614a8157614a81614a49565b60405290565b604051606081016001600160401b0381118282101715614a8157614a81614a49565b604051608081016001600160401b0381118282101715614a8157614a81614a49565b604051601f8201601f191681016001600160401b0381118282101715614af357614af3614a49565b604052919050565b60006001600160401b03821115614b1457614b14614a49565b5060051b60200190565b600082601f830112614b2f57600080fd5b81356020614b44614b3f83614afb565b614acb565b82815260059290921b84018101918181019086841115614b6357600080fd5b8286015b84811015614b7e5780358352918301918301614b67565b509695505050505050565b60008060408385031215614b9c57600080fd5b82356001600160401b0380821115614bb357600080fd5b818501915085601f830112614bc757600080fd5b81356020614bd7614b3f83614afb565b82815260059290921b84018101918181019089841115614bf657600080fd5b948201945b83861015614c1d578535614c0e8161470f565b82529482019490820190614bfb565b96505086013592505080821115614c3357600080fd5b50614c4085828601614b1e565b9150509250929050565b60008060008060408587031215614c6057600080fd5b84356001600160401b0380821115614c7757600080fd5b614c83888389016147dd565b90965094506020870135915080821115614c9c57600080fd5b50614ca9878288016147dd565b95989497509550505050565b6001600160401b0381168114611ddd57600080fd5b60008060008060008060a08789031215614ce357600080fd5b8635614cee8161470f565b9550602087013594506040870135614d0581614cb5565b93506060870135925060808701356001600160401b03811115614d2757600080fd5b614a0c89828a01614721565b600060208284031215614d4557600080fd5b8135613ea081614cb5565b600060208284031215614d6257600080fd5b8135613ea0816146fa565b600080600060608486031215614d8257600080fd5b8335614d8d8161470f565b9250602084013591506040840135614da481614cb5565b809150509250925092565b600080600060608486031215614dc457600080fd5b8335614dcf8161470f565b925060208401359150614de460408501614a1e565b90509250925092565b600080600080600060808688031215614e0557600080fd5b85356001600160401b0380821115614e1c57600080fd5b908701906080828a031215614e3057600080fd5b90955060208701359450604087013590614e49826146fa565b90935060608701359080821115614e5f57600080fd5b506147cc88828901614721565b803560ff81168114610c3057600080fd5b60008060008060608587031215614e9357600080fd5b8435614e9e8161470f565b9350614eac60208601614e6c565b925060408501356001600160401b03811115614ec757600080fd5b614ca987828801614721565b600080600060608486031215614ee857600080fd5b8335614ef38161470f565b92506020840135614f03816146fa565b929592945050506040919091013590565b60008060408385031215614f2757600080fd5b8235614f328161470f565b91506020830135614f42816146fa565b809150509250929050565b600080600080600080600060a0888a031215614f6857600080fd5b8735614f73816146fa565b96506020880135955060408801356001600160401b0380821115614f9657600080fd5b614fa28b838c01614721565b909750955060608a01359150614fb7826146fa565b90935060808901359080821115614fcd57600080fd5b50614fda8a828b01614721565b989b979a50959850939692959293505050565b602081526000613ea0602083018461493c565b6000806040838503121561501357600080fd5b82356148ac816146fa565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038616815263ffffffff858116602083015284166040820152608060608201819052600090615080908301848661501e565b979650505050505050565b6001600160a01b038416815260406020808301829052908201839052600090849060608401835b868110156150dd5783356150c58161470f565b63ffffffff16825292820192908201906001016150b2565b50979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610e8e57610e8e6150e9565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561513a57600080fd5b613ea082614e6c565b6000808335601e1984360301811261515a57600080fd5b8301803591506001600160401b0382111561517457600080fd5b60200191503681900382131561117157600080fd5b60006001820161519b5761519b6150e9565b5060010190565b6020808252600a908201526937b7363c9030b236b4b760b11b604082015260600190565b6000808335601e198436030181126151dd57600080fd5b83016020810192503590506001600160401b038111156151fc57600080fd5b80360382131561117157600080fd5b60208082528181018390526000906040808401600586901b8501820187855b8881101561531157878303603f190184528135368b9003605e1901811261525057600080fd5b8a016060813536839003607e1901811261526957600080fd5b818652820180356152798161470f565b63ffffffff811683880152506080898201358188015261529b898301836151c6565b8260a08a01526152af60e08a01828461501e565b925050508282013592506152c283614cb5565b6001600160401b03831660c0880152898401358a8801526152e5898501856151c6565b94509250868103898801526152fb81858561501e565b978a01979650505092870192505060010161522a565b509098975050505050505050565b60008251615331818460208701614918565b9190910192915050565b63ffffffff8316815260406020820152600061367a604083018461493c565b60006001600160401b0382111561537357615373614a49565b50601f01601f191660200190565b600082601f83011261539257600080fd5b81356153a0614b3f8261535a565b8181528460208386010111156153b557600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156153e557600080fd5b82356153f08161470f565b915060208301356001600160401b0381111561540b57600080fd5b614c4085828601615381565b63ffffffff871681528560208201526001600160401b038516604082015283606082015260a060808201526000611fb560a08301848661501e565b60006020828403121561546457600080fd5b5051919050565b60006001600160401b03808316818103615487576154876150e9565b6001019392505050565b6001600160401b038181168382160190808211156154b1576154b16150e9565b5092915050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b80820180821115610e8e57610e8e6150e9565b61ffff60f01b8660f01b1681526001600160401b0360c01b8560c01b16600282015283600a8201526000602a82018451602080870160005b8381101561554c57815163ffffffff168552938201939082019060010161552a565b5050855181870193925060005b8181101561557557845184529382019392820192600101615559565b50919a9950505050505050505050565b6060815263ffffffff84511660608201526020840151608082015260006040850151608060a08401526155bb60e084018261493c565b90506060860151605f198483030160c08501526155d8828261493c565b60208501969096525050506001600160a01b0391909116604090910152919050565b60006040828403121561560c57600080fd5b615614614a5f565b9050815181526020820151602082015292915050565b60006080828403121561563c57600080fd5b615644614a87565b82518152602083015161565681614cb5565b602082015261566884604085016155fa565b60408201529392505050565b7f7061636b6574732073697a6520657863656564206c696d6974656420000000008152600082516156ac81601c850160208701614918565b91909101601c0192915050565b60008235605e1983360301811261533157600080fd5b6000606082360312156156e157600080fd5b6156e9614a87565b82356001600160401b038082111561570057600080fd5b81850191506080823603121561571557600080fd5b61571d614aa9565b82356157288161470f565b81526020838101359082015260408301358281111561574657600080fd5b61575236828601615381565b6040830152506060830135925061576883614cb5565b8260608201528084525060208501356020840152604085013591508082111561579057600080fd5b5061579d36828601615381565b60408301525092915050565b6000602082840312156157bb57600080fd5b8151613ea081614cb5565b7f736b697070656420696e626f756e644e6f6e63652c207061636b657420696e64815263032bc1d160e51b60208201526000825161580b816024850160208701614918565b9190910160240192915050565b7f756e736f72746564207061636b6574732c207061636b657420696e6465783a20815260008251615850816020850160208701614918565b9190910160200192915050565b805160208201516001600160e01b0319808216929190600483101561588c5780818460040360031b1b83161693505b505050919050565b600080604083850312156158a757600080fd5b825161ffff811681146158b957600080fd5b60208401519092506001600160401b038111156158d557600080fd5b8301601f810185136158e657600080fd5b80516158f4614b3f8261535a565b81815286602083850101111561590957600080fd5b61591a826020830160208601614918565b8093505050509250929050565b6000602080838503121561593a57600080fd5b82516001600160401b038082111561595157600080fd5b8185019150604080838803121561596757600080fd5b61596f614a5f565b835161597a8161470f565b8152838501518381111561598d57600080fd5b80850194505087601f8501126159a257600080fd5b835192506159b2614b3f84614afb565b8381526060938402850186019386820191908a8611156159d157600080fd5b958701955b85871015615a225780878c0312156159ee5760008081fd5b6159f6614a87565b8751615a018161470f565b815287890151898201528588015186820152835295860195918701916159d6565b5095820195909552979650505050505050565b60018060a01b0385168152836020820152606060408201526000615a5d60608301848661501e565b9695505050505050565b60006020808352606080840163ffffffff8087511684870152838701516040808189015283825180865260808a0191508784019550600093505b80841015615ad4578551805186168352888101518984015283015183830152948701946001939093019290860190615aa1565b509998505050505050505050565b60008085851115615af257600080fd5b83861115615aff57600080fd5b5050820193919092039150565b6001600160f81b03198135818116916001851015615b345780818660010360031b1b83161692505b505092915050565b6001600160e01b03198135818116916004851015615b345760049490940360031b84901b1690921692915050565b6001600160a01b038616815263ffffffff8516602082015260a060408201819052600090615b9a9083018661493c565b84151560608401528281036080840152611fb5818561493c565b600060408284031215615bc657600080fd5b613ea083836155fa565b60008235607e1983360301811261533157600080fd5b602080825260079082015266262d189818181b60c91b604082015260600190565b60008551615c19818460208a01614918565b6001600160f01b031960f087811b821692850192835286901b1660028201528351615c4b816004840160208801614918565b016004019695505050505050565b600061ffff808316818103615487576154876150e9565b6020808252600790820152664c5a313030303960c81b604082015260600190565b60f09190911b6001600160f01b031916815260020190565b600061ffff60f01b808660f01b168352808560f01b166002840152508251615cd8816004850160208701614918565b91909101600401949350505050565b60008551615cf9818460208a01614918565b60f095861b6001600160f01b0319908116939091019283529390941b909216600283015260801b6001600160801b031916600482015260140192915050565b80516020808301519190811015615d59576000198160200360031b1b821691505b50919050565b8082028115828204841417610e8e57610e8e6150e956fe4f6d6e69436f756e7465725072656372696d653a20696e626f756e64436f756e74203e206f7574626f756e64436f756e74a2646970667358221220760495f15abced4faae6a26e6c5237f0afd9f2f03b567368227818c581856a3764736f6c63430008110033",
1410
- "devdoc": {
1411
- "kind": "dev",
1412
- "methods": {
1413
- "owner()": {
1414
- "details": "Returns the address of the current owner."
1415
- },
1416
- "renounceOwnership()": {
1417
- "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
1418
- },
1419
- "transferOwnership(address)": {
1420
- "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
1421
- }
1422
- },
1423
- "version": 1
1424
- },
1425
- "userdoc": {
1426
- "kind": "user",
1427
- "methods": {
1428
- "setConfig(address,uint32,uint32,bytes)": {
1429
- "notice": "----------------------------- UA Config Functions -----------------------------"
1430
- }
1431
- },
1432
- "version": 1
1433
- },
1434
- "storageLayout": {
1435
- "storage": [
1436
- {
1437
- "astId": 1857,
1438
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1439
- "label": "_owner",
1440
- "offset": 0,
1441
- "slot": "0",
1442
- "type": "t_address"
1443
- },
1444
- {
1445
- "astId": 3566,
1446
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1447
- "label": "peers",
1448
- "offset": 0,
1449
- "slot": "1",
1450
- "type": "t_mapping(t_uint32,t_bytes32)"
1451
- },
1452
- {
1453
- "astId": 3197,
1454
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1455
- "label": "version",
1456
- "offset": 0,
1457
- "slot": "2",
1458
- "type": "t_uint256"
1459
- },
1460
- {
1461
- "astId": 4798,
1462
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1463
- "label": "count",
1464
- "offset": 0,
1465
- "slot": "3",
1466
- "type": "t_uint256"
1467
- },
1468
- {
1469
- "astId": 4800,
1470
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1471
- "label": "composedCount",
1472
- "offset": 0,
1473
- "slot": "4",
1474
- "type": "t_uint256"
1475
- },
1476
- {
1477
- "astId": 4802,
1478
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1479
- "label": "admin",
1480
- "offset": 0,
1481
- "slot": "5",
1482
- "type": "t_address"
1483
- },
1484
- {
1485
- "astId": 4804,
1486
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1487
- "label": "eid",
1488
- "offset": 20,
1489
- "slot": "5",
1490
- "type": "t_uint32"
1491
- },
1492
- {
1493
- "astId": 4810,
1494
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1495
- "label": "maxNonceByPath",
1496
- "offset": 0,
1497
- "slot": "6",
1498
- "type": "t_mapping(t_uint32,t_mapping(t_bytes32,t_uint64))"
1499
- },
1500
- {
1501
- "astId": 4812,
1502
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1503
- "label": "orderedNonce",
1504
- "offset": 0,
1505
- "slot": "7",
1506
- "type": "t_bool"
1507
- },
1508
- {
1509
- "astId": 4816,
1510
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1511
- "label": "inboundCount",
1512
- "offset": 0,
1513
- "slot": "8",
1514
- "type": "t_mapping(t_uint32,t_uint256)"
1515
- },
1516
- {
1517
- "astId": 4820,
1518
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1519
- "label": "outboundCount",
1520
- "offset": 0,
1521
- "slot": "9",
1522
- "type": "t_mapping(t_uint32,t_uint256)"
1523
- },
1524
- {
1525
- "astId": 3921,
1526
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1527
- "label": "localEid",
1528
- "offset": 0,
1529
- "slot": "10",
1530
- "type": "t_uint32"
1531
- },
1532
- {
1533
- "astId": 3923,
1534
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1535
- "label": "pAdmin",
1536
- "offset": 4,
1537
- "slot": "10",
1538
- "type": "t_address"
1539
- },
1540
- {
1541
- "astId": 3925,
1542
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1543
- "label": "pMaxBatchSize",
1544
- "offset": 24,
1545
- "slot": "10",
1546
- "type": "t_uint64"
1547
- },
1548
- {
1549
- "astId": 3928,
1550
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1551
- "label": "precrimeEids",
1552
- "offset": 0,
1553
- "slot": "11",
1554
- "type": "t_array(t_uint32)dyn_storage"
1555
- },
1556
- {
1557
- "astId": 3931,
1558
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1559
- "label": "precrimePeers",
1560
- "offset": 0,
1561
- "slot": "12",
1562
- "type": "t_array(t_bytes32)dyn_storage"
1563
- },
1564
- {
1565
- "astId": 3935,
1566
- "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1567
- "label": "precrimeEidToPeer",
1568
- "offset": 0,
1569
- "slot": "13",
1570
- "type": "t_mapping(t_uint32,t_bytes32)"
1571
- }
1572
- ],
1573
- "types": {
1574
- "t_address": {
1575
- "encoding": "inplace",
1576
- "label": "address",
1577
- "numberOfBytes": "20"
1578
- },
1579
- "t_array(t_bytes32)dyn_storage": {
1580
- "base": "t_bytes32",
1581
- "encoding": "dynamic_array",
1582
- "label": "bytes32[]",
1583
- "numberOfBytes": "32"
1584
- },
1585
- "t_array(t_uint32)dyn_storage": {
1586
- "base": "t_uint32",
1587
- "encoding": "dynamic_array",
1588
- "label": "uint32[]",
1589
- "numberOfBytes": "32"
1590
- },
1591
- "t_bool": {
1592
- "encoding": "inplace",
1593
- "label": "bool",
1594
- "numberOfBytes": "1"
1595
- },
1596
- "t_bytes32": {
1597
- "encoding": "inplace",
1598
- "label": "bytes32",
1599
- "numberOfBytes": "32"
1600
- },
1601
- "t_mapping(t_bytes32,t_uint64)": {
1602
- "encoding": "mapping",
1603
- "key": "t_bytes32",
1604
- "label": "mapping(bytes32 => uint64)",
1605
- "numberOfBytes": "32",
1606
- "value": "t_uint64"
1607
- },
1608
- "t_mapping(t_uint32,t_bytes32)": {
1609
- "encoding": "mapping",
1610
- "key": "t_uint32",
1611
- "label": "mapping(uint32 => bytes32)",
1612
- "numberOfBytes": "32",
1613
- "value": "t_bytes32"
1614
- },
1615
- "t_mapping(t_uint32,t_mapping(t_bytes32,t_uint64))": {
1616
- "encoding": "mapping",
1617
- "key": "t_uint32",
1618
- "label": "mapping(uint32 => mapping(bytes32 => uint64))",
1619
- "numberOfBytes": "32",
1620
- "value": "t_mapping(t_bytes32,t_uint64)"
1621
- },
1622
- "t_mapping(t_uint32,t_uint256)": {
1623
- "encoding": "mapping",
1624
- "key": "t_uint32",
1625
- "label": "mapping(uint32 => uint256)",
1626
- "numberOfBytes": "32",
1627
- "value": "t_uint256"
1628
- },
1629
- "t_uint256": {
1630
- "encoding": "inplace",
1631
- "label": "uint256",
1632
- "numberOfBytes": "32"
1633
- },
1634
- "t_uint32": {
1635
- "encoding": "inplace",
1636
- "label": "uint32",
1637
- "numberOfBytes": "4"
1638
- },
1639
- "t_uint64": {
1640
- "encoding": "inplace",
1641
- "label": "uint64",
1642
- "numberOfBytes": "8"
1643
- }
1644
- }
1645
- }
1646
- }