-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathkupyna_tables.c
537 lines (529 loc) · 48.3 KB
/
kupyna_tables.c
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
#include "kupyna_tables.h"
const uint64_t T0[256] = {
0xa832a829d77f9aa8ULL, 0x4352432297d41143ULL, 0x5f3e5fc2df80615fULL, 0x061e063014121806ULL,
0x6bda6b7f670cb16bULL, 0x75bc758f2356c975ULL, 0x6cc16c477519ad6cULL, 0x592059f2cb927959ULL,
0x71a871af3b4ad971ULL, 0xdf84dfb6f8275bdfULL, 0x87a1874c35b22687ULL, 0x95fb95dc59cc6e95ULL,
0x174b17b872655c17ULL, 0xf017f0d31aeae7f0ULL, 0xd89fd88eea3247d8ULL, 0x092d0948363f2409ULL,
0x6dc46d4f731ea96dULL, 0xf318f3cb10e3ebf3ULL, 0x1d691de84e53741dULL, 0xcbc0cb16804b0bcbULL,
0xc9cac9068c4503c9ULL, 0x4d644d52b3fe294dULL, 0x2c9c2c7de8c4b02cULL, 0xaf29af11c56a86afULL,
0x798079ef0b72f979ULL, 0xe047e0537a9aa7e0ULL, 0x97f197cc55c26697ULL, 0xfd2efdbb34c9d3fdULL,
0x6fce6f5f7f10a16fULL, 0x4b7a4b62a7ec314bULL, 0x454c451283c60945ULL, 0x39dd39d596afe439ULL,
0x3ec63eed84baf83eULL, 0xdd8edda6f42953ddULL, 0xa315a371ed4eb6a3ULL, 0x4f6e4f42bff0214fULL,
0xb45eb4c99f2beab4ULL, 0xb654b6d99325e2b6ULL, 0x9ac89aa47be1529aULL, 0x0e360e70242a380eULL,
0x1f631ff8425d7c1fULL, 0xbf79bf91a51ac6bfULL, 0x154115a87e6b5415ULL, 0xe142e15b7c9da3e1ULL,
0x49704972abe23949ULL, 0xd2bdd2ded6046fd2ULL, 0x93e593ec4dde7693ULL, 0xc6f9c67eae683fc6ULL,
0x92e092e44bd97292ULL, 0x72a772b73143d572ULL, 0x9edc9e8463fd429eULL, 0x61f8612f5b3a9961ULL,
0xd1b2d1c6dc0d63d1ULL, 0x63f2633f57349163ULL, 0xfa35fa8326dccffaULL, 0xee71ee235eb09feeULL,
0xf403f4f302f6f7f4ULL, 0x197d19c8564f6419ULL, 0xd5a6d5e6c41173d5ULL, 0xad23ad01c9648eadULL,
0x582558facd957d58ULL, 0xa40ea449ff5baaa4ULL, 0xbb6dbbb1bd06d6bbULL, 0xa11fa161e140bea1ULL,
0xdc8bdcaef22e57dcULL, 0xf21df2c316e4eff2ULL, 0x83b5836c2dae3683ULL, 0x37eb37a5b285dc37ULL,
0x4257422a91d31542ULL, 0xe453e4736286b7e4ULL, 0x7a8f7af7017bf57aULL, 0x32fa328dac9ec832ULL,
0x9cd69c946ff34a9cULL, 0xccdbcc2e925e17ccULL, 0xab3dab31dd7696abULL, 0x4a7f4a6aa1eb354aULL,
0x8f898f0c058a068fULL, 0x6ecb6e577917a56eULL, 0x04140420181c1004ULL, 0x27bb2725d2f59c27ULL,
0x2e962e6de4cab82eULL, 0xe75ce76b688fbbe7ULL, 0xe24de2437694afe2ULL, 0x5a2f5aeac19b755aULL,
0x96f496c453c56296ULL, 0x164e16b074625816ULL, 0x23af2305cae98c23ULL, 0x2b872b45fad1ac2bULL,
0xc2edc25eb6742fc2ULL, 0x65ec650f43268965ULL, 0x66e36617492f8566ULL, 0x0f330f78222d3c0fULL,
0xbc76bc89af13cabcULL, 0xa937a921d1789ea9ULL, 0x474647028fc80147ULL, 0x415841329bda1941ULL,
0x34e434bdb88cd034ULL, 0x4875487aade53d48ULL, 0xfc2bfcb332ced7fcULL, 0xb751b7d19522e6b7ULL,
0x6adf6a77610bb56aULL, 0x88928834179f1a88ULL, 0xa50ba541f95caea5ULL, 0x530253a2f7a45153ULL,
0x86a4864433b52286ULL, 0xf93af99b2cd5c3f9ULL, 0x5b2a5be2c79c715bULL, 0xdb90db96e03b4bdbULL,
0x38d838dd90a8e038ULL, 0x7b8a7bff077cf17bULL, 0xc3e8c356b0732bc3ULL, 0x1e661ef0445a781eULL,
0x22aa220dccee8822ULL, 0x33ff3385aa99cc33ULL, 0x24b4243dd8fc9024ULL, 0x2888285df0d8a028ULL,
0x36ee36adb482d836ULL, 0xc7fcc776a86f3bc7ULL, 0xb240b2f98b39f2b2ULL, 0x3bd73bc59aa1ec3bULL,
0x8e8c8e04038d028eULL, 0x77b6779f2f58c177ULL, 0xba68bab9bb01d2baULL, 0xf506f5fb04f1f3f5ULL,
0x144414a0786c5014ULL, 0x9fd99f8c65fa469fULL, 0x0828084030382008ULL, 0x551c5592e3b64955ULL,
0x9bcd9bac7de6569bULL, 0x4c614c5ab5f92d4cULL, 0xfe21fea33ec0dffeULL, 0x60fd60275d3d9d60ULL,
0x5c315cdad5896d5cULL, 0xda95da9ee63c4fdaULL, 0x187818c050486018ULL, 0x4643460a89cf0546ULL,
0xcddecd26945913cdULL, 0x7d947dcf136ee97dULL, 0x21a52115c6e78421ULL, 0xb04ab0e98737fab0ULL,
0x3fc33fe582bdfc3fULL, 0x1b771bd85a416c1bULL, 0x8997893c11981e89ULL, 0xff24ffab38c7dbffULL,
0xeb60eb0b40ab8bebULL, 0x84ae84543fbb2a84ULL, 0x69d0696f6b02b969ULL, 0x3ad23acd9ca6e83aULL,
0x9dd39d9c69f44e9dULL, 0xd7acd7f6c81f7bd7ULL, 0xd3b8d3d6d0036bd3ULL, 0x70ad70a73d4ddd70ULL,
0x67e6671f4f288167ULL, 0x405d403a9ddd1d40ULL, 0xb55bb5c1992ceeb5ULL, 0xde81debefe205fdeULL,
0x5d345dd2d38e695dULL, 0x30f0309da090c030ULL, 0x91ef91fc41d07e91ULL, 0xb14fb1e18130feb1ULL,
0x788578e70d75fd78ULL, 0x1155118866774411ULL, 0x0105010806070401ULL, 0xe556e57b6481b3e5ULL,
0x0000000000000000ULL, 0x68d568676d05bd68ULL, 0x98c298b477ef5a98ULL, 0xa01aa069e747baa0ULL,
0xc5f6c566a46133c5ULL, 0x020a02100c0e0802ULL, 0xa604a659f355a2a6ULL, 0x74b974872551cd74ULL,
0x2d992d75eec3b42dULL, 0x0b270b583a312c0bULL, 0xa210a279eb49b2a2ULL, 0x76b37697295fc576ULL,
0xb345b3f18d3ef6b3ULL, 0xbe7cbe99a31dc2beULL, 0xced1ce3e9e501fceULL, 0xbd73bd81a914cebdULL,
0xae2cae19c36d82aeULL, 0xe96ae91b4ca583e9ULL, 0x8a988a241b91128aULL, 0x31f53195a697c431ULL,
0x1c6c1ce04854701cULL, 0xec7bec3352be97ecULL, 0xf112f1db1cede3f1ULL, 0x99c799bc71e85e99ULL,
0x94fe94d45fcb6a94ULL, 0xaa38aa39db7192aaULL, 0xf609f6e30ef8fff6ULL, 0x26be262dd4f29826ULL,
0x2f932f65e2cdbc2fULL, 0xef74ef2b58b79befULL, 0xe86fe8134aa287e8ULL, 0x8c868c140f830a8cULL,
0x35e135b5be8bd435ULL, 0x030f03180a090c03ULL, 0xd4a3d4eec21677d4ULL, 0x7f9e7fdf1f60e17fULL,
0xfb30fb8b20dbcbfbULL, 0x051105281e1b1405ULL, 0xc1e2c146bc7d23c1ULL, 0x5e3b5ecad987655eULL,
0x90ea90f447d77a90ULL, 0x20a0201dc0e08020ULL, 0x3dc93df58eb3f43dULL, 0x82b082642ba93282ULL,
0xf70cf7eb08fffbf7ULL, 0xea65ea0346ac8feaULL, 0x0a220a503c36280aULL, 0x0d390d682e23340dULL,
0x7e9b7ed71967e57eULL, 0xf83ff8932ad2c7f8ULL, 0x500d50bafdad5d50ULL, 0x1a721ad05c46681aULL,
0xc4f3c46ea26637c4ULL, 0x071b073812151c07ULL, 0x57165782efb84157ULL, 0xb862b8a9b70fdab8ULL,
0x3ccc3cfd88b4f03cULL, 0x62f7623751339562ULL, 0xe348e34b7093abe3ULL, 0xc8cfc80e8a4207c8ULL,
0xac26ac09cf638aacULL, 0x520752aaf1a35552ULL, 0x64e9640745218d64ULL, 0x1050108060704010ULL,
0xd0b7d0ceda0a67d0ULL, 0xd99ad986ec3543d9ULL, 0x135f13986a794c13ULL, 0x0c3c0c602824300cULL,
0x125a12906c7e4812ULL, 0x298d2955f6dfa429ULL, 0x510851b2fbaa5951ULL, 0xb967b9a1b108deb9ULL,
0xcfd4cf3698571bcfULL, 0xd6a9d6fece187fd6ULL, 0x73a273bf3744d173ULL, 0x8d838d1c09840e8dULL,
0x81bf817c21a03e81ULL, 0x5419549ae5b14d54ULL, 0xc0e7c04eba7a27c0ULL, 0xed7eed3b54b993edULL,
0x4e6b4e4ab9f7254eULL, 0x4449441a85c10d44ULL, 0xa701a751f552a6a7ULL, 0x2a822a4dfcd6a82aULL,
0x85ab855c39bc2e85ULL, 0x25b12535defb9425ULL, 0xe659e6636e88bfe6ULL, 0xcac5ca1e864c0fcaULL,
0x7c917cc71569ed7cULL, 0x8b9d8b2c1d96168bULL, 0x5613568ae9bf4556ULL, 0x80ba807427a73a80ULL
};
const uint64_t T1[256] = {
0xd1ce3e9e501fceceULL, 0x6dbbb1bd06d6bbbbULL, 0x60eb0b40ab8bebebULL, 0xe092e44bd9729292ULL,
0x65ea0346ac8feaeaULL, 0xc0cb16804b0bcbcbULL, 0x5f13986a794c1313ULL, 0xe2c146bc7d23c1c1ULL,
0x6ae91b4ca583e9e9ULL, 0xd23acd9ca6e83a3aULL, 0xa9d6fece187fd6d6ULL, 0x40b2f98b39f2b2b2ULL,
0xbdd2ded6046fd2d2ULL, 0xea90f447d77a9090ULL, 0x4b17b872655c1717ULL, 0x3ff8932ad2c7f8f8ULL,
0x57422a91d3154242ULL, 0x4115a87e6b541515ULL, 0x13568ae9bf455656ULL, 0x5eb4c99f2beab4b4ULL,
0xec650f4326896565ULL, 0x6c1ce04854701c1cULL, 0x928834179f1a8888ULL, 0x52432297d4114343ULL,
0xf6c566a46133c5c5ULL, 0x315cdad5896d5c5cULL, 0xee36adb482d83636ULL, 0x68bab9bb01d2babaULL,
0x06f5fb04f1f3f5f5ULL, 0x165782efb8415757ULL, 0xe6671f4f28816767ULL, 0x838d1c09840e8d8dULL,
0xf53195a697c43131ULL, 0x09f6e30ef8fff6f6ULL, 0xe9640745218d6464ULL, 0x2558facd957d5858ULL,
0xdc9e8463fd429e9eULL, 0x03f4f302f6f7f4f4ULL, 0xaa220dccee882222ULL, 0x38aa39db7192aaaaULL,
0xbc758f2356c97575ULL, 0x330f78222d3c0f0fULL, 0x0a02100c0e080202ULL, 0x4fb1e18130feb1b1ULL,
0x84dfb6f8275bdfdfULL, 0xc46d4f731ea96d6dULL, 0xa273bf3744d17373ULL, 0x644d52b3fe294d4dULL,
0x917cc71569ed7c7cULL, 0xbe262dd4f2982626ULL, 0x962e6de4cab82e2eULL, 0x0cf7eb08fffbf7f7ULL,
0x2808403038200808ULL, 0x345dd2d38e695d5dULL, 0x49441a85c10d4444ULL, 0xc63eed84baf83e3eULL,
0xd99f8c65fa469f9fULL, 0x4414a0786c501414ULL, 0xcfc80e8a4207c8c8ULL, 0x2cae19c36d82aeaeULL,
0x19549ae5b14d5454ULL, 0x5010806070401010ULL, 0x9fd88eea3247d8d8ULL, 0x76bc89af13cabcbcULL,
0x721ad05c46681a1aULL, 0xda6b7f670cb16b6bULL, 0xd0696f6b02b96969ULL, 0x18f3cb10e3ebf3f3ULL,
0x73bd81a914cebdbdULL, 0xff3385aa99cc3333ULL, 0x3dab31dd7696ababULL, 0x35fa8326dccffafaULL,
0xb2d1c6dc0d63d1d1ULL, 0xcd9bac7de6569b9bULL, 0xd568676d05bd6868ULL, 0x6b4e4ab9f7254e4eULL,
0x4e16b07462581616ULL, 0xfb95dc59cc6e9595ULL, 0xef91fc41d07e9191ULL, 0x71ee235eb09feeeeULL,
0x614c5ab5f92d4c4cULL, 0xf2633f5734916363ULL, 0x8c8e04038d028e8eULL, 0x2a5be2c79c715b5bULL,
0xdbcc2e925e17ccccULL, 0xcc3cfd88b4f03c3cULL, 0x7d19c8564f641919ULL, 0x1fa161e140bea1a1ULL,
0xbf817c21a03e8181ULL, 0x704972abe2394949ULL, 0x8a7bff077cf17b7bULL, 0x9ad986ec3543d9d9ULL,
0xce6f5f7f10a16f6fULL, 0xeb37a5b285dc3737ULL, 0xfd60275d3d9d6060ULL, 0xc5ca1e864c0fcacaULL,
0x5ce76b688fbbe7e7ULL, 0x872b45fad1ac2b2bULL, 0x75487aade53d4848ULL, 0x2efdbb34c9d3fdfdULL,
0xf496c453c5629696ULL, 0x4c451283c6094545ULL, 0x2bfcb332ced7fcfcULL, 0x5841329bda194141ULL,
0x5a12906c7e481212ULL, 0x390d682e23340d0dULL, 0x8079ef0b72f97979ULL, 0x56e57b6481b3e5e5ULL,
0x97893c11981e8989ULL, 0x868c140f830a8c8cULL, 0x48e34b7093abe3e3ULL, 0xa0201dc0e0802020ULL,
0xf0309da090c03030ULL, 0x8bdcaef22e57dcdcULL, 0x51b7d19522e6b7b7ULL, 0xc16c477519ad6c6cULL,
0x7f4a6aa1eb354a4aULL, 0x5bb5c1992ceeb5b5ULL, 0xc33fe582bdfc3f3fULL, 0xf197cc55c2669797ULL,
0xa3d4eec21677d4d4ULL, 0xf762375133956262ULL, 0x992d75eec3b42d2dULL, 0x1e06301412180606ULL,
0x0ea449ff5baaa4a4ULL, 0x0ba541f95caea5a5ULL, 0xb5836c2dae368383ULL, 0x3e5fc2df80615f5fULL,
0x822a4dfcd6a82a2aULL, 0x95da9ee63c4fdadaULL, 0xcac9068c4503c9c9ULL, 0x0000000000000000ULL,
0x9b7ed71967e57e7eULL, 0x10a279eb49b2a2a2ULL, 0x1c5592e3b6495555ULL, 0x79bf91a51ac6bfbfULL,
0x5511886677441111ULL, 0xa6d5e6c41173d5d5ULL, 0xd69c946ff34a9c9cULL, 0xd4cf3698571bcfcfULL,
0x360e70242a380e0eULL, 0x220a503c36280a0aULL, 0xc93df58eb3f43d3dULL, 0x0851b2fbaa595151ULL,
0x947dcf136ee97d7dULL, 0xe593ec4dde769393ULL, 0x771bd85a416c1b1bULL, 0x21fea33ec0dffefeULL,
0xf3c46ea26637c4c4ULL, 0x4647028fc8014747ULL, 0x2d0948363f240909ULL, 0xa4864433b5228686ULL,
0x270b583a312c0b0bULL, 0x898f0c058a068f8fULL, 0xd39d9c69f44e9d9dULL, 0xdf6a77610bb56a6aULL,
0x1b073812151c0707ULL, 0x67b9a1b108deb9b9ULL, 0x4ab0e98737fab0b0ULL, 0xc298b477ef5a9898ULL,
0x7818c05048601818ULL, 0xfa328dac9ec83232ULL, 0xa871af3b4ad97171ULL, 0x7a4b62a7ec314b4bULL,
0x74ef2b58b79befefULL, 0xd73bc59aa1ec3b3bULL, 0xad70a73d4ddd7070ULL, 0x1aa069e747baa0a0ULL,
0x53e4736286b7e4e4ULL, 0x5d403a9ddd1d4040ULL, 0x24ffab38c7dbffffULL, 0xe8c356b0732bc3c3ULL,
0x37a921d1789ea9a9ULL, 0x59e6636e88bfe6e6ULL, 0x8578e70d75fd7878ULL, 0x3af99b2cd5c3f9f9ULL,
0x9d8b2c1d96168b8bULL, 0x43460a89cf054646ULL, 0xba807427a73a8080ULL, 0x661ef0445a781e1eULL,
0xd838dd90a8e03838ULL, 0x42e15b7c9da3e1e1ULL, 0x62b8a9b70fdab8b8ULL, 0x32a829d77f9aa8a8ULL,
0x47e0537a9aa7e0e0ULL, 0x3c0c602824300c0cULL, 0xaf2305cae98c2323ULL, 0xb37697295fc57676ULL,
0x691de84e53741d1dULL, 0xb12535defb942525ULL, 0xb4243dd8fc902424ULL, 0x1105281e1b140505ULL,
0x12f1db1cede3f1f1ULL, 0xcb6e577917a56e6eULL, 0xfe94d45fcb6a9494ULL, 0x88285df0d8a02828ULL,
0xc89aa47be1529a9aULL, 0xae84543fbb2a8484ULL, 0x6fe8134aa287e8e8ULL, 0x15a371ed4eb6a3a3ULL,
0x6e4f42bff0214f4fULL, 0xb6779f2f58c17777ULL, 0xb8d3d6d0036bd3d3ULL, 0xab855c39bc2e8585ULL,
0x4de2437694afe2e2ULL, 0x0752aaf1a3555252ULL, 0x1df2c316e4eff2f2ULL, 0xb082642ba9328282ULL,
0x0d50bafdad5d5050ULL, 0x8f7af7017bf57a7aULL, 0x932f65e2cdbc2f2fULL, 0xb974872551cd7474ULL,
0x0253a2f7a4515353ULL, 0x45b3f18d3ef6b3b3ULL, 0xf8612f5b3a996161ULL, 0x29af11c56a86afafULL,
0xdd39d596afe43939ULL, 0xe135b5be8bd43535ULL, 0x81debefe205fdedeULL, 0xdecd26945913cdcdULL,
0x631ff8425d7c1f1fULL, 0xc799bc71e85e9999ULL, 0x26ac09cf638aacacULL, 0x23ad01c9648eadadULL,
0xa772b73143d57272ULL, 0x9c2c7de8c4b02c2cULL, 0x8edda6f42953ddddULL, 0xb7d0ceda0a67d0d0ULL,
0xa1874c35b2268787ULL, 0x7cbe99a31dc2bebeULL, 0x3b5ecad987655e5eULL, 0x04a659f355a2a6a6ULL,
0x7bec3352be97ececULL, 0x140420181c100404ULL, 0xf9c67eae683fc6c6ULL, 0x0f03180a090c0303ULL,
0xe434bdb88cd03434ULL, 0x30fb8b20dbcbfbfbULL, 0x90db96e03b4bdbdbULL, 0x2059f2cb92795959ULL,
0x54b6d99325e2b6b6ULL, 0xedc25eb6742fc2c2ULL, 0x0501080607040101ULL, 0x17f0d31aeae7f0f0ULL,
0x2f5aeac19b755a5aULL, 0x7eed3b54b993ededULL, 0x01a751f552a6a7a7ULL, 0xe36617492f856666ULL,
0xa52115c6e7842121ULL, 0x9e7fdf1f60e17f7fULL, 0x988a241b91128a8aULL, 0xbb2725d2f59c2727ULL,
0xfcc776a86f3bc7c7ULL, 0xe7c04eba7a27c0c0ULL, 0x8d2955f6dfa42929ULL, 0xacd7f6c81f7bd7d7ULL
};
const uint64_t T2[256] = {
0x93ec4dde769393e5ULL, 0xd986ec3543d9d99aULL, 0x9aa47be1529a9ac8ULL, 0xb5c1992ceeb5b55bULL,
0x98b477ef5a9898c2ULL, 0x220dccee882222aaULL, 0x451283c60945454cULL, 0xfcb332ced7fcfc2bULL,
0xbab9bb01d2baba68ULL, 0x6a77610bb56a6adfULL, 0xdfb6f8275bdfdf84ULL, 0x02100c0e0802020aULL,
0x9f8c65fa469f9fd9ULL, 0xdcaef22e57dcdc8bULL, 0x51b2fbaa59515108ULL, 0x59f2cb9279595920ULL,
0x4a6aa1eb354a4a7fULL, 0x17b872655c17174bULL, 0x2b45fad1ac2b2b87ULL, 0xc25eb6742fc2c2edULL,
0x94d45fcb6a9494feULL, 0xf4f302f6f7f4f403ULL, 0xbbb1bd06d6bbbb6dULL, 0xa371ed4eb6a3a315ULL,
0x62375133956262f7ULL, 0xe4736286b7e4e453ULL, 0x71af3b4ad97171a8ULL, 0xd4eec21677d4d4a3ULL,
0xcd26945913cdcddeULL, 0x70a73d4ddd7070adULL, 0x16b074625816164eULL, 0xe15b7c9da3e1e142ULL,
0x4972abe239494970ULL, 0x3cfd88b4f03c3cccULL, 0xc04eba7a27c0c0e7ULL, 0xd88eea3247d8d89fULL,
0x5cdad5896d5c5c31ULL, 0x9bac7de6569b9bcdULL, 0xad01c9648eadad23ULL, 0x855c39bc2e8585abULL,
0x53a2f7a451535302ULL, 0xa161e140bea1a11fULL, 0x7af7017bf57a7a8fULL, 0xc80e8a4207c8c8cfULL,
0x2d75eec3b42d2d99ULL, 0xe0537a9aa7e0e047ULL, 0xd1c6dc0d63d1d1b2ULL, 0x72b73143d57272a7ULL,
0xa659f355a2a6a604ULL, 0x2c7de8c4b02c2c9cULL, 0xc46ea26637c4c4f3ULL, 0xe34b7093abe3e348ULL,
0x7697295fc57676b3ULL, 0x78e70d75fd787885ULL, 0xb7d19522e6b7b751ULL, 0xb4c99f2beab4b45eULL,
0x0948363f2409092dULL, 0x3bc59aa1ec3b3bd7ULL, 0x0e70242a380e0e36ULL, 0x41329bda19414158ULL,
0x4c5ab5f92d4c4c61ULL, 0xdebefe205fdede81ULL, 0xb2f98b39f2b2b240ULL, 0x90f447d77a9090eaULL,
0x2535defb942525b1ULL, 0xa541f95caea5a50bULL, 0xd7f6c81f7bd7d7acULL, 0x03180a090c03030fULL,
0x1188667744111155ULL, 0x0000000000000000ULL, 0xc356b0732bc3c3e8ULL, 0x2e6de4cab82e2e96ULL,
0x92e44bd9729292e0ULL, 0xef2b58b79befef74ULL, 0x4e4ab9f7254e4e6bULL, 0x12906c7e4812125aULL,
0x9d9c69f44e9d9dd3ULL, 0x7dcf136ee97d7d94ULL, 0xcb16804b0bcbcbc0ULL, 0x35b5be8bd43535e1ULL,
0x1080607040101050ULL, 0xd5e6c41173d5d5a6ULL, 0x4f42bff0214f4f6eULL, 0x9e8463fd429e9edcULL,
0x4d52b3fe294d4d64ULL, 0xa921d1789ea9a937ULL, 0x5592e3b64955551cULL, 0xc67eae683fc6c6f9ULL,
0xd0ceda0a67d0d0b7ULL, 0x7bff077cf17b7b8aULL, 0x18c0504860181878ULL, 0x97cc55c2669797f1ULL,
0xd3d6d0036bd3d3b8ULL, 0x36adb482d83636eeULL, 0xe6636e88bfe6e659ULL, 0x487aade53d484875ULL,
0x568ae9bf45565613ULL, 0x817c21a03e8181bfULL, 0x8f0c058a068f8f89ULL, 0x779f2f58c17777b6ULL,
0xcc2e925e17ccccdbULL, 0x9c946ff34a9c9cd6ULL, 0xb9a1b108deb9b967ULL, 0xe2437694afe2e24dULL,
0xac09cf638aacac26ULL, 0xb8a9b70fdab8b862ULL, 0x2f65e2cdbc2f2f93ULL, 0x15a87e6b54151541ULL,
0xa449ff5baaa4a40eULL, 0x7cc71569ed7c7c91ULL, 0xda9ee63c4fdada95ULL, 0x38dd90a8e03838d8ULL,
0x1ef0445a781e1e66ULL, 0x0b583a312c0b0b27ULL, 0x05281e1b14050511ULL, 0xd6fece187fd6d6a9ULL,
0x14a0786c50141444ULL, 0x6e577917a56e6ecbULL, 0x6c477519ad6c6cc1ULL, 0x7ed71967e57e7e9bULL,
0x6617492f856666e3ULL, 0xfdbb34c9d3fdfd2eULL, 0xb1e18130feb1b14fULL, 0xe57b6481b3e5e556ULL,
0x60275d3d9d6060fdULL, 0xaf11c56a86afaf29ULL, 0x5ecad987655e5e3bULL, 0x3385aa99cc3333ffULL,
0x874c35b2268787a1ULL, 0xc9068c4503c9c9caULL, 0xf0d31aeae7f0f017ULL, 0x5dd2d38e695d5d34ULL,
0x6d4f731ea96d6dc4ULL, 0x3fe582bdfc3f3fc3ULL, 0x8834179f1a888892ULL, 0x8d1c09840e8d8d83ULL,
0xc776a86f3bc7c7fcULL, 0xf7eb08fffbf7f70cULL, 0x1de84e53741d1d69ULL, 0xe91b4ca583e9e96aULL,
0xec3352be97ecec7bULL, 0xed3b54b993eded7eULL, 0x807427a73a8080baULL, 0x2955f6dfa429298dULL,
0x2725d2f59c2727bbULL, 0xcf3698571bcfcfd4ULL, 0x99bc71e85e9999c7ULL, 0xa829d77f9aa8a832ULL,
0x50bafdad5d50500dULL, 0x0f78222d3c0f0f33ULL, 0x37a5b285dc3737ebULL, 0x243dd8fc902424b4ULL,
0x285df0d8a0282888ULL, 0x309da090c03030f0ULL, 0x95dc59cc6e9595fbULL, 0xd2ded6046fd2d2bdULL,
0x3eed84baf83e3ec6ULL, 0x5be2c79c715b5b2aULL, 0x403a9ddd1d40405dULL, 0x836c2dae368383b5ULL,
0xb3f18d3ef6b3b345ULL, 0x696f6b02b96969d0ULL, 0x5782efb841575716ULL, 0x1ff8425d7c1f1f63ULL,
0x073812151c07071bULL, 0x1ce04854701c1c6cULL, 0x8a241b91128a8a98ULL, 0xbc89af13cabcbc76ULL,
0x201dc0e0802020a0ULL, 0xeb0b40ab8bebeb60ULL, 0xce3e9e501fceced1ULL, 0x8e04038d028e8e8cULL,
0xab31dd7696abab3dULL, 0xee235eb09feeee71ULL, 0x3195a697c43131f5ULL, 0xa279eb49b2a2a210ULL,
0x73bf3744d17373a2ULL, 0xf99b2cd5c3f9f93aULL, 0xca1e864c0fcacac5ULL, 0x3acd9ca6e83a3ad2ULL,
0x1ad05c46681a1a72ULL, 0xfb8b20dbcbfbfb30ULL, 0x0d682e23340d0d39ULL, 0xc146bc7d23c1c1e2ULL,
0xfea33ec0dffefe21ULL, 0xfa8326dccffafa35ULL, 0xf2c316e4eff2f21dULL, 0x6f5f7f10a16f6fceULL,
0xbd81a914cebdbd73ULL, 0x96c453c5629696f4ULL, 0xdda6f42953dddd8eULL, 0x432297d411434352ULL,
0x52aaf1a355525207ULL, 0xb6d99325e2b6b654ULL, 0x0840303820080828ULL, 0xf3cb10e3ebf3f318ULL,
0xae19c36d82aeae2cULL, 0xbe99a31dc2bebe7cULL, 0x19c8564f6419197dULL, 0x893c11981e898997ULL,
0x328dac9ec83232faULL, 0x262dd4f2982626beULL, 0xb0e98737fab0b04aULL, 0xea0346ac8feaea65ULL,
0x4b62a7ec314b4b7aULL, 0x640745218d6464e9ULL, 0x84543fbb2a8484aeULL, 0x82642ba9328282b0ULL,
0x6b7f670cb16b6bdaULL, 0xf5fb04f1f3f5f506ULL, 0x79ef0b72f9797980ULL, 0xbf91a51ac6bfbf79ULL,
0x0108060704010105ULL, 0x5fc2df80615f5f3eULL, 0x758f2356c97575bcULL, 0x633f5734916363f2ULL,
0x1bd85a416c1b1b77ULL, 0x2305cae98c2323afULL, 0x3df58eb3f43d3dc9ULL, 0x68676d05bd6868d5ULL,
0x2a4dfcd6a82a2a82ULL, 0x650f4326896565ecULL, 0xe8134aa287e8e86fULL, 0x91fc41d07e9191efULL,
0xf6e30ef8fff6f609ULL, 0xffab38c7dbffff24ULL, 0x13986a794c13135fULL, 0x58facd957d585825ULL,
0xf1db1cede3f1f112ULL, 0x47028fc801474746ULL, 0x0a503c36280a0a22ULL, 0x7fdf1f60e17f7f9eULL,
0xc566a46133c5c5f6ULL, 0xa751f552a6a7a701ULL, 0xe76b688fbbe7e75cULL, 0x612f5b3a996161f8ULL,
0x5aeac19b755a5a2fULL, 0x063014121806061eULL, 0x460a89cf05464643ULL, 0x441a85c10d444449ULL,
0x422a91d315424257ULL, 0x0420181c10040414ULL, 0xa069e747baa0a01aULL, 0xdb96e03b4bdbdb90ULL,
0x39d596afe43939ddULL, 0x864433b5228686a4ULL, 0x549ae5b14d545419ULL, 0xaa39db7192aaaa38ULL,
0x8c140f830a8c8c86ULL, 0x34bdb88cd03434e4ULL, 0x2115c6e7842121a5ULL, 0x8b2c1d96168b8b9dULL,
0xf8932ad2c7f8f83fULL, 0x0c602824300c0c3cULL, 0x74872551cd7474b9ULL, 0x671f4f28816767e6ULL
};
const uint64_t T3[256] = {
0x676d05bd6868d568ULL, 0x1c09840e8d8d838dULL, 0x1e864c0fcacac5caULL, 0x52b3fe294d4d644dULL,
0xbf3744d17373a273ULL, 0x62a7ec314b4b7a4bULL, 0x4ab9f7254e4e6b4eULL, 0x4dfcd6a82a2a822aULL,
0xeec21677d4d4a3d4ULL, 0xaaf1a35552520752ULL, 0x2dd4f2982626be26ULL, 0xf18d3ef6b3b345b3ULL,
0x9ae5b14d54541954ULL, 0xf0445a781e1e661eULL, 0xc8564f6419197d19ULL, 0xf8425d7c1f1f631fULL,
0x0dccee882222aa22ULL, 0x180a090c03030f03ULL, 0x0a89cf0546464346ULL, 0xf58eb3f43d3dc93dULL,
0x75eec3b42d2d992dULL, 0x6aa1eb354a4a7f4aULL, 0xa2f7a45153530253ULL, 0x6c2dae368383b583ULL,
0x986a794c13135f13ULL, 0x241b91128a8a988aULL, 0xd19522e6b7b751b7ULL, 0xe6c41173d5d5a6d5ULL,
0x35defb942525b125ULL, 0xef0b72f979798079ULL, 0xfb04f1f3f5f506f5ULL, 0x81a914cebdbd73bdULL,
0xfacd957d58582558ULL, 0x65e2cdbc2f2f932fULL, 0x682e23340d0d390dULL, 0x100c0e0802020a02ULL,
0x3b54b993eded7eedULL, 0xb2fbaa5951510851ULL, 0x8463fd429e9edc9eULL, 0x8866774411115511ULL,
0xc316e4eff2f21df2ULL, 0xed84baf83e3ec63eULL, 0x92e3b64955551c55ULL, 0xcad987655e5e3b5eULL,
0xc6dc0d63d1d1b2d1ULL, 0xb074625816164e16ULL, 0xfd88b4f03c3ccc3cULL, 0x17492f856666e366ULL,
0xa73d4ddd7070ad70ULL, 0xd2d38e695d5d345dULL, 0xcb10e3ebf3f318f3ULL, 0x1283c60945454c45ULL,
0x3a9ddd1d40405d40ULL, 0x2e925e17ccccdbccULL, 0x134aa287e8e86fe8ULL, 0xd45fcb6a9494fe94ULL,
0x8ae9bf4556561356ULL, 0x4030382008082808ULL, 0x3e9e501fceced1ceULL, 0xd05c46681a1a721aULL,
0xcd9ca6e83a3ad23aULL, 0xded6046fd2d2bdd2ULL, 0x5b7c9da3e1e142e1ULL, 0xb6f8275bdfdf84dfULL,
0xc1992ceeb5b55bb5ULL, 0xdd90a8e03838d838ULL, 0x577917a56e6ecb6eULL, 0x70242a380e0e360eULL,
0x7b6481b3e5e556e5ULL, 0xf302f6f7f4f403f4ULL, 0x9b2cd5c3f9f93af9ULL, 0x4433b5228686a486ULL,
0x1b4ca583e9e96ae9ULL, 0x42bff0214f4f6e4fULL, 0xfece187fd6d6a9d6ULL, 0x5c39bc2e8585ab85ULL,
0x05cae98c2323af23ULL, 0x3698571bcfcfd4cfULL, 0x8dac9ec83232fa32ULL, 0xbc71e85e9999c799ULL,
0x95a697c43131f531ULL, 0xa0786c5014144414ULL, 0x19c36d82aeae2caeULL, 0x235eb09feeee71eeULL,
0x0e8a4207c8c8cfc8ULL, 0x7aade53d48487548ULL, 0xd6d0036bd3d3b8d3ULL, 0x9da090c03030f030ULL,
0x61e140bea1a11fa1ULL, 0xe44bd9729292e092ULL, 0x329bda1941415841ULL, 0xe18130feb1b14fb1ULL,
0xc050486018187818ULL, 0x6ea26637c4c4f3c4ULL, 0x7de8c4b02c2c9c2cULL, 0xaf3b4ad97171a871ULL,
0xb73143d57272a772ULL, 0x1a85c10d44444944ULL, 0xa87e6b5415154115ULL, 0xbb34c9d3fdfd2efdULL,
0xa5b285dc3737eb37ULL, 0x99a31dc2bebe7cbeULL, 0xc2df80615f5f3e5fULL, 0x39db7192aaaa38aaULL,
0xac7de6569b9bcd9bULL, 0x34179f1a88889288ULL, 0x8eea3247d8d89fd8ULL, 0x31dd7696abab3dabULL,
0x3c11981e89899789ULL, 0x946ff34a9c9cd69cULL, 0x8326dccffafa35faULL, 0x275d3d9d6060fd60ULL,
0x0346ac8feaea65eaULL, 0x89af13cabcbc76bcULL, 0x375133956262f762ULL, 0x602824300c0c3c0cULL,
0x3dd8fc902424b424ULL, 0x59f355a2a6a604a6ULL, 0x29d77f9aa8a832a8ULL, 0x3352be97ecec7becULL,
0x1f4f28816767e667ULL, 0x1dc0e0802020a020ULL, 0x96e03b4bdbdb90dbULL, 0xc71569ed7c7c917cULL,
0x5df0d8a028288828ULL, 0xa6f42953dddd8eddULL, 0x09cf638aacac26acULL, 0xe2c79c715b5b2a5bULL,
0xbdb88cd03434e434ULL, 0xd71967e57e7e9b7eULL, 0x8060704010105010ULL, 0xdb1cede3f1f112f1ULL,
0xff077cf17b7b8a7bULL, 0x0c058a068f8f898fULL, 0x3f5734916363f263ULL, 0x69e747baa0a01aa0ULL,
0x281e1b1405051105ULL, 0xa47be1529a9ac89aULL, 0x2297d41143435243ULL, 0x9f2f58c17777b677ULL,
0x15c6e7842121a521ULL, 0x91a51ac6bfbf79bfULL, 0x25d2f59c2727bb27ULL, 0x48363f2409092d09ULL,
0x56b0732bc3c3e8c3ULL, 0x8c65fa469f9fd99fULL, 0xd99325e2b6b654b6ULL, 0xf6c81f7bd7d7acd7ULL,
0x55f6dfa429298d29ULL, 0x5eb6742fc2c2edc2ULL, 0x0b40ab8bebeb60ebULL, 0x4eba7a27c0c0e7c0ULL,
0x49ff5baaa4a40ea4ULL, 0x2c1d96168b8b9d8bULL, 0x140f830a8c8c868cULL, 0xe84e53741d1d691dULL,
0x8b20dbcbfbfb30fbULL, 0xab38c7dbffff24ffULL, 0x46bc7d23c1c1e2c1ULL, 0xf98b39f2b2b240b2ULL,
0xcc55c2669797f197ULL, 0x6de4cab82e2e962eULL, 0x932ad2c7f8f83ff8ULL, 0x0f4326896565ec65ULL,
0xe30ef8fff6f609f6ULL, 0x8f2356c97575bc75ULL, 0x3812151c07071b07ULL, 0x20181c1004041404ULL,
0x72abe23949497049ULL, 0x85aa99cc3333ff33ULL, 0x736286b7e4e453e4ULL, 0x86ec3543d9d99ad9ULL,
0xa1b108deb9b967b9ULL, 0xceda0a67d0d0b7d0ULL, 0x2a91d31542425742ULL, 0x76a86f3bc7c7fcc7ULL,
0x477519ad6c6cc16cULL, 0xf447d77a9090ea90ULL, 0x0000000000000000ULL, 0x04038d028e8e8c8eULL,
0x5f7f10a16f6fce6fULL, 0xbafdad5d50500d50ULL, 0x0806070401010501ULL, 0x66a46133c5c5f6c5ULL,
0x9ee63c4fdada95daULL, 0x028fc80147474647ULL, 0xe582bdfc3f3fc33fULL, 0x26945913cdcddecdULL,
0x6f6b02b96969d069ULL, 0x79eb49b2a2a210a2ULL, 0x437694afe2e24de2ULL, 0xf7017bf57a7a8f7aULL,
0x51f552a6a7a701a7ULL, 0x7eae683fc6c6f9c6ULL, 0xec4dde769393e593ULL, 0x78222d3c0f0f330fULL,
0x503c36280a0a220aULL, 0x3014121806061e06ULL, 0x636e88bfe6e659e6ULL, 0x45fad1ac2b2b872bULL,
0xc453c5629696f496ULL, 0x71ed4eb6a3a315a3ULL, 0xe04854701c1c6c1cULL, 0x11c56a86afaf29afULL,
0x77610bb56a6adf6aULL, 0x906c7e4812125a12ULL, 0x543fbb2a8484ae84ULL, 0xd596afe43939dd39ULL,
0x6b688fbbe7e75ce7ULL, 0xe98737fab0b04ab0ULL, 0x642ba9328282b082ULL, 0xeb08fffbf7f70cf7ULL,
0xa33ec0dffefe21feULL, 0x9c69f44e9d9dd39dULL, 0x4c35b2268787a187ULL, 0xdad5896d5c5c315cULL,
0x7c21a03e8181bf81ULL, 0xb5be8bd43535e135ULL, 0xbefe205fdede81deULL, 0xc99f2beab4b45eb4ULL,
0x41f95caea5a50ba5ULL, 0xb332ced7fcfc2bfcULL, 0x7427a73a8080ba80ULL, 0x2b58b79befef74efULL,
0x16804b0bcbcbc0cbULL, 0xb1bd06d6bbbb6dbbULL, 0x7f670cb16b6bda6bULL, 0x97295fc57676b376ULL,
0xb9bb01d2baba68baULL, 0xeac19b755a5a2f5aULL, 0xcf136ee97d7d947dULL, 0xe70d75fd78788578ULL,
0x583a312c0b0b270bULL, 0xdc59cc6e9595fb95ULL, 0x4b7093abe3e348e3ULL, 0x01c9648eadad23adULL,
0x872551cd7474b974ULL, 0xb477ef5a9898c298ULL, 0xc59aa1ec3b3bd73bULL, 0xadb482d83636ee36ULL,
0x0745218d6464e964ULL, 0x4f731ea96d6dc46dULL, 0xaef22e57dcdc8bdcULL, 0xd31aeae7f0f017f0ULL,
0xf2cb927959592059ULL, 0x21d1789ea9a937a9ULL, 0x5ab5f92d4c4c614cULL, 0xb872655c17174b17ULL,
0xdf1f60e17f7f9e7fULL, 0xfc41d07e9191ef91ULL, 0xa9b70fdab8b862b8ULL, 0x068c4503c9c9cac9ULL,
0x82efb84157571657ULL, 0xd85a416c1b1b771bULL, 0x537a9aa7e0e047e0ULL, 0x2f5b3a996161f861ULL
};
const uint64_t T4[256] = {
0xd77f9aa8a832a829ULL, 0x97d4114343524322ULL, 0xdf80615f5f3e5fc2ULL, 0x14121806061e0630ULL,
0x670cb16b6bda6b7fULL, 0x2356c97575bc758fULL, 0x7519ad6c6cc16c47ULL, 0xcb927959592059f2ULL,
0x3b4ad97171a871afULL, 0xf8275bdfdf84dfb6ULL, 0x35b2268787a1874cULL, 0x59cc6e9595fb95dcULL,
0x72655c17174b17b8ULL, 0x1aeae7f0f017f0d3ULL, 0xea3247d8d89fd88eULL, 0x363f2409092d0948ULL,
0x731ea96d6dc46d4fULL, 0x10e3ebf3f318f3cbULL, 0x4e53741d1d691de8ULL, 0x804b0bcbcbc0cb16ULL,
0x8c4503c9c9cac906ULL, 0xb3fe294d4d644d52ULL, 0xe8c4b02c2c9c2c7dULL, 0xc56a86afaf29af11ULL,
0x0b72f979798079efULL, 0x7a9aa7e0e047e053ULL, 0x55c2669797f197ccULL, 0x34c9d3fdfd2efdbbULL,
0x7f10a16f6fce6f5fULL, 0xa7ec314b4b7a4b62ULL, 0x83c60945454c4512ULL, 0x96afe43939dd39d5ULL,
0x84baf83e3ec63eedULL, 0xf42953dddd8edda6ULL, 0xed4eb6a3a315a371ULL, 0xbff0214f4f6e4f42ULL,
0x9f2beab4b45eb4c9ULL, 0x9325e2b6b654b6d9ULL, 0x7be1529a9ac89aa4ULL, 0x242a380e0e360e70ULL,
0x425d7c1f1f631ff8ULL, 0xa51ac6bfbf79bf91ULL, 0x7e6b5415154115a8ULL, 0x7c9da3e1e142e15bULL,
0xabe2394949704972ULL, 0xd6046fd2d2bdd2deULL, 0x4dde769393e593ecULL, 0xae683fc6c6f9c67eULL,
0x4bd9729292e092e4ULL, 0x3143d57272a772b7ULL, 0x63fd429e9edc9e84ULL, 0x5b3a996161f8612fULL,
0xdc0d63d1d1b2d1c6ULL, 0x5734916363f2633fULL, 0x26dccffafa35fa83ULL, 0x5eb09feeee71ee23ULL,
0x02f6f7f4f403f4f3ULL, 0x564f6419197d19c8ULL, 0xc41173d5d5a6d5e6ULL, 0xc9648eadad23ad01ULL,
0xcd957d58582558faULL, 0xff5baaa4a40ea449ULL, 0xbd06d6bbbb6dbbb1ULL, 0xe140bea1a11fa161ULL,
0xf22e57dcdc8bdcaeULL, 0x16e4eff2f21df2c3ULL, 0x2dae368383b5836cULL, 0xb285dc3737eb37a5ULL,
0x91d315424257422aULL, 0x6286b7e4e453e473ULL, 0x017bf57a7a8f7af7ULL, 0xac9ec83232fa328dULL,
0x6ff34a9c9cd69c94ULL, 0x925e17ccccdbcc2eULL, 0xdd7696abab3dab31ULL, 0xa1eb354a4a7f4a6aULL,
0x058a068f8f898f0cULL, 0x7917a56e6ecb6e57ULL, 0x181c100404140420ULL, 0xd2f59c2727bb2725ULL,
0xe4cab82e2e962e6dULL, 0x688fbbe7e75ce76bULL, 0x7694afe2e24de243ULL, 0xc19b755a5a2f5aeaULL,
0x53c5629696f496c4ULL, 0x74625816164e16b0ULL, 0xcae98c2323af2305ULL, 0xfad1ac2b2b872b45ULL,
0xb6742fc2c2edc25eULL, 0x4326896565ec650fULL, 0x492f856666e36617ULL, 0x222d3c0f0f330f78ULL,
0xaf13cabcbc76bc89ULL, 0xd1789ea9a937a921ULL, 0x8fc8014747464702ULL, 0x9bda194141584132ULL,
0xb88cd03434e434bdULL, 0xade53d484875487aULL, 0x32ced7fcfc2bfcb3ULL, 0x9522e6b7b751b7d1ULL,
0x610bb56a6adf6a77ULL, 0x179f1a8888928834ULL, 0xf95caea5a50ba541ULL, 0xf7a45153530253a2ULL,
0x33b5228686a48644ULL, 0x2cd5c3f9f93af99bULL, 0xc79c715b5b2a5be2ULL, 0xe03b4bdbdb90db96ULL,
0x90a8e03838d838ddULL, 0x077cf17b7b8a7bffULL, 0xb0732bc3c3e8c356ULL, 0x445a781e1e661ef0ULL,
0xccee882222aa220dULL, 0xaa99cc3333ff3385ULL, 0xd8fc902424b4243dULL, 0xf0d8a0282888285dULL,
0xb482d83636ee36adULL, 0xa86f3bc7c7fcc776ULL, 0x8b39f2b2b240b2f9ULL, 0x9aa1ec3b3bd73bc5ULL,
0x038d028e8e8c8e04ULL, 0x2f58c17777b6779fULL, 0xbb01d2baba68bab9ULL, 0x04f1f3f5f506f5fbULL,
0x786c5014144414a0ULL, 0x65fa469f9fd99f8cULL, 0x3038200808280840ULL, 0xe3b64955551c5592ULL,
0x7de6569b9bcd9bacULL, 0xb5f92d4c4c614c5aULL, 0x3ec0dffefe21fea3ULL, 0x5d3d9d6060fd6027ULL,
0xd5896d5c5c315cdaULL, 0xe63c4fdada95da9eULL, 0x50486018187818c0ULL, 0x89cf05464643460aULL,
0x945913cdcddecd26ULL, 0x136ee97d7d947dcfULL, 0xc6e7842121a52115ULL, 0x8737fab0b04ab0e9ULL,
0x82bdfc3f3fc33fe5ULL, 0x5a416c1b1b771bd8ULL, 0x11981e898997893cULL, 0x38c7dbffff24ffabULL,
0x40ab8bebeb60eb0bULL, 0x3fbb2a8484ae8454ULL, 0x6b02b96969d0696fULL, 0x9ca6e83a3ad23acdULL,
0x69f44e9d9dd39d9cULL, 0xc81f7bd7d7acd7f6ULL, 0xd0036bd3d3b8d3d6ULL, 0x3d4ddd7070ad70a7ULL,
0x4f28816767e6671fULL, 0x9ddd1d40405d403aULL, 0x992ceeb5b55bb5c1ULL, 0xfe205fdede81debeULL,
0xd38e695d5d345dd2ULL, 0xa090c03030f0309dULL, 0x41d07e9191ef91fcULL, 0x8130feb1b14fb1e1ULL,
0x0d75fd78788578e7ULL, 0x6677441111551188ULL, 0x0607040101050108ULL, 0x6481b3e5e556e57bULL,
0x0000000000000000ULL, 0x6d05bd6868d56867ULL, 0x77ef5a9898c298b4ULL, 0xe747baa0a01aa069ULL,
0xa46133c5c5f6c566ULL, 0x0c0e0802020a0210ULL, 0xf355a2a6a604a659ULL, 0x2551cd7474b97487ULL,
0xeec3b42d2d992d75ULL, 0x3a312c0b0b270b58ULL, 0xeb49b2a2a210a279ULL, 0x295fc57676b37697ULL,
0x8d3ef6b3b345b3f1ULL, 0xa31dc2bebe7cbe99ULL, 0x9e501fceced1ce3eULL, 0xa914cebdbd73bd81ULL,
0xc36d82aeae2cae19ULL, 0x4ca583e9e96ae91bULL, 0x1b91128a8a988a24ULL, 0xa697c43131f53195ULL,
0x4854701c1c6c1ce0ULL, 0x52be97ecec7bec33ULL, 0x1cede3f1f112f1dbULL, 0x71e85e9999c799bcULL,
0x5fcb6a9494fe94d4ULL, 0xdb7192aaaa38aa39ULL, 0x0ef8fff6f609f6e3ULL, 0xd4f2982626be262dULL,
0xe2cdbc2f2f932f65ULL, 0x58b79befef74ef2bULL, 0x4aa287e8e86fe813ULL, 0x0f830a8c8c868c14ULL,
0xbe8bd43535e135b5ULL, 0x0a090c03030f0318ULL, 0xc21677d4d4a3d4eeULL, 0x1f60e17f7f9e7fdfULL,
0x20dbcbfbfb30fb8bULL, 0x1e1b140505110528ULL, 0xbc7d23c1c1e2c146ULL, 0xd987655e5e3b5ecaULL,
0x47d77a9090ea90f4ULL, 0xc0e0802020a0201dULL, 0x8eb3f43d3dc93df5ULL, 0x2ba9328282b08264ULL,
0x08fffbf7f70cf7ebULL, 0x46ac8feaea65ea03ULL, 0x3c36280a0a220a50ULL, 0x2e23340d0d390d68ULL,
0x1967e57e7e9b7ed7ULL, 0x2ad2c7f8f83ff893ULL, 0xfdad5d50500d50baULL, 0x5c46681a1a721ad0ULL,
0xa26637c4c4f3c46eULL, 0x12151c07071b0738ULL, 0xefb8415757165782ULL, 0xb70fdab8b862b8a9ULL,
0x88b4f03c3ccc3cfdULL, 0x5133956262f76237ULL, 0x7093abe3e348e34bULL, 0x8a4207c8c8cfc80eULL,
0xcf638aacac26ac09ULL, 0xf1a35552520752aaULL, 0x45218d6464e96407ULL, 0x6070401010501080ULL,
0xda0a67d0d0b7d0ceULL, 0xec3543d9d99ad986ULL, 0x6a794c13135f1398ULL, 0x2824300c0c3c0c60ULL,
0x6c7e4812125a1290ULL, 0xf6dfa429298d2955ULL, 0xfbaa5951510851b2ULL, 0xb108deb9b967b9a1ULL,
0x98571bcfcfd4cf36ULL, 0xce187fd6d6a9d6feULL, 0x3744d17373a273bfULL, 0x09840e8d8d838d1cULL,
0x21a03e8181bf817cULL, 0xe5b14d545419549aULL, 0xba7a27c0c0e7c04eULL, 0x54b993eded7eed3bULL,
0xb9f7254e4e6b4e4aULL, 0x85c10d444449441aULL, 0xf552a6a7a701a751ULL, 0xfcd6a82a2a822a4dULL,
0x39bc2e8585ab855cULL, 0xdefb942525b12535ULL, 0x6e88bfe6e659e663ULL, 0x864c0fcacac5ca1eULL,
0x1569ed7c7c917cc7ULL, 0x1d96168b8b9d8b2cULL, 0xe9bf45565613568aULL, 0x27a73a8080ba8074ULL
};
const uint64_t T5[256] = {
0x501fceced1ce3e9eULL, 0x06d6bbbb6dbbb1bdULL, 0xab8bebeb60eb0b40ULL, 0xd9729292e092e44bULL,
0xac8feaea65ea0346ULL, 0x4b0bcbcbc0cb1680ULL, 0x794c13135f13986aULL, 0x7d23c1c1e2c146bcULL,
0xa583e9e96ae91b4cULL, 0xa6e83a3ad23acd9cULL, 0x187fd6d6a9d6feceULL, 0x39f2b2b240b2f98bULL,
0x046fd2d2bdd2ded6ULL, 0xd77a9090ea90f447ULL, 0x655c17174b17b872ULL, 0xd2c7f8f83ff8932aULL,
0xd315424257422a91ULL, 0x6b5415154115a87eULL, 0xbf45565613568ae9ULL, 0x2beab4b45eb4c99fULL,
0x26896565ec650f43ULL, 0x54701c1c6c1ce048ULL, 0x9f1a888892883417ULL, 0xd411434352432297ULL,
0x6133c5c5f6c566a4ULL, 0x896d5c5c315cdad5ULL, 0x82d83636ee36adb4ULL, 0x01d2baba68bab9bbULL,
0xf1f3f5f506f5fb04ULL, 0xb8415757165782efULL, 0x28816767e6671f4fULL, 0x840e8d8d838d1c09ULL,
0x97c43131f53195a6ULL, 0xf8fff6f609f6e30eULL, 0x218d6464e9640745ULL, 0x957d58582558facdULL,
0xfd429e9edc9e8463ULL, 0xf6f7f4f403f4f302ULL, 0xee882222aa220dccULL, 0x7192aaaa38aa39dbULL,
0x56c97575bc758f23ULL, 0x2d3c0f0f330f7822ULL, 0x0e0802020a02100cULL, 0x30feb1b14fb1e181ULL,
0x275bdfdf84dfb6f8ULL, 0x1ea96d6dc46d4f73ULL, 0x44d17373a273bf37ULL, 0xfe294d4d644d52b3ULL,
0x69ed7c7c917cc715ULL, 0xf2982626be262dd4ULL, 0xcab82e2e962e6de4ULL, 0xfffbf7f70cf7eb08ULL,
0x3820080828084030ULL, 0x8e695d5d345dd2d3ULL, 0xc10d444449441a85ULL, 0xbaf83e3ec63eed84ULL,
0xfa469f9fd99f8c65ULL, 0x6c5014144414a078ULL, 0x4207c8c8cfc80e8aULL, 0x6d82aeae2cae19c3ULL,
0xb14d545419549ae5ULL, 0x7040101050108060ULL, 0x3247d8d89fd88eeaULL, 0x13cabcbc76bc89afULL,
0x46681a1a721ad05cULL, 0x0cb16b6bda6b7f67ULL, 0x02b96969d0696f6bULL, 0xe3ebf3f318f3cb10ULL,
0x14cebdbd73bd81a9ULL, 0x99cc3333ff3385aaULL, 0x7696abab3dab31ddULL, 0xdccffafa35fa8326ULL,
0x0d63d1d1b2d1c6dcULL, 0xe6569b9bcd9bac7dULL, 0x05bd6868d568676dULL, 0xf7254e4e6b4e4ab9ULL,
0x625816164e16b074ULL, 0xcc6e9595fb95dc59ULL, 0xd07e9191ef91fc41ULL, 0xb09feeee71ee235eULL,
0xf92d4c4c614c5ab5ULL, 0x34916363f2633f57ULL, 0x8d028e8e8c8e0403ULL, 0x9c715b5b2a5be2c7ULL,
0x5e17ccccdbcc2e92ULL, 0xb4f03c3ccc3cfd88ULL, 0x4f6419197d19c856ULL, 0x40bea1a11fa161e1ULL,
0xa03e8181bf817c21ULL, 0xe2394949704972abULL, 0x7cf17b7b8a7bff07ULL, 0x3543d9d99ad986ecULL,
0x10a16f6fce6f5f7fULL, 0x85dc3737eb37a5b2ULL, 0x3d9d6060fd60275dULL, 0x4c0fcacac5ca1e86ULL,
0x8fbbe7e75ce76b68ULL, 0xd1ac2b2b872b45faULL, 0xe53d484875487aadULL, 0xc9d3fdfd2efdbb34ULL,
0xc5629696f496c453ULL, 0xc60945454c451283ULL, 0xced7fcfc2bfcb332ULL, 0xda1941415841329bULL,
0x7e4812125a12906cULL, 0x23340d0d390d682eULL, 0x72f979798079ef0bULL, 0x81b3e5e556e57b64ULL,
0x981e898997893c11ULL, 0x830a8c8c868c140fULL, 0x93abe3e348e34b70ULL, 0xe0802020a0201dc0ULL,
0x90c03030f0309da0ULL, 0x2e57dcdc8bdcaef2ULL, 0x22e6b7b751b7d195ULL, 0x19ad6c6cc16c4775ULL,
0xeb354a4a7f4a6aa1ULL, 0x2ceeb5b55bb5c199ULL, 0xbdfc3f3fc33fe582ULL, 0xc2669797f197cc55ULL,
0x1677d4d4a3d4eec2ULL, 0x33956262f7623751ULL, 0xc3b42d2d992d75eeULL, 0x121806061e063014ULL,
0x5baaa4a40ea449ffULL, 0x5caea5a50ba541f9ULL, 0xae368383b5836c2dULL, 0x80615f5f3e5fc2dfULL,
0xd6a82a2a822a4dfcULL, 0x3c4fdada95da9ee6ULL, 0x4503c9c9cac9068cULL, 0x0000000000000000ULL,
0x67e57e7e9b7ed719ULL, 0x49b2a2a210a279ebULL, 0xb64955551c5592e3ULL, 0x1ac6bfbf79bf91a5ULL,
0x7744111155118866ULL, 0x1173d5d5a6d5e6c4ULL, 0xf34a9c9cd69c946fULL, 0x571bcfcfd4cf3698ULL,
0x2a380e0e360e7024ULL, 0x36280a0a220a503cULL, 0xb3f43d3dc93df58eULL, 0xaa5951510851b2fbULL,
0x6ee97d7d947dcf13ULL, 0xde769393e593ec4dULL, 0x416c1b1b771bd85aULL, 0xc0dffefe21fea33eULL,
0x6637c4c4f3c46ea2ULL, 0xc80147474647028fULL, 0x3f2409092d094836ULL, 0xb5228686a4864433ULL,
0x312c0b0b270b583aULL, 0x8a068f8f898f0c05ULL, 0xf44e9d9dd39d9c69ULL, 0x0bb56a6adf6a7761ULL,
0x151c07071b073812ULL, 0x08deb9b967b9a1b1ULL, 0x37fab0b04ab0e987ULL, 0xef5a9898c298b477ULL,
0x486018187818c050ULL, 0x9ec83232fa328dacULL, 0x4ad97171a871af3bULL, 0xec314b4b7a4b62a7ULL,
0xb79befef74ef2b58ULL, 0xa1ec3b3bd73bc59aULL, 0x4ddd7070ad70a73dULL, 0x47baa0a01aa069e7ULL,
0x86b7e4e453e47362ULL, 0xdd1d40405d403a9dULL, 0xc7dbffff24ffab38ULL, 0x732bc3c3e8c356b0ULL,
0x789ea9a937a921d1ULL, 0x88bfe6e659e6636eULL, 0x75fd78788578e70dULL, 0xd5c3f9f93af99b2cULL,
0x96168b8b9d8b2c1dULL, 0xcf05464643460a89ULL, 0xa73a8080ba807427ULL, 0x5a781e1e661ef044ULL,
0xa8e03838d838dd90ULL, 0x9da3e1e142e15b7cULL, 0x0fdab8b862b8a9b7ULL, 0x7f9aa8a832a829d7ULL,
0x9aa7e0e047e0537aULL, 0x24300c0c3c0c6028ULL, 0xe98c2323af2305caULL, 0x5fc57676b3769729ULL,
0x53741d1d691de84eULL, 0xfb942525b12535deULL, 0xfc902424b4243dd8ULL, 0x1b1405051105281eULL,
0xede3f1f112f1db1cULL, 0x17a56e6ecb6e5779ULL, 0xcb6a9494fe94d45fULL, 0xd8a0282888285df0ULL,
0xe1529a9ac89aa47bULL, 0xbb2a8484ae84543fULL, 0xa287e8e86fe8134aULL, 0x4eb6a3a315a371edULL,
0xf0214f4f6e4f42bfULL, 0x58c17777b6779f2fULL, 0x036bd3d3b8d3d6d0ULL, 0xbc2e8585ab855c39ULL,
0x94afe2e24de24376ULL, 0xa35552520752aaf1ULL, 0xe4eff2f21df2c316ULL, 0xa9328282b082642bULL,
0xad5d50500d50bafdULL, 0x7bf57a7a8f7af701ULL, 0xcdbc2f2f932f65e2ULL, 0x51cd7474b9748725ULL,
0xa45153530253a2f7ULL, 0x3ef6b3b345b3f18dULL, 0x3a996161f8612f5bULL, 0x6a86afaf29af11c5ULL,
0xafe43939dd39d596ULL, 0x8bd43535e135b5beULL, 0x205fdede81debefeULL, 0x5913cdcddecd2694ULL,
0x5d7c1f1f631ff842ULL, 0xe85e9999c799bc71ULL, 0x638aacac26ac09cfULL, 0x648eadad23ad01c9ULL,
0x43d57272a772b731ULL, 0xc4b02c2c9c2c7de8ULL, 0x2953dddd8edda6f4ULL, 0x0a67d0d0b7d0cedaULL,
0xb2268787a1874c35ULL, 0x1dc2bebe7cbe99a3ULL, 0x87655e5e3b5ecad9ULL, 0x55a2a6a604a659f3ULL,
0xbe97ecec7bec3352ULL, 0x1c10040414042018ULL, 0x683fc6c6f9c67eaeULL, 0x090c03030f03180aULL,
0x8cd03434e434bdb8ULL, 0xdbcbfbfb30fb8b20ULL, 0x3b4bdbdb90db96e0ULL, 0x927959592059f2cbULL,
0x25e2b6b654b6d993ULL, 0x742fc2c2edc25eb6ULL, 0x0704010105010806ULL, 0xeae7f0f017f0d31aULL,
0x9b755a5a2f5aeac1ULL, 0xb993eded7eed3b54ULL, 0x52a6a7a701a751f5ULL, 0x2f856666e3661749ULL,
0xe7842121a52115c6ULL, 0x60e17f7f9e7fdf1fULL, 0x91128a8a988a241bULL, 0xf59c2727bb2725d2ULL,
0x6f3bc7c7fcc776a8ULL, 0x7a27c0c0e7c04ebaULL, 0xdfa429298d2955f6ULL, 0x1f7bd7d7acd7f6c8ULL
};
const uint64_t T6[256] = {
0x769393e593ec4ddeULL, 0x43d9d99ad986ec35ULL, 0x529a9ac89aa47be1ULL, 0xeeb5b55bb5c1992cULL,
0x5a9898c298b477efULL, 0x882222aa220dcceeULL, 0x0945454c451283c6ULL, 0xd7fcfc2bfcb332ceULL,
0xd2baba68bab9bb01ULL, 0xb56a6adf6a77610bULL, 0x5bdfdf84dfb6f827ULL, 0x0802020a02100c0eULL,
0x469f9fd99f8c65faULL, 0x57dcdc8bdcaef22eULL, 0x5951510851b2fbaaULL, 0x7959592059f2cb92ULL,
0x354a4a7f4a6aa1ebULL, 0x5c17174b17b87265ULL, 0xac2b2b872b45fad1ULL, 0x2fc2c2edc25eb674ULL,
0x6a9494fe94d45fcbULL, 0xf7f4f403f4f302f6ULL, 0xd6bbbb6dbbb1bd06ULL, 0xb6a3a315a371ed4eULL,
0x956262f762375133ULL, 0xb7e4e453e4736286ULL, 0xd97171a871af3b4aULL, 0x77d4d4a3d4eec216ULL,
0x13cdcddecd269459ULL, 0xdd7070ad70a73d4dULL, 0x5816164e16b07462ULL, 0xa3e1e142e15b7c9dULL,
0x394949704972abe2ULL, 0xf03c3ccc3cfd88b4ULL, 0x27c0c0e7c04eba7aULL, 0x47d8d89fd88eea32ULL,
0x6d5c5c315cdad589ULL, 0x569b9bcd9bac7de6ULL, 0x8eadad23ad01c964ULL, 0x2e8585ab855c39bcULL,
0x5153530253a2f7a4ULL, 0xbea1a11fa161e140ULL, 0xf57a7a8f7af7017bULL, 0x07c8c8cfc80e8a42ULL,
0xb42d2d992d75eec3ULL, 0xa7e0e047e0537a9aULL, 0x63d1d1b2d1c6dc0dULL, 0xd57272a772b73143ULL,
0xa2a6a604a659f355ULL, 0xb02c2c9c2c7de8c4ULL, 0x37c4c4f3c46ea266ULL, 0xabe3e348e34b7093ULL,
0xc57676b37697295fULL, 0xfd78788578e70d75ULL, 0xe6b7b751b7d19522ULL, 0xeab4b45eb4c99f2bULL,
0x2409092d0948363fULL, 0xec3b3bd73bc59aa1ULL, 0x380e0e360e70242aULL, 0x1941415841329bdaULL,
0x2d4c4c614c5ab5f9ULL, 0x5fdede81debefe20ULL, 0xf2b2b240b2f98b39ULL, 0x7a9090ea90f447d7ULL,
0x942525b12535defbULL, 0xaea5a50ba541f95cULL, 0x7bd7d7acd7f6c81fULL, 0x0c03030f03180a09ULL,
0x4411115511886677ULL, 0x0000000000000000ULL, 0x2bc3c3e8c356b073ULL, 0xb82e2e962e6de4caULL,
0x729292e092e44bd9ULL, 0x9befef74ef2b58b7ULL, 0x254e4e6b4e4ab9f7ULL, 0x4812125a12906c7eULL,
0x4e9d9dd39d9c69f4ULL, 0xe97d7d947dcf136eULL, 0x0bcbcbc0cb16804bULL, 0xd43535e135b5be8bULL,
0x4010105010806070ULL, 0x73d5d5a6d5e6c411ULL, 0x214f4f6e4f42bff0ULL, 0x429e9edc9e8463fdULL,
0x294d4d644d52b3feULL, 0x9ea9a937a921d178ULL, 0x4955551c5592e3b6ULL, 0x3fc6c6f9c67eae68ULL,
0x67d0d0b7d0ceda0aULL, 0xf17b7b8a7bff077cULL, 0x6018187818c05048ULL, 0x669797f197cc55c2ULL,
0x6bd3d3b8d3d6d003ULL, 0xd83636ee36adb482ULL, 0xbfe6e659e6636e88ULL, 0x3d484875487aade5ULL,
0x45565613568ae9bfULL, 0x3e8181bf817c21a0ULL, 0x068f8f898f0c058aULL, 0xc17777b6779f2f58ULL,
0x17ccccdbcc2e925eULL, 0x4a9c9cd69c946ff3ULL, 0xdeb9b967b9a1b108ULL, 0xafe2e24de2437694ULL,
0x8aacac26ac09cf63ULL, 0xdab8b862b8a9b70fULL, 0xbc2f2f932f65e2cdULL, 0x5415154115a87e6bULL,
0xaaa4a40ea449ff5bULL, 0xed7c7c917cc71569ULL, 0x4fdada95da9ee63cULL, 0xe03838d838dd90a8ULL,
0x781e1e661ef0445aULL, 0x2c0b0b270b583a31ULL, 0x1405051105281e1bULL, 0x7fd6d6a9d6fece18ULL,
0x5014144414a0786cULL, 0xa56e6ecb6e577917ULL, 0xad6c6cc16c477519ULL, 0xe57e7e9b7ed71967ULL,
0x856666e36617492fULL, 0xd3fdfd2efdbb34c9ULL, 0xfeb1b14fb1e18130ULL, 0xb3e5e556e57b6481ULL,
0x9d6060fd60275d3dULL, 0x86afaf29af11c56aULL, 0x655e5e3b5ecad987ULL, 0xcc3333ff3385aa99ULL,
0x268787a1874c35b2ULL, 0x03c9c9cac9068c45ULL, 0xe7f0f017f0d31aeaULL, 0x695d5d345dd2d38eULL,
0xa96d6dc46d4f731eULL, 0xfc3f3fc33fe582bdULL, 0x1a8888928834179fULL, 0x0e8d8d838d1c0984ULL,
0x3bc7c7fcc776a86fULL, 0xfbf7f70cf7eb08ffULL, 0x741d1d691de84e53ULL, 0x83e9e96ae91b4ca5ULL,
0x97ecec7bec3352beULL, 0x93eded7eed3b54b9ULL, 0x3a8080ba807427a7ULL, 0xa429298d2955f6dfULL,
0x9c2727bb2725d2f5ULL, 0x1bcfcfd4cf369857ULL, 0x5e9999c799bc71e8ULL, 0x9aa8a832a829d77fULL,
0x5d50500d50bafdadULL, 0x3c0f0f330f78222dULL, 0xdc3737eb37a5b285ULL, 0x902424b4243dd8fcULL,
0xa0282888285df0d8ULL, 0xc03030f0309da090ULL, 0x6e9595fb95dc59ccULL, 0x6fd2d2bdd2ded604ULL,
0xf83e3ec63eed84baULL, 0x715b5b2a5be2c79cULL, 0x1d40405d403a9dddULL, 0x368383b5836c2daeULL,
0xf6b3b345b3f18d3eULL, 0xb96969d0696f6b02ULL, 0x415757165782efb8ULL, 0x7c1f1f631ff8425dULL,
0x1c07071b07381215ULL, 0x701c1c6c1ce04854ULL, 0x128a8a988a241b91ULL, 0xcabcbc76bc89af13ULL,
0x802020a0201dc0e0ULL, 0x8bebeb60eb0b40abULL, 0x1fceced1ce3e9e50ULL, 0x028e8e8c8e04038dULL,
0x96abab3dab31dd76ULL, 0x9feeee71ee235eb0ULL, 0xc43131f53195a697ULL, 0xb2a2a210a279eb49ULL,
0xd17373a273bf3744ULL, 0xc3f9f93af99b2cd5ULL, 0x0fcacac5ca1e864cULL, 0xe83a3ad23acd9ca6ULL,
0x681a1a721ad05c46ULL, 0xcbfbfb30fb8b20dbULL, 0x340d0d390d682e23ULL, 0x23c1c1e2c146bc7dULL,
0xdffefe21fea33ec0ULL, 0xcffafa35fa8326dcULL, 0xeff2f21df2c316e4ULL, 0xa16f6fce6f5f7f10ULL,
0xcebdbd73bd81a914ULL, 0x629696f496c453c5ULL, 0x53dddd8edda6f429ULL, 0x11434352432297d4ULL,
0x5552520752aaf1a3ULL, 0xe2b6b654b6d99325ULL, 0x2008082808403038ULL, 0xebf3f318f3cb10e3ULL,
0x82aeae2cae19c36dULL, 0xc2bebe7cbe99a31dULL, 0x6419197d19c8564fULL, 0x1e898997893c1198ULL,
0xc83232fa328dac9eULL, 0x982626be262dd4f2ULL, 0xfab0b04ab0e98737ULL, 0x8feaea65ea0346acULL,
0x314b4b7a4b62a7ecULL, 0x8d6464e964074521ULL, 0x2a8484ae84543fbbULL, 0x328282b082642ba9ULL,
0xb16b6bda6b7f670cULL, 0xf3f5f506f5fb04f1ULL, 0xf979798079ef0b72ULL, 0xc6bfbf79bf91a51aULL,
0x0401010501080607ULL, 0x615f5f3e5fc2df80ULL, 0xc97575bc758f2356ULL, 0x916363f2633f5734ULL,
0x6c1b1b771bd85a41ULL, 0x8c2323af2305cae9ULL, 0xf43d3dc93df58eb3ULL, 0xbd6868d568676d05ULL,
0xa82a2a822a4dfcd6ULL, 0x896565ec650f4326ULL, 0x87e8e86fe8134aa2ULL, 0x7e9191ef91fc41d0ULL,
0xfff6f609f6e30ef8ULL, 0xdbffff24ffab38c7ULL, 0x4c13135f13986a79ULL, 0x7d58582558facd95ULL,
0xe3f1f112f1db1cedULL, 0x0147474647028fc8ULL, 0x280a0a220a503c36ULL, 0xe17f7f9e7fdf1f60ULL,
0x33c5c5f6c566a461ULL, 0xa6a7a701a751f552ULL, 0xbbe7e75ce76b688fULL, 0x996161f8612f5b3aULL,
0x755a5a2f5aeac19bULL, 0x1806061e06301412ULL, 0x05464643460a89cfULL, 0x0d444449441a85c1ULL,
0x15424257422a91d3ULL, 0x100404140420181cULL, 0xbaa0a01aa069e747ULL, 0x4bdbdb90db96e03bULL,
0xe43939dd39d596afULL, 0x228686a4864433b5ULL, 0x4d545419549ae5b1ULL, 0x92aaaa38aa39db71ULL,
0x0a8c8c868c140f83ULL, 0xd03434e434bdb88cULL, 0x842121a52115c6e7ULL, 0x168b8b9d8b2c1d96ULL,
0xc7f8f83ff8932ad2ULL, 0x300c0c3c0c602824ULL, 0xcd7474b974872551ULL, 0x816767e6671f4f28ULL
};
const uint64_t T7[256] = {
0x6868d568676d05bdULL, 0x8d8d838d1c09840eULL, 0xcacac5ca1e864c0fULL, 0x4d4d644d52b3fe29ULL,
0x7373a273bf3744d1ULL, 0x4b4b7a4b62a7ec31ULL, 0x4e4e6b4e4ab9f725ULL, 0x2a2a822a4dfcd6a8ULL,
0xd4d4a3d4eec21677ULL, 0x52520752aaf1a355ULL, 0x2626be262dd4f298ULL, 0xb3b345b3f18d3ef6ULL,
0x545419549ae5b14dULL, 0x1e1e661ef0445a78ULL, 0x19197d19c8564f64ULL, 0x1f1f631ff8425d7cULL,
0x2222aa220dccee88ULL, 0x03030f03180a090cULL, 0x464643460a89cf05ULL, 0x3d3dc93df58eb3f4ULL,
0x2d2d992d75eec3b4ULL, 0x4a4a7f4a6aa1eb35ULL, 0x53530253a2f7a451ULL, 0x8383b5836c2dae36ULL,
0x13135f13986a794cULL, 0x8a8a988a241b9112ULL, 0xb7b751b7d19522e6ULL, 0xd5d5a6d5e6c41173ULL,
0x2525b12535defb94ULL, 0x79798079ef0b72f9ULL, 0xf5f506f5fb04f1f3ULL, 0xbdbd73bd81a914ceULL,
0x58582558facd957dULL, 0x2f2f932f65e2cdbcULL, 0x0d0d390d682e2334ULL, 0x02020a02100c0e08ULL,
0xeded7eed3b54b993ULL, 0x51510851b2fbaa59ULL, 0x9e9edc9e8463fd42ULL, 0x1111551188667744ULL,
0xf2f21df2c316e4efULL, 0x3e3ec63eed84baf8ULL, 0x55551c5592e3b649ULL, 0x5e5e3b5ecad98765ULL,
0xd1d1b2d1c6dc0d63ULL, 0x16164e16b0746258ULL, 0x3c3ccc3cfd88b4f0ULL, 0x6666e36617492f85ULL,
0x7070ad70a73d4dddULL, 0x5d5d345dd2d38e69ULL, 0xf3f318f3cb10e3ebULL, 0x45454c451283c609ULL,
0x40405d403a9ddd1dULL, 0xccccdbcc2e925e17ULL, 0xe8e86fe8134aa287ULL, 0x9494fe94d45fcb6aULL,
0x565613568ae9bf45ULL, 0x0808280840303820ULL, 0xceced1ce3e9e501fULL, 0x1a1a721ad05c4668ULL,
0x3a3ad23acd9ca6e8ULL, 0xd2d2bdd2ded6046fULL, 0xe1e142e15b7c9da3ULL, 0xdfdf84dfb6f8275bULL,
0xb5b55bb5c1992ceeULL, 0x3838d838dd90a8e0ULL, 0x6e6ecb6e577917a5ULL, 0x0e0e360e70242a38ULL,
0xe5e556e57b6481b3ULL, 0xf4f403f4f302f6f7ULL, 0xf9f93af99b2cd5c3ULL, 0x8686a4864433b522ULL,
0xe9e96ae91b4ca583ULL, 0x4f4f6e4f42bff021ULL, 0xd6d6a9d6fece187fULL, 0x8585ab855c39bc2eULL,
0x2323af2305cae98cULL, 0xcfcfd4cf3698571bULL, 0x3232fa328dac9ec8ULL, 0x9999c799bc71e85eULL,
0x3131f53195a697c4ULL, 0x14144414a0786c50ULL, 0xaeae2cae19c36d82ULL, 0xeeee71ee235eb09fULL,
0xc8c8cfc80e8a4207ULL, 0x484875487aade53dULL, 0xd3d3b8d3d6d0036bULL, 0x3030f0309da090c0ULL,
0xa1a11fa161e140beULL, 0x9292e092e44bd972ULL, 0x41415841329bda19ULL, 0xb1b14fb1e18130feULL,
0x18187818c0504860ULL, 0xc4c4f3c46ea26637ULL, 0x2c2c9c2c7de8c4b0ULL, 0x7171a871af3b4ad9ULL,
0x7272a772b73143d5ULL, 0x444449441a85c10dULL, 0x15154115a87e6b54ULL, 0xfdfd2efdbb34c9d3ULL,
0x3737eb37a5b285dcULL, 0xbebe7cbe99a31dc2ULL, 0x5f5f3e5fc2df8061ULL, 0xaaaa38aa39db7192ULL,
0x9b9bcd9bac7de656ULL, 0x8888928834179f1aULL, 0xd8d89fd88eea3247ULL, 0xabab3dab31dd7696ULL,
0x898997893c11981eULL, 0x9c9cd69c946ff34aULL, 0xfafa35fa8326dccfULL, 0x6060fd60275d3d9dULL,
0xeaea65ea0346ac8fULL, 0xbcbc76bc89af13caULL, 0x6262f76237513395ULL, 0x0c0c3c0c60282430ULL,
0x2424b4243dd8fc90ULL, 0xa6a604a659f355a2ULL, 0xa8a832a829d77f9aULL, 0xecec7bec3352be97ULL,
0x6767e6671f4f2881ULL, 0x2020a0201dc0e080ULL, 0xdbdb90db96e03b4bULL, 0x7c7c917cc71569edULL,
0x282888285df0d8a0ULL, 0xdddd8edda6f42953ULL, 0xacac26ac09cf638aULL, 0x5b5b2a5be2c79c71ULL,
0x3434e434bdb88cd0ULL, 0x7e7e9b7ed71967e5ULL, 0x1010501080607040ULL, 0xf1f112f1db1cede3ULL,
0x7b7b8a7bff077cf1ULL, 0x8f8f898f0c058a06ULL, 0x6363f2633f573491ULL, 0xa0a01aa069e747baULL,
0x05051105281e1b14ULL, 0x9a9ac89aa47be152ULL, 0x434352432297d411ULL, 0x7777b6779f2f58c1ULL,
0x2121a52115c6e784ULL, 0xbfbf79bf91a51ac6ULL, 0x2727bb2725d2f59cULL, 0x09092d0948363f24ULL,
0xc3c3e8c356b0732bULL, 0x9f9fd99f8c65fa46ULL, 0xb6b654b6d99325e2ULL, 0xd7d7acd7f6c81f7bULL,
0x29298d2955f6dfa4ULL, 0xc2c2edc25eb6742fULL, 0xebeb60eb0b40ab8bULL, 0xc0c0e7c04eba7a27ULL,
0xa4a40ea449ff5baaULL, 0x8b8b9d8b2c1d9616ULL, 0x8c8c868c140f830aULL, 0x1d1d691de84e5374ULL,
0xfbfb30fb8b20dbcbULL, 0xffff24ffab38c7dbULL, 0xc1c1e2c146bc7d23ULL, 0xb2b240b2f98b39f2ULL,
0x9797f197cc55c266ULL, 0x2e2e962e6de4cab8ULL, 0xf8f83ff8932ad2c7ULL, 0x6565ec650f432689ULL,
0xf6f609f6e30ef8ffULL, 0x7575bc758f2356c9ULL, 0x07071b073812151cULL, 0x0404140420181c10ULL,
0x4949704972abe239ULL, 0x3333ff3385aa99ccULL, 0xe4e453e4736286b7ULL, 0xd9d99ad986ec3543ULL,
0xb9b967b9a1b108deULL, 0xd0d0b7d0ceda0a67ULL, 0x424257422a91d315ULL, 0xc7c7fcc776a86f3bULL,
0x6c6cc16c477519adULL, 0x9090ea90f447d77aULL, 0x0000000000000000ULL, 0x8e8e8c8e04038d02ULL,
0x6f6fce6f5f7f10a1ULL, 0x50500d50bafdad5dULL, 0x0101050108060704ULL, 0xc5c5f6c566a46133ULL,
0xdada95da9ee63c4fULL, 0x47474647028fc801ULL, 0x3f3fc33fe582bdfcULL, 0xcdcddecd26945913ULL,
0x6969d0696f6b02b9ULL, 0xa2a210a279eb49b2ULL, 0xe2e24de2437694afULL, 0x7a7a8f7af7017bf5ULL,
0xa7a701a751f552a6ULL, 0xc6c6f9c67eae683fULL, 0x9393e593ec4dde76ULL, 0x0f0f330f78222d3cULL,
0x0a0a220a503c3628ULL, 0x06061e0630141218ULL, 0xe6e659e6636e88bfULL, 0x2b2b872b45fad1acULL,
0x9696f496c453c562ULL, 0xa3a315a371ed4eb6ULL, 0x1c1c6c1ce0485470ULL, 0xafaf29af11c56a86ULL,
0x6a6adf6a77610bb5ULL, 0x12125a12906c7e48ULL, 0x8484ae84543fbb2aULL, 0x3939dd39d596afe4ULL,
0xe7e75ce76b688fbbULL, 0xb0b04ab0e98737faULL, 0x8282b082642ba932ULL, 0xf7f70cf7eb08fffbULL,
0xfefe21fea33ec0dfULL, 0x9d9dd39d9c69f44eULL, 0x8787a1874c35b226ULL, 0x5c5c315cdad5896dULL,
0x8181bf817c21a03eULL, 0x3535e135b5be8bd4ULL, 0xdede81debefe205fULL, 0xb4b45eb4c99f2beaULL,
0xa5a50ba541f95caeULL, 0xfcfc2bfcb332ced7ULL, 0x8080ba807427a73aULL, 0xefef74ef2b58b79bULL,
0xcbcbc0cb16804b0bULL, 0xbbbb6dbbb1bd06d6ULL, 0x6b6bda6b7f670cb1ULL, 0x7676b37697295fc5ULL,
0xbaba68bab9bb01d2ULL, 0x5a5a2f5aeac19b75ULL, 0x7d7d947dcf136ee9ULL, 0x78788578e70d75fdULL,
0x0b0b270b583a312cULL, 0x9595fb95dc59cc6eULL, 0xe3e348e34b7093abULL, 0xadad23ad01c9648eULL,
0x7474b974872551cdULL, 0x9898c298b477ef5aULL, 0x3b3bd73bc59aa1ecULL, 0x3636ee36adb482d8ULL,
0x6464e9640745218dULL, 0x6d6dc46d4f731ea9ULL, 0xdcdc8bdcaef22e57ULL, 0xf0f017f0d31aeae7ULL,
0x59592059f2cb9279ULL, 0xa9a937a921d1789eULL, 0x4c4c614c5ab5f92dULL, 0x17174b17b872655cULL,
0x7f7f9e7fdf1f60e1ULL, 0x9191ef91fc41d07eULL, 0xb8b862b8a9b70fdaULL, 0xc9c9cac9068c4503ULL,
0x5757165782efb841ULL, 0x1b1b771bd85a416cULL, 0xe0e047e0537a9aa7ULL, 0x6161f8612f5b3a99ULL
};