-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquery.js
More file actions
669 lines (622 loc) · 93.1 KB
/
Copy pathquery.js
File metadata and controls
669 lines (622 loc) · 93.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
// Query grammar object
const QueryGrammar = {
"flag": "i",
"terminals": [
"FROM",
"LET",
"=",
"WHERE",
"OR",
"AND",
"NOT",
"\\+",
"-",
"&",
"\\*",
"/",
"%",
"\\.",
"\\(",
"\\)",
"pattern",
"length",
"sum",
"reverse",
"min",
"max",
"omission",
"standard",
"jugglable",
"valid",
"balls",
"period",
"state",
"int10",
"int36",
"at",
"rotate",
"skip",
"take",
"every",
"some",
"=>",
",",
"==",
"!=",
"<>",
"<",
"<=",
">",
">=",
"IN",
"SELECT",
"DISTINCT",
"ORDER",
"BY",
"ASC",
"DESC",
"LIMIT",
"\"(\\\\\"|[^\"])*\"",
"\\$[0-9]*",
"\\$[a-z_][a-z_0-9]*",
"[0-9]+",
],
"dummies": [
"\\s+",
"--[^\\n]*(\\n|$)",
"/\\*((?!\\*/)[\\s\\S])*\\*/",
],
"rules": [
"#0#=1",
"Query=6",
"#1#=2",
"#1#=0",
"#2#=1",
"#2#=0",
"#3#=1",
"#3#=0",
"#4#=1",
"#4#=0",
"#5#=1",
"#5#=0",
"From=2",
"String=1",
"Let=4",
"Where=2",
"Condition=2",
"#6#=3",
"#6#=0",
"Part=2",
"#7#=3",
"#7#=0",
"Unit=2",
"#8#=1",
"#8#=0",
"Expression=2",
"#10#=1",
"#10#=0",
"#9#=2",
"#9#=1",
"Term=2",
"#12#=3",
"#12#=0",
"#11#=1",
"#11#=1",
"#11#=1",
"Factor=2",
"#14#=3",
"#14#=0",
"#13#=1",
"#13#=1",
"#13#=1",
"Value=2",
"#16#=3",
"#16#=0",
"#15#=1",
"#15#=1",
"#15#=1",
"Element=1",
"#17#=1",
"#17#=1",
"#17#=1",
"#17#=3",
"Auto=1",
"User=1",
"Literal=1",
"#18#=1",
"#18#=1",
"Integer=1",
"Property=1",
"#19#=1",
"#19#=1",
"#19#=1",
"#19#=1",
"#19#=1",
"#19#=1",
"#19#=1",
"#19#=1",
"#19#=1",
"#19#=1",
"#19#=1",
"#19#=1",
"#19#=1",
"#19#=1",
"#19#=1",
"Method=4",
"#20#=1",
"#20#=1",
"#20#=1",
"#20#=1",
"Parameter=1",
"#21#=1",
"#21#=2",
"Iterator=4",
"#22#=1",
"#22#=1",
"Lambda=4",
"#23#=2",
"#23#=0",
"Compare=1",
"#24#=1",
"#24#=1",
"#24#=1",
"#24#=1",
"#24#=1",
"#24#=1",
"#24#=1",
"Clause=5",
"#25#=1",
"#25#=0",
"List=2",
"#26#=3",
"#26#=0",
"Select=3",
"#27#=1",
"#27#=0",
"View=1",
"#28#=2",
"#28#=1",
"Order=3",
"Multiple=2",
"#29#=3",
"#29#=0",
"Single=2",
"#31#=1",
"#31#=0",
"#30#=1",
"#30#=1",
"Limit=2",
],
"table": [
[ "s150", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g1", "", "", "", "", "", "g2", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r0", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r3", "", "r3", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r3", "", "r3", "", "", "", "r3", "", "", "", "", "r3", "", "g3", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "s146", "", "s143", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r5", "", "r5", "", "", "", "r5", "", "", "", "", "r5", "", "", "g4", "", "", "", "", "", "g145", "g142", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s135", "", "r7", "", "", "", "r7", "", "", "", "", "r7", "", "", "", "g5", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g134", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s122", "", "", "", "r9", "", "", "", "", "r9", "", "", "", "", "g6", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g121", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s9", "", "", "", "", "r11", "", "", "", "", "", "g7", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g8" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r1", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r10", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s58", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s55", "s49", "s51", "s57", "", "", "", "", "", "", "", "", "g54", "", "", "", "", "", "", "", "", "", "", "", "g10", "", "", "g11", "", "", "g15", "", "", "g19", "g47", "g48", "g50", "g52", "g53", "g56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r118", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r32", "", "r32", "r32", "r32", "r32", "r32", "r32", "r32", "", "", "", "", "r32", "r32", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r32", "r32", "r32", "r32", "r32", "r32", "r32", "r32", "r32", "", "r32", "", "", "", "r32", "r32", "r32", "r32", "r32", "r32", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g12", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r30", "", "r30", "r30", "r30", "r30", "s118", "s119", "s120", "", "", "", "", "r30", "r30", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r30", "r30", "r30", "r30", "r30", "r30", "r30", "r30", "r30", "", "r30", "", "", "", "r30", "r30", "r30", "r30", "r30", "r30", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g13", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s58", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s55", "s49", "s51", "s57", "", "", "", "", "", "", "", "", "g54", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g14", "", "", "g15", "", "", "g19", "g47", "g48", "g50", "g52", "g53", "g56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r31", "", "r31", "r31", "r31", "r31", "r31", "r31", "r31", "", "", "", "", "r31", "r31", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r31", "r31", "r31", "r31", "r31", "r31", "r31", "r31", "r31", "", "r31", "", "", "", "r31", "r31", "r31", "r31", "r31", "r31", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r38", "", "r38", "r38", "r38", "r38", "r38", "r38", "r38", "r38", "r38", "r38", "", "r38", "r38", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r38", "r38", "r38", "r38", "r38", "r38", "r38", "r38", "r38", "", "r38", "", "", "", "r38", "r38", "r38", "r38", "r38", "r38", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g16", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r36", "", "r36", "r36", "r36", "r36", "r36", "r36", "r36", "s115", "s116", "s117", "", "r36", "r36", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r36", "r36", "r36", "r36", "r36", "r36", "r36", "r36", "r36", "", "r36", "", "", "", "r36", "r36", "r36", "r36", "r36", "r36", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g17", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s58", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s55", "s49", "s51", "s57", "", "", "", "", "", "", "", "", "g54", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g18", "", "", "g19", "g47", "g48", "g50", "g52", "g53", "g56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r37", "", "r37", "r37", "r37", "r37", "r37", "r37", "r37", "r37", "r37", "r37", "", "r37", "r37", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r37", "r37", "r37", "r37", "r37", "r37", "r37", "r37", "r37", "", "r37", "", "", "", "r37", "r37", "r37", "r37", "r37", "r37", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r44", "", "r44", "r44", "r44", "r44", "r44", "r44", "r44", "r44", "r44", "r44", "r44", "r44", "r44", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r44", "r44", "r44", "r44", "r44", "r44", "r44", "r44", "r44", "r44", "", "r44", "", "r44", "r44", "r44", "r44", "r44", "r44", "r44", "r44", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g20", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r42", "", "r42", "r42", "r42", "r42", "r42", "r42", "r42", "r42", "r42", "r42", "s21", "r42", "r42", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r42", "r42", "r42", "r42", "r42", "r42", "r42", "r42", "r42", "r42", "", "r42", "", "r42", "r42", "r42", "r42", "r42", "r42", "r42", "r42", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s25", "s26", "s27", "s28", "s29", "s30", "s31", "s32", "s33", "s34", "s35", "s36", "s37", "s38", "s39", "s98", "s99", "s100", "s101", "s113", "s114", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g22", "", "", "", "", "", "", "", "g23", "g24", "g40", "g41", "", "", "g102", "g103", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r43", "", "r43", "r43", "r43", "r43", "r43", "r43", "r43", "r43", "r43", "r43", "r43", "r43", "r43", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r43", "r43", "r43", "r43", "r43", "r43", "r43", "r43", "r43", "r43", "", "r43", "", "r43", "r43", "r43", "r43", "r43", "r43", "r43", "r43", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r45", "", "r45", "r45", "r45", "r45", "r45", "r45", "r45", "r45", "r45", "r45", "r45", "r45", "r45", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r45", "r45", "r45", "r45", "r45", "r45", "r45", "r45", "r45", "r45", "", "r45", "", "r45", "r45", "r45", "r45", "r45", "r45", "r45", "r45", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r59", "", "r59", "r59", "r59", "r59", "r59", "r59", "r59", "r59", "r59", "r59", "r59", "r59", "r59", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r59", "r59", "r59", "r59", "r59", "r59", "r59", "r59", "r59", "r59", "", "r59", "", "r59", "r59", "r59", "r59", "r59", "r59", "r59", "r59", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r60", "", "r60", "r60", "r60", "r60", "r60", "r60", "r60", "r60", "r60", "r60", "r60", "r60", "r60", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r60", "r60", "r60", "r60", "r60", "r60", "r60", "r60", "r60", "r60", "", "r60", "", "r60", "r60", "r60", "r60", "r60", "r60", "r60", "r60", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r61", "", "r61", "r61", "r61", "r61", "r61", "r61", "r61", "r61", "r61", "r61", "r61", "r61", "r61", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r61", "r61", "r61", "r61", "r61", "r61", "r61", "r61", "r61", "r61", "", "r61", "", "r61", "r61", "r61", "r61", "r61", "r61", "r61", "r61", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r62", "", "r62", "r62", "r62", "r62", "r62", "r62", "r62", "r62", "r62", "r62", "r62", "r62", "r62", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r62", "r62", "r62", "r62", "r62", "r62", "r62", "r62", "r62", "r62", "", "r62", "", "r62", "r62", "r62", "r62", "r62", "r62", "r62", "r62", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r63", "", "r63", "r63", "r63", "r63", "r63", "r63", "r63", "r63", "r63", "r63", "r63", "r63", "r63", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r63", "r63", "r63", "r63", "r63", "r63", "r63", "r63", "r63", "r63", "", "r63", "", "r63", "r63", "r63", "r63", "r63", "r63", "r63", "r63", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r64", "", "r64", "r64", "r64", "r64", "r64", "r64", "r64", "r64", "r64", "r64", "r64", "r64", "r64", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r64", "r64", "r64", "r64", "r64", "r64", "r64", "r64", "r64", "r64", "", "r64", "", "r64", "r64", "r64", "r64", "r64", "r64", "r64", "r64", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r65", "", "r65", "r65", "r65", "r65", "r65", "r65", "r65", "r65", "r65", "r65", "r65", "r65", "r65", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r65", "r65", "r65", "r65", "r65", "r65", "r65", "r65", "r65", "r65", "", "r65", "", "r65", "r65", "r65", "r65", "r65", "r65", "r65", "r65", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r66", "", "r66", "r66", "r66", "r66", "r66", "r66", "r66", "r66", "r66", "r66", "r66", "r66", "r66", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r66", "r66", "r66", "r66", "r66", "r66", "r66", "r66", "r66", "r66", "", "r66", "", "r66", "r66", "r66", "r66", "r66", "r66", "r66", "r66", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r67", "", "r67", "r67", "r67", "r67", "r67", "r67", "r67", "r67", "r67", "r67", "r67", "r67", "r67", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r67", "r67", "r67", "r67", "r67", "r67", "r67", "r67", "r67", "r67", "", "r67", "", "r67", "r67", "r67", "r67", "r67", "r67", "r67", "r67", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r68", "", "r68", "r68", "r68", "r68", "r68", "r68", "r68", "r68", "r68", "r68", "r68", "r68", "r68", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r68", "r68", "r68", "r68", "r68", "r68", "r68", "r68", "r68", "r68", "", "r68", "", "r68", "r68", "r68", "r68", "r68", "r68", "r68", "r68", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r69", "", "r69", "r69", "r69", "r69", "r69", "r69", "r69", "r69", "r69", "r69", "r69", "r69", "r69", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r69", "r69", "r69", "r69", "r69", "r69", "r69", "r69", "r69", "r69", "", "r69", "", "r69", "r69", "r69", "r69", "r69", "r69", "r69", "r69", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r70", "", "r70", "r70", "r70", "r70", "r70", "r70", "r70", "r70", "r70", "r70", "r70", "r70", "r70", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r70", "r70", "r70", "r70", "r70", "r70", "r70", "r70", "r70", "r70", "", "r70", "", "r70", "r70", "r70", "r70", "r70", "r70", "r70", "r70", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r71", "", "r71", "r71", "r71", "r71", "r71", "r71", "r71", "r71", "r71", "r71", "r71", "r71", "r71", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r71", "r71", "r71", "r71", "r71", "r71", "r71", "r71", "r71", "r71", "", "r71", "", "r71", "r71", "r71", "r71", "r71", "r71", "r71", "r71", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r72", "", "r72", "r72", "r72", "r72", "r72", "r72", "r72", "r72", "r72", "r72", "r72", "r72", "r72", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r72", "r72", "r72", "r72", "r72", "r72", "r72", "r72", "r72", "r72", "", "r72", "", "r72", "r72", "r72", "r72", "r72", "r72", "r72", "r72", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r73", "", "r73", "r73", "r73", "r73", "r73", "r73", "r73", "r73", "r73", "r73", "r73", "r73", "r73", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r73", "r73", "r73", "r73", "r73", "r73", "r73", "r73", "r73", "r73", "", "r73", "", "r73", "r73", "r73", "r73", "r73", "r73", "r73", "r73", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r74", "", "r74", "r74", "r74", "r74", "r74", "r74", "r74", "r74", "r74", "r74", "r74", "r74", "r74", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r74", "r74", "r74", "r74", "r74", "r74", "r74", "r74", "r74", "r74", "", "r74", "", "r74", "r74", "r74", "r74", "r74", "r74", "r74", "r74", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r46", "", "r46", "r46", "r46", "r46", "r46", "r46", "r46", "r46", "r46", "r46", "r46", "r46", "r46", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r46", "r46", "r46", "r46", "r46", "r46", "r46", "r46", "r46", "r46", "", "r46", "", "r46", "r46", "r46", "r46", "r46", "r46", "r46", "r46", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s42", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "s96", "", "", "", "", "", "s58", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s55", "s49", "s51", "s57", "", "", "", "", "", "", "", "", "g54", "", "", "", "", "", "", "", "", "", "", "", "g46", "", "", "g11", "", "", "g15", "", "", "g19", "g47", "g48", "g50", "g52", "g53", "g56", "", "", "", "", "g43", "g45", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s44", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r75", "", "r75", "r75", "r75", "r75", "r75", "r75", "r75", "r75", "r75", "r75", "r75", "r75", "r75", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r75", "r75", "r75", "r75", "r75", "r75", "r75", "r75", "r75", "r75", "", "r75", "", "r75", "r75", "r75", "r75", "r75", "r75", "r75", "r75", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r80", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r81", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r48", "", "r48", "r48", "r48", "r48", "r48", "r48", "r48", "r48", "r48", "r48", "r48", "r48", "r48", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r48", "r48", "r48", "r48", "r48", "r48", "r48", "r48", "r48", "r48", "", "r48", "", "r48", "r48", "r48", "r48", "r48", "r48", "r48", "r48", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r49", "", "r49", "r49", "r49", "r49", "r49", "r49", "r49", "r49", "r49", "r49", "r49", "r49", "r49", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r49", "r49", "r49", "r49", "r49", "r49", "r49", "r49", "r49", "r49", "", "r49", "", "r49", "r49", "r49", "r49", "r49", "r49", "r49", "r49", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r53", "", "r53", "r53", "r53", "r53", "r53", "r53", "r53", "r53", "r53", "r53", "r53", "r53", "r53", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r53", "r53", "r53", "r53", "r53", "r53", "r53", "r53", "r53", "r53", "", "r53", "", "r53", "r53", "r53", "r53", "r53", "r53", "r53", "r53", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r50", "", "r50", "r50", "r50", "r50", "r50", "r50", "r50", "r50", "r50", "r50", "r50", "r50", "r50", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r50", "r50", "r50", "r50", "r50", "r50", "r50", "r50", "r50", "r50", "", "r50", "", "r50", "r50", "r50", "r50", "r50", "r50", "r50", "r50", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "", "r54", "", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "r54", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r51", "", "r51", "r51", "r51", "r51", "r51", "r51", "r51", "r51", "r51", "r51", "r51", "r51", "r51", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r51", "r51", "r51", "r51", "r51", "r51", "r51", "r51", "r51", "r51", "", "r51", "", "r51", "r51", "r51", "r51", "r51", "r51", "r51", "r51", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r55", "", "r55", "r55", "r55", "r55", "r55", "r55", "r55", "r55", "r55", "r55", "r55", "r55", "r55", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r55", "r55", "r55", "r55", "r55", "r55", "r55", "r55", "r55", "r55", "", "r55", "", "r55", "r55", "r55", "r55", "r55", "r55", "r55", "r55", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r56", "", "r56", "r56", "r56", "r56", "r56", "r56", "r56", "r56", "r56", "r56", "r56", "r56", "r56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r56", "r56", "r56", "r56", "r56", "r56", "r56", "r56", "r56", "r56", "", "r56", "", "r56", "r56", "r56", "r56", "r56", "r56", "r56", "r56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r13", "", "r13", "r13", "r13", "r13", "r13", "r13", "r13", "r13", "r13", "r13", "r13", "r13", "r13", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r13", "r13", "r13", "r13", "r13", "r13", "r13", "r13", "r13", "r13", "", "r13", "", "r13", "r13", "r13", "r13", "r13", "r13", "r13", "r13", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r57", "", "r57", "r57", "r57", "r57", "r57", "r57", "r57", "r57", "r57", "r57", "r57", "r57", "r57", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r57", "r57", "r57", "r57", "r57", "r57", "r57", "r57", "r57", "r57", "", "r57", "", "r57", "r57", "r57", "r57", "r57", "r57", "r57", "r57", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r58", "", "r58", "r58", "r58", "r58", "r58", "r58", "r58", "r58", "r58", "r58", "r58", "r58", "r58", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r58", "r58", "r58", "r58", "r58", "r58", "r58", "r58", "r58", "r58", "", "r58", "", "r58", "r58", "r58", "r58", "r58", "r58", "r58", "r58", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "s95", "", "", "", "", "", "", "", "r24", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r24", "r24", "r24", "r24", "", "", "", "", "", "", "", "", "", "", "", "g59", "", "g61", "", "g65", "g69", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s60", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r52", "", "r52", "r52", "r52", "r52", "r52", "r52", "r52", "r52", "r52", "r52", "r52", "r52", "r52", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r52", "r52", "r52", "r52", "r52", "r52", "r52", "r52", "r52", "r52", "", "r52", "", "r52", "r52", "r52", "r52", "r52", "r52", "r52", "r52", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "r18", "", "", "", "", "", "", "", "", "", "", "r18", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r18", "", "r18", "", "", "", "r18", "", "", "", "", "r18", "", "", "", "", "", "", "", "", "", "", "", "g62", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "s63", "", "", "", "", "", "", "", "", "", "", "r16", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r16", "", "r16", "", "", "", "r16", "", "", "", "", "r16", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "s95", "", "", "", "", "", "", "", "r24", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r24", "r24", "r24", "r24", "", "", "", "", "", "", "", "", "", "", "", "", "", "g64", "", "g65", "g69", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "r17", "", "", "", "", "", "", "", "", "", "", "r17", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r17", "", "r17", "", "", "", "r17", "", "", "", "", "r17", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "r21", "r21", "", "", "", "", "", "", "", "", "", "r21", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r21", "", "r21", "", "", "", "r21", "", "", "", "", "r21", "", "", "", "", "", "", "", "", "", "", "", "", "", "g66", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "r19", "s67", "", "", "", "", "", "", "", "", "", "r19", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r19", "", "r19", "", "", "", "r19", "", "", "", "", "r19", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "s95", "", "", "", "", "", "", "", "r24", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r24", "r24", "r24", "r24", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g68", "g69", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "r20", "r20", "", "", "", "", "", "", "", "", "", "r20", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r20", "", "r20", "", "", "", "r20", "", "", "", "", "r20", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s58", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s55", "s49", "s51", "s57", "", "", "", "", "", "", "", "", "g54", "", "", "", "", "", "", "", "", "g70", "", "", "g71", "", "", "g11", "", "", "g15", "", "", "g19", "g47", "g48", "g50", "g52", "g53", "g56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "r22", "r22", "", "", "", "", "", "", "", "", "", "r22", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r22", "", "r22", "", "", "", "r22", "", "", "", "", "r22", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "r27", "r27", "s94", "", "", "", "", "", "", "", "", "r27", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s77", "s78", "s79", "s80", "s81", "s82", "s83", "r99", "r27", "", "r27", "", "", "", "r27", "", "", "", "", "r27", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g72", "g73", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g74", "g76", "g84", "g85", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "r25", "r25", "", "", "", "", "", "", "", "", "", "r25", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r25", "", "r25", "", "", "", "r25", "", "", "", "", "r25", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "r26", "r26", "", "", "", "", "", "", "", "", "", "r26", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r26", "", "r26", "", "", "", "r26", "", "", "", "", "r26", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s58", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s55", "s49", "s51", "s57", "", "", "", "", "", "", "", "", "g54", "", "", "", "", "", "", "", "", "", "", "", "g75", "", "", "g11", "", "", "g15", "", "", "g19", "g47", "g48", "g50", "g52", "g53", "g56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "r28", "r28", "", "", "", "", "", "", "", "", "", "r28", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r28", "", "r28", "", "", "", "r28", "", "", "", "", "r28", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r89", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r89", "r89", "r89", "r89", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r90", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r90", "r90", "r90", "r90", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r91", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r91", "r91", "r91", "r91", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r92", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r92", "r92", "r92", "r92", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r93", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r93", "r93", "r93", "r93", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r94", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r94", "r94", "r94", "r94", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r95", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r95", "r95", "r95", "r95", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r96", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r96", "r96", "r96", "r96", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "r29", "r29", "", "", "", "", "", "", "", "", "", "r29", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r29", "", "r29", "", "", "", "r29", "", "", "", "", "r29", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s86", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s87", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s55", "", "", "s57", "", "", "", "", "", "", "", "", "g54", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g90", "g53", "g56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g88", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s89", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "r97", "r97", "", "", "", "", "", "", "", "", "", "r97", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r97", "", "r97", "", "", "", "r97", "", "", "", "", "r97", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r102", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r102", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g91", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r100", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s92", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s55", "", "", "s57", "", "", "", "", "", "", "", "", "g54", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g93", "g53", "g56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r101", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r101", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r98", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r23", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r23", "r23", "r23", "r23", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s58", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s55", "s49", "s51", "s57", "", "", "", "", "", "", "", "", "g54", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g97", "", "", "g19", "g47", "g48", "g50", "g52", "g53", "g56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r82", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r76", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r77", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r78", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r79", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r47", "", "r47", "r47", "r47", "r47", "r47", "r47", "r47", "r47", "r47", "r47", "r47", "r47", "r47", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r47", "r47", "r47", "r47", "r47", "r47", "r47", "r47", "r47", "r47", "", "r47", "", "r47", "r47", "r47", "r47", "r47", "r47", "r47", "r47", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s104", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s51", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g107", "", "", "", "", "", "", "", "", "", "", "", "g105", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s106", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r83", "", "r83", "r83", "r83", "r83", "r83", "r83", "r83", "r83", "r83", "r83", "r83", "r83", "r83", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r83", "r83", "r83", "r83", "r83", "r83", "r83", "r83", "r83", "r83", "", "r83", "", "r83", "r83", "r83", "r83", "r83", "r83", "r83", "r83", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r88", "s111", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g108", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s109", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "s95", "", "", "", "", "", "", "", "r24", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r24", "r24", "r24", "r24", "", "", "", "", "", "", "", "", "", "", "", "g110", "", "g61", "", "g65", "g69", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r86", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s51", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g112", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r87", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r84", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r85", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r39", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r39", "r39", "r39", "r39", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r40", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r40", "r40", "r40", "r40", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r41", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r41", "r41", "r41", "r41", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r33", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r33", "r33", "r33", "r33", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r34", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r34", "r34", "r34", "r34", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r35", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r35", "r35", "r35", "r35", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r8", "", "", "", "", "r8", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s123", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s58", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s55", "s49", "s51", "s57", "", "", "", "", "", "", "", "", "g54", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g129", "", "", "g19", "g47", "g48", "g50", "g52", "g53", "g56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g124", "", "g125", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r109", "", "", "", "", "r109", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r112", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r112", "", "", "", "", "r112", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g126", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s127", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r110", "", "", "", "", "r110", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s58", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s55", "s49", "s51", "s57", "", "", "", "", "", "", "", "", "g54", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g129", "", "", "g19", "g47", "g48", "g50", "g52", "g53", "g56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g128", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r111", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r111", "", "", "", "", "r111", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r115", "", "", "", "", "", "", "", "", "", "", "", "", "s132", "s133", "r115", "", "", "", "", "r115", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g130", "g131", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r113", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r113", "", "", "", "", "r113", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r114", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r114", "", "", "", "", "r114", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r116", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r116", "", "", "", "", "r116", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r117", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r117", "", "", "", "", "r117", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r6", "", "", "", "r6", "", "", "", "", "r6", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r105", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s141", "", "", "", "", "", "r105", "r105", "r105", "r105", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g136", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s58", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s55", "s49", "s51", "s57", "", "", "", "", "", "", "", "", "g54", "", "", "", "", "", "", "", "", "", "", "", "g140", "", "", "g11", "", "", "g15", "", "", "g19", "g47", "g48", "g50", "g52", "g53", "g56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g137", "g138", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r103", "", "", "", "r103", "", "", "", "", "r103", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s58", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r106", "", "", "", "r106", "s55", "s49", "s51", "s57", "r106", "", "", "", "", "", "", "", "g54", "", "", "", "", "", "", "", "", "", "", "", "g139", "", "", "g11", "", "", "g15", "", "", "g19", "g47", "g48", "g50", "g52", "g53", "g56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r107", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r107", "", "", "", "r107", "r107", "r107", "r107", "r107", "r107", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r108", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r108", "", "", "", "r108", "r108", "r108", "r108", "r108", "r108", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r104", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r104", "r104", "r104", "r104", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r4", "", "r4", "", "", "", "r4", "", "", "", "", "r4", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "s95", "", "", "", "", "", "", "", "r24", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r24", "r24", "r24", "r24", "", "", "", "", "", "", "", "", "", "", "", "g144", "", "g61", "", "g65", "g69", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r15", "", "r15", "", "", "", "r15", "", "", "", "", "r15", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r2", "", "r2", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r2", "", "r2", "", "", "", "r2", "", "", "", "", "r2", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s51", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "g147", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "s148", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s58", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s55", "s49", "s51", "s57", "", "", "", "", "", "", "", "", "g54", "", "", "", "", "", "", "", "", "", "", "", "g149", "", "", "g11", "", "", "g15", "", "", "g19", "g47", "g48", "g50", "g52", "g53", "g56", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r14", "", "r14", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r14", "", "r14", "", "", "", "r14", "", "", "", "", "r14", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "s55", "", "", "", "", "", "", "", "", "", "", "", "g151", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
[ "", "r12", "", "r12", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "r12", "", "r12", "", "", "", "r12", "", "", "", "", "r12", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
],
}
// Query syntax converter
const QueryConverter = {
// Query ::= From Let* Where? Select? Order? Limit? ;
"Query": function(tree) {
// FROM
const query = { "from": tree.children[0].value };
let index = 1;
// LET
query.lets = [];
while (index < tree.children.length && tree.children[index].label == "Let") {
query.lets.push(tree.children[index].value);
index++;
}
// WHERE
if (index < tree.children.length && tree.children[index].label == "Where") {
query.where = tree.children[index].value;
index++;
} else {
query.where = new SyntaxWhere();
}
// SELECT
if (index < tree.children.length && tree.children[index].label == "Select") {
query.select = tree.children[index].value;
index++;
} else {
query.select = new SyntaxSelect();
}
// ORDER BY
if (index < tree.children.length && tree.children[index].label == "Order") {
query.order = tree.children[index].value;
index++;
} else {
query.order = new SyntaxOrder();
}
// LIMIT
if (index < tree.children.length && tree.children[index].label == "Limit") {
query.limit = tree.children[index].value;
index++;
} else {
query.limit = new SyntaxLiteral(0);
}
tree.value = query;
},
// From ::= 'FROM' String ;
"From": function(tree) {
tree.value = tree.children[1].value;
},
// String ::= """(\\""|[^""])*""" ;
"String": function(tree) {
const text = tree.children[0].text.replace("\\\"", "\"");
tree.value = text.substring(1, text.length - 1);
},
// Let ::= 'LET' User '=' Term ;
"Let": function(tree) {
tree.value = { "name": tree.children[1].value, "term": tree.children[3].value };
},
// Where ::= 'WHERE' Condition ;
"Where": function(tree) {
const where = new SyntaxWhere();
where.condition = tree.children[1].value;
tree.value = where;
},
// Condition ::= Part ('OR' Part)* ;
"Condition": function(tree) {
const condition = new SyntaxCondition();
for (let i = 0; i < tree.children.length; i += 2) {
condition.list.push(tree.children[i].value);
}
tree.value = condition;
},
// Part ::= Unit ('AND' Unit)* ;
"Part": function(tree) {
const part = new SyntaxPart();
for (let i = 0; i < tree.children.length; i += 2) {
part.list.push(tree.children[i].value);
}
tree.value = part;
},
// Unit ::= 'NOT'? Expression ;
"Unit": function(tree) {
const unit = new SyntaxUnit();
if (1 < tree.children.length) {
// with NOT
unit.not = true;
unit.expression = tree.children[1].value;
} else {
// without NOT
unit.expression = tree.children[0].value;
}
tree.value = unit;
},
// Expression ::= Term (Compare Term | Clause)? ;
"Expression": function(tree) {
const expression = new SyntaxExpression(tree.children[0].value);
if (tree.children.length == 3) {
// Term Compare Term
expression.compare = tree.children[1].value;
expression.second = tree.children[2].value;
} else if (tree.children.length == 2) {
// Term Clause
expression.clause = tree.children[1].value;
}
tree.value = expression;
},
// Term ::= Factor (('+' | '-' | '&') Factor)* ;
"Term": function(tree) {
const term = new SyntaxTerm(tree.children[0].value);
for (let i = 2; i < tree.children.length; i += 2) {
term.add(tree.children[i - 1].text, tree.children[i].value);
}
tree.value = term;
},
// Factor ::= Value (('*' | '/' | '%') Value)* ;
"Factor": function(tree) {
const factor = new SyntaxFactor(tree.children[0].value);
for (let i = 2; i < tree.children.length; i += 2) {
factor.add(tree.children[i - 1].text, tree.children[i].value);
}
tree.value = factor;
},
// Value ::= Element ('.' (Property | Method | Iterator))* ;
"Value": function(tree) {
const value = new SyntaxValue(tree.children[0].value);
for (let i = 2; i < tree.children.length; i += 2) {
value.follows.push(tree.children[i].value);
}
tree.value = value;
},
// Element ::= Auto | User | Literal | '(' Condition ')' ;
"Element": function(tree) {
if (tree.children.length == 1) {
const child = tree.children[0];
switch (child.label) {
case "Auto":
// Auto
tree.value = new SyntaxAuto(child.value);
break;
case "User":
// User
tree.value = new SyntaxUser(child.value);
break;
default:
// Literal
tree.value = new SyntaxLiteral(child.value);
break;
}
} else {
// '(' Condition ')'
tree.value = tree.children[1].value;
}
},
// Auto ::= "\$[0-9]*" ;
"Auto": function(tree) {
const text = tree.children[0].text.substring(1);
if (0 < text.length) {
// with variable number
tree.value = parseInt(text, 10);
} else {
// without variable number
tree.value = 0;
}
},
// User ::= "\$[a-z_][a-z_0-9]*" ;
"User": function(tree) {
tree.value = tree.children[0].text.substring(1);
},
// Literal ::= String | Integer ;
"Literal": function(tree) {
tree.value = tree.children[0].value;
},
// Integer ::= "[0-9]+" ;
"Integer": function(tree) {
tree.value = tree.children[0].text;
},
// Property ::= 'pattern' | 'length' | 'sum' | 'reverse' | 'min' | 'max' | 'omission' | 'standard' | 'jugglable' | 'valid' | 'balls' | 'period' | 'state' | 'int10' | 'int36' ;
"Property": function(tree) {
tree.value = new SyntaxProperty(tree.children[0].text);
},
// Method ::= ('at' | 'rotate' | 'skip' | 'take') '(' Parameter ')' ;
"Method": function(tree) {
tree.value = new SyntaxMethod(tree.children[0].text, tree.children[2].value);
},
// Parameter ::= Term | '-' Value ;
"Parameter": function(tree) {
const param = new SyntaxParameter();
if (1 < tree.children.length) {
// with minus
param.value = tree.children[1].value;
} else {
// without minus
param.term = tree.children[0].value;
}
tree.value = param;
},
// Iterator ::= ('every' | 'some') '(' Lambda ')' ;
"Iterator": function(tree) {
tree.value = new SyntaxIterator(tree.children[0].text, tree.children[2].value);
},
// Lambda ::= User (',' User)? '=>' Condition ;
"Lambda": function(tree) {
const lambda = new SyntaxLambda(tree.children[0].value);
if (4 < tree.children.length) {
// with whole variable
lambda.whole = tree.children[2].value;
lambda.condition = tree.children[4].value;
} else {
// without whole variable
lambda.condition = tree.children[2].value;
}
tree.value = lambda;
},
// Compare ::= '==' | '!=' | '<>' | '<' | '<=' | '>' | '>=' ;
"Compare": function(tree) {
tree.value = tree.children[0].text;
},
// Clause ::= 'NOT'? 'IN' '(' List ')' ;
"Clause": function(tree) {
const clause = { "not": false , "list": [] };
if (4 < tree.children.length) {
// with NOT
clause.not = true;
clause.list = tree.children[3].list;
} else {
// without NOT
clause.list = tree.children[2].list;
}
tree.value = clause;
},
// List ::= Literal (',' Literal)* ;
"List": function(tree) {
tree.list = [];
for (let i = 0; i < tree.children.length; i += 2) {
tree.list.push(tree.children[i].value);
}
},
// Select ::= 'SELECT' 'DISTINCT'? View ;
"Select": function(tree) {
const select = new SyntaxSelect();
if (2 < tree.children.length) {
// with DISTINCT
select.distinct = true;
select.list = tree.children[2].list;
} else {
// without DISTINCT
select.list = tree.children[1].list;
}
tree.value = select;
},
// View ::= Term+ ;
"View": function(tree) {
tree.list = tree.children.map(elem => elem.value);
},
// Order ::= 'ORDER' 'BY' Multiple ;
"Order": function(tree) {
const order = new SyntaxOrder();
order.list = tree.children[2].list;
tree.value = order;
},
// Multiple ::= Single (',' Single)* ;
"Multiple": function(tree) {
tree.list = [];
for (let i = 0; i < tree.children.length; i += 2) {
tree.list.push(tree.children[i].value);
}
},
// Single ::= Value ('ASC' | 'DESC')? ;
"Single": function(tree) {
const single = { "value": tree.children[0].value, "desc": false };
if (1 < tree.children.length && tree.children[1].label == "'DESC'") {
single.desc = true;
}
tree.value = single;
},
// Limit ::= 'LIMIT' Term ;
"Limit": function(tree) {
tree.value = tree.children[1].value;
},
}