-
Notifications
You must be signed in to change notification settings - Fork 2
/
tables.go
660 lines (656 loc) · 35.7 KB
/
tables.go
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
package fibvec
// fib contains the ith fibonacci number,
// ie., fib[0]=1, fib[1]=1, fib[2]=2 ...
var fib = [98]uint{
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584,
4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229,
832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817,
39088169, 63245986, 102334155, 165580141, 267914296, 433494437, 701408733,
1134903170, 1836311903, 2971215073, 4807526976, 7778742049, 12586269025,
20365011074, 32951280099, 53316291173, 86267571272, 139583862445,
225851433717, 365435296162, 591286729879, 956722026041, 1548008755920,
2504730781961, 4052739537881, 6557470319842, 10610209857723, 17167680177565,
27777890035288, 44945570212853, 72723460248141, 117669030460994,
190392490709135, 308061521170129, 498454011879264, 806515533049393,
1304969544928657, 2111485077978050, 3416454622906707, 5527939700884757,
8944394323791464, 14472334024676221, 23416728348467685, 37889062373143906,
61305790721611591, 99194853094755497, 160500643816367088, 259695496911122585,
420196140727489673, 679891637638612258, 1100087778366101931,
1779979416004714189, 2880067194370816120, 4660046610375530309,
7540113804746346429, 12200160415121876738, 18446744073709551615,
18446744073709551615, 18446744073709551615, 18446744073709551615,
18446744073709551615,
}
// vf1 is the fibonacci right shifted value of i, ie.,
// V(F(n) >>f 1) where i is V(F(n)). This has only 55
// values because the maximum encoded value that can fit
// in a byte is 54.
var vf1 = [55]uint8{
0, 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 9, 10, 11, 11, 12, 12, 13, 14,
14, 15, 16, 16, 17, 17, 18, 19, 19, 20, 21, 21, 22, 22, 23, 24, 24, 25, 25,
26, 27, 27, 28, 29, 29, 30, 30, 31, 32, 32, 33, 33,
}
// fdecTable contains records needed for decoding fibonacci codes.
var fdecTable = [2][256]decRecord{
{
{8, nil, 0}, {8, nil, 34}, {8, nil, 21}, {0, []uint8{21}, 0}, {8, nil, 13},
{8, nil, 47}, {1, []uint8{13}, 0}, {1, []uint8{13}, 1}, {8, nil, 8},
{8, nil, 42}, {8, nil, 29}, {0, []uint8{29}, 0}, {2, []uint8{8}, 0},
{2, []uint8{8}, 2}, {2, []uint8{8}, 1}, {0, []uint8{1, 8}, 0}, {8, nil, 5},
{8, nil, 39}, {8, nil, 26}, {0, []uint8{26}, 0}, {8, nil, 18}, {8, nil, 52},
{1, []uint8{18}, 0}, {1, []uint8{18}, 1}, {3, []uint8{5}, 0},
{3, []uint8{5}, 3}, {3, []uint8{5}, 2}, {0, []uint8{2, 5}, 0},
{3, []uint8{5}, 1}, {3, []uint8{5}, 4}, {1, []uint8{1, 5}, 0},
{1, []uint8{1, 5}, 1}, {8, nil, 3}, {8, nil, 37}, {8, nil, 24},
{0, []uint8{24}, 0}, {8, nil, 16}, {8, nil, 50}, {1, []uint8{16}, 0},
{1, []uint8{16}, 1}, {8, nil, 11}, {8, nil, 45}, {8, nil, 32},
{0, []uint8{32}, 0}, {2, []uint8{11}, 0}, {2, []uint8{11}, 2},
{2, []uint8{11}, 1}, {0, []uint8{1, 11}, 0}, {4, []uint8{3}, 0},
{4, []uint8{3}, 5}, {4, []uint8{3}, 3}, {0, []uint8{3, 3}, 0},
{4, []uint8{3}, 2}, {4, []uint8{3}, 7}, {1, []uint8{2, 3}, 0},
{1, []uint8{2, 3}, 1}, {4, []uint8{3}, 1}, {4, []uint8{3}, 6},
{4, []uint8{3}, 4}, {0, []uint8{4, 3}, 0}, {2, []uint8{1, 3}, 0},
{2, []uint8{1, 3}, 2}, {2, []uint8{1, 3}, 1}, {0, []uint8{1, 1, 3}, 0},
{8, nil, 2}, {8, nil, 36}, {8, nil, 23}, {0, []uint8{23}, 0},
{8, nil, 15}, {8, nil, 49}, {1, []uint8{15}, 0}, {1, []uint8{15}, 1},
{8, nil, 10}, {8, nil, 44}, {8, nil, 31}, {0, []uint8{31}, 0},
{2, []uint8{10}, 0}, {2, []uint8{10}, 2}, {2, []uint8{10}, 1},
{0, []uint8{1, 10}, 0}, {8, nil, 7}, {8, nil, 41}, {8, nil, 28},
{0, []uint8{28}, 0}, {8, nil, 20}, {8, nil, 54}, {1, []uint8{20}, 0},
{1, []uint8{20}, 1}, {3, []uint8{7}, 0}, {3, []uint8{7}, 3},
{3, []uint8{7}, 2}, {0, []uint8{2, 7}, 0}, {3, []uint8{7}, 1},
{3, []uint8{7}, 4}, {1, []uint8{1, 7}, 0}, {1, []uint8{1, 7}, 1},
{5, []uint8{2}, 0}, {5, []uint8{2}, 8}, {5, []uint8{2}, 5},
{0, []uint8{5, 2}, 0}, {5, []uint8{2}, 3}, {5, []uint8{2}, 11},
{1, []uint8{3, 2}, 0}, {1, []uint8{3, 2}, 1}, {5, []uint8{2}, 2},
{5, []uint8{2}, 10}, {5, []uint8{2}, 7}, {0, []uint8{7, 2}, 0},
{2, []uint8{2, 2}, 0}, {2, []uint8{2, 2}, 2}, {2, []uint8{2, 2}, 1},
{0, []uint8{1, 2, 2}, 0}, {5, []uint8{2}, 1}, {5, []uint8{2}, 9},
{5, []uint8{2}, 6}, {0, []uint8{6, 2}, 0}, {5, []uint8{2}, 4},
{5, []uint8{2}, 12}, {1, []uint8{4, 2}, 0}, {1, []uint8{4, 2}, 1},
{3, []uint8{1, 2}, 0}, {3, []uint8{1, 2}, 3}, {3, []uint8{1, 2}, 2},
{0, []uint8{2, 1, 2}, 0}, {3, []uint8{1, 2}, 1}, {3, []uint8{1, 2}, 4},
{1, []uint8{1, 1, 2}, 0}, {1, []uint8{1, 1, 2}, 1}, {8, nil, 1},
{8, nil, 35}, {8, nil, 22}, {0, []uint8{22}, 0}, {8, nil, 14},
{8, nil, 48}, {1, []uint8{14}, 0}, {1, []uint8{14}, 1}, {8, nil, 9},
{8, nil, 43}, {8, nil, 30}, {0, []uint8{30}, 0}, {2, []uint8{9}, 0},
{2, []uint8{9}, 2}, {2, []uint8{9}, 1}, {0, []uint8{1, 9}, 0}, {8, nil, 6},
{8, nil, 40}, {8, nil, 27}, {0, []uint8{27}, 0}, {8, nil, 19}, {8, nil, 53},
{1, []uint8{19}, 0}, {1, []uint8{19}, 1}, {3, []uint8{6}, 0},
{3, []uint8{6}, 3}, {3, []uint8{6}, 2}, {0, []uint8{2, 6}, 0},
{3, []uint8{6}, 1}, {3, []uint8{6}, 4}, {1, []uint8{1, 6}, 0},
{1, []uint8{1, 6}, 1}, {8, nil, 4}, {8, nil, 38}, {8, nil, 25},
{0, []uint8{25}, 0}, {8, nil, 17}, {8, nil, 51}, {1, []uint8{17}, 0},
{1, []uint8{17}, 1}, {8, nil, 12}, {8, nil, 46}, {8, nil, 33},
{0, []uint8{33}, 0}, {2, []uint8{12}, 0}, {2, []uint8{12}, 2},
{2, []uint8{12}, 1}, {0, []uint8{1, 12}, 0}, {4, []uint8{4}, 0},
{4, []uint8{4}, 5}, {4, []uint8{4}, 3}, {0, []uint8{3, 4}, 0},
{4, []uint8{4}, 2}, {4, []uint8{4}, 7}, {1, []uint8{2, 4}, 0},
{1, []uint8{2, 4}, 1}, {4, []uint8{4}, 1}, {4, []uint8{4}, 6},
{4, []uint8{4}, 4}, {0, []uint8{4, 4}, 0}, {2, []uint8{1, 4}, 0},
{2, []uint8{1, 4}, 2}, {2, []uint8{1, 4}, 1}, {0, []uint8{1, 1, 4}, 0},
{6, []uint8{1}, 0}, {6, []uint8{1}, 13}, {6, []uint8{1}, 8},
{0, []uint8{8, 1}, 0}, {6, []uint8{1}, 5}, {6, []uint8{1}, 18},
{1, []uint8{5, 1}, 0}, {1, []uint8{5, 1}, 1}, {6, []uint8{1}, 3},
{6, []uint8{1}, 16}, {6, []uint8{1}, 11}, {0, []uint8{11, 1}, 0},
{2, []uint8{3, 1}, 0}, {2, []uint8{3, 1}, 2}, {2, []uint8{3, 1}, 1},
{0, []uint8{1, 3, 1}, 0}, {6, []uint8{1}, 2}, {6, []uint8{1}, 15},
{6, []uint8{1}, 10}, {0, []uint8{10, 1}, 0}, {6, []uint8{1}, 7},
{6, []uint8{1}, 20}, {1, []uint8{7, 1}, 0}, {1, []uint8{7, 1}, 1},
{3, []uint8{2, 1}, 0}, {3, []uint8{2, 1}, 3}, {3, []uint8{2, 1}, 2},
{0, []uint8{2, 2, 1}, 0}, {3, []uint8{2, 1}, 1}, {3, []uint8{2, 1}, 4},
{1, []uint8{1, 2, 1}, 0}, {1, []uint8{1, 2, 1}, 1}, {6, []uint8{1}, 1},
{6, []uint8{1}, 14}, {6, []uint8{1}, 9}, {0, []uint8{9, 1}, 0},
{6, []uint8{1}, 6}, {6, []uint8{1}, 19}, {1, []uint8{6, 1}, 0},
{1, []uint8{6, 1}, 1}, {6, []uint8{1}, 4}, {6, []uint8{1}, 17},
{6, []uint8{1}, 12}, {0, []uint8{12, 1}, 0}, {2, []uint8{4, 1}, 0},
{2, []uint8{4, 1}, 2}, {2, []uint8{4, 1}, 1}, {0, []uint8{1, 4, 1}, 0},
{4, []uint8{1, 1}, 0}, {4, []uint8{1, 1}, 5}, {4, []uint8{1, 1}, 3},
{0, []uint8{3, 1, 1}, 0}, {4, []uint8{1, 1}, 2}, {4, []uint8{1, 1}, 7},
{1, []uint8{2, 1, 1}, 0}, {1, []uint8{2, 1, 1}, 1}, {4, []uint8{1, 1}, 1},
{4, []uint8{1, 1}, 6}, {4, []uint8{1, 1}, 4}, {0, []uint8{4, 1, 1}, 0},
{2, []uint8{1, 1, 1}, 0}, {2, []uint8{1, 1, 1}, 2},
{2, []uint8{1, 1, 1}, 1}, {0, []uint8{1, 1, 1, 1}, 0},
},
{
{8, nil, 0}, {8, nil, 34}, {8, nil, 21}, {0, []uint8{21}, 0}, {8, nil, 13},
{8, nil, 47}, {1, []uint8{13}, 0}, {1, []uint8{13}, 1}, {8, nil, 8},
{8, nil, 42}, {8, nil, 29}, {0, []uint8{29}, 0}, {2, []uint8{8}, 0},
{2, []uint8{8}, 2}, {2, []uint8{8}, 1}, {0, []uint8{1, 8}, 0}, {8, nil, 5},
{8, nil, 39}, {8, nil, 26}, {0, []uint8{26}, 0}, {8, nil, 18}, {8, nil, 52},
{1, []uint8{18}, 0}, {1, []uint8{18}, 1}, {3, []uint8{5}, 0},
{3, []uint8{5}, 3}, {3, []uint8{5}, 2}, {0, []uint8{2, 5}, 0},
{3, []uint8{5}, 1}, {3, []uint8{5}, 4}, {1, []uint8{1, 5}, 0},
{1, []uint8{1, 5}, 1}, {8, nil, 3}, {8, nil, 37}, {8, nil, 24},
{0, []uint8{24}, 0}, {8, nil, 16}, {8, nil, 50}, {1, []uint8{16}, 0},
{1, []uint8{16}, 1}, {8, nil, 11}, {8, nil, 45}, {8, nil, 32},
{0, []uint8{32}, 0}, {2, []uint8{11}, 0}, {2, []uint8{11}, 2},
{2, []uint8{11}, 1}, {0, []uint8{1, 11}, 0}, {4, []uint8{3}, 0},
{4, []uint8{3}, 5}, {4, []uint8{3}, 3}, {0, []uint8{3, 3}, 0},
{4, []uint8{3}, 2}, {4, []uint8{3}, 7}, {1, []uint8{2, 3}, 0},
{1, []uint8{2, 3}, 1}, {4, []uint8{3}, 1}, {4, []uint8{3}, 6},
{4, []uint8{3}, 4}, {0, []uint8{4, 3}, 0}, {2, []uint8{1, 3}, 0},
{2, []uint8{1, 3}, 2}, {2, []uint8{1, 3}, 1}, {0, []uint8{1, 1, 3}, 0},
{8, nil, 2}, {8, nil, 36}, {8, nil, 23}, {0, []uint8{23}, 0},
{8, nil, 15}, {8, nil, 49}, {1, []uint8{15}, 0}, {1, []uint8{15}, 1},
{8, nil, 10}, {8, nil, 44}, {8, nil, 31}, {0, []uint8{31}, 0},
{2, []uint8{10}, 0}, {2, []uint8{10}, 2}, {2, []uint8{10}, 1},
{0, []uint8{1, 10}, 0}, {8, nil, 7}, {8, nil, 41}, {8, nil, 28},
{0, []uint8{28}, 0}, {8, nil, 20}, {8, nil, 54}, {1, []uint8{20}, 0},
{1, []uint8{20}, 1}, {3, []uint8{7}, 0}, {3, []uint8{7}, 3},
{3, []uint8{7}, 2}, {0, []uint8{2, 7}, 0}, {3, []uint8{7}, 1},
{3, []uint8{7}, 4}, {1, []uint8{1, 7}, 0}, {1, []uint8{1, 7}, 1},
{5, []uint8{2}, 0}, {5, []uint8{2}, 8}, {5, []uint8{2}, 5},
{0, []uint8{5, 2}, 0}, {5, []uint8{2}, 3}, {5, []uint8{2}, 11},
{1, []uint8{3, 2}, 0}, {1, []uint8{3, 2}, 1}, {5, []uint8{2}, 2},
{5, []uint8{2}, 10}, {5, []uint8{2}, 7}, {0, []uint8{7, 2}, 0},
{2, []uint8{2, 2}, 0}, {2, []uint8{2, 2}, 2}, {2, []uint8{2, 2}, 1},
{0, []uint8{1, 2, 2}, 0}, {5, []uint8{2}, 1}, {5, []uint8{2}, 9},
{5, []uint8{2}, 6}, {0, []uint8{6, 2}, 0}, {5, []uint8{2}, 4},
{5, []uint8{2}, 12}, {1, []uint8{4, 2}, 0}, {1, []uint8{4, 2}, 1},
{3, []uint8{1, 2}, 0}, {3, []uint8{1, 2}, 3}, {3, []uint8{1, 2}, 2},
{0, []uint8{2, 1, 2}, 0}, {3, []uint8{1, 2}, 1}, {3, []uint8{1, 2}, 4},
{1, []uint8{1, 1, 2}, 0}, {1, []uint8{1, 1, 2}, 1}, {7, nil, 0},
{7, nil, 21}, {7, nil, 13}, {0, []uint8{13}, 0}, {7, nil, 8}, {7, nil, 29},
{1, []uint8{8}, 0}, {1, []uint8{8}, 1}, {7, nil, 5}, {7, nil, 26},
{7, nil, 18}, {0, []uint8{18}, 0}, {2, []uint8{5}, 0}, {2, []uint8{5}, 2},
{2, []uint8{5}, 1}, {0, []uint8{1, 5}, 0}, {7, nil, 3}, {7, nil, 24},
{7, nil, 16}, {0, []uint8{16}, 0}, {7, nil, 11}, {7, nil, 32},
{1, []uint8{11}, 0}, {1, []uint8{11}, 1}, {3, []uint8{3}, 0},
{3, []uint8{3}, 3}, {3, []uint8{3}, 2}, {0, []uint8{2, 3}, 0},
{3, []uint8{3}, 1}, {3, []uint8{3}, 4}, {1, []uint8{1, 3}, 0},
{1, []uint8{1, 3}, 1}, {7, nil, 2}, {7, nil, 23}, {7, nil, 15},
{0, []uint8{15}, 0}, {7, nil, 10}, {7, nil, 31}, {1, []uint8{10}, 0},
{1, []uint8{10}, 1}, {7, nil, 7}, {7, nil, 28}, {7, nil, 20},
{0, []uint8{20}, 0}, {2, []uint8{7}, 0}, {2, []uint8{7}, 2},
{2, []uint8{7}, 1}, {0, []uint8{1, 7}, 0}, {4, []uint8{2}, 0},
{4, []uint8{2}, 5}, {4, []uint8{2}, 3}, {0, []uint8{3, 2}, 0},
{4, []uint8{2}, 2}, {4, []uint8{2}, 7}, {1, []uint8{2, 2}, 0},
{1, []uint8{2, 2}, 1}, {4, []uint8{2}, 1}, {4, []uint8{2}, 6},
{4, []uint8{2}, 4}, {0, []uint8{4, 2}, 0}, {2, []uint8{1, 2}, 0},
{2, []uint8{1, 2}, 2}, {2, []uint8{1, 2}, 1}, {0, []uint8{1, 1, 2}, 0},
{7, nil, 1}, {7, nil, 22}, {7, nil, 14}, {0, []uint8{14}, 0}, {7, nil, 9},
{7, nil, 30}, {1, []uint8{9}, 0}, {1, []uint8{9}, 1}, {7, nil, 6},
{7, nil, 27}, {7, nil, 19}, {0, []uint8{19}, 0}, {2, []uint8{6}, 0},
{2, []uint8{6}, 2}, {2, []uint8{6}, 1}, {0, []uint8{1, 6}, 0}, {7, nil, 4},
{7, nil, 25}, {7, nil, 17}, {0, []uint8{17}, 0}, {7, nil, 12}, {7, nil, 33},
{1, []uint8{12}, 0}, {1, []uint8{12}, 1}, {3, []uint8{4}, 0},
{3, []uint8{4}, 3}, {3, []uint8{4}, 2}, {0, []uint8{2, 4}, 0},
{3, []uint8{4}, 1}, {3, []uint8{4}, 4}, {1, []uint8{1, 4}, 0},
{1, []uint8{1, 4}, 1}, {5, []uint8{1}, 0}, {5, []uint8{1}, 8},
{5, []uint8{1}, 5}, {0, []uint8{5, 1}, 0}, {5, []uint8{1}, 3},
{5, []uint8{1}, 11}, {1, []uint8{3, 1}, 0}, {1, []uint8{3, 1}, 1},
{5, []uint8{1}, 2}, {5, []uint8{1}, 10}, {5, []uint8{1}, 7},
{0, []uint8{7, 1}, 0}, {2, []uint8{2, 1}, 0}, {2, []uint8{2, 1}, 2},
{2, []uint8{2, 1}, 1}, {0, []uint8{1, 2, 1}, 0}, {5, []uint8{1}, 1},
{5, []uint8{1}, 9}, {5, []uint8{1}, 6}, {0, []uint8{6, 1}, 0},
{5, []uint8{1}, 4}, {5, []uint8{1}, 12}, {1, []uint8{4, 1}, 0},
{1, []uint8{4, 1}, 1}, {3, []uint8{1, 1}, 0}, {3, []uint8{1, 1}, 3},
{3, []uint8{1, 1}, 2}, {0, []uint8{2, 1, 1}, 0}, {3, []uint8{1, 1}, 1},
{3, []uint8{1, 1}, 4}, {1, []uint8{1, 1, 1}, 0}, {1, []uint8{1, 1, 1}, 1},
},
}
// fencTable contains records needed for encoding fibonacci codes.
var fencTable = [12][55]encRecord{
{
{0, 8, 0, 0}, {128, 1, 0, 0}, {64, 2, 0, 0}, {32, 3, 0, 0}, {160, 3, 0, 0},
{16, 4, 0, 0}, {144, 4, 0, 0}, {80, 4, 0, 0}, {8, 5, 0, 0}, {136, 5, 0, 0},
{72, 5, 0, 0}, {40, 5, 0, 0}, {168, 5, 0, 0}, {4, 6, 0, 0}, {132, 6, 0, 0},
{68, 6, 0, 0}, {36, 6, 0, 0}, {164, 6, 0, 0}, {20, 6, 0, 0}, {148, 6, 0, 0},
{84, 6, 0, 0}, {2, 7, 0, 0}, {130, 7, 0, 0}, {66, 7, 0, 0}, {34, 7, 0, 0},
{162, 7, 0, 0}, {18, 7, 0, 0}, {146, 7, 0, 0}, {82, 7, 0, 0}, {10, 7, 0, 0},
{138, 7, 0, 0}, {74, 7, 0, 0}, {42, 7, 0, 0}, {170, 7, 0, 0}, {1, 8, 0, 0},
{129, 8, 0, 0}, {65, 8, 0, 0}, {33, 8, 0, 0}, {161, 8, 0, 0}, {17, 8, 0, 0},
{145, 8, 0, 0}, {81, 8, 0, 0}, {9, 8, 0, 0}, {137, 8, 0, 0}, {73, 8, 0, 0},
{41, 8, 0, 0}, {169, 8, 0, 0}, {5, 8, 0, 0}, {133, 8, 0, 0}, {69, 8, 0, 0},
{37, 8, 0, 0}, {165, 8, 0, 0}, {21, 8, 0, 0}, {149, 8, 0, 0}, {85, 8, 0, 0},
},
{
{0, 0, 0, 54}, {128, 1, 55, 88},
{64, 2, 89, 143}, {32, 3, 144, 198},
{160, 3, 199, 232}, {16, 4, 233, 287},
{144, 4, 288, 321}, {80, 4, 322, 376}, {8, 5, 377, 431},
{136, 5, 432, 465}, {72, 5, 466, 520}, {40, 5, 521, 575},
{168, 5, 576, 609}, {4, 6, 610, 664}, {132, 6, 665, 698},
{68, 6, 699, 753}, {36, 6, 754, 808}, {164, 6, 809, 842},
{20, 6, 843, 897}, {148, 6, 898, 931}, {84, 6, 932, 986},
{2, 7, 987, 1041}, {130, 7, 1042, 1075}, {66, 7, 1076, 1130},
{34, 7, 1131, 1185}, {162, 7, 1186, 1219}, {18, 7, 1220, 1274},
{146, 7, 1275, 1308}, {82, 7, 1309, 1363}, {10, 7, 1364, 1418},
{138, 7, 1419, 1452}, {74, 7, 1453, 1507}, {42, 7, 1508, 1562},
{170, 7, 1563, 1596}, {1, 8, 1597, 1651}, {129, 8, 1652, 1685},
{65, 8, 1686, 1740}, {33, 8, 1741, 1795}, {161, 8, 1796, 1829},
{17, 8, 1830, 1884}, {145, 8, 1885, 1918}, {81, 8, 1919, 1973},
{9, 8, 1974, 2028}, {137, 8, 2029, 2062}, {73, 8, 2063, 2117},
{41, 8, 2118, 2172}, {169, 8, 2173, 2206}, {5, 8, 2207, 2261},
{133, 8, 2262, 2295}, {69, 8, 2296, 2350}, {37, 8, 2351, 2405},
{165, 8, 2406, 2439}, {21, 8, 2440, 2494}, {149, 8, 2495, 2528},
{85, 8, 2529, 18446744073709551615},
},
{
{0, 0, 0, 2583}, {128, 1, 2584, 4180}, {64, 2, 4181, 6764},
{32, 3, 6765, 9348}, {160, 3, 9349, 10945}, {16, 4, 10946, 13529},
{144, 4, 13530, 15126}, {80, 4, 15127, 17710}, {8, 5, 17711, 20294},
{136, 5, 20295, 21891}, {72, 5, 21892, 24475}, {40, 5, 24476, 27059},
{168, 5, 27060, 28656}, {4, 6, 28657, 31240}, {132, 6, 31241, 32837},
{68, 6, 32838, 35421}, {36, 6, 35422, 38005}, {164, 6, 38006, 39602},
{20, 6, 39603, 42186}, {148, 6, 42187, 43783}, {84, 6, 43784, 46367},
{2, 7, 46368, 48951}, {130, 7, 48952, 50548}, {66, 7, 50549, 53132},
{34, 7, 53133, 55716}, {162, 7, 55717, 57313}, {18, 7, 57314, 59897},
{146, 7, 59898, 61494}, {82, 7, 61495, 64078}, {10, 7, 64079, 66662},
{138, 7, 66663, 68259}, {74, 7, 68260, 70843}, {42, 7, 70844, 73427},
{170, 7, 73428, 75024}, {1, 8, 75025, 77608}, {129, 8, 77609, 79205},
{65, 8, 79206, 81789}, {33, 8, 81790, 84373}, {161, 8, 84374, 85970},
{17, 8, 85971, 88554}, {145, 8, 88555, 90151}, {81, 8, 90152, 92735},
{9, 8, 92736, 95319}, {137, 8, 95320, 96916}, {73, 8, 96917, 99500},
{41, 8, 99501, 102084}, {169, 8, 102085, 103681}, {5, 8, 103682, 106265},
{133, 8, 106266, 107862}, {69, 8, 107863, 110446}, {37, 8, 110447, 113030},
{165, 8, 113031, 114627}, {21, 8, 114628, 117211}, {149, 8, 117212, 118808},
{85, 8, 118809, 18446744073709551615},
},
{
{0, 0, 0, 121392}, {128, 1, 121393, 196417},
{64, 2, 196418, 317810}, {32, 3, 317811, 439203},
{160, 3, 439204, 514228}, {16, 4, 514229, 635621},
{144, 4, 635622, 710646}, {80, 4, 710647, 832039},
{8, 5, 832040, 953432}, {136, 5, 953433, 1028457},
{72, 5, 1028458, 1149850}, {40, 5, 1149851, 1271243},
{168, 5, 1271244, 1346268}, {4, 6, 1346269, 1467661},
{132, 6, 1467662, 1542686}, {68, 6, 1542687, 1664079},
{36, 6, 1664080, 1785472}, {164, 6, 1785473, 1860497},
{20, 6, 1860498, 1981890}, {148, 6, 1981891, 2056915},
{84, 6, 2056916, 2178308}, {2, 7, 2178309, 2299701},
{130, 7, 2299702, 2374726}, {66, 7, 2374727, 2496119},
{34, 7, 2496120, 2617512}, {162, 7, 2617513, 2692537},
{18, 7, 2692538, 2813930}, {146, 7, 2813931, 2888955},
{82, 7, 2888956, 3010348}, {10, 7, 3010349, 3131741},
{138, 7, 3131742, 3206766}, {74, 7, 3206767, 3328159},
{42, 7, 3328160, 3449552}, {170, 7, 3449553, 3524577},
{1, 8, 3524578, 3645970}, {129, 8, 3645971, 3720995},
{65, 8, 3720996, 3842388}, {33, 8, 3842389, 3963781},
{161, 8, 3963782, 4038806}, {17, 8, 4038807, 4160199},
{145, 8, 4160200, 4235224}, {81, 8, 4235225, 4356617},
{9, 8, 4356618, 4478010}, {137, 8, 4478011, 4553035},
{73, 8, 4553036, 4674428}, {41, 8, 4674429, 4795821},
{169, 8, 4795822, 4870846}, {5, 8, 4870847, 4992239},
{133, 8, 4992240, 5067264}, {69, 8, 5067265, 5188657},
{37, 8, 5188658, 5310050}, {165, 8, 5310051, 5385075},
{21, 8, 5385076, 5506468}, {149, 8, 5506469, 5581493},
{85, 8, 5581494, 18446744073709551615},
},
{
{0, 0, 0, 5702886}, {128, 1, 5702887, 9227464},
{64, 2, 9227465, 14930351}, {32, 3, 14930352, 20633238},
{160, 3, 20633239, 24157816}, {16, 4, 24157817, 29860703},
{144, 4, 29860704, 33385281}, {80, 4, 33385282, 39088168},
{8, 5, 39088169, 44791055}, {136, 5, 44791056, 48315633},
{72, 5, 48315634, 54018520}, {40, 5, 54018521, 59721407},
{168, 5, 59721408, 63245985}, {4, 6, 63245986, 68948872},
{132, 6, 68948873, 72473450}, {68, 6, 72473451, 78176337},
{36, 6, 78176338, 83879224}, {164, 6, 83879225, 87403802},
{20, 6, 87403803, 93106689}, {148, 6, 93106690, 96631267},
{84, 6, 96631268, 102334154}, {2, 7, 102334155, 108037041},
{130, 7, 108037042, 111561619}, {66, 7, 111561620, 117264506},
{34, 7, 117264507, 122967393}, {162, 7, 122967394, 126491971},
{18, 7, 126491972, 132194858}, {146, 7, 132194859, 135719436},
{82, 7, 135719437, 141422323}, {10, 7, 141422324, 147125210},
{138, 7, 147125211, 150649788}, {74, 7, 150649789, 156352675},
{42, 7, 156352676, 162055562}, {170, 7, 162055563, 165580140},
{1, 8, 165580141, 171283027}, {129, 8, 171283028, 174807605},
{65, 8, 174807606, 180510492}, {33, 8, 180510493, 186213379},
{161, 8, 186213380, 189737957}, {17, 8, 189737958, 195440844},
{145, 8, 195440845, 198965422}, {81, 8, 198965423, 204668309},
{9, 8, 204668310, 210371196}, {137, 8, 210371197, 213895774},
{73, 8, 213895775, 219598661}, {41, 8, 219598662, 225301548},
{169, 8, 225301549, 228826126}, {5, 8, 228826127, 234529013},
{133, 8, 234529014, 238053591}, {69, 8, 238053592, 243756478},
{37, 8, 243756479, 249459365}, {165, 8, 249459366, 252983943},
{21, 8, 252983944, 258686830}, {149, 8, 258686831, 262211408},
{85, 8, 262211409, 18446744073709551615},
},
{
{0, 0, 0, 267914295}, {128, 1, 267914296, 433494436},
{64, 2, 433494437, 701408732}, {32, 3, 701408733, 969323028},
{160, 3, 969323029, 1134903169}, {16, 4, 1134903170, 1402817465},
{144, 4, 1402817466, 1568397606}, {80, 4, 1568397607, 1836311902},
{8, 5, 1836311903, 2104226198}, {136, 5, 2104226199, 2269806339},
{72, 5, 2269806340, 2537720635}, {40, 5, 2537720636, 2805634931},
{168, 5, 2805634932, 2971215072}, {4, 6, 2971215073, 3239129368},
{132, 6, 3239129369, 3404709509}, {68, 6, 3404709510, 3672623805},
{36, 6, 3672623806, 3940538101}, {164, 6, 3940538102, 4106118242},
{20, 6, 4106118243, 4374032538}, {148, 6, 4374032539, 4539612679},
{84, 6, 4539612680, 4807526975}, {2, 7, 4807526976, 5075441271},
{130, 7, 5075441272, 5241021412}, {66, 7, 5241021413, 5508935708},
{34, 7, 5508935709, 5776850004}, {162, 7, 5776850005, 5942430145},
{18, 7, 5942430146, 6210344441}, {146, 7, 6210344442, 6375924582},
{82, 7, 6375924583, 6643838878}, {10, 7, 6643838879, 6911753174},
{138, 7, 6911753175, 7077333315}, {74, 7, 7077333316, 7345247611},
{42, 7, 7345247612, 7613161907}, {170, 7, 7613161908, 7778742048},
{1, 8, 7778742049, 8046656344}, {129, 8, 8046656345, 8212236485},
{65, 8, 8212236486, 8480150781}, {33, 8, 8480150782, 8748065077},
{161, 8, 8748065078, 8913645218}, {17, 8, 8913645219, 9181559514},
{145, 8, 9181559515, 9347139655}, {81, 8, 9347139656, 9615053951},
{9, 8, 9615053952, 9882968247}, {137, 8, 9882968248, 10048548388},
{73, 8, 10048548389, 10316462684}, {41, 8, 10316462685, 10584376980},
{169, 8, 10584376981, 10749957121}, {5, 8, 10749957122, 11017871417},
{133, 8, 11017871418, 11183451558}, {69, 8, 11183451559, 11451365854},
{37, 8, 11451365855, 11719280150}, {165, 8, 11719280151, 11884860291},
{21, 8, 11884860292, 12152774587}, {149, 8, 12152774588, 12318354728},
{85, 8, 12318354729, 18446744073709551615},
},
{
{0, 0, 0, 12586269024}, {128, 1, 12586269025, 20365011073},
{64, 2, 20365011074, 32951280098}, {32, 3, 32951280099, 45537549123},
{160, 3, 45537549124, 53316291172}, {16, 4, 53316291173, 65902560197},
{144, 4, 65902560198, 73681302246}, {80, 4, 73681302247, 86267571271},
{8, 5, 86267571272, 98853840296}, {136, 5, 98853840297, 106632582345},
{72, 5, 106632582346, 119218851370}, {40, 5, 119218851371, 131805120395},
{168, 5, 131805120396, 139583862444}, {4, 6, 139583862445, 152170131469},
{132, 6, 152170131470, 159948873518}, {68, 6, 159948873519, 172535142543},
{36, 6, 172535142544, 185121411568}, {164, 6, 185121411569, 192900153617},
{20, 6, 192900153618, 205486422642}, {148, 6, 205486422643, 213265164691},
{84, 6, 213265164692, 225851433716}, {2, 7, 225851433717, 238437702741},
{130, 7, 238437702742, 246216444790}, {66, 7, 246216444791, 258802713815},
{34, 7, 258802713816, 271388982840}, {162, 7, 271388982841, 279167724889},
{18, 7, 279167724890, 291753993914}, {146, 7, 291753993915, 299532735963},
{82, 7, 299532735964, 312119004988}, {10, 7, 312119004989, 324705274013},
{138, 7, 324705274014, 332484016062}, {74, 7, 332484016063, 345070285087},
{42, 7, 345070285088, 357656554112}, {170, 7, 357656554113, 365435296161},
{1, 8, 365435296162, 378021565186}, {129, 8, 378021565187, 385800307235},
{65, 8, 385800307236, 398386576260}, {33, 8, 398386576261, 410972845285},
{161, 8, 410972845286, 418751587334}, {17, 8, 418751587335, 431337856359},
{145, 8, 431337856360, 439116598408}, {81, 8, 439116598409, 451702867433},
{9, 8, 451702867434, 464289136458}, {137, 8, 464289136459, 472067878507},
{73, 8, 472067878508, 484654147532}, {41, 8, 484654147533, 497240416557},
{169, 8, 497240416558, 505019158606}, {5, 8, 505019158607, 517605427631},
{133, 8, 517605427632, 525384169680}, {69, 8, 525384169681, 537970438705},
{37, 8, 537970438706, 550556707730}, {165, 8, 550556707731, 558335449779},
{21, 8, 558335449780, 570921718804}, {149, 8, 570921718805, 578700460853},
{85, 8, 578700460854, 18446744073709551615},
},
{
{0, 0, 0, 591286729878},
{128, 1, 591286729879, 956722026040},
{64, 2, 956722026041, 1548008755919},
{32, 3, 1548008755920, 2139295485798},
{160, 3, 2139295485799, 2504730781960},
{16, 4, 2504730781961, 3096017511839},
{144, 4, 3096017511840, 3461452808001},
{80, 4, 3461452808002, 4052739537880},
{8, 5, 4052739537881, 4644026267759},
{136, 5, 4644026267760, 5009461563921},
{72, 5, 5009461563922, 5600748293800},
{40, 5, 5600748293801, 6192035023679},
{168, 5, 6192035023680, 6557470319841},
{4, 6, 6557470319842, 7148757049720},
{132, 6, 7148757049721, 7514192345882},
{68, 6, 7514192345883, 8105479075761},
{36, 6, 8105479075762, 8696765805640},
{164, 6, 8696765805641, 9062201101802},
{20, 6, 9062201101803, 9653487831681},
{148, 6, 9653487831682, 10018923127843},
{84, 6, 10018923127844, 10610209857722},
{2, 7, 10610209857723, 11201496587601},
{130, 7, 11201496587602, 11566931883763},
{66, 7, 11566931883764, 12158218613642},
{34, 7, 12158218613643, 12749505343521},
{162, 7, 12749505343522, 13114940639683},
{18, 7, 13114940639684, 13706227369562},
{146, 7, 13706227369563, 14071662665724},
{82, 7, 14071662665725, 14662949395603},
{10, 7, 14662949395604, 15254236125482},
{138, 7, 15254236125483, 15619671421644},
{74, 7, 15619671421645, 16210958151523},
{42, 7, 16210958151524, 16802244881402},
{170, 7, 16802244881403, 17167680177564},
{1, 8, 17167680177565, 17758966907443},
{129, 8, 17758966907444, 18124402203605},
{65, 8, 18124402203606, 18715688933484},
{33, 8, 18715688933485, 19306975663363},
{161, 8, 19306975663364, 19672410959525},
{17, 8, 19672410959526, 20263697689404},
{145, 8, 20263697689405, 20629132985566},
{81, 8, 20629132985567, 21220419715445},
{9, 8, 21220419715446, 21811706445324},
{137, 8, 21811706445325, 22177141741486},
{73, 8, 22177141741487, 22768428471365},
{41, 8, 22768428471366, 23359715201244},
{169, 8, 23359715201245, 23725150497406},
{5, 8, 23725150497407, 24316437227285},
{133, 8, 24316437227286, 24681872523447},
{69, 8, 24681872523448, 25273159253326},
{37, 8, 25273159253327, 25864445983205},
{165, 8, 25864445983206, 26229881279367},
{21, 8, 26229881279368, 26821168009246},
{149, 8, 26821168009247, 27186603305408},
{85, 8, 27186603305409, 18446744073709551615},
},
{
{0, 0, 0, 27777890035287},
{128, 1, 27777890035288, 44945570212852},
{64, 2, 44945570212853, 72723460248140},
{32, 3, 72723460248141, 100501350283428},
{160, 3, 100501350283429, 117669030460993},
{16, 4, 117669030460994, 145446920496281},
{144, 4, 145446920496282, 162614600673846},
{80, 4, 162614600673847, 190392490709134},
{8, 5, 190392490709135, 218170380744422},
{136, 5, 218170380744423, 235338060921987},
{72, 5, 235338060921988, 263115950957275},
{40, 5, 263115950957276, 290893840992563},
{168, 5, 290893840992564, 308061521170128},
{4, 6, 308061521170129, 335839411205416},
{132, 6, 335839411205417, 353007091382981},
{68, 6, 353007091382982, 380784981418269},
{36, 6, 380784981418270, 408562871453557},
{164, 6, 408562871453558, 425730551631122},
{20, 6, 425730551631123, 453508441666410},
{148, 6, 453508441666411, 470676121843975},
{84, 6, 470676121843976, 498454011879263},
{2, 7, 498454011879264, 526231901914551},
{130, 7, 526231901914552, 543399582092116},
{66, 7, 543399582092117, 571177472127404},
{34, 7, 571177472127405, 598955362162692},
{162, 7, 598955362162693, 616123042340257},
{18, 7, 616123042340258, 643900932375545},
{146, 7, 643900932375546, 661068612553110},
{82, 7, 661068612553111, 688846502588398},
{10, 7, 688846502588399, 716624392623686},
{138, 7, 716624392623687, 733792072801251},
{74, 7, 733792072801252, 761569962836539},
{42, 7, 761569962836540, 789347852871827},
{170, 7, 789347852871828, 806515533049392},
{1, 8, 806515533049393, 834293423084680},
{129, 8, 834293423084681, 851461103262245},
{65, 8, 851461103262246, 879238993297533},
{33, 8, 879238993297534, 907016883332821},
{161, 8, 907016883332822, 924184563510386},
{17, 8, 924184563510387, 951962453545674},
{145, 8, 951962453545675, 969130133723239},
{81, 8, 969130133723240, 996908023758527},
{9, 8, 996908023758528, 1024685913793815},
{137, 8, 1024685913793816, 1041853593971380},
{73, 8, 1041853593971381, 1069631484006668},
{41, 8, 1069631484006669, 1097409374041956},
{169, 8, 1097409374041957, 1114577054219521},
{5, 8, 1114577054219522, 1142354944254809},
{133, 8, 1142354944254810, 1159522624432374},
{69, 8, 1159522624432375, 1187300514467662},
{37, 8, 1187300514467663, 1215078404502950},
{165, 8, 1215078404502951, 1232246084680515},
{21, 8, 1232246084680516, 1260023974715803},
{149, 8, 1260023974715804, 1277191654893368},
{85, 8, 1277191654893369, 18446744073709551615},
},
{
{0, 0, 0, 1304969544928656},
{128, 1, 1304969544928657, 2111485077978049},
{64, 2, 2111485077978050, 3416454622906706},
{32, 3, 3416454622906707, 4721424167835363},
{160, 3, 4721424167835364, 5527939700884756},
{16, 4, 5527939700884757, 6832909245813413},
{144, 4, 6832909245813414, 7639424778862806},
{80, 4, 7639424778862807, 8944394323791463},
{8, 5, 8944394323791464, 10249363868720120},
{136, 5, 10249363868720121, 11055879401769513},
{72, 5, 11055879401769514, 12360848946698170},
{40, 5, 12360848946698171, 13665818491626827},
{168, 5, 13665818491626828, 14472334024676220},
{4, 6, 14472334024676221, 15777303569604877},
{132, 6, 15777303569604878, 16583819102654270},
{68, 6, 16583819102654271, 17888788647582927},
{36, 6, 17888788647582928, 19193758192511584},
{164, 6, 19193758192511585, 20000273725560977},
{20, 6, 20000273725560978, 21305243270489634},
{148, 6, 21305243270489635, 22111758803539027},
{84, 6, 22111758803539028, 23416728348467684},
{2, 7, 23416728348467685, 24721697893396341},
{130, 7, 24721697893396342, 25528213426445734},
{66, 7, 25528213426445735, 26833182971374391},
{34, 7, 26833182971374392, 28138152516303048},
{162, 7, 28138152516303049, 28944668049352441},
{18, 7, 28944668049352442, 30249637594281098},
{146, 7, 30249637594281099, 31056153127330491},
{82, 7, 31056153127330492, 32361122672259148},
{10, 7, 32361122672259149, 33666092217187805},
{138, 7, 33666092217187806, 34472607750237198},
{74, 7, 34472607750237199, 35777577295165855},
{42, 7, 35777577295165856, 37082546840094512},
{170, 7, 37082546840094513, 37889062373143905},
{1, 8, 37889062373143906, 39194031918072562},
{129, 8, 39194031918072563, 40000547451121955},
{65, 8, 40000547451121956, 41305516996050612},
{33, 8, 41305516996050613, 42610486540979269},
{161, 8, 42610486540979270, 43417002074028662},
{17, 8, 43417002074028663, 44721971618957319},
{145, 8, 44721971618957320, 45528487152006712},
{81, 8, 45528487152006713, 46833456696935369},
{9, 8, 46833456696935370, 48138426241864026},
{137, 8, 48138426241864027, 48944941774913419},
{73, 8, 48944941774913420, 50249911319842076},
{41, 8, 50249911319842077, 51554880864770733},
{169, 8, 51554880864770734, 52361396397820126},
{5, 8, 52361396397820127, 53666365942748783},
{133, 8, 53666365942748784, 54472881475798176},
{69, 8, 54472881475798177, 55777851020726833},
{37, 8, 55777851020726834, 57082820565655490},
{165, 8, 57082820565655491, 57889336098704883},
{21, 8, 57889336098704884, 59194305643633540},
{149, 8, 59194305643633541, 60000821176682933},
{85, 8, 60000821176682934, 18446744073709551615},
},
{
{0, 0, 0, 61305790721611590},
{128, 1, 61305790721611591, 99194853094755496},
{64, 2, 99194853094755497, 160500643816367087},
{32, 3, 160500643816367088, 221806434537978678},
{160, 3, 221806434537978679, 259695496911122584},
{16, 4, 259695496911122585, 321001287632734175},
{144, 4, 321001287632734176, 358890350005878081},
{80, 4, 358890350005878082, 420196140727489672},
{8, 5, 420196140727489673, 481501931449101263},
{136, 5, 481501931449101264, 519390993822245169},
{72, 5, 519390993822245170, 580696784543856760},
{40, 5, 580696784543856761, 642002575265468351},
{168, 5, 642002575265468352, 679891637638612257},
{4, 6, 679891637638612258, 741197428360223848},
{132, 6, 741197428360223849, 779086490733367754},
{68, 6, 779086490733367755, 840392281454979345},
{36, 6, 840392281454979346, 901698072176590936},
{164, 6, 901698072176590937, 939587134549734842},
{20, 6, 939587134549734843, 1000892925271346433},
{148, 6, 1000892925271346434, 1038781987644490339},
{84, 6, 1038781987644490340, 1100087778366101930},
{2, 7, 1100087778366101931, 1161393569087713521},
{130, 7, 1161393569087713522, 1199282631460857427},
{66, 7, 1199282631460857428, 1260588422182469018},
{34, 7, 1260588422182469019, 1321894212904080609},
{162, 7, 1321894212904080610, 1359783275277224515},
{18, 7, 1359783275277224516, 1421089065998836106},
{146, 7, 1421089065998836107, 1458978128371980012},
{82, 7, 1458978128371980013, 1520283919093591603},
{10, 7, 1520283919093591604, 1581589709815203194},
{138, 7, 1581589709815203195, 1619478772188347100},
{74, 7, 1619478772188347101, 1680784562909958691},
{42, 7, 1680784562909958692, 1742090353631570282},
{170, 7, 1742090353631570283, 1779979416004714188},
{1, 8, 1779979416004714189, 1841285206726325779},
{129, 8, 1841285206726325780, 1879174269099469685},
{65, 8, 1879174269099469686, 1940480059821081276},
{33, 8, 1940480059821081277, 2001785850542692867},
{161, 8, 2001785850542692868, 2039674912915836773},
{17, 8, 2039674912915836774, 2100980703637448364},
{145, 8, 2100980703637448365, 2138869766010592270},
{81, 8, 2138869766010592271, 2200175556732203861},
{9, 8, 2200175556732203862, 2261481347453815452},
{137, 8, 2261481347453815453, 2299370409826959358},
{73, 8, 2299370409826959359, 2360676200548570949},
{41, 8, 2360676200548570950, 2421981991270182540},
{169, 8, 2421981991270182541, 2459871053643326446},
{5, 8, 2459871053643326447, 2521176844364938037},
{133, 8, 2521176844364938038, 2559065906738081943},
{69, 8, 2559065906738081944, 2620371697459693534},
{37, 8, 2620371697459693535, 2681677488181305125},
{165, 8, 2681677488181305126, 2719566550554449031},
{21, 8, 2719566550554449032, 2780872341276060622},
{149, 8, 2780872341276060623, 2818761403649204528},
{85, 8, 2818761403649204529, 18446744073709551615},
},
{
{0, 0, 0, 2880067194370816119},
{128, 1, 2880067194370816120, 4660046610375530308},
{64, 2, 4660046610375530309, 7540113804746346428},
{32, 3, 7540113804746346429, 10420180999117162548},
{160, 3, 10420180999117162549, 12200160415121876737},
{16, 4, 12200160415121876738, 15080227609492692857},
{144, 4, 15080227609492692858, 16860207025497407046},
{80, 4, 16860207025497407047, 1293530146158671550},
{8, 5, 1293530146158671551, 4173597340529487670},
{136, 5, 4173597340529487671, 5953576756534201859},
{72, 5, 5953576756534201860, 8833643950905017979},
{40, 5, 8833643950905017980, 11713711145275834099},
{168, 5, 11713711145275834100, 13493690561280548288},
{4, 6, 13493690561280548289, 16373757755651364408},
{132, 6, 16373757755651364409, 18153737171656078597},
{68, 6, 18153737171656078598, 2587060292317343101},
{36, 6, 2587060292317343102, 5467127486688159221},
{164, 6, 5467127486688159222, 7247106902692873410},
{20, 6, 7247106902692873411, 10127174097063689530},
{148, 6, 10127174097063689531, 11907153513068403719},
{84, 6, 11907153513068403720, 14787220707439219839},
{2, 7, 14787220707439219840, 17667287901810035959},
{130, 7, 17667287901810035960, 1000523244105198532},
{66, 7, 1000523244105198533, 3880590438476014652},
{34, 7, 3880590438476014653, 6760657632846830772},
{162, 7, 6760657632846830773, 8540637048851544961},
{18, 7, 8540637048851544962, 11420704243222361081},
{146, 7, 11420704243222361082, 13200683659227075270},
{82, 7, 13200683659227075271, 16080750853597891390},
{10, 7, 16080750853597891391, 514073974259155894},
{138, 7, 514073974259155895, 2294053390263870083},
{74, 7, 2294053390263870084, 5174120584634686203},
{42, 7, 5174120584634686204, 8054187779005502323},
{170, 7, 8054187779005502324, 9834167195010216512},
{1, 8, 9834167195010216513, 12714234389381032632},
{129, 8, 12714234389381032633, 14494213805385746821},
{65, 8, 14494213805385746822, 17374280999756562941},
{33, 8, 17374280999756562942, 1807604120417827445},
{161, 8, 1807604120417827446, 3587583536422541634},
{17, 8, 3587583536422541635, 6467650730793357754},
{145, 8, 6467650730793357755, 8247630146798071943},
{81, 8, 8247630146798071944, 11127697341168888063},
{9, 8, 11127697341168888064, 14007764535539704183},
{137, 8, 14007764535539704184, 15787743951544418372},
{73, 8, 15787743951544418373, 221067072205682876},
{41, 8, 221067072205682877, 3101134266576498996},
{169, 8, 3101134266576498997, 4881113682581213185},
{5, 8, 4881113682581213186, 7761180876952029305},
{133, 8, 7761180876952029306, 9541160292956743494},
{69, 8, 9541160292956743495, 12421227487327559614},
{37, 8, 12421227487327559615, 15301294681698375734},
{165, 8, 15301294681698375735, 17081274097703089923},
{21, 8, 17081274097703089924, 1514597218364354427},
{149, 8, 1514597218364354428, 3294576634369068616},
{85, 8, 3294576634369068617, 18446744073709551615},
},
}