@cofhe/mock-contracts 0.0.0-alpha-20260409113701

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,1211 @@
1
+ // This file is auto-generated by build-artifacts.ts
2
+ import { type MockArtifact } from './types';
3
+
4
+ export const MockTaskManagerArtifact = {
5
+ contractName: 'MockTaskManager',
6
+ isFixed: true,
7
+ fixedAddress: '0xeA30c4B8b44078Bbf8a6ef5b9f1eC1626C7848D9',
8
+ abi: [
9
+ {
10
+ type: 'constructor',
11
+ inputs: [],
12
+ stateMutability: 'nonpayable',
13
+ },
14
+ {
15
+ type: 'function',
16
+ name: 'MOCK_logAllow',
17
+ inputs: [
18
+ {
19
+ name: 'operation',
20
+ type: 'string',
21
+ internalType: 'string',
22
+ },
23
+ {
24
+ name: 'ctHash',
25
+ type: 'uint256',
26
+ internalType: 'uint256',
27
+ },
28
+ {
29
+ name: 'account',
30
+ type: 'address',
31
+ internalType: 'address',
32
+ },
33
+ ],
34
+ outputs: [],
35
+ stateMutability: 'view',
36
+ },
37
+ {
38
+ type: 'function',
39
+ name: 'MOCK_setInEuintKey',
40
+ inputs: [
41
+ {
42
+ name: 'ctHash',
43
+ type: 'uint256',
44
+ internalType: 'uint256',
45
+ },
46
+ {
47
+ name: 'value',
48
+ type: 'uint256',
49
+ internalType: 'uint256',
50
+ },
51
+ ],
52
+ outputs: [],
53
+ stateMutability: 'nonpayable',
54
+ },
55
+ {
56
+ type: 'function',
57
+ name: 'acl',
58
+ inputs: [],
59
+ outputs: [
60
+ {
61
+ name: '',
62
+ type: 'address',
63
+ internalType: 'contract MockACL',
64
+ },
65
+ ],
66
+ stateMutability: 'view',
67
+ },
68
+ {
69
+ type: 'function',
70
+ name: 'aggregator',
71
+ inputs: [],
72
+ outputs: [
73
+ {
74
+ name: '',
75
+ type: 'address',
76
+ internalType: 'address',
77
+ },
78
+ ],
79
+ stateMutability: 'view',
80
+ },
81
+ {
82
+ type: 'function',
83
+ name: 'allow',
84
+ inputs: [
85
+ {
86
+ name: 'ctHash',
87
+ type: 'uint256',
88
+ internalType: 'uint256',
89
+ },
90
+ {
91
+ name: 'account',
92
+ type: 'address',
93
+ internalType: 'address',
94
+ },
95
+ ],
96
+ outputs: [],
97
+ stateMutability: 'nonpayable',
98
+ },
99
+ {
100
+ type: 'function',
101
+ name: 'allowForDecryption',
102
+ inputs: [
103
+ {
104
+ name: 'ctHash',
105
+ type: 'uint256',
106
+ internalType: 'uint256',
107
+ },
108
+ ],
109
+ outputs: [],
110
+ stateMutability: 'nonpayable',
111
+ },
112
+ {
113
+ type: 'function',
114
+ name: 'allowGlobal',
115
+ inputs: [
116
+ {
117
+ name: 'ctHash',
118
+ type: 'uint256',
119
+ internalType: 'uint256',
120
+ },
121
+ ],
122
+ outputs: [],
123
+ stateMutability: 'nonpayable',
124
+ },
125
+ {
126
+ type: 'function',
127
+ name: 'allowTransient',
128
+ inputs: [
129
+ {
130
+ name: 'ctHash',
131
+ type: 'uint256',
132
+ internalType: 'uint256',
133
+ },
134
+ {
135
+ name: 'account',
136
+ type: 'address',
137
+ internalType: 'address',
138
+ },
139
+ ],
140
+ outputs: [],
141
+ stateMutability: 'nonpayable',
142
+ },
143
+ {
144
+ type: 'function',
145
+ name: 'createDecryptTask',
146
+ inputs: [
147
+ {
148
+ name: 'ctHash',
149
+ type: 'uint256',
150
+ internalType: 'uint256',
151
+ },
152
+ {
153
+ name: '',
154
+ type: 'address',
155
+ internalType: 'address',
156
+ },
157
+ ],
158
+ outputs: [],
159
+ stateMutability: 'nonpayable',
160
+ },
161
+ {
162
+ type: 'function',
163
+ name: 'createRandomTask',
164
+ inputs: [
165
+ {
166
+ name: 'returnType',
167
+ type: 'uint8',
168
+ internalType: 'uint8',
169
+ },
170
+ {
171
+ name: 'seed',
172
+ type: 'uint256',
173
+ internalType: 'uint256',
174
+ },
175
+ {
176
+ name: 'securityZone',
177
+ type: 'int32',
178
+ internalType: 'int32',
179
+ },
180
+ ],
181
+ outputs: [
182
+ {
183
+ name: '',
184
+ type: 'uint256',
185
+ internalType: 'uint256',
186
+ },
187
+ ],
188
+ stateMutability: 'nonpayable',
189
+ },
190
+ {
191
+ type: 'function',
192
+ name: 'createTask',
193
+ inputs: [
194
+ {
195
+ name: 'returnType',
196
+ type: 'uint8',
197
+ internalType: 'uint8',
198
+ },
199
+ {
200
+ name: 'funcId',
201
+ type: 'uint8',
202
+ internalType: 'enum FunctionId',
203
+ },
204
+ {
205
+ name: 'encryptedHashes',
206
+ type: 'uint256[]',
207
+ internalType: 'uint256[]',
208
+ },
209
+ {
210
+ name: 'extraInputs',
211
+ type: 'uint256[]',
212
+ internalType: 'uint256[]',
213
+ },
214
+ ],
215
+ outputs: [
216
+ {
217
+ name: '',
218
+ type: 'uint256',
219
+ internalType: 'uint256',
220
+ },
221
+ ],
222
+ stateMutability: 'nonpayable',
223
+ },
224
+ {
225
+ type: 'function',
226
+ name: 'decryptResultSigner',
227
+ inputs: [],
228
+ outputs: [
229
+ {
230
+ name: '',
231
+ type: 'address',
232
+ internalType: 'address',
233
+ },
234
+ ],
235
+ stateMutability: 'view',
236
+ },
237
+ {
238
+ type: 'function',
239
+ name: 'exists',
240
+ inputs: [],
241
+ outputs: [
242
+ {
243
+ name: '',
244
+ type: 'bool',
245
+ internalType: 'bool',
246
+ },
247
+ ],
248
+ stateMutability: 'pure',
249
+ },
250
+ {
251
+ type: 'function',
252
+ name: 'getDecryptResult',
253
+ inputs: [
254
+ {
255
+ name: 'ctHash',
256
+ type: 'uint256',
257
+ internalType: 'uint256',
258
+ },
259
+ ],
260
+ outputs: [
261
+ {
262
+ name: '',
263
+ type: 'uint256',
264
+ internalType: 'uint256',
265
+ },
266
+ ],
267
+ stateMutability: 'view',
268
+ },
269
+ {
270
+ type: 'function',
271
+ name: 'getDecryptResultSafe',
272
+ inputs: [
273
+ {
274
+ name: 'ctHash',
275
+ type: 'uint256',
276
+ internalType: 'uint256',
277
+ },
278
+ ],
279
+ outputs: [
280
+ {
281
+ name: 'result',
282
+ type: 'uint256',
283
+ internalType: 'uint256',
284
+ },
285
+ {
286
+ name: 'decrypted',
287
+ type: 'bool',
288
+ internalType: 'bool',
289
+ },
290
+ ],
291
+ stateMutability: 'view',
292
+ },
293
+ {
294
+ type: 'function',
295
+ name: 'handleDecryptResult',
296
+ inputs: [
297
+ {
298
+ name: 'ctHash',
299
+ type: 'uint256',
300
+ internalType: 'uint256',
301
+ },
302
+ {
303
+ name: 'result',
304
+ type: 'uint256',
305
+ internalType: 'uint256',
306
+ },
307
+ {
308
+ name: '',
309
+ type: 'address[]',
310
+ internalType: 'address[]',
311
+ },
312
+ ],
313
+ outputs: [],
314
+ stateMutability: 'nonpayable',
315
+ },
316
+ {
317
+ type: 'function',
318
+ name: 'handleError',
319
+ inputs: [
320
+ {
321
+ name: 'ctHash',
322
+ type: 'uint256',
323
+ internalType: 'uint256',
324
+ },
325
+ {
326
+ name: 'operation',
327
+ type: 'string',
328
+ internalType: 'string',
329
+ },
330
+ {
331
+ name: 'errorMessage',
332
+ type: 'string',
333
+ internalType: 'string',
334
+ },
335
+ ],
336
+ outputs: [],
337
+ stateMutability: 'nonpayable',
338
+ },
339
+ {
340
+ type: 'function',
341
+ name: 'inMockStorage',
342
+ inputs: [
343
+ {
344
+ name: '',
345
+ type: 'uint256',
346
+ internalType: 'uint256',
347
+ },
348
+ ],
349
+ outputs: [
350
+ {
351
+ name: '',
352
+ type: 'bool',
353
+ internalType: 'bool',
354
+ },
355
+ ],
356
+ stateMutability: 'view',
357
+ },
358
+ {
359
+ type: 'function',
360
+ name: 'initialize',
361
+ inputs: [
362
+ {
363
+ name: 'initialOwner',
364
+ type: 'address',
365
+ internalType: 'address',
366
+ },
367
+ ],
368
+ outputs: [],
369
+ stateMutability: 'nonpayable',
370
+ },
371
+ {
372
+ type: 'function',
373
+ name: 'isAllowed',
374
+ inputs: [
375
+ {
376
+ name: 'ctHash',
377
+ type: 'uint256',
378
+ internalType: 'uint256',
379
+ },
380
+ {
381
+ name: 'account',
382
+ type: 'address',
383
+ internalType: 'address',
384
+ },
385
+ ],
386
+ outputs: [
387
+ {
388
+ name: '',
389
+ type: 'bool',
390
+ internalType: 'bool',
391
+ },
392
+ ],
393
+ stateMutability: 'view',
394
+ },
395
+ {
396
+ type: 'function',
397
+ name: 'isAllowedWithPermission',
398
+ inputs: [
399
+ {
400
+ name: 'permission',
401
+ type: 'tuple',
402
+ internalType: 'struct Permission',
403
+ components: [
404
+ {
405
+ name: 'issuer',
406
+ type: 'address',
407
+ internalType: 'address',
408
+ },
409
+ {
410
+ name: 'expiration',
411
+ type: 'uint64',
412
+ internalType: 'uint64',
413
+ },
414
+ {
415
+ name: 'recipient',
416
+ type: 'address',
417
+ internalType: 'address',
418
+ },
419
+ {
420
+ name: 'validatorId',
421
+ type: 'uint256',
422
+ internalType: 'uint256',
423
+ },
424
+ {
425
+ name: 'validatorContract',
426
+ type: 'address',
427
+ internalType: 'address',
428
+ },
429
+ {
430
+ name: 'sealingKey',
431
+ type: 'bytes32',
432
+ internalType: 'bytes32',
433
+ },
434
+ {
435
+ name: 'issuerSignature',
436
+ type: 'bytes',
437
+ internalType: 'bytes',
438
+ },
439
+ {
440
+ name: 'recipientSignature',
441
+ type: 'bytes',
442
+ internalType: 'bytes',
443
+ },
444
+ ],
445
+ },
446
+ {
447
+ name: 'handle',
448
+ type: 'uint256',
449
+ internalType: 'uint256',
450
+ },
451
+ ],
452
+ outputs: [
453
+ {
454
+ name: '',
455
+ type: 'bool',
456
+ internalType: 'bool',
457
+ },
458
+ ],
459
+ stateMutability: 'view',
460
+ },
461
+ {
462
+ type: 'function',
463
+ name: 'isInitialized',
464
+ inputs: [],
465
+ outputs: [
466
+ {
467
+ name: '',
468
+ type: 'bool',
469
+ internalType: 'bool',
470
+ },
471
+ ],
472
+ stateMutability: 'view',
473
+ },
474
+ {
475
+ type: 'function',
476
+ name: 'isPubliclyAllowed',
477
+ inputs: [
478
+ {
479
+ name: 'ctHash',
480
+ type: 'uint256',
481
+ internalType: 'uint256',
482
+ },
483
+ ],
484
+ outputs: [
485
+ {
486
+ name: '',
487
+ type: 'bool',
488
+ internalType: 'bool',
489
+ },
490
+ ],
491
+ stateMutability: 'view',
492
+ },
493
+ {
494
+ type: 'function',
495
+ name: 'logOps',
496
+ inputs: [],
497
+ outputs: [
498
+ {
499
+ name: '',
500
+ type: 'bool',
501
+ internalType: 'bool',
502
+ },
503
+ ],
504
+ stateMutability: 'view',
505
+ },
506
+ {
507
+ type: 'function',
508
+ name: 'mockStorage',
509
+ inputs: [
510
+ {
511
+ name: '',
512
+ type: 'uint256',
513
+ internalType: 'uint256',
514
+ },
515
+ ],
516
+ outputs: [
517
+ {
518
+ name: '',
519
+ type: 'uint256',
520
+ internalType: 'uint256',
521
+ },
522
+ ],
523
+ stateMutability: 'view',
524
+ },
525
+ {
526
+ type: 'function',
527
+ name: 'publishDecryptResult',
528
+ inputs: [
529
+ {
530
+ name: 'ctHash',
531
+ type: 'uint256',
532
+ internalType: 'uint256',
533
+ },
534
+ {
535
+ name: 'result',
536
+ type: 'uint256',
537
+ internalType: 'uint256',
538
+ },
539
+ {
540
+ name: 'signature',
541
+ type: 'bytes',
542
+ internalType: 'bytes',
543
+ },
544
+ ],
545
+ outputs: [],
546
+ stateMutability: 'nonpayable',
547
+ },
548
+ {
549
+ type: 'function',
550
+ name: 'publishDecryptResultBatch',
551
+ inputs: [
552
+ {
553
+ name: 'ctHashes',
554
+ type: 'uint256[]',
555
+ internalType: 'uint256[]',
556
+ },
557
+ {
558
+ name: 'results',
559
+ type: 'uint256[]',
560
+ internalType: 'uint256[]',
561
+ },
562
+ {
563
+ name: 'signatures',
564
+ type: 'bytes[]',
565
+ internalType: 'bytes[]',
566
+ },
567
+ ],
568
+ outputs: [],
569
+ stateMutability: 'nonpayable',
570
+ },
571
+ {
572
+ type: 'function',
573
+ name: 'removeFirstLetter',
574
+ inputs: [
575
+ {
576
+ name: 'str',
577
+ type: 'string',
578
+ internalType: 'string',
579
+ },
580
+ ],
581
+ outputs: [
582
+ {
583
+ name: '',
584
+ type: 'string',
585
+ internalType: 'string',
586
+ },
587
+ ],
588
+ stateMutability: 'pure',
589
+ },
590
+ {
591
+ type: 'function',
592
+ name: 'setACLContract',
593
+ inputs: [
594
+ {
595
+ name: '_aclAddress',
596
+ type: 'address',
597
+ internalType: 'address',
598
+ },
599
+ ],
600
+ outputs: [],
601
+ stateMutability: 'nonpayable',
602
+ },
603
+ {
604
+ type: 'function',
605
+ name: 'setAggregator',
606
+ inputs: [
607
+ {
608
+ name: '_aggregatorAddress',
609
+ type: 'address',
610
+ internalType: 'address',
611
+ },
612
+ ],
613
+ outputs: [],
614
+ stateMutability: 'nonpayable',
615
+ },
616
+ {
617
+ type: 'function',
618
+ name: 'setDecryptResultSigner',
619
+ inputs: [
620
+ {
621
+ name: 'signer',
622
+ type: 'address',
623
+ internalType: 'address',
624
+ },
625
+ ],
626
+ outputs: [],
627
+ stateMutability: 'nonpayable',
628
+ },
629
+ {
630
+ type: 'function',
631
+ name: 'setLogOps',
632
+ inputs: [
633
+ {
634
+ name: '_logOps',
635
+ type: 'bool',
636
+ internalType: 'bool',
637
+ },
638
+ ],
639
+ outputs: [],
640
+ stateMutability: 'nonpayable',
641
+ },
642
+ {
643
+ type: 'function',
644
+ name: 'setSecurityZoneMax',
645
+ inputs: [
646
+ {
647
+ name: 'securityZone',
648
+ type: 'int32',
649
+ internalType: 'int32',
650
+ },
651
+ ],
652
+ outputs: [],
653
+ stateMutability: 'nonpayable',
654
+ },
655
+ {
656
+ type: 'function',
657
+ name: 'setSecurityZoneMin',
658
+ inputs: [
659
+ {
660
+ name: 'securityZone',
661
+ type: 'int32',
662
+ internalType: 'int32',
663
+ },
664
+ ],
665
+ outputs: [],
666
+ stateMutability: 'nonpayable',
667
+ },
668
+ {
669
+ type: 'function',
670
+ name: 'setSecurityZones',
671
+ inputs: [
672
+ {
673
+ name: 'minSZ',
674
+ type: 'int32',
675
+ internalType: 'int32',
676
+ },
677
+ {
678
+ name: 'maxSZ',
679
+ type: 'int32',
680
+ internalType: 'int32',
681
+ },
682
+ ],
683
+ outputs: [],
684
+ stateMutability: 'nonpayable',
685
+ },
686
+ {
687
+ type: 'function',
688
+ name: 'setVerifierSigner',
689
+ inputs: [
690
+ {
691
+ name: 'signer',
692
+ type: 'address',
693
+ internalType: 'address',
694
+ },
695
+ ],
696
+ outputs: [],
697
+ stateMutability: 'nonpayable',
698
+ },
699
+ {
700
+ type: 'function',
701
+ name: 'sliceString',
702
+ inputs: [
703
+ {
704
+ name: 'str',
705
+ type: 'string',
706
+ internalType: 'string',
707
+ },
708
+ {
709
+ name: 'start',
710
+ type: 'uint256',
711
+ internalType: 'uint256',
712
+ },
713
+ {
714
+ name: 'length',
715
+ type: 'uint256',
716
+ internalType: 'uint256',
717
+ },
718
+ ],
719
+ outputs: [
720
+ {
721
+ name: '',
722
+ type: 'string',
723
+ internalType: 'string',
724
+ },
725
+ ],
726
+ stateMutability: 'pure',
727
+ },
728
+ {
729
+ type: 'function',
730
+ name: 'verifyDecryptResult',
731
+ inputs: [
732
+ {
733
+ name: 'ctHash',
734
+ type: 'uint256',
735
+ internalType: 'uint256',
736
+ },
737
+ {
738
+ name: 'result',
739
+ type: 'uint256',
740
+ internalType: 'uint256',
741
+ },
742
+ {
743
+ name: 'signature',
744
+ type: 'bytes',
745
+ internalType: 'bytes',
746
+ },
747
+ ],
748
+ outputs: [
749
+ {
750
+ name: '',
751
+ type: 'bool',
752
+ internalType: 'bool',
753
+ },
754
+ ],
755
+ stateMutability: 'view',
756
+ },
757
+ {
758
+ type: 'function',
759
+ name: 'verifyDecryptResultSafe',
760
+ inputs: [
761
+ {
762
+ name: 'ctHash',
763
+ type: 'uint256',
764
+ internalType: 'uint256',
765
+ },
766
+ {
767
+ name: 'result',
768
+ type: 'uint256',
769
+ internalType: 'uint256',
770
+ },
771
+ {
772
+ name: 'signature',
773
+ type: 'bytes',
774
+ internalType: 'bytes',
775
+ },
776
+ ],
777
+ outputs: [
778
+ {
779
+ name: '',
780
+ type: 'bool',
781
+ internalType: 'bool',
782
+ },
783
+ ],
784
+ stateMutability: 'view',
785
+ },
786
+ {
787
+ type: 'function',
788
+ name: 'verifyInput',
789
+ inputs: [
790
+ {
791
+ name: 'input',
792
+ type: 'tuple',
793
+ internalType: 'struct EncryptedInput',
794
+ components: [
795
+ {
796
+ name: 'ctHash',
797
+ type: 'uint256',
798
+ internalType: 'uint256',
799
+ },
800
+ {
801
+ name: 'securityZone',
802
+ type: 'uint8',
803
+ internalType: 'uint8',
804
+ },
805
+ {
806
+ name: 'utype',
807
+ type: 'uint8',
808
+ internalType: 'uint8',
809
+ },
810
+ {
811
+ name: 'signature',
812
+ type: 'bytes',
813
+ internalType: 'bytes',
814
+ },
815
+ ],
816
+ },
817
+ {
818
+ name: 'sender',
819
+ type: 'address',
820
+ internalType: 'address',
821
+ },
822
+ ],
823
+ outputs: [
824
+ {
825
+ name: '',
826
+ type: 'uint256',
827
+ internalType: 'uint256',
828
+ },
829
+ ],
830
+ stateMutability: 'nonpayable',
831
+ },
832
+ {
833
+ type: 'event',
834
+ name: 'DecryptionResult',
835
+ inputs: [
836
+ {
837
+ name: 'ctHash',
838
+ type: 'uint256',
839
+ indexed: false,
840
+ internalType: 'uint256',
841
+ },
842
+ {
843
+ name: 'result',
844
+ type: 'uint256',
845
+ indexed: false,
846
+ internalType: 'uint256',
847
+ },
848
+ {
849
+ name: 'requestor',
850
+ type: 'address',
851
+ indexed: true,
852
+ internalType: 'address',
853
+ },
854
+ ],
855
+ anonymous: false,
856
+ },
857
+ {
858
+ type: 'event',
859
+ name: 'ProtocolNotification',
860
+ inputs: [
861
+ {
862
+ name: 'ctHash',
863
+ type: 'uint256',
864
+ indexed: false,
865
+ internalType: 'uint256',
866
+ },
867
+ {
868
+ name: 'operation',
869
+ type: 'string',
870
+ indexed: false,
871
+ internalType: 'string',
872
+ },
873
+ {
874
+ name: 'errorMessage',
875
+ type: 'string',
876
+ indexed: false,
877
+ internalType: 'string',
878
+ },
879
+ ],
880
+ anonymous: false,
881
+ },
882
+ {
883
+ type: 'event',
884
+ name: 'TaskCreated',
885
+ inputs: [
886
+ {
887
+ name: 'ctHash',
888
+ type: 'uint256',
889
+ indexed: false,
890
+ internalType: 'uint256',
891
+ },
892
+ {
893
+ name: 'operation',
894
+ type: 'string',
895
+ indexed: false,
896
+ internalType: 'string',
897
+ },
898
+ {
899
+ name: 'input1',
900
+ type: 'uint256',
901
+ indexed: false,
902
+ internalType: 'uint256',
903
+ },
904
+ {
905
+ name: 'input2',
906
+ type: 'uint256',
907
+ indexed: false,
908
+ internalType: 'uint256',
909
+ },
910
+ {
911
+ name: 'input3',
912
+ type: 'uint256',
913
+ indexed: false,
914
+ internalType: 'uint256',
915
+ },
916
+ ],
917
+ anonymous: false,
918
+ },
919
+ {
920
+ type: 'error',
921
+ name: 'ACLNotAllowed',
922
+ inputs: [
923
+ {
924
+ name: 'handle',
925
+ type: 'uint256',
926
+ internalType: 'uint256',
927
+ },
928
+ {
929
+ name: 'account',
930
+ type: 'address',
931
+ internalType: 'address',
932
+ },
933
+ ],
934
+ },
935
+ {
936
+ type: 'error',
937
+ name: 'DecryptionResultNotReady',
938
+ inputs: [
939
+ {
940
+ name: 'ctHash',
941
+ type: 'uint256',
942
+ internalType: 'uint256',
943
+ },
944
+ ],
945
+ },
946
+ {
947
+ type: 'error',
948
+ name: 'ECDSAInvalidSignature',
949
+ inputs: [],
950
+ },
951
+ {
952
+ type: 'error',
953
+ name: 'ECDSAInvalidSignatureLength',
954
+ inputs: [
955
+ {
956
+ name: 'length',
957
+ type: 'uint256',
958
+ internalType: 'uint256',
959
+ },
960
+ ],
961
+ },
962
+ {
963
+ type: 'error',
964
+ name: 'ECDSAInvalidSignatureS',
965
+ inputs: [
966
+ {
967
+ name: 's',
968
+ type: 'bytes32',
969
+ internalType: 'bytes32',
970
+ },
971
+ ],
972
+ },
973
+ {
974
+ type: 'error',
975
+ name: 'InputNotInMockStorage',
976
+ inputs: [
977
+ {
978
+ name: 'ctHash',
979
+ type: 'uint256',
980
+ internalType: 'uint256',
981
+ },
982
+ ],
983
+ },
984
+ {
985
+ type: 'error',
986
+ name: 'InvalidAddress',
987
+ inputs: [],
988
+ },
989
+ {
990
+ type: 'error',
991
+ name: 'InvalidInputForFunction',
992
+ inputs: [
993
+ {
994
+ name: 'functionName',
995
+ type: 'string',
996
+ internalType: 'string',
997
+ },
998
+ {
999
+ name: 'inputType',
1000
+ type: 'uint8',
1001
+ internalType: 'uint8',
1002
+ },
1003
+ ],
1004
+ },
1005
+ {
1006
+ type: 'error',
1007
+ name: 'InvalidInputType',
1008
+ inputs: [
1009
+ {
1010
+ name: 'actual',
1011
+ type: 'uint8',
1012
+ internalType: 'uint8',
1013
+ },
1014
+ {
1015
+ name: 'expected',
1016
+ type: 'uint8',
1017
+ internalType: 'uint8',
1018
+ },
1019
+ ],
1020
+ },
1021
+ {
1022
+ type: 'error',
1023
+ name: 'InvalidInputsAmount',
1024
+ inputs: [
1025
+ {
1026
+ name: 'operation',
1027
+ type: 'string',
1028
+ internalType: 'string',
1029
+ },
1030
+ {
1031
+ name: 'got',
1032
+ type: 'uint256',
1033
+ internalType: 'uint256',
1034
+ },
1035
+ {
1036
+ name: 'expected',
1037
+ type: 'uint256',
1038
+ internalType: 'uint256',
1039
+ },
1040
+ ],
1041
+ },
1042
+ {
1043
+ type: 'error',
1044
+ name: 'InvalidOperationInputs',
1045
+ inputs: [
1046
+ {
1047
+ name: 'operation',
1048
+ type: 'string',
1049
+ internalType: 'string',
1050
+ },
1051
+ ],
1052
+ },
1053
+ {
1054
+ type: 'error',
1055
+ name: 'InvalidSecurityZone',
1056
+ inputs: [
1057
+ {
1058
+ name: 'zone',
1059
+ type: 'int32',
1060
+ internalType: 'int32',
1061
+ },
1062
+ {
1063
+ name: 'min',
1064
+ type: 'int32',
1065
+ internalType: 'int32',
1066
+ },
1067
+ {
1068
+ name: 'max',
1069
+ type: 'int32',
1070
+ internalType: 'int32',
1071
+ },
1072
+ ],
1073
+ },
1074
+ {
1075
+ type: 'error',
1076
+ name: 'InvalidSignature',
1077
+ inputs: [],
1078
+ },
1079
+ {
1080
+ type: 'error',
1081
+ name: 'InvalidSigner',
1082
+ inputs: [
1083
+ {
1084
+ name: 'signer',
1085
+ type: 'address',
1086
+ internalType: 'address',
1087
+ },
1088
+ {
1089
+ name: 'expectedSigner',
1090
+ type: 'address',
1091
+ internalType: 'address',
1092
+ },
1093
+ ],
1094
+ },
1095
+ {
1096
+ type: 'error',
1097
+ name: 'InvalidThreeInputOperation',
1098
+ inputs: [
1099
+ {
1100
+ name: 'operation',
1101
+ type: 'string',
1102
+ internalType: 'string',
1103
+ },
1104
+ ],
1105
+ },
1106
+ {
1107
+ type: 'error',
1108
+ name: 'InvalidTwoInputOperation',
1109
+ inputs: [
1110
+ {
1111
+ name: 'operation',
1112
+ type: 'string',
1113
+ internalType: 'string',
1114
+ },
1115
+ ],
1116
+ },
1117
+ {
1118
+ type: 'error',
1119
+ name: 'InvalidTypeOrSecurityZone',
1120
+ inputs: [
1121
+ {
1122
+ name: 'operation',
1123
+ type: 'string',
1124
+ internalType: 'string',
1125
+ },
1126
+ ],
1127
+ },
1128
+ {
1129
+ type: 'error',
1130
+ name: 'InvalidUnaryOperation',
1131
+ inputs: [
1132
+ {
1133
+ name: 'operation',
1134
+ type: 'string',
1135
+ internalType: 'string',
1136
+ },
1137
+ ],
1138
+ },
1139
+ {
1140
+ type: 'error',
1141
+ name: 'NotImplemented',
1142
+ inputs: [],
1143
+ },
1144
+ {
1145
+ type: 'error',
1146
+ name: 'OnlyAggregatorAllowed',
1147
+ inputs: [
1148
+ {
1149
+ name: 'caller',
1150
+ type: 'address',
1151
+ internalType: 'address',
1152
+ },
1153
+ ],
1154
+ },
1155
+ {
1156
+ type: 'error',
1157
+ name: 'OnlyOwnerAllowed',
1158
+ inputs: [
1159
+ {
1160
+ name: 'caller',
1161
+ type: 'address',
1162
+ internalType: 'address',
1163
+ },
1164
+ ],
1165
+ },
1166
+ {
1167
+ type: 'error',
1168
+ name: 'RandomFunctionNotSupported',
1169
+ inputs: [],
1170
+ },
1171
+ {
1172
+ type: 'error',
1173
+ name: 'StringsInsufficientHexLength',
1174
+ inputs: [
1175
+ {
1176
+ name: 'value',
1177
+ type: 'uint256',
1178
+ internalType: 'uint256',
1179
+ },
1180
+ {
1181
+ name: 'length',
1182
+ type: 'uint256',
1183
+ internalType: 'uint256',
1184
+ },
1185
+ ],
1186
+ },
1187
+ {
1188
+ type: 'error',
1189
+ name: 'TooManyInputs',
1190
+ inputs: [
1191
+ {
1192
+ name: 'operation',
1193
+ type: 'string',
1194
+ internalType: 'string',
1195
+ },
1196
+ {
1197
+ name: 'got',
1198
+ type: 'uint256',
1199
+ internalType: 'uint256',
1200
+ },
1201
+ {
1202
+ name: 'maxAllowed',
1203
+ type: 'uint256',
1204
+ internalType: 'uint256',
1205
+ },
1206
+ ],
1207
+ },
1208
+ ],
1209
+ deployedBytecode:
1210
+ '0x608060405234801561000f575f5ffd5b5060043610610246575f3560e01c806365d0509c11610139578063938fb3d9116100b6578063d521ed4b1161007a578063d521ed4b14610717578063de28735914610747578063e68d826f14610765578063f6bc7f3f14610783578063f9120af6146107b357610246565b8063938fb3d914610661578063a307d21d1461067f578063a33b4b0a1461069b578063ae79f04a146106cb578063c4d66de8146106fb57610246565b80638b2b9c23116100fd5780638b2b9c23146105c15780638d9c9c92146105dd5780638db39c8d146105f95780638eef9ae71461061557806392bd6c951461064557610246565b806365d0509c1461050d57806373301651146105295780637e5cf5191461054557806380d55b691461057557806381ba0986146105a557610246565b806327f9c762116101c75780634d7cb0c01161018b5780634d7cb0c014610459578063591363c7146104895780635faa299a146104a55780635fb0bf91146104d5578063642b3f19146104f157610246565b806327f9c762146103a257806334ef1e5a146103d2578063392e53cd146103ee578063458693c91461040c5780634bc982631461043d57610246565b80631d0319311161020e5780631d031931146102fe578063245a7bfc1461032e5780632605ab9f1461034c57806326594a0c14610368578063267c4ae41461038457610246565b8063082898271461024a57806315a486fe1461026657806318683701146102825780631888debd1461029e5780631c76642b146102ce575b5f5ffd5b610264600480360381019061025f9190616823565b6107cf565b005b610280600480360381019061027b9190616861565b610882565b005b61029c60048036038101906102979190616900565b610890565b005b6102b860048036038101906102b39190616b12565b61096b565b6040516102c59190616bbd565b60405180910390f35b6102e860048036038101906102e39190616bd6565b610b0f565b6040516102f59190616bbd565b60405180910390f35b61031860048036038101906103139190616bd6565b610b24565b6040516103259190616c1b565b60405180910390f35b610336610b41565b6040516103439190616c43565b60405180910390f35b61036660048036038101906103619190616c5c565b610b67565b005b610382600480360381019061037d9190616cbd565b610c3b565b005b61038c610d17565b6040516103999190616c1b565b60405180910390f35b6103bc60048036038101906103b79190616e44565b610d1f565b6040516103c99190616bbd565b60405180910390f35b6103ec60048036038101906103e79190616bd6565b610f59565b005b6103f6611033565b6040516104039190616c1b565b60405180910390f35b61042660048036038101906104219190616bd6565b611049565b604051610434929190616e9e565b60405180910390f35b61045760048036038101906104529190616f63565b6110d7565b005b610473600480360381019061046e9190616900565b6111a9565b6040516104809190616c1b565b60405180910390f35b6104a3600480360381019061049e9190616feb565b6111c2565b005b6104bf60048036038101906104ba9190616823565b6112f4565b6040516104cc9190616c1b565b60405180910390f35b6104ef60048036038101906104ea9190616feb565b6113b0565b005b61050b60048036038101906105069190617040565b6114e2565b005b61052760048036038101906105229190616823565b6114fd565b005b610543600480360381019061053e9190617115565b611649565b005b61055f600480360381019061055a91906171c5565b611730565b60405161056c9190617291565b60405180910390f35b61058f600480360381019061058a91906172b1565b611866565b60405161059c9190616bbd565b60405180910390f35b6105bf60048036038101906105ba9190617356565b61189f565b005b6105db60048036038101906105d691906173c7565b6119ad565b005b6105f760048036038101906105f29190616823565b6119bd565b005b610613600480360381019061060e9190616c5c565b611a9a565b005b61062f600480360381019061062a9190616bd6565b611b6e565b60405161063c9190616c1b565b60405180910390f35b61065f600480360381019061065a9190616c5c565b611ba1565b005b610669611cda565b6040516106769190616c43565b60405180910390f35b61069960048036038101906106949190616bd6565b611cff565b005b6106b560048036038101906106b09190616900565b611e47565b6040516106c29190616c1b565b60405180910390f35b6106e560048036038101906106e091906175a2565b611e5f565b6040516106f29190616c1b565b60405180910390f35b61071560048036038101906107109190616c5c565b611f03565b005b610731600480360381019061072c91906175fc565b611fe1565b60405161073e9190617291565b60405180910390f35b61074f6120f6565b60405161075c919061769e565b60405180910390f35b61076d61211b565b60405161077a9190616c1b565b60405180910390f35b61079d60048036038101906107989190616bd6565b61212c565b6040516107aa9190616bbd565b60405180910390f35b6107cd60048036038101906107c89190616c5c565b612188565b005b6107d8826122c2565b600160055f8481526020019081526020015f205f6101000a81548160ff02191690831515021790555061080a826123b1565b60045f8481526020019081526020015f20819055505f6001600a4261082f91906176e4565b6108399190617741565b905080426108479190617774565b60065f8581526020019081526020015f205f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050565b61088c8282612439565b5050565b61089e848484846001612457565b50600160055f8681526020019081526020015f205f6101000a81548160ff0219169083151502179055508260045f8681526020019081526020015f20819055504260065f8681526020019081526020015f205f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f023b156100bf14eedc41deb8cef114c1fce662c306697f3bfaf3dbca58130bf7858560405161095d9291906177af565b60405180910390a250505050565b5f601b601f8111156109805761097f6177d6565b5b84601f811115610993576109926177d6565b5b036109ca576040517f98e08ab000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f825184516109d99190617741565b90506003811115610a2e576109ed856126b1565b8160036040517f2b0399d5000000000000000000000000000000000000000000000000000000008152600401610a259392919061783c565b60405180910390fd5b610a388486613246565b5f610a4385856134c0565b90505f610a51878787613602565b90505f610a608983858b61366d565b905060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663484de8228233306040518463ffffffff1660e01b8152600401610ac093929190617878565b5f604051808303815f87803b158015610ad7575f5ffd5b505af1158015610ae9573d5f5f3e3d5ffd5b50505050610b0081610afa8a6126b1565b856137f2565b80945050505050949350505050565b6001602052805f5260405f205f915090505481565b6002602052805f5260405f205f915054906101000a900460ff1681565b600760089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bf857336040517f7238ea56000000000000000000000000000000000000000000000000000000008152600401610bef9190616c43565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ccc57336040517f7238ea56000000000000000000000000000000000000000000000000000000008152600401610cc39190616c43565b60405180910390fd5b81600760046101000a81548163ffffffff021916908360030b63ffffffff1602179055508060075f6101000a81548163ffffffff021916908360030b63ffffffff1602179055505050565b5f6001905090565b5f5f836020015160ff1690505f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ead57610d8881613a47565b610dea5780600760049054906101000a900460030b60075f9054906101000a900460030b6040517f24cbcf36000000000000000000000000000000000000000000000000000000008152600401610de1939291906178bc565b60405180910390fd5b5f610df58585613a88565b905060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610eab578060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040517f7ba5ffb5000000000000000000000000000000000000000000000000000000008152600401610ea29291906178f1565b60405180910390fd5b505b5f610ec1855f01518387604001515f613b4c565b905060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663484de8228233306040518463ffffffff1660e01b8152600401610f2193929190617878565b5f604051808303815f87803b158015610f38575f5ffd5b505af1158015610f4a573d5f5f3e3d5ffd5b50505050809250505092915050565b610f6281613ba5565b6110305760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663846cd43382336040518363ffffffff1660e01b8152600401610fc2929190617918565b5f604051808303815f87803b158015610fd9575f5ffd5b505af1158015610feb573d5f5f3e3d5ffd5b5050505061102f6040518060400160405280600f81526020017f4648452e616c6c6f77476c6f62616c000000000000000000000000000000000081525082336119ad565b5b50565b5f600360149054906101000a900460ff16905090565b5f5f60055f8481526020019081526020015f205f9054906101000a900460ff16611078575f5f915091506110d2565b60065f8481526020019081526020015f205f9054906101000a900467ffffffffffffffff1667ffffffffffffffff164210156110b9575f5f915091506110d2565b60045f8481526020019081526020015f20546001915091505b915091565b600760089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116957336040517fa974a0fe0000000000000000000000000000000000000000000000000000000081526004016111609190616c43565b60405180910390fd5b7f66d3f531abdf188fde59b6d2b282dc7c725ef2bb1c6c93954054721a13c1a3fa83838360405161119c9392919061793f565b60405180910390a1505050565b5f6111b8858585856001612457565b9050949350505050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461125357336040517f7238ea5600000000000000000000000000000000000000000000000000000000815260040161124a9190616c43565b60405180910390fd5b600760049054906101000a900460030b60030b8160030b12156112ce5780600760049054906101000a900460030b60075f9054906101000a900460030b6040517f24cbcf360000000000000000000000000000000000000000000000000000000081526004016112c5939291906178bc565b60405180910390fd5b8060075f6101000a81548163ffffffff021916908360030b63ffffffff16021790555050565b5f6112fe83613ba5565b1561130c57600190506113aa565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635faa299a84846040518363ffffffff1660e01b8152600401611368929190617918565b602060405180830381865afa158015611383573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a79190617996565b90505b92915050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461144157336040517f7238ea560000000000000000000000000000000000000000000000000000000081526004016114389190616c43565b60405180910390fd5b60075f9054906101000a900460030b60030b8160030b13156114bb5780600760049054906101000a900460030b60075f9054906101000a900460030b6040517f24cbcf360000000000000000000000000000000000000000000000000000000081526004016114b2939291906178bc565b60405180910390fd5b80600760046101000a81548163ffffffff021916908360030b63ffffffff16021790555050565b805f5f6101000a81548160ff02191690831515021790555050565b61150682613ba5565b6116455760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166379a3a7fb8383336040518463ffffffff1660e01b815260040161156893929190617878565b5f604051808303815f87803b15801561157f575f5ffd5b505af1158015611591573d5f5f3e3d5ffd5b505050506116443373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611606576040518060400160405280600981526020017f4648452e616c6c6f77000000000000000000000000000000000000000000000081525061163d565b6040518060400160405280600d81526020017f4648452e616c6c6f7754686973000000000000000000000000000000000000008152505b83836119ad565b5b5050565b5f5f90505b86869050811015611727573073ffffffffffffffffffffffffffffffffffffffff166318683701888884818110611688576116876179c1565b5b905060200201358787858181106116a2576116a16179c1565b5b905060200201358686868181106116bc576116bb6179c1565b5b90506020028101906116ce91906179fa565b6040518563ffffffff1660e01b81526004016116ed9493929190617a98565b5f604051808303815f87803b158015611704575f5ffd5b505af1158015611716573d5f5f3e3d5ffd5b50505050808060010191505061164e565b50505050505050565b60605f849050805183856117449190617741565b1115611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90617b20565b60405180910390fd5b5f8367ffffffffffffffff8111156117a05761179f6169da565b5b6040519080825280601f01601f1916602001820160405280156117d25781602001600182028036833780820191505090505b5090505f5f90505b84811015611859578281876117ef9190617741565b81518110611800576117ff6179c1565b5b602001015160f81c60f81b82828151811061181e5761181d6179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535080806001019150506117da565b5080925050509392505050565b5f8383834260405160200161187e9493929190617b4d565b604051602081830303815290604052805190602001205f1c90509392505050565b600760089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461193157336040517fa974a0fe0000000000000000000000000000000000000000000000000000000081526004016119289190616c43565b60405180910390fd5b600160055f8681526020019081526020015f205f6101000a81548160ff0219169083151502179055508260045f8681526020019081526020015f20819055504260065f8681526020019081526020015f205f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050565b6119b8838383613be2565b505050565b6119c682613ba5565b611a965760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663484de8228383336040518463ffffffff1660e01b8152600401611a2893929190617878565b5f604051808303815f87803b158015611a3f575f5ffd5b505af1158015611a51573d5f5f3e3d5ffd5b50505050611a956040518060400160405280601281526020017f4648452e616c6c6f775472616e7369656e74000000000000000000000000000081525083836119ad565b5b5050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b2b57336040517f7238ea56000000000000000000000000000000000000000000000000000000008152600401611b229190616c43565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c3257336040517f7238ea56000000000000000000000000000000000000000000000000000000008152600401611c299190616c43565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c97576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d0881613ba5565b611e44575f600167ffffffffffffffff811115611d2857611d276169da565b5b604051908082528060200260200182016040528015611d565781602001602082028036833780820191505090505b50905081815f81518110611d6d57611d6c6179c1565b5b60200260200101818152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633c3839ba82336040518363ffffffff1660e01b8152600401611dd5929190617c47565b5f604051808303815f87803b158015611dec575f5ffd5b505af1158015611dfe573d5f5f3e3d5ffd5b50505050611e426040518060400160405280601681526020017f4648452e616c6c6f77466f7244656372797074696f6e0000000000000000000081525083336119ad565b505b50565b5f611e55858585855f612457565b9050949350505050565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae79f04a84846040518363ffffffff1660e01b8152600401611ebc929190617da8565b602060405180830381865afa158015611ed7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611efb9190617996565b905092915050565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360146101000a81548160ff0219169083151502179055505f60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f8290505f8151036120065760405180602001604052805f8152509150506120f1565b5f600182516120159190617dd6565b67ffffffffffffffff81111561202e5761202d6169da565b5b6040519080825280601f01601f1916602001820160405280156120605781602001600182028036833780820191505090505b5090505f600190505b82518110156120ea57828181518110612085576120846179c1565b5b602001015160f81c60f81b8260018361209e9190617dd6565b815181106120af576120ae6179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050612069565b5080925050505b919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900460ff1681565b5f5f5f61213884611049565b915091508061217e57836040517f70cf65540000000000000000000000000000000000000000000000000000000081526004016121759190616bbd565b60405180910390fd5b8192505050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461221957336040517f7238ea560000000000000000000000000000000000000000000000000000000081526004016122109190616c43565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361227e576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600760086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122cb81613ba5565b6123ae5760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635faa299a82336040518363ffffffff1660e01b815260040161232b929190617918565b602060405180830381865afa158015612346573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236a9190617996565b6123ad5780336040517f4d13139e0000000000000000000000000000000000000000000000000000000081526004016123a4929190617918565b60405180910390fd5b5b50565b5f60025f8381526020019081526020015f205f9054906101000a900460ff1661241157816040517f850a796d0000000000000000000000000000000000000000000000000000000081526004016124089190616bbd565b60405180910390fd5b5f61241b83613cd0565b90508060015f8581526020019081526020015f205416915050919050565b5f61244383613cd0565b9050612452838284165f613ced565b505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124b557600190506126a8565b5f86866040516020016124c9929190617e29565b6040516020818303038152906040528051906020012090505f5f6125308388888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050613d8e565b50915091505f6003811115612548576125476177d6565b5b81600381111561255b5761255a6177d6565b5b14158061259357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156125db5784156125d0576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f93505050506126a8565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146126a05784156126955781600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040517f7ba5ffb500000000000000000000000000000000000000000000000000000000815260040161268c9291906178f1565b60405180910390fd5b5f93505050506126a8565b600193505050505b95945050505050565b60606002601f8111156126c7576126c66177d6565b5b82601f8111156126da576126d96177d6565b5b0361271c576040518060400160405280600481526020017f63617374000000000000000000000000000000000000000000000000000000008152509050613241565b6003601f8111156127305761272f6177d6565b5b82601f811115612743576127426177d6565b5b03612785576040518060400160405280600a81526020017f7365616c4f7574707574000000000000000000000000000000000000000000008152509050613241565b6004601f811115612799576127986177d6565b5b82601f8111156127ac576127ab6177d6565b5b036127ee576040518060400160405280600681526020017f73656c65637400000000000000000000000000000000000000000000000000008152509050613241565b6006601f811115612802576128016177d6565b5b82601f811115612815576128146177d6565b5b03612857576040518060400160405280600781526020017f64656372797074000000000000000000000000000000000000000000000000008152509050613241565b6007601f81111561286b5761286a6177d6565b5b82601f81111561287e5761287d6177d6565b5b036128c0576040518060400160405280600381526020017f73756200000000000000000000000000000000000000000000000000000000008152509050613241565b6008601f8111156128d4576128d36177d6565b5b82601f8111156128e7576128e66177d6565b5b03612929576040518060400160405280600381526020017f61646400000000000000000000000000000000000000000000000000000000008152509050613241565b6009601f81111561293d5761293c6177d6565b5b82601f8111156129505761294f6177d6565b5b03612992576040518060400160405280600381526020017f786f7200000000000000000000000000000000000000000000000000000000008152509050613241565b600a601f8111156129a6576129a56177d6565b5b82601f8111156129b9576129b86177d6565b5b036129fb576040518060400160405280600381526020017f616e6400000000000000000000000000000000000000000000000000000000008152509050613241565b600b601f811115612a0f57612a0e6177d6565b5b82601f811115612a2257612a216177d6565b5b03612a64576040518060400160405280600281526020017f6f720000000000000000000000000000000000000000000000000000000000008152509050613241565b600c601f811115612a7857612a776177d6565b5b82601f811115612a8b57612a8a6177d6565b5b03612acd576040518060400160405280600381526020017f6e6f7400000000000000000000000000000000000000000000000000000000008152509050613241565b600d601f811115612ae157612ae06177d6565b5b82601f811115612af457612af36177d6565b5b03612b36576040518060400160405280600381526020017f64697600000000000000000000000000000000000000000000000000000000008152509050613241565b600e601f811115612b4a57612b496177d6565b5b82601f811115612b5d57612b5c6177d6565b5b03612b9f576040518060400160405280600381526020017f72656d00000000000000000000000000000000000000000000000000000000008152509050613241565b600f601f811115612bb357612bb26177d6565b5b82601f811115612bc657612bc56177d6565b5b03612c08576040518060400160405280600381526020017f6d756c00000000000000000000000000000000000000000000000000000000008152509050613241565b6010601f811115612c1c57612c1b6177d6565b5b82601f811115612c2f57612c2e6177d6565b5b03612c71576040518060400160405280600381526020017f73686c00000000000000000000000000000000000000000000000000000000008152509050613241565b6011601f811115612c8557612c846177d6565b5b82601f811115612c9857612c976177d6565b5b03612cda576040518060400160405280600381526020017f73687200000000000000000000000000000000000000000000000000000000008152509050613241565b6012601f811115612cee57612ced6177d6565b5b82601f811115612d0157612d006177d6565b5b03612d43576040518060400160405280600381526020017f67746500000000000000000000000000000000000000000000000000000000008152509050613241565b6013601f811115612d5757612d566177d6565b5b82601f811115612d6a57612d696177d6565b5b03612dac576040518060400160405280600381526020017f6c746500000000000000000000000000000000000000000000000000000000008152509050613241565b6014601f811115612dc057612dbf6177d6565b5b82601f811115612dd357612dd26177d6565b5b03612e15576040518060400160405280600281526020017f6c740000000000000000000000000000000000000000000000000000000000008152509050613241565b6015601f811115612e2957612e286177d6565b5b82601f811115612e3c57612e3b6177d6565b5b03612e7e576040518060400160405280600281526020017f67740000000000000000000000000000000000000000000000000000000000008152509050613241565b6016601f811115612e9257612e916177d6565b5b82601f811115612ea557612ea46177d6565b5b03612ee7576040518060400160405280600381526020017f6d696e00000000000000000000000000000000000000000000000000000000008152509050613241565b6017601f811115612efb57612efa6177d6565b5b82601f811115612f0e57612f0d6177d6565b5b03612f50576040518060400160405280600381526020017f6d617800000000000000000000000000000000000000000000000000000000008152509050613241565b6018601f811115612f6457612f636177d6565b5b82601f811115612f7757612f766177d6565b5b03612fb9576040518060400160405280600281526020017f65710000000000000000000000000000000000000000000000000000000000008152509050613241565b6019601f811115612fcd57612fcc6177d6565b5b82601f811115612fe057612fdf6177d6565b5b03613022576040518060400160405280600281526020017f6e650000000000000000000000000000000000000000000000000000000000008152509050613241565b601a601f811115613036576130356177d6565b5b82601f811115613049576130486177d6565b5b0361308b576040518060400160405280600e81526020017f7472697669616c456e63727970740000000000000000000000000000000000008152509050613241565b601b601f81111561309f5761309e6177d6565b5b82601f8111156130b2576130b16177d6565b5b036130f4576040518060400160405280600681526020017f72616e646f6d00000000000000000000000000000000000000000000000000008152509050613241565b601c601f811115613108576131076177d6565b5b82601f81111561311b5761311a6177d6565b5b0361315d576040518060400160405280600381526020017f726f6c00000000000000000000000000000000000000000000000000000000008152509050613241565b601d601f811115613171576131706177d6565b5b82601f811115613184576131836177d6565b5b036131c6576040518060400160405280600381526020017f726f7200000000000000000000000000000000000000000000000000000000008152509050613241565b601e601f8111156131da576131d96177d6565b5b82601f8111156131ed576131ec6177d6565b5b0361322f576040518060400160405280600681526020017f73717561726500000000000000000000000000000000000000000000000000008152509050613241565b60405180602001604052805f81525090505b919050565b5f613250826126b1565b90505f8351036132aa5761326382613de3565b6132a457806040517fb31612aa00000000000000000000000000000000000000000000000000000000815260040161329b9190617291565b60405180910390fd5b506134bc565b6004601f8111156132be576132bd6177d6565b5b82601f8111156132d1576132d06177d6565b5b036132e4576132df83613e42565b613414565b6132ed82613f83565b1561334357600183511461333e5780835160016040517f9a84351c00000000000000000000000000000000000000000000000000000000815260040161333593929190617e8d565b60405180910390fd5b613413565b600283511461338f5780835160026040517f9a84351c00000000000000000000000000000000000000000000000000000000815260040161338693929190617f02565b60405180910390fd5b5f6133d0846001815181106133a7576133a66179c1565b5b6020026020010151855f815181106133c2576133c16179c1565b5b602002602001015118614011565b1461341257806040517f52b50ae10000000000000000000000000000000000000000000000000000000081526004016134099190617291565b60405180910390fd5b5b5b5f613438845f8151811061342b5761342a6179c1565b5b602002602001015161402f565b905061344381613a47565b6134a55780600760049054906101000a900460030b60075f9054906101000a900460030b6040517f24cbcf3600000000000000000000000000000000000000000000000000000000815260040161349c939291906178bc565b60405180910390fd5b6134ae8461403f565b6134b983838661408d565b50505b5050565b60605f825184516134d19190617741565b67ffffffffffffffff8111156134ea576134e96169da565b5b6040519080825280602002602001820160405280156135185781602001602082028036833780820191505090505b5090505f5f90505b84518160ff16101561357f57848160ff1681518110613542576135416179c1565b5b6020026020010151828260ff16815181106135605761355f6179c1565b5b602002602001018181525050808061357790617f3e565b915050613520565b5b8351855161358e9190617741565b8160ff1610156135f7578385518260ff166135a99190617dd6565b815181106135ba576135b96179c1565b5b6020026020010151828260ff16815181106135d8576135d76179c1565b5b60200260200101818152505080806135ef90617f3e565b915050613580565b819250505092915050565b5f61360c84613de3565b156136405781600183516136209190617dd6565b81518110613631576136306179c1565b5b60200260200101519050613666565b613663835f81518110613656576136556179c1565b5b602002602001015161402f565b90505b9392505050565b5f60605f601a601f811115613685576136846177d6565b5b84601f811115613698576136976177d6565b5b1490505f5f90505b85518160ff16101561370857826136d3878360ff16815181106136c6576136c56179c1565b5b60200260200101516141fb565b6040516020016136e4929190617fa0565b6040516020818303038152906040529250808061370090617f3e565b9150506136a0565b50601e601f81111561371d5761371c6177d6565b5b84601f8111156137305761372f6177d6565b5b0361378057600f93508161375d865f815181106137505761374f6179c1565b5b60200260200101516141fb565b60405160200161376e929190617fa0565b60405160208183030381529060405291505b5f84601f811115613794576137936177d6565b5b60f81b905082816040516020016137ac92919061800e565b60405160208183030381529060405292505f838051906020012090505f6137e0825f1c8a6137da8a8e61425d565b87613b4c565b90508095505050505050949350505050565b6001815114806138095750613808826002614388565b5b15613891577fe9de54a3e7ddf0c48cc6e1134185300d5a71acbf2d8c21fcdefa9d9dd9e20ac18383835f81518110613844576138436179c1565b5b60200260200101515f5f60405161385f95949392919061806e565b60405180910390a161388c8383835f8151811061387f5761387e6179c1565b5b60200260200101516143a3565b613a42565b6002815103613954577fe9de54a3e7ddf0c48cc6e1134185300d5a71acbf2d8c21fcdefa9d9dd9e20ac18383835f815181106138d0576138cf6179c1565b5b6020026020010151846001815181106138ec576138eb6179c1565b5b60200260200101515f6040516139069594939291906180c6565b60405180910390a161394f8383835f81518110613926576139256179c1565b5b602002602001015184600181518110613942576139416179c1565b5b602002602001015161460a565b613a41565b7fe9de54a3e7ddf0c48cc6e1134185300d5a71acbf2d8c21fcdefa9d9dd9e20ac18383835f8151811061398a576139896179c1565b5b6020026020010151846001815181106139a6576139a56179c1565b5b6020026020010151856002815181106139c2576139c16179c1565b5b60200260200101516040516139db95949392919061811e565b60405180910390a1613a408383835f815181106139fb576139fa6179c1565b5b602002602001015184600181518110613a1757613a166179c1565b5b602002602001015185600281518110613a3357613a326179c1565b5b6020026020010151615436565b5b5b505050565b5f600760049054906101000a900460030b60030b8260030b12158015613a81575060075f9054906101000a900460030b60030b8260030b13155b9050919050565b5f5f835f0151846040015185602001518546604051602001613aae9594939291906181ef565b60405160208183030381529060405290505f818051906020012090505f613ad98287606001516155dd565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613b40576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80935050505092915050565b5f61ffff80167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613b7d9190617dd6565b851690505f8460ff166008613b928587615607565b901b179050808217915050949350505050565b5f600160ff8016901c60ff1660ff8016613bbf9190617dd6565b600160ff8016901c60ff1660ff8016613bd89190617dd6565b8316149050919050565b5f5f9054906101000a900460ff1615613ccb57613cca6040518060400160405280600481526020017fe2949c2000000000000000000000000000000000000000000000000000000000815250613c5a8560107f2000000000000000000000000000000000000000000000000000000000000000615646565b6040518060400160405280600381526020017f207c200000000000000000000000000000000000000000000000000000000000815250613c998661578d565b613ca286615929565b604051602001613cb69594939291906182ad565b604051602081830303815290604052615956565b5b505050565b5f5f613cdb836159ef565b90506001816001901b03915050919050565b8160015f8581526020019081526020015f2081905550600160025f8581526020019081526020015f205f6101000a81548160ff0219169083151502179055508015613d8957613d886040518060400160405280600381526020017f736574000000000000000000000000000000000000000000000000000000000081525060405180602001604052805f815250613d838661578d565b615ac6565b5b505050565b5f5f5f6041845103613dce575f5f5f602087015192506040870151915060608701515f1a9050613dc088828585615ba4565b955095509550505050613ddc565b5f600285515f1b9250925092505b9250925092565b5f601b601f811115613df857613df76177d6565b5b82601f811115613e0b57613e0a6177d6565b5b1480613e3b5750601a601f811115613e2657613e256177d6565b5b82601f811115613e3957613e386177d6565b5b145b9050919050565b6003815114613e8c57805160036040517f9a84351c000000000000000000000000000000000000000000000000000000008152600401613e83929190618350565b60405180910390fd5b5f613ece82600281518110613ea457613ea36179c1565b5b602002602001015183600181518110613ec057613ebf6179c1565b5b602002602001015118614011565b14613f0e576040517f52b50ae1000000000000000000000000000000000000000000000000000000008152600401613f059061838a565b60405180910390fd5b5f613f32825f81518110613f2557613f246179c1565b5b6020026020010151615c8b565b90505f5f821860ff1614613f7f57805f6040517f884a0e9d000000000000000000000000000000000000000000000000000000008152600401613f769291906183a8565b60405180910390fd5b5050565b5f600c601f811115613f9857613f976177d6565b5b82601f811115613fab57613faa6177d6565b5b1480613fdb5750601e601f811115613fc657613fc56177d6565b5b82601f811115613fd957613fd86177d6565b5b145b8061400a57506002601f811115613ff557613ff46177d6565b5b82601f811115614008576140076177d6565b5b145b9050919050565b5f8160ff80166008600160ff8016901c60ff16901b17169050919050565b5f60ff801682165f0b9050919050565b5f5f90505b81518160ff16101561408957614076828260ff1681518110614069576140686179c1565b5b60200260200101516122c2565b808061408190617f3e565b915050614044565b5050565b61409683615ca7565b6141f6576140a383615d64565b15614149575f5f90505b81518160ff161015614143575f6140e0838360ff16815181106140d3576140d26179c1565b5b6020026020010151615c8b565b90505f6007821860ff160361412f578360076040517f91b4b3780000000000000000000000000000000000000000000000000000000081526004016141269291906183cf565b60405180910390fd5b50808061413b90617f3e565b9150506140ad565b506141f5565b5f5f90505b81518160ff1610156141f3575f614181838360ff1681518110614174576141736179c1565b5b6020026020010151615c8b565b90505f6007821860ff16148061419b57505f5f821860ff16145b156141df5783816040517f91b4b3780000000000000000000000000000000000000000000000000000000081526004016141d69291906183cf565b60405180910390fd5b5080806141eb90617f3e565b91505061414e565b505b5b505050565b60605f602067ffffffffffffffff811115614219576142186169da565b5b6040519080825280601f01601f19166020018201604052801561424b5781602001600182028036833780820191505090505b50905082602082015280915050919050565b5f6013601f811115614272576142716177d6565b5b83601f811115614285576142846177d6565b5b14806142b557506014601f8111156142a05761429f6177d6565b5b83601f8111156142b3576142b26177d6565b5b145b806142e457506012601f8111156142cf576142ce6177d6565b5b83601f8111156142e2576142e16177d6565b5b145b8061431357506015601f8111156142fe576142fd6177d6565b5b83601f811115614311576143106177d6565b5b145b8061434257506018601f81111561432d5761432c6177d6565b5b83601f8111156143405761433f6177d6565b5b145b8061437157506019601f81111561435c5761435b6177d6565b5b83601f81111561436f5761436e6177d6565b5b145b1561437e575f9050614382565b8190505b92915050565b5f61439b83614396846126b1565b615e21565b905092915050565b6143ae82601b614388565b15614427576143cc836001436143c49190617dd6565b405f1c612439565b6144226040518060400160405280600a81526020017f4648452e72616e646f6d0000000000000000000000000000000000000000000081525060405180602001604052805f81525061441d8661578d565b615ac6565b614605565b614432826002614388565b1561449e5761444983614444836123b1565b612439565b6144996040518060400160405280600881526020017f4648452e6361737400000000000000000000000000000000000000000000000081525061448b8361578d565b6144948661578d565b615ac6565b614605565b6144a982600c614388565b1561451e575f60016144ba836123b1565b1490506144c8848215615e79565b6145186040518060400160405280600781526020017f4648452e6e6f740000000000000000000000000000000000000000000000000081525061450a8461578d565b6145138761578d565b615ac6565b50614605565b61452982601e614388565b156145c85761454a8361453b836123b1565b614544846123b1565b02612439565b6145c36040518060400160405280600a81526020017f4648452e7371756172650000000000000000000000000000000000000000000081525061458c8361578d565b6145958461578d565b6040516020016145a6929190618423565b6040516020818303038152906040526145be8661578d565b615ac6565b614605565b816040517fd952ce7c0000000000000000000000000000000000000000000000000000000081526004016145fc9190617291565b60405180910390fd5b505050565b614615836007614388565b156146b45761463684614627836123b1565b614630856123b1565b03612439565b6146af6040518060400160405280600781526020017f4648452e737562000000000000000000000000000000000000000000000000008152506146788461578d565b6146818461578d565b60405160200161469292919061847b565b6040516020818303038152906040526146aa8761578d565b615ac6565b615430565b6146bf836008614388565b1561475e576146e0846146d1836123b1565b6146da856123b1565b01612439565b6147596040518060400160405280600781526020017f4648452e616464000000000000000000000000000000000000000000000000008152506147228461578d565b61472b8461578d565b60405160200161473c9291906184d3565b6040516020818303038152906040526147548761578d565b615ac6565b615430565b614769836009614388565b156148085761478a8461477b836123b1565b614784856123b1565b18612439565b6148036040518060400160405280600781526020017f4648452e786f72000000000000000000000000000000000000000000000000008152506147cc8461578d565b6147d58461578d565b6040516020016147e692919061852b565b6040516020818303038152906040526147fe8761578d565b615ac6565b615430565b61481383600a614388565b156148b25761483484614825836123b1565b61482e856123b1565b16612439565b6148ad6040518060400160405280600781526020017f4648452e616e64000000000000000000000000000000000000000000000000008152506148768461578d565b61487f8461578d565b604051602001614890929190618583565b6040516020818303038152906040526148a88761578d565b615ac6565b615430565b6148bd83600b614388565b1561495c576148de846148cf836123b1565b6148d8856123b1565b17612439565b6149576040518060400160405280600681526020017f4648452e6f7200000000000000000000000000000000000000000000000000008152506149208461578d565b6149298461578d565b60405160200161493a9291906185db565b6040516020818303038152906040526149528761578d565b615ac6565b615430565b61496783600d614388565b15614a50575f614976826123b1565b90505f81036149ae576149a9857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612439565b6149d1565b6149d085826149bc866123b1565b816149ca576149c96176b7565b5b04612439565b5b614a4a6040518060400160405280600781526020017f4648452e64697600000000000000000000000000000000000000000000000000815250614a138561578d565b614a1c8561578d565b604051602001614a2d929190618633565b604051602081830303815290604052614a458861578d565b615ac6565b50615430565b614a5b83600e614388565b15614b0857614a8a84614a6d836123b1565b614a76856123b1565b81614a8457614a836176b7565b5b06612439565b614b036040518060400160405280600781526020017f4648452e72656d00000000000000000000000000000000000000000000000000815250614acc8461578d565b614ad58461578d565b604051602001614ae692919061868b565b604051602081830303815290604052614afe8761578d565b615ac6565b615430565b614b1383600f614388565b15614bb257614b3484614b25836123b1565b614b2e856123b1565b02612439565b614bad6040518060400160405280600781526020017f4648452e6d756c00000000000000000000000000000000000000000000000000815250614b768461578d565b614b7f8461578d565b604051602001614b90929190618423565b604051602081830303815290604052614ba88761578d565b615ac6565b615430565b614bbd836010614388565b15614c5d57614bdf84614bcf836123b1565b614bd8856123b1565b901b612439565b614c586040518060400160405280600781526020017f4648452e73686c00000000000000000000000000000000000000000000000000815250614c218461578d565b614c2a8461578d565b604051602001614c3b9291906186e3565b604051602081830303815290604052614c538761578d565b615ac6565b615430565b614c68836011614388565b15614d0857614c8a84614c7a836123b1565b614c83856123b1565b901c612439565b614d036040518060400160405280600781526020017f4648452e73687200000000000000000000000000000000000000000000000000815250614ccc8461578d565b614cd58461578d565b604051602001614ce692919061873b565b604051602081830303815290604052614cfe8761578d565b615ac6565b615430565b614d13836012614388565b15614db357614d3584614d25836123b1565b614d2e856123b1565b1015615e79565b614dae6040518060400160405280600781526020017f4648452e67746500000000000000000000000000000000000000000000000000815250614d778461578d565b614d808461578d565b604051602001614d91929190618793565b604051602081830303815290604052614da98761578d565b615ac6565b615430565b614dbe836013614388565b15614e5e57614de084614dd0836123b1565b614dd9856123b1565b1115615e79565b614e596040518060400160405280600781526020017f4648452e6c746500000000000000000000000000000000000000000000000000815250614e228461578d565b614e2b8461578d565b604051602001614e3c9291906187eb565b604051602081830303815290604052614e548761578d565b615ac6565b615430565b614e69836014614388565b15614f0857614e8a84614e7b836123b1565b614e84856123b1565b10615e79565b614f036040518060400160405280600681526020017f4648452e6c740000000000000000000000000000000000000000000000000000815250614ecc8461578d565b614ed58461578d565b604051602001614ee6929190618843565b604051602081830303815290604052614efe8761578d565b615ac6565b615430565b614f13836015614388565b15614fb257614f3484614f25836123b1565b614f2e856123b1565b11615e79565b614fad6040518060400160405280600681526020017f4648452e67740000000000000000000000000000000000000000000000000000815250614f768461578d565b614f7f8461578d565b604051602001614f9092919061889b565b604051602081830303815290604052614fa88761578d565b615ac6565b615430565b614fbd836016614388565b1561507d575f614fcc826123b1565b614fd5846123b1565b10614fe857614fe3826123b1565b614ff2565b614ff1836123b1565b5b9050614ffe8582612439565b6150776040518060400160405280600781526020017f4648452e6d696e000000000000000000000000000000000000000000000000008152506150408561578d565b6150498561578d565b60405160200161505a92919061893f565b6040516020818303038152906040526150728861578d565b615ac6565b50615430565b615088836017614388565b15615148575f615097826123b1565b6150a0846123b1565b116150b3576150ae826123b1565b6150bd565b6150bc836123b1565b5b90506150c98582612439565b6151426040518060400160405280600781526020017f4648452e6d61780000000000000000000000000000000000000000000000000081525061510b8561578d565b6151148561578d565b6040516020016151259291906189b5565b60405160208183030381529060405261513d8861578d565b615ac6565b50615430565b615153836018614388565b156151f25761517484615165836123b1565b61516e856123b1565b14615e79565b6151ed6040518060400160405280600681526020017f4648452e657100000000000000000000000000000000000000000000000000008152506151b68461578d565b6151bf8461578d565b6040516020016151d0929190618a2b565b6040516020818303038152906040526151e88761578d565b615ac6565b615430565b6151fd836019614388565b1561529d5761521f8461520f836123b1565b615218856123b1565b1415615e79565b6152986040518060400160405280600681526020017f4648452e6e6500000000000000000000000000000000000000000000000000008152506152618461578d565b61526a8461578d565b60405160200161527b929190618a83565b6040516020818303038152906040526152938761578d565b615ac6565b615430565b6152a883601c614388565b15615348576152ca846152ba836123b1565b6152c3856123b1565b901b612439565b6153436040518060400160405280600781526020017f4648452e726f6c0000000000000000000000000000000000000000000000000081525061530c8461578d565b6153158461578d565b6040516020016153269291906186e3565b60405160208183030381529060405261533e8761578d565b615ac6565b615430565b61535383601d614388565b156153f35761537584615365836123b1565b61536e856123b1565b901c612439565b6153ee6040518060400160405280600781526020017f4648452e726f72000000000000000000000000000000000000000000000000008152506153b78461578d565b6153c08461578d565b6040516020016153d192919061873b565b6040516020818303038152906040526153e98761578d565b615ac6565b615430565b826040517fcef608850000000000000000000000000000000000000000000000000000000081526004016154279190617291565b60405180910390fd5b50505050565b61544184601a614388565b156154d0576154508584612439565b6154cb61546461545f87615e97565b611fe1565b6040516020016154749190618adb565b60405160208183030381529060405261549461548f88615e97565b611fe1565b61549d86616143565b6040516020016154ae929190618b26565b6040516020818303038152906040526154c68861578d565b615ac6565b6155d6565b6154db846004614388565b15615599576155118560016154ef866123b1565b14615502576154fd836123b1565b61550c565b61550b846123b1565b5b612439565b6155946040518060400160405280600a81526020017f4648452e73656c656374000000000000000000000000000000000000000000008152506155538561578d565b61555c8561578d565b6155658561578d565b60405160200161557793929190618bb3565b60405160208183030381529060405261558f8861578d565b615ac6565b6155d6565b836040517f5e45fa010000000000000000000000000000000000000000000000000000000081526004016155cd9190617291565b60405180910390fd5b5050505050565b5f5f5f5f6155eb8686613d8e565b9250925092506155fb828261620d565b82935050505092915050565b5f600160ff8016901c60ff168260ff161683615623575f61563d565b600160ff8016901c60ff1660ff801661563c9190617dd6565b5b17905092915050565b60605f8490508381511061565d5784915050615786565b5f8467ffffffffffffffff811115615678576156776169da565b5b6040519080825280601f01601f1916602001820160405280156156aa5781602001600182028036833780820191505090505b5090505f5f90505b8251811015615727578281815181106156ce576156cd6179c1565b5b602001015160f81c60f81b8282815181106156ec576156eb6179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535080806001019150506156b2565b5b8581101561577f5784828281518110615744576157436179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050615728565b8193505050505b9392505050565b60605f61579983616143565b90505f81519050600681116157b2578192505050615924565b5f60025f8681526020019081526020015f205f9054906101000a900460ff1690505f60015f8781526020019081526020015f205490505f6157f28761636f565b90505f816158085761580383616143565b615883565b6001831461584b576040518060400160405280600581526020017f66616c7365000000000000000000000000000000000000000000000000000000815250615882565b6040518060400160405280600481526020017f74727565000000000000000000000000000000000000000000000000000000008152505b5b90505f61588f89615e97565b61589b885f6004611730565b6158b38960048a6158ac9190617dd6565b6004611730565b876158f3576040518060400160405280600581526020017f454d5054590000000000000000000000000000000000000000000000000000008152506158f5565b845b6040516020016159089493929190618c73565b6040516020818303038152906040529050809750505050505050505b919050565b606061594f8273ffffffffffffffffffffffffffffffffffffffff16601460ff1661638c565b9050919050565b6159ec8160405160240161596a9190617291565b6040516020818303038152906040527f41304fac000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506165ca565b50565b5f5f6159fa836165e4565b90505f60ff168160ff1603615a13576008915050615ac1565b600260ff168160ff1603615a2b576008915050615ac1565b600360ff168160ff1603615a43576010915050615ac1565b600460ff168160ff1603615a5b576020915050615ac1565b600560ff168160ff1603615a73576040915050615ac1565b600660ff168160ff1603615a8b576080915050615ac1565b600860ff168160ff1603615aa457610100915050615ac1565b600760ff168160ff1603615abc5760a0915050615ac1565b5f9150505b919050565b5f5f9054906101000a900460ff1615615b9f57615b9e6040518060400160405280600481526020017fe2949c2000000000000000000000000000000000000000000000000000000000815250615b3e8560107f2000000000000000000000000000000000000000000000000000000000000000615646565b6040518060400160405280600381526020017f207c2000000000000000000000000000000000000000000000000000000000008152508585604051602001615b8a959493929190618d12565b604051602081830303815290604052615956565b5b505050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115615be0575f600385925092509250615c81565b5f6001888888886040515f8152602001604052604051615c039493929190618d7a565b6020604051602081039080840390855afa158015615c23573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603615c74575f60015f5f1b93509350935050615c81565b805f5f5f1b935093509350505b9450945094915050565b5f600880600160ff8016901c60ff16901b8316901c9050919050565b5f6004601f811115615cbc57615cbb6177d6565b5b82601f811115615ccf57615cce6177d6565b5b1480615cff57506018601f811115615cea57615ce96177d6565b5b82601f811115615cfd57615cfc6177d6565b5b145b80615d2e57506019601f811115615d1957615d186177d6565b5b82601f811115615d2c57615d2b6177d6565b5b145b80615d5d57506002601f811115615d4857615d476177d6565b5b82601f811115615d5b57615d5a6177d6565b5b145b9050919050565b5f6009601f811115615d7957615d786177d6565b5b82601f811115615d8c57615d8b6177d6565b5b1480615dbc5750600a601f811115615da757615da66177d6565b5b82601f811115615dba57615db96177d6565b5b145b80615deb5750600b601f811115615dd657615dd56177d6565b5b82601f811115615de957615de86177d6565b5b145b80615e1a5750600c601f811115615e0557615e046177d6565b5b82601f811115615e1857615e176177d6565b5b145b9050919050565b5f81604051602001615e339190618dbd565b6040516020818303038152906040528051906020012083604051602001615e5a9190618dbd565b6040516020818303038152906040528051906020012014905092915050565b615e938282615e88575f615e8b565b60015b60ff16612439565b5050565b60605f615ea3836165e4565b90505f60ff168160ff1603615ef0576040518060400160405280600581526020017f65626f6f6c00000000000000000000000000000000000000000000000000000081525091505061613e565b600260ff168160ff1603615f3c576040518060400160405280600681526020017f6575696e7438000000000000000000000000000000000000000000000000000081525091505061613e565b600360ff168160ff1603615f88576040518060400160405280600781526020017f6575696e7431360000000000000000000000000000000000000000000000000081525091505061613e565b600460ff168160ff1603615fd4576040518060400160405280600781526020017f6575696e7433320000000000000000000000000000000000000000000000000081525091505061613e565b600560ff168160ff1603616020576040518060400160405280600781526020017f6575696e7436340000000000000000000000000000000000000000000000000081525091505061613e565b600660ff168160ff160361606c576040518060400160405280600881526020017f6575696e7431323800000000000000000000000000000000000000000000000081525091505061613e565b600860ff168160ff16036160b8576040518060400160405280600881526020017f6575696e7432353600000000000000000000000000000000000000000000000081525091505061613e565b600760ff168160ff1603616104576040518060400160405280600881526020017f656164647265737300000000000000000000000000000000000000000000000081525091505061613e565b6040518060400160405280600781526020017f756e6b6e6f776e000000000000000000000000000000000000000000000000008152509150505b919050565b60605f600161615184616600565b0190505f8167ffffffffffffffff81111561616f5761616e6169da565b5b6040519080825280601f01601f1916602001820160405280156161a15781602001600182028036833780820191505090505b5090505f82602083010190505b600115616202578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816161f7576161f66176b7565b5b0494505f85036161ae575b819350505050919050565b5f60038111156162205761621f6177d6565b5b826003811115616233576162326177d6565b5b031561636b576001600381111561624d5761624c6177d6565b5b8260038111156162605761625f6177d6565b5b03616297576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156162ab576162aa6177d6565b5b8260038111156162be576162bd6177d6565b5b0361630257805f1c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016162f99190616bbd565b60405180910390fd5b600380811115616315576163146177d6565b5b826003811115616328576163276177d6565b5b0361636a57806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016163619190618dd3565b60405180910390fd5b5b5050565b5f5f61637a836165e4565b90505f5f821860ff1614915050919050565b60605f8390505f60028460026163a29190618dec565b6163ac9190617741565b67ffffffffffffffff8111156163c5576163c46169da565b5b6040519080825280601f01601f1916602001820160405280156163f75781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061642e5761642d6179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110616491576164906179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f60018560026164cf9190618dec565b6164d99190617741565b90505b6001811115616578577f3031323334353637383961626364656600000000000000000000000000000000600f84166010811061651b5761651a6179c1565b5b1a60f81b828281518110616532576165316179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600483901c92508061657190618e2d565b90506164dc565b505f82146165bf5784846040517fe22e27eb0000000000000000000000000000000000000000000000000000000081526004016165b69291906177af565b60405180910390fd5b809250505092915050565b6165e1816165d9616751616770565b63ffffffff16565b50565b5f600880600160ff8016901c60ff16901b8316901c9050919050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061665c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381616652576166516176b7565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310616699576d04ee2d6d415b85acef8100000000838161668f5761668e6176b7565b5b0492506020810190505b662386f26fc1000083106166c857662386f26fc1000083816166be576166bd6176b7565b5b0492506010810190505b6305f5e10083106166f1576305f5e10083816166e7576166e66176b7565b5b0492506008810190505b612710831061671657612710838161670c5761670b6176b7565b5b0492506004810190505b60648310616739576064838161672f5761672e6176b7565b5b0492506002810190505b600a8310616748576001810190505b80915050919050565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b61677b819050919050565b616783618e54565b565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6167a881616796565b81146167b2575f5ffd5b50565b5f813590506167c38161679f565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6167f2826167c9565b9050919050565b616802816167e8565b811461680c575f5ffd5b50565b5f8135905061681d816167f9565b92915050565b5f5f604083850312156168395761683861678e565b5b5f616846858286016167b5565b92505060206168578582860161680f565b9150509250929050565b5f5f604083850312156168775761687661678e565b5b5f616884858286016167b5565b9250506020616895858286016167b5565b9150509250929050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126168c0576168bf61689f565b5b8235905067ffffffffffffffff8111156168dd576168dc6168a3565b5b6020830191508360018202830111156168f9576168f86168a7565b5b9250929050565b5f5f5f5f606085870312156169185761691761678e565b5b5f616925878288016167b5565b9450506020616936878288016167b5565b935050604085013567ffffffffffffffff81111561695757616956616792565b5b616963878288016168ab565b925092505092959194509250565b5f60ff82169050919050565b61698681616971565b8114616990575f5ffd5b50565b5f813590506169a18161697d565b92915050565b602081106169b3575f5ffd5b50565b5f813590506169c4816169a7565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b616a10826169ca565b810181811067ffffffffffffffff82111715616a2f57616a2e6169da565b5b80604052505050565b5f616a41616785565b9050616a4d8282616a07565b919050565b5f67ffffffffffffffff821115616a6c57616a6b6169da565b5b602082029050602081019050919050565b5f616a8f616a8a84616a52565b616a38565b90508083825260208201905060208402830185811115616ab257616ab16168a7565b5b835b81811015616adb5780616ac788826167b5565b845260208401935050602081019050616ab4565b5050509392505050565b5f82601f830112616af957616af861689f565b5b8135616b09848260208601616a7d565b91505092915050565b5f5f5f5f60808587031215616b2a57616b2961678e565b5b5f616b3787828801616993565b9450506020616b48878288016169b6565b935050604085013567ffffffffffffffff811115616b6957616b68616792565b5b616b7587828801616ae5565b925050606085013567ffffffffffffffff811115616b9657616b95616792565b5b616ba287828801616ae5565b91505092959194509250565b616bb781616796565b82525050565b5f602082019050616bd05f830184616bae565b92915050565b5f60208284031215616beb57616bea61678e565b5b5f616bf8848285016167b5565b91505092915050565b5f8115159050919050565b616c1581616c01565b82525050565b5f602082019050616c2e5f830184616c0c565b92915050565b616c3d816167e8565b82525050565b5f602082019050616c565f830184616c34565b92915050565b5f60208284031215616c7157616c7061678e565b5b5f616c7e8482850161680f565b91505092915050565b5f8160030b9050919050565b616c9c81616c87565b8114616ca6575f5ffd5b50565b5f81359050616cb781616c93565b92915050565b5f5f60408385031215616cd357616cd261678e565b5b5f616ce085828601616ca9565b9250506020616cf185828601616ca9565b9150509250929050565b5f5ffd5b5f5ffd5b5f5ffd5b5f67ffffffffffffffff821115616d2157616d206169da565b5b616d2a826169ca565b9050602081019050919050565b828183375f83830152505050565b5f616d57616d5284616d07565b616a38565b905082815260208101848484011115616d7357616d72616d03565b5b616d7e848285616d37565b509392505050565b5f82601f830112616d9a57616d9961689f565b5b8135616daa848260208601616d45565b91505092915050565b5f60808284031215616dc857616dc7616cfb565b5b616dd26080616a38565b90505f616de1848285016167b5565b5f830152506020616df484828501616993565b6020830152506040616e0884828501616993565b604083015250606082013567ffffffffffffffff811115616e2c57616e2b616cff565b5b616e3884828501616d86565b60608301525092915050565b5f5f60408385031215616e5a57616e5961678e565b5b5f83013567ffffffffffffffff811115616e7757616e76616792565b5b616e8385828601616db3565b9250506020616e948582860161680f565b9150509250929050565b5f604082019050616eb15f830185616bae565b616ebe6020830184616c0c565b9392505050565b5f67ffffffffffffffff821115616edf57616ede6169da565b5b616ee8826169ca565b9050602081019050919050565b5f616f07616f0284616ec5565b616a38565b905082815260208101848484011115616f2357616f22616d03565b5b616f2e848285616d37565b509392505050565b5f82601f830112616f4a57616f4961689f565b5b8135616f5a848260208601616ef5565b91505092915050565b5f5f5f60608486031215616f7a57616f7961678e565b5b5f616f87868287016167b5565b935050602084013567ffffffffffffffff811115616fa857616fa7616792565b5b616fb486828701616f36565b925050604084013567ffffffffffffffff811115616fd557616fd4616792565b5b616fe186828701616f36565b9150509250925092565b5f6020828403121561700057616fff61678e565b5b5f61700d84828501616ca9565b91505092915050565b61701f81616c01565b8114617029575f5ffd5b50565b5f8135905061703a81617016565b92915050565b5f602082840312156170555761705461678e565b5b5f6170628482850161702c565b91505092915050565b5f5f83601f8401126170805761707f61689f565b5b8235905067ffffffffffffffff81111561709d5761709c6168a3565b5b6020830191508360208202830111156170b9576170b86168a7565b5b9250929050565b5f5f83601f8401126170d5576170d461689f565b5b8235905067ffffffffffffffff8111156170f2576170f16168a3565b5b60208301915083602082028301111561710e5761710d6168a7565b5b9250929050565b5f5f5f5f5f5f6060878903121561712f5761712e61678e565b5b5f87013567ffffffffffffffff81111561714c5761714b616792565b5b61715889828a0161706b565b9650965050602087013567ffffffffffffffff81111561717b5761717a616792565b5b61718789828a0161706b565b9450945050604087013567ffffffffffffffff8111156171aa576171a9616792565b5b6171b689828a016170c0565b92509250509295509295509295565b5f5f5f606084860312156171dc576171db61678e565b5b5f84013567ffffffffffffffff8111156171f9576171f8616792565b5b61720586828701616f36565b9350506020617216868287016167b5565b9250506040617227868287016167b5565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61726382617231565b61726d818561723b565b935061727d81856020860161724b565b617286816169ca565b840191505092915050565b5f6020820190508181035f8301526172a98184617259565b905092915050565b5f5f5f606084860312156172c8576172c761678e565b5b5f6172d586828701616993565b93505060206172e6868287016167b5565b92505060406172f786828701616ca9565b9150509250925092565b5f5f83601f8401126173165761731561689f565b5b8235905067ffffffffffffffff811115617333576173326168a3565b5b60208301915083602082028301111561734f5761734e6168a7565b5b9250929050565b5f5f5f5f6060858703121561736e5761736d61678e565b5b5f61737b878288016167b5565b945050602061738c878288016167b5565b935050604085013567ffffffffffffffff8111156173ad576173ac616792565b5b6173b987828801617301565b925092505092959194509250565b5f5f5f606084860312156173de576173dd61678e565b5b5f84013567ffffffffffffffff8111156173fb576173fa616792565b5b61740786828701616f36565b9350506020617418868287016167b5565b92505060406174298682870161680f565b9150509250925092565b5f67ffffffffffffffff82169050919050565b61744f81617433565b8114617459575f5ffd5b50565b5f8135905061746a81617446565b92915050565b5f819050919050565b61748281617470565b811461748c575f5ffd5b50565b5f8135905061749d81617479565b92915050565b5f61010082840312156174b9576174b8616cfb565b5b6174c4610100616a38565b90505f6174d38482850161680f565b5f8301525060206174e68482850161745c565b60208301525060406174fa8482850161680f565b604083015250606061750e848285016167b5565b60608301525060806175228482850161680f565b60808301525060a06175368482850161748f565b60a08301525060c082013567ffffffffffffffff81111561755a57617559616cff565b5b61756684828501616d86565b60c08301525060e082013567ffffffffffffffff81111561758a57617589616cff565b5b61759684828501616d86565b60e08301525092915050565b5f5f604083850312156175b8576175b761678e565b5b5f83013567ffffffffffffffff8111156175d5576175d4616792565b5b6175e1858286016174a3565b92505060206175f2858286016167b5565b9150509250929050565b5f602082840312156176115761761061678e565b5b5f82013567ffffffffffffffff81111561762e5761762d616792565b5b61763a84828501616f36565b91505092915050565b5f819050919050565b5f61766661766161765c846167c9565b617643565b6167c9565b9050919050565b5f6176778261764c565b9050919050565b5f6176888261766d565b9050919050565b6176988161767e565b82525050565b5f6020820190506176b15f83018461768f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6176ee82616796565b91506176f983616796565b925082617709576177086176b7565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61774b82616796565b915061775683616796565b925082820190508082111561776e5761776d617714565b5b92915050565b5f61777e82617433565b915061778983617433565b9250828201905067ffffffffffffffff8111156177a9576177a8617714565b5b92915050565b5f6040820190506177c25f830185616bae565b6177cf6020830184616bae565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f819050919050565b5f61782661782161781c84617803565b617643565b616796565b9050919050565b6178368161780c565b82525050565b5f6060820190508181035f8301526178548186617259565b90506178636020830185616bae565b617870604083018461782d565b949350505050565b5f60608201905061788b5f830186616bae565b6178986020830185616c34565b6178a56040830184616c34565b949350505050565b6178b681616c87565b82525050565b5f6060820190506178cf5f8301866178ad565b6178dc60208301856178ad565b6178e960408301846178ad565b949350505050565b5f6040820190506179045f830185616c34565b6179116020830184616c34565b9392505050565b5f60408201905061792b5f830185616bae565b6179386020830184616c34565b9392505050565b5f6060820190506179525f830186616bae565b81810360208301526179648185617259565b905081810360408301526179788184617259565b9050949350505050565b5f8151905061799081617016565b92915050565b5f602082840312156179ab576179aa61678e565b5b5f6179b884828501617982565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83356001602003843603038112617a1657617a156179ee565b5b80840192508235915067ffffffffffffffff821115617a3857617a376179f2565b5b602083019250600182023603831315617a5457617a536179f6565b5b509250929050565b5f82825260208201905092915050565b5f617a778385617a5c565b9350617a84838584616d37565b617a8d836169ca565b840190509392505050565b5f606082019050617aab5f830187616bae565b617ab86020830186616bae565b8181036040830152617acb818486617a6c565b905095945050505050565b7f4f7574206f6620626f756e6473000000000000000000000000000000000000005f82015250565b5f617b0a600d8361723b565b9150617b1582617ad6565b602082019050919050565b5f6020820190508181035f830152617b3781617afe565b9050919050565b617b4781616971565b82525050565b5f608082019050617b605f830187617b3e565b617b6d6020830186616bae565b617b7a60408301856178ad565b617b876060830184616bae565b95945050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b617bc281616796565b82525050565b5f617bd38383617bb9565b60208301905092915050565b5f602082019050919050565b5f617bf582617b90565b617bff8185617b9a565b9350617c0a83617baa565b805f5b83811015617c3a578151617c218882617bc8565b9750617c2c83617bdf565b925050600181019050617c0d565b5085935050505092915050565b5f6040820190508181035f830152617c5f8185617beb565b9050617c6e6020830184616c34565b9392505050565b617c7e816167e8565b82525050565b617c8d81617433565b82525050565b617c9c81617470565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f617cc682617ca2565b617cd08185617cac565b9350617ce081856020860161724b565b617ce9816169ca565b840191505092915050565b5f61010083015f830151617d0a5f860182617c75565b506020830151617d1d6020860182617c84565b506040830151617d306040860182617c75565b506060830151617d436060860182617bb9565b506080830151617d566080860182617c75565b5060a0830151617d6960a0860182617c93565b5060c083015184820360c0860152617d818282617cbc565b91505060e083015184820360e0860152617d9b8282617cbc565b9150508091505092915050565b5f6040820190508181035f830152617dc08185617cf4565b9050617dcf6020830184616bae565b9392505050565b5f617de082616796565b9150617deb83616796565b9250828203905081811115617e0357617e02617714565b5b92915050565b5f819050919050565b617e23617e1e82616796565b617e09565b82525050565b5f617e348285617e12565b602082019150617e448284617e12565b6020820191508190509392505050565b5f819050919050565b5f617e77617e72617e6d84617e54565b617643565b616796565b9050919050565b617e8781617e5d565b82525050565b5f6060820190508181035f830152617ea58186617259565b9050617eb46020830185616bae565b617ec16040830184617e7e565b949350505050565b5f819050919050565b5f617eec617ee7617ee284617ec9565b617643565b616796565b9050919050565b617efc81617ed2565b82525050565b5f6060820190508181035f830152617f1a8186617259565b9050617f296020830185616bae565b617f366040830184617ef3565b949350505050565b5f617f4882616971565b915060ff8203617f5b57617f5a617714565b5b600182019050919050565b5f81905092915050565b5f617f7a82617ca2565b617f848185617f66565b9350617f9481856020860161724b565b80840191505092915050565b5f617fab8285617f70565b9150617fb78284617f70565b91508190509392505050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b5f819050919050565b61800861800382617fc3565b617fee565b82525050565b5f6180198285617f70565b91506180258284617ff7565b6001820191508190509392505050565b5f819050919050565b5f61805861805361804e84618035565b617643565b616796565b9050919050565b6180688161803e565b82525050565b5f60a0820190506180815f830188616bae565b81810360208301526180938187617259565b90506180a26040830186616bae565b6180af606083018561805f565b6180bc608083018461805f565b9695505050505050565b5f60a0820190506180d95f830188616bae565b81810360208301526180eb8187617259565b90506180fa6040830186616bae565b6181076060830185616bae565b618114608083018461805f565b9695505050505050565b5f60a0820190506181315f830188616bae565b81810360208301526181438187617259565b90506181526040830186616bae565b61815f6060830185616bae565b61816c6080830184616bae565b9695505050505050565b5f8160f81b9050919050565b5f61818c82618176565b9050919050565b6181a461819f82616971565b618182565b82525050565b5f8160601b9050919050565b5f6181c0826181aa565b9050919050565b5f6181d1826181b6565b9050919050565b6181e96181e4826167e8565b6181c7565b82525050565b5f6181fa8288617e12565b60208201915061820a8287618193565b60018201915061821a8286618193565b60018201915061822a82856181d8565b60148201915061823a8284617e12565b6020820191508190509695505050505050565b5f81905092915050565b5f61826182617231565b61826b818561824d565b935061827b81856020860161724b565b80840191505092915050565b7f202d3e2000000000000000000000000000000000000000000000000000000000815250565b5f6182b88288618257565b91506182c48287618257565b91506182d08286618257565b91506182dc8285618257565b91506182e782618287565b6004820191506182f78284618257565b91508190509695505050505050565b7f73656c65637400000000000000000000000000000000000000000000000000005f82015250565b5f61833a60068361723b565b915061834582618306565b602082019050919050565b5f6060820190508181035f8301526183678161832e565b90506183766020830185616bae565b618383604083018461782d565b9392505050565b5f6020820190508181035f8301526183a18161832e565b9050919050565b5f6040820190506183bb5f830185617b3e565b6183c86020830184617b3e565b9392505050565b5f6040820190508181035f8301526183e78185617259565b90506183f66020830184617b3e565b9392505050565b7f202a200000000000000000000000000000000000000000000000000000000000815250565b5f61842e8285618257565b9150618439826183fd565b6003820191506184498284618257565b91508190509392505050565b7f202d200000000000000000000000000000000000000000000000000000000000815250565b5f6184868285618257565b915061849182618455565b6003820191506184a18284618257565b91508190509392505050565b7f202b200000000000000000000000000000000000000000000000000000000000815250565b5f6184de8285618257565b91506184e9826184ad565b6003820191506184f98284618257565b91508190509392505050565b7f205e200000000000000000000000000000000000000000000000000000000000815250565b5f6185368285618257565b915061854182618505565b6003820191506185518284618257565b91508190509392505050565b7f2026200000000000000000000000000000000000000000000000000000000000815250565b5f61858e8285618257565b91506185998261855d565b6003820191506185a98284618257565b91508190509392505050565b7f207c200000000000000000000000000000000000000000000000000000000000815250565b5f6185e68285618257565b91506185f1826185b5565b6003820191506186018284618257565b91508190509392505050565b7f202f200000000000000000000000000000000000000000000000000000000000815250565b5f61863e8285618257565b91506186498261860d565b6003820191506186598284618257565b91508190509392505050565b7f2025200000000000000000000000000000000000000000000000000000000000815250565b5f6186968285618257565b91506186a182618665565b6003820191506186b18284618257565b91508190509392505050565b7f203c3c2000000000000000000000000000000000000000000000000000000000815250565b5f6186ee8285618257565b91506186f9826186bd565b6004820191506187098284618257565b91508190509392505050565b7f203e3e2000000000000000000000000000000000000000000000000000000000815250565b5f6187468285618257565b915061875182618715565b6004820191506187618284618257565b91508190509392505050565b7f203e3d2000000000000000000000000000000000000000000000000000000000815250565b5f61879e8285618257565b91506187a98261876d565b6004820191506187b98284618257565b91508190509392505050565b7f203c3d2000000000000000000000000000000000000000000000000000000000815250565b5f6187f68285618257565b9150618801826187c5565b6004820191506188118284618257565b91508190509392505050565b7f203c200000000000000000000000000000000000000000000000000000000000815250565b5f61884e8285618257565b91506188598261881d565b6003820191506188698284618257565b91508190509392505050565b7f203e200000000000000000000000000000000000000000000000000000000000815250565b5f6188a68285618257565b91506188b182618875565b6003820191506188c18284618257565b91508190509392505050565b7f6d696e2800000000000000000000000000000000000000000000000000000000815250565b7f2c20000000000000000000000000000000000000000000000000000000000000815250565b7f2900000000000000000000000000000000000000000000000000000000000000815250565b5f618949826188cd565b6004820191506189598285618257565b9150618964826188f3565b6002820191506189748284618257565b915061897f82618919565b6001820191508190509392505050565b7f6d61782800000000000000000000000000000000000000000000000000000000815250565b5f6189bf8261898f565b6004820191506189cf8285618257565b91506189da826188f3565b6002820191506189ea8284618257565b91506189f582618919565b6001820191508190509392505050565b7f203d3d2000000000000000000000000000000000000000000000000000000000815250565b5f618a368285618257565b9150618a4182618a05565b600482019150618a518284618257565b91508190509392505050565b7f20213d2000000000000000000000000000000000000000000000000000000000815250565b5f618a8e8285618257565b9150618a9982618a5d565b600482019150618aa98284618257565b91508190509392505050565b7f4648452e61734500000000000000000000000000000000000000000000000000815250565b5f618ae582618ab5565b600782019150618af58284618257565b915081905092915050565b7f2800000000000000000000000000000000000000000000000000000000000000815250565b5f618b318285618257565b9150618b3c82618b00565b600182019150618b4c8284618257565b9150618b5782618919565b6001820191508190509392505050565b7f203f200000000000000000000000000000000000000000000000000000000000815250565b7f203a200000000000000000000000000000000000000000000000000000000000815250565b5f618bbe8286618257565b9150618bc982618b67565b600382019150618bd98285618257565b9150618be482618b8d565b600382019150618bf48284618257565b9150819050949350505050565b7f2e2e000000000000000000000000000000000000000000000000000000000000815250565b7f295b000000000000000000000000000000000000000000000000000000000000815250565b7f5d00000000000000000000000000000000000000000000000000000000000000815250565b5f618c7e8287618257565b9150618c8982618b00565b600182019150618c998286618257565b9150618ca482618c01565b600282019150618cb48285618257565b9150618cbf82618c27565b600282019150618ccf8284618257565b9150618cda82618c4d565b60018201915081905095945050505050565b7f20203d3e20200000000000000000000000000000000000000000000000000000815250565b5f618d1d8288618257565b9150618d298287618257565b9150618d358286618257565b9150618d418285618257565b9150618d4c82618cec565b600682019150618d5c8284618257565b91508190509695505050505050565b618d7481617470565b82525050565b5f608082019050618d8d5f830187618d6b565b618d9a6020830186617b3e565b618da76040830185618d6b565b618db46060830184618d6b565b95945050505050565b5f618dc88284618257565b915081905092915050565b5f602082019050618de65f830184618d6b565b92915050565b5f618df682616796565b9150618e0183616796565b9250828202618e0f81616796565b91508282048414831517618e2657618e25617714565b5b5092915050565b5f618e3782616796565b91505f8203618e4957618e48617714565b5b600182039050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfea26469706673582212208748b8bcaf83a35ceea5a1af25cc3520a39b1fe1ace0f782e8accd39a200e45b64736f6c63430008210033',
1211
+ } as const satisfies MockArtifact;