Skip to content

Instantly share code, notes, and snippets.

@spradeep28
Created November 16, 2023 23:53
Show Gist options
  • Save spradeep28/200fe284964f4d16de70dc402d49753e to your computer and use it in GitHub Desktop.
Save spradeep28/200fe284964f4d16de70dc402d49753e to your computer and use it in GitHub Desktop.
65
970
230
809
516
57
334
415
674
332
109
286
370
757
595
147
108
23
478
517
334
173
948
727
23
846
270
167
55
858
324
573
150
981
586
887
32
398
777
74
516
756
129
198
256
725
565
167
717
394
92
29
844
591
358
468
259
994
872
588
474
183
107
46
842
390
101
887
870
841
467
149
21
476
80
424
159
275
175
461
970
160
788
58
479
498
369
28
487
50
270
383
366
780
373
705
330
142
949
349
473
159
872
878
201
906
70
486
632
608
122
720
227
686
173
959
638
646
664
645
718
483
852
392
311
457
352
22
934
283
802
553
276
236
751
343
528
328
969
558
163
328
771
726
977
875
265
686
590
975
620
637
39
115
937
272
277
763
789
646
213
493
647
504
937
687
781
666
583
158
825
212
659
257
436
196
140
248
339
230
361
544
935
638
627
289
867
272
103
584
180
703
449
771
118
396
934
16
548
993
704
457
233
401
827
376
146
606
922
516
284
889
475
978
475
984
16
77
610
254
636
662
473
213
25
463
215
173
35
741
125
787
289
425
973
1
167
121
445
702
532
366
678
764
125
349
13
179
522
493
989
720
438
660
983
533
487
27
644
750
865
1
176
694
695
798
925
413
250
970
821
421
361
920
761
27
676
92
194
897
612
610
283
881
906
899
426
554
403
826
869
730
0
866
580
888
43
64
69
176
329
469
292
991
591
346
1
607
934
784
572
389
979
654
420
390
702
24
102
949
508
361
280
65
777
359
165
21
7
525
760
938
254
733
707
463
60
887
531
380
982
305
355
503
818
495
472
293
816
195
904
475
481
431
260
130
627
460
622
696
300
37
133
637
675
465
592
741
895
91
109
582
694
546
208
488
786
959
192
834
879
649
228
621
630
107
598
420
134
133
185
471
230
974
74
76
852
383
267
419
359
484
510
33
177
935
310
998
270
598
199
998
836
14
97
856
398
319
549
92
765
412
945
160
265
638
619
722
183
674
468
468
885
675
636
196
912
721
16
199
175
775
944
350
557
361
361
594
861
257
606
734
767
746
788
346
153
739
414
915
940
152
943
849
712
100
546
744
764
141
39
993
758
190
888
18
584
341
875
359
388
894
437
987
517
372
286
662
713
915
964
146
529
416
376
147
902
26
398
175
270
335
532
540
607
495
222
801
982
304
166
56
868
448
744
567
277
298
651
377
684
832
39
219
863
868
794
80
983
269
238
498
223
521
830
260
491
896
220
680
48
542
961
820
148
114
99
143
691
796
986
346
367
939
875
625
482
464
812
705
860
466
781
499
338
488
858
795
437
11
625
965
874
928
600
86
133
149
865
480
325
499
834
421
298
900
905
184
740
258
762
295
129
240
833
471
385
899
162
288
450
850
227
273
954
965
611
643
147
290
866
186
156
776
775
998
333
325
572
927
744
777
833
551
301
716
848
102
790
959
404
987
415
455
242
600
517
16
320
632
568
338
216
331
726
959
605
134
677
288
10
718
852
440
104
712
388
261
609
620
341
579
450
628
217
878
763
209
126
663
864
232
776
942
336
733
681
512
78
668
699
746
46
618
330
615
427
62
116
127
955
306
425
190
370
187
971
534
397
657
840
718
116
836
994
419
764
214
285
641
951
882
13
829
624
216
665
521
268
468
418
728
356
449
194
362
948
924
249
524
992
571
283
608
129
486
859
498
21
467
591
924
556
97
898
586
10
202
67
501
141
603
727
101
995
278
964
240
423
634
533
424
451
555
732
514
803
300
551
753
411
315
963
129
389
601
526
839
299
578
112
960
632
867
273
61
427
367
924
413
34
773
654
131
874
282
891
956
201
267
969
200
673
423
907
57
27
459
863
322
934
663
424
687
837
958
645
120
306
930
121
694
524
205
137
849
681
380
586
916
478
182
874
715
590
111
19
161
915
730
678
822
818
699
601
673
233
501
624
679
400
581
665
903
622
585
800
899
669
81
746
595
935
668
295
893
266
628
987
367
294
727
12
876
186
589
70
129
454
17
946
200
181
163
80
940
587
21
198
25
932
339
480
764
883
454
807
287
868
614
814
591
919
508
479
452
155
41
163
606
7
269
576
858
506
23
447
397
595
753
5
186
667
305
46
303
673
927
91
34
757
406
390
76
517
806
330
34
130
103
56
545
78
31
372
235
516
159
187
930
888
96
444
991
872
302
566
33
818
694
406
20
18
371
320
724
994
730
613
105
878
311
883
367
243
627
944
43
412
921
332
474
276
629
917
77
643
556
998
328
723
161
250
1
919
392
264
408
633
495
188
884
335
795
241
842
71
862
254
27
409
444
433
324
322
688
579
562
917
803
863
44
719
16
384
328
348
194
678
593
9
371
25
913
667
104
72
223
268
283
477
53
465
100
543
133
159
439
151
355
392
577
72
383
846
145
109
988
824
293
411
718
484
966
259
344
132
128
154
210
508
445
138
233
376
720
464
960
999
455
613
314
993
17
759
843
721
331
508
432
778
370
468
489
375
263
164
418
377
878
283
838
442
380
641
628
592
59
224
587
724
207
228
8
962
575
988
889
551
990
141
120
207
121
946
463
786
167
256
986
28
283
834
720
411
80
173
29
606
636
156
91
734
569
458
84
230
274
707
75
965
260
978
767
372
717
764
96
958
857
327
140
88
156
137
842
556
492
771
653
484
269
787
827
644
393
386
654
137
715
906
724
823
516
64
850
321
611
392
509
207
655
397
949
188
830
750
259
294
450
511
477
255
814
781
177
654
911
680
769
830
273
24
463
321
480
331
21
556
481
420
179
216
212
152
333
646
152
635
128
993
351
928
266
830
371
335
319
786
816
334
509
444
155
902
527
817
346
848
173
438
443
745
374
548
552
619
411
451
278
715
629
855
694
709
611
168
113
782
974
147
69
546
11
543
629
127
413
349
345
922
484
78
200
399
192
543
89
423
323
764
970
829
645
542
809
195
732
474
915
820
238
643
978
214
844
717
925
57
911
444
827
245
250
930
791
401
648
773
978
875
637
975
586
873
472
978
909
102
878
784
398
355
643
279
92
523
50
510
765
281
870
748
253
749
754
452
775
261
562
506
289
827
456
449
117
97
101
291
346
809
997
168
896
714
126
593
8
432
72
158
958
662
945
47
919
427
924
185
685
124
660
449
434
178
356
128
819
157
404
23
943
155
756
797
916
254
9
471
577
255
882
654
261
931
950
360
246
872
982
519
826
556
220
928
402
911
601
179
639
302
767
778
697
178
500
912
557
745
611
401
571
621
206
89
394
481
627
333
701
644
364
450
972
199
621
795
265
118
705
565
519
641
75
757
590
749
374
986
76
83
14
945
683
770
318
268
429
269
828
503
150
344
858
45
959
884
333
953
86
204
62
960
222
178
178
274
21
552
147
555
566
74
264
399
285
768
296
327
502
721
310
944
377
825
404
942
17
359
860
750
926
345
957
676
843
430
919
871
424
141
653
961
977
657
782
840
471
303
863
122
851
803
909
365
326
80
166
304
398
821
456
580
149
550
367
872
173
944
220
780
492
437
888
185
12
33
764
740
522
917
638
86
193
748
300
741
262
839
307
782
859
49
658
966
176
215
64
561
370
690
66
403
433
313
138
813
504
907
705
587
862
67
328
390
81
187
15
798
519
494
405
786
423
593
917
65
149
541
838
923
894
917
651
943
559
856
72
921
567
861
687
47
257
766
169
578
889
87
448
660
789
790
185
798
35
275
636
783
352
81
960
140
586
44
254
603
533
37
919
159
30
963
551
906
373
816
951
671
724
671
37
219
669
706
848
25
898
394
330
951
810
874
481
641
4
472
92
818
890
828
840
684
235
559
264
508
972
518
840
548
956
221
548
65
167
157
261
547
862
665
251
53
897
350
68
607
104
264
179
209
343
620
313
786
134
323
861
836
16
361
656
715
43
917
968
114
27
536
740
417
100
860
902
949
779
307
848
31
327
896
299
994
124
297
114
390
327
90
877
16
319
675
711
486
518
527
220
816
78
494
255
308
204
170
78
977
263
401
653
779
556
690
399
181
304
167
950
152
438
227
157
790
599
924
752
475
877
763
809
359
785
927
885
812
642
867
884
785
139
779
39
786
771
466
848
894
170
675
492
831
175
21
631
778
25
884
116
68
860
467
965
960
370
171
936
602
781
979
142
605
894
700
683
306
546
550
761
621
595
583
320
567
179
840
172
769
156
954
385
223
192
729
759
559
87
116
236
554
636
479
168
828
516
719
437
100
538
185
697
132
241
312
634
515
309
685
783
61
998
886
111
427
314
350
719
71
286
588
912
132
670
539
498
877
558
591
251
788
232
908
471
754
959
767
8
690
496
359
407
767
438
715
629
13
407
268
842
738
943
320
810
202
922
262
185
184
374
183
502
40
941
106
900
6
949
247
32
47
505
460
40
604
216
477
590
622
315
961
39
944
404
765
678
204
124
181
386
113
575
689
557
230
499
670
726
932
217
727
737
230
541
732
686
395
547
623
732
344
670
506
650
536
675
120
970
74
292
745
483
529
212
961
715
751
583
185
706
885
149
749
134
131
248
677
342
314
540
565
661
382
235
750
313
835
894
406
768
562
452
196
505
10
171
500
716
318
357
330
106
22
577
573
482
438
283
542
457
897
502
72
305
541
915
633
755
991
333
571
461
51
16
479
932
493
644
542
467
175
126
483
402
270
352
792
248
828
772
692
340
14
285
351
77
529
358
47
505
162
868
859
672
959
369
832
907
674
783
664
146
785
883
628
871
632
586
219
951
946
93
55
877
980
663
296
61
664
896
981
677
161
758
653
487
695
514
757
417
668
847
628
847
658
952
987
135
308
815
542
724
55
299
810
730
575
835
394
0
988
376
300
612
546
137
412
874
278
398
392
156
753
123
992
65
903
781
121
447
662
845
449
847
34
792
754
148
996
23
692
141
513
89
796
414
681
190
84
409
952
432
456
610
414
958
838
974
954
885
905
121
10
129
708
189
613
585
826
614
547
332
889
437
637
809
406
854
5
154
594
569
506
499
867
153
727
251
956
583
442
400
923
201
640
607
319
933
449
24
488
104
62
37
879
241
982
745
977
580
171
650
1
133
123
424
614
167
229
610
534
524
840
932
559
981
333
565
821
904
269
222
114
185
91
846
139
537
252
748
413
927
354
556
345
722
578
803
241
682
300
490
831
386
250
6
813
799
713
156
981
570
841
662
598
217
43
252
212
218
763
106
839
238
220
744
304
777
357
625
98
904
138
545
199
574
217
614
243
200
247
200
984
539
211
684
171
95
654
174
297
246
862
689
799
370
808
956
972
2
358
801
686
773
940
605
749
779
618
993
805
924
589
145
218
835
37
752
12
481
632
769
401
918
951
391
275
799
369
515
968
137
761
8
166
677
767
430
616
667
325
927
390
450
84
635
736
745
23
92
712
630
410
474
221
793
83
308
175
165
843
881
397
222
104
426
479
195
886
401
266
466
194
949
331
551
315
221
180
550
629
658
889
897
567
832
10
774
525
111
593
504
704
868
347
569
952
596
738
763
59
953
506
585
922
21
807
676
279
363
14
378
310
57
608
357
872
612
154
740
877
266
220
612
785
690
793
423
89
275
460
653
584
282
330
580
284
976
374
669
70
6
251
443
340
263
208
59
483
140
535
947
140
241
707
755
978
121
452
571
508
677
358
122
163
150
60
979
418
701
428
803
24
37
638
37
122
243
766
786
790
847
158
102
405
29
394
467
437
672
752
366
612
825
632
908
492
18
996
430
82
809
834
558
370
978
700
261
513
464
193
218
274
432
799
743
768
758
289
201
209
105
382
560
435
848
270
309
733
54
959
106
336
289
197
861
996
192
632
296
382
620
775
320
350
704
972
498
442
596
525
748
819
601
536
965
565
470
899
782
880
699
292
113
820
763
925
807
810
994
247
865
424
561
760
243
590
181
489
509
929
727
415
55
690
706
101
527
617
117
469
200
784
865
141
754
255
496
847
435
515
291
415
808
707
956
62
289
448
172
316
678
398
383
997
108
17
166
617
139
284
433
628
823
999
80
701
503
793
11
347
785
678
218
850
538
920
782
965
147
57
545
19
836
153
119
910
962
183
73
517
579
140
346
124
627
863
814
665
65
529
466
155
655
540
712
726
247
493
239
34
820
590
528
678
189
117
695
380
293
413
114
391
784
332
709
58
346
313
773
731
10
830
472
456
723
668
461
683
143
745
523
221
946
123
931
757
27
406
510
261
746
981
2
933
54
508
754
342
456
704
905
545
363
113
205
201
945
370
647
155
790
589
532
189
26
532
67
456
506
143
245
433
747
37
203
803
273
326
919
340
873
87
754
816
238
970
843
844
643
563
842
421
87
406
946
979
806
877
619
417
782
105
465
624
830
352
746
33
552
733
855
851
597
281
185
15
503
266
625
506
563
577
36
605
490
944
58
402
80
961
763
828
577
93
315
300
81
178
1
841
729
923
66
409
256
76
818
369
128
391
567
591
365
387
766
939
117
901
458
172
769
541
20
883
356
545
405
716
212
856
635
278
256
25
868
728
540
386
864
971
53
351
578
320
707
691
978
870
630
62
989
127
775
362
311
541
325
642
695
473
761
365
715
493
559
950
999
151
778
647
627
151
3
676
349
936
715
993
60
17
703
290
33
168
967
323
377
462
108
51
227
592
870
421
124
564
801
469
270
960
982
732
577
129
958
841
350
78
259
721
391
958
877
474
650
141
755
283
440
3
744
104
929
973
94
772
879
628
105
634
619
828
988
936
591
742
427
280
156
240
701
80
546
936
196
694
340
99
101
792
373
135
191
611
693
454
221
638
72
535
824
128
298
286
0
85
555
794
961
958
936
990
243
71
514
747
224
868
454
611
309
539
317
393
443
338
520
430
276
841
93
749
282
426
294
457
945
712
458
817
555
624
855
135
110
510
978
783
451
561
419
206
492
266
94
713
720
459
89
246
47
54
435
812
118
766
890
212
719
844
717
358
687
643
970
394
730
935
780
639
475
473
18
492
396
59
679
105
54
450
834
49
538
821
697
794
781
656
893
968
624
567
468
915
689
126
13
724
379
124
673
734
80
763
43
353
816
697
535
868
894
504
884
284
409
297
154
984
629
238
268
653
620
63
302
914
439
144
643
150
1
506
228
144
159
57
820
28
387
183
37
690
567
353
169
524
343
600
135
24
369
528
271
520
585
683
225
912
44
265
632
999
74
3
793
868
573
374
590
26
911
306
443
387
603
602
230
877
202
652
510
907
337
612
3
169
607
681
135
920
917
761
847
362
27
447
647
524
479
724
189
351
756
342
703
351
873
176
956
526
724
633
199
613
479
473
777
838
419
320
909
669
256
223
605
880
593
469
337
502
839
852
846
528
105
630
515
125
742
94
776
142
512
899
968
270
455
182
58
181
674
96
118
37
453
148
203
770
799
14
385
715
970
601
495
786
57
34
990
400
716
788
337
895
739
282
878
9
61
361
605
216
344
232
844
832
246
596
120
953
861
975
853
921
348
537
856
861
898
39
76
976
449
862
138
719
866
262
429
930
22
302
913
823
821
150
825
369
474
922
898
343
774
312
823
951
676
862
92
346
28
497
549
74
195
251
37
125
648
107
477
139
929
170
99
475
713
984
264
813
432
916
475
662
976
46
749
204
121
622
194
685
283
362
555
474
17
587
368
460
247
885
109
737
865
783
739
462
548
136
435
881
351
274
641
982
426
193
538
354
146
890
954
229
824
861
932
626
620
107
646
69
702
998
607
519
374
792
908
898
304
73
401
648
122
268
593
377
374
503
302
402
848
697
303
374
446
492
755
277
91
446
747
498
372
531
479
763
356
595
642
603
499
467
346
650
631
111
62
487
693
929
134
661
629
117
689
743
817
447
231
321
351
621
494
200
470
316
786
981
258
485
960
144
478
394
506
789
325
297
384
461
453
614
349
645
608
782
807
818
830
370
754
762
549
903
213
581
6
857
802
881
242
696
683
939
139
475
749
685
219
702
661
834
453
816
945
327
386
374
298
377
856
625
888
227
176
784
11
953
276
105
546
650
689
739
298
14
4
526
47
897
791
984
839
842
986
411
582
52
43
778
306
820
150
228
542
78
887
334
876
948
829
259
199
804
313
566
84
821
536
929
928
957
921
608
744
172
392
820
937
114
331
51
113
7
7
60
837
592
396
650
687
663
516
159
182
430
597
950
566
31
440
234
726
113
980
517
221
572
598
376
913
843
531
803
125
685
255
801
417
666
891
530
57
516
166
745
450
312
101
716
819
564
355
353
308
883
775
131
939
83
126
885
955
18
628
480
823
594
405
167
95
605
430
338
86
305
648
403
414
939
497
236
413
350
819
93
50
719
193
262
405
60
955
775
260
331
265
938
370
663
26
407
660
119
67
89
683
779
801
263
368
862
214
486
143
501
474
541
916
530
46
153
634
177
208
425
639
219
705
198
518
115
232
1
558
796
126
807
619
618
655
88
759
249
33
386
30
900
680
693
370
123
651
458
848
838
197
566
515
721
18
774
962
272
361
494
55
214
783
946
430
293
195
100
120
442
578
751
764
336
441
448
558
64
435
561
291
189
465
202
179
574
257
896
692
696
503
534
856
346
743
416
698
911
389
762
258
535
230
983
381
402
310
780
11
891
379
797
329
42
147
88
582
638
687
102
97
631
917
969
221
85
233
999
246
159
76
288
962
155
794
951
848
146
31
519
631
872
563
252
300
665
317
245
205
755
126
125
29
17
231
28
553
48
976
767
572
201
752
352
230
671
312
115
316
711
13
670
788
551
770
903
90
771
468
181
464
579
588
846
24
957
500
582
817
890
205
986
769
785
989
13
38
165
548
457
934
565
264
492
858
607
657
417
483
799
795
698
747
851
161
614
627
971
478
896
63
174
934
264
929
332
457
923
7
698
245
956
286
706
110
373
482
609
705
356
994
637
636
604
448
152
163
107
911
97
353
585
404
946
646
292
140
860
734
739
243
964
673
519
901
341
277
635
707
661
286
863
401
79
299
826
280
31
604
88
697
755
745
538
758
305
441
327
867
312
756
275
925
138
716
365
305
976
10
478
229
50
896
324
86
386
614
699
133
408
565
35
611
77
941
769
537
543
255
458
573
633
338
944
854
797
491
714
627
16
382
531
58
933
287
653
813
200
791
549
522
155
632
110
894
182
513
396
243
427
368
737
181
438
759
716
331
154
728
807
596
634
517
483
599
157
159
324
817
179
115
645
816
155
604
664
29
156
550
972
284
403
874
315
637
393
421
78
845
221
963
558
222
400
46
991
665
147
50
763
502
748
74
648
137
119
485
610
475
487
72
569
559
858
935
731
455
766
973
395
786
263
734
885
308
760
256
289
79
348
524
591
72
277
408
58
634
578
70
671
166
439
523
72
961
327
859
856
756
989
906
735
551
389
559
75
75
902
830
102
369
519
551
686
70
366
769
107
517
314
272
434
239
607
58
8
832
220
182
980
975
617
378
748
250
516
866
932
659
468
953
930
873
39
518
466
833
408
924
937
257
508
314
734
696
956
615
320
946
196
484
123
903
34
56
213
512
208
99
372
205
677
786
171
788
772
94
99
463
855
555
862
882
937
592
11
966
13
736
767
197
914
524
197
882
930
119
315
83
788
124
979
320
169
491
861
784
446
517
340
887
52
514
73
366
961
224
702
275
432
267
706
54
963
275
427
316
945
606
198
177
928
612
442
477
856
375
75
709
678
360
442
330
566
150
636
902
730
7
892
706
458
51
2
602
659
553
8
17
17
880
734
273
933
953
891
464
158
860
669
857
2
448
869
126
970
273
73
972
727
506
306
91
205
181
521
17
24
545
957
845
104
513
53
777
847
193
378
696
940
200
155
409
229
123
516
723
578
247
847
956
51
890
440
273
646
182
12
958
980
172
499
844
21
811
431
512
826
237
511
542
565
169
446
453
900
343
740
235
192
380
475
121
126
50
161
240
976
422
172
803
362
526
283
479
515
501
545
758
4
123
329
503
966
281
209
401
687
442
32
949
839
974
576
514
988
173
256
164
991
882
609
756
710
634
936
125
492
798
471
67
242
257
141
571
321
631
586
902
793
378
869
520
748
121
7
396
670
453
797
917
746
972
506
997
910
257
802
688
210
859
337
753
519
750
625
476
651
683
762
800
802
874
853
625
585
93
928
407
955
807
62
544
402
494
87
756
45
244
522
347
692
886
182
864
884
985
914
635
302
18
633
610
440
725
850
698
909
743
643
575
928
106
638
770
519
541
456
900
617
235
200
272
975
191
740
493
576
983
923
217
199
7
828
656
217
23
47
439
155
667
18
197
631
442
235
377
389
728
623
528
240
947
183
133
861
394
425
389
13
294
243
69
850
56
143
360
547
462
60
552
611
322
572
577
197
833
708
598
918
124
459
149
361
520
458
270
193
667
660
453
833
716
190
285
30
954
211
906
374
631
670
450
914
39
261
503
463
978
100
488
995
760
230
115
860
251
811
814
490
38
683
994
493
673
277
839
564
920
483
629
757
217
877
60
785
824
1
401
214
853
126
295
318
892
719
462
124
238
516
535
149
521
152
393
562
195
931
419
1
103
423
824
599
780
370
175
511
456
184
984
58
997
114
837
333
787
889
858
93
5
700
656
986
991
812
465
857
312
652
610
445
246
231
527
221
451
149
304
158
523
285
354
966
78
395
32
500
617
665
946
604
130
246
464
237
339
50
618
859
921
885
581
550
629
585
201
701
274
12
153
12
237
345
718
368
225
147
9
41
664
932
981
776
363
239
694
307
232
905
564
850
195
179
328
899
167
539
173
166
829
680
145
37
268
523
394
447
779
567
377
670
965
139
693
355
538
167
501
212
795
918
897
610
718
726
253
145
868
498
361
705
327
869
417
305
350
499
879
401
241
937
600
284
537
172
442
465
695
696
525
768
544
627
949
647
37
568
944
959
345
457
349
79
378
612
104
104
596
835
614
568
322
304
265
758
866
829
360
977
906
24
571
334
785
694
299
743
654
722
817
272
271
409
515
6
927
337
557
997
527
895
353
885
385
237
174
214
642
932
440
904
903
766
525
11
283
416
792
35
35
910
598
578
281
990
110
391
859
412
959
472
688
588
497
753
350
44
529
760
945
303
985
51
539
111
412
708
180
52
581
852
734
538
836
625
711
960
936
704
226
497
276
195
863
457
88
30
760
180
593
543
654
939
698
956
594
841
172
694
496
544
198
693
956
243
102
121
783
250
189
5
817
507
438
973
178
434
978
214
348
817
726
821
585
9
403
333
334
457
580
201
386
716
159
430
546
219
174
209
895
358
321
620
333
711
286
445
293
880
534
698
996
327
573
526
843
713
471
254
268
248
337
169
968
688
652
930
383
220
815
810
146
42
455
63
141
463
828
981
787
698
681
786
615
240
893
30
486
825
418
649
55
779
48
621
159
570
43
539
108
171
189
945
392
606
250
538
949
91
207
985
951
580
79
259
645
826
751
640
47
454
435
899
200
298
121
358
214
894
991
315
374
887
705
614
569
708
605
339
858
378
81
577
576
610
901
416
780
129
686
386
573
628
853
982
786
672
895
325
331
380
551
590
120
859
613
125
245
379
561
840
867
437
52
646
536
382
647
323
45
175
874
689
535
937
462
433
189
609
592
357
94
341
920
377
148
362
14
326
319
659
857
681
849
841
289
785
779
870
961
302
190
373
29
486
201
239
735
954
143
563
48
807
430
571
345
690
129
399
393
181
391
907
400
647
544
636
871
697
263
774
916
708
509
135
812
385
214
285
76
261
390
590
595
397
936
159
525
176
502
914
449
750
471
528
19
966
879
45
121
441
801
893
922
793
104
873
977
313
267
204
762
488
237
334
38
427
621
764
692
104
627
689
595
921
785
204
759
721
214
330
564
565
59
242
489
515
143
202
125
551
982
788
580
176
444
620
215
289
742
175
821
826
93
241
698
719
62
11
995
406
77
162
799
663
357
497
977
990
363
506
263
103
609
671
598
306
373
45
445
875
387
731
361
398
132
82
924
257
582
843
819
481
147
292
651
971
76
245
82
870
671
188
46
899
845
944
12
702
483
4
182
958
900
301
335
734
515
428
789
848
902
234
417
802
825
363
354
55
281
796
150
668
285
144
159
194
345
414
848
296
446
814
516
730
729
729
923
813
475
129
740
573
437
760
792
873
644
279
907
434
229
655
795
185
567
232
691
165
726
835
400
788
812
715
237
747
728
39
423
590
291
507
15
485
836
297
38
967
329
138
739
691
675
459
804
665
906
9
919
111
473
935
5
421
533
674
828
837
963
399
545
426
381
597
473
540
248
80
612
911
32
965
823
446
346
921
817
195
408
899
665
467
634
968
921
141
284
402
924
454
296
171
865
276
132
970
980
443
653
66
705
259
300
445
580
883
747
889
743
252
409
897
7
168
960
242
510
839
752
958
511
543
797
483
537
7
491
160
438
622
703
435
465
624
800
757
626
912
880
720
880
248
801
452
266
379
447
947
862
394
715
812
32
433
678
8
79
747
316
48
600
760
648
588
74
563
671
972
566
996
596
335
476
83
566
868
687
725
409
309
496
742
632
40
189
366
570
11
691
457
427
850
446
434
48
249
20
796
467
528
363
871
125
222
872
434
561
238
467
713
41
338
847
943
15
502
610
148
497
84
678
130
885
288
340
844
654
213
974
725
419
669
35
278
323
142
157
64
553
931
379
357
466
646
967
377
256
283
289
486
570
722
850
853
92
687
330
378
538
158
613
122
6
443
670
912
946
38
224
752
444
420
906
370
755
480
490
613
259
903
646
793
235
60
737
777
584
553
822
388
585
862
523
745
582
82
56
245
801
787
885
740
124
968
389
204
563
190
487
967
541
399
565
649
696
299
964
207
26
206
635
739
523
512
385
487
112
675
38
777
934
777
454
805
960
521
334
621
169
515
863
886
626
406
630
45
365
512
333
415
909
495
886
91
105
273
421
829
153
417
510
519
979
941
569
992
263
948
819
936
237
84
750
139
716
395
677
949
201
968
509
378
423
305
451
59
725
206
32
421
24
140
804
715
436
311
938
684
316
94
988
42
908
908
963
252
322
812
78
426
180
821
712
502
739
261
906
494
581
36
90
591
432
613
626
102
904
411
168
627
458
558
503
372
900
49
206
766
53
783
265
71
812
136
589
61
366
59
69
710
129
166
496
15
735
659
120
976
432
830
140
801
212
669
994
332
999
958
12
608
402
851
334
448
241
454
392
736
301
441
101
411
656
878
568
106
482
184
26
770
1
843
689
94
597
741
693
468
660
917
329
848
675
871
390
342
263
572
950
120
146
302
414
519
308
547
197
899
155
825
188
96
237
726
325
229
507
457
93
209
260
930
510
346
983
395
317
289
554
34
742
947
162
211
401
90
559
760
484
636
309
14
78
901
378
431
267
223
589
973
620
926
187
167
383
117
170
302
479
389
663
346
323
822
126
432
524
994
968
855
355
562
875
789
408
54
842
720
536
371
398
914
527
540
616
104
873
417
436
277
668
945
191
708
225
771
546
674
146
580
903
665
821
682
216
684
571
595
287
120
655
849
227
498
608
194
982
1
771
621
469
58
388
344
377
610
816
621
940
435
515
603
559
450
82
800
628
865
610
902
15
762
775
539
531
185
579
848
398
419
975
650
771
491
910
69
207
939
599
100
134
437
249
525
171
999
287
406
861
248
600
765
609
216
788
210
781
967
781
198
673
978
684
429
828
86
869
215
209
151
397
430
791
187
436
849
764
144
893
808
793
909
272
175
80
313
959
251
53
430
119
562
499
733
359
57
820
131
330
507
781
703
286
761
230
885
128
713
724
604
51
307
880
955
729
338
928
799
442
340
577
500
859
202
562
633
856
210
906
644
658
366
634
160
134
278
152
570
102
27
421
50
401
785
906
288
487
572
671
788
759
377
690
816
655
72
748
592
240
893
560
18
246
901
270
782
414
819
198
122
839
622
456
278
724
333
782
841
498
965
826
238
136
114
894
8
869
932
587
950
354
648
110
21
903
442
987
44
795
265
933
840
748
23
396
795
1
802
56
377
436
81
525
836
626
358
610
470
666
846
91
137
257
529
569
993
452
616
940
293
351
604
244
551
47
354
481
800
440
711
23
5
999
148
510
886
368
246
468
672
879
171
62
714
28
169
993
17
497
839
490
160
845
251
737
423
480
561
500
396
883
431
956
361
53
817
49
729
522
105
939
338
391
965
625
406
774
776
839
458
213
48
950
478
431
34
352
506
931
830
969
822
938
320
195
121
774
437
563
27
362
16
328
841
782
469
13
463
14
922
231
26
445
618
22
996
222
455
232
133
607
293
117
343
476
291
565
521
649
724
295
220
364
258
338
483
299
710
911
538
55
434
539
573
603
561
393
930
934
922
469
871
95
546
841
616
544
50
77
414
856
825
170
144
515
351
297
976
577
764
903
699
335
229
666
444
168
560
847
97
286
165
6
64
218
747
669
287
825
30
370
957
662
875
963
165
260
646
778
226
753
996
930
526
677
518
63
346
517
610
797
276
721
383
571
787
735
75
906
345
54
443
597
652
770
212
116
368
388
87
690
368
854
117
632
105
457
93
453
342
96
982
406
17
798
595
930
471
574
83
698
799
24
208
445
946
981
887
732
687
68
966
999
478
263
747
244
128
974
580
515
2
893
532
56
169
714
691
366
141
45
309
731
957
845
167
732
522
668
850
747
565
989
508
322
547
50
752
455
630
103
752
483
845
54
427
10
881
426
300
609
184
316
227
536
253
550
260
639
250
977
366
830
388
158
252
743
391
816
76
399
897
441
530
5
98
289
653
484
696
863
701
100
825
977
965
384
70
605
935
979
22
669
899
55
640
347
354
491
29
141
963
26
563
250
204
236
793
969
739
914
125
813
920
463
303
665
12
810
370
429
793
925
16
276
930
679
709
323
204
201
784
286
138
303
192
502
412
669
288
489
659
790
912
735
611
99
170
938
358
218
807
907
550
36
834
904
919
699
840
698
982
592
767
665
117
258
902
592
256
602
666
267
833
602
474
541
614
760
241
507
557
854
418
260
526
269
203
277
491
48
999
455
239
642
236
178
403
342
25
546
982
776
755
816
338
778
89
659
560
68
665
868
914
29
683
130
0
160
57
335
190
971
294
175
955
524
583
502
346
157
134
883
112
987
90
91
39
690
678
175
749
149
910
965
101
491
122
954
797
312
679
597
887
362
786
767
27
751
724
409
694
914
904
197
509
627
901
554
928
865
65
789
958
427
927
950
274
381
656
319
132
855
10
41
938
493
557
897
839
534
700
830
650
610
366
885
835
291
543
448
876
486
679
799
919
734
482
534
964
83
370
287
295
714
477
991
103
925
160
63
214
578
622
738
135
648
610
907
703
112
506
772
606
137
167
657
65
277
321
763
104
466
303
238
726
358
216
112
580
32
70
594
392
246
12
206
212
536
791
190
674
223
610
26
539
847
81
203
247
880
17
794
38
944
420
896
213
409
42
113
433
710
989
745
907
261
303
657
518
565
614
408
607
575
371
676
726
478
490
700
460
818
305
103
768
838
265
399
523
855
648
151
410
913
163
512
522
336
681
159
307
833
944
639
731
796
20
392
571
576
830
873
789
928
311
24
858
974
422
241
729
569
494
684
387
746
45
95
582
819
380
521
252
969
176
541
174
630
937
348
542
577
465
239
378
568
218
969
898
844
703
479
999
360
865
210
244
881
127
426
790
764
903
280
657
301
930
822
127
233
48
418
352
736
343
733
405
685
638
808
207
722
992
985
850
506
31
865
739
601
344
190
435
810
419
850
718
874
103
852
242
176
947
895
785
281
994
378
622
374
140
414
952
678
51
321
898
586
858
602
843
441
285
932
553
699
109
945
948
746
293
217
223
474
42
955
332
423
818
913
678
972
131
34
850
857
750
798
973
28
742
766
638
240
744
233
154
962
228
135
645
964
559
609
78
493
800
803
636
469
238
196
247
711
275
923
138
730
507
992
88
308
407
41
988
239
932
152
633
156
615
601
295
925
735
639
683
822
732
477
665
201
859
846
500
736
388
346
183
943
154
443
627
52
360
174
824
828
539
56
595
49
699
589
817
80
538
130
12
315
917
766
498
678
823
750
154
930
93
289
737
874
308
884
826
767
578
795
218
693
375
311
137
755
566
88
107
606
540
774
510
824
392
219
233
570
462
88
893
763
926
142
877
371
673
479
978
163
836
266
416
377
224
148
397
571
435
380
561
243
834
932
150
585
688
382
0
322
387
946
75
473
458
375
417
687
882
583
967
527
255
336
604
942
549
249
680
250
243
62
791
62
154
73
596
482
47
811
843
37
18
290
412
244
224
237
12
50
624
443
727
59
384
327
472
228
944
787
889
638
334
584
157
412
192
892
26
40
815
603
266
977
16
803
353
49
339
610
349
742
401
495
741
509
814
146
604
341
602
578
702
996
107
95
736
577
116
26
676
279
558
386
695
133
242
616
379
850
348
552
635
384
282
798
457
995
960
429
109
814
895
80
133
723
335
810
449
245
243
907
209
931
80
909
690
728
184
522
109
208
551
984
982
138
412
891
523
428
51
416
414
750
100
329
109
665
727
511
754
300
724
703
636
485
231
189
437
621
513
360
755
875
351
759
301
202
233
324
127
120
171
971
620
656
305
966
113
865
270
345
706
980
599
479
416
180
93
199
105
94
587
185
537
394
352
550
908
31
147
497
850
557
528
148
4
278
474
733
650
465
279
512
841
439
56
349
632
747
271
740
916
112
100
449
319
375
513
542
300
220
496
866
645
107
816
506
32
472
850
331
598
653
360
179
172
175
984
622
915
579
909
200
401
117
372
374
335
951
750
491
856
165
743
585
439
843
987
987
725
132
571
778
422
88
924
767
569
59
113
577
704
44
762
459
905
29
157
61
901
437
863
875
164
722
785
927
204
751
364
864
250
700
554
830
794
365
220
753
558
494
158
250
773
295
413
177
914
563
569
303
921
134
670
140
957
274
180
26
311
8
939
450
754
228
239
566
561
889
237
874
362
264
662
595
977
199
262
289
304
718
248
804
900
364
182
999
421
65
445
916
26
709
955
135
630
421
919
217
5
588
237
997
686
31
460
88
706
296
45
470
649
924
323
956
691
352
442
366
311
749
87
817
894
868
213
981
347
533
698
724
76
395
903
367
957
293
780
909
341
955
803
768
973
948
414
701
623
758
367
543
708
514
695
917
836
915
838
437
207
85
342
232
654
263
779
394
476
447
367
643
741
883
412
327
758
291
936
739
560
778
141
153
890
260
734
619
700
979
570
903
109
923
552
93
890
519
15
140
570
512
919
74
529
233
669
282
74
312
410
440
363
231
110
992
786
765
930
578
858
351
619
495
857
691
253
311
129
686
916
100
47
299
617
745
214
595
577
967
963
55
538
22
296
709
652
604
428
848
53
696
544
552
819
463
381
262
415
362
8
726
554
771
717
767
356
554
286
396
684
235
552
932
3
679
507
203
398
943
470
50
662
936
114
508
574
846
125
628
637
356
56
227
576
906
410
873
388
728
119
864
709
883
240
938
745
580
576
90
405
695
215
273
600
519
762
436
465
369
423
878
853
696
93
972
53
337
955
942
490
103
175
959
426
680
585
749
393
283
601
70
133
448
247
711
854
638
507
32
805
957
795
807
838
960
489
820
489
204
241
802
364
871
228
516
174
690
232
540
466
224
886
66
481
734
371
785
279
636
518
167
509
679
13
915
552
878
552
273
617
111
790
505
314
711
419
267
719
786
631
357
89
13
66
441
3
514
64
332
547
186
910
73
643
101
65
752
647
418
470
343
314
181
493
831
394
39
232
949
638
598
485
834
224
26
992
186
587
881
854
507
814
19
548
875
246
317
912
732
747
464
566
235
105
593
71
575
218
254
167
110
267
87
172
49
572
870
64
124
767
579
538
388
651
465
166
325
574
620
543
978
76
538
806
993
797
964
104
155
696
370
610
647
208
699
493
164
763
428
848
514
220
211
98
399
114
542
31
780
395
333
626
489
531
433
566
82
358
145
465
764
68
643
412
896
122
869
967
27
121
200
319
113
243
874
947
173
444
91
145
657
43
555
555
372
545
590
368
266
419
901
470
610
608
3
55
750
910
101
486
336
760
130
513
976
132
541
349
308
407
500
101
174
535
228
904
299
906
554
24
110
298
826
926
78
847
146
666
451
391
784
243
924
655
797
609
191
607
885
318
908
338
57
480
374
962
503
898
682
70
814
548
514
478
353
185
48
109
436
542
249
398
374
385
293
48
509
462
423
981
932
920
796
346
159
550
146
652
3
663
693
256
996
277
241
423
497
462
261
219
769
440
858
666
228
8
450
101
948
48
57
523
405
805
369
133
467
268
232
656
304
870
322
872
123
623
49
978
220
877
778
22
165
719
372
95
123
337
889
776
115
574
217
938
973
663
168
291
888
469
808
669
582
913
856
375
9
236
24
369
952
968
123
584
397
559
84
818
377
394
778
721
212
754
245
654
244
250
156
562
933
202
910
764
379
427
155
197
334
24
118
110
397
420
244
640
933
228
952
791
463
92
138
960
77
939
38
433
381
174
431
987
440
971
560
424
92
681
839
698
558
729
711
669
811
84
744
426
662
26
961
799
813
651
813
874
367
341
183
738
810
807
916
149
928
451
944
761
870
556
249
960
168
610
588
996
747
738
892
145
426
998
213
546
239
781
782
127
726
117
562
653
404
476
9
288
531
177
513
586
364
453
133
180
505
553
837
474
858
692
252
161
525
737
487
686
73
339
979
878
248
426
687
835
187
998
546
36
593
990
367
508
526
36
217
262
473
242
207
961
750
563
287
236
678
742
208
18
218
212
728
367
73
520
890
570
692
275
971
428
408
442
274
702
131
505
947
400
216
501
887
729
844
397
187
163
743
987
459
173
513
650
609
609
865
935
544
870
137
522
681
867
817
304
675
205
463
227
811
52
830
443
431
893
512
461
714
41
257
750
69
127
700
759
608
384
937
298
492
362
14
958
705
827
613
427
783
664
376
577
569
894
384
262
556
162
394
737
439
48
998
188
700
459
933
985
828
399
396
380
801
411
769
198
829
493
632
751
211
222
163
970
594
188
557
927
478
783
114
49
887
461
893
872
128
488
732
472
694
357
796
22
414
864
372
711
900
204
200
606
392
283
692
821
451
20
255
880
105
710
221
737
183
658
399
462
963
816
783
38
20
809
18
489
809
818
916
361
526
815
360
128
515
138
415
987
499
216
858
804
878
550
179
598
56
865
166
544
677
370
558
487
25
678
742
324
815
747
584
96
377
578
161
291
940
129
929
749
215
348
454
44
362
473
552
798
87
953
676
643
47
915
729
896
876
879
563
871
446
59
682
735
181
487
737
254
43
210
103
885
595
834
274
91
860
54
531
977
928
574
630
901
555
503
397
414
717
727
828
631
783
862
457
27
447
365
342
838
48
216
724
840
728
110
255
469
93
245
563
347
814
278
878
186
313
465
356
752
457
204
5
601
937
818
490
632
559
54
987
787
741
482
221
252
52
546
666
749
196
724
963
196
955
321
223
56
732
442
47
40
412
637
974
388
328
162
292
825
692
192
972
519
375
918
147
992
29
173
61
709
889
685
109
321
580
754
544
315
168
772
693
349
607
186
699
118
305
126
868
692
606
769
387
220
55
415
516
470
75
48
947
126
361
494
392
914
278
268
635
274
397
394
586
703
458
402
104
143
949
170
892
478
500
451
820
958
95
113
572
5
995
530
258
974
661
731
140
975
825
863
180
739
709
548
821
653
866
555
765
448
336
147
207
544
229
67
720
541
285
651
443
703
953
847
612
848
18
620
64
113
524
978
261
541
153
540
910
541
316
921
845
509
768
477
704
72
470
41
842
237
64
153
176
202
409
280
20
920
328
23
77
994
675
870
547
586
308
464
472
64
991
804
723
649
99
795
620
727
785
486
106
501
137
102
799
969
848
395
2
61
845
894
647
843
823
693
336
127
303
204
223
685
149
831
929
781
329
987
387
721
119
502
802
373
523
398
281
372
379
675
261
946
725
785
461
229
568
130
59
367
852
358
456
555
320
989
716
846
9
909
630
149
36
559
839
196
214
103
696
879
157
841
403
643
476
415
509
862
552
70
856
36
294
225
649
840
202
489
210
133
196
307
876
694
136
710
336
400
277
228
699
308
536
347
216
203
542
276
714
828
704
137
6
734
459
663
187
260
464
670
72
612
985
5
471
972
206
244
461
971
969
642
598
264
714
156
420
402
129
223
501
511
612
713
720
452
283
120
836
521
636
919
251
81
481
594
579
171
859
769
26
625
306
913
236
679
580
152
611
186
490
476
376
840
249
953
938
872
507
202
997
411
627
326
865
388
437
870
596
971
197
811
742
181
1
51
194
566
855
243
635
452
58
716
752
264
345
143
619
441
39
179
193
917
538
231
466
169
776
64
484
258
275
972
423
173
277
361
536
510
587
859
430
978
506
337
986
351
488
533
666
337
350
50
504
852
703
674
215
755
311
88
15
253
553
616
790
963
717
822
23
827
786
877
403
154
732
725
74
531
394
0
333
339
461
145
903
500
977
23
561
921
607
708
291
282
682
617
278
957
221
668
40
293
594
655
344
475
142
160
469
108
780
641
229
96
88
411
248
849
773
108
587
823
554
898
280
248
288
340
499
972
626
255
479
396
592
169
339
57
586
665
687
533
850
243
856
956
702
408
634
622
778
744
429
138
455
927
985
242
204
0
78
677
87
421
567
706
140
141
159
848
113
790
740
355
491
524
5
290
139
708
917
126
698
408
73
545
399
7
166
347
970
790
253
440
86
954
444
902
652
35
71
338
661
790
802
5
455
12
394
871
828
531
187
740
590
152
906
968
154
122
785
484
362
647
199
770
859
937
440
421
424
984
660
443
622
353
665
701
137
61
784
391
577
312
890
812
580
571
385
237
307
376
827
670
821
352
328
913
796
216
908
626
160
136
650
290
604
529
581
805
595
368
462
953
456
395
437
567
477
972
271
158
274
570
598
112
798
524
412
314
995
512
261
527
176
522
521
60
286
344
310
763
173
209
278
752
185
900
721
931
992
891
339
569
0
190
168
380
401
13
426
342
276
664
830
500
507
374
828
409
198
335
682
835
606
499
916
499
701
640
797
815
19
564
37
956
169
0
54
365
962
878
854
568
629
300
744
728
366
441
923
132
947
558
0
218
684
953
496
20
502
154
482
165
343
991
434
768
796
978
965
892
677
24
249
437
288
91
5
818
612
688
689
594
390
202
221
514
838
957
489
731
753
262
744
753
919
156
147
699
730
771
464
315
121
962
209
524
779
970
263
210
995
606
527
140
540
390
4
379
76
957
266
626
992
622
253
640
159
405
383
879
272
828
213
828
252
570
223
112
602
457
36
125
398
477
201
689
799
375
57
764
744
648
697
668
674
69
428
131
508
278
898
205
570
626
36
964
7
379
588
749
755
548
986
484
5
368
551
765
400
267
149
186
689
890
416
664
226
651
116
396
235
17
92
404
504
270
492
643
162
939
643
720
175
233
927
998
906
342
660
242
136
834
239
795
73
701
374
876
87
30
134
82
420
464
758
511
158
645
396
465
365
438
154
437
271
948
53
335
995
83
915
245
246
546
744
198
95
488
763
701
283
837
979
20
725
831
401
990
251
982
269
852
540
817
959
605
99
376
536
550
763
8
25
396
263
424
737
965
320
731
176
320
302
648
724
906
644
485
640
340
195
310
181
127
386
34
721
660
179
145
191
375
931
81
471
92
601
566
851
705
113
897
360
615
809
765
230
606
859
7
162
112
176
148
582
872
26
103
133
268
25
935
747
27
438
82
625
408
382
285
599
570
479
41
157
742
641
788
67
769
146
515
606
119
211
520
583
377
481
191
804
497
843
229
343
807
550
241
195
170
419
139
79
565
67
355
310
564
414
561
741
406
816
619
349
669
112
131
824
888
6
673
776
885
893
134
182
601
888
449
140
760
628
984
396
913
915
630
100
801
59
204
746
216
532
887
456
473
912
815
200
588
947
690
828
904
669
621
170
401
247
259
929
220
516
28
803
91
398
681
229
957
692
519
554
192
700
570
492
675
614
757
736
869
652
372
948
403
674
805
624
445
363
16
860
927
253
88
208
561
839
629
459
252
193
36
453
571
65
815
528
354
615
81
980
884
371
11
380
482
606
713
207
544
796
102
902
99
24
387
886
773
370
970
201
455
413
917
85
180
72
534
724
88
178
321
533
426
232
598
876
154
133
729
630
809
89
218
804
701
644
775
832
240
362
516
584
358
668
638
622
618
523
958
268
34
62
443
618
829
133
208
597
527
346
283
735
760
574
866
599
549
802
44
146
260
115
40
313
930
587
474
957
734
301
469
807
281
289
143
290
368
589
814
792
722
549
583
174
265
725
666
795
621
25
223
451
196
707
313
750
305
29
382
340
179
739
639
546
514
352
378
347
770
425
608
685
514
811
163
282
582
38
475
952
928
784
607
336
945
96
785
297
545
4
55
44
18
397
609
208
252
356
423
130
704
424
143
287
107
93
884
350
866
100
719
710
137
129
958
725
926
177
855
422
803
626
248
717
450
895
178
971
424
923
530
384
422
24
370
400
324
984
654
302
345
640
184
722
805
860
100
971
141
159
125
273
394
826
709
784
428
198
286
969
221
598
120
358
645
943
543
132
159
537
234
702
51
175
639
330
261
533
735
500
926
191
346
173
657
3
280
393
373
386
791
143
422
237
755
127
410
913
176
611
509
86
927
851
891
971
583
112
985
156
188
332
487
326
744
933
556
134
206
786
235
685
957
965
255
862
827
25
779
637
542
434
495
112
344
564
201
598
417
19
822
441
758
352
681
840
898
144
105
134
675
57
973
598
985
628
37
648
405
332
938
319
320
71
944
936
48
95
568
441
810
586
396
8
156
45
685
734
775
167
199
822
39
111
290
639
463
140
802
604
975
769
896
375
247
860
52
561
775
943
657
814
411
317
516
63
510
386
902
313
859
576
469
251
863
592
447
817
420
7
697
873
798
365
962
117
726
606
560
283
544
967
266
177
410
781
77
580
670
234
974
61
310
828
377
749
607
831
954
153
577
17
280
386
618
263
247
984
575
105
166
912
634
436
185
27
226
470
788
90
516
548
220
885
556
725
328
525
667
238
875
892
934
17
612
911
57
914
419
490
462
997
294
469
214
778
772
922
30
136
190
195
582
313
876
178
828
383
277
207
821
712
408
171
540
603
899
0
415
135
209
12
251
113
537
208
857
541
351
806
745
614
553
45
380
987
510
663
664
206
978
786
226
939
838
705
470
701
576
921
14
373
736
464
966
979
688
548
562
686
855
851
833
14
487
215
145
183
227
718
408
504
988
870
1
627
905
922
766
529
271
852
546
237
259
629
655
998
808
229
756
433
541
205
757
940
159
37
845
97
284
773
142
838
10
447
50
786
91
177
146
614
779
197
976
458
275
791
883
775
11
334
303
120
935
556
792
441
285
387
568
162
83
132
678
305
684
127
701
506
552
327
325
623
189
712
638
284
697
838
958
758
355
588
12
896
506
146
943
803
195
201
886
986
808
377
817
13
24
758
898
701
191
28
434
991
68
257
474
422
617
937
904
289
419
472
652
335
88
393
941
697
759
368
869
320
982
438
275
877
520
208
245
794
655
311
987
462
418
399
799
249
18
957
76
667
986
653
80
615
1
458
690
561
345
623
591
152
826
563
831
939
196
58
48
203
807
518
922
35
714
584
665
754
210
687
598
198
210
890
127
594
443
832
590
444
55
430
663
425
459
155
377
277
916
533
120
867
828
611
884
697
733
316
197
392
751
425
715
769
410
94
391
639
581
821
266
365
499
476
584
939
820
923
381
187
947
62
656
884
338
557
938
345
32
9
438
801
404
285
896
762
346
51
394
586
861
964
793
947
874
307
459
265
493
953
328
949
241
141
386
234
955
504
667
202
583
166
180
944
959
595
729
110
106
51
646
670
468
586
120
124
980
730
159
108
383
713
635
242
999
734
938
528
315
911
598
747
178
480
925
946
546
629
380
979
174
601
516
867
34
827
466
530
131
500
28
511
475
305
712
512
950
183
397
623
605
253
909
267
10
555
466
668
225
999
823
801
259
825
683
116
350
209
327
510
406
897
644
743
243
519
281
681
385
85
759
747
766
198
224
198
559
188
68
657
120
919
761
412
244
543
703
719
628
256
529
210
487
393
190
127
443
296
940
431
296
744
387
804
780
790
710
785
531
984
667
766
481
218
560
843
51
639
9
493
233
890
15
227
484
497
664
154
787
314
621
595
321
681
760
706
494
591
906
380
182
239
792
487
514
696
632
36
946
803
792
450
61
185
489
961
77
728
501
650
155
629
888
211
425
98
815
852
645
637
956
687
25
446
632
579
550
697
286
751
390
50
907
450
348
52
782
456
406
274
489
331
476
825
756
877
926
163
34
523
143
254
587
961
387
452
716
592
366
371
594
586
504
885
247
420
19
355
994
769
223
467
600
678
107
58
698
923
974
121
521
399
412
384
841
20
654
844
271
331
522
499
41
314
22
736
715
759
840
729
532
177
841
845
341
640
823
160
471
49
906
79
717
801
430
934
44
992
894
873
36
711
80
422
107
153
721
732
330
597
319
548
573
224
194
580
686
384
160
414
885
392
874
371
592
645
280
949
260
923
228
579
982
771
748
166
740
307
708
852
112
210
515
531
336
824
712
680
215
984
572
148
965
654
707
253
619
746
684
333
584
185
747
635
411
455
893
164
817
963
708
877
768
139
599
137
584
613
470
217
283
113
320
905
10
276
632
385
526
838
850
537
451
611
268
634
96
149
318
61
281
427
642
291
604
883
991
437
254
212
995
439
946
857
750
840
644
381
778
60
108
297
59
403
368
993
61
342
343
44
976
833
451
831
258
469
750
143
72
612
181
12
198
379
745
749
206
145
204
486
668
533
573
678
872
121
119
582
43
322
562
454
216
520
315
921
499
188
831
277
305
997
118
600
889
227
768
359
48
463
356
136
429
780
904
145
371
555
826
332
868
832
814
548
616
423
134
317
168
616
653
439
825
506
463
38
883
998
397
793
418
675
542
102
40
103
27
743
448
414
432
664
119
199
420
940
255
281
323
383
483
255
550
874
841
36
637
193
696
721
471
822
762
42
843
919
325
825
341
191
264
760
309
404
55
491
8
531
575
912
324
168
134
13
947
683
307
855
706
202
618
407
842
269
724
90
161
715
914
474
476
143
736
238
476
836
558
268
849
158
232
866
526
983
592
57
279
226
103
249
563
360
403
101
361
905
991
89
721
358
846
816
360
391
256
470
721
952
0
970
387
71
92
674
707
200
936
240
50
905
367
854
385
438
10
520
223
790
363
780
150
374
333
200
939
553
853
47
821
918
957
781
16
731
771
978
807
641
763
432
620
521
479
25
737
784
368
746
506
753
917
773
71
894
279
543
331
554
991
38
54
260
849
135
785
759
617
446
32
630
796
970
421
865
659
917
170
563
802
500
95
255
23
852
982
39
397
239
225
701
290
691
759
74
671
671
16
948
997
484
711
615
779
984
38
197
855
167
908
117
944
487
953
949
243
431
333
560
364
354
667
171
127
626
640
959
535
446
704
904
700
776
655
263
132
441
802
342
207
323
96
413
795
905
74
140
180
317
107
162
182
961
180
4
702
904
178
925
308
191
747
370
735
453
86
170
133
142
7
185
403
135
884
944
336
945
743
880
927
24
520
27
407
492
393
16
531
970
209
489
365
647
958
64
727
116
574
467
225
161
919
975
440
657
622
755
956
534
941
33
549
17
294
42
975
905
874
683
121
706
742
533
232
963
752
564
734
561
269
932
227
906
54
147
721
540
965
664
156
29
425
325
359
535
834
526
623
366
58
973
838
570
433
98
92
735
239
705
957
170
254
400
911
229
405
467
18
330
752
422
956
271
208
815
839
403
265
363
770
665
323
794
39
40
20
369
944
831
368
942
121
406
525
284
731
37
68
392
427
586
317
918
271
822
704
860
42
808
290
390
577
799
697
638
935
783
40
611
773
89
151
263
521
957
902
888
732
825
472
323
490
682
974
530
647
258
818
124
224
418
707
396
896
667
429
298
574
540
179
97
119
167
588
920
324
292
459
365
235
987
612
147
363
103
631
339
318
476
384
603
95
805
832
729
731
534
670
153
726
688
433
358
310
627
809
513
80
583
274
278
874
423
789
811
79
436
350
969
392
69
821
625
393
73
151
411
833
144
108
644
291
14
702
653
901
26
115
612
666
800
753
609
28
441
859
449
25
806
752
30
896
572
867
738
310
429
748
716
195
601
952
691
73
641
410
192
547
210
578
634
467
83
451
27
210
692
566
737
710
395
966
104
91
231
211
570
232
40
862
79
690
213
749
812
828
358
874
76
291
123
654
351
826
245
162
427
72
505
825
32
971
295
493
151
922
327
872
286
906
342
833
292
352
284
563
607
433
629
543
306
889
222
439
158
152
273
157
443
532
155
363
352
235
899
406
454
906
781
712
205
227
36
602
153
554
692
320
321
657
878
461
60
215
97
766
324
880
5
318
247
558
708
81
485
371
969
685
166
206
503
429
591
723
168
841
771
715
249
426
776
153
913
208
73
487
556
280
410
589
869
604
702
893
993
755
317
444
82
440
763
287
521
646
402
399
748
969
802
732
839
572
832
259
663
581
696
13
494
434
946
304
389
863
127
735
520
86
827
73
282
791
341
329
514
614
107
79
645
964
911
978
922
309
518
155
779
888
544
223
98
839
480
360
164
900
703
944
418
715
102
931
449
841
317
313
757
336
341
187
94
200
690
754
381
306
151
989
348
435
376
759
652
642
883
597
780
322
649
377
1
13
475
233
130
709
838
242
120
620
764
179
447
48
782
888
789
584
315
414
528
447
762
963
893
610
888
502
895
84
891
942
664
238
769
884
777
491
285
399
732
475
918
892
684
800
577
641
680
424
453
602
301
294
755
731
633
62
854
302
422
708
450
350
124
326
982
479
662
574
887
152
579
627
689
225
538
598
845
0
596
403
34
831
376
561
359
733
890
87
202
397
68
205
777
947
631
295
982
582
684
205
709
369
638
432
462
960
716
419
80
432
189
577
821
796
792
637
606
835
524
151
883
231
709
265
857
213
460
164
377
318
790
942
406
994
417
798
719
258
780
165
611
773
13
752
263
621
432
471
932
706
625
213
916
813
597
747
533
632
156
862
829
876
557
289
638
413
766
400
906
234
759
37
595
99
676
843
475
116
638
780
671
910
812
422
207
616
310
956
455
938
317
950
845
63
823
403
993
329
484
486
704
113
344
953
42
552
84
80
316
998
918
315
749
459
672
954
17
602
613
353
612
323
397
619
241
557
873
125
492
911
237
883
664
173
798
30
320
935
625
219
39
198
652
666
387
157
919
967
560
334
138
365
935
888
208
253
650
284
784
556
150
389
23
395
763
199
468
122
740
704
537
146
54
429
90
772
443
198
530
536
195
796
984
734
696
709
543
235
375
481
690
639
593
337
469
957
878
141
460
941
949
857
831
410
66
253
624
85
116
583
249
707
578
45
272
32
948
922
878
162
645
224
392
526
938
395
544
963
903
249
537
382
31
828
274
279
971
367
797
267
440
843
357
6
723
975
172
404
421
452
790
38
315
324
987
105
770
488
633
54
888
553
476
948
673
836
538
361
860
748
440
732
218
657
875
153
928
165
309
780
877
352
152
197
714
65
209
110
45
815
738
91
537
137
599
664
634
947
90
324
274
824
222
542
984
636
545
871
885
444
219
817
3
61
150
52
108
564
508
341
691
749
133
282
340
752
48
291
723
865
345
712
621
881
558
174
844
291
66
266
574
886
69
380
649
992
655
416
199
42
786
413
616
533
585
949
106
672
654
133
453
281
753
930
256
104
746
531
382
528
403
457
955
976
424
505
707
349
155
184
430
664
586
288
460
273
133
472
289
454
334
578
971
350
81
290
873
413
334
111
171
474
113
425
137
783
422
291
603
475
526
525
31
71
248
103
508
57
841
137
138
252
677
601
956
27
870
466
954
576
262
724
467
795
544
953
954
470
933
123
984
286
992
733
193
810
893
321
703
519
443
687
482
967
252
188
756
475
461
135
755
636
299
416
112
966
176
649
7
800
226
498
98
914
656
689
172
572
661
657
366
949
340
107
322
721
421
0
571
705
725
295
95
486
443
147
553
939
606
188
184
479
139
909
465
69
641
145
218
898
320
202
8
778
148
529
806
636
510
882
645
931
584
643
737
333
388
694
440
837
4
801
460
201
814
281
542
42
134
645
193
323
30
677
454
869
933
419
110
969
208
545
375
467
438
455
899
550
905
723
735
224
56
724
337
917
953
468
183
534
88
622
25
505
543
435
484
972
907
592
882
540
939
942
436
96
632
297
250
182
433
930
173
693
265
187
466
578
702
23
858
256
129
337
383
954
935
46
726
750
792
439
955
316
996
853
985
358
574
183
930
496
762
128
327
606
752
503
172
949
177
738
448
729
759
15
949
873
833
133
434
248
796
852
767
688
361
712
375
517
969
444
575
82
584
623
112
472
600
476
485
312
189
447
889
320
575
676
806
359
521
429
998
217
240
724
875
612
579
199
853
381
330
950
529
870
164
864
541
931
194
74
225
448
471
379
839
121
534
476
601
259
43
903
349
97
389
374
413
846
388
390
949
716
698
67
35
241
406
337
213
655
271
212
241
141
244
370
944
596
34
460
769
277
807
912
273
957
988
710
696
942
984
43
535
988
400
475
321
27
875
442
64
751
754
559
888
223
314
425
655
107
784
120
673
139
365
663
850
962
757
136
112
758
651
187
603
382
780
776
904
20
283
920
270
619
637
889
976
579
609
961
508
436
582
802
449
749
10
584
759
224
288
47
43
558
866
435
797
307
995
192
70
37
367
965
702
276
194
343
19
654
496
238
269
515
646
633
143
302
111
740
557
629
490
476
464
40
464
388
234
279
685
796
362
174
862
720
88
763
451
512
434
589
16
968
848
908
787
167
591
927
473
4
1
199
455
215
545
499
705
451
172
140
532
737
338
296
300
73
772
815
106
262
660
241
343
886
265
320
172
585
438
886
688
546
884
829
610
969
555
697
872
426
697
592
271
457
235
569
614
481
216
752
229
204
895
441
952
249
975
979
364
14
383
971
821
415
405
615
826
634
218
42
533
645
206
654
207
420
489
705
287
775
235
995
121
630
558
709
697
832
898
813
856
453
550
454
340
281
101
148
277
908
387
570
389
214
412
115
305
830
837
802
60
915
747
872
290
154
737
296
295
290
882
964
288
791
150
546
446
229
87
779
897
675
752
421
871
381
633
507
646
798
438
506
401
613
832
147
573
608
999
987
923
487
881
236
276
56
46
228
486
452
998
398
754
688
854
268
62
428
406
376
203
800
297
235
627
764
405
583
798
669
622
462
331
402
393
616
460
603
775
28
771
522
49
713
800
973
381
962
307
109
163
759
703
267
935
94
813
808
449
813
249
500
548
128
211
21
637
662
478
870
993
69
715
493
925
263
861
290
485
789
129
86
623
566
939
923
218
54
658
870
349
393
463
543
554
330
220
218
855
293
665
420
788
158
875
782
757
959
448
921
596
289
884
488
634
198
985
777
921
864
250
369
707
303
443
245
474
685
280
255
261
673
621
764
410
750
21
338
461
946
353
488
923
154
27
382
769
583
584
726
659
484
103
120
756
765
475
326
441
397
345
472
141
386
678
151
873
651
968
883
833
31
486
871
221
867
496
496
934
12
859
244
91
806
512
53
846
427
876
523
87
748
463
20
443
559
463
935
703
85
687
679
434
783
957
887
221
334
998
292
359
672
431
199
409
63
739
907
225
684
321
211
346
656
942
324
129
899
817
691
161
429
899
244
373
22
878
764
624
38
11
28
48
806
836
649
808
13
254
261
375
403
972
148
383
692
942
227
488
227
792
904
560
568
492
779
721
236
579
35
822
36
518
227
976
940
628
531
578
264
77
846
916
589
305
595
686
868
253
867
892
9
326
181
851
837
684
740
331
416
78
538
427
149
117
931
462
662
383
517
808
644
748
98
435
832
716
899
519
930
853
305
330
706
32
264
638
688
270
825
396
177
515
325
85
805
554
12
275
275
186
631
547
513
666
967
836
119
84
113
578
162
727
354
607
831
322
256
79
871
294
746
46
21
35
315
659
59
211
169
54
834
145
914
878
986
682
11
845
363
285
341
269
587
246
938
784
353
68
242
381
613
303
119
199
362
796
924
533
921
211
441
21
854
94
717
571
421
619
811
326
829
180
916
723
754
881
234
197
445
953
748
628
700
513
654
12
129
819
833
92
516
697
191
871
344
656
235
659
833
402
631
959
849
124
246
665
593
672
269
662
764
294
522
3
975
676
279
507
223
699
422
65
932
281
650
645
992
539
949
887
258
409
113
13
336
265
170
179
139
836
579
10
1
794
143
784
609
866
937
691
89
748
896
262
120
428
701
333
536
562
677
299
44
896
313
792
558
192
857
546
380
518
419
661
798
602
721
346
201
282
703
300
354
271
890
813
264
325
706
859
747
474
221
100
550
647
735
830
839
348
477
652
203
68
715
723
545
748
955
124
952
38
232
275
711
757
513
950
132
725
589
939
536
981
565
390
655
128
454
78
836
578
139
237
913
504
80
806
279
94
207
996
402
580
641
673
77
118
983
465
612
254
1
790
401
941
794
3
474
570
634
554
574
488
356
885
345
930
516
189
81
612
950
879
957
877
947
402
101
630
163
983
254
194
6
293
960
699
757
142
393
994
434
510
590
341
899
402
904
254
445
37
281
923
36
992
915
473
615
653
459
219
753
281
503
407
532
812
103
910
610
940
485
575
450
190
274
68
270
364
740
22
237
717
494
602
124
307
501
998
849
205
93
271
222
0
809
801
605
695
916
760
793
757
63
483
182
201
528
61
905
529
385
136
482
448
753
36
90
275
800
764
702
124
441
778
559
245
558
353
53
221
17
379
940
193
544
699
221
626
372
220
225
972
441
782
530
88
906
826
61
66
478
978
467
527
765
427
461
714
107
687
412
676
283
810
800
282
122
390
988
918
913
99
325
819
73
287
169
160
771
53
610
169
817
694
440
141
150
136
708
287
823
239
123
740
170
166
982
58
106
89
728
685
581
661
569
250
564
713
401
301
533
775
478
752
785
423
515
95
856
695
220
875
106
476
4
251
939
921
437
774
358
249
880
242
893
63
638
174
251
265
89
469
547
420
988
777
254
42
857
54
181
967
107
240
705
154
461
993
696
905
45
640
247
835
661
551
700
778
118
910
778
417
690
128
530
783
25
435
146
11
271
593
791
673
589
794
660
830
270
399
443
862
566
832
78
285
335
705
474
106
557
311
569
234
215
788
133
262
825
124
513
677
777
985
226
532
955
29
896
781
367
724
13
580
415
794
884
761
314
716
541
699
20
899
389
569
965
608
554
164
235
244
62
369
478
463
447
595
211
584
943
30
917
726
838
808
932
855
541
766
461
781
271
803
656
445
856
336
210
53
609
319
964
932
244
11
120
233
623
485
776
462
134
419
22
309
27
511
502
527
461
417
610
975
951
807
510
192
53
603
84
161
877
971
855
343
295
161
318
214
881
453
892
864
497
320
695
104
406
991
363
825
166
16
179
791
833
155
818
870
684
757
366
413
592
194
327
306
886
752
954
993
382
807
312
96
53
827
330
434
865
694
588
25
663
848
807
525
195
22
136
774
816
231
856
567
541
7
982
343
933
958
700
921
98
709
157
805
223
574
133
932
831
36
173
13
200
407
535
629
655
67
245
66
220
618
625
71
926
810
741
342
217
71
785
325
990
114
589
118
277
304
738
866
928
126
13
656
974
529
973
808
252
899
268
190
911
544
256
426
826
805
624
612
197
142
148
720
974
636
376
628
92
887
595
110
892
328
341
417
897
155
711
424
941
798
411
8
63
485
582
547
827
961
321
962
200
488
751
22
749
723
397
21
695
609
803
966
640
652
252
427
489
382
500
511
964
430
370
971
412
917
898
283
128
302
385
23
655
856
144
901
182
988
30
474
433
905
583
25
359
161
348
600
906
873
405
410
843
814
645
604
223
248
576
102
729
275
43
64
523
387
991
93
246
390
201
536
453
812
835
618
107
129
575
462
765
208
312
860
403
814
376
713
991
302
329
217
453
46
199
105
753
670
482
363
520
777
484
479
170
773
231
381
474
909
984
580
441
76
669
339
441
380
924
40
706
323
950
45
800
823
234
33
39
182
832
234
287
626
698
516
666
658
348
9
641
57
335
253
502
865
473
15
506
450
372
344
832
231
361
783
387
92
759
936
995
116
625
33
409
346
712
308
175
796
73
235
132
15
287
448
306
555
126
605
339
339
759
498
951
252
433
134
535
236
740
467
701
430
970
940
555
160
550
454
337
309
361
418
470
977
347
434
708
249
643
960
778
373
260
432
947
865
558
307
151
109
760
440
450
848
423
97
79
184
580
469
876
545
387
673
404
737
467
495
709
251
660
285
829
518
470
508
357
465
43
456
199
904
393
470
885
212
436
489
586
143
797
260
858
814
674
107
63
106
788
905
572
423
507
628
61
584
2
38
481
721
232
55
769
794
559
744
190
98
559
862
456
798
319
426
228
108
706
402
207
233
810
877
608
705
828
744
378
74
795
254
916
345
852
553
369
232
793
269
649
532
534
431
874
114
392
562
624
432
797
427
585
573
722
748
553
243
750
499
297
897
645
275
666
720
780
773
567
286
347
77
436
250
744
910
106
937
261
355
625
149
799
505
959
452
712
996
493
421
915
263
689
487
869
867
890
467
739
833
594
618
226
313
219
399
64
295
558
371
742
163
923
424
520
340
33
206
78
712
246
327
914
605
580
144
502
879
408
63
136
578
447
760
486
568
178
990
963
499
560
858
779
134
572
782
879
576
803
655
993
63
894
534
940
610
964
899
869
519
921
333
163
590
976
752
892
205
806
918
308
690
776
483
691
354
192
407
544
443
999
965
195
973
171
580
209
344
291
568
75
734
483
298
712
70
704
530
417
388
602
809
422
524
20
560
529
422
909
16
559
990
385
562
313
522
658
387
932
330
981
854
871
759
738
373
539
439
533
252
912
261
248
601
535
516
724
784
100
332
416
259
268
142
962
982
121
961
592
743
180
836
242
685
408
322
695
843
77
582
195
182
133
436
420
269
30
739
811
191
949
351
5
529
928
214
214
994
153
729
184
936
125
37
123
550
243
541
849
659
125
902
936
114
394
918
767
206
971
40
64
130
6
879
285
214
222
402
392
798
215
237
556
380
342
757
684
881
175
330
749
38
669
993
597
48
826
926
52
277
479
347
966
946
827
691
137
384
483
95
183
185
957
784
283
686
282
238
80
466
148
705
526
725
808
300
279
432
323
53
481
638
102
525
357
973
471
447
838
451
766
950
609
652
913
705
268
897
831
804
60
732
953
359
469
480
993
950
867
79
889
282
278
893
255
919
799
647
163
653
108
228
348
805
884
934
53
426
268
994
8
849
338
110
130
676
427
711
161
156
505
84
839
512
884
792
118
546
524
718
886
514
388
42
91
915
916
513
563
632
324
521
152
158
170
383
831
827
8
375
885
935
119
69
230
912
325
59
46
268
951
666
106
972
685
588
992
721
798
715
458
371
402
95
53
560
441
415
374
327
128
67
513
746
510
742
698
280
265
932
518
499
62
203
212
318
862
310
291
815
695
635
70
485
228
293
267
917
141
79
812
351
545
24
796
485
480
608
530
744
724
498
143
570
693
560
194
700
784
676
919
727
550
573
973
327
692
787
963
425
653
368
74
668
498
822
258
731
861
138
626
551
312
305
372
393
321
806
345
185
972
269
669
550
379
825
532
818
592
697
107
21
377
638
831
472
6
54
852
779
693
170
762
732
445
852
650
303
519
731
34
525
801
822
204
366
73
376
593
312
55
895
750
105
839
545
626
180
423
561
596
636
352
152
774
371
991
844
688
840
914
850
28
640
389
137
929
204
632
245
967
795
876
762
681
996
903
803
21
409
849
158
911
307
331
377
651
216
911
867
201
118
914
343
495
340
925
364
78
279
410
424
905
146
612
669
202
196
674
476
4
389
72
927
975
157
148
227
476
367
795
442
658
192
332
69
497
601
2
978
669
234
664
807
638
199
642
340
135
446
541
363
451
309
184
104
590
215
492
862
733
529
333
194
219
559
545
307
609
517
208
45
477
716
36
940
17
677
256
511
892
436
791
777
147
195
220
516
546
735
954
227
358
902
216
740
471
13
161
938
427
2
66
393
10
45
783
257
520
676
354
479
415
771
978
448
502
350
741
513
361
886
741
7
329
163
31
936
838
738
160
403
250
165
979
346
847
635
375
739
350
763
927
813
700
20
282
9
960
860
19
512
318
434
803
26
879
502
554
484
630
923
390
123
872
678
480
689
851
767
511
519
97
144
307
231
656
602
629
96
103
153
332
509
219
384
753
895
214
951
699
255
625
542
292
582
731
823
728
937
120
714
551
98
617
87
190
878
410
611
230
274
513
982
234
154
846
983
541
190
379
963
428
794
419
445
447
408
719
900
206
260
552
859
750
928
242
639
511
183
462
806
962
351
756
729
416
860
910
467
570
498
427
283
6
65
673
555
175
282
236
370
626
508
824
535
900
782
980
964
910
765
733
141
675
466
254
411
430
466
408
956
284
121
43
567
161
953
211
116
416
13
710
279
866
395
203
13
466
843
254
603
572
707
507
830
176
388
196
709
439
258
11
367
513
189
736
573
936
969
69
445
619
778
107
693
495
270
942
593
713
134
336
344
572
929
132
341
416
418
361
649
704
891
999
173
269
568
489
35
652
314
978
673
807
747
36
706
998
612
500
867
618
355
444
670
873
941
927
53
567
422
402
900
318
778
509
726
583
404
217
124
767
383
848
720
129
73
408
488
968
133
237
464
80
766
460
22
425
213
651
385
346
924
62
576
516
118
832
648
369
997
192
712
445
697
300
720
736
667
965
843
779
566
708
403
4
391
291
967
5
132
405
214
545
843
5
898
140
286
559
102
832
172
798
78
81
70
523
34
774
194
191
983
891
576
977
265
525
386
76
692
905
986
587
490
764
776
108
658
452
880
842
198
915
400
457
63
116
790
649
307
691
774
303
754
274
317
192
322
876
183
525
770
972
743
721
535
749
444
756
473
796
67
56
95
269
974
780
530
840
583
3
176
784
964
963
404
411
847
456
539
79
577
61
52
991
559
509
700
813
111
436
958
967
571
917
522
243
992
952
145
973
798
473
749
94
58
47
918
384
152
680
706
96
417
99
799
912
924
499
416
616
699
332
743
183
64
489
751
701
91
964
390
967
217
452
209
837
64
357
874
158
789
187
365
195
9
778
484
28
181
137
753
90
684
681
144
106
601
141
688
40
756
195
804
148
691
309
763
307
152
722
5
836
422
811
732
323
155
91
977
282
154
941
351
315
21
503
947
122
891
74
390
43
126
304
69
71
734
195
600
935
56
825
975
903
271
182
594
23
331
879
597
121
199
728
300
943
906
818
792
280
811
780
545
288
254
701
411
119
448
607
506
687
59
74
733
767
178
87
278
63
304
516
174
936
408
153
245
551
156
934
606
657
791
81
716
142
315
461
409
273
794
57
532
979
502
806
917
616
12
47
762
594
421
77
836
494
911
665
962
735
148
876
844
158
903
763
178
439
540
992
507
431
94
48
909
849
233
790
310
354
829
11
789
712
650
671
348
889
694
409
354
880
126
901
365
842
224
717
587
435
969
856
478
168
688
485
274
911
749
984
492
128
361
453
473
292
283
100
668
644
34
11
859
416
995
945
140
366
861
345
695
24
450
699
994
675
564
731
260
658
20
184
33
150
373
360
366
878
735
576
116
145
518
405
917
567
588
712
692
595
988
820
451
110
490
565
442
918
200
786
261
573
521
294
448
71
101
548
534
585
587
905
12
620
563
186
595
867
474
332
215
973
661
301
500
337
997
435
888
43
613
309
567
334
101
85
410
758
160
896
993
943
802
807
435
332
552
76
282
256
906
692
658
775
732
709
589
875
414
884
992
896
782
334
130
513
0
980
411
417
871
141
753
558
435
280
523
210
71
59
535
726
889
862
490
914
445
603
406
730
849
639
837
750
349
813
689
545
295
589
7
656
888
641
194
573
164
332
420
992
939
439
729
440
66
358
841
891
696
387
842
778
261
329
200
864
677
419
990
98
739
74
359
214
977
682
837
62
407
734
224
219
510
52
103
716
717
916
142
912
663
911
270
335
545
969
212
759
832
975
990
427
756
345
799
381
287
823
337
681
819
617
59
239
134
666
750
664
265
418
297
600
134
349
194
538
114
458
755
948
559
396
57
55
226
977
208
562
306
780
135
997
481
972
406
237
494
949
314
424
115
688
139
579
215
564
2
256
115
306
225
366
552
547
696
31
846
934
846
308
954
26
411
668
400
212
545
526
371
227
350
70
283
99
365
405
12
844
107
567
360
765
596
784
418
515
569
804
941
844
922
624
761
386
641
575
693
658
358
615
490
353
714
417
111
78
563
295
417
565
674
973
967
561
398
460
584
390
281
628
531
270
911
153
474
807
737
528
548
526
11
344
278
166
893
372
51
4
777
422
145
232
138
884
611
769
625
880
392
476
658
327
524
557
312
358
557
905
431
269
560
299
582
788
606
67
829
518
809
787
24
352
239
888
462
431
990
242
463
682
264
261
39
617
390
446
42
881
999
447
351
418
436
218
349
664
70
270
728
53
593
103
460
94
525
863
539
989
992
5
864
121
610
215
720
511
670
915
296
778
183
516
331
630
741
4
333
733
89
913
60
428
283
304
617
44
725
925
907
772
987
959
670
435
425
354
299
257
248
581
517
564
193
729
793
800
424
41
475
659
149
659
605
278
354
701
528
281
720
348
54
710
286
4
460
709
272
282
611
236
548
423
676
720
562
520
421
233
867
213
827
634
639
345
242
494
646
672
224
85
26
553
583
103
344
135
770
409
251
656
365
578
605
441
772
347
900
746
915
29
960
272
210
219
959
648
625
641
432
236
645
670
738
434
609
413
900
296
333
603
239
134
40
485
969
309
576
66
67
277
910
551
451
581
10
829
974
414
316
520
655
281
192
773
343
83
238
264
99
670
656
122
179
117
405
335
964
237
445
500
529
577
442
690
895
70
188
791
159
757
294
297
29
824
660
116
292
32
214
838
991
627
956
758
209
656
481
615
640
889
444
941
857
452
515
28
11
519
196
725
497
237
996
170
935
176
10
779
35
728
203
962
120
348
384
110
805
365
75
536
935
496
64
554
721
202
125
109
854
146
231
476
498
309
504
237
686
244
99
236
217
838
878
598
354
292
657
213
697
877
965
863
302
642
220
923
283
370
722
813
661
152
55
851
822
525
363
193
757
368
338
511
963
608
831
926
106
655
523
295
44
94
437
840
638
936
148
69
563
97
552
35
315
777
583
42
817
589
576
318
198
877
979
468
109
897
482
357
555
372
447
706
976
554
162
652
225
797
708
978
624
541
319
360
275
707
184
250
681
737
939
266
700
570
728
13
156
907
952
685
422
301
131
437
865
411
151
204
553
433
809
243
299
26
744
267
396
986
34
851
632
55
548
110
372
828
996
611
355
184
55
273
442
419
421
186
425
562
289
359
160
513
124
937
452
610
908
287
965
396
973
335
387
875
642
52
486
698
313
361
189
901
635
238
94
25
574
639
492
830
822
643
712
505
709
151
406
194
677
794
541
985
105
291
657
832
217
989
307
147
592
170
870
108
306
314
46
34
324
7
30
239
753
557
902
324
336
720
703
378
650
652
18
689
763
827
868
769
527
683
616
810
214
265
341
38
764
665
298
322
620
943
576
671
744
806
27
805
149
62
518
308
615
393
455
422
487
379
276
17
497
217
4
864
109
779
742
462
16
153
988
507
40
400
65
488
982
428
728
522
100
358
497
594
667
242
42
2
202
722
247
915
27
981
79
298
980
461
629
794
79
497
557
589
553
594
821
813
670
375
461
211
983
892
172
85
318
409
256
405
682
540
657
635
648
56
992
579
917
499
195
823
966
67
661
580
233
20
632
272
582
193
596
870
348
688
285
234
725
946
184
957
453
401
319
657
975
139
900
948
787
756
32
414
75
460
518
501
564
643
635
680
77
627
378
122
858
497
575
241
105
334
976
989
502
433
617
552
249
961
1
884
262
438
641
686
486
240
625
533
879
187
424
421
186
225
786
968
693
140
422
713
953
623
360
958
2
264
251
169
839
72
672
404
169
919
215
933
550
498
43
168
136
782
244
623
396
756
604
636
28
257
942
43
950
19
591
358
701
954
111
518
17
986
554
634
20
88
882
903
128
570
705
667
210
513
884
122
866
170
483
160
378
512
175
932
149
955
418
651
195
765
111
560
227
199
748
689
742
51
818
329
853
847
463
41
84
129
681
933
969
309
987
243
952
662
808
395
996
669
453
429
298
488
823
185
598
529
525
634
176
608
847
429
950
386
816
108
326
691
977
671
219
2
787
166
605
52
503
246
243
164
362
315
464
224
596
542
770
488
583
528
543
742
175
879
664
327
301
800
209
799
972
829
655
119
31
316
387
605
639
80
954
348
966
171
761
531
507
255
717
70
797
294
212
118
201
890
781
226
123
551
273
797
448
821
769
321
463
407
144
911
44
619
554
907
138
427
865
660
568
529
951
27
284
332
254
286
747
521
520
174
2
192
5
146
497
263
366
458
854
500
515
991
778
100
293
751
996
936
340
781
765
55
800
481
520
287
839
312
37
376
940
535
163
182
29
768
337
272
973
420
227
596
990
536
611
396
682
932
87
36
801
313
743
574
910
929
414
94
92
81
47
740
593
545
492
164
668
332
487
596
304
260
368
960
155
59
330
697
904
295
29
225
746
77
238
880
100
164
581
521
805
67
469
172
271
937
370
575
495
430
75
514
557
524
563
311
961
563
745
374
706
621
565
428
492
644
16
269
619
273
882
334
142
431
937
770
587
205
983
680
540
284
197
170
187
399
582
215
976
246
783
869
539
998
43
337
876
361
324
677
909
910
54
425
912
908
571
828
900
382
931
941
920
505
339
252
717
101
939
271
536
917
593
923
892
852
217
952
29
448
341
211
587
209
409
120
193
62
549
742
13
539
657
764
128
351
824
11
470
326
799
850
567
430
301
316
222
919
969
425
182
443
301
566
299
55
299
822
562
554
575
385
994
337
309
736
624
238
665
313
875
845
816
943
769
108
83
113
557
648
242
713
522
133
479
211
5
100
210
909
278
333
755
765
613
942
892
686
852
181
82
857
504
956
373
49
635
485
522
482
458
684
571
995
827
571
209
755
0
226
612
540
197
785
572
379
673
833
819
626
903
775
282
760
484
943
47
983
888
365
926
256
897
48
821
220
861
433
849
854
631
31
682
381
81
190
663
163
462
909
986
201
726
362
539
638
581
863
343
697
925
565
940
960
641
248
825
66
339
947
949
185
484
199
717
418
832
76
93
464
460
294
844
753
380
668
838
232
303
176
224
125
319
59
75
360
229
42
913
552
909
330
471
758
156
267
898
857
51
145
374
928
509
12
525
894
946
189
840
762
804
860
661
606
789
987
443
519
212
316
177
66
808
531
388
243
135
684
242
872
606
296
678
883
904
803
529
609
632
754
749
764
372
693
692
330
447
143
463
25
922
160
726
992
624
828
302
765
812
645
142
301
246
488
307
142
706
41
747
271
659
177
236
480
18
772
679
654
565
549
383
519
970
959
735
952
15
434
687
871
217
825
359
973
729
30
645
805
207
165
493
536
215
312
392
776
47
505
75
393
173
720
826
600
590
942
129
886
284
409
298
928
724
737
604
0
0
640
151
410
591
680
808
421
717
848
363
210
13
219
755
264
147
287
115
491
448
780
249
926
266
761
692
303
972
958
46
710
293
970
173
257
620
749
488
290
916
941
219
792
154
691
649
503
640
759
611
118
748
63
193
871
19
667
648
80
433
414
245
880
182
292
169
85
902
891
567
962
976
269
756
482
382
723
602
550
959
364
805
497
596
457
150
170
743
145
77
689
159
830
109
766
130
763
448
993
788
491
738
375
435
700
79
146
447
269
622
420
510
578
283
452
673
186
846
481
925
467
468
180
879
601
688
102
553
483
218
387
196
487
428
689
323
591
599
9
871
749
951
466
615
314
615
609
316
488
184
128
669
615
249
60
832
750
190
822
361
537
394
865
527
179
571
385
697
158
732
172
755
162
132
309
550
454
618
230
507
278
31
536
586
715
469
97
327
122
622
157
161
303
732
933
649
763
788
29
598
568
543
585
822
184
713
586
807
75
322
120
472
737
588
173
19
349
286
701
692
194
649
769
390
935
47
62
570
983
130
100
519
846
619
161
768
214
254
90
234
694
312
720
683
780
634
397
39
349
704
628
332
337
793
757
850
270
643
989
816
230
51
49
187
254
178
56
245
424
13
766
584
409
116
17
19
613
454
751
157
994
951
111
993
672
77
345
479
31
476
587
189
550
22
0
456
229
516
704
49
572
674
313
341
420
571
258
28
253
606
647
915
950
403
671
378
376
565
495
686
414
303
546
887
112
105
518
164
904
990
938
347
740
53
172
90
59
466
906
933
53
444
141
710
193
231
561
306
883
689
439
118
808
850
268
577
413
529
369
931
492
24
620
137
975
627
549
136
203
777
226
362
329
671
1
112
883
998
703
232
908
786
536
867
106
928
225
862
828
756
929
23
958
549
43
342
971
976
140
882
552
301
676
430
978
303
235
544
645
807
110
114
978
454
419
642
817
591
79
856
177
844
765
496
478
231
773
97
674
991
375
102
558
85
109
573
78
436
401
619
268
301
892
466
16
442
895
488
308
506
442
939
455
977
988
89
810
554
128
30
316
12
687
424
473
492
19
52
76
690
841
553
514
548
374
878
896
238
45
989
763
622
18
590
684
957
664
270
985
895
535
129
653
932
90
331
131
346
495
495
386
167
109
59
293
765
217
668
653
352
118
450
413
698
568
793
932
764
641
822
620
718
743
184
480
981
569
61
701
417
958
535
293
169
753
352
609
355
553
976
292
374
910
509
637
468
858
85
511
18
692
351
382
844
939
816
315
704
678
342
425
194
386
153
118
799
600
452
287
630
309
613
87
647
721
578
755
475
721
19
548
869
959
57
886
453
415
305
762
696
124
109
982
818
611
152
406
745
592
951
494
593
297
671
42
994
538
556
584
92
269
938
278
64
670
364
0
91
844
958
813
749
881
725
743
171
168
372
930
908
233
301
369
58
436
762
699
951
30
715
894
867
716
473
412
875
73
795
347
909
427
595
915
344
679
441
234
288
338
656
206
37
986
868
312
663
387
433
294
577
446
649
769
837
308
570
913
779
753
955
277
363
359
820
597
850
686
60
287
413
501
155
80
908
407
781
441
53
876
460
731
683
698
601
186
502
142
535
514
489
542
87
410
37
319
655
339
894
432
582
173
337
340
941
568
932
865
87
916
41
387
981
884
849
116
353
292
147
74
449
764
614
892
715
662
424
327
670
527
39
732
383
54
550
320
61
940
617
442
186
963
660
96
446
393
3
512
709
294
115
295
760
561
609
718
704
117
971
188
162
30
515
547
439
112
926
797
738
129
748
267
821
438
744
943
355
824
629
534
147
693
376
664
884
638
424
981
69
701
824
130
30
737
786
666
571
134
696
430
758
261
428
705
952
550
175
875
644
222
221
490
101
712
616
312
178
430
495
995
492
415
512
996
537
771
894
869
860
709
187
264
225
483
478
933
218
915
190
482
980
584
405
68
733
593
496
795
779
511
138
103
748
157
787
184
767
240
147
748
360
391
336
655
156
573
744
410
929
240
619
823
625
973
718
626
219
958
867
512
639
439
99
544
242
112
397
439
962
719
542
853
802
107
725
132
404
420
41
372
825
583
61
475
793
920
82
67
722
159
298
502
861
815
312
599
111
893
895
371
332
557
192
345
87
25
737
534
85
167
937
607
156
663
169
575
144
899
974
684
24
575
146
682
286
418
50
420
635
446
435
630
16
118
352
42
14
673
493
755
16
145
526
979
615
404
363
867
259
906
800
806
15
969
807
153
540
852
624
12
717
261
445
203
872
547
228
711
948
500
230
796
861
465
280
466
123
363
598
588
756
579
263
577
52
722
715
554
45
114
714
922
902
608
673
271
255
173
986
381
568
496
87
293
468
608
416
372
979
376
121
815
451
768
30
265
744
114
405
413
704
427
229
775
853
809
917
171
656
951
480
608
327
894
354
52
341
883
793
241
96
742
677
849
396
996
572
215
295
395
679
274
245
118
816
876
21
892
560
675
144
834
914
533
199
576
432
71
982
186
641
165
293
391
722
251
902
939
510
290
778
278
587
600
397
951
248
216
625
676
395
840
215
900
47
163
391
663
787
302
165
604
496
290
801
715
508
516
39
624
903
788
373
329
679
110
430
46
304
290
942
705
206
508
985
979
246
922
820
485
955
146
269
591
570
860
49
310
455
32
658
196
151
931
525
438
513
691
744
649
185
535
926
814
635
135
954
465
260
242
685
610
516
948
373
797
417
61
912
897
763
462
175
532
931
975
162
494
644
737
629
791
801
466
762
716
593
525
339
542
521
175
339
159
267
326
892
880
561
131
841
953
218
4
581
432
862
208
4
831
668
113
107
690
579
995
106
407
425
405
538
118
368
78
434
642
134
646
967
331
787
267
234
199
387
444
892
883
725
44
978
104
211
51
630
490
648
873
199
175
630
127
215
88
363
536
718
239
802
483
752
532
218
564
884
655
637
38
877
877
177
611
969
214
320
808
692
419
591
132
173
434
100
927
95
190
112
449
261
301
74
332
590
116
20
548
81
916
15
725
194
183
73
784
355
136
779
375
298
135
212
866
410
867
190
349
507
199
140
356
222
614
615
391
964
792
353
493
37
831
390
980
693
93
986
471
419
372
371
353
238
657
15
192
729
103
768
171
589
994
527
286
305
733
186
483
237
67
415
379
33
7
476
378
588
746
726
234
851
428
116
914
759
378
983
172
27
410
148
285
177
329
792
89
158
852
591
837
158
378
152
669
369
887
231
648
690
491
210
344
733
610
699
512
481
323
340
569
56
922
731
316
44
239
907
230
765
483
945
808
967
662
206
661
650
247
810
606
886
208
44
304
133
248
679
188
689
477
639
404
389
503
428
302
9
994
995
162
501
688
974
693
982
445
563
546
997
406
144
476
354
898
307
671
65
459
831
707
15
159
129
79
207
716
483
198
171
648
392
223
197
961
279
797
457
410
205
699
486
510
806
183
524
893
829
376
11
317
460
272
529
163
727
904
885
314
914
935
354
733
987
95
280
949
895
639
571
49
342
178
380
158
282
801
808
191
879
235
574
593
68
505
225
832
907
625
180
466
639
380
426
945
37
162
103
751
611
936
759
701
943
629
714
389
224
815
601
819
655
301
408
740
831
282
984
185
389
564
25
415
474
688
957
97
312
443
846
941
262
492
985
414
507
601
275
256
588
193
89
224
890
497
583
239
990
367
362
543
480
989
520
484
249
593
349
344
897
504
901
829
810
821
364
234
871
480
173
304
499
617
400
222
338
413
237
290
176
897
118
397
286
775
952
112
791
558
854
483
449
797
980
332
136
56
716
690
835
768
432
141
444
270
637
749
123
572
727
952
600
33
419
286
151
397
797
495
994
623
805
2
609
793
698
991
217
259
583
273
900
500
857
461
996
7
3
110
752
355
757
99
646
719
378
293
773
2
531
651
706
288
912
615
782
418
803
768
348
640
365
220
402
378
811
948
589
635
291
944
730
1
308
112
165
616
254
707
762
305
209
378
488
858
519
965
800
604
104
441
436
465
280
164
480
947
402
70
767
454
171
391
539
474
527
533
595
573
511
908
176
915
197
530
884
878
783
666
538
435
850
609
119
91
125
671
411
535
395
231
234
249
666
888
610
997
314
676
557
315
473
504
502
5
409
335
859
238
581
748
450
397
737
623
904
727
184
171
480
35
384
556
940
611
447
806
756
994
594
909
999
226
35
77
128
889
69
435
158
466
766
308
631
994
774
698
124
538
731
871
30
561
441
161
832
855
837
880
392
51
959
280
207
429
314
566
451
547
686
972
442
473
633
882
676
157
927
976
658
206
932
597
827
681
460
473
975
997
615
337
815
974
707
858
849
398
780
363
238
908
788
147
25
547
697
131
600
354
165
772
572
175
399
719
338
300
655
504
337
511
438
815
424
330
48
420
952
288
771
341
842
562
989
910
730
409
324
268
974
571
534
60
770
233
391
863
618
730
842
404
264
453
272
342
294
240
115
487
678
608
927
969
642
395
642
624
880
436
355
787
128
999
627
479
187
614
873
548
543
858
465
52
29
497
233
988
323
255
90
630
738
170
456
7
52
859
560
468
736
383
273
339
425
609
624
849
74
617
966
317
289
610
517
788
989
171
11
658
334
193
791
458
86
680
333
288
949
851
641
248
733
179
667
674
775
667
230
75
479
231
747
591
157
172
410
906
677
766
647
420
483
556
26
902
113
989
271
597
799
86
19
456
857
396
962
952
500
326
526
41
679
467
334
525
751
409
607
841
470
382
918
879
133
316
751
591
545
806
289
784
582
476
311
214
259
932
251
358
250
470
446
687
193
483
503
606
32
703
612
407
305
702
620
900
111
339
418
433
765
580
618
609
932
937
535
869
981
610
122
627
56
119
642
175
295
748
56
599
793
765
23
323
629
691
398
342
69
540
259
998
498
797
252
568
834
158
96
82
486
471
320
702
921
525
921
690
51
113
865
919
498
845
325
297
606
611
806
858
136
756
527
664
413
886
424
857
219
925
477
353
236
216
786
488
172
428
899
116
924
649
615
686
296
179
228
668
940
891
819
279
712
459
822
777
276
702
898
884
326
472
630
931
453
130
917
123
555
173
973
225
931
683
601
380
192
966
138
908
53
964
74
144
814
516
73
845
830
298
618
104
289
855
484
579
57
887
320
929
603
109
5
73
668
465
501
649
691
869
105
531
135
963
366
852
468
701
519
985
332
461
346
336
178
2
506
302
83
251
151
853
196
797
405
911
789
251
660
143
306
428
469
619
639
156
622
387
960
908
810
850
436
822
298
952
408
183
47
573
79
163
633
173
295
981
22
303
265
512
308
639
177
31
838
51
105
709
908
189
453
816
626
975
170
825
801
749
480
510
270
476
941
900
437
474
170
703
330
617
648
567
953
306
104
453
458
410
274
341
727
149
956
868
495
792
899
674
676
584
7
833
72
90
860
733
779
211
868
78
189
527
253
291
385
434
687
147
41
548
110
660
221
692
812
834
222
611
831
983
281
354
650
355
282
33
465
515
385
547
614
173
144
169
845
915
244
826
40
662
189
958
355
304
212
63
722
819
318
882
533
467
828
250
852
365
979
212
939
999
678
226
14
99
32
751
453
318
830
971
524
445
646
911
744
257
899
275
131
547
231
626
335
981
410
266
343
783
434
142
487
445
557
592
738
364
508
877
448
377
233
376
627
362
397
997
575
708
207
277
351
746
836
788
284
996
542
487
473
508
69
886
528
83
583
841
681
197
540
842
902
863
871
483
219
784
579
729
435
505
272
191
864
875
264
966
539
762
843
853
541
531
214
69
264
706
418
56
53
383
504
869
461
213
122
709
879
554
93
333
308
958
738
479
50
861
615
833
928
987
805
870
112
700
611
368
279
630
590
293
460
685
305
410
854
198
594
407
587
450
858
561
773
407
691
31
490
343
769
276
144
621
452
624
169
308
296
407
595
454
816
476
933
576
563
369
615
977
290
440
347
206
785
20
919
714
967
814
317
527
41
190
791
431
315
766
294
942
563
788
784
207
506
722
111
756
475
573
520
170
326
847
929
155
227
674
734
52
537
925
296
738
515
760
709
969
253
26
611
835
492
305
642
188
482
61
852
167
352
652
379
464
649
530
446
677
887
657
210
330
953
589
4
831
808
616
324
457
851
838
818
676
204
794
29
709
250
364
421
583
1
820
552
341
521
296
166
94
572
683
536
591
651
384
858
7
983
38
314
383
79
651
323
642
161
494
70
556
313
990
697
411
161
19
741
586
660
157
265
400
111
837
990
977
709
279
295
555
158
768
554
408
259
211
530
774
394
439
60
12
893
880
338
349
791
988
574
925
604
653
966
71
43
750
905
118
266
180
89
354
635
602
260
812
298
617
509
792
511
365
450
503
852
851
403
757
655
756
541
161
118
887
42
65
484
672
825
53
914
937
653
941
777
498
238
311
90
162
729
952
185
647
393
141
688
433
862
394
309
987
274
616
406
68
617
324
429
951
72
973
797
920
127
363
659
307
131
550
705
47
50
81
514
239
484
890
932
219
284
782
48
802
44
105
777
954
425
775
696
450
906
846
544
599
15
835
136
171
929
931
328
829
919
984
975
409
396
705
683
565
260
116
187
423
697
671
68
200
544
308
938
190
887
910
649
893
367
564
328
672
441
615
718
313
584
203
304
560
364
948
929
309
799
565
19
630
445
607
125
622
634
49
362
854
840
538
869
511
491
118
230
519
230
177
141
186
791
80
286
441
260
517
284
539
83
324
78
395
21
541
26
705
701
351
183
771
757
679
739
855
565
147
270
982
21
835
816
732
449
776
287
163
965
981
694
587
835
460
604
480
72
371
260
507
20
742
814
815
476
572
67
213
824
168
163
556
632
23
90
745
619
80
241
96
709
953
471
759
407
429
419
390
581
895
865
245
162
424
40
283
215
446
876
126
785
997
29
183
139
428
526
483
909
120
981
574
513
185
154
1
249
835
16
557
277
576
310
265
884
122
983
676
840
567
120
909
350
389
142
185
296
994
652
766
169
371
579
863
185
201
119
485
796
459
431
540
1
164
305
419
407
881
931
609
212
791
182
978
728
500
916
218
575
778
631
242
507
882
535
728
982
360
177
983
354
324
463
734
513
661
968
899
702
280
492
62
655
565
410
182
560
668
207
367
549
772
676
674
586
132
923
472
550
882
674
687
824
707
534
525
410
596
145
10
548
521
205
648
814
480
643
910
652
532
401
194
465
849
513
17
659
34
512
96
65
875
431
788
624
84
30
330
732
466
89
866
116
504
765
425
154
449
631
996
161
406
642
129
349
484
378
560
324
510
641
581
351
31
556
443
537
616
898
353
79
571
902
964
582
568
623
945
112
989
730
220
384
158
610
210
966
878
125
362
119
722
466
286
815
150
93
898
368
542
363
425
703
721
583
311
232
866
855
243
415
74
542
913
33
772
806
368
499
54
183
480
803
275
471
593
293
666
865
614
854
456
495
546
560
22
217
26
616
993
974
925
218
556
28
69
605
832
612
512
633
999
61
447
994
276
236
812
643
921
408
692
126
292
278
286
913
957
528
845
871
249
236
417
874
38
21
550
202
115
798
230
895
144
290
455
288
455
102
40
587
387
315
324
375
592
64
533
526
213
121
638
539
26
697
16
317
772
675
873
86
592
47
60
124
619
605
942
954
423
666
475
645
863
22
858
601
887
321
49
528
905
742
697
921
533
459
732
521
608
104
665
915
601
135
124
253
356
897
711
63
791
578
24
429
136
532
373
383
80
373
874
638
748
950
177
407
379
740
349
176
353
301
626
912
236
472
310
891
661
667
828
467
974
51
173
460
897
153
492
101
267
239
556
819
973
251
920
730
409
831
355
884
208
851
816
470
766
579
476
579
212
910
950
653
282
238
55
732
668
942
999
909
55
500
217
184
987
240
914
484
32
288
290
253
63
416
794
261
336
777
312
325
705
245
990
231
537
774
180
582
278
573
455
643
657
50
385
313
15
918
121
339
816
403
549
861
820
372
230
470
665
128
569
529
317
415
473
553
65
456
816
986
473
730
936
151
388
452
120
68
672
260
630
685
922
931
938
90
103
661
94
402
577
384
613
799
768
889
893
415
36
680
704
807
891
209
499
786
28
14
468
678
396
596
83
405
522
551
453
957
776
666
551
305
178
544
965
273
126
990
968
597
173
654
4
541
341
660
991
145
372
58
375
119
24
388
78
959
137
434
98
676
389
209
84
682
707
461
792
236
99
365
757
651
210
256
166
895
423
216
366
201
527
706
159
315
426
894
209
255
733
97
866
504
645
975
459
119
255
681
777
321
666
401
119
433
548
550
261
460
652
415
913
596
860
836
410
986
845
345
594
903
865
54
534
369
983
689
746
784
996
486
620
558
681
614
82
906
860
501
534
762
300
227
483
201
441
343
625
8
650
449
133
583
863
256
65
518
683
938
460
425
921
740
186
720
620
393
589
169
886
153
712
504
95
205
59
673
137
658
5
918
719
700
950
657
961
862
378
694
815
505
214
86
268
397
375
306
742
902
778
605
262
518
196
863
436
388
232
378
997
764
251
475
797
57
50
933
321
690
329
500
854
679
393
882
595
942
144
549
976
423
317
314
958
502
740
599
477
378
312
44
12
647
78
260
788
950
493
644
947
160
891
399
567
836
604
288
837
259
449
290
171
742
191
266
467
585
353
987
892
643
829
924
454
546
370
419
980
793
640
611
350
91
790
488
867
799
573
809
708
378
252
130
168
740
824
816
382
329
987
42
510
149
290
337
334
901
521
415
667
518
64
100
823
990
310
617
197
449
598
312
547
767
41
707
306
262
446
778
30
331
951
428
909
479
55
385
448
680
882
536
832
346
82
380
429
791
940
920
181
258
806
477
721
329
509
195
455
544
461
238
929
520
383
43
814
693
652
13
528
419
300
207
417
20
581
70
746
61
579
703
88
680
778
159
330
178
925
621
266
901
710
848
285
994
144
313
380
63
580
524
38
667
336
923
869
303
486
265
479
838
967
929
579
601
186
878
395
691
352
541
283
235
79
842
898
389
144
711
65
386
947
382
707
468
734
643
767
546
756
607
336
755
630
619
985
689
546
278
929
613
592
820
313
250
604
740
319
0
366
327
45
248
560
507
403
859
605
55
410
522
92
180
314
176
469
902
812
549
726
683
962
150
986
349
273
663
965
935
683
527
271
700
468
32
256
488
601
383
347
416
582
763
616
44
970
116
711
835
808
614
6
304
353
351
406
382
881
643
267
717
863
757
469
326
386
308
632
346
923
271
771
864
561
563
682
590
125
543
432
543
110
849
890
399
524
369
516
973
165
393
648
758
271
530
804
227
542
257
922
785
109
495
599
240
304
138
623
570
137
617
708
949
299
558
328
99
503
954
780
806
683
310
813
962
107
488
990
621
770
128
68
361
132
83
888
912
755
304
400
864
296
649
83
568
418
532
296
393
527
187
564
926
394
152
454
730
278
879
781
592
354
202
1
28
450
263
553
989
581
984
508
195
163
65
383
315
512
293
824
629
227
527
420
139
46
330
326
910
832
851
129
237
301
500
854
180
774
955
507
711
889
935
461
226
405
554
876
901
532
800
302
82
973
18
893
584
913
902
157
296
247
798
653
755
893
405
534
796
611
906
327
56
999
680
889
806
322
698
412
36
33
527
407
994
564
907
847
406
225
324
806
393
124
501
640
155
708
331
312
599
41
174
604
707
286
976
760
946
930
849
558
589
594
52
751
341
580
651
56
170
733
665
7
838
444
385
376
599
471
258
843
899
575
176
954
577
70
373
426
198
703
422
512
846
610
783
907
245
857
30
810
545
269
968
229
223
640
855
186
275
45
463
392
209
337
947
447
100
170
685
458
771
914
14
878
325
737
281
79
380
585
601
282
435
761
23
666
642
155
375
620
525
81
995
973
509
157
912
753
925
895
781
147
17
860
830
239
82
297
297
29
916
82
590
808
739
921
873
496
164
514
357
174
559
820
477
661
511
834
448
248
27
540
523
175
1
985
128
646
235
722
553
661
801
940
90
714
586
356
338
981
881
318
72
71
661
756
310
293
354
438
181
23
828
989
982
467
289
595
569
788
370
44
238
733
741
164
800
669
158
983
681
348
15
592
890
81
845
341
507
954
367
364
253
697
36
520
727
243
270
546
566
75
615
140
765
235
472
83
998
533
899
319
658
832
111
605
422
973
124
365
320
616
527
314
736
447
621
830
979
145
420
653
357
355
575
109
237
298
612
642
754
91
817
42
7
897
794
547
571
428
233
916
620
39
522
229
124
609
924
399
156
926
258
688
808
411
817
510
651
302
851
804
864
787
103
652
431
824
40
280
606
837
868
975
850
629
729
975
193
887
781
703
920
414
872
816
673
669
339
636
498
392
545
592
34
38
632
966
429
130
388
648
775
617
464
255
375
115
790
864
219
603
711
293
822
35
273
875
314
205
82
144
856
285
888
659
966
213
849
905
215
805
872
496
766
713
36
304
821
724
182
88
652
846
150
375
71
311
969
188
97
542
819
210
501
926
667
214
103
132
191
951
259
489
577
769
731
113
927
456
103
528
552
5
199
673
257
822
59
270
300
111
440
766
298
835
711
670
264
762
222
589
901
15
63
424
714
292
217
675
130
984
919
928
129
757
371
394
84
738
421
980
719
388
728
229
856
495
275
657
158
636
64
308
152
95
649
92
92
710
720
439
908
452
694
890
542
478
270
263
762
688
578
772
242
180
848
804
417
134
526
838
998
486
800
33
48
743
567
645
236
223
910
798
842
697
904
784
56
663
949
248
67
948
769
56
152
511
135
623
548
228
701
451
322
209
520
218
180
437
56
17
775
871
75
338
920
955
947
874
958
976
613
858
194
401
239
156
50
591
730
33
682
115
463
68
174
623
404
134
636
284
995
302
571
946
642
517
457
258
689
50
903
590
226
649
551
654
4
743
549
642
769
690
811
981
572
581
877
43
593
372
226
727
347
275
887
210
906
344
773
719
202
856
252
731
725
251
789
969
967
505
298
511
34
765
233
132
539
175
736
893
119
22
447
935
829
459
555
470
772
463
208
785
121
151
466
939
828
643
761
123
674
715
72
85
834
677
983
950
537
722
104
713
954
267
154
678
443
247
945
814
495
568
701
590
946
996
190
59
8
231
961
659
809
591
713
795
328
412
656
735
201
485
923
298
31
453
759
994
234
431
922
698
528
149
208
115
699
660
793
634
118
672
940
779
700
190
192
858
171
446
201
128
146
518
877
87
264
104
742
356
346
767
297
598
499
576
529
655
618
156
133
793
796
24
35
41
264
196
696
406
729
599
579
409
124
460
515
618
997
260
280
12
714
904
879
41
150
884
908
145
685
311
800
817
369
723
896
734
356
88
692
633
957
393
862
905
585
172
566
126
147
323
113
226
814
688
250
191
70
317
429
84
584
81
511
29
308
147
733
669
243
567
904
858
331
726
906
440
939
164
91
27
154
740
882
366
574
838
699
575
662
521
693
155
896
774
931
461
327
915
89
734
246
490
358
546
49
788
246
446
59
919
68
63
725
478
282
832
178
55
528
363
674
730
752
456
356
881
822
511
690
517
864
997
849
35
33
233
915
470
987
697
195
719
857
250
534
281
668
808
198
177
104
598
477
735
135
415
361
5
86
260
156
769
623
124
385
992
314
986
964
684
642
710
348
267
194
400
659
565
943
106
279
12
860
466
455
274
967
74
282
576
915
718
846
52
602
911
455
993
478
386
215
841
971
265
378
166
977
310
382
474
717
309
176
385
199
978
909
29
137
554
564
670
54
137
612
550
183
25
751
46
146
523
803
854
75
692
611
498
329
276
309
723
255
334
568
263
131
456
63
73
802
442
585
605
834
996
776
564
349
393
832
108
395
664
20
563
676
404
235
196
966
322
982
348
175
109
648
761
514
400
879
434
257
651
82
695
585
851
245
47
430
479
497
723
648
257
276
178
774
690
937
923
802
191
220
306
508
60
237
785
452
348
914
86
754
581
136
214
951
246
943
455
24
105
663
298
333
596
772
918
227
576
970
331
905
458
571
797
490
547
611
306
556
967
79
944
323
199
566
734
633
680
942
410
342
950
827
503
339
454
236
134
150
600
536
371
4
801
246
621
103
638
28
150
809
855
323
52
289
895
950
969
148
473
282
789
630
459
717
83
55
83
842
168
556
741
724
243
445
701
59
786
926
323
504
266
360
600
403
945
89
361
673
177
706
570
481
13
488
898
21
340
714
444
696
219
416
742
718
960
65
943
806
570
504
189
91
821
39
503
616
522
844
507
430
577
93
168
787
649
45
207
641
473
12
325
192
712
467
786
210
881
958
164
725
970
685
181
830
838
714
181
180
756
103
320
683
2
553
14
306
504
394
642
909
427
379
458
336
853
265
141
488
25
274
165
69
809
113
114
148
720
340
137
291
149
9
574
781
400
196
451
954
436
695
945
767
350
140
698
282
810
315
242
774
780
151
172
723
993
351
6
658
838
217
40
77
492
46
23
912
512
161
121
351
124
748
32
189
812
315
274
106
684
367
577
121
628
444
282
264
724
213
678
388
751
714
682
424
582
473
886
421
300
908
174
529
172
614
726
826
225
453
497
909
791
243
60
337
684
767
299
840
74
834
188
971
382
669
276
30
787
158
989
347
661
470
625
404
356
519
147
197
528
480
734
549
421
588
170
229
885
826
570
596
539
895
970
934
909
82
120
184
43
87
590
80
426
220
89
529
475
601
341
142
553
788
428
431
162
490
720
339
40
215
41
965
387
721
888
730
530
459
96
481
63
855
342
562
489
857
589
590
316
763
335
412
72
550
345
943
575
96
332
576
285
202
917
563
917
385
754
132
183
834
327
962
230
393
189
339
918
977
272
536
98
510
273
116
510
521
707
341
843
886
555
244
76
365
609
175
898
564
79
994
993
78
207
522
250
14
998
217
10
57
3
924
298
710
501
108
331
27
690
712
644
128
660
602
524
186
685
428
384
848
386
74
824
712
488
397
200
980
208
483
864
436
594
79
491
956
777
395
788
777
112
751
838
200
688
26
350
412
905
143
685
790
803
424
970
845
438
87
837
130
466
604
726
558
468
820
617
745
294
949
185
366
184
265
625
987
358
108
753
443
321
898
943
245
952
180
732
123
378
815
213
806
429
709
657
556
238
598
179
549
254
815
814
263
728
853
547
120
7
127
154
223
39
656
192
186
0
112
209
706
54
78
916
362
688
561
256
311
839
58
14
472
842
530
210
860
869
737
537
228
118
818
689
792
704
688
385
736
897
823
895
986
368
200
336
280
609
596
119
93
228
119
837
943
9
427
614
558
205
796
941
461
250
781
145
851
497
251
770
431
485
302
848
950
477
976
651
567
775
855
481
206
966
298
86
750
696
504
743
376
531
862
562
503
706
842
644
301
414
348
155
34
348
361
57
154
250
934
261
298
344
478
735
231
483
970
565
900
632
453
359
482
212
40
393
43
363
359
921
678
880
746
721
35
670
859
311
46
426
73
41
611
136
285
172
10
622
69
895
231
35
422
406
549
47
353
99
581
760
655
636
110
918
547
206
511
306
919
650
838
606
555
572
210
636
834
157
480
259
852
769
559
216
415
244
549
949
246
830
593
563
344
591
495
730
275
151
244
460
932
46
837
279
890
522
32
49
241
641
646
851
202
166
10
699
613
170
795
535
369
136
196
387
362
600
9
281
97
404
177
192
874
390
285
640
231
128
540
707
636
479
211
532
94
996
310
238
948
259
376
356
953
89
396
513
870
915
292
163
297
272
906
322
261
607
868
331
67
985
810
992
215
298
315
283
463
647
770
728
213
304
303
674
779
667
720
564
119
920
640
964
90
574
248
772
939
624
13
736
377
782
503
31
472
754
479
219
772
384
892
404
286
115
130
988
501
1
362
285
711
524
448
483
528
172
515
951
608
398
664
934
258
643
151
592
218
881
302
697
945
198
535
20
758
306
283
924
612
743
50
502
673
465
285
19
518
293
185
773
504
251
744
537
5
524
595
196
343
722
667
286
278
114
225
518
236
487
989
758
26
353
470
3
758
809
539
161
313
59
12
209
973
17
705
143
948
171
685
125
837
478
75
200
746
953
113
843
279
969
749
761
448
580
165
604
161
333
66
461
745
84
674
60
353
142
722
747
617
801
845
236
60
507
4
905
419
73
141
118
476
736
357
947
929
731
489
106
285
966
731
728
888
649
869
133
340
698
121
374
19
604
303
4
700
541
662
210
136
488
607
585
787
18
912
623
657
394
89
462
934
345
813
604
449
645
645
801
84
804
834
168
18
690
163
425
775
584
292
260
24
158
270
964
73
642
95
20
805
961
884
96
551
759
424
771
965
551
832
829
181
887
866
218
831
668
676
981
102
43
314
618
702
189
901
611
483
510
163
819
59
142
832
48
646
811
81
965
460
866
32
511
577
671
92
371
404
76
971
501
694
988
619
344
417
52
364
743
886
90
299
600
435
991
151
903
286
948
557
690
692
684
820
425
376
410
908
447
377
814
795
738
181
263
50
907
256
909
252
641
801
526
173
949
490
800
933
519
124
722
135
369
28
323
132
316
69
175
656
987
85
889
738
340
331
860
196
214
144
718
610
932
923
279
252
188
532
676
360
706
314
412
589
775
538
615
522
617
435
654
429
746
6
856
187
578
177
714
489
108
642
847
288
490
173
241
249
288
395
33
247
958
936
632
248
43
881
803
455
585
941
847
291
0
991
842
577
356
254
187
779
688
668
677
217
327
972
254
316
663
44
373
177
647
11
363
161
54
114
75
28
660
104
929
353
561
9
491
137
696
267
98
464
246
730
259
409
350
994
743
426
44
264
585
657
691
669
295
409
944
231
711
381
322
407
798
948
67
329
52
986
493
745
237
873
682
772
682
705
498
846
416
54
393
672
717
436
743
765
253
608
634
148
334
193
0
988
201
258
680
783
808
805
177
94
788
858
952
701
62
787
349
894
200
425
803
564
351
433
169
611
19
110
925
271
695
607
972
904
674
527
222
547
809
695
937
423
631
445
299
449
496
357
742
343
770
105
515
739
88
515
128
630
191
379
750
746
245
102
839
877
835
624
391
81
331
380
209
191
479
587
509
72
574
299
922
711
337
113
182
899
988
730
969
626
316
655
880
641
922
964
96
587
409
300
283
32
248
829
192
250
403
767
46
521
381
84
966
627
810
492
929
486
504
794
376
967
762
873
418
608
493
443
852
604
110
306
911
955
953
262
531
189
279
677
90
209
742
178
737
64
785
810
611
203
966
714
793
491
904
474
309
731
854
168
665
374
877
768
822
683
462
34
529
620
538
230
620
283
364
535
889
145
163
746
301
198
241
889
416
469
839
23
553
796
671
959
708
499
166
932
601
545
96
960
323
925
278
95
309
500
222
861
679
324
593
316
463
613
63
180
685
637
38
341
542
343
988
656
130
620
962
648
308
939
119
304
791
569
425
599
529
228
431
182
178
450
153
419
145
301
638
788
908
719
221
819
826
988
91
382
411
335
720
548
246
260
223
151
972
87
555
347
326
874
71
679
53
367
69
703
766
556
714
473
446
376
68
400
924
319
895
809
843
560
835
836
768
765
879
365
678
230
373
896
820
705
490
81
708
708
924
787
138
192
203
731
646
928
562
254
20
938
287
330
628
471
174
513
684
630
356
590
200
344
415
407
330
562
963
652
881
186
352
35
809
926
250
706
698
531
987
782
242
381
230
587
795
706
182
58
349
41
72
215
639
103
616
409
219
950
423
453
564
844
658
833
496
945
106
631
660
15
895
580
957
837
872
974
956
738
775
721
218
738
894
772
6
632
543
350
206
806
816
98
122
912
221
422
186
376
700
358
795
36
305
774
530
137
515
447
306
299
338
695
404
988
148
342
210
771
51
325
311
199
420
157
349
284
734
649
473
892
536
194
314
391
72
622
457
662
95
999
865
155
681
748
832
435
782
494
637
251
257
276
137
654
159
818
230
537
880
413
68
605
927
354
863
9
39
428
941
658
793
571
833
141
153
823
820
995
46
502
737
319
859
248
746
829
969
649
319
884
297
450
191
439
798
989
177
993
489
795
128
154
566
811
775
367
754
547
488
375
91
730
411
96
912
307
62
961
783
3
550
832
727
330
479
646
706
942
269
839
567
435
117
317
620
116
660
981
77
482
184
809
872
870
526
59
161
738
994
13
119
365
157
198
193
793
978
495
962
125
3
235
497
786
810
578
845
291
287
257
805
472
687
375
443
289
507
924
502
93
514
95
934
947
443
437
367
837
514
126
549
373
623
851
670
689
468
149
416
863
203
448
908
30
598
2
776
590
607
751
927
43
761
407
602
168
258
920
931
958
955
75
7
141
855
191
273
75
460
496
398
631
262
667
63
645
712
776
214
723
988
664
713
355
487
454
222
559
800
687
737
222
106
940
177
272
543
103
51
787
590
465
926
452
597
610
227
981
749
817
331
222
940
956
681
592
346
663
209
684
178
607
41
47
954
602
411
813
133
871
43
58
142
511
576
606
368
741
368
587
15
913
14
435
680
72
879
776
385
900
926
838
21
201
725
437
6
896
990
498
200
116
932
369
234
881
311
841
491
682
267
220
581
279
148
997
787
386
844
801
129
709
822
495
998
675
852
220
448
753
156
470
960
584
315
819
136
914
414
941
941
65
657
152
900
799
956
957
525
45
501
547
853
726
878
784
632
794
852
337
947
352
598
797
889
121
701
321
562
943
452
129
610
466
0
98
717
228
3
555
844
528
3
810
898
277
393
342
929
896
943
599
211
898
590
949
11
726
866
990
873
610
893
952
407
885
327
359
469
551
165
449
174
285
631
176
363
757
530
397
875
818
516
687
627
243
220
485
131
205
198
470
253
307
593
58
998
861
907
594
449
450
897
619
807
82
510
754
613
885
635
183
277
363
928
321
936
307
292
20
835
488
956
301
255
538
355
866
546
302
306
393
804
925
564
504
427
410
429
983
363
941
385
812
876
681
142
362
551
468
253
749
453
102
505
679
83
310
255
515
572
99
509
799
679
817
200
89
338
657
820
849
997
34
139
733
896
938
138
674
610
496
290
640
499
853
953
944
53
576
270
414
79
213
201
884
127
568
666
785
415
998
806
835
222
789
658
182
739
522
986
767
326
967
229
112
685
373
873
326
333
659
133
165
660
855
451
509
843
8
56
332
979
505
473
188
672
660
334
460
77
293
787
995
65
934
690
885
317
340
850
399
10
29
544
446
746
352
266
717
396
313
875
720
557
92
17
969
455
302
585
442
65
534
684
974
96
889
679
857
856
679
831
46
569
412
125
322
518
352
991
401
440
259
751
932
391
421
162
226
229
282
644
516
786
200
550
500
803
523
970
781
397
669
508
143
113
280
889
932
472
569
645
824
686
526
131
884
204
195
570
225
905
14
184
566
7
998
575
693
28
635
152
29
842
987
34
217
407
773
833
994
77
271
94
650
450
827
449
299
75
942
821
710
336
757
779
786
49
688
817
165
67
145
407
369
216
58
695
239
622
19
740
668
213
576
976
834
812
482
485
456
498
10
549
773
143
28
218
840
86
240
60
195
797
337
254
935
561
599
651
613
11
75
862
124
47
506
904
756
921
920
912
77
284
189
124
274
24
20
904
16
0
144
537
502
687
357
336
444
11
243
274
523
161
631
534
388
84
60
687
374
856
504
216
158
216
672
819
214
415
74
636
863
325
632
633
166
691
134
652
113
35
725
288
328
896
579
555
401
719
223
19
781
608
314
43
943
566
994
125
388
817
727
318
518
574
867
540
506
882
300
613
66
850
973
157
727
591
370
398
198
602
259
512
905
36
420
162
564
382
95
244
715
596
247
826
973
890
581
736
360
4
154
286
598
96
739
30
765
806
21
334
343
402
3
149
803
872
177
203
410
511
997
199
281
128
246
520
405
164
866
468
95
634
221
780
276
955
420
270
881
99
40
249
772
519
857
637
675
419
426
259
353
185
178
554
702
354
238
638
3
761
288
755
184
264
19
937
306
416
168
880
371
447
191
69
705
704
218
885
662
940
173
477
121
178
914
971
206
890
719
31
163
846
225
465
113
282
581
113
212
60
612
304
702
819
674
513
335
498
870
702
63
204
730
635
996
803
131
803
977
111
864
792
359
501
730
965
307
50
408
826
92
870
567
566
867
808
100
691
489
418
387
866
350
870
420
166
540
345
819
417
458
662
914
558
68
707
557
96
902
172
902
587
447
959
507
132
789
342
66
541
764
51
390
791
416
517
804
256
18
309
469
46
395
809
833
947
126
850
813
723
73
544
165
187
886
876
37
147
447
675
842
893
723
72
539
633
609
213
489
418
555
430
113
439
221
727
616
271
682
428
863
530
474
251
244
979
579
306
846
939
751
676
728
974
859
547
703
769
888
61
646
218
496
392
88
904
856
323
281
804
491
122
408
926
785
164
262
721
259
284
11
330
491
147
449
504
952
488
661
242
102
139
2
706
785
251
174
853
489
837
853
44
348
156
193
24
167
444
970
766
862
970
618
951
934
450
99
649
150
955
94
135
733
522
641
445
836
606
980
95
64
640
736
386
287
518
748
689
102
186
549
252
736
179
322
475
856
60
427
278
602
582
120
372
641
910
626
448
803
983
319
3
202
658
528
956
317
500
722
759
770
90
892
943
350
188
920
576
737
908
218
621
609
208
841
882
964
534
344
726
81
83
266
3
855
589
864
234
72
996
173
635
16
681
379
765
736
888
27
152
53
540
903
85
55
20
834
786
908
243
253
436
74
408
417
711
583
639
897
116
942
131
316
510
186
372
140
788
842
625
360
34
22
259
657
878
472
470
216
690
179
30
288
491
694
522
0
320
925
850
95
529
155
890
93
865
495
664
946
629
815
717
653
311
130
781
90
93
250
239
684
137
94
707
691
572
268
673
449
196
787
926
965
934
333
344
128
464
357
462
382
176
441
861
81
509
713
120
858
621
236
249
345
762
57
12
703
150
734
579
866
416
267
840
667
62
399
718
17
426
81
127
445
88
981
912
109
527
220
693
740
699
622
182
219
201
243
99
376
535
275
958
605
241
973
459
225
564
453
275
86
501
640
512
564
355
968
738
636
630
142
448
427
315
387
859
992
543
258
610
668
404
68
50
922
122
574
741
456
968
543
156
770
646
35
600
526
796
646
973
226
524
827
920
989
30
234
361
524
381
387
432
607
101
368
355
705
148
549
995
272
123
384
916
95
652
396
807
399
947
783
299
529
958
211
961
87
232
369
664
130
868
444
515
894
624
790
660
682
860
371
14
327
297
898
102
794
39
212
194
869
46
475
8
927
243
108
588
638
745
232
11
408
875
443
245
370
820
189
577
277
494
634
541
444
907
556
423
45
105
530
352
754
675
141
476
797
620
683
388
111
663
171
139
530
185
119
804
994
581
939
493
696
459
759
316
303
289
125
131
422
617
944
336
473
963
539
960
812
727
128
150
127
472
544
264
448
828
77
416
768
311
709
417
661
216
407
138
219
501
805
405
989
330
16
480
519
824
589
216
578
810
216
588
938
604
341
82
534
847
119
67
409
582
333
111
745
432
993
178
234
750
341
645
449
744
447
348
665
0
511
34
639
911
841
285
299
508
62
819
981
665
955
821
285
430
799
478
131
192
48
726
92
155
362
510
607
588
238
193
508
862
873
911
523
809
698
856
733
428
619
499
923
403
532
901
21
209
35
844
232
507
299
497
111
563
680
995
403
633
340
804
524
517
139
936
452
17
609
247
765
672
615
102
356
498
403
193
143
820
324
739
751
85
330
558
317
842
340
67
90
318
4
532
76
544
403
764
369
874
537
365
45
494
95
717
145
499
429
554
8
268
140
121
343
787
522
398
276
864
313
972
781
217
157
835
364
180
44
587
960
676
107
896
586
606
806
804
228
336
739
432
219
16
73
707
916
291
279
266
53
525
962
807
501
895
995
640
139
319
245
891
540
477
955
738
414
528
545
316
619
838
534
53
761
491
768
701
489
468
355
24
726
812
245
55
896
332
938
614
356
56
312
317
494
150
692
139
486
118
67
744
74
794
903
381
23
772
104
437
602
753
456
389
908
687
22
748
682
451
799
919
308
792
161
383
526
915
46
401
439
235
848
662
621
821
33
847
433
585
523
673
485
552
101
974
825
249
538
183
46
438
238
874
833
932
763
876
17
464
955
758
990
38
354
853
691
997
212
702
745
798
696
635
449
10
91
194
873
408
250
91
989
679
784
146
255
631
688
13
971
157
879
202
165
836
468
561
458
739
248
869
490
502
807
743
326
46
560
22
869
907
712
144
68
237
858
552
146
239
256
666
957
704
791
567
729
377
556
910
170
578
260
542
690
146
777
651
168
371
189
64
432
814
416
717
659
940
465
468
636
145
348
398
530
869
880
12
933
381
146
802
127
153
504
814
894
637
61
359
641
635
396
537
698
26
937
318
12
890
266
808
624
538
575
959
10
632
72
918
548
740
689
321
661
38
991
444
573
214
619
667
807
602
757
205
556
67
710
145
181
55
831
97
261
28
900
552
772
776
897
936
140
600
487
329
603
642
135
911
184
416
283
950
570
733
794
473
954
860
563
982
554
830
280
121
718
93
711
415
77
818
794
946
208
927
211
647
693
868
267
404
979
132
120
193
653
569
489
983
770
272
752
845
448
396
713
728
657
321
660
491
291
575
242
820
693
315
589
207
274
356
730
869
831
284
312
526
423
886
733
780
444
41
324
69
376
835
323
656
6
754
151
155
600
320
481
337
859
324
245
846
865
545
717
459
82
118
355
712
525
16
398
570
389
422
343
77
148
211
846
126
708
924
135
293
263
699
491
751
42
146
408
931
752
582
115
657
223
889
332
962
558
865
295
434
572
95
108
98
846
156
337
819
750
454
648
408
245
627
180
856
977
123
289
109
749
177
684
584
818
855
472
698
52
587
535
373
240
922
869
681
470
471
714
841
481
6
418
634
90
496
903
174
352
281
673
728
359
203
421
848
990
686
460
844
150
258
71
446
27
419
865
318
722
364
585
237
466
914
211
799
868
230
715
339
847
696
754
84
925
436
691
223
290
226
861
882
341
792
176
827
360
438
318
2
229
435
275
103
672
286
98
408
942
679
35
688
79
171
852
22
654
436
182
950
688
816
222
773
472
296
951
517
824
383
227
41
962
467
846
782
233
834
80
692
475
928
699
735
378
266
569
808
589
4
161
922
952
839
770
857
174
261
406
740
264
41
556
448
242
680
657
420
824
675
50
501
352
853
777
768
265
894
52
846
793
14
967
823
61
419
569
656
431
315
508
746
624
654
74
444
4
74
199
35
231
231
524
111
218
994
838
810
964
843
209
519
452
637
197
946
821
508
217
873
258
790
672
578
614
285
594
654
465
51
504
106
22
821
45
516
787
694
595
769
363
767
39
7
585
647
722
510
457
174
439
919
520
215
119
233
245
536
929
946
71
842
282
123
58
442
205
623
438
279
710
897
912
512
689
710
614
181
388
761
509
188
537
439
112
687
703
855
773
859
14
552
190
549
500
385
524
802
332
49
397
913
945
176
198
26
115
107
932
505
101
586
924
247
736
813
101
142
585
4
971
730
707
445
821
795
159
780
295
511
790
361
587
875
675
481
104
5
941
454
357
262
456
508
429
707
475
325
851
282
412
892
907
755
648
486
941
982
206
371
861
686
809
827
420
441
60
797
596
379
354
944
676
338
462
930
731
680
679
938
413
438
455
162
164
813
921
7
106
321
897
131
921
110
559
737
259
71
345
144
453
370
267
640
968
941
411
695
225
208
10
704
72
435
307
650
923
455
728
734
680
497
877
317
729
595
635
852
987
654
970
417
56
817
280
256
394
422
205
962
125
123
991
891
702
761
983
871
981
291
603
6
864
723
544
2
873
668
970
599
898
458
880
499
179
340
869
729
999
245
97
330
655
629
919
71
421
519
639
370
391
230
645
858
285
671
866
31
151
641
678
521
458
150
486
271
347
645
686
466
288
745
702
562
909
719
918
335
344
575
499
602
952
443
91
933
874
387
234
51
61
187
87
498
61
368
194
373
193
866
470
570
257
269
14
114
393
743
772
937
625
526
979
10
511
916
388
279
194
523
2
902
768
187
157
24
950
944
231
337
612
619
215
625
529
222
985
798
114
443
208
15
578
683
800
282
889
434
770
519
878
664
325
803
415
360
743
640
729
573
731
91
342
301
311
145
931
911
723
297
669
941
810
730
811
605
22
945
678
841
751
550
292
520
800
230
705
536
327
231
624
110
301
889
23
429
668
337
110
864
813
448
807
723
58
105
439
199
96
746
769
429
730
593
312
824
730
995
554
898
577
980
768
570
911
10
444
980
177
411
911
352
622
24
708
170
860
56
936
5
318
589
648
937
607
692
822
270
543
228
923
933
567
920
907
880
543
568
320
927
957
329
88
104
461
591
896
338
971
465
797
969
999
129
373
159
366
844
647
482
142
983
129
205
245
717
52
895
170
453
473
808
332
858
448
668
700
829
795
21
836
281
904
763
681
256
51
612
805
155
439
373
908
546
138
111
539
562
702
753
304
425
845
307
872
941
762
512
169
588
33
498
557
107
889
490
597
139
806
778
673
482
287
97
332
463
983
636
486
183
950
941
541
56
723
831
39
241
696
864
917
978
588
160
775
790
49
761
8
235
803
276
584
71
427
645
629
774
858
53
750
836
38
640
856
602
225
953
871
466
769
491
489
326
71
331
66
302
434
848
531
511
818
519
114
391
429
418
334
318
162
182
614
225
477
80
176
14
499
443
406
568
100
894
486
354
202
926
597
924
63
477
676
839
277
60
207
13
913
207
375
830
340
156
154
253
251
861
278
785
317
514
215
617
483
382
613
48
777
812
502
198
263
306
37
36
191
801
262
485
582
576
150
700
333
30
23
130
50
750
677
249
557
35
108
677
400
960
348
649
830
996
670
660
494
851
662
751
675
851
917
227
747
56
332
214
930
127
998
921
66
240
283
784
386
996
744
465
239
296
359
945
876
651
217
509
124
66
298
981
572
334
127
904
900
29
327
28
380
344
731
399
680
156
995
161
78
367
855
502
951
480
81
252
464
532
52
269
735
415
301
354
338
653
754
992
562
676
265
219
570
542
974
713
727
107
899
937
891
940
290
875
850
755
866
687
344
441
924
237
903
93
94
350
762
162
267
845
184
411
774
357
137
717
464
411
660
162
810
937
864
558
168
89
622
235
247
384
845
871
686
993
196
345
548
404
391
174
686
755
14
143
779
914
2
930
538
825
519
478
585
75
922
401
730
741
971
30
40
791
525
586
672
863
848
366
206
936
202
474
416
598
635
986
914
897
607
624
757
11
928
136
449
797
316
587
249
326
902
124
337
823
58
536
189
936
886
922
593
885
4
851
944
708
845
164
945
256
53
821
455
918
119
55
462
20
857
402
646
233
439
752
837
8
670
845
617
802
853
30
776
139
487
401
163
82
877
781
305
830
853
723
729
876
807
884
353
218
451
879
968
196
711
458
805
21
864
589
384
465
579
458
264
659
586
618
911
506
198
103
912
854
674
526
0
84
183
5
37
840
478
270
541
81
927
878
677
471
649
416
509
251
590
366
335
464
625
20
776
561
379
559
415
139
757
142
569
975
201
895
576
663
491
64
39
185
866
844
326
530
322
407
548
579
84
751
680
812
940
284
249
484
677
297
731
368
371
7
296
731
15
31
633
677
431
244
16
377
638
628
895
185
730
660
362
647
519
323
978
509
721
754
266
608
309
591
316
484
556
496
837
975
922
956
818
422
103
553
871
326
270
986
478
907
843
685
312
426
813
764
908
280
280
600
503
509
637
672
153
110
45
856
995
916
931
465
375
376
219
735
811
857
366
963
586
148
199
56
282
473
937
449
861
195
707
885
497
689
704
538
533
904
692
76
286
412
783
216
189
25
500
102
821
795
737
862
760
377
179
637
648
685
817
149
390
275
626
337
464
310
504
116
222
272
747
845
815
40
30
402
966
77
580
873
580
448
957
748
557
139
663
724
324
578
203
660
609
947
321
945
485
610
472
653
469
172
118
319
518
678
694
762
957
938
422
525
885
135
890
224
938
100
967
42
926
566
724
114
249
761
913
609
804
528
254
480
968
207
607
356
85
396
694
543
875
956
260
873
5
553
105
268
929
303
866
157
775
804
599
528
71
351
636
464
99
336
17
47
770
882
659
72
659
661
836
79
6
352
861
307
328
719
735
733
357
152
732
924
864
867
229
877
662
757
577
309
581
724
766
433
587
122
645
229
685
732
340
530
352
865
826
820
853
495
475
25
534
822
311
337
499
749
347
260
412
442
199
487
498
56
764
789
186
766
811
757
402
562
968
353
244
570
438
795
198
298
551
21
90
248
17
923
669
413
716
85
467
861
893
317
803
225
555
410
925
743
193
814
351
601
974
80
343
411
84
624
433
322
927
550
651
512
940
988
790
791
909
638
367
400
3
25
736
452
95
822
90
39
242
86
639
504
596
54
414
320
762
737
916
287
236
375
129
959
402
816
597
558
551
271
118
553
603
466
68
36
80
27
162
434
82
222
532
15
730
856
382
785
881
753
76
112
204
207
813
350
506
947
130
278
932
338
44
401
285
32
829
156
190
226
340
116
365
498
435
619
455
910
262
905
107
461
503
659
558
795
807
761
984
125
112
299
84
122
586
847
472
219
652
608
44
952
149
89
583
565
145
744
806
32
232
703
858
73
644
70
598
513
685
173
758
842
675
664
798
79
746
198
317
727
262
258
597
302
859
932
637
761
209
297
442
993
152
350
989
815
432
779
7
1
880
458
163
506
804
672
110
143
934
566
214
253
524
437
621
518
120
177
667
295
695
789
234
929
638
597
937
494
257
62
725
347
369
924
904
397
317
126
580
967
878
255
536
459
188
177
33
723
594
58
39
85
199
888
883
409
147
478
462
592
716
342
143
550
494
74
666
464
218
411
365
900
247
485
174
790
868
12
535
887
300
39
938
427
287
203
52
94
361
317
793
935
961
977
516
776
61
505
51
63
71
116
460
672
778
401
495
478
449
951
671
344
806
331
697
281
615
333
528
699
827
812
299
603
490
337
457
954
842
692
618
747
60
801
453
132
582
332
114
324
134
260
825
276
968
775
841
58
87
702
579
827
969
344
968
667
261
988
593
931
688
438
845
694
843
715
447
170
979
374
235
582
872
740
381
108
127
935
203
931
351
254
915
633
967
429
751
268
10
983
982
657
556
970
268
105
597
482
104
255
569
582
272
990
115
399
133
548
241
796
111
371
891
797
957
345
666
342
246
117
562
807
260
393
296
682
788
148
776
151
537
203
207
765
536
459
588
683
495
875
776
233
985
511
710
959
973
988
782
180
424
206
224
539
396
945
285
406
702
541
605
484
774
601
9
408
950
993
374
603
616
206
408
930
647
343
269
328
156
187
774
871
385
885
811
794
730
291
662
981
410
46
364
290
708
852
115
916
528
115
754
459
337
835
322
764
551
817
97
187
202
966
971
597
599
75
72
839
629
111
718
698
223
934
360
993
819
364
984
770
728
528
717
322
76
894
445
869
384
823
964
42
160
436
248
276
901
965
308
342
891
838
272
712
279
78
97
861
746
532
688
568
955
973
357
919
466
908
339
573
643
461
301
677
61
143
158
451
139
700
436
774
704
369
936
736
901
287
969
798
638
442
734
329
380
310
970
115
580
710
735
265
565
560
43
478
800
388
177
275
340
766
290
196
148
865
63
157
825
240
920
657
752
694
870
843
160
700
579
958
387
556
737
76
456
701
81
942
262
61
992
545
77
262
783
834
367
373
115
399
167
908
565
446
129
6
893
417
970
358
73
180
767
71
290
469
774
416
733
696
358
905
272
829
558
854
248
160
323
622
870
796
318
775
140
614
954
581
784
571
116
519
136
355
75
956
88
491
288
874
228
559
293
241
500
486
943
350
407
146
702
47
99
303
402
879
662
51
160
573
457
463
420
221
389
508
826
382
180
125
609
97
254
802
499
977
660
629
432
261
193
242
631
844
698
257
868
222
152
570
112
358
451
292
875
380
496
775
879
837
752
723
724
202
295
447
801
185
878
93
380
984
964
122
384
151
994
707
989
612
704
220
768
86
100
573
3
959
398
459
994
498
286
303
276
341
14
953
856
248
797
350
903
760
103
413
414
936
840
134
34
302
163
597
852
135
552
356
927
214
164
292
41
477
840
709
480
766
500
640
918
483
117
95
897
884
853
99
693
213
228
592
94
767
875
228
550
277
848
243
204
134
875
126
439
536
528
962
400
312
477
266
716
569
339
541
618
193
252
711
967
779
533
330
726
774
668
736
262
136
379
732
671
282
955
573
504
331
132
784
592
621
215
172
458
150
303
799
706
864
515
978
490
15
223
184
682
304
592
635
291
536
625
360
716
752
20
795
421
521
122
183
232
221
736
399
704
19
305
568
317
542
439
950
504
719
151
177
488
386
511
848
230
944
642
368
25
239
472
967
647
368
83
854
801
531
709
118
87
873
772
114
935
161
229
464
966
2
622
449
961
777
691
69
622
221
257
28
328
826
821
15
73
24
357
957
29
647
521
134
595
147
187
545
289
671
138
26
214
758
211
823
613
777
217
964
458
772
953
835
315
64
942
327
392
871
858
810
833
786
924
779
586
612
402
318
842
664
912
527
501
700
153
928
819
149
55
138
57
661
659
173
683
838
114
669
356
857
277
114
616
145
355
607
3
101
859
94
909
896
875
652
389
984
885
388
815
11
785
540
904
692
860
397
810
96
299
171
325
546
659
555
600
437
936
353
528
739
718
727
967
121
639
789
980
197
258
714
432
729
927
67
322
579
342
8
905
767
27
935
296
828
882
15
439
164
580
77
332
432
150
292
188
563
391
522
492
353
804
660
668
619
262
661
165
683
624
403
201
341
90
669
474
199
942
269
310
859
889
482
863
925
618
877
491
350
183
795
586
260
620
266
439
735
32
984
833
668
442
278
290
292
884
785
490
833
362
193
128
204
583
18
127
505
99
478
155
439
111
377
978
174
638
466
917
12
145
899
57
898
935
918
769
450
130
335
760
376
937
223
130
621
35
30
497
593
965
658
28
126
357
277
129
407
368
515
11
408
209
103
57
865
506
849
770
827
730
207
562
211
184
976
74
651
333
309
203
533
994
25
467
771
897
332
584
269
673
618
717
454
200
267
346
706
959
885
434
643
142
249
505
99
341
805
505
373
394
580
988
870
745
306
126
793
115
264
510
70
772
478
377
755
36
639
523
765
330
911
119
612
169
617
276
143
310
550
228
809
357
812
565
273
457
55
502
336
899
235
696
499
202
16
165
537
783
284
606
468
663
318
935
854
917
555
444
867
578
633
714
719
26
280
305
662
793
42
587
160
261
736
285
687
776
918
484
534
497
998
353
661
332
143
177
397
860
474
42
970
982
506
672
135
4
961
205
836
364
112
645
802
481
691
604
633
990
160
747
425
684
73
686
870
954
628
968
41
143
420
917
142
790
988
329
568
491
954
677
7
609
252
673
800
377
439
549
213
0
794
162
905
253
971
362
913
900
288
445
337
774
301
621
624
239
43
96
703
989
681
579
761
795
736
80
455
530
858
228
867
932
401
631
862
771
999
651
875
242
969
85
165
141
615
244
28
575
59
700
960
338
557
267
868
354
601
685
520
934
88
714
181
459
711
762
860
356
13
96
472
165
694
519
186
839
590
910
67
80
20
113
515
341
608
41
18
252
738
406
980
384
585
474
166
49
556
84
149
406
764
652
352
760
47
82
581
734
65
676
115
12
363
144
733
921
953
975
127
613
986
281
471
310
273
153
473
258
220
1
225
426
869
502
227
405
59
968
895
444
11
770
18
446
351
49
507
775
695
592
339
533
166
775
916
233
214
174
552
23
432
942
257
21
130
700
236
395
947
637
313
141
819
745
480
639
699
659
966
806
934
671
220
490
276
81
458
805
753
73
753
515
422
751
142
880
2
634
792
793
383
684
665
763
153
296
568
203
947
741
157
542
737
830
580
496
735
88
879
718
993
797
385
550
430
3
465
67
410
795
605
823
35
873
251
866
479
990
992
255
984
659
595
670
69
977
787
882
389
991
997
827
564
804
855
984
415
298
594
557
372
413
528
562
743
213
937
916
191
229
923
980
835
630
411
695
411
895
602
66
134
51
198
710
904
844
1
580
798
972
59
375
748
10
951
220
898
195
60
847
551
964
379
986
842
205
594
191
225
229
493
435
611
891
99
646
941
385
176
774
837
456
703
560
268
974
360
114
735
390
216
753
131
682
822
924
416
725
291
270
212
905
567
690
149
920
777
94
974
760
427
723
16
528
178
562
543
888
280
460
215
21
740
317
709
539
239
969
505
25
736
529
63
697
274
63
834
760
396
476
71
401
382
468
544
357
708
639
404
11
5
639
160
942
712
165
247
434
576
892
462
939
75
619
463
668
406
835
190
392
615
30
37
364
616
414
821
605
538
599
817
31
977
646
502
434
641
355
930
64
852
382
470
253
150
110
5
912
399
236
45
816
806
402
987
617
190
626
720
6
547
980
539
862
207
489
473
640
107
917
90
138
810
192
113
118
88
516
179
98
132
196
266
106
76
34
180
120
848
724
404
170
747
584
847
644
464
28
302
402
501
70
798
982
831
367
867
135
161
455
94
944
174
616
776
794
115
867
733
644
849
955
866
78
255
533
532
97
153
639
911
439
433
847
446
855
943
335
302
477
422
446
333
354
940
314
560
126
358
6
553
300
886
311
15
251
759
32
192
833
518
233
21
348
296
873
748
355
762
853
137
495
610
279
563
707
345
718
970
102
601
291
637
121
317
963
95
364
445
307
473
214
475
870
23
866
590
156
151
336
66
901
40
229
757
117
221
987
844
287
404
461
756
629
319
452
309
789
173
216
448
846
953
13
140
478
768
561
573
629
594
398
68
588
204
836
685
279
350
688
271
55
70
645
673
607
162
97
985
643
139
942
278
493
291
749
422
134
206
632
827
982
701
925
194
881
432
194
854
142
178
989
37
525
260
305
513
846
628
556
789
379
254
418
369
254
770
709
353
834
783
360
270
950
928
760
761
23
262
194
795
32
68
357
735
356
781
725
96
464
533
809
206
873
392
798
207
307
606
837
628
156
872
405
651
541
802
178
70
455
292
498
995
393
596
280
13
3
946
204
425
136
213
470
344
596
382
748
544
793
186
141
616
598
150
686
693
275
740
223
833
905
622
75
720
960
772
340
819
378
804
789
273
186
644
168
301
236
9
621
15
96
48
296
216
281
715
250
549
207
860
373
80
863
312
552
763
494
55
562
38
131
517
276
693
828
372
566
366
445
495
741
823
89
549
33
288
350
753
0
979
540
921
985
478
194
216
867
737
779
802
584
416
614
742
218
164
951
810
874
435
850
729
796
734
521
698
740
773
182
253
102
235
960
896
188
989
313
322
862
396
327
744
868
894
240
286
557
654
929
358
302
905
989
307
689
943
219
933
561
827
694
705
360
710
341
836
538
780
205
122
70
189
48
273
835
925
448
747
220
767
186
825
472
79
593
719
235
316
723
229
398
736
436
790
946
86
500
474
386
602
836
131
353
18
928
329
547
620
801
274
237
713
406
710
883
972
614
313
287
829
432
355
541
40
422
648
261
445
843
572
487
43
646
964
229
254
138
870
505
332
247
148
434
599
731
100
221
538
498
82
671
153
875
422
72
840
548
586
891
923
308
918
128
60
750
118
133
720
194
13
481
575
939
180
78
408
42
894
221
301
556
67
258
730
3
355
165
284
879
513
690
695
280
716
300
912
574
208
131
847
843
355
800
674
658
869
675
459
714
295
723
699
904
607
148
809
69
347
866
203
412
225
35
488
16
951
117
293
253
233
926
934
906
865
485
517
410
772
448
526
359
831
324
536
991
892
613
577
47
349
406
508
461
843
594
670
395
483
471
249
668
46
392
948
265
694
794
562
467
723
902
650
215
118
572
292
46
948
71
918
517
146
642
181
930
659
593
520
440
258
792
308
795
701
304
70
479
619
165
276
364
392
698
415
105
552
188
221
315
169
428
77
203
596
288
418
957
553
65
861
305
649
612
846
966
611
152
41
456
3
814
356
896
621
523
273
844
811
876
917
442
365
199
600
11
686
656
334
287
550
452
232
0
388
189
307
556
119
375
423
796
38
617
111
743
752
725
908
108
291
101
707
44
601
114
73
166
668
421
263
601
908
428
494
836
198
302
748
545
226
742
241
834
235
532
517
1
445
301
675
453
395
24
263
965
301
684
558
755
684
633
739
151
599
264
154
928
979
613
979
813
779
458
728
681
319
315
4
132
12
182
568
655
947
802
936
279
34
283
540
810
364
928
285
571
521
968
525
370
155
481
851
396
382
413
272
232
271
625
924
342
242
829
494
264
876
463
507
616
674
56
472
364
457
466
542
432
254
162
703
395
202
265
140
147
303
916
616
971
413
835
803
469
29
341
310
485
9
704
270
459
3
718
427
980
923
498
182
997
703
228
294
963
394
864
915
979
264
380
896
117
819
583
652
794
310
701
101
552
547
687
15
627
34
552
48
364
428
471
206
549
469
732
279
456
901
770
28
132
826
920
344
374
237
496
277
96
622
503
925
171
585
135
393
266
669
835
856
859
66
989
569
242
962
716
746
761
346
439
116
412
980
689
205
664
741
440
874
727
687
127
0
179
312
246
525
442
353
493
786
100
238
916
160
757
164
293
654
476
919
926
713
783
262
387
829
902
438
336
282
521
364
177
833
658
596
215
576
358
752
423
223
78
859
605
186
156
841
82
643
77
403
173
514
29
420
111
33
56
249
88
830
673
199
136
814
591
128
879
984
158
372
750
555
633
833
125
693
589
216
571
491
269
266
602
363
668
155
190
352
567
631
4
207
914
953
678
300
551
586
81
229
97
104
362
714
487
160
949
883
759
989
628
741
497
803
142
95
945
208
469
204
819
675
55
449
226
450
793
241
797
417
436
22
2
37
886
940
277
642
317
733
349
848
747
425
908
314
416
8
518
893
724
671
574
908
300
224
885
341
292
976
971
918
501
846
444
938
633
471
317
657
899
836
302
48
175
949
728
620
14
645
141
399
614
359
887
920
411
28
758
972
318
971
409
677
500
556
279
202
178
494
206
525
988
620
923
439
71
35
853
881
172
170
856
156
889
491
45
906
730
649
901
249
753
149
511
895
465
590
376
545
39
364
476
782
3
63
599
684
69
311
620
127
611
27
667
726
865
630
135
545
838
343
49
356
624
124
623
205
883
993
243
766
53
151
31
215
427
213
880
163
414
475
621
526
61
104
654
490
235
702
720
832
732
528
999
503
639
745
362
238
731
738
204
966
598
719
11
444
667
215
151
407
985
50
314
984
216
954
356
962
108
294
201
945
317
16
388
788
806
23
883
210
837
929
525
398
304
534
959
773
775
461
127
822
800
996
461
597
169
857
36
101
21
570
255
185
635
457
926
470
71
548
290
250
251
81
333
373
820
175
409
493
318
844
547
165
653
474
695
395
123
430
334
657
814
258
596
523
834
188
829
563
14
724
235
687
2
154
936
69
760
593
606
682
114
646
857
207
897
880
112
922
881
662
608
661
684
391
859
518
574
902
504
268
667
61
373
873
183
785
332
588
882
929
787
434
143
804
377
930
186
436
306
953
749
367
656
522
16
815
36
58
85
862
927
58
651
954
864
830
298
212
743
262
987
665
558
873
276
36
467
956
713
753
948
231
564
725
69
947
869
423
86
838
2
702
816
825
696
925
177
36
40
176
242
473
310
168
115
166
92
682
118
177
436
33
990
968
838
430
166
505
602
907
675
455
440
941
914
620
750
190
761
98
813
513
543
599
982
949
377
149
197
235
704
167
794
892
784
143
268
274
138
440
171
694
779
899
883
942
821
230
248
296
468
98
365
387
213
427
286
56
514
300
446
650
24
357
826
782
897
475
388
574
929
992
941
648
810
301
761
202
294
102
356
899
352
430
957
9
191
419
369
207
858
26
307
996
141
119
997
300
823
59
303
368
333
130
83
901
336
396
780
792
83
374
657
625
369
125
743
300
131
678
865
168
666
56
70
436
574
530
412
381
731
300
716
304
791
266
482
152
811
47
971
823
956
451
685
20
290
710
77
71
455
707
62
185
545
844
933
796
405
14
783
377
970
473
125
451
230
848
680
811
988
667
164
879
587
690
428
384
366
727
470
671
586
905
54
224
445
565
328
212
179
664
562
703
340
302
501
13
758
229
855
122
525
430
978
233
824
360
67
461
292
464
963
939
552
222
106
346
487
256
777
202
992
774
445
329
754
520
117
642
978
619
889
30
92
426
230
442
212
373
325
894
431
608
84
973
790
604
834
846
581
880
365
791
730
626
587
526
53
981
387
985
286
76
110
846
595
388
434
826
745
228
363
879
19
768
31
475
648
938
646
320
730
238
910
83
900
903
942
254
910
931
157
775
96
426
216
787
339
542
87
40
3
920
181
368
858
36
892
521
446
115
796
87
832
962
876
584
105
511
228
615
290
951
515
500
11
527
321
603
96
94
246
57
8
342
14
967
150
624
575
8
854
26
316
483
124
667
976
192
510
424
127
206
403
874
658
770
213
773
256
744
675
631
595
373
203
849
326
395
526
513
551
564
356
176
718
925
388
354
350
253
399
561
598
794
804
820
929
123
529
407
64
593
823
366
896
907
184
595
596
453
947
169
190
509
679
1
659
705
805
184
187
636
774
837
977
663
731
636
693
725
571
971
523
548
38
808
915
683
1
614
261
75
245
696
206
311
71
47
919
538
984
514
230
372
742
981
949
196
642
521
181
919
823
297
405
289
674
410
2
389
233
199
915
407
655
99
332
723
979
326
897
202
526
306
248
648
900
644
774
763
8
910
868
108
190
516
839
358
204
612
22
871
227
27
384
190
810
954
284
699
902
721
959
214
177
129
232
909
656
781
911
828
560
78
85
979
897
412
800
683
98
109
311
635
686
929
320
778
53
11
683
980
97
998
883
163
970
575
177
394
948
914
125
971
374
396
703
979
122
967
656
197
654
596
934
352
806
579
782
23
317
631
877
836
6
747
375
860
172
481
173
68
770
777
386
36
242
686
472
86
219
949
919
337
952
32
337
2
224
237
588
114
441
169
637
560
963
809
503
164
792
777
969
472
422
416
431
731
877
395
76
6
767
314
635
196
934
360
783
344
710
164
266
294
807
571
343
359
918
840
640
642
484
116
170
456
266
350
183
132
129
71
407
88
992
600
626
919
513
538
732
342
701
389
445
935
927
507
930
409
205
520
96
171
675
800
847
492
691
106
62
988
696
97
310
116
509
834
277
742
425
568
492
39
631
785
895
124
963
390
969
221
241
876
197
763
681
162
278
266
940
672
201
311
978
275
952
416
136
794
150
387
940
448
350
967
974
120
970
514
723
310
287
780
234
894
52
220
842
737
438
810
837
193
233
923
391
617
269
663
545
59
744
608
532
146
297
982
27
390
127
188
202
880
914
383
17
49
512
979
694
248
252
458
162
511
600
459
961
553
472
632
522
351
421
679
360
918
914
283
500
767
597
974
122
975
938
92
751
509
386
109
539
277
309
802
134
143
65
968
773
933
447
725
805
778
737
285
992
636
44
477
607
127
71
887
248
818
464
665
771
841
273
694
997
366
230
72
245
241
653
313
879
62
824
390
843
18
160
988
965
812
350
813
930
1
689
786
351
934
403
676
45
787
367
274
568
299
488
563
327
650
829
679
633
996
644
422
134
719
35
960
17
929
602
311
708
488
600
596
11
690
289
673
67
975
159
712
288
594
271
732
808
426
75
174
867
175
902
612
332
780
372
802
341
925
507
299
228
821
763
858
867
789
44
555
168
415
747
269
995
466
935
579
56
546
62
976
272
608
450
776
295
677
110
887
70
192
428
529
791
505
447
321
156
658
724
298
504
149
144
681
736
78
218
234
715
789
19
462
514
611
926
175
289
791
50
116
703
440
569
626
728
705
404
36
405
600
967
713
508
933
360
486
921
471
150
666
493
258
458
419
233
455
403
412
227
952
533
854
132
17
23
814
114
635
825
224
993
581
390
445
832
89
329
711
496
226
911
9
252
123
112
759
263
11
724
647
693
159
814
631
326
881
26
575
823
341
137
288
543
304
640
613
374
24
739
455
693
99
586
568
925
735
584
299
480
225
590
23
144
673
69
794
717
887
544
447
476
735
887
484
78
835
251
634
363
397
685
925
283
543
935
643
513
521
30
31
756
957
507
440
394
223
745
292
647
326
792
758
8
561
604
557
47
725
942
327
267
924
488
956
347
135
817
819
530
489
252
859
420
359
298
553
608
456
349
178
578
217
950
508
496
920
381
600
32
671
742
476
79
993
587
659
750
216
626
823
105
394
505
899
100
845
884
94
304
551
485
303
755
248
71
11
782
235
847
57
962
816
150
556
257
161
601
551
424
892
512
723
298
884
908
812
119
171
849
265
346
853
745
313
911
921
763
913
600
260
973
884
49
625
760
203
136
307
44
634
695
250
853
820
293
802
601
100
679
357
875
168
111
961
452
313
727
588
376
239
39
84
658
442
418
24
320
755
890
236
875
559
5
438
205
796
929
547
99
431
88
408
369
25
565
674
31
473
383
349
101
944
476
494
10
328
168
550
563
680
83
679
140
258
768
335
122
125
435
371
65
661
829
945
618
601
778
785
741
923
402
589
46
798
148
876
964
66
175
551
549
713
990
919
549
604
50
918
664
784
134
968
494
774
299
654
657
968
904
84
533
200
18
469
394
484
622
232
398
65
529
69
857
404
85
328
239
894
834
82
861
872
572
796
572
901
516
722
621
277
226
987
487
9
480
117
314
620
94
977
124
91
818
827
232
964
186
283
14
876
220
155
152
666
805
642
822
875
205
534
457
401
744
691
801
598
21
181
141
736
42
28
516
339
152
916
581
74
182
815
280
578
687
192
262
166
299
386
451
869
527
539
431
297
65
369
45
486
568
940
110
932
260
405
353
450
104
825
144
99
399
93
956
26
452
157
60
344
493
172
195
181
538
940
529
616
631
421
805
380
204
600
258
95
398
364
665
200
408
691
890
598
798
623
731
817
390
195
678
527
366
609
214
882
991
222
766
54
657
17
204
757
153
183
223
980
451
805
472
326
5
179
107
880
350
339
626
919
666
932
295
890
417
101
631
141
234
382
959
6
293
871
90
224
874
975
354
633
454
331
951
486
383
604
996
998
936
691
392
255
694
308
311
337
359
901
571
495
579
423
334
289
741
599
19
109
653
929
734
455
167
125
102
722
44
443
937
371
343
867
463
882
773
52
54
82
244
689
39
482
638
718
716
706
652
331
236
147
765
961
932
110
705
669
29
420
69
69
524
918
251
567
281
139
627
79
736
872
535
126
716
409
910
81
210
21
92
22
567
27
650
102
109
404
33
493
845
33
471
898
425
255
117
663
962
395
198
246
506
683
877
66
756
196
821
603
626
136
181
852
533
95
634
549
531
490
359
703
152
749
623
89
564
392
914
18
457
867
602
825
705
190
281
661
27
488
941
445
864
945
523
536
904
229
530
82
948
342
887
397
354
497
143
669
119
368
360
17
833
52
505
235
401
705
899
890
314
662
421
980
370
851
158
165
543
510
937
395
537
367
8
553
850
395
292
736
772
771
75
60
330
754
399
960
59
241
322
115
662
820
466
444
881
278
477
508
987
148
992
785
497
537
461
900
927
290
621
25
106
204
128
233
10
268
285
828
397
799
107
976
191
717
931
718
528
326
458
241
42
676
966
149
703
561
852
238
100
598
324
450
552
852
633
167
417
535
483
46
72
55
505
451
581
619
809
912
821
279
259
530
101
432
966
514
310
167
246
753
935
863
945
322
38
277
231
652
227
494
688
832
743
592
365
169
679
742
487
405
975
482
71
291
340
962
557
849
961
729
167
568
341
505
760
895
260
254
66
934
847
418
931
818
952
939
566
179
58
960
320
293
462
297
241
16
520
295
490
323
473
647
39
732
602
721
31
247
621
308
45
464
86
736
479
725
118
641
459
385
98
368
139
690
185
246
951
37
665
754
158
546
576
418
733
159
892
100
44
903
801
263
734
672
997
918
947
273
913
322
426
298
869
66
872
212
452
601
456
886
93
671
248
572
131
62
52
204
821
546
189
28
418
32
20
21
829
157
854
201
515
795
382
955
381
300
295
97
566
225
115
731
314
501
207
985
867
832
833
505
511
287
700
978
336
392
905
405
675
887
603
950
119
942
460
522
800
708
456
91
104
70
886
73
208
75
440
100
582
839
302
363
661
94
651
891
386
142
188
597
324
281
31
992
672
365
569
174
349
991
604
841
253
629
613
603
789
715
385
983
197
725
38
884
477
386
167
30
827
779
27
481
958
752
591
680
811
523
750
526
125
912
411
712
429
850
747
472
269
149
739
489
91
886
278
706
614
134
678
833
910
267
900
662
403
147
408
65
169
688
662
293
392
589
435
271
75
979
501
238
262
662
794
949
404
925
564
734
903
323
358
380
382
504
76
117
48
846
289
973
463
877
719
931
907
667
6
500
157
99
909
361
449
432
636
374
347
565
596
520
670
652
197
500
30
39
92
191
702
185
458
371
737
295
613
506
413
423
117
428
455
95
458
666
306
521
240
775
355
908
755
72
293
330
907
764
707
627
952
689
789
183
347
441
60
569
694
637
454
174
804
247
851
187
985
239
837
127
303
114
845
749
10
683
78
497
623
820
168
247
845
854
852
924
685
445
593
580
383
385
249
444
3
433
152
162
393
280
943
663
339
496
414
192
446
392
688
682
57
179
262
413
885
736
388
347
630
228
494
279
600
739
131
232
224
352
655
674
661
253
115
842
569
649
55
400
187
801
277
49
40
928
287
500
267
850
674
474
411
19
758
438
954
996
964
918
880
734
555
539
816
919
339
967
213
858
799
759
614
4
401
959
196
678
389
175
42
275
26
48
790
764
762
89
294
667
755
999
726
847
127
906
774
816
395
647
853
345
17
712
628
934
960
800
480
930
934
294
520
181
572
522
894
703
159
934
924
883
876
757
197
867
22
729
430
165
137
724
63
324
127
636
4
591
869
244
552
529
171
317
142
548
750
928
304
896
319
974
96
856
640
320
134
460
297
65
441
307
570
343
953
350
560
195
678
557
518
318
645
367
576
852
147
219
497
238
748
146
235
393
30
559
966
985
375
977
107
338
921
710
469
207
630
190
466
846
19
247
283
315
334
986
989
832
11
57
782
875
284
69
292
970
773
153
161
603
520
250
514
490
238
254
495
468
312
368
700
74
318
162
772
263
524
272
889
656
81
689
846
653
951
623
901
79
31
249
478
382
336
377
676
265
234
679
527
102
411
892
437
225
629
101
939
868
700
934
389
742
843
98
9
981
112
710
567
292
378
803
237
572
471
678
473
811
85
588
105
17
176
812
461
887
488
644
555
225
404
910
824
582
48
88
980
85
955
825
183
756
395
530
163
845
131
715
139
679
549
914
489
445
944
581
325
46
310
812
850
76
483
503
854
447
799
276
710
857
166
30
360
816
1
883
298
655
634
921
884
778
859
482
715
525
927
784
579
505
122
699
403
24
76
191
761
534
240
527
898
3
794
174
716
569
341
261
245
284
771
662
974
147
530
768
646
234
258
641
912
493
541
752
212
18
353
653
512
141
388
57
398
486
837
540
119
901
474
974
357
913
158
554
106
634
703
625
299
66
915
115
591
251
459
378
814
744
188
674
980
430
940
672
102
628
323
464
718
721
15
710
108
214
401
758
390
960
439
948
92
818
621
239
485
301
899
25
679
664
318
463
972
332
411
909
510
524
91
734
86
384
202
81
268
470
509
894
922
598
604
424
658
639
995
386
389
649
589
991
636
866
497
794
86
449
849
553
418
384
31
935
701
397
976
531
130
729
891
275
17
164
193
563
205
575
774
828
532
498
386
482
903
602
312
257
886
531
344
161
338
779
264
340
203
893
131
958
940
258
411
29
207
484
619
57
756
291
359
656
781
24
513
114
720
480
364
499
47
510
153
802
598
119
69
916
240
785
593
132
60
640
997
492
159
184
505
263
645
876
680
396
594
919
324
757
254
579
551
92
454
861
438
853
826
297
669
698
874
384
558
682
117
572
990
41
606
437
590
627
87
496
0
41
632
776
786
627
67
728
562
539
385
73
47
259
59
48
120
669
528
322
37
458
281
950
912
781
761
256
214
729
118
518
292
941
318
958
167
195
800
43
439
909
628
428
952
41
454
184
123
956
498
935
324
651
525
704
457
844
754
895
810
754
107
725
398
791
16
790
315
520
874
138
448
491
36
273
893
112
213
179
137
260
523
182
306
868
365
700
414
128
268
252
694
238
246
98
426
522
948
514
371
487
56
329
502
456
139
520
833
536
318
499
148
108
383
305
36
234
437
73
125
315
132
373
67
615
361
919
151
870
90
901
331
955
766
643
179
935
136
43
37
33
178
244
886
725
714
727
704
876
221
543
126
384
325
91
498
291
335
603
131
201
510
666
649
483
948
232
551
198
751
763
566
143
259
560
473
877
835
694
783
968
468
5
811
316
35
617
907
408
533
687
641
963
280
209
782
213
899
672
645
998
270
490
779
849
330
618
973
614
10
618
495
69
454
753
623
547
362
848
428
708
893
936
699
702
228
626
504
599
200
871
897
481
379
633
904
902
287
262
432
308
985
489
49
989
316
117
471
519
469
917
172
697
267
221
140
596
443
921
818
57
350
631
568
59
205
310
242
309
535
518
323
325
263
20
938
240
279
219
191
126
466
558
603
988
551
708
131
210
650
322
677
477
219
981
2
196
427
628
304
600
758
113
419
746
34
785
48
767
630
892
882
457
452
101
58
5
74
900
614
717
749
813
563
440
169
385
837
388
100
379
456
400
999
809
351
834
224
221
660
688
280
227
396
549
861
721
942
353
578
71
805
599
585
639
767
849
468
841
313
746
585
839
468
53
709
929
919
62
783
528
132
194
137
337
941
469
594
667
712
848
248
824
540
72
327
714
380
712
577
371
900
93
111
223
486
749
637
428
97
211
871
695
815
890
15
899
891
73
823
719
941
301
681
45
668
959
607
684
322
980
928
892
572
888
76
873
518
629
400
136
114
310
911
599
806
257
516
27
965
256
87
660
24
540
462
340
48
747
7
774
454
322
170
46
761
931
103
323
478
148
738
161
603
895
262
796
517
9
708
997
781
92
531
358
543
15
598
759
342
531
335
385
395
136
105
8
857
839
860
507
664
467
706
938
735
7
651
74
279
773
921
295
191
996
482
263
609
281
280
277
381
52
588
120
949
73
283
182
601
306
395
46
122
425
862
777
195
99
539
604
329
970
852
225
659
126
289
654
551
611
579
563
728
315
792
931
114
902
372
424
206
149
792
121
540
571
274
514
128
399
643
946
646
883
942
734
669
2
588
615
966
935
638
559
778
484
677
237
645
59
802
575
911
352
619
628
571
357
330
347
395
300
414
449
85
597
207
938
11
911
933
173
823
440
194
315
308
470
53
52
491
521
136
118
658
869
945
918
96
242
392
426
211
989
348
39
638
953
350
746
49
84
650
274
991
599
295
155
417
317
253
645
193
796
919
406
651
19
932
27
494
834
316
817
123
815
106
502
361
160
539
54
682
220
162
218
811
328
312
650
452
793
549
843
299
350
289
203
906
572
707
351
855
866
996
159
840
948
603
592
691
164
18
696
655
480
580
694
707
715
340
527
727
422
208
120
754
142
733
65
287
4
288
791
631
650
348
790
625
272
669
222
216
58
974
192
378
798
565
781
344
61
293
13
851
239
409
794
938
944
865
388
202
322
194
430
371
172
546
3
912
394
633
312
945
913
789
985
162
397
622
261
331
574
141
825
567
171
637
61
85
590
578
57
328
583
863
566
384
885
260
240
990
278
625
961
903
969
503
949
508
866
369
560
27
72
338
466
375
227
353
690
137
265
754
892
589
573
286
325
754
539
613
987
787
959
63
192
83
507
86
869
580
385
196
924
482
610
818
972
484
538
168
143
132
961
858
371
292
3
902
301
544
100
675
335
92
309
737
418
522
440
842
769
232
485
70
866
576
732
480
146
324
574
699
82
540
591
479
892
303
940
127
29
255
378
282
570
313
30
963
337
213
661
10
741
93
366
974
329
387
588
876
328
539
564
264
183
944
98
982
952
784
353
786
372
233
142
369
14
284
540
748
243
976
223
674
78
420
687
55
287
722
246
521
658
319
769
132
258
891
650
618
514
493
295
231
74
700
877
770
191
40
521
486
80
142
817
268
129
69
445
24
176
487
714
381
576
135
586
929
599
347
117
802
732
962
49
788
85
741
642
239
471
443
481
232
204
790
826
112
593
83
937
224
750
533
581
408
560
844
98
515
752
835
75
493
371
29
328
234
584
32
644
502
786
354
654
33
239
981
79
368
166
837
626
916
322
862
205
622
781
923
844
188
595
369
853
861
432
517
51
975
168
682
985
689
645
301
860
326
344
943
233
147
856
597
508
261
187
722
344
451
709
312
121
535
315
891
432
448
42
362
209
494
488
135
217
442
176
94
276
107
643
793
826
651
880
914
14
63
891
459
828
907
275
937
664
933
633
415
531
920
166
422
482
721
497
440
774
426
438
504
982
371
858
112
340
169
891
146
166
273
716
227
632
663
642
2
532
639
561
347
667
731
226
728
404
54
9
805
485
627
749
138
413
577
180
208
185
437
302
886
368
226
439
771
482
93
201
463
15
536
324
144
274
721
883
28
233
469
766
46
320
247
286
614
355
779
681
453
897
148
478
658
825
984
11
399
823
140
127
309
597
898
867
61
210
194
997
339
202
962
374
801
986
871
109
619
115
116
452
751
205
804
381
987
117
656
464
779
784
289
846
599
394
10
824
900
683
405
633
711
371
643
205
534
290
582
115
379
221
951
820
253
224
978
159
999
523
636
717
324
759
944
365
955
991
613
34
866
421
270
953
668
437
168
571
65
822
81
927
574
851
515
338
93
522
946
560
872
542
946
936
422
525
319
183
996
157
28
808
85
187
181
257
696
106
203
871
554
19
902
782
901
741
179
23
508
597
767
389
616
559
860
510
345
904
107
481
410
124
588
294
816
998
142
213
84
647
63
368
660
227
700
72
145
435
130
779
197
702
348
85
364
719
658
933
76
963
951
172
454
276
622
624
164
660
280
301
509
591
13
444
540
801
157
576
788
18
397
863
842
196
731
854
800
204
487
561
394
460
712
542
393
825
872
691
980
140
405
564
695
191
97
332
13
464
93
236
734
169
573
854
805
405
128
602
244
261
999
778
879
880
985
262
252
516
630
31
31
68
66
202
333
650
254
428
129
257
749
79
816
376
367
344
59
440
469
991
815
772
159
712
870
511
491
921
363
336
537
231
604
862
300
529
30
948
651
9
845
664
352
74
234
905
707
441
565
764
58
291
6
671
477
386
683
44
833
21
87
391
55
194
713
194
83
452
830
590
691
845
613
290
221
362
939
688
882
682
951
225
326
414
151
65
181
855
375
591
710
6
313
244
526
419
98
780
805
898
52
824
961
97
995
574
576
304
548
559
185
687
352
81
581
173
850
584
473
534
306
574
115
900
52
167
114
424
764
34
318
795
555
724
113
783
33
539
468
851
739
104
480
981
988
518
120
981
952
450
446
63
703
370
188
505
844
984
362
80
532
82
893
497
532
246
677
569
257
246
349
862
372
733
247
613
720
379
287
395
524
175
250
847
827
301
782
893
187
844
535
335
398
323
624
528
520
948
222
305
169
152
282
230
351
35
112
633
668
943
524
896
980
861
422
628
217
922
12
321
777
87
768
126
284
65
139
31
557
307
818
745
706
688
915
279
130
822
609
835
552
926
959
706
300
916
920
622
145
978
910
272
892
506
125
615
872
702
272
466
758
580
658
923
387
863
556
202
991
632
886
87
565
801
162
390
360
161
144
35
875
771
457
785
153
433
481
834
96
462
21
471
773
440
231
88
684
572
576
379
984
484
7
407
787
231
941
592
919
734
744
957
881
258
337
111
861
930
106
542
442
673
23
251
917
862
64
527
404
160
123
381
978
702
971
289
799
753
503
303
480
72
215
581
887
748
453
786
274
885
985
300
807
980
3
635
720
99
628
359
635
781
612
547
51
14
570
152
308
908
386
763
955
359
157
68
103
194
453
232
927
495
577
829
272
956
680
236
189
49
682
138
265
663
722
361
255
844
273
958
298
206
741
785
535
372
391
355
289
912
493
851
195
4
622
808
855
564
394
485
301
713
763
379
265
183
166
787
113
29
477
240
203
959
130
889
434
943
717
955
76
735
561
222
414
146
48
714
994
509
860
856
659
882
114
536
475
163
774
683
284
288
372
515
599
384
990
288
19
390
837
298
687
930
98
486
370
231
977
840
973
277
380
676
41
934
86
646
569
310
971
390
710
791
597
60
378
186
654
496
431
376
457
588
839
691
704
82
576
850
779
353
319
542
954
123
636
699
617
678
443
58
666
77
106
978
734
955
561
426
997
294
414
944
471
111
155
286
724
446
538
641
424
430
689
680
373
304
450
53
602
637
174
800
23
722
289
756
853
287
683
644
463
977
881
300
524
855
613
111
792
700
651
320
848
621
577
405
988
938
848
880
754
603
33
526
90
791
714
221
708
61
70
512
814
281
926
993
218
490
347
164
957
918
565
595
815
687
836
86
945
903
671
535
398
781
239
756
768
854
455
106
387
983
383
274
682
308
908
817
913
507
771
675
172
672
91
154
98
948
565
728
298
268
335
435
227
82
791
682
256
416
292
968
376
581
32
781
687
516
776
878
167
305
812
913
957
980
297
615
425
2
321
190
646
602
737
394
88
144
604
177
462
9
654
158
704
848
591
574
274
329
618
123
905
319
402
296
623
172
647
375
452
394
525
359
356
77
442
987
907
418
105
438
437
218
485
559
300
762
594
970
876
438
985
457
505
189
749
720
240
948
271
478
462
437
45
435
635
829
670
648
206
455
329
678
19
547
419
35
724
212
852
20
661
989
919
369
626
650
101
422
116
691
496
760
314
122
394
89
426
494
371
769
414
542
267
224
243
85
796
973
777
45
31
380
458
334
950
770
498
762
979
243
952
356
658
328
901
200
634
414
292
776
868
357
859
134
85
553
198
534
28
88
314
160
410
799
510
913
707
205
155
553
152
348
619
56
263
801
653
272
429
38
448
68
853
444
776
847
870
159
273
494
66
389
880
167
507
31
670
811
257
198
863
958
776
910
326
986
322
940
712
825
518
568
245
287
340
796
445
551
167
819
424
489
32
793
37
236
710
501
591
244
433
459
886
380
982
532
631
878
309
202
586
284
418
35
234
647
570
105
99
99
122
48
97
429
856
539
996
216
811
493
77
749
66
524
797
650
668
951
93
179
313
889
524
742
381
843
341
271
412
16
679
777
94
680
290
279
623
719
599
117
270
693
124
8
400
822
523
102
712
467
343
838
602
519
86
461
426
626
742
752
786
92
288
189
908
425
192
27
257
986
837
460
311
870
115
579
29
531
878
911
2
877
189
321
347
751
321
854
459
205
670
911
620
599
943
931
985
425
485
191
7
23
800
435
813
231
831
968
573
961
277
241
900
225
378
441
587
241
820
236
311
149
665
896
594
923
949
256
868
584
874
172
936
226
851
849
110
373
989
543
824
181
436
516
490
378
10
245
269
81
995
883
358
904
789
647
303
23
609
869
340
458
861
296
193
2
717
170
768
361
917
612
901
979
125
90
390
346
687
98
547
974
234
188
36
298
369
432
771
654
436
943
809
697
237
500
49
979
524
429
653
381
667
434
590
60
904
108
457
805
661
324
217
441
780
174
759
55
88
747
605
188
737
727
198
188
442
236
310
675
42
723
201
944
895
809
722
143
667
620
44
221
365
930
346
837
276
925
811
381
40
121
908
732
470
763
816
997
365
122
152
611
555
136
526
123
819
879
826
13
382
711
845
180
96
110
533
950
665
564
265
729
156
296
913
876
195
487
704
23
5
47
48
748
48
276
605
830
50
307
888
449
190
40
984
272
370
196
790
912
77
658
73
727
672
851
981
942
143
336
227
861
444
540
927
352
375
78
902
767
688
402
504
343
480
166
857
495
993
741
46
70
738
523
632
752
460
192
179
466
670
732
427
262
45
255
513
676
19
389
223
166
961
179
345
883
445
98
425
184
354
483
767
279
843
223
783
175
77
820
598
225
437
162
275
617
312
766
105
109
697
334
585
273
513
429
547
54
612
574
765
391
496
706
872
0
841
771
922
134
355
325
523
0
893
605
839
759
244
933
465
514
49
189
493
356
233
94
501
851
702
808
507
515
601
816
640
390
82
774
230
599
293
120
787
830
948
45
323
842
19
975
828
848
945
586
549
899
231
756
467
952
757
444
502
603
18
265
671
767
183
729
246
959
442
997
473
357
439
695
183
67
450
302
14
207
257
627
526
181
573
520
257
759
62
538
565
371
558
52
351
94
608
995
149
340
963
979
429
681
336
256
790
305
900
212
130
617
2
370
191
309
656
811
972
981
928
980
560
580
98
789
473
998
655
305
739
614
430
402
42
935
631
452
722
828
3
990
107
786
616
993
949
782
84
922
616
988
682
187
798
595
914
433
232
370
535
757
238
938
882
983
433
640
898
906
331
920
859
500
529
875
129
54
714
571
536
334
390
165
37
983
845
807
376
381
606
560
185
7
655
313
98
527
913
711
76
159
550
117
224
3
271
197
405
771
584
623
477
317
557
998
566
237
421
248
0
514
916
774
384
793
554
593
480
638
24
977
422
165
316
11
869
777
489
385
616
271
552
657
742
812
480
286
325
549
38
299
677
491
269
528
112
286
265
440
314
513
384
608
556
126
149
342
726
403
457
519
257
944
362
818
468
33
783
42
352
424
444
386
109
802
892
509
926
955
59
871
108
158
634
752
90
835
212
498
174
52
127
695
449
779
601
887
121
678
44
916
38
702
937
868
391
378
811
470
677
846
9
743
926
853
636
227
337
4
630
472
910
741
98
138
545
302
132
680
870
76
384
8
709
651
618
192
644
942
627
74
897
49
632
299
653
283
787
770
929
715
382
37
6
542
713
335
441
577
146
968
10
856
844
684
140
6
943
726
765
726
70
575
501
597
446
789
57
125
128
268
307
710
701
210
354
315
962
658
724
718
147
288
3
380
942
451
528
398
109
70
421
624
367
151
429
607
64
22
471
164
6
225
58
404
605
423
161
826
18
313
640
65
642
243
37
483
800
736
351
492
843
771
169
111
895
653
18
145
167
976
578
656
575
130
319
342
0
503
297
608
187
810
486
180
212
840
653
499
1
584
971
835
288
894
85
204
763
168
728
174
241
623
448
0
484
966
550
633
720
632
540
480
946
907
985
707
418
835
325
603
21
719
122
411
117
654
876
259
340
847
659
305
976
184
84
311
37
771
266
450
149
362
418
363
123
642
618
559
280
228
882
558
597
666
586
147
966
3
242
552
640
657
18
629
890
921
768
188
988
613
438
560
305
236
920
78
936
77
579
711
768
17
383
9
628
215
528
834
346
569
389
275
584
383
817
517
604
780
587
754
319
980
152
567
726
761
664
326
747
744
964
940
247
740
192
121
699
387
598
606
320
778
911
650
460
363
492
419
878
305
482
175
130
428
439
314
765
542
471
285
2
193
475
112
141
873
350
574
745
286
655
137
310
766
974
680
539
913
342
941
256
881
396
645
180
86
366
597
209
870
336
238
789
618
750
395
422
308
518
368
517
607
941
749
402
964
210
903
58
380
226
717
693
342
381
542
163
436
241
1
485
113
817
837
111
617
325
334
876
636
67
138
958
985
960
857
730
263
643
672
66
964
954
838
620
773
807
35
417
380
866
924
316
12
102
930
652
901
592
853
834
759
689
822
68
428
620
629
634
158
534
789
149
21
257
618
432
900
183
719
144
126
429
795
213
67
292
410
100
825
660
309
179
117
331
656
387
481
495
566
480
704
34
777
314
178
564
893
819
758
492
412
356
762
548
147
122
153
9
151
832
20
12
739
47
355
914
398
725
182
284
87
308
758
718
344
197
573
672
854
101
535
69
306
310
75
948
836
291
948
49
820
400
840
19
226
267
922
171
133
657
361
815
259
28
371
937
234
586
474
649
779
731
694
951
920
115
6
764
150
235
419
906
587
713
384
807
890
525
159
593
824
37
244
120
551
435
861
326
190
376
269
831
146
360
485
594
127
694
152
48
453
21
470
758
203
180
745
988
152
559
829
704
646
318
294
809
50
66
937
569
544
58
768
74
515
694
977
412
974
775
727
179
644
603
75
835
226
345
49
92
459
137
296
647
968
200
879
831
471
642
112
967
328
781
338
61
856
578
976
44
118
939
149
898
503
226
940
615
516
696
880
499
833
916
768
84
951
230
996
185
658
103
668
821
495
509
158
560
876
937
705
999
930
67
938
817
585
756
595
499
345
681
773
869
869
317
56
127
526
739
969
867
208
862
631
840
54
729
685
474
585
761
150
12
451
477
47
494
857
719
972
742
535
766
847
956
825
794
934
665
840
751
822
436
267
442
401
272
169
976
870
107
853
785
204
942
17
177
492
841
444
502
723
927
336
335
444
133
191
95
596
924
947
816
164
981
777
90
537
680
820
209
139
953
696
205
674
926
60
171
788
70
452
560
94
715
413
32
574
252
26
814
871
299
966
122
243
470
186
523
28
882
846
980
301
111
495
320
70
778
741
561
780
501
670
723
391
93
163
47
233
63
650
991
805
866
427
192
360
15
273
575
407
916
73
619
354
828
451
164
758
177
727
825
419
79
97
779
626
820
108
932
568
703
920
503
557
988
804
937
314
431
503
138
945
507
599
120
35
896
979
919
840
474
637
120
489
721
313
380
577
924
980
698
780
796
992
697
943
504
34
258
917
187
87
175
67
60
19
628
583
713
867
647
94
509
175
376
261
787
217
440
761
102
901
669
763
131
952
386
128
200
955
522
268
345
741
43
704
774
257
465
921
851
794
926
628
744
546
994
976
130
374
940
745
258
623
120
840
458
855
520
754
812
680
142
128
101
765
329
398
50
636
335
509
693
197
242
807
36
862
592
337
101
115
783
123
22
254
91
121
999
679
695
769
38
469
648
49
331
169
887
737
349
348
220
581
846
806
27
568
962
281
311
101
90
43
442
44
189
746
662
63
281
292
224
286
167
621
890
627
198
89
513
285
355
96
719
417
952
670
255
928
651
629
119
688
375
301
947
738
450
726
501
723
255
177
703
293
114
529
364
508
675
996
344
649
312
525
321
321
385
325
455
621
933
146
150
566
316
826
131
584
564
936
970
342
85
168
211
871
279
108
26
808
932
231
457
344
740
926
765
249
665
400
516
859
967
383
363
176
363
164
273
651
392
318
95
615
574
367
72
512
863
301
308
766
531
891
879
166
333
207
667
589
363
754
154
872
959
231
574
344
398
132
13
517
986
836
139
830
462
127
875
549
22
797
813
549
682
787
770
468
288
445
228
51
367
561
302
954
928
296
881
54
749
297
7
722
216
620
645
548
306
79
662
722
430
756
602
378
760
507
844
961
840
666
900
926
221
921
510
745
928
974
643
807
50
952
809
67
861
398
646
144
146
728
345
200
206
370
960
983
945
371
329
67
511
504
33
418
676
513
155
373
198
820
134
770
588
362
64
586
474
856
817
10
255
512
933
430
631
108
367
317
603
999
621
871
915
983
375
186
195
287
340
56
975
560
295
987
206
861
770
961
292
506
188
784
397
300
815
349
419
174
573
6
926
897
246
895
678
516
701
725
167
730
413
644
137
874
494
733
721
414
960
128
511
611
869
31
409
297
997
975
521
897
499
452
492
388
726
421
449
394
158
704
285
584
813
891
711
144
222
813
351
633
273
362
639
259
489
225
196
335
751
148
966
713
42
203
555
806
630
474
18
764
651
912
198
512
164
720
112
181
180
582
813
847
601
979
237
82
168
454
36
73
67
184
834
740
324
718
311
534
976
231
607
476
667
274
765
814
143
109
806
701
433
904
171
41
936
661
560
497
815
341
753
248
102
680
262
633
157
329
520
821
715
8
677
569
426
946
770
333
754
839
275
486
321
461
123
624
534
139
281
276
240
438
836
611
948
696
317
77
614
684
707
468
618
851
680
553
138
362
927
381
47
989
920
359
793
881
890
81
615
244
652
347
984
681
717
377
720
258
194
784
478
451
660
416
308
914
762
412
662
361
688
985
121
754
863
577
231
443
200
104
153
191
547
673
209
621
105
450
752
810
370
302
149
73
840
944
447
464
234
613
783
739
979
292
971
145
608
256
926
408
691
273
360
434
835
326
299
679
852
59
594
616
151
308
557
529
212
729
440
961
60
971
661
709
244
307
974
46
233
748
563
128
535
882
830
623
200
404
995
326
395
293
408
18
140
886
278
997
643
374
933
294
830
737
723
75
140
172
961
234
838
625
690
677
261
76
161
943
61
487
851
166
555
354
468
998
309
372
686
868
187
95
936
339
765
95
527
980
627
65
86
312
214
529
548
345
406
812
409
850
431
950
413
570
883
95
40
299
984
835
625
623
589
944
584
254
753
679
864
379
755
909
70
84
904
493
381
122
2
484
638
222
6
733
745
422
797
861
107
587
764
714
921
545
624
726
493
928
712
173
402
995
686
962
681
803
306
681
982
324
971
920
440
405
440
954
417
581
974
791
369
864
423
637
990
858
791
400
622
9
748
328
670
249
326
531
782
139
618
317
353
704
694
148
74
935
130
998
136
813
265
465
38
928
628
248
471
476
41
432
188
715
983
135
283
607
935
267
961
840
963
195
128
297
344
749
249
979
126
855
307
861
195
357
811
823
86
839
679
992
588
699
628
628
673
358
485
351
825
487
100
705
527
769
582
815
999
651
113
823
782
467
727
151
410
35
876
54
762
2
514
447
242
555
458
964
184
634
278
59
328
336
106
378
237
938
810
95
961
80
19
629
804
539
538
245
693
290
339
50
999
497
32
47
651
693
638
713
616
891
510
210
79
62
783
655
236
550
953
744
929
894
253
851
732
938
885
415
205
188
497
210
717
529
186
897
700
275
130
221
293
826
776
538
360
863
57
407
148
6
760
855
167
778
54
91
801
45
2
792
35
863
776
146
163
956
899
205
489
367
421
196
874
818
314
831
377
282
279
272
161
77
775
554
602
149
664
373
297
384
535
785
347
175
853
14
472
275
608
658
609
888
48
322
284
457
969
383
955
259
603
705
4
307
531
229
487
760
247
286
862
483
685
721
624
68
674
137
517
22
739
519
274
657
415
980
307
600
868
882
996
953
41
770
279
282
158
611
373
506
882
428
431
448
138
733
743
406
679
975
381
859
213
888
502
150
646
812
981
379
827
939
20
902
846
64
573
567
605
639
705
907
708
162
778
75
259
872
808
499
197
659
184
61
970
123
110
308
635
993
912
613
386
583
889
849
125
662
147
334
841
244
790
842
672
356
193
406
904
153
224
349
947
203
264
193
454
693
79
421
144
968
45
258
625
200
301
610
579
913
675
579
931
259
564
900
998
864
81
813
528
626
770
883
257
732
54
338
837
428
272
413
838
922
402
163
441
179
316
277
457
605
658
40
515
789
755
25
992
925
887
680
877
16
506
231
796
615
324
918
333
374
392
545
760
640
362
506
597
112
190
294
791
496
64
648
225
646
129
895
381
486
166
766
905
736
594
394
206
294
360
145
593
72
298
13
138
617
326
770
222
204
375
560
433
907
250
794
15
824
810
549
425
295
710
605
176
206
981
83
499
434
775
978
866
43
180
291
951
531
848
840
370
393
509
767
818
314
768
806
347
173
493
496
268
171
195
786
77
708
816
447
910
22
758
696
190
213
573
2
377
546
986
735
200
813
857
766
976
743
610
281
622
966
684
819
433
85
807
269
38
426
50
819
942
585
743
208
206
642
816
519
316
532
163
154
28
845
741
0
408
98
510
836
866
685
877
15
500
115
719
903
123
412
659
885
29
872
767
372
195
191
252
546
659
284
487
28
165
726
355
280
879
271
600
737
241
8
958
472
105
878
313
562
870
259
744
392
814
608
888
98
333
725
183
447
139
717
82
540
77
329
333
244
536
325
639
789
115
536
965
792
389
284
882
896
588
933
631
360
756
508
95
636
276
420
923
207
796
660
32
923
646
980
82
958
85
244
182
294
804
697
366
817
999
824
975
724
92
231
877
946
264
496
812
985
813
662
883
100
359
444
771
426
917
811
775
983
871
322
187
940
8
343
219
859
630
155
306
322
681
69
59
336
393
96
174
170
68
206
85
477
186
125
934
463
730
819
562
870
977
928
451
167
898
14
89
715
775
734
765
38
681
396
951
815
743
149
615
594
819
354
267
695
363
455
247
813
55
471
249
536
2
503
288
795
526
81
47
160
722
452
655
201
502
648
643
477
203
42
210
23
859
342
741
73
950
113
704
501
697
534
382
89
182
161
303
881
38
137
404
661
496
333
217
924
729
465
728
50
937
369
630
778
153
968
632
459
656
578
301
899
22
863
384
308
846
471
961
334
679
382
87
977
499
842
842
649
26
761
825
460
157
719
864
585
634
88
809
161
933
253
950
243
395
879
285
991
333
934
648
992
907
578
250
176
570
80
879
23
51
700
290
91
208
596
814
764
77
731
366
411
331
836
557
56
240
118
695
586
669
330
361
527
671
36
377
105
743
768
658
671
281
318
415
72
22
893
132
373
547
41
444
249
783
281
350
792
584
69
933
211
385
753
758
83
921
186
369
898
92
305
623
380
738
593
549
347
647
902
514
476
308
390
954
954
957
972
935
138
224
37
320
374
425
216
868
925
891
627
715
791
187
980
869
36
581
145
989
818
427
794
216
888
131
903
427
261
36
469
709
66
447
563
537
415
337
293
917
437
249
276
930
805
512
346
847
871
82
190
728
892
347
682
641
858
6
413
944
864
562
295
300
439
888
135
40
218
548
763
168
82
0
88
900
417
673
984
437
400
479
931
222
558
501
511
287
923
695
386
294
633
882
539
854
253
52
808
716
329
226
823
3
953
141
868
648
498
332
907
160
308
758
522
219
496
842
602
22
258
734
520
148
252
248
348
17
916
793
659
617
66
401
178
32
946
514
757
634
23
15
239
755
697
419
158
941
746
24
553
481
773
700
18
391
757
480
680
42
68
873
58
117
502
232
317
331
868
274
129
804
454
538
654
633
411
797
259
236
443
744
211
55
936
25
141
643
836
22
936
925
453
997
410
697
809
772
617
118
995
387
801
777
989
562
472
348
513
720
755
215
939
865
718
446
590
582
278
113
110
772
794
709
521
739
347
675
83
898
164
490
478
684
78
72
839
552
693
86
422
977
947
490
910
828
346
39
312
703
249
600
720
15
890
986
563
447
976
718
440
217
404
461
153
863
349
902
898
617
132
268
490
972
596
486
541
716
28
157
198
498
5
768
546
188
468
260
634
772
776
559
927
747
728
881
909
241
695
78
161
115
157
561
183
164
413
27
116
815
381
631
430
251
462
285
738
605
573
482
702
13
291
22
343
991
282
123
196
23
276
40
679
226
104
840
70
209
332
926
947
628
291
257
764
292
460
289
798
641
673
570
939
380
209
173
201
299
502
181
245
809
291
829
956
176
575
324
394
915
597
83
740
52
742
205
967
636
189
138
620
761
777
109
773
542
223
613
180
512
540
154
271
179
217
594
903
453
465
964
924
411
746
804
398
523
505
917
462
574
478
704
966
357
597
399
84
707
364
46
429
436
920
163
680
2
557
190
156
722
571
894
439
756
871
198
564
438
373
149
264
391
272
933
721
378
151
151
539
814
595
689
506
698
454
568
865
267
183
648
281
874
237
721
477
333
663
380
296
413
951
987
270
996
952
662
929
369
79
118
391
359
697
761
29
438
37
222
183
106
76
36
53
310
515
283
60
795
19
290
326
181
36
290
118
293
506
989
996
366
559
947
746
391
834
73
664
255
85
953
316
123
860
347
178
274
84
438
709
323
632
536
841
402
639
25
730
588
874
62
363
130
532
673
707
401
576
413
0
603
674
197
828
437
374
498
298
325
4
413
863
97
680
89
97
709
573
368
805
284
683
222
618
659
86
633
642
792
459
155
379
756
798
673
238
338
296
178
462
843
201
217
117
169
711
623
391
634
713
330
553
488
122
523
625
54
402
486
509
29
359
601
97
219
98
729
705
459
20
359
716
503
485
169
240
548
891
819
125
314
184
588
476
666
140
848
559
937
385
913
643
184
718
431
504
50
596
803
135
496
667
889
211
18
384
563
931
142
710
310
411
637
245
64
439
55
157
240
578
922
288
523
808
108
934
861
209
517
112
769
423
652
592
187
839
22
130
289
746
914
447
995
780
718
252
311
27
629
373
879
536
943
146
518
949
218
266
475
684
820
75
307
504
49
650
151
952
565
405
690
345
541
699
342
580
944
302
784
780
768
514
844
35
741
740
983
83
906
518
229
590
218
864
91
147
823
237
920
866
469
746
581
892
502
824
962
89
664
154
605
714
378
627
348
247
343
18
529
229
142
739
332
491
517
926
220
930
926
977
817
468
912
606
577
46
464
600
772
784
492
996
589
439
650
647
790
251
780
130
319
521
543
357
137
759
399
689
268
241
681
752
39
116
263
842
522
684
936
116
665
713
860
636
791
154
336
823
971
813
9
227
945
307
202
601
379
726
695
800
831
802
131
75
686
485
352
501
658
202
765
18
496
209
437
483
964
103
276
388
243
911
578
228
799
773
750
575
15
424
656
366
296
203
586
62
888
227
695
771
40
412
486
637
8
42
854
136
39
325
299
609
231
494
226
814
374
975
693
461
382
355
45
821
537
250
316
965
398
553
850
811
804
83
613
680
94
408
56
608
407
151
18
615
489
486
632
390
741
126
718
471
63
999
983
999
275
396
445
743
172
148
982
472
772
689
901
799
378
239
799
742
894
729
532
534
522
459
566
344
691
372
875
566
5
854
303
198
14
42
429
745
555
832
986
591
359
312
446
349
222
671
702
290
501
682
413
750
351
568
792
266
581
389
842
31
577
996
592
839
117
142
271
431
81
745
910
523
914
54
379
672
293
567
29
508
54
189
731
745
725
156
241
530
17
815
911
76
596
580
717
905
117
865
897
446
431
928
588
454
787
406
563
783
646
82
44
416
339
669
8
220
722
255
494
230
826
273
181
349
391
995
266
283
57
508
518
229
913
436
483
464
202
846
203
138
421
86
710
564
213
736
125
789
556
744
898
575
483
520
470
82
743
258
330
53
291
303
866
52
229
75
854
330
702
781
325
612
515
211
727
668
818
775
831
649
4
107
420
900
463
479
257
564
894
949
628
410
533
874
745
293
227
585
28
422
878
846
243
967
583
541
618
285
652
638
511
316
582
452
470
738
173
868
206
334
417
364
131
464
158
104
667
325
864
664
110
539
69
747
941
503
964
565
338
720
215
892
989
606
913
415
860
421
683
144
957
596
211
218
939
904
289
376
569
557
258
550
527
530
449
329
860
509
946
694
609
353
984
222
465
345
636
867
94
277
403
379
455
206
722
230
303
922
705
517
334
392
627
270
246
711
101
884
404
492
335
288
295
699
245
650
617
233
316
153
531
624
905
728
885
143
727
640
331
541
27
42
987
322
633
879
847
892
108
78
516
191
414
773
400
845
88
173
533
522
683
395
398
343
131
347
321
503
197
182
281
838
509
173
41
348
685
86
203
285
156
616
979
69
967
732
601
614
867
925
753
168
565
114
870
14
313
298
501
832
910
269
927
459
793
196
213
366
544
546
930
649
73
409
469
614
66
965
537
454
179
83
350
245
771
517
817
390
766
165
467
478
896
357
114
3
833
843
978
841
40
33
151
272
543
293
788
362
772
250
425
723
530
193
774
955
561
581
901
40
499
961
917
819
782
50
672
758
566
53
910
764
574
994
942
108
946
242
910
419
918
727
903
634
271
413
921
628
168
877
109
811
881
639
594
888
753
93
446
406
234
509
224
450
373
152
701
632
344
849
42
843
416
33
868
892
987
400
188
455
857
567
644
442
430
646
514
962
304
809
44
872
765
707
842
175
554
438
995
213
293
972
448
57
920
211
213
999
247
372
471
101
441
924
144
65
368
709
480
258
861
272
188
431
376
816
315
346
397
46
577
181
423
150
889
549
183
273
805
877
746
427
581
793
961
896
370
599
462
824
744
986
333
831
674
236
764
131
478
386
814
976
547
322
323
968
466
742
848
944
165
708
535
295
559
481
532
443
359
151
258
600
809
624
999
788
666
103
855
58
472
275
83
735
443
344
11
947
97
685
250
995
410
429
240
84
656
730
156
459
98
300
8
751
697
644
53
402
616
759
787
371
427
749
91
229
360
91
710
799
220
318
6
468
836
771
587
282
208
794
258
127
631
857
679
886
240
45
772
108
789
433
124
482
161
609
562
979
644
408
968
557
897
773
748
355
654
827
176
82
403
462
175
436
271
655
765
750
153
32
468
109
51
881
115
701
960
403
219
231
402
64
551
631
441
554
626
863
849
0
870
507
407
747
15
939
330
233
905
982
315
802
987
252
489
154
498
346
566
454
85
287
456
498
719
870
639
883
842
901
730
532
835
826
766
117
274
9
831
436
49
842
98
84
611
478
558
215
474
340
16
269
718
544
68
869
924
672
213
957
130
720
626
222
107
190
853
654
715
395
312
928
822
336
954
309
764
573
886
325
390
86
193
36
366
935
131
49
545
42
210
710
11
338
657
491
484
872
82
596
603
599
102
333
364
365
366
71
16
34
890
832
872
175
647
280
485
756
393
375
496
943
616
562
345
616
698
562
373
743
40
88
822
33
880
157
310
848
831
41
941
561
53
140
134
830
367
922
691
526
247
827
736
546
743
260
655
160
270
171
52
540
435
372
468
58
647
513
493
63
330
63
338
136
802
450
514
582
170
741
189
952
855
755
48
28
396
302
100
345
446
623
767
193
57
8
773
481
582
723
356
952
46
976
227
567
894
440
260
712
880
665
601
147
433
110
136
675
170
121
383
976
64
554
554
377
829
757
963
551
599
418
270
328
495
6
449
191
801
500
302
193
972
991
211
540
315
335
327
449
388
114
672
133
538
776
625
949
412
992
793
197
41
814
881
186
246
497
346
662
264
384
703
259
874
467
33
601
644
528
228
944
430
311
767
68
87
937
364
512
748
354
285
268
512
339
918
509
573
781
171
845
392
592
901
5
19
778
17
262
562
316
159
786
968
835
694
750
162
602
585
830
701
960
497
698
736
275
909
686
999
824
849
296
294
613
116
320
377
755
379
71
576
962
59
718
254
882
983
158
463
950
993
649
263
939
92
901
870
304
842
65
29
233
49
761
503
393
691
852
93
805
53
430
626
123
409
170
167
209
296
998
646
320
833
273
832
414
34
729
340
38
136
501
335
480
103
321
633
240
726
847
311
629
240
2
76
482
651
615
574
656
52
594
915
356
608
272
457
822
888
297
640
449
716
517
734
737
862
956
12
792
738
773
621
571
136
479
728
346
22
699
857
64
68
6
739
600
818
559
241
244
922
671
166
930
568
692
821
994
255
352
646
783
786
319
358
591
923
249
23
692
934
269
172
457
436
692
224
451
738
223
815
714
678
443
671
946
361
432
278
753
349
309
269
876
321
738
315
828
956
385
168
361
983
874
980
849
103
158
669
201
583
941
620
505
108
671
988
538
278
471
266
634
745
696
982
607
582
437
644
543
974
185
894
274
126
261
992
401
100
876
482
356
289
106
676
569
486
865
650
123
925
768
227
537
444
551
760
552
61
812
576
407
104
503
19
110
663
83
411
350
423
348
973
744
381
953
735
324
567
585
420
155
754
841
907
503
804
286
712
162
128
239
6
894
123
903
478
729
362
99
517
587
394
559
437
6
859
660
105
872
532
119
862
583
155
316
882
549
809
235
441
597
86
259
450
120
8
456
290
723
959
756
742
804
243
962
77
434
714
399
940
634
986
530
98
196
360
935
148
917
606
139
973
370
446
436
529
704
16
250
41
534
193
401
821
811
946
819
302
251
681
636
273
388
824
292
819
993
897
635
384
215
309
258
859
221
202
462
70
997
824
463
467
732
492
368
134
329
685
847
186
999
647
728
672
891
482
928
626
715
958
479
328
431
824
247
488
279
851
101
692
553
36
89
888
328
580
481
278
748
46
62
680
814
722
123
410
90
874
727
866
901
276
861
508
296
654
640
226
651
163
102
433
659
607
614
39
278
311
852
740
135
934
139
271
566
382
117
734
984
592
686
648
792
353
881
997
369
879
941
543
521
698
831
890
976
882
763
481
273
864
221
322
850
827
624
993
912
728
343
771
575
592
178
667
670
431
66
955
5
126
837
757
68
775
625
129
331
138
661
969
811
320
621
893
603
223
503
773
116
913
751
126
459
263
693
805
360
913
171
615
46
785
868
72
388
23
417
793
661
992
853
989
882
317
410
428
503
426
833
569
282
599
938
940
695
786
104
215
314
777
398
773
498
269
501
170
438
963
475
857
912
98
138
644
851
929
135
116
76
31
192
271
704
588
711
209
366
995
311
627
998
627
771
321
520
715
403
359
214
840
247
756
191
714
415
140
80
247
606
610
486
800
568
747
508
288
255
915
782
481
463
983
583
324
652
145
386
728
695
295
692
209
526
124
260
204
114
228
675
782
347
34
780
397
314
550
78
114
637
865
727
312
417
835
491
891
256
878
530
262
607
531
390
883
104
614
453
907
916
254
966
675
502
9
809
107
953
105
749
79
376
601
861
345
942
140
639
326
433
515
342
484
915
367
883
716
983
660
527
797
343
493
683
970
851
830
481
945
818
991
927
505
309
133
414
327
413
70
352
160
462
918
782
711
264
274
423
653
335
482
413
617
544
747
748
463
568
691
594
706
647
441
154
837
530
84
943
829
720
760
27
396
984
631
180
229
172
520
590
39
207
281
358
297
841
106
776
583
225
311
343
405
362
993
975
870
698
220
983
424
400
434
893
623
376
203
929
887
86
487
47
856
575
948
751
700
26
205
284
121
442
235
622
541
537
782
991
525
469
87
72
488
588
788
375
547
739
604
777
208
493
236
65
132
159
836
276
997
129
647
637
776
21
981
849
923
208
284
960
773
764
484
138
613
149
359
454
364
429
653
677
308
654
850
896
146
484
45
27
690
918
734
855
423
288
33
68
958
482
436
990
789
948
376
279
649
588
80
244
191
472
304
887
319
629
83
266
933
259
885
736
799
284
505
172
299
543
134
456
256
163
224
78
903
188
85
71
545
612
982
616
815
505
493
126
776
520
117
179
76
99
858
518
622
598
946
445
92
127
294
693
570
808
197
547
595
886
711
31
907
385
176
97
491
71
652
182
505
152
548
661
943
170
165
671
993
258
894
504
796
798
46
649
244
912
326
278
434
975
234
958
541
960
659
791
908
6
714
150
242
187
238
998
413
541
395
677
329
82
404
997
471
58
44
33
931
333
304
974
159
559
280
721
555
384
82
860
592
186
642
995
691
935
315
762
683
909
257
801
211
936
798
227
359
746
566
660
489
247
247
453
565
531
762
652
43
253
443
469
323
702
319
485
820
817
972
339
15
116
111
31
989
179
973
128
525
790
66
565
30
212
903
210
456
485
225
253
807
607
467
6
641
881
297
492
554
418
860
379
537
67
169
526
803
853
751
757
642
167
175
677
974
915
675
937
71
61
288
592
711
106
59
483
477
873
860
123
496
435
480
269
185
331
493
232
637
31
172
544
495
670
744
189
944
559
941
460
924
326
589
228
682
907
413
7
168
570
620
167
12
229
907
89
287
514
621
264
758
270
670
671
184
599
343
326
624
594
306
965
581
210
410
90
485
261
584
798
141
280
51
502
319
358
260
456
49
810
551
621
295
946
627
444
606
331
711
591
551
333
227
329
37
948
501
388
789
639
477
186
246
559
494
110
136
154
626
866
484
681
85
425
253
94
24
380
594
590
144
778
463
50
193
132
201
137
431
510
34
600
218
84
97
931
320
599
709
663
818
255
814
905
211
711
851
409
525
923
585
790
554
970
34
117
527
470
101
96
382
228
335
414
116
126
266
733
618
720
803
357
582
492
32
713
782
479
431
548
831
331
842
591
236
589
827
106
228
503
713
331
651
222
149
747
284
810
707
150
467
547
850
964
586
630
180
708
342
66
108
874
558
66
195
950
20
524
645
514
169
504
612
733
965
157
382
212
46
476
167
689
394
187
724
19
752
809
825
447
745
208
545
407
670
802
941
140
200
267
74
985
593
478
387
239
826
741
721
642
167
930
915
585
573
546
310
927
706
71
887
810
551
351
44
784
738
160
561
164
524
136
284
85
60
93
742
835
755
57
537
243
959
250
969
623
74
974
295
90
975
979
719
900
710
302
536
383
876
579
276
773
280
649
338
735
865
431
144
435
305
978
180
538
406
676
677
389
765
819
564
992
718
792
347
870
874
371
267
795
981
758
33
856
60
380
985
500
605
979
770
369
6
666
884
300
702
274
789
877
751
305
673
643
340
759
433
145
925
849
849
687
397
237
839
763
590
222
801
616
294
482
327
532
869
579
807
926
781
836
534
869
356
689
924
574
494
401
790
825
266
7
349
635
484
446
847
739
345
743
619
842
833
211
9
328
378
910
309
139
906
73
762
934
40
759
152
397
936
22
744
963
773
630
352
954
684
918
10
191
653
242
755
561
88
145
197
34
43
773
913
23
43
264
915
58
415
740
84
66
751
456
745
253
828
899
699
254
702
41
922
457
379
83
511
160
796
203
447
494
770
944
718
836
871
236
62
184
260
153
715
144
176
60
470
262
903
760
605
797
64
154
570
872
301
544
294
575
990
552
31
336
884
954
758
901
965
313
873
623
857
517
151
223
405
898
913
702
227
918
215
565
841
991
962
648
798
214
168
976
968
284
593
337
966
415
665
968
283
98
457
176
690
468
114
608
381
344
877
569
438
638
211
383
460
705
68
171
280
735
949
414
792
126
343
45
678
99
784
327
438
931
641
252
993
340
773
111
956
656
257
803
104
527
995
379
814
742
798
635
838
30
822
512
689
718
348
533
537
940
537
399
429
334
694
14
52
677
99
62
412
469
402
471
199
89
321
978
40
638
712
401
362
450
348
805
45
433
566
998
85
945
960
160
217
17
659
798
769
890
193
356
663
179
485
353
962
51
294
16
309
94
483
984
964
716
500
726
718
517
582
272
714
894
418
723
931
281
974
530
550
176
627
875
226
363
209
852
19
177
926
739
348
507
362
400
991
605
66
409
383
759
2
963
592
580
627
845
49
216
984
148
637
729
716
425
990
622
909
790
182
729
980
560
350
237
376
92
699
801
671
417
90
484
916
572
57
877
628
656
508
262
118
426
159
1
818
283
810
553
639
724
389
332
250
739
475
192
91
715
438
396
62
401
362
920
824
327
517
145
364
572
771
689
518
821
296
107
939
297
148
829
608
916
830
200
941
178
845
665
159
442
535
641
839
366
514
758
527
756
800
855
518
317
634
775
905
722
319
744
805
771
753
713
872
347
808
606
530
660
76
977
958
850
889
885
174
707
604
424
702
559
343
662
908
502
931
268
849
418
909
665
18
424
423
291
568
627
708
481
187
803
192
595
491
737
256
641
664
93
783
545
603
731
713
160
84
268
534
556
618
568
901
321
155
429
692
159
318
586
669
201
181
967
668
641
942
263
98
958
143
681
834
927
437
662
537
356
274
248
833
685
419
404
933
927
103
695
265
486
962
563
32
758
752
336
752
841
95
104
374
633
400
495
533
192
8
224
594
533
884
544
518
485
194
159
841
105
32
984
678
652
669
901
682
857
310
737
906
931
326
93
913
427
583
372
878
375
242
418
917
15
962
397
316
548
520
93
468
598
101
38
446
848
818
568
440
473
150
490
95
431
885
64
510
895
600
597
724
399
334
35
951
288
182
177
417
820
223
297
654
415
123
201
189
329
241
204
615
511
512
303
494
89
276
692
713
850
999
699
571
606
732
482
285
452
741
139
15
755
240
851
812
723
65
139
753
221
717
972
306
339
653
80
422
390
521
514
482
182
611
542
296
646
311
746
230
316
420
858
612
645
330
544
497
584
521
607
531
885
593
813
100
157
364
616
521
724
440
199
241
890
523
532
585
263
662
687
349
479
90
158
781
828
168
880
956
619
401
523
603
532
818
201
693
881
970
469
718
64
589
202
240
293
229
863
633
416
922
409
418
751
808
262
958
55
303
787
793
926
54
141
902
9
359
948
845
746
424
462
318
314
920
759
995
484
276
658
541
799
690
205
583
424
29
87
824
18
762
683
451
361
745
166
316
100
438
861
666
770
605
543
129
528
782
583
722
724
959
170
888
495
184
109
54
243
531
473
809
969
14
594
67
191
58
770
257
705
232
834
762
423
877
274
163
928
347
60
589
407
671
740
493
391
987
133
836
353
623
554
192
633
855
250
307
531
713
64
312
490
62
329
694
587
102
259
378
627
844
49
421
81
547
203
663
626
993
888
566
62
272
891
450
319
804
163
985
668
961
681
296
178
428
802
907
192
522
736
238
314
933
704
552
535
9
387
639
875
492
206
443
778
119
704
453
811
383
116
474
208
425
632
152
738
160
935
334
932
537
79
429
723
526
349
841
860
806
5
406
39
389
155
240
984
656
413
676
872
532
501
723
111
264
818
635
454
75
98
246
270
992
537
536
843
271
892
321
750
565
735
847
924
51
575
138
574
203
683
44
626
490
208
589
878
377
799
11
275
115
265
790
321
938
496
244
287
163
179
217
733
888
660
538
708
672
598
131
265
362
582
219
809
272
402
571
603
626
546
957
848
827
496
946
186
881
811
995
475
280
146
551
425
409
618
492
34
390
758
856
960
307
87
819
765
727
269
175
268
683
355
841
353
262
195
383
878
203
328
899
733
827
367
888
986
605
757
909
440
4
521
923
778
674
491
758
243
806
23
679
573
816
914
466
644
188
675
873
619
419
624
567
261
735
801
118
589
618
910
181
200
197
741
44
870
313
826
529
377
902
973
655
934
339
803
609
820
119
676
505
110
540
682
271
488
843
629
174
530
556
874
701
667
27
577
154
31
979
927
837
876
918
526
38
857
476
605
628
539
572
233
771
666
867
596
625
164
388
992
412
802
988
877
268
523
87
517
513
464
569
970
219
86
319
29
436
964
2
178
423
853
525
297
589
93
190
931
901
722
172
794
925
905
693
224
374
775
98
886
752
139
585
22
57
460
878
287
988
451
587
361
459
479
541
100
42
647
574
402
947
604
629
698
558
734
170
629
397
297
338
252
597
823
324
421
278
432
858
280
430
392
941
548
494
158
181
808
89
583
266
719
467
264
628
788
787
9
569
182
162
413
43
760
912
364
920
871
351
45
443
591
310
115
141
32
516
987
40
686
613
138
576
451
539
557
908
235
142
90
651
300
343
216
826
718
557
826
725
522
602
63
827
406
124
481
777
345
279
923
327
387
779
113
867
467
989
203
108
372
474
508
886
776
61
83
220
54
721
195
765
355
644
93
597
763
135
608
230
889
376
184
247
111
17
364
826
65
496
797
263
505
105
717
639
810
762
767
755
49
827
450
240
850
693
880
672
219
106
948
142
989
740
156
591
950
204
697
234
809
297
809
913
26
324
385
454
762
664
7
342
180
482
806
745
613
950
900
142
878
462
501
25
915
942
373
109
87
953
364
487
61
725
605
390
4
153
340
836
725
606
288
102
174
587
791
706
237
405
913
656
951
15
208
671
670
823
154
366
40
880
672
244
392
740
830
377
932
992
650
811
478
624
280
10
631
351
279
963
902
716
974
387
741
670
111
738
286
463
944
54
295
652
723
112
361
860
246
777
499
19
462
92
564
109
449
254
727
428
211
415
590
817
615
66
524
602
990
990
211
733
801
573
735
147
45
539
864
981
309
994
160
373
663
681
466
85
660
792
865
180
281
502
789
461
803
682
104
729
66
228
259
252
339
417
208
648
776
57
456
608
865
421
232
738
90
808
820
999
640
610
611
294
617
633
906
784
334
403
931
389
289
188
98
722
590
998
503
576
461
846
338
524
248
267
449
15
278
111
815
613
383
143
496
968
827
365
239
666
109
521
888
77
618
661
114
512
672
461
893
272
658
942
368
463
140
925
608
620
698
560
467
853
745
742
429
695
106
718
578
50
524
263
560
525
117
732
826
137
284
423
55
795
477
186
571
89
210
339
244
151
670
711
101
50
213
524
708
676
790
751
290
520
440
977
699
948
692
70
890
489
358
868
823
171
921
779
887
967
370
914
10
714
890
81
92
785
587
737
416
138
452
444
532
9
986
667
395
897
423
89
339
764
709
672
370
926
10
991
971
67
616
282
659
909
832
400
954
927
699
458
110
867
374
690
335
811
150
221
580
308
544
225
176
316
102
381
346
234
714
552
828
813
26
542
269
232
522
437
249
708
341
822
600
446
125
857
277
537
418
655
166
477
623
970
508
478
756
985
229
593
338
13
57
230
649
943
267
860
193
290
318
675
360
656
181
589
238
772
481
997
441
674
491
5
86
424
100
537
338
596
783
43
563
117
305
259
457
687
988
186
804
99
213
554
931
400
318
652
619
861
123
988
829
280
223
578
818
534
232
552
673
669
698
308
144
211
222
916
8
234
301
321
8
590
29
346
514
640
803
882
571
820
494
681
70
519
166
582
590
19
316
524
80
724
931
871
127
888
756
458
688
4
20
773
398
203
395
795
735
905
23
631
772
555
263
64
796
467
727
257
68
378
277
358
471
328
832
289
741
399
112
867
10
22
832
182
647
648
531
240
58
326
523
804
12
390
477
370
681
267
728
834
615
920
553
201
822
789
710
60
715
387
708
623
95
898
848
363
381
815
538
392
769
389
930
563
426
29
798
844
696
470
194
383
686
922
197
880
543
291
40
953
980
297
310
196
505
174
663
433
679
835
901
546
156
235
727
418
260
529
517
21
553
97
771
780
945
328
388
822
605
891
220
271
319
943
672
643
799
172
292
519
156
534
89
883
545
875
637
230
520
226
190
561
965
317
759
37
637
99
993
2
868
692
76
244
169
646
643
733
205
772
200
145
80
936
236
21
263
873
696
813
582
994
219
464
185
419
486
342
831
197
1
824
180
807
925
572
587
251
778
311
325
777
768
143
311
45
711
420
609
961
644
881
914
130
16
472
445
862
799
187
896
501
695
610
389
696
867
779
167
743
812
761
597
835
972
735
126
634
998
927
397
540
766
101
48
586
811
187
131
409
576
536
842
738
393
367
219
973
284
467
58
38
985
720
644
90
97
260
38
915
479
561
616
857
68
595
344
303
490
59
842
829
600
356
567
673
80
60
253
504
188
902
906
329
624
0
795
865
697
641
389
547
20
174
754
675
608
165
381
0
976
658
819
209
432
561
164
748
426
117
295
662
382
236
637
394
793
358
544
305
165
756
181
918
645
585
808
69
993
303
135
165
87
324
455
814
198
918
223
240
370
462
979
29
4
122
844
338
411
211
772
557
242
531
688
5
251
761
158
491
591
384
225
571
113
259
743
18
815
955
133
294
63
795
483
265
910
282
140
905
270
535
205
603
537
804
553
165
407
155
164
112
996
913
971
42
714
182
54
240
938
657
908
240
318
784
202
591
424
920
375
492
622
687
238
400
725
327
774
41
718
196
133
89
736
79
627
538
768
417
418
595
238
753
135
416
77
63
495
766
166
972
892
947
549
895
692
952
54
938
909
288
732
892
383
297
226
731
64
80
98
341
204
257
461
922
648
242
329
478
355
535
35
311
698
464
760
782
106
453
386
800
191
706
329
698
578
548
33
710
14
161
105
73
854
410
102
233
738
136
137
841
310
400
47
79
572
270
85
764
969
21
325
798
33
141
109
673
794
500
567
335
506
829
33
45
965
550
447
510
933
976
109
643
998
667
381
686
25
686
864
37
733
196
657
473
849
612
542
675
58
415
612
253
805
299
368
412
647
768
93
260
219
200
278
775
902
380
36
357
198
568
374
171
105
762
474
164
3
846
855
25
727
893
432
820
801
961
405
721
2
824
16
465
357
741
827
571
969
123
555
544
957
360
38
332
760
855
644
930
591
596
66
728
461
511
253
769
224
694
751
595
949
692
558
212
294
615
626
441
57
233
934
363
821
513
745
149
357
207
972
679
756
64
676
399
710
852
548
946
319
497
389
908
945
485
392
697
83
648
864
466
25
873
893
450
239
113
666
755
91
0
323
108
547
926
52
42
670
9
471
736
476
685
401
420
300
885
625
986
883
915
164
124
980
545
42
780
964
17
565
708
761
669
95
631
224
886
27
196
372
782
456
860
217
183
287
975
71
597
634
881
963
857
738
508
92
21
716
229
68
384
752
303
544
98
983
273
881
400
485
680
139
635
108
554
756
544
173
389
506
986
140
768
776
706
865
191
481
272
880
878
532
125
350
39
950
852
41
911
528
622
999
844
477
90
554
585
652
760
499
104
921
964
459
557
41
795
686
67
833
322
490
948
964
507
429
521
917
84
716
716
411
74
707
642
472
277
62
262
342
618
7
670
341
841
622
195
237
731
517
226
357
864
938
693
39
134
597
83
900
323
353
739
19
668
317
865
714
169
804
19
248
654
319
463
30
894
879
26
782
168
122
977
882
62
949
96
584
57
716
711
184
533
420
232
849
856
793
151
981
101
581
167
396
367
282
964
898
530
750
143
116
509
65
206
552
574
707
275
429
448
512
452
919
709
226
422
477
973
469
853
265
812
306
368
519
640
62
59
392
548
827
372
364
835
6
297
0
895
328
663
946
885
138
593
904
93
862
769
403
487
969
507
898
53
43
359
686
666
493
391
771
7
864
122
380
928
78
174
231
437
127
88
525
178
135
66
59
484
66
408
975
327
543
789
179
43
671
497
113
240
676
659
289
891
899
389
791
465
554
338
722
22
382
891
948
377
686
325
381
284
915
81
954
561
711
710
739
789
619
480
171
382
628
893
115
642
488
368
256
636
158
714
968
726
504
633
137
668
753
133
962
631
873
125
907
772
86
189
121
290
487
438
50
28
379
328
721
696
83
626
253
664
112
396
770
850
152
847
936
22
593
776
562
769
549
339
793
41
654
761
863
888
370
923
146
489
51
755
491
526
940
9
383
575
181
347
496
783
776
600
789
960
529
372
815
295
566
202
845
233
589
377
498
655
139
684
595
618
445
517
223
903
833
800
250
451
302
454
163
299
432
719
417
62
980
575
58
220
156
298
367
238
194
407
547
481
58
91
700
199
633
354
678
315
187
948
849
543
807
351
918
328
633
834
802
677
520
237
924
129
21
856
832
381
753
646
182
39
367
985
995
760
384
556
722
537
412
818
10
354
168
861
96
25
101
150
225
693
235
194
294
491
109
416
150
249
140
285
867
787
886
986
460
244
848
61
442
830
811
305
368
303
160
290
653
266
531
565
677
933
656
427
223
982
13
509
983
889
317
92
35
254
685
552
578
855
781
430
696
690
928
837
290
560
208
453
153
995
562
266
265
523
252
566
893
467
108
815
545
597
10
659
475
228
736
807
532
930
355
562
847
447
542
365
64
992
271
145
613
325
154
654
670
301
412
994
747
470
800
404
859
682
853
997
232
78
399
922
998
946
374
855
615
734
689
212
443
864
165
47
113
635
539
735
738
742
789
651
572
142
299
110
774
916
171
484
527
883
823
235
97
990
595
459
930
104
555
594
624
126
569
827
1
343
18
107
139
643
420
458
154
853
894
886
698
943
812
342
74
132
80
279
228
802
947
425
844
399
25
381
394
63
297
829
477
21
552
135
338
423
482
876
501
498
178
84
602
328
900
103
323
285
588
145
441
440
1
450
404
680
864
231
122
29
900
97
624
546
268
894
406
878
25
723
671
148
269
889
464
557
709
419
196
160
166
837
189
68
356
792
931
160
917
487
762
583
97
46
630
877
652
109
400
110
254
754
253
296
293
359
448
117
99
267
606
990
11
531
79
507
802
719
488
939
798
953
323
398
130
226
311
65
287
901
144
361
218
650
526
130
621
739
577
465
530
106
122
491
68
256
688
869
307
758
573
687
641
792
60
855
99
564
309
913
700
451
901
5
431
420
742
196
377
598
630
722
28
646
606
428
477
91
959
839
626
668
476
500
920
555
284
461
33
89
991
99
188
221
476
274
607
184
304
437
165
299
266
457
20
75
766
489
162
376
108
745
630
686
725
630
910
833
767
412
7
446
589
938
783
384
741
999
716
262
701
249
241
221
369
200
133
378
437
131
698
917
921
831
889
441
549
70
459
587
147
841
318
627
343
507
159
391
911
736
884
883
996
618
758
485
873
39
379
518
261
830
569
998
21
451
291
72
807
754
802
531
674
698
832
157
47
575
888
663
778
515
694
596
59
424
966
573
225
56
760
465
684
850
951
365
881
43
236
108
61
952
92
82
913
503
567
589
481
246
427
53
599
793
229
256
58
178
904
363
988
616
126
246
551
83
632
400
663
583
70
81
716
311
389
335
965
773
433
685
334
343
474
395
180
14
437
761
247
152
221
328
355
341
374
661
637
977
683
742
133
390
259
403
442
105
117
530
216
847
772
805
505
771
44
824
298
983
340
960
903
353
162
729
364
602
348
494
482
402
100
353
704
4
51
855
732
176
214
3
505
107
79
730
185
757
13
844
456
454
303
79
592
215
943
250
992
519
533
986
922
885
769
23
475
309
706
42
560
222
796
515
325
498
216
483
591
839
378
612
893
653
956
118
878
374
417
569
371
686
328
380
83
688
725
423
534
65
711
761
643
998
720
543
844
303
712
389
261
1
86
760
38
9
612
785
780
80
50
103
943
750
854
857
253
113
981
178
470
119
210
637
882
784
651
334
401
351
33
771
578
735
620
689
4
107
312
71
269
967
102
246
699
408
940
686
510
887
182
456
881
944
186
683
517
946
508
630
281
323
155
297
564
619
555
882
585
947
613
843
796
541
402
133
465
85
436
16
731
119
441
457
252
667
982
909
750
360
726
822
190
108
637
417
90
172
836
339
764
804
90
30
234
331
600
506
960
419
797
810
173
657
135
863
813
935
824
494
261
787
414
191
781
369
753
811
148
963
375
788
296
854
895
488
439
121
314
386
275
618
558
937
895
386
305
632
165
608
396
34
88
430
625
594
74
309
639
859
298
622
821
658
617
348
1
694
695
926
785
244
951
431
662
606
406
199
624
76
609
743
933
131
598
836
706
553
254
178
197
553
88
555
5
514
189
15
679
536
717
920
267
945
700
634
313
400
366
839
635
598
713
597
71
876
888
457
787
292
400
808
176
975
106
748
590
104
32
973
818
20
856
506
655
306
251
465
763
565
407
738
21
814
883
956
381
431
312
745
695
621
928
187
199
625
578
179
750
263
972
51
375
193
889
963
655
852
887
891
925
434
708
702
144
273
205
579
596
114
45
717
426
821
588
890
973
393
325
738
145
800
511
12
518
277
398
560
853
967
614
88
741
563
267
831
607
795
795
313
701
763
169
718
351
641
184
833
26
686
644
32
318
517
986
864
203
321
895
7
800
454
233
211
153
874
740
20
323
573
946
133
207
889
492
371
905
811
576
218
562
34
713
920
495
345
530
294
8
343
264
713
194
959
903
661
321
245
890
694
142
813
269
946
333
714
498
486
623
416
456
328
956
701
464
691
774
775
837
141
489
557
825
382
765
476
780
476
933
697
371
388
945
653
799
359
945
446
664
278
826
350
536
244
135
56
644
44
883
351
742
989
754
767
586
306
873
236
352
567
968
788
18
954
404
965
728
34
97
990
586
174
420
415
490
761
649
552
972
692
60
974
411
699
659
271
943
53
382
76
730
944
462
573
346
328
827
265
313
776
895
650
770
452
683
319
329
747
686
885
336
713
315
10
455
120
661
744
901
963
533
731
805
555
363
513
120
391
817
930
110
245
761
682
105
693
304
403
320
462
495
820
481
46
891
656
281
479
156
10
666
637
563
261
264
106
895
831
72
248
282
851
109
304
706
634
695
400
942
780
570
596
938
29
318
495
37
790
93
665
101
487
772
75
994
170
929
313
517
850
287
365
838
910
822
845
554
779
24
824
597
953
352
650
91
51
758
102
271
482
929
187
234
111
154
955
161
653
150
70
652
604
661
635
962
211
195
603
426
824
772
322
551
993
393
945
322
348
997
451
583
703
167
128
136
466
34
937
558
605
625
553
405
252
789
784
619
543
949
145
705
304
88
876
499
252
896
206
978
594
369
830
442
703
100
980
66
890
461
329
544
26
489
689
8
963
224
119
132
674
641
740
452
304
571
835
480
465
684
899
500
947
635
75
599
334
226
312
883
602
228
303
299
773
305
255
415
665
705
364
524
296
197
336
945
101
313
942
826
823
506
357
644
458
376
642
194
181
559
45
296
118
19
386
604
752
404
68
678
572
618
147
690
295
5
245
552
558
152
748
257
588
781
244
553
731
359
622
618
38
475
710
662
566
919
379
206
92
851
12
246
957
223
29
426
433
929
12
994
781
92
555
195
549
955
284
812
272
137
887
902
972
162
929
875
914
927
146
735
297
24
794
405
16
453
575
276
837
196
325
800
292
341
167
975
950
972
853
449
226
134
643
900
422
442
388
699
759
96
0
463
831
997
733
813
432
672
51
44
710
503
559
357
904
272
866
33
935
364
300
339
533
762
863
95
829
573
822
288
89
204
251
920
204
130
150
864
8
564
577
533
358
33
680
429
66
620
97
977
157
356
523
33
620
338
699
142
746
812
951
88
349
431
911
107
475
766
674
162
647
383
819
122
754
966
153
715
342
687
430
65
28
534
252
897
644
365
108
788
365
26
680
863
955
68
433
208
539
566
212
893
76
508
479
742
255
267
474
815
920
230
637
465
516
794
750
968
572
912
668
798
306
619
929
788
236
636
666
154
532
491
765
220
115
952
135
889
353
403
792
909
144
94
146
554
688
118
768
733
640
197
976
69
327
790
17
199
628
135
226
933
735
432
286
663
189
554
346
252
433
292
828
849
995
204
292
652
497
241
680
275
831
713
371
399
605
897
969
102
289
477
216
534
868
930
247
319
673
235
829
524
75
735
111
591
637
886
711
922
318
629
797
434
675
989
203
176
328
318
823
770
421
251
802
938
890
493
173
394
914
489
262
12
274
216
278
803
592
546
656
25
882
839
347
615
662
706
840
886
535
472
513
871
882
352
880
607
975
25
898
977
996
39
146
219
517
892
528
477
721
371
192
300
482
820
37
837
31
629
822
614
240
820
210
615
685
375
879
197
414
663
356
540
273
276
298
263
291
887
768
76
466
566
863
51
850
347
256
218
490
239
751
574
819
478
854
411
685
75
545
358
987
199
470
786
226
702
535
811
977
346
215
224
960
907
133
887
50
827
752
891
327
385
51
93
838
802
20
129
514
475
436
556
712
695
338
595
119
604
802
617
640
523
808
665
306
452
829
403
55
138
4
598
232
896
884
361
704
412
629
399
967
464
198
738
790
251
166
78
332
527
941
502
878
492
9
86
907
488
806
453
127
190
373
723
656
674
650
184
117
649
563
659
354
770
620
435
765
704
728
267
741
222
542
213
937
513
402
556
599
983
241
513
631
188
134
322
12
896
144
862
741
350
608
77
230
708
193
843
467
622
720
887
106
14
399
222
373
223
144
800
129
434
801
335
340
953
479
588
970
47
303
990
547
637
686
517
530
918
834
963
820
318
379
983
815
780
839
272
210
784
321
570
661
593
84
581
611
730
659
854
348
906
70
697
11
674
872
666
74
805
290
289
357
392
206
859
86
237
638
140
493
136
990
787
412
887
14
806
544
139
981
194
844
428
692
367
682
319
883
631
894
622
226
94
67
947
103
603
43
579
280
348
804
746
262
212
532
522
389
757
300
860
781
692
210
348
486
472
660
398
489
987
523
251
185
386
847
153
896
608
979
735
959
523
997
51
335
731
148
919
450
731
984
847
71
223
142
955
398
623
576
684
126
739
328
890
778
496
131
965
581
374
244
673
499
700
986
964
92
81
593
326
50
14
250
793
391
937
210
823
811
122
94
435
1
933
247
719
708
761
86
644
766
961
774
693
738
497
533
373
534
712
212
230
604
148
595
582
1
799
727
896
842
986
769
425
434
636
205
504
495
132
583
619
992
783
504
294
456
444
509
56
140
774
3
499
336
638
304
319
549
379
759
580
788
857
114
464
192
791
556
85
128
38
851
584
690
72
217
160
428
959
653
491
391
122
234
757
41
169
902
790
997
493
720
796
379
575
985
604
460
934
783
368
296
792
531
66
630
721
688
651
225
648
391
468
7
696
380
188
882
55
859
985
22
595
326
189
228
772
902
677
915
0
774
273
209
876
220
985
922
571
68
294
247
740
986
934
747
631
629
691
780
461
73
35
988
879
623
31
918
270
757
768
3
671
657
959
177
434
827
354
587
635
211
833
398
761
732
170
127
52
291
368
107
700
351
752
335
834
454
154
872
767
334
446
555
830
661
428
180
751
529
603
242
320
310
349
268
840
256
955
534
409
423
799
102
514
421
718
83
506
623
977
490
400
908
197
229
25
425
726
777
477
414
326
42
796
745
854
864
129
655
136
939
361
339
470
918
319
580
769
990
188
9
815
460
96
446
933
968
404
421
762
519
635
642
28
811
110
482
102
797
868
934
375
712
627
876
266
40
545
495
30
352
433
413
413
365
280
322
719
650
264
210
517
863
325
77
791
275
562
854
211
606
19
862
53
175
619
224
252
415
669
526
132
310
786
926
708
899
109
774
151
544
370
62
960
954
628
4
52
306
963
146
803
664
774
999
235
334
654
617
692
123
7
64
580
833
841
458
46
512
221
204
111
443
171
376
991
178
740
165
636
257
319
347
83
641
691
177
495
875
540
676
923
431
700
891
263
393
105
217
934
358
125
416
469
131
654
897
143
439
165
632
630
907
677
614
80
451
446
463
214
792
874
258
810
25
255
990
522
507
993
212
827
890
6
695
695
872
510
803
305
35
898
277
174
834
87
124
758
385
868
971
451
226
543
330
788
506
827
345
282
331
197
477
906
603
240
132
32
335
789
797
250
604
420
819
431
269
460
277
475
682
116
407
298
674
650
727
582
469
966
938
61
834
87
451
127
32
427
614
533
345
512
607
366
171
925
219
256
405
912
673
104
348
50
253
746
868
903
134
641
822
581
663
978
234
294
617
290
708
678
26
234
99
86
162
548
247
707
924
891
720
924
744
888
188
768
925
412
715
115
948
621
328
49
178
975
833
365
586
965
719
733
444
840
307
760
816
771
522
289
385
766
782
907
567
51
990
253
854
391
852
891
652
625
377
155
851
944
191
911
113
126
782
433
157
556
97
239
323
746
48
158
703
784
849
385
299
817
722
799
408
674
868
871
736
246
985
829
410
663
119
700
320
393
131
843
966
884
63
713
788
748
792
893
847
782
464
933
530
788
323
109
374
434
739
431
76
859
602
430
755
288
933
786
567
510
692
291
74
632
138
767
509
287
255
179
648
857
131
438
950
587
538
594
479
51
816
930
238
321
992
614
642
487
329
718
653
653
327
797
435
251
891
357
452
61
164
279
808
576
696
143
108
217
997
717
650
925
808
549
934
22
679
890
275
78
726
869
623
838
652
67
64
484
590
357
892
965
442
975
909
909
468
96
600
998
474
650
204
840
396
806
349
899
872
663
910
870
10
542
242
851
403
666
241
403
327
392
300
501
537
349
759
870
84
1
212
783
806
174
588
426
955
594
891
82
508
672
120
417
712
626
48
372
162
339
954
921
557
58
812
302
717
295
236
527
747
1
358
458
512
102
922
438
309
644
983
255
408
276
490
292
894
509
665
44
356
30
312
24
167
424
218
272
994
723
35
781
672
452
262
995
43
201
248
670
818
124
492
811
867
124
831
829
402
84
911
183
873
20
476
475
208
435
665
817
776
956
640
109
722
852
89
543
332
926
124
741
991
492
440
518
442
719
425
880
397
963
462
641
751
804
928
35
349
638
336
762
760
621
945
133
1
886
460
266
971
840
812
224
977
437
302
62
434
231
149
391
872
603
245
270
50
818
428
285
467
412
395
330
391
634
325
494
170
660
143
511
849
454
671
420
527
883
812
537
160
199
893
530
190
103
163
117
892
912
168
667
796
703
335
834
664
33
725
20
15
416
172
164
357
298
37
130
664
633
465
838
294
717
746
743
220
572
884
679
931
843
794
641
154
148
75
16
790
216
741
873
878
166
786
259
789
628
710
224
424
658
665
161
845
547
294
63
469
591
227
437
597
676
342
698
928
8
224
502
804
537
464
826
660
248
583
408
775
304
185
682
520
169
798
40
562
876
753
207
676
215
995
871
568
169
990
840
522
335
346
479
215
515
858
230
967
546
527
942
797
939
160
963
658
251
439
524
264
972
277
540
635
407
784
583
686
239
160
245
419
331
25
22
988
243
367
458
455
116
986
505
268
416
640
420
354
739
111
384
616
878
542
567
480
897
862
780
629
866
185
887
966
898
588
161
738
65
222
646
391
100
521
252
535
787
232
497
881
667
823
577
331
602
741
899
879
522
49
813
239
886
347
208
294
320
87
715
929
212
94
533
903
812
921
583
709
295
372
67
361
108
447
455
49
121
919
872
277
367
430
44
81
399
24
120
357
826
101
644
283
26
232
982
355
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment