@layerzerolabs/lz-evm-oapp-v2 3.0.7 → 3.0.8

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.
@@ -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": "0x60c06040523480156200001157600080fd5b5060405162002d2f38038062002d2f83398101604081905262000034916200019f565b80338181818162000045816200014f565b6001600160a01b0380831660805281166200007357604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000bb57600080fd5b505af1158015620000d0573d6000803e3d6000fd5b50505050505050505050806001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000119573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013f9190620001d1565b63ffffffff1660a05250620001f9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620001b257600080fd5b81516001600160a01b0381168114620001ca57600080fd5b9392505050565b600060208284031215620001e457600080fd5b815163ffffffff81168114620001ca57600080fd5b60805160a051612adf620002506000396000818161021a0152610b3c015260008181610263015281816105b501528181610c1d01528181611250015281816113d00152818161162d01526117260152612adf6000f3fe6080604052600436106101615760003560e01c806382413eac116100bf578063ca5eb5e111610079578063f0a9e48111610056578063f0a9e481146104a8578063f2fde38b146104c8578063ff7bd03d146104e857005b8063ca5eb5e114610448578063e60c287c14610468578063eba1cf081461048857005b8063a798280f116100a7578063a798280f146103d7578063a7e0231f14610404578063bb0b6a531461041b57005b806382413eac1461037c5780638da5cb5b146103ac57005b8063416ecebf1161011b578063715018a6116100f8578063715018a6146102df57806373494d2e146102f45780637d25a05e1461034057005b8063416ecebf146102085780635e280f1114610251578063695a2fa8146102aa57005b806313137d651161014957806313137d65146101b357806317442b70146101c65780633400288b146101e857005b80630119024e1461016a57806306661abd1461019d57005b3661016857005b005b34801561017657600080fd5b5061018a610185366004611ce2565b610508565b6040519081526020015b60405180910390f35b3480156101a957600080fd5b5061018a60025481565b6101686101c1366004611d7e565b6105b3565b3480156101d257600080fd5b5060408051600181526002602082015201610194565b3480156101f457600080fd5b50610168610203366004611e37565b6106ad565b34801561021457600080fd5b5061023c7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610194565b34801561025d57600080fd5b506102857f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610194565b3480156102b657600080fd5b506102ca6102c53660046120d1565b6106c3565b60408051928352602083019190915201610194565b3480156102eb57600080fd5b50610168610731565b6103076103023660046120d1565b610745565b604080518251815260208084015167ffffffffffffffff1681830152928201518051928201929092529101516060820152608001610194565b34801561034c57600080fd5b5061036361035b366004611e37565b600092915050565b60405167ffffffffffffffff9091168152602001610194565b34801561038857600080fd5b5061039c61039736600461216f565b6107da565b6040519015158152602001610194565b3480156103b857600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610285565b3480156103e357600080fd5b506103f76103f23660046121d6565b6107fc565b60405161019491906122a3565b34801561041057600080fd5b506101686000600255565b34801561042757600080fd5b5061018a6104363660046122bd565b60016020526000908152604090205481565b34801561045457600080fd5b506101686104633660046122d8565b610bd0565b34801561047457600080fd5b506103f76104833660046122f5565b610c7c565b34801561049457600080fd5b506103f76104a3366004612361565b610d7e565b3480156104b457600080fd5b506101686104c33660046123fb565b610ed8565b3480156104d457600080fd5b506101686104e33660046122d8565b610ef6565b3480156104f457600080fd5b5061039c610503366004612432565b610fad565b60008160090361059f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c696420636f756e742061646460448201527f6974696f6e00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b816002546105ad919061247d565b92915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610624576040517f91ac5e4f000000000000000000000000000000000000000000000000000000008152336004820152602401610596565b6020870180359061063e90610639908a6122bd565b610fe3565b146106955761065060208801886122bd565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610596565b6106a487878787878787611038565b50505050505050565b6106b5611164565b6106bf82826111e5565b5050565b60008060006106d38888886107fc565b905060006107188a8388888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061123a915050565b8051602090910151909b909a5098505050505050505050565b610739611164565b6107436000611328565b565b61074d611c9a565b600061075a8787876107fc565b905060016002600082825461076f919061247d565b925050819055506107ce888286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080518082019091523481526020810191909152925033915061139d9050565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b60606000835111610869576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4c7a52656164436f756e7465723a20656d7074792072657175657374730000006044820152606401610596565b6000835167ffffffffffffffff81111561088557610885611e73565b60405190808252806020026020018201604052801561090c57816020015b6040805160e0810182526000808252602080830182905292820181905260608083018290526080830182905260a083019190915260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816108a35790505b50905060005b8451811015610a7657600085828151811061092f5761092f612490565b602002602001015190506040518060e00160405280826000015161ffff168152602001826020015163ffffffff168152602001826040015115158152602001826060015167ffffffffffffffff168152602001826080015161ffff1681526020018260a0015173ffffffffffffffffffffffffffffffffffffffff168152602001630119024e60e01b8360c001516040516024016109cf91815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290528351849084908110610a6257610a62612490565b602090810291909101015250600101610912565b508251600360ff9091161115610b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4c7a52656164436f756e7465723a20696e76616c696420636f6d70757465207460448201527f79706500000000000000000000000000000000000000000000000000000000006064820152608401610596565b60006040518060c00160405280856000015160ff168152602001600360ff16866000015160ff1614610b60577f0000000000000000000000000000000000000000000000000000000000000000610b63565b60005b63ffffffff168152602001856060015115158152602001856040015167ffffffffffffffff168152602001856020015161ffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681525090506000610bc58784846114aa565b979650505050505050565b610bd8611164565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610c6157600080fd5b505af1158015610c75573d6000803e3d6000fd5b5050505050565b606060208214610d0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e67746800000000000000000000000000000000000000000000000000006064820152608401610596565b6000610d1a86866114d6565b90506000610d2a84860186611ce2565b9050610d38826103e86124bf565b61ffff16610d4782606461247d565b610d51919061247d565b604051602001610d6391815260200190565b60405160208183030381529060405292505050949350505050565b60606000805b83811015610e8b57848482818110610d9e57610d9e612490565b9050602002810190610db091906124e5565b9050602014610e41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e67746800000000000000000000000000000000000000000000000000006064820152608401610596565b6000858583818110610e5557610e55612490565b9050602002810190610e6791906124e5565b810190610e749190611ce2565b9050610e80818461247d565b925050600101610d84565b50610e986127108261247d565b90506000610ea68787611570565b9050610eb961ffff8216620186a061254a565b610ec3908361247d565b915081604051602001610d6391815260200190565b610ee0611164565b6106bf8282610ef05760006111e5565b306111e5565b610efe611164565b73ffffffffffffffffffffffffffffffffffffffff8116610fa1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610596565b610faa81611328565b50565b6000602082018035906001908390610fc590866122bd565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff8116600090815260016020526040812054806105ad576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610596565b611043602085612561565b156110d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c6964206d657373616765206c60448201527f656e6774680000000000000000000000000000000000000000000000000000006064820152608401610596565b6000805b85811015611122578681876110ea82602061247d565b926110f79392919061259c565b8101906111049190611ce2565b61110e908361247d565b915061111b60208261247d565b90506110d4565b50700100000000000000000000000000000000600254106111435760006002555b8060026000828254611155919061247d565b90915550505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610596565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b60408051808201909152600080825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff1681526020016112aa89610fe3565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016112df9291906125c6565b6040805180830381865afa1580156112fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131f91906126b9565b95945050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6113a5611c9a565b60006113b484600001516115e8565b6020850151909150156113ce576113ce8460200151611629565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff16815260200161142b8c610fe3565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016114679291906125c6565b60806040518083038185885af1158015611485573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bc591906126d5565b606060006114b8858561174b565b9050826020015163ffffffff166000146107f45761131f81846117f3565b60008080848482816114ea576114ea612490565b919091013560f81c9150611501905060018361247d565b915060ff8116600114611540576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84828561154e82600261247d565b9261155b9392919061259c565b6115649161273d565b60f01c95945050505050565b6000808084818561158282600261247d565b9261158f9392919061259c565b6115989161273d565b60f01c90506115a860028361247d565b915061ffff8116600114611540576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000813414611625576040517f9f704120000000000000000000000000000000000000000000000000000000008152346004820152602401610596565b5090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ba9190612783565b905073ffffffffffffffffffffffffffffffffffffffff8116611709576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106bf73ffffffffffffffffffffffffffffffffffffffff8216337f000000000000000000000000000000000000000000000000000000000000000085611846565b6060600060018461175c85516118e1565b6040517fffff00000000000000000000000000000000000000000000000000000000000060f094851b8116602083015292841b83166022820152921b166024820152602601604051602081830303815290604052905060005b83518110156117eb576117e1828583815181106117d4576117d4612490565b6020026020010151611975565b91506001016117b5565b509392505050565b606082600180846000015185602001518660400151876060015188608001518960a0015160405160200161182f999897969594939291906127a0565b604051602081830303815290604052905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526118db908590611a25565b50505050565b600061ffff821115611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610596565b606060008360018460000151600161199d8760c00151516023611998919061247d565b6118e1565b6020808901516040516119b5979695949392016128f2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252908501516060860151608087015160a088015160c0890151949650611a0d958795906020016129ad565b60405160208183030381529060405291505092915050565b6000611a87826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611b399092919063ffffffff16565b9050805160001480611aa8575080806020019051810190611aa89190612a70565b611b34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610596565b505050565b60606107f48484600085856000808673ffffffffffffffffffffffffffffffffffffffff168587604051611b6d9190612a8d565b60006040518083038185875af1925050503d8060008114611baa576040519150601f19603f3d011682016040523d82523d6000602084013e611baf565b606091505b5091509150610bc58783838760608315611c51578251600003611c4a5773ffffffffffffffffffffffffffffffffffffffff85163b611c4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610596565b50816107f4565b6107f48383815115611c665781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059691906122a3565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001611cdd604051806040016040528060008152602001600081525090565b905290565b600060208284031215611cf457600080fd5b5035919050565b600060608284031215611d0d57600080fd5b50919050565b60008083601f840112611d2557600080fd5b50813567ffffffffffffffff811115611d3d57600080fd5b602083019150836020828501011115611d5557600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114610faa57600080fd5b600080600080600080600060e0888a031215611d9957600080fd5b611da38989611cfb565b965060608801359550608088013567ffffffffffffffff80821115611dc757600080fd5b611dd38b838c01611d13565b909750955060a08a01359150611de882611d5c565b90935060c08901359080821115611dfe57600080fd5b50611e0b8a828b01611d13565b989b979a50959850939692959293505050565b803563ffffffff81168114611e3257600080fd5b919050565b60008060408385031215611e4a57600080fd5b611e5383611e1e565b946020939093013593505050565b803561ffff81168114611e3257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715611ec557611ec5611e73565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611f1257611f12611e73565b604052919050565b8015158114610faa57600080fd5b67ffffffffffffffff81168114610faa57600080fd5b600082601f830112611f4f57600080fd5b8135602067ffffffffffffffff821115611f6b57611f6b611e73565b611f79818360051b01611ecb565b82815260e09283028501820192828201919087851115611f9857600080fd5b8387015b858110156120375781818a031215611fb45760008081fd5b611fbc611ea2565b611fc582611e61565b8152611fd2868301611e1e565b86820152604080830135611fe581611f1a565b90820152606082810135611ff881611f28565b908201526080612009838201611e61565b9082015260a08281013561201c81611d5c565b9082015260c082810135908201528452928401928101611f9c565b5090979650505050505050565b60006080828403121561205657600080fd5b6040516080810181811067ffffffffffffffff8211171561207957612079611e73565b604052905080823560ff8116811461209057600080fd5b815261209e60208401611e61565b602082015260408301356120b181611f28565b604082015260608301356120c481611f1a565b6060919091015292915050565b60008060008060008061010087890312156120eb57600080fd5b6120f487611e1e565b955061210260208801611e61565b9450604087013567ffffffffffffffff8082111561211f57600080fd5b61212b8a838b01611f3e565b955061213a8a60608b01612044565b945060e089013591508082111561215057600080fd5b5061215d89828a01611d13565b979a9699509497509295939492505050565b60008060008060a0858703121561218557600080fd5b61218f8686611cfb565b9350606085013567ffffffffffffffff8111156121ab57600080fd5b6121b787828801611d13565b90945092505060808501356121cb81611d5c565b939692955090935050565b600080600060c084860312156121eb57600080fd5b6121f484611e61565b9250602084013567ffffffffffffffff81111561221057600080fd5b61221c86828701611f3e565b92505061222c8560408601612044565b90509250925092565b60005b83811015612250578181015183820152602001612238565b50506000910152565b60008151808452612271816020860160208601612235565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006122b66020830184612259565b9392505050565b6000602082840312156122cf57600080fd5b6122b682611e1e565b6000602082840312156122ea57600080fd5b81356122b681611d5c565b6000806000806040858703121561230b57600080fd5b843567ffffffffffffffff8082111561232357600080fd5b61232f88838901611d13565b9096509450602087013591508082111561234857600080fd5b5061235587828801611d13565b95989497509550505050565b6000806000806040858703121561237757600080fd5b843567ffffffffffffffff8082111561238f57600080fd5b61239b88838901611d13565b909650945060208701359150808211156123b457600080fd5b818701915087601f8301126123c857600080fd5b8135818111156123d757600080fd5b8860208260051b85010111156123ec57600080fd5b95989497505060200194505050565b6000806040838503121561240e57600080fd5b61241783611e1e565b9150602083013561242781611f1a565b809150509250929050565b60006060828403121561244457600080fd5b6122b68383611cfb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156105ad576105ad61244e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b61ffff8181168382160280821691908281146124dd576124dd61244e565b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261251a57600080fd5b83018035915067ffffffffffffffff82111561253557600080fd5b602001915036819003821315611d5557600080fd5b80820281158282048414176105ad576105ad61244e565b600082612597577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b600080858511156125ac57600080fd5b838611156125b957600080fd5b5050820193919092039150565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526125fc60e0840182612259565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526126378282612259565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b60006040828403121561267c57600080fd5b6040516040810181811067ffffffffffffffff8211171561269f5761269f611e73565b604052825181526020928301519281019290925250919050565b6000604082840312156126cb57600080fd5b6122b6838361266a565b6000608082840312156126e757600080fd5b6040516060810181811067ffffffffffffffff8211171561270a5761270a611e73565b60405282518152602083015161271f81611f28565b6020820152612731846040850161266a565b60408201529392505050565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156124dd5760029490940360031b84901b1690921692915050565b60006020828403121561279557600080fd5b81516122b681611d5c565b60008a516127b2818460208f01612235565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008b60f01b166001830152808a60f81b166003830152507fffffffff000000000000000000000000000000000000000000000000000000008860e01b16600482015286151560f81b600882015261287e600982018760c01b7fffffffffffffffff000000000000000000000000000000000000000000000000169052565b6128af601182018660f01b7fffff000000000000000000000000000000000000000000000000000000000000169052565b6128e0601382018560601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b6027019b9a5050505050505050505050565b60008751612904818460208c01612235565b60f89790971b7fff00000000000000000000000000000000000000000000000000000000000000169190960190815260f094851b7fffff000000000000000000000000000000000000000000000000000000000000908116600183015293851b841660038201529190931b909116600582015260e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166007820152600b0192915050565b600087516129bf818460208c01612235565b808301905087151560f81b81527fffffffffffffffff0000000000000000000000000000000000000000000000008760c01b1660018201527fffff0000000000000000000000000000000000000000000000000000000000008660f01b1660098201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16600b8201528351612a6081601f840160208801612235565b01601f0198975050505050505050565b600060208284031215612a8257600080fd5b81516122b681611f1a565b60008251612a9f818460208701612235565b919091019291505056fea264697066735822122010a919c5b1e07edadc2a563d83e85f14afabf17ccadcbbae2d3e0cb5495175b664736f6c63430008160033",
840
+ "deployedBytecode": "0x6080604052600436106101615760003560e01c806382413eac116100bf578063ca5eb5e111610079578063f0a9e48111610056578063f0a9e481146104a8578063f2fde38b146104c8578063ff7bd03d146104e857005b8063ca5eb5e114610448578063e60c287c14610468578063eba1cf081461048857005b8063a798280f116100a7578063a798280f146103d7578063a7e0231f14610404578063bb0b6a531461041b57005b806382413eac1461037c5780638da5cb5b146103ac57005b8063416ecebf1161011b578063715018a6116100f8578063715018a6146102df57806373494d2e146102f45780637d25a05e1461034057005b8063416ecebf146102085780635e280f1114610251578063695a2fa8146102aa57005b806313137d651161014957806313137d65146101b357806317442b70146101c65780633400288b146101e857005b80630119024e1461016a57806306661abd1461019d57005b3661016857005b005b34801561017657600080fd5b5061018a610185366004611ce2565b610508565b6040519081526020015b60405180910390f35b3480156101a957600080fd5b5061018a60025481565b6101686101c1366004611d7e565b6105b3565b3480156101d257600080fd5b5060408051600181526002602082015201610194565b3480156101f457600080fd5b50610168610203366004611e37565b6106ad565b34801561021457600080fd5b5061023c7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610194565b34801561025d57600080fd5b506102857f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610194565b3480156102b657600080fd5b506102ca6102c53660046120d1565b6106c3565b60408051928352602083019190915201610194565b3480156102eb57600080fd5b50610168610731565b6103076103023660046120d1565b610745565b604080518251815260208084015167ffffffffffffffff1681830152928201518051928201929092529101516060820152608001610194565b34801561034c57600080fd5b5061036361035b366004611e37565b600092915050565b60405167ffffffffffffffff9091168152602001610194565b34801561038857600080fd5b5061039c61039736600461216f565b6107da565b6040519015158152602001610194565b3480156103b857600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610285565b3480156103e357600080fd5b506103f76103f23660046121d6565b6107fc565b60405161019491906122a3565b34801561041057600080fd5b506101686000600255565b34801561042757600080fd5b5061018a6104363660046122bd565b60016020526000908152604090205481565b34801561045457600080fd5b506101686104633660046122d8565b610bd0565b34801561047457600080fd5b506103f76104833660046122f5565b610c7c565b34801561049457600080fd5b506103f76104a3366004612361565b610d7e565b3480156104b457600080fd5b506101686104c33660046123fb565b610ed8565b3480156104d457600080fd5b506101686104e33660046122d8565b610ef6565b3480156104f457600080fd5b5061039c610503366004612432565b610fad565b60008160090361059f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c696420636f756e742061646460448201527f6974696f6e00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b816002546105ad919061247d565b92915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610624576040517f91ac5e4f000000000000000000000000000000000000000000000000000000008152336004820152602401610596565b6020870180359061063e90610639908a6122bd565b610fe3565b146106955761065060208801886122bd565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610596565b6106a487878787878787611038565b50505050505050565b6106b5611164565b6106bf82826111e5565b5050565b60008060006106d38888886107fc565b905060006107188a8388888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061123a915050565b8051602090910151909b909a5098505050505050505050565b610739611164565b6107436000611328565b565b61074d611c9a565b600061075a8787876107fc565b905060016002600082825461076f919061247d565b925050819055506107ce888286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080518082019091523481526020810191909152925033915061139d9050565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b60606000835111610869576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4c7a52656164436f756e7465723a20656d7074792072657175657374730000006044820152606401610596565b6000835167ffffffffffffffff81111561088557610885611e73565b60405190808252806020026020018201604052801561090c57816020015b6040805160e0810182526000808252602080830182905292820181905260608083018290526080830182905260a083019190915260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816108a35790505b50905060005b8451811015610a7657600085828151811061092f5761092f612490565b602002602001015190506040518060e00160405280826000015161ffff168152602001826020015163ffffffff168152602001826040015115158152602001826060015167ffffffffffffffff168152602001826080015161ffff1681526020018260a0015173ffffffffffffffffffffffffffffffffffffffff168152602001630119024e60e01b8360c001516040516024016109cf91815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290528351849084908110610a6257610a62612490565b602090810291909101015250600101610912565b508251600360ff9091161115610b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4c7a52656164436f756e7465723a20696e76616c696420636f6d70757465207460448201527f79706500000000000000000000000000000000000000000000000000000000006064820152608401610596565b60006040518060c00160405280856000015160ff168152602001600360ff16866000015160ff1614610b60577f0000000000000000000000000000000000000000000000000000000000000000610b63565b60005b63ffffffff168152602001856060015115158152602001856040015167ffffffffffffffff168152602001856020015161ffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681525090506000610bc58784846114aa565b979650505050505050565b610bd8611164565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610c6157600080fd5b505af1158015610c75573d6000803e3d6000fd5b5050505050565b606060208214610d0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e67746800000000000000000000000000000000000000000000000000006064820152608401610596565b6000610d1a86866114d6565b90506000610d2a84860186611ce2565b9050610d38826103e86124bf565b61ffff16610d4782606461247d565b610d51919061247d565b604051602001610d6391815260200190565b60405160208183030381529060405292505050949350505050565b60606000805b83811015610e8b57848482818110610d9e57610d9e612490565b9050602002810190610db091906124e5565b9050602014610e41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e67746800000000000000000000000000000000000000000000000000006064820152608401610596565b6000858583818110610e5557610e55612490565b9050602002810190610e6791906124e5565b810190610e749190611ce2565b9050610e80818461247d565b925050600101610d84565b50610e986127108261247d565b90506000610ea68787611570565b9050610eb961ffff8216620186a061254a565b610ec3908361247d565b915081604051602001610d6391815260200190565b610ee0611164565b6106bf8282610ef05760006111e5565b306111e5565b610efe611164565b73ffffffffffffffffffffffffffffffffffffffff8116610fa1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610596565b610faa81611328565b50565b6000602082018035906001908390610fc590866122bd565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff8116600090815260016020526040812054806105ad576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610596565b611043602085612561565b156110d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c6964206d657373616765206c60448201527f656e6774680000000000000000000000000000000000000000000000000000006064820152608401610596565b6000805b85811015611122578681876110ea82602061247d565b926110f79392919061259c565b8101906111049190611ce2565b61110e908361247d565b915061111b60208261247d565b90506110d4565b50700100000000000000000000000000000000600254106111435760006002555b8060026000828254611155919061247d565b90915550505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610596565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b60408051808201909152600080825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff1681526020016112aa89610fe3565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016112df9291906125c6565b6040805180830381865afa1580156112fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131f91906126b9565b95945050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6113a5611c9a565b60006113b484600001516115e8565b6020850151909150156113ce576113ce8460200151611629565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff16815260200161142b8c610fe3565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016114679291906125c6565b60806040518083038185885af1158015611485573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bc591906126d5565b606060006114b8858561174b565b9050826020015163ffffffff166000146107f45761131f81846117f3565b60008080848482816114ea576114ea612490565b919091013560f81c9150611501905060018361247d565b915060ff8116600114611540576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84828561154e82600261247d565b9261155b9392919061259c565b6115649161273d565b60f01c95945050505050565b6000808084818561158282600261247d565b9261158f9392919061259c565b6115989161273d565b60f01c90506115a860028361247d565b915061ffff8116600114611540576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000813414611625576040517f9f704120000000000000000000000000000000000000000000000000000000008152346004820152602401610596565b5090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ba9190612783565b905073ffffffffffffffffffffffffffffffffffffffff8116611709576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106bf73ffffffffffffffffffffffffffffffffffffffff8216337f000000000000000000000000000000000000000000000000000000000000000085611846565b6060600060018461175c85516118e1565b6040517fffff00000000000000000000000000000000000000000000000000000000000060f094851b8116602083015292841b83166022820152921b166024820152602601604051602081830303815290604052905060005b83518110156117eb576117e1828583815181106117d4576117d4612490565b6020026020010151611975565b91506001016117b5565b509392505050565b606082600180846000015185602001518660400151876060015188608001518960a0015160405160200161182f999897969594939291906127a0565b604051602081830303815290604052905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526118db908590611a25565b50505050565b600061ffff821115611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610596565b606060008360018460000151600161199d8760c00151516023611998919061247d565b6118e1565b6020808901516040516119b5979695949392016128f2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252908501516060860151608087015160a088015160c0890151949650611a0d958795906020016129ad565b60405160208183030381529060405291505092915050565b6000611a87826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611b399092919063ffffffff16565b9050805160001480611aa8575080806020019051810190611aa89190612a70565b611b34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610596565b505050565b60606107f48484600085856000808673ffffffffffffffffffffffffffffffffffffffff168587604051611b6d9190612a8d565b60006040518083038185875af1925050503d8060008114611baa576040519150601f19603f3d011682016040523d82523d6000602084013e611baf565b606091505b5091509150610bc58783838760608315611c51578251600003611c4a5773ffffffffffffffffffffffffffffffffffffffff85163b611c4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610596565b50816107f4565b6107f48383815115611c665781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059691906122a3565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001611cdd604051806040016040528060008152602001600081525090565b905290565b600060208284031215611cf457600080fd5b5035919050565b600060608284031215611d0d57600080fd5b50919050565b60008083601f840112611d2557600080fd5b50813567ffffffffffffffff811115611d3d57600080fd5b602083019150836020828501011115611d5557600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114610faa57600080fd5b600080600080600080600060e0888a031215611d9957600080fd5b611da38989611cfb565b965060608801359550608088013567ffffffffffffffff80821115611dc757600080fd5b611dd38b838c01611d13565b909750955060a08a01359150611de882611d5c565b90935060c08901359080821115611dfe57600080fd5b50611e0b8a828b01611d13565b989b979a50959850939692959293505050565b803563ffffffff81168114611e3257600080fd5b919050565b60008060408385031215611e4a57600080fd5b611e5383611e1e565b946020939093013593505050565b803561ffff81168114611e3257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715611ec557611ec5611e73565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611f1257611f12611e73565b604052919050565b8015158114610faa57600080fd5b67ffffffffffffffff81168114610faa57600080fd5b600082601f830112611f4f57600080fd5b8135602067ffffffffffffffff821115611f6b57611f6b611e73565b611f79818360051b01611ecb565b82815260e09283028501820192828201919087851115611f9857600080fd5b8387015b858110156120375781818a031215611fb45760008081fd5b611fbc611ea2565b611fc582611e61565b8152611fd2868301611e1e565b86820152604080830135611fe581611f1a565b90820152606082810135611ff881611f28565b908201526080612009838201611e61565b9082015260a08281013561201c81611d5c565b9082015260c082810135908201528452928401928101611f9c565b5090979650505050505050565b60006080828403121561205657600080fd5b6040516080810181811067ffffffffffffffff8211171561207957612079611e73565b604052905080823560ff8116811461209057600080fd5b815261209e60208401611e61565b602082015260408301356120b181611f28565b604082015260608301356120c481611f1a565b6060919091015292915050565b60008060008060008061010087890312156120eb57600080fd5b6120f487611e1e565b955061210260208801611e61565b9450604087013567ffffffffffffffff8082111561211f57600080fd5b61212b8a838b01611f3e565b955061213a8a60608b01612044565b945060e089013591508082111561215057600080fd5b5061215d89828a01611d13565b979a9699509497509295939492505050565b60008060008060a0858703121561218557600080fd5b61218f8686611cfb565b9350606085013567ffffffffffffffff8111156121ab57600080fd5b6121b787828801611d13565b90945092505060808501356121cb81611d5c565b939692955090935050565b600080600060c084860312156121eb57600080fd5b6121f484611e61565b9250602084013567ffffffffffffffff81111561221057600080fd5b61221c86828701611f3e565b92505061222c8560408601612044565b90509250925092565b60005b83811015612250578181015183820152602001612238565b50506000910152565b60008151808452612271816020860160208601612235565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006122b66020830184612259565b9392505050565b6000602082840312156122cf57600080fd5b6122b682611e1e565b6000602082840312156122ea57600080fd5b81356122b681611d5c565b6000806000806040858703121561230b57600080fd5b843567ffffffffffffffff8082111561232357600080fd5b61232f88838901611d13565b9096509450602087013591508082111561234857600080fd5b5061235587828801611d13565b95989497509550505050565b6000806000806040858703121561237757600080fd5b843567ffffffffffffffff8082111561238f57600080fd5b61239b88838901611d13565b909650945060208701359150808211156123b457600080fd5b818701915087601f8301126123c857600080fd5b8135818111156123d757600080fd5b8860208260051b85010111156123ec57600080fd5b95989497505060200194505050565b6000806040838503121561240e57600080fd5b61241783611e1e565b9150602083013561242781611f1a565b809150509250929050565b60006060828403121561244457600080fd5b6122b68383611cfb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156105ad576105ad61244e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b61ffff8181168382160280821691908281146124dd576124dd61244e565b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261251a57600080fd5b83018035915067ffffffffffffffff82111561253557600080fd5b602001915036819003821315611d5557600080fd5b80820281158282048414176105ad576105ad61244e565b600082612597577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b600080858511156125ac57600080fd5b838611156125b957600080fd5b5050820193919092039150565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526125fc60e0840182612259565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526126378282612259565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b60006040828403121561267c57600080fd5b6040516040810181811067ffffffffffffffff8211171561269f5761269f611e73565b604052825181526020928301519281019290925250919050565b6000604082840312156126cb57600080fd5b6122b6838361266a565b6000608082840312156126e757600080fd5b6040516060810181811067ffffffffffffffff8211171561270a5761270a611e73565b60405282518152602083015161271f81611f28565b6020820152612731846040850161266a565b60408201529392505050565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156124dd5760029490940360031b84901b1690921692915050565b60006020828403121561279557600080fd5b81516122b681611d5c565b60008a516127b2818460208f01612235565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008b60f01b166001830152808a60f81b166003830152507fffffffff000000000000000000000000000000000000000000000000000000008860e01b16600482015286151560f81b600882015261287e600982018760c01b7fffffffffffffffff000000000000000000000000000000000000000000000000169052565b6128af601182018660f01b7fffff000000000000000000000000000000000000000000000000000000000000169052565b6128e0601382018560601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b6027019b9a5050505050505050505050565b60008751612904818460208c01612235565b60f89790971b7fff00000000000000000000000000000000000000000000000000000000000000169190960190815260f094851b7fffff000000000000000000000000000000000000000000000000000000000000908116600183015293851b841660038201529190931b909116600582015260e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166007820152600b0192915050565b600087516129bf818460208c01612235565b808301905087151560f81b81527fffffffffffffffff0000000000000000000000000000000000000000000000008760c01b1660018201527fffff0000000000000000000000000000000000000000000000000000000000008660f01b1660098201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16600b8201528351612a6081601f840160208801612235565b01601f0198975050505050505050565b600060208284031215612a8257600080fd5b81516122b681611f1a565b60008251612a9f818460208701612235565b919091019291505056fea264697066735822122010a919c5b1e07edadc2a563d83e85f14afabf17ccadcbbae2d3e0cb5495175b664736f6c63430008160033",
841
+ "linkReferences": {},
842
+ "deployedLinkReferences": {}
843
+ }