@layerzerolabs/protocol-v2-oapp-evm-contracts 1.2.96 → 1.2.97

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 (110) hide show
  1. package/README.md +1 -1
  2. package/artifacts/contracts/oapp/OApp.sol/OApp.json +383 -0
  3. package/artifacts/contracts/oapp/OAppCore.sol/OAppCore.json +200 -0
  4. package/artifacts/contracts/oapp/OAppRead.sol/OAppRead.json +401 -0
  5. package/artifacts/contracts/oapp/OAppReceiver.sol/OAppReceiver.json +367 -0
  6. package/artifacts/contracts/oapp/OAppSender.sol/OAppSender.json +216 -0
  7. package/artifacts/contracts/oapp/examples/CmdCodecV1Mock.sol/CmdCodecV1Mock.json +278 -0
  8. package/artifacts/contracts/oapp/examples/LzReadCounter.sol/LzReadCounter.json +843 -0
  9. package/artifacts/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +925 -0
  10. package/artifacts/contracts/oapp/examples/OmniCounterAbstract.sol/MsgCodec.json +10 -0
  11. package/artifacts/contracts/oapp/examples/OmniCounterAbstract.sol/OmniCounterAbstract.json +909 -0
  12. package/artifacts/contracts/oapp/examples/OmniCounterAlt.sol/OmniCounterAlt.json +948 -0
  13. package/artifacts/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +368 -0
  14. package/artifacts/contracts/oapp/interfaces/IOAppComposer.sol/IOAppComposer.json +44 -0
  15. package/artifacts/contracts/oapp/interfaces/IOAppComputer.sol/IOAppComputer.json +59 -0
  16. package/artifacts/contracts/oapp/interfaces/IOAppComputerMap.sol/IOAppComputerMap.json +35 -0
  17. package/artifacts/contracts/oapp/interfaces/IOAppComputerReduce.sol/IOAppComputerReduce.json +35 -0
  18. package/artifacts/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.json +148 -0
  19. package/artifacts/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.json +51 -0
  20. package/artifacts/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.json +111 -0
  21. package/artifacts/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.json +167 -0
  22. package/artifacts/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.json +187 -0
  23. package/artifacts/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +38 -0
  24. package/artifacts/contracts/oapp/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +21 -0
  25. package/artifacts/contracts/oapp/utils/RateLimiter.sol/RateLimiter.json +104 -0
  26. package/artifacts/contracts/oft/OFT.sol/OFT.json +1514 -0
  27. package/artifacts/contracts/oft/OFTAdapter.sol/OFTAdapter.json +1244 -0
  28. package/artifacts/contracts/oft/OFTCore.sol/OFTCore.json +1244 -0
  29. package/artifacts/contracts/oft/interfaces/IOFT.sol/IOFT.json +456 -0
  30. package/artifacts/contracts/oft/libs/OFTComposeMsgCodec.sol/OFTComposeMsgCodec.json +10 -0
  31. package/artifacts/contracts/oft/libs/OFTMsgCodec.sol/OFTMsgCodec.json +10 -0
  32. package/artifacts/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json +277 -0
  33. package/artifacts/contracts/precrime/PreCrime.sol/PreCrime.json +352 -0
  34. package/artifacts/contracts/precrime/extensions/PreCrimeE1.sol/PreCrimeE1.json +352 -0
  35. package/artifacts/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json +175 -0
  36. package/artifacts/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +188 -0
  37. package/artifacts/contracts/precrime/libs/Packet.sol/PacketDecoder.json +10 -0
  38. package/artifacts-tron/contracts/oapp/OApp.sol/OApp.json +383 -0
  39. package/artifacts-tron/contracts/oapp/OAppCore.sol/OAppCore.json +200 -0
  40. package/artifacts-tron/contracts/oapp/OAppRead.sol/OAppRead.json +401 -0
  41. package/artifacts-tron/contracts/oapp/OAppReceiver.sol/OAppReceiver.json +367 -0
  42. package/artifacts-tron/contracts/oapp/OAppSender.sol/OAppSender.json +216 -0
  43. package/artifacts-tron/contracts/oapp/examples/CmdCodecV1Mock.sol/CmdCodecV1Mock.json +278 -0
  44. package/artifacts-tron/contracts/oapp/examples/LzReadCounter.sol/LzReadCounter.json +843 -0
  45. package/artifacts-tron/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +925 -0
  46. package/artifacts-tron/contracts/oapp/examples/OmniCounterAbstract.sol/MsgCodec.json +10 -0
  47. package/artifacts-tron/contracts/oapp/examples/OmniCounterAbstract.sol/OmniCounterAbstract.json +909 -0
  48. package/artifacts-tron/contracts/oapp/examples/OmniCounterAlt.sol/OmniCounterAlt.json +948 -0
  49. package/artifacts-tron/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +368 -0
  50. package/artifacts-tron/contracts/oapp/interfaces/IOAppComposer.sol/IOAppComposer.json +44 -0
  51. package/artifacts-tron/contracts/oapp/interfaces/IOAppComputer.sol/IOAppComputer.json +59 -0
  52. package/artifacts-tron/contracts/oapp/interfaces/IOAppComputerMap.sol/IOAppComputerMap.json +35 -0
  53. package/artifacts-tron/contracts/oapp/interfaces/IOAppComputerReduce.sol/IOAppComputerReduce.json +35 -0
  54. package/artifacts-tron/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.json +148 -0
  55. package/artifacts-tron/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.json +51 -0
  56. package/artifacts-tron/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.json +111 -0
  57. package/artifacts-tron/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.json +167 -0
  58. package/artifacts-tron/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.json +187 -0
  59. package/artifacts-tron/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +38 -0
  60. package/artifacts-tron/contracts/oapp/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +21 -0
  61. package/artifacts-tron/contracts/oapp/utils/RateLimiter.sol/RateLimiter.json +104 -0
  62. package/artifacts-tron/contracts/oft/OFT.sol/OFT.json +1514 -0
  63. package/artifacts-tron/contracts/oft/OFTAdapter.sol/OFTAdapter.json +1244 -0
  64. package/artifacts-tron/contracts/oft/OFTCore.sol/OFTCore.json +1244 -0
  65. package/artifacts-tron/contracts/oft/interfaces/IOFT.sol/IOFT.json +456 -0
  66. package/artifacts-tron/contracts/oft/libs/OFTComposeMsgCodec.sol/OFTComposeMsgCodec.json +10 -0
  67. package/artifacts-tron/contracts/oft/libs/OFTMsgCodec.sol/OFTMsgCodec.json +10 -0
  68. package/artifacts-tron/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json +277 -0
  69. package/artifacts-tron/contracts/precrime/PreCrime.sol/PreCrime.json +352 -0
  70. package/artifacts-tron/contracts/precrime/extensions/PreCrimeE1.sol/PreCrimeE1.json +352 -0
  71. package/artifacts-tron/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json +175 -0
  72. package/artifacts-tron/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +188 -0
  73. package/artifacts-tron/contracts/precrime/libs/Packet.sol/PacketDecoder.json +10 -0
  74. package/artifacts-zk/contracts/oapp/OApp.sol/OApp.json +384 -0
  75. package/artifacts-zk/contracts/oapp/OAppCore.sol/OAppCore.json +201 -0
  76. package/artifacts-zk/contracts/oapp/OAppRead.sol/OAppRead.json +402 -0
  77. package/artifacts-zk/contracts/oapp/OAppReceiver.sol/OAppReceiver.json +368 -0
  78. package/artifacts-zk/contracts/oapp/OAppSender.sol/OAppSender.json +217 -0
  79. package/artifacts-zk/contracts/oapp/examples/CmdCodecV1Mock.sol/CmdCodecV1Mock.json +279 -0
  80. package/artifacts-zk/contracts/oapp/examples/LzReadCounter.sol/LzReadCounter.json +844 -0
  81. package/artifacts-zk/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +926 -0
  82. package/artifacts-zk/contracts/oapp/examples/OmniCounterAbstract.sol/MsgCodec.json +11 -0
  83. package/artifacts-zk/contracts/oapp/examples/OmniCounterAbstract.sol/OmniCounterAbstract.json +910 -0
  84. package/artifacts-zk/contracts/oapp/examples/OmniCounterAlt.sol/OmniCounterAlt.json +949 -0
  85. package/artifacts-zk/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +369 -0
  86. package/artifacts-zk/contracts/oapp/interfaces/IOAppComposer.sol/IOAppComposer.json +45 -0
  87. package/artifacts-zk/contracts/oapp/interfaces/IOAppComputer.sol/IOAppComputer.json +60 -0
  88. package/artifacts-zk/contracts/oapp/interfaces/IOAppComputerMap.sol/IOAppComputerMap.json +36 -0
  89. package/artifacts-zk/contracts/oapp/interfaces/IOAppComputerReduce.sol/IOAppComputerReduce.json +36 -0
  90. package/artifacts-zk/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.json +149 -0
  91. package/artifacts-zk/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.json +52 -0
  92. package/artifacts-zk/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.json +112 -0
  93. package/artifacts-zk/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.json +168 -0
  94. package/artifacts-zk/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.json +188 -0
  95. package/artifacts-zk/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +39 -0
  96. package/artifacts-zk/contracts/oapp/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +22 -0
  97. package/artifacts-zk/contracts/oapp/utils/RateLimiter.sol/RateLimiter.json +105 -0
  98. package/artifacts-zk/contracts/oft/OFT.sol/OFT.json +1515 -0
  99. package/artifacts-zk/contracts/oft/OFTAdapter.sol/OFTAdapter.json +1245 -0
  100. package/artifacts-zk/contracts/oft/OFTCore.sol/OFTCore.json +1245 -0
  101. package/artifacts-zk/contracts/oft/interfaces/IOFT.sol/IOFT.json +457 -0
  102. package/artifacts-zk/contracts/oft/libs/OFTComposeMsgCodec.sol/OFTComposeMsgCodec.json +11 -0
  103. package/artifacts-zk/contracts/oft/libs/OFTMsgCodec.sol/OFTMsgCodec.json +11 -0
  104. package/artifacts-zk/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json +278 -0
  105. package/artifacts-zk/contracts/precrime/PreCrime.sol/PreCrime.json +353 -0
  106. package/artifacts-zk/contracts/precrime/extensions/PreCrimeE1.sol/PreCrimeE1.json +353 -0
  107. package/artifacts-zk/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json +176 -0
  108. package/artifacts-zk/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +189 -0
  109. package/artifacts-zk/contracts/precrime/libs/Packet.sol/PacketDecoder.json +11 -0
  110. package/package.json +7 -7
@@ -0,0 +1,843 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "LzReadCounter",
4
+ "sourceName": "contracts/oapp/examples/LzReadCounter.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_endpoint",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "stateMutability": "nonpayable",
15
+ "type": "constructor"
16
+ },
17
+ {
18
+ "inputs": [],
19
+ "name": "InvalidDelegate",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "InvalidEndpointCall",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "InvalidVersion",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "LzTokenUnavailable",
35
+ "type": "error"
36
+ },
37
+ {
38
+ "inputs": [
39
+ {
40
+ "internalType": "uint32",
41
+ "name": "eid",
42
+ "type": "uint32"
43
+ }
44
+ ],
45
+ "name": "NoPeer",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [
50
+ {
51
+ "internalType": "uint256",
52
+ "name": "msgValue",
53
+ "type": "uint256"
54
+ }
55
+ ],
56
+ "name": "NotEnoughNative",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "address",
63
+ "name": "addr",
64
+ "type": "address"
65
+ }
66
+ ],
67
+ "name": "OnlyEndpoint",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "uint32",
74
+ "name": "eid",
75
+ "type": "uint32"
76
+ },
77
+ {
78
+ "internalType": "bytes32",
79
+ "name": "sender",
80
+ "type": "bytes32"
81
+ }
82
+ ],
83
+ "name": "OnlyPeer",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "anonymous": false,
88
+ "inputs": [
89
+ {
90
+ "indexed": true,
91
+ "internalType": "address",
92
+ "name": "previousOwner",
93
+ "type": "address"
94
+ },
95
+ {
96
+ "indexed": true,
97
+ "internalType": "address",
98
+ "name": "newOwner",
99
+ "type": "address"
100
+ }
101
+ ],
102
+ "name": "OwnershipTransferred",
103
+ "type": "event"
104
+ },
105
+ {
106
+ "anonymous": false,
107
+ "inputs": [
108
+ {
109
+ "indexed": false,
110
+ "internalType": "uint32",
111
+ "name": "eid",
112
+ "type": "uint32"
113
+ },
114
+ {
115
+ "indexed": false,
116
+ "internalType": "bytes32",
117
+ "name": "peer",
118
+ "type": "bytes32"
119
+ }
120
+ ],
121
+ "name": "PeerSet",
122
+ "type": "event"
123
+ },
124
+ {
125
+ "stateMutability": "payable",
126
+ "type": "fallback"
127
+ },
128
+ {
129
+ "inputs": [
130
+ {
131
+ "components": [
132
+ {
133
+ "internalType": "uint32",
134
+ "name": "srcEid",
135
+ "type": "uint32"
136
+ },
137
+ {
138
+ "internalType": "bytes32",
139
+ "name": "sender",
140
+ "type": "bytes32"
141
+ },
142
+ {
143
+ "internalType": "uint64",
144
+ "name": "nonce",
145
+ "type": "uint64"
146
+ }
147
+ ],
148
+ "internalType": "struct Origin",
149
+ "name": "origin",
150
+ "type": "tuple"
151
+ }
152
+ ],
153
+ "name": "allowInitializePath",
154
+ "outputs": [
155
+ {
156
+ "internalType": "bool",
157
+ "name": "",
158
+ "type": "bool"
159
+ }
160
+ ],
161
+ "stateMutability": "view",
162
+ "type": "function"
163
+ },
164
+ {
165
+ "inputs": [
166
+ {
167
+ "internalType": "uint16",
168
+ "name": "appLabel",
169
+ "type": "uint16"
170
+ },
171
+ {
172
+ "components": [
173
+ {
174
+ "internalType": "uint16",
175
+ "name": "appRequestLabel",
176
+ "type": "uint16"
177
+ },
178
+ {
179
+ "internalType": "uint32",
180
+ "name": "targetEid",
181
+ "type": "uint32"
182
+ },
183
+ {
184
+ "internalType": "bool",
185
+ "name": "isBlockNum",
186
+ "type": "bool"
187
+ },
188
+ {
189
+ "internalType": "uint64",
190
+ "name": "blockNumOrTimestamp",
191
+ "type": "uint64"
192
+ },
193
+ {
194
+ "internalType": "uint16",
195
+ "name": "confirmations",
196
+ "type": "uint16"
197
+ },
198
+ {
199
+ "internalType": "address",
200
+ "name": "to",
201
+ "type": "address"
202
+ },
203
+ {
204
+ "internalType": "uint256",
205
+ "name": "countAddition",
206
+ "type": "uint256"
207
+ }
208
+ ],
209
+ "internalType": "struct LzReadCounter.EvmReadRequest[]",
210
+ "name": "_readRequests",
211
+ "type": "tuple[]"
212
+ },
213
+ {
214
+ "components": [
215
+ {
216
+ "internalType": "uint8",
217
+ "name": "computeSetting",
218
+ "type": "uint8"
219
+ },
220
+ {
221
+ "internalType": "uint16",
222
+ "name": "computeConfirmations",
223
+ "type": "uint16"
224
+ },
225
+ {
226
+ "internalType": "uint64",
227
+ "name": "blockNumOrTimestamp",
228
+ "type": "uint64"
229
+ },
230
+ {
231
+ "internalType": "bool",
232
+ "name": "isBlockNum",
233
+ "type": "bool"
234
+ }
235
+ ],
236
+ "internalType": "struct LzReadCounter.ComputeSetting",
237
+ "name": "_computeSetting",
238
+ "type": "tuple"
239
+ }
240
+ ],
241
+ "name": "buildCmd",
242
+ "outputs": [
243
+ {
244
+ "internalType": "bytes",
245
+ "name": "",
246
+ "type": "bytes"
247
+ }
248
+ ],
249
+ "stateMutability": "view",
250
+ "type": "function"
251
+ },
252
+ {
253
+ "inputs": [],
254
+ "name": "clearCount",
255
+ "outputs": [],
256
+ "stateMutability": "nonpayable",
257
+ "type": "function"
258
+ },
259
+ {
260
+ "inputs": [],
261
+ "name": "count",
262
+ "outputs": [
263
+ {
264
+ "internalType": "uint256",
265
+ "name": "",
266
+ "type": "uint256"
267
+ }
268
+ ],
269
+ "stateMutability": "view",
270
+ "type": "function"
271
+ },
272
+ {
273
+ "inputs": [],
274
+ "name": "eid",
275
+ "outputs": [
276
+ {
277
+ "internalType": "uint32",
278
+ "name": "",
279
+ "type": "uint32"
280
+ }
281
+ ],
282
+ "stateMutability": "view",
283
+ "type": "function"
284
+ },
285
+ {
286
+ "inputs": [],
287
+ "name": "endpoint",
288
+ "outputs": [
289
+ {
290
+ "internalType": "contract ILayerZeroEndpointV2",
291
+ "name": "",
292
+ "type": "address"
293
+ }
294
+ ],
295
+ "stateMutability": "view",
296
+ "type": "function"
297
+ },
298
+ {
299
+ "inputs": [
300
+ {
301
+ "components": [
302
+ {
303
+ "internalType": "uint32",
304
+ "name": "srcEid",
305
+ "type": "uint32"
306
+ },
307
+ {
308
+ "internalType": "bytes32",
309
+ "name": "sender",
310
+ "type": "bytes32"
311
+ },
312
+ {
313
+ "internalType": "uint64",
314
+ "name": "nonce",
315
+ "type": "uint64"
316
+ }
317
+ ],
318
+ "internalType": "struct Origin",
319
+ "name": "",
320
+ "type": "tuple"
321
+ },
322
+ {
323
+ "internalType": "bytes",
324
+ "name": "",
325
+ "type": "bytes"
326
+ },
327
+ {
328
+ "internalType": "address",
329
+ "name": "_sender",
330
+ "type": "address"
331
+ }
332
+ ],
333
+ "name": "isComposeMsgSender",
334
+ "outputs": [
335
+ {
336
+ "internalType": "bool",
337
+ "name": "",
338
+ "type": "bool"
339
+ }
340
+ ],
341
+ "stateMutability": "view",
342
+ "type": "function"
343
+ },
344
+ {
345
+ "inputs": [
346
+ {
347
+ "internalType": "bytes",
348
+ "name": "_request",
349
+ "type": "bytes"
350
+ },
351
+ {
352
+ "internalType": "bytes",
353
+ "name": "_response",
354
+ "type": "bytes"
355
+ }
356
+ ],
357
+ "name": "lzMap",
358
+ "outputs": [
359
+ {
360
+ "internalType": "bytes",
361
+ "name": "",
362
+ "type": "bytes"
363
+ }
364
+ ],
365
+ "stateMutability": "pure",
366
+ "type": "function"
367
+ },
368
+ {
369
+ "inputs": [
370
+ {
371
+ "components": [
372
+ {
373
+ "internalType": "uint32",
374
+ "name": "srcEid",
375
+ "type": "uint32"
376
+ },
377
+ {
378
+ "internalType": "bytes32",
379
+ "name": "sender",
380
+ "type": "bytes32"
381
+ },
382
+ {
383
+ "internalType": "uint64",
384
+ "name": "nonce",
385
+ "type": "uint64"
386
+ }
387
+ ],
388
+ "internalType": "struct Origin",
389
+ "name": "_origin",
390
+ "type": "tuple"
391
+ },
392
+ {
393
+ "internalType": "bytes32",
394
+ "name": "_guid",
395
+ "type": "bytes32"
396
+ },
397
+ {
398
+ "internalType": "bytes",
399
+ "name": "_message",
400
+ "type": "bytes"
401
+ },
402
+ {
403
+ "internalType": "address",
404
+ "name": "_executor",
405
+ "type": "address"
406
+ },
407
+ {
408
+ "internalType": "bytes",
409
+ "name": "_extraData",
410
+ "type": "bytes"
411
+ }
412
+ ],
413
+ "name": "lzReceive",
414
+ "outputs": [],
415
+ "stateMutability": "payable",
416
+ "type": "function"
417
+ },
418
+ {
419
+ "inputs": [
420
+ {
421
+ "internalType": "bytes",
422
+ "name": "_cmd",
423
+ "type": "bytes"
424
+ },
425
+ {
426
+ "internalType": "bytes[]",
427
+ "name": "_responses",
428
+ "type": "bytes[]"
429
+ }
430
+ ],
431
+ "name": "lzReduce",
432
+ "outputs": [
433
+ {
434
+ "internalType": "bytes",
435
+ "name": "",
436
+ "type": "bytes"
437
+ }
438
+ ],
439
+ "stateMutability": "pure",
440
+ "type": "function"
441
+ },
442
+ {
443
+ "inputs": [
444
+ {
445
+ "internalType": "uint32",
446
+ "name": "",
447
+ "type": "uint32"
448
+ },
449
+ {
450
+ "internalType": "bytes32",
451
+ "name": "",
452
+ "type": "bytes32"
453
+ }
454
+ ],
455
+ "name": "nextNonce",
456
+ "outputs": [
457
+ {
458
+ "internalType": "uint64",
459
+ "name": "nonce",
460
+ "type": "uint64"
461
+ }
462
+ ],
463
+ "stateMutability": "view",
464
+ "type": "function"
465
+ },
466
+ {
467
+ "inputs": [],
468
+ "name": "oAppVersion",
469
+ "outputs": [
470
+ {
471
+ "internalType": "uint64",
472
+ "name": "senderVersion",
473
+ "type": "uint64"
474
+ },
475
+ {
476
+ "internalType": "uint64",
477
+ "name": "receiverVersion",
478
+ "type": "uint64"
479
+ }
480
+ ],
481
+ "stateMutability": "pure",
482
+ "type": "function"
483
+ },
484
+ {
485
+ "inputs": [],
486
+ "name": "owner",
487
+ "outputs": [
488
+ {
489
+ "internalType": "address",
490
+ "name": "",
491
+ "type": "address"
492
+ }
493
+ ],
494
+ "stateMutability": "view",
495
+ "type": "function"
496
+ },
497
+ {
498
+ "inputs": [
499
+ {
500
+ "internalType": "uint32",
501
+ "name": "eid",
502
+ "type": "uint32"
503
+ }
504
+ ],
505
+ "name": "peers",
506
+ "outputs": [
507
+ {
508
+ "internalType": "bytes32",
509
+ "name": "peer",
510
+ "type": "bytes32"
511
+ }
512
+ ],
513
+ "stateMutability": "view",
514
+ "type": "function"
515
+ },
516
+ {
517
+ "inputs": [
518
+ {
519
+ "internalType": "uint32",
520
+ "name": "_channelId",
521
+ "type": "uint32"
522
+ },
523
+ {
524
+ "internalType": "uint16",
525
+ "name": "_appLabel",
526
+ "type": "uint16"
527
+ },
528
+ {
529
+ "components": [
530
+ {
531
+ "internalType": "uint16",
532
+ "name": "appRequestLabel",
533
+ "type": "uint16"
534
+ },
535
+ {
536
+ "internalType": "uint32",
537
+ "name": "targetEid",
538
+ "type": "uint32"
539
+ },
540
+ {
541
+ "internalType": "bool",
542
+ "name": "isBlockNum",
543
+ "type": "bool"
544
+ },
545
+ {
546
+ "internalType": "uint64",
547
+ "name": "blockNumOrTimestamp",
548
+ "type": "uint64"
549
+ },
550
+ {
551
+ "internalType": "uint16",
552
+ "name": "confirmations",
553
+ "type": "uint16"
554
+ },
555
+ {
556
+ "internalType": "address",
557
+ "name": "to",
558
+ "type": "address"
559
+ },
560
+ {
561
+ "internalType": "uint256",
562
+ "name": "countAddition",
563
+ "type": "uint256"
564
+ }
565
+ ],
566
+ "internalType": "struct LzReadCounter.EvmReadRequest[]",
567
+ "name": "_requests",
568
+ "type": "tuple[]"
569
+ },
570
+ {
571
+ "components": [
572
+ {
573
+ "internalType": "uint8",
574
+ "name": "computeSetting",
575
+ "type": "uint8"
576
+ },
577
+ {
578
+ "internalType": "uint16",
579
+ "name": "computeConfirmations",
580
+ "type": "uint16"
581
+ },
582
+ {
583
+ "internalType": "uint64",
584
+ "name": "blockNumOrTimestamp",
585
+ "type": "uint64"
586
+ },
587
+ {
588
+ "internalType": "bool",
589
+ "name": "isBlockNum",
590
+ "type": "bool"
591
+ }
592
+ ],
593
+ "internalType": "struct LzReadCounter.ComputeSetting",
594
+ "name": "_computeSetting",
595
+ "type": "tuple"
596
+ },
597
+ {
598
+ "internalType": "bytes",
599
+ "name": "_options",
600
+ "type": "bytes"
601
+ }
602
+ ],
603
+ "name": "quote",
604
+ "outputs": [
605
+ {
606
+ "internalType": "uint256",
607
+ "name": "nativeFee",
608
+ "type": "uint256"
609
+ },
610
+ {
611
+ "internalType": "uint256",
612
+ "name": "lzTokenFee",
613
+ "type": "uint256"
614
+ }
615
+ ],
616
+ "stateMutability": "view",
617
+ "type": "function"
618
+ },
619
+ {
620
+ "inputs": [
621
+ {
622
+ "internalType": "uint256",
623
+ "name": "countAddition",
624
+ "type": "uint256"
625
+ }
626
+ ],
627
+ "name": "readCount",
628
+ "outputs": [
629
+ {
630
+ "internalType": "uint256",
631
+ "name": "",
632
+ "type": "uint256"
633
+ }
634
+ ],
635
+ "stateMutability": "view",
636
+ "type": "function"
637
+ },
638
+ {
639
+ "inputs": [],
640
+ "name": "renounceOwnership",
641
+ "outputs": [],
642
+ "stateMutability": "nonpayable",
643
+ "type": "function"
644
+ },
645
+ {
646
+ "inputs": [
647
+ {
648
+ "internalType": "address",
649
+ "name": "_delegate",
650
+ "type": "address"
651
+ }
652
+ ],
653
+ "name": "setDelegate",
654
+ "outputs": [],
655
+ "stateMutability": "nonpayable",
656
+ "type": "function"
657
+ },
658
+ {
659
+ "inputs": [
660
+ {
661
+ "internalType": "uint32",
662
+ "name": "_eid",
663
+ "type": "uint32"
664
+ },
665
+ {
666
+ "internalType": "bytes32",
667
+ "name": "_peer",
668
+ "type": "bytes32"
669
+ }
670
+ ],
671
+ "name": "setPeer",
672
+ "outputs": [],
673
+ "stateMutability": "nonpayable",
674
+ "type": "function"
675
+ },
676
+ {
677
+ "inputs": [
678
+ {
679
+ "internalType": "uint32",
680
+ "name": "_channelId",
681
+ "type": "uint32"
682
+ },
683
+ {
684
+ "internalType": "bool",
685
+ "name": "_active",
686
+ "type": "bool"
687
+ }
688
+ ],
689
+ "name": "setReadChannel",
690
+ "outputs": [],
691
+ "stateMutability": "nonpayable",
692
+ "type": "function"
693
+ },
694
+ {
695
+ "inputs": [
696
+ {
697
+ "internalType": "address",
698
+ "name": "newOwner",
699
+ "type": "address"
700
+ }
701
+ ],
702
+ "name": "transferOwnership",
703
+ "outputs": [],
704
+ "stateMutability": "nonpayable",
705
+ "type": "function"
706
+ },
707
+ {
708
+ "inputs": [
709
+ {
710
+ "internalType": "uint32",
711
+ "name": "_channelId",
712
+ "type": "uint32"
713
+ },
714
+ {
715
+ "internalType": "uint16",
716
+ "name": "_appLabel",
717
+ "type": "uint16"
718
+ },
719
+ {
720
+ "components": [
721
+ {
722
+ "internalType": "uint16",
723
+ "name": "appRequestLabel",
724
+ "type": "uint16"
725
+ },
726
+ {
727
+ "internalType": "uint32",
728
+ "name": "targetEid",
729
+ "type": "uint32"
730
+ },
731
+ {
732
+ "internalType": "bool",
733
+ "name": "isBlockNum",
734
+ "type": "bool"
735
+ },
736
+ {
737
+ "internalType": "uint64",
738
+ "name": "blockNumOrTimestamp",
739
+ "type": "uint64"
740
+ },
741
+ {
742
+ "internalType": "uint16",
743
+ "name": "confirmations",
744
+ "type": "uint16"
745
+ },
746
+ {
747
+ "internalType": "address",
748
+ "name": "to",
749
+ "type": "address"
750
+ },
751
+ {
752
+ "internalType": "uint256",
753
+ "name": "countAddition",
754
+ "type": "uint256"
755
+ }
756
+ ],
757
+ "internalType": "struct LzReadCounter.EvmReadRequest[]",
758
+ "name": "_requests",
759
+ "type": "tuple[]"
760
+ },
761
+ {
762
+ "components": [
763
+ {
764
+ "internalType": "uint8",
765
+ "name": "computeSetting",
766
+ "type": "uint8"
767
+ },
768
+ {
769
+ "internalType": "uint16",
770
+ "name": "computeConfirmations",
771
+ "type": "uint16"
772
+ },
773
+ {
774
+ "internalType": "uint64",
775
+ "name": "blockNumOrTimestamp",
776
+ "type": "uint64"
777
+ },
778
+ {
779
+ "internalType": "bool",
780
+ "name": "isBlockNum",
781
+ "type": "bool"
782
+ }
783
+ ],
784
+ "internalType": "struct LzReadCounter.ComputeSetting",
785
+ "name": "_computeSetting",
786
+ "type": "tuple"
787
+ },
788
+ {
789
+ "internalType": "bytes",
790
+ "name": "_options",
791
+ "type": "bytes"
792
+ }
793
+ ],
794
+ "name": "triggerRead",
795
+ "outputs": [
796
+ {
797
+ "components": [
798
+ {
799
+ "internalType": "bytes32",
800
+ "name": "guid",
801
+ "type": "bytes32"
802
+ },
803
+ {
804
+ "internalType": "uint64",
805
+ "name": "nonce",
806
+ "type": "uint64"
807
+ },
808
+ {
809
+ "components": [
810
+ {
811
+ "internalType": "uint256",
812
+ "name": "nativeFee",
813
+ "type": "uint256"
814
+ },
815
+ {
816
+ "internalType": "uint256",
817
+ "name": "lzTokenFee",
818
+ "type": "uint256"
819
+ }
820
+ ],
821
+ "internalType": "struct MessagingFee",
822
+ "name": "fee",
823
+ "type": "tuple"
824
+ }
825
+ ],
826
+ "internalType": "struct MessagingReceipt",
827
+ "name": "receipt",
828
+ "type": "tuple"
829
+ }
830
+ ],
831
+ "stateMutability": "payable",
832
+ "type": "function"
833
+ },
834
+ {
835
+ "stateMutability": "payable",
836
+ "type": "receive"
837
+ }
838
+ ],
839
+ "bytecode": "0x60c06040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b506040516200301e3803806200301e8339810160408190526200005091620001bb565b80338181818162000061816200016b565b6001600160a01b0380831660805281166200008f57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000d757600080fd5b505af1158015620000ec573d6000803e3d6000fd5b50505050505050505050806001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015b9190620001f6565b63ffffffff1660a0525062000225565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620001ce57600080fd5b81516001600160a81b0381168114620001e657600080fd5b6001600160a01b03169392505050565b6000602082840312156200020957600080fd5b815163ffffffff811681146200021e57600080fd5b9392505050565b60805160a051612da26200027c6000396000818161029c0152610d4f0152600081816102ff015281816107bd01528181610e300152818161146e015281816115ee0152818161184b01526119440152612da26000f3fe6080604052600436106101615760003560e01c806382413eac116100bf578063ca5eb5e111610079578063f0a9e48111610056578063f0a9e48114610662578063f2fde38b1461069c578063ff7bd03d146106d657005b8063ca5eb5e1146105b4578063e60c287c146105ee578063eba1cf081461062857005b8063a798280f116100a7578063a798280f146104f5578063a7e0231f1461053c578063bb0b6a531461056d57005b806382413eac146104665780638da5cb5b146104b057005b8063416ecebf1161011b578063715018a6116100f8578063715018a61461039557806373494d2e146103c45780637d25a05e1461041057005b8063416ecebf146102705780635e280f11146102d3578063695a2fa81461034657005b806313137d651161014957806313137d65146101e757806317442b70146101fa5780633400288b1461023657005b80630119024e1461016a57806306661abd146101b757005b3661016857005b005b34801561017657600080fd5b50d3801561018357600080fd5b50d2801561019057600080fd5b506101a461019f366004611f0a565b610710565b6040519081526020015b60405180910390f35b3480156101c357600080fd5b50d380156101d057600080fd5b50d280156101dd57600080fd5b506101a460025481565b6101686101f5366004611fa7565b6107bb565b34801561020657600080fd5b50d3801561021357600080fd5b50d2801561022057600080fd5b50604080516001815260026020820152016101ae565b34801561024257600080fd5b50d3801561024f57600080fd5b50d2801561025c57600080fd5b5061016861026b366004612077565b6108b5565b34801561027c57600080fd5b50d3801561028957600080fd5b50d2801561029657600080fd5b506102be7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101ae565b3480156102df57600080fd5b50d380156102ec57600080fd5b50d280156102f957600080fd5b506103217f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ae565b34801561035257600080fd5b50d3801561035f57600080fd5b50d2801561036c57600080fd5b5061038061037b366004612327565b6108cb565b604080519283526020830191909152016101ae565b3480156103a157600080fd5b50d380156103ae57600080fd5b50d280156103bb57600080fd5b50610168610939565b6103d76103d2366004612327565b61094d565b604080518251815260208084015167ffffffffffffffff16818301529282015180519282019290925291015160608201526080016101ae565b34801561041c57600080fd5b50d3801561042957600080fd5b50d2801561043657600080fd5b5061044d610445366004612077565b600092915050565b60405167ffffffffffffffff90911681526020016101ae565b34801561047257600080fd5b50d3801561047f57600080fd5b50d2801561048c57600080fd5b506104a061049b3660046123c5565b6109e2565b60405190151581526020016101ae565b3480156104bc57600080fd5b50d380156104c957600080fd5b50d280156104d657600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610321565b34801561050157600080fd5b50d3801561050e57600080fd5b50d2801561051b57600080fd5b5061052f61052a366004612444565b610a04565b6040516101ae9190612511565b34801561054857600080fd5b50d3801561055557600080fd5b50d2801561056257600080fd5b506101686000600255565b34801561057957600080fd5b50d3801561058657600080fd5b50d2801561059357600080fd5b506101a46105a236600461252b565b60016020526000908152604090205481565b3480156105c057600080fd5b50d380156105cd57600080fd5b50d280156105da57600080fd5b506101686105e9366004612546565b610de3565b3480156105fa57600080fd5b50d3801561060757600080fd5b50d2801561061457600080fd5b5061052f610623366004612580565b610e8f565b34801561063457600080fd5b50d3801561064157600080fd5b50d2801561064e57600080fd5b5061052f61065d3660046125ec565b610f91565b34801561066e57600080fd5b50d3801561067b57600080fd5b50d2801561068857600080fd5b50610168610697366004612686565b6110f6565b3480156106a857600080fd5b50d380156106b557600080fd5b50d280156106c257600080fd5b506101686106d1366004612546565b611114565b3480156106e257600080fd5b50d380156106ef57600080fd5b50d280156106fc57600080fd5b506104a061070b3660046126bd565b6111cb565b6000816009036107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c696420636f756e742061646460448201527f6974696f6e00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b816002546107b59190612708565b92915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16331461082c576040517f91ac5e4f00000000000000000000000000000000000000000000000000000000815233600482015260240161079e565b6020870180359061084690610841908a61252b565b611201565b1461089d57610858602088018861252b565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff90911660048201526020880135602482015260440161079e565b6108ac87878787878787611256565b50505050505050565b6108bd611382565b6108c78282611403565b5050565b60008060006108db888888610a04565b905060006109208a8388888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611458915050565b8051602090910151909b909a5098505050505050505050565b610941611382565b61094b6000611546565b565b610955611ec2565b6000610962878787610a04565b90506001600260008282546109779190612708565b925050819055506109d6888286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051808201909152348152602081019190915292503391506115bb9050565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b60606000835111610a71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4c7a52656164436f756e7465723a20656d707479207265717565737473000000604482015260640161079e565b6000835167ffffffffffffffff811115610a8d57610a8d6120b3565b604051908082528060200260200182016040528015610b1457816020015b6040805160e0810182526000808252602080830182905292820181905260608083018290526080830182905260a083019190915260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610aab5790505b50905060005b8451811015610c89576000858281518110610b3757610b3761271b565b602002602001015190506040518060e00160405280826000015161ffff168152602001826020015163ffffffff168152602001826040015115158152602001826060015167ffffffffffffffff168152602001826080015161ffff1681526020018260a0015173ffffffffffffffffffffffffffffffffffffffff168152602001630119024e60e01b8360c00151604051602401610bd791815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290528351849084908110610c6a57610c6a61271b565b6020026020010181905250508080610c819061274a565b915050610b1a565b508251600360ff9091161115610d21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4c7a52656164436f756e7465723a20696e76616c696420636f6d70757465207460448201527f7970650000000000000000000000000000000000000000000000000000000000606482015260840161079e565b60006040518060c00160405280856000015160ff168152602001600360ff16866000015160ff1614610d73577f0000000000000000000000000000000000000000000000000000000000000000610d76565b60005b63ffffffff168152602001856060015115158152602001856040015167ffffffffffffffff168152602001856020015161ffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681525090506000610dd88784846116c8565b979650505050505050565b610deb611382565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610e7457600080fd5b505af1158015610e88573d6000803e3d6000fd5b5050505050565b606060208214610f21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e6774680000000000000000000000000000000000000000000000000000606482015260840161079e565b6000610f2d86866116f4565b90506000610f3d84860186611f0a565b9050610f4b826103e8612782565b61ffff16610f5a826064612708565b610f649190612708565b604051602001610f7691815260200190565b60405160208183030381529060405292505050949350505050565b60606000805b838110156110a957848482818110610fb157610fb161271b565b9050602002810190610fc391906127a8565b9050602014611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e6774680000000000000000000000000000000000000000000000000000606482015260840161079e565b60008585838181106110685761106861271b565b905060200281019061107a91906127a8565b8101906110879190611f0a565b90506110938184612708565b92505080806110a19061274a565b915050610f97565b506110b661271082612708565b905060006110c4878761178e565b90506110d761ffff8216620186a061280d565b6110e19083612708565b915081604051602001610f7691815260200190565b6110fe611382565b6108c7828261110e576000611403565b30611403565b61111c611382565b73ffffffffffffffffffffffffffffffffffffffff81166111bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161079e565b6111c881611546565b50565b60006020820180359060019083906111e3908661252b565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff8116600090815260016020526040812054806107b5576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff8416600482015260240161079e565b611261602085612824565b156112ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c6964206d657373616765206c60448201527f656e677468000000000000000000000000000000000000000000000000000000606482015260840161079e565b6000805b8581101561134057868187611308826020612708565b926113159392919061285f565b8101906113229190611f0a565b61132c9083612708565b9150611339602082612708565b90506112f2565b50700100000000000000000000000000000000600254106113615760006002555b80600260008282546113739190612708565b90915550505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461094b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161079e565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b60408051808201909152600080825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff1681526020016114c889611201565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016114fd929190612889565b6040805180830381865afa158015611519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153d919061297c565b95945050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6115c3611ec2565b60006115d28460000151611806565b6020850151909150156115ec576115ec8460200151611847565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff1681526020016116498c611201565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611685929190612889565b60806040518083038185885af11580156116a3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dd89190612998565b606060006116d68585611969565b9050826020015163ffffffff166000146109fc5761153d8184611a1b565b60008080848482816117085761170861271b565b919091013560f81c915061171f9050600183612708565b915060ff811660011461175e576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84828561176c826002612708565b926117799392919061285f565b61178291612a00565b60f01c95945050505050565b600080808481856117a0826002612708565b926117ad9392919061285f565b6117b691612a00565b60f01c90506117c6600283612708565b915061ffff811660011461175e576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000813414611843576040517f9f70412000000000000000000000000000000000000000000000000000000000815234600482015260240161079e565b5090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d89190612a46565b905073ffffffffffffffffffffffffffffffffffffffff8116611927576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108c773ffffffffffffffffffffffffffffffffffffffff8216337f000000000000000000000000000000000000000000000000000000000000000085611a6e565b6060600060018461197a8551611b09565b6040517fffff00000000000000000000000000000000000000000000000000000000000060f094851b8116602083015292841b83166022820152921b166024820152602601604051602081830303815290604052905060005b8351811015611a13576119ff828583815181106119f2576119f261271b565b6020026020010151611b9d565b915080611a0b8161274a565b9150506119d3565b509392505050565b606082600180846000015185602001518660400151876060015188608001518960a00151604051602001611a5799989796959493929190612a63565b604051602081830303815290604052905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052611b03908590611c4d565b50505050565b600061ffff821115611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f3620626974730000000000000000000000000000000000000000000000000000606482015260840161079e565b6060600083600184600001516001611bc58760c00151516023611bc09190612708565b611b09565b602080890151604051611bdd97969594939201612bb5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252908501516060860151608087015160a088015160c0890151949650611c3595879590602001612c70565b60405160208183030381529060405291505092915050565b6000611caf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611d619092919063ffffffff16565b9050805160001480611cd0575080806020019051810190611cd09190612d33565b611d5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161079e565b505050565b60606109fc8484600085856000808673ffffffffffffffffffffffffffffffffffffffff168587604051611d959190612d50565b60006040518083038185875af1925050503d8060008114611dd2576040519150601f19603f3d011682016040523d82523d6000602084013e611dd7565b606091505b5091509150610dd88783838760608315611e79578251600003611e725773ffffffffffffffffffffffffffffffffffffffff85163b611e72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161079e565b50816109fc565b6109fc8383815115611e8e5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e9190612511565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001611f05604051806040016040528060008152602001600081525090565b905290565b600060208284031215611f1c57600080fd5b5035919050565b600060608284031215611f3557600080fd5b50919050565b60008083601f840112611f4d57600080fd5b50813567ffffffffffffffff811115611f6557600080fd5b602083019150836020828501011115611f7d57600080fd5b9250929050565b74ffffffffffffffffffffffffffffffffffffffffff811681146111c857600080fd5b600080600080600080600060e0888a031215611fc257600080fd5b611fcc8989611f23565b965060608801359550608088013567ffffffffffffffff80821115611ff057600080fd5b611ffc8b838c01611f3b565b909750955060a08a0135915061201182611f84565b73ffffffffffffffffffffffffffffffffffffffff8216945060c08a013591508082111561203e57600080fd5b5061204b8a828b01611f3b565b989b979a50959850939692959293505050565b803563ffffffff8116811461207257600080fd5b919050565b6000806040838503121561208a57600080fd5b6120938361205e565b946020939093013593505050565b803561ffff8116811461207257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715612105576121056120b3565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612152576121526120b3565b604052919050565b80151581146111c857600080fd5b67ffffffffffffffff811681146111c857600080fd5b600082601f83011261218f57600080fd5b8135602067ffffffffffffffff8211156121ab576121ab6120b3565b6121b9818360051b0161210b565b82815260e092830285018201928282019190878511156121d857600080fd5b8387015b8581101561228d5781818a0312156121f45760008081fd5b6121fc6120e2565b612205826120a1565b815261221286830161205e565b868201526040808301356122258161215a565b9082015260608281013561223881612168565b9082015260806122498382016120a1565b9082015260a08281013561225c81611f84565b73ffffffffffffffffffffffffffffffffffffffff169082015260c0828101359082015284529284019281016121dc565b5090979650505050505050565b6000608082840312156122ac57600080fd5b6040516080810181811067ffffffffffffffff821117156122cf576122cf6120b3565b604052905080823560ff811681146122e657600080fd5b81526122f4602084016120a1565b6020820152604083013561230781612168565b6040820152606083013561231a8161215a565b6060919091015292915050565b600080600080600080610100878903121561234157600080fd5b61234a8761205e565b9550612358602088016120a1565b9450604087013567ffffffffffffffff8082111561237557600080fd5b6123818a838b0161217e565b95506123908a60608b0161229a565b945060e08901359150808211156123a657600080fd5b506123b389828a01611f3b565b979a9699509497509295939492505050565b60008060008060a085870312156123db57600080fd5b6123e58686611f23565b9350606085013567ffffffffffffffff81111561240157600080fd5b61240d87828801611f3b565b909450925050608085013561242181611f84565b73ffffffffffffffffffffffffffffffffffffffff811691505092959194509250565b600080600060c0848603121561245957600080fd5b612462846120a1565b9250602084013567ffffffffffffffff81111561247e57600080fd5b61248a8682870161217e565b92505061249a856040860161229a565b90509250925092565b60005b838110156124be5781810151838201526020016124a6565b50506000910152565b600081518084526124df8160208601602086016124a3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061252460208301846124c7565b9392505050565b60006020828403121561253d57600080fd5b6125248261205e565b60006020828403121561255857600080fd5b813561256381611f84565b73ffffffffffffffffffffffffffffffffffffffff169392505050565b6000806000806040858703121561259657600080fd5b843567ffffffffffffffff808211156125ae57600080fd5b6125ba88838901611f3b565b909650945060208701359150808211156125d357600080fd5b506125e087828801611f3b565b95989497509550505050565b6000806000806040858703121561260257600080fd5b843567ffffffffffffffff8082111561261a57600080fd5b61262688838901611f3b565b9096509450602087013591508082111561263f57600080fd5b818701915087601f83011261265357600080fd5b81358181111561266257600080fd5b8860208260051b850101111561267757600080fd5b95989497505060200194505050565b6000806040838503121561269957600080fd5b6126a28361205e565b915060208301356126b28161215a565b809150509250929050565b6000606082840312156126cf57600080fd5b6125248383611f23565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156107b5576107b56126d9565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361277b5761277b6126d9565b5060010190565b61ffff8181168382160280821691908281146127a0576127a06126d9565b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126127dd57600080fd5b83018035915067ffffffffffffffff8211156127f857600080fd5b602001915036819003821315611f7d57600080fd5b80820281158282048414176107b5576107b56126d9565b60008261285a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b6000808585111561286f57600080fd5b8386111561287c57600080fd5b5050820193919092039150565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526128bf60e08401826124c7565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526128fa82826124c7565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b60006040828403121561293f57600080fd5b6040516040810181811067ffffffffffffffff82111715612962576129626120b3565b604052825181526020928301519281019290925250919050565b60006040828403121561298e57600080fd5b612524838361292d565b6000608082840312156129aa57600080fd5b6040516060810181811067ffffffffffffffff821117156129cd576129cd6120b3565b6040528251815260208301516129e281612168565b60208201526129f4846040850161292d565b60408201529392505050565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156127a05760029490940360031b84901b1690921692915050565b600060208284031215612a5857600080fd5b815161256381611f84565b60008a51612a75818460208f016124a3565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008b60f01b166001830152808a60f81b166003830152507fffffffff000000000000000000000000000000000000000000000000000000008860e01b16600482015286151560f81b6008820152612b41600982018760c01b7fffffffffffffffff000000000000000000000000000000000000000000000000169052565b612b72601182018660f01b7fffff000000000000000000000000000000000000000000000000000000000000169052565b612ba3601382018560601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b6027019b9a5050505050505050505050565b60008751612bc7818460208c016124a3565b60f89790971b7fff00000000000000000000000000000000000000000000000000000000000000169190960190815260f094851b7fffff000000000000000000000000000000000000000000000000000000000000908116600183015293851b841660038201529190931b909116600582015260e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166007820152600b0192915050565b60008751612c82818460208c016124a3565b808301905087151560f81b81527fffffffffffffffff0000000000000000000000000000000000000000000000008760c01b1660018201527fffff0000000000000000000000000000000000000000000000000000000000008660f01b1660098201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16600b8201528351612d2381601f8401602088016124a3565b01601f0198975050505050505050565b600060208284031215612d4557600080fd5b81516125248161215a565b60008251612d628184602087016124a3565b919091019291505056fea26474726f6e5822122094aebce484e87b8f766b58e1987088079d55006b5d8b067c1f22a7d846712b8864736f6c63430008140033",
840
+ "deployedBytecode": "0x6080604052600436106101615760003560e01c806382413eac116100bf578063ca5eb5e111610079578063f0a9e48111610056578063f0a9e48114610662578063f2fde38b1461069c578063ff7bd03d146106d657005b8063ca5eb5e1146105b4578063e60c287c146105ee578063eba1cf081461062857005b8063a798280f116100a7578063a798280f146104f5578063a7e0231f1461053c578063bb0b6a531461056d57005b806382413eac146104665780638da5cb5b146104b057005b8063416ecebf1161011b578063715018a6116100f8578063715018a61461039557806373494d2e146103c45780637d25a05e1461041057005b8063416ecebf146102705780635e280f11146102d3578063695a2fa81461034657005b806313137d651161014957806313137d65146101e757806317442b70146101fa5780633400288b1461023657005b80630119024e1461016a57806306661abd146101b757005b3661016857005b005b34801561017657600080fd5b50d3801561018357600080fd5b50d2801561019057600080fd5b506101a461019f366004611f0a565b610710565b6040519081526020015b60405180910390f35b3480156101c357600080fd5b50d380156101d057600080fd5b50d280156101dd57600080fd5b506101a460025481565b6101686101f5366004611fa7565b6107bb565b34801561020657600080fd5b50d3801561021357600080fd5b50d2801561022057600080fd5b50604080516001815260026020820152016101ae565b34801561024257600080fd5b50d3801561024f57600080fd5b50d2801561025c57600080fd5b5061016861026b366004612077565b6108b5565b34801561027c57600080fd5b50d3801561028957600080fd5b50d2801561029657600080fd5b506102be7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101ae565b3480156102df57600080fd5b50d380156102ec57600080fd5b50d280156102f957600080fd5b506103217f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ae565b34801561035257600080fd5b50d3801561035f57600080fd5b50d2801561036c57600080fd5b5061038061037b366004612327565b6108cb565b604080519283526020830191909152016101ae565b3480156103a157600080fd5b50d380156103ae57600080fd5b50d280156103bb57600080fd5b50610168610939565b6103d76103d2366004612327565b61094d565b604080518251815260208084015167ffffffffffffffff16818301529282015180519282019290925291015160608201526080016101ae565b34801561041c57600080fd5b50d3801561042957600080fd5b50d2801561043657600080fd5b5061044d610445366004612077565b600092915050565b60405167ffffffffffffffff90911681526020016101ae565b34801561047257600080fd5b50d3801561047f57600080fd5b50d2801561048c57600080fd5b506104a061049b3660046123c5565b6109e2565b60405190151581526020016101ae565b3480156104bc57600080fd5b50d380156104c957600080fd5b50d280156104d657600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610321565b34801561050157600080fd5b50d3801561050e57600080fd5b50d2801561051b57600080fd5b5061052f61052a366004612444565b610a04565b6040516101ae9190612511565b34801561054857600080fd5b50d3801561055557600080fd5b50d2801561056257600080fd5b506101686000600255565b34801561057957600080fd5b50d3801561058657600080fd5b50d2801561059357600080fd5b506101a46105a236600461252b565b60016020526000908152604090205481565b3480156105c057600080fd5b50d380156105cd57600080fd5b50d280156105da57600080fd5b506101686105e9366004612546565b610de3565b3480156105fa57600080fd5b50d3801561060757600080fd5b50d2801561061457600080fd5b5061052f610623366004612580565b610e8f565b34801561063457600080fd5b50d3801561064157600080fd5b50d2801561064e57600080fd5b5061052f61065d3660046125ec565b610f91565b34801561066e57600080fd5b50d3801561067b57600080fd5b50d2801561068857600080fd5b50610168610697366004612686565b6110f6565b3480156106a857600080fd5b50d380156106b557600080fd5b50d280156106c257600080fd5b506101686106d1366004612546565b611114565b3480156106e257600080fd5b50d380156106ef57600080fd5b50d280156106fc57600080fd5b506104a061070b3660046126bd565b6111cb565b6000816009036107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c696420636f756e742061646460448201527f6974696f6e00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b816002546107b59190612708565b92915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16331461082c576040517f91ac5e4f00000000000000000000000000000000000000000000000000000000815233600482015260240161079e565b6020870180359061084690610841908a61252b565b611201565b1461089d57610858602088018861252b565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff90911660048201526020880135602482015260440161079e565b6108ac87878787878787611256565b50505050505050565b6108bd611382565b6108c78282611403565b5050565b60008060006108db888888610a04565b905060006109208a8388888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611458915050565b8051602090910151909b909a5098505050505050505050565b610941611382565b61094b6000611546565b565b610955611ec2565b6000610962878787610a04565b90506001600260008282546109779190612708565b925050819055506109d6888286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051808201909152348152602081019190915292503391506115bb9050565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b60606000835111610a71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4c7a52656164436f756e7465723a20656d707479207265717565737473000000604482015260640161079e565b6000835167ffffffffffffffff811115610a8d57610a8d6120b3565b604051908082528060200260200182016040528015610b1457816020015b6040805160e0810182526000808252602080830182905292820181905260608083018290526080830182905260a083019190915260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610aab5790505b50905060005b8451811015610c89576000858281518110610b3757610b3761271b565b602002602001015190506040518060e00160405280826000015161ffff168152602001826020015163ffffffff168152602001826040015115158152602001826060015167ffffffffffffffff168152602001826080015161ffff1681526020018260a0015173ffffffffffffffffffffffffffffffffffffffff168152602001630119024e60e01b8360c00151604051602401610bd791815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290528351849084908110610c6a57610c6a61271b565b6020026020010181905250508080610c819061274a565b915050610b1a565b508251600360ff9091161115610d21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4c7a52656164436f756e7465723a20696e76616c696420636f6d70757465207460448201527f7970650000000000000000000000000000000000000000000000000000000000606482015260840161079e565b60006040518060c00160405280856000015160ff168152602001600360ff16866000015160ff1614610d73577f0000000000000000000000000000000000000000000000000000000000000000610d76565b60005b63ffffffff168152602001856060015115158152602001856040015167ffffffffffffffff168152602001856020015161ffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681525090506000610dd88784846116c8565b979650505050505050565b610deb611382565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610e7457600080fd5b505af1158015610e88573d6000803e3d6000fd5b5050505050565b606060208214610f21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e6774680000000000000000000000000000000000000000000000000000606482015260840161079e565b6000610f2d86866116f4565b90506000610f3d84860186611f0a565b9050610f4b826103e8612782565b61ffff16610f5a826064612708565b610f649190612708565b604051602001610f7691815260200190565b60405160208183030381529060405292505050949350505050565b60606000805b838110156110a957848482818110610fb157610fb161271b565b9050602002810190610fc391906127a8565b9050602014611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e6774680000000000000000000000000000000000000000000000000000606482015260840161079e565b60008585838181106110685761106861271b565b905060200281019061107a91906127a8565b8101906110879190611f0a565b90506110938184612708565b92505080806110a19061274a565b915050610f97565b506110b661271082612708565b905060006110c4878761178e565b90506110d761ffff8216620186a061280d565b6110e19083612708565b915081604051602001610f7691815260200190565b6110fe611382565b6108c7828261110e576000611403565b30611403565b61111c611382565b73ffffffffffffffffffffffffffffffffffffffff81166111bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161079e565b6111c881611546565b50565b60006020820180359060019083906111e3908661252b565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff8116600090815260016020526040812054806107b5576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff8416600482015260240161079e565b611261602085612824565b156112ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c6964206d657373616765206c60448201527f656e677468000000000000000000000000000000000000000000000000000000606482015260840161079e565b6000805b8581101561134057868187611308826020612708565b926113159392919061285f565b8101906113229190611f0a565b61132c9083612708565b9150611339602082612708565b90506112f2565b50700100000000000000000000000000000000600254106113615760006002555b80600260008282546113739190612708565b90915550505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461094b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161079e565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b60408051808201909152600080825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff1681526020016114c889611201565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016114fd929190612889565b6040805180830381865afa158015611519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153d919061297c565b95945050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6115c3611ec2565b60006115d28460000151611806565b6020850151909150156115ec576115ec8460200151611847565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff1681526020016116498c611201565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611685929190612889565b60806040518083038185885af11580156116a3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dd89190612998565b606060006116d68585611969565b9050826020015163ffffffff166000146109fc5761153d8184611a1b565b60008080848482816117085761170861271b565b919091013560f81c915061171f9050600183612708565b915060ff811660011461175e576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84828561176c826002612708565b926117799392919061285f565b61178291612a00565b60f01c95945050505050565b600080808481856117a0826002612708565b926117ad9392919061285f565b6117b691612a00565b60f01c90506117c6600283612708565b915061ffff811660011461175e576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000813414611843576040517f9f70412000000000000000000000000000000000000000000000000000000000815234600482015260240161079e565b5090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d89190612a46565b905073ffffffffffffffffffffffffffffffffffffffff8116611927576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108c773ffffffffffffffffffffffffffffffffffffffff8216337f000000000000000000000000000000000000000000000000000000000000000085611a6e565b6060600060018461197a8551611b09565b6040517fffff00000000000000000000000000000000000000000000000000000000000060f094851b8116602083015292841b83166022820152921b166024820152602601604051602081830303815290604052905060005b8351811015611a13576119ff828583815181106119f2576119f261271b565b6020026020010151611b9d565b915080611a0b8161274a565b9150506119d3565b509392505050565b606082600180846000015185602001518660400151876060015188608001518960a00151604051602001611a5799989796959493929190612a63565b604051602081830303815290604052905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052611b03908590611c4d565b50505050565b600061ffff821115611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f3620626974730000000000000000000000000000000000000000000000000000606482015260840161079e565b6060600083600184600001516001611bc58760c00151516023611bc09190612708565b611b09565b602080890151604051611bdd97969594939201612bb5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252908501516060860151608087015160a088015160c0890151949650611c3595879590602001612c70565b60405160208183030381529060405291505092915050565b6000611caf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611d619092919063ffffffff16565b9050805160001480611cd0575080806020019051810190611cd09190612d33565b611d5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161079e565b505050565b60606109fc8484600085856000808673ffffffffffffffffffffffffffffffffffffffff168587604051611d959190612d50565b60006040518083038185875af1925050503d8060008114611dd2576040519150601f19603f3d011682016040523d82523d6000602084013e611dd7565b606091505b5091509150610dd88783838760608315611e79578251600003611e725773ffffffffffffffffffffffffffffffffffffffff85163b611e72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161079e565b50816109fc565b6109fc8383815115611e8e5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e9190612511565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001611f05604051806040016040528060008152602001600081525090565b905290565b600060208284031215611f1c57600080fd5b5035919050565b600060608284031215611f3557600080fd5b50919050565b60008083601f840112611f4d57600080fd5b50813567ffffffffffffffff811115611f6557600080fd5b602083019150836020828501011115611f7d57600080fd5b9250929050565b74ffffffffffffffffffffffffffffffffffffffffff811681146111c857600080fd5b600080600080600080600060e0888a031215611fc257600080fd5b611fcc8989611f23565b965060608801359550608088013567ffffffffffffffff80821115611ff057600080fd5b611ffc8b838c01611f3b565b909750955060a08a0135915061201182611f84565b73ffffffffffffffffffffffffffffffffffffffff8216945060c08a013591508082111561203e57600080fd5b5061204b8a828b01611f3b565b989b979a50959850939692959293505050565b803563ffffffff8116811461207257600080fd5b919050565b6000806040838503121561208a57600080fd5b6120938361205e565b946020939093013593505050565b803561ffff8116811461207257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715612105576121056120b3565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612152576121526120b3565b604052919050565b80151581146111c857600080fd5b67ffffffffffffffff811681146111c857600080fd5b600082601f83011261218f57600080fd5b8135602067ffffffffffffffff8211156121ab576121ab6120b3565b6121b9818360051b0161210b565b82815260e092830285018201928282019190878511156121d857600080fd5b8387015b8581101561228d5781818a0312156121f45760008081fd5b6121fc6120e2565b612205826120a1565b815261221286830161205e565b868201526040808301356122258161215a565b9082015260608281013561223881612168565b9082015260806122498382016120a1565b9082015260a08281013561225c81611f84565b73ffffffffffffffffffffffffffffffffffffffff169082015260c0828101359082015284529284019281016121dc565b5090979650505050505050565b6000608082840312156122ac57600080fd5b6040516080810181811067ffffffffffffffff821117156122cf576122cf6120b3565b604052905080823560ff811681146122e657600080fd5b81526122f4602084016120a1565b6020820152604083013561230781612168565b6040820152606083013561231a8161215a565b6060919091015292915050565b600080600080600080610100878903121561234157600080fd5b61234a8761205e565b9550612358602088016120a1565b9450604087013567ffffffffffffffff8082111561237557600080fd5b6123818a838b0161217e565b95506123908a60608b0161229a565b945060e08901359150808211156123a657600080fd5b506123b389828a01611f3b565b979a9699509497509295939492505050565b60008060008060a085870312156123db57600080fd5b6123e58686611f23565b9350606085013567ffffffffffffffff81111561240157600080fd5b61240d87828801611f3b565b909450925050608085013561242181611f84565b73ffffffffffffffffffffffffffffffffffffffff811691505092959194509250565b600080600060c0848603121561245957600080fd5b612462846120a1565b9250602084013567ffffffffffffffff81111561247e57600080fd5b61248a8682870161217e565b92505061249a856040860161229a565b90509250925092565b60005b838110156124be5781810151838201526020016124a6565b50506000910152565b600081518084526124df8160208601602086016124a3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061252460208301846124c7565b9392505050565b60006020828403121561253d57600080fd5b6125248261205e565b60006020828403121561255857600080fd5b813561256381611f84565b73ffffffffffffffffffffffffffffffffffffffff169392505050565b6000806000806040858703121561259657600080fd5b843567ffffffffffffffff808211156125ae57600080fd5b6125ba88838901611f3b565b909650945060208701359150808211156125d357600080fd5b506125e087828801611f3b565b95989497509550505050565b6000806000806040858703121561260257600080fd5b843567ffffffffffffffff8082111561261a57600080fd5b61262688838901611f3b565b9096509450602087013591508082111561263f57600080fd5b818701915087601f83011261265357600080fd5b81358181111561266257600080fd5b8860208260051b850101111561267757600080fd5b95989497505060200194505050565b6000806040838503121561269957600080fd5b6126a28361205e565b915060208301356126b28161215a565b809150509250929050565b6000606082840312156126cf57600080fd5b6125248383611f23565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156107b5576107b56126d9565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361277b5761277b6126d9565b5060010190565b61ffff8181168382160280821691908281146127a0576127a06126d9565b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126127dd57600080fd5b83018035915067ffffffffffffffff8211156127f857600080fd5b602001915036819003821315611f7d57600080fd5b80820281158282048414176107b5576107b56126d9565b60008261285a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b6000808585111561286f57600080fd5b8386111561287c57600080fd5b5050820193919092039150565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526128bf60e08401826124c7565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526128fa82826124c7565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b60006040828403121561293f57600080fd5b6040516040810181811067ffffffffffffffff82111715612962576129626120b3565b604052825181526020928301519281019290925250919050565b60006040828403121561298e57600080fd5b612524838361292d565b6000608082840312156129aa57600080fd5b6040516060810181811067ffffffffffffffff821117156129cd576129cd6120b3565b6040528251815260208301516129e281612168565b60208201526129f4846040850161292d565b60408201529392505050565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156127a05760029490940360031b84901b1690921692915050565b600060208284031215612a5857600080fd5b815161256381611f84565b60008a51612a75818460208f016124a3565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008b60f01b166001830152808a60f81b166003830152507fffffffff000000000000000000000000000000000000000000000000000000008860e01b16600482015286151560f81b6008820152612b41600982018760c01b7fffffffffffffffff000000000000000000000000000000000000000000000000169052565b612b72601182018660f01b7fffff000000000000000000000000000000000000000000000000000000000000169052565b612ba3601382018560601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b6027019b9a5050505050505050505050565b60008751612bc7818460208c016124a3565b60f89790971b7fff00000000000000000000000000000000000000000000000000000000000000169190960190815260f094851b7fffff000000000000000000000000000000000000000000000000000000000000908116600183015293851b841660038201529190931b909116600582015260e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166007820152600b0192915050565b60008751612c82818460208c016124a3565b808301905087151560f81b81527fffffffffffffffff0000000000000000000000000000000000000000000000008760c01b1660018201527fffff0000000000000000000000000000000000000000000000000000000000008660f01b1660098201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16600b8201528351612d2381601f8401602088016124a3565b01601f0198975050505050505050565b600060208284031215612d4557600080fd5b81516125248161215a565b60008251612d628184602087016124a3565b919091019291505056fea26474726f6e5822122094aebce484e87b8f766b58e1987088079d55006b5d8b067c1f22a7d846712b8864736f6c63430008140033",
841
+ "linkReferences": {},
842
+ "deployedLinkReferences": {}
843
+ }