cryptography-rs 0.6.2

Block ciphers, hashes, public-key, and post-quantum primitives implemented directly from their specifications and original papers.
Documentation
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
// Generated directly from RFC 2144 Appendix A.
#[rustfmt::skip]
pub(crate) const S1: [u32; 256] = [
    0x30fb_40d4, 0x9fa0_ff0b, 0x6bec_cd2f, 0x3f25_8c7a,
    0x1e21_3f2f, 0x9c00_4dd3, 0x6003_e540, 0xcf9f_c949,
    0xbfd4_af27, 0x88bb_bdb5, 0xe203_4090, 0x98d0_9675,
    0x6e63_a0e0, 0x15c3_61d2, 0xc2e7_661d, 0x22d4_ff8e,
    0x2868_3b6f, 0xc07f_d059, 0xff23_79c8, 0x775f_50e2,
    0x43c3_40d3, 0xdf2f_8656, 0x887c_a41a, 0xa2d2_bd2d,
    0xa1c9_e0d6, 0x346c_4819, 0x61b7_6d87, 0x2254_0f2f,
    0x2abe_32e1, 0xaa54_166b, 0x2256_8e3a, 0xa2d3_41d0,
    0x66db_40c8, 0xa784_392f, 0x004d_ff2f, 0x2db9_d2de,
    0x9794_3fac, 0x4a97_c1d8, 0x5276_44b7, 0xb5f4_37a7,
    0xb82c_baef, 0xd751_d159, 0x6ff7_f0ed, 0x5a09_7a1f,
    0x827b_68d0, 0x90ec_f52e, 0x22b0_c054, 0xbc8e_5935,
    0x4b6d_2f7f, 0x50bb_64a2, 0xd266_4910, 0xbee5_812d,
    0xb733_2290, 0xe93b_159f, 0xb48e_e411, 0x4bff_345d,
    0xfd45_c240, 0xad31_973f, 0xc4f6_d02e, 0x55fc_8165,
    0xd5b1_caad, 0xa1ac_2dae, 0xa2d4_b76d, 0xc19b_0c50,
    0x8822_40f2, 0x0c6e_4f38, 0xa4e4_bfd7, 0x4f5b_a272,
    0x564c_1d2f, 0xc59c_5319, 0xb949_e354, 0xb046_69fe,
    0xb1b6_ab8a, 0xc713_58dd, 0x6385_c545, 0x110f_935d,
    0x5753_8ad5, 0x6a39_0493, 0xe63d_37e0, 0x2a54_f6b3,
    0x3a78_7d5f, 0x6276_a0b5, 0x19a6_fcdf, 0x7a42_206a,
    0x29f9_d4d5, 0xf61b_1891, 0xbb72_275e, 0xaa50_8167,
    0x3890_1091, 0xc6b5_05eb, 0x84c7_cb8c, 0x2ad7_5a0f,
    0x874a_1427, 0xa2d1_936b, 0x2ad2_86af, 0xaa56_d291,
    0xd789_4360, 0x425c_750d, 0x93b3_9e26, 0x1871_84c9,
    0x6c00_b32d, 0x73e2_bb14, 0xa0be_bc3c, 0x5462_3779,
    0x6445_9eab, 0x3f32_8b82, 0x7718_cf82, 0x59a2_cea6,
    0x04ee_002e, 0x89fe_78e6, 0x3fab_0950, 0x325f_f6c2,
    0x8138_3f05, 0x6963_c5c8, 0x76cb_5ad6, 0xd499_74c9,
    0xca18_0dcf, 0x3807_82d5, 0xc7fa_5cf6, 0x8ac3_1511,
    0x35e7_9e13, 0x47da_91d0, 0xf40f_9086, 0xa7e2_419e,
    0x3136_6241, 0x051e_f495, 0xaa57_3b04, 0x4a80_5d8d,
    0x5483_00d0, 0x0032_2a3c, 0xbf64_cddf, 0xba57_a68e,
    0x75c6_372b, 0x50af_d341, 0xa7c1_3275, 0x915a_0bf5,
    0x6b54_bfab, 0x2b0b_1426, 0xab4c_c9d7, 0x449c_cd82,
    0xf7fb_f265, 0xab85_c5f3, 0x1b55_db94, 0xaad4_e324,
    0xcfa4_bd3f, 0x2dea_a3e2, 0x9e20_4d02, 0xc8bd_25ac,
    0xeadf_55b3, 0xd5bd_9e98, 0xe312_31b2, 0x2ad5_ad6c,
    0x9543_29de, 0xadbe_4528, 0xd871_0f69, 0xaa51_c90f,
    0xaa78_6bf6, 0x2251_3f1e, 0xaa51_a79b, 0x2ad3_44cc,
    0x7b5a_41f0, 0xd37c_fbad, 0x1b06_9505, 0x41ec_e491,
    0xb4c3_32e6, 0x0322_68d4, 0xc960_0acc, 0xce38_7e6d,
    0xbf6b_b16c, 0x6a70_fb78, 0x0d03_d9c9, 0xd4df_39de,
    0xe010_63da, 0x4736_f464, 0x5ad3_28d8, 0xb347_cc96,
    0x75bb_0fc3, 0x9851_1bfb, 0x4ffb_cc35, 0xb58b_cf6a,
    0xe11f_0abc, 0xbfc5_fe4a, 0xa70a_ec10, 0xac39_570a,
    0x3f04_442f, 0x6188_b153, 0xe039_7a2e, 0x5727_cb79,
    0x9ceb_418f, 0x1cac_d68d, 0x2ad3_7c96, 0x0175_cb9d,
    0xc69d_ff09, 0xc75b_65f0, 0xd9db_40d8, 0xec0e_7779,
    0x4744_ead4, 0xb11c_3274, 0xdd24_cb9e, 0x7e1c_54bd,
    0xf011_44f9, 0xd224_0eb1, 0x9675_b3fd, 0xa3ac_3755,
    0xd47c_27af, 0x51c8_5f4d, 0x5690_7596, 0xa5bb_15e6,
    0x5803_04f0, 0xca04_2cf1, 0x011a_37ea, 0x8dbf_aadb,
    0x35ba_3e4a, 0x3526_ffa0, 0xc37b_4d09, 0xbc30_6ed9,
    0x98a5_2666, 0x5648_f725, 0xff5e_569d, 0x0ced_63d0,
    0x7c63_b2cf, 0x700b_45e1, 0xd5ea_50f1, 0x85a9_2872,
    0xaf1f_bda7, 0xd423_4870, 0xa787_0bf3, 0x2d3b_4d79,
    0x42e0_4198, 0x0cd0_ede7, 0x2647_0db8, 0xf881_814c,
    0x474d_6ad7, 0x7c0c_5e5c, 0xd123_1959, 0x381b_7298,
    0xf5d2_f4db, 0xab83_8653, 0x6e2f_1e23, 0x8371_9c9e,
    0xbd91_e046, 0x9a56_456e, 0xdc39_200c, 0x20c8_c571,
    0x962b_da1c, 0xe1e6_96ff, 0xb141_ab08, 0x7cca_89b9,
    0x1a69_e783, 0x02cc_4843, 0xa2f7_c579, 0x429e_f47d,
    0x427b_169c, 0x5ac9_f049, 0xdd8f_0f00, 0x5c81_65bf,
];

pub(crate) const S2: [u32; 256] = [
    0x1f20_1094, 0xef0b_a75b, 0x69e3_cf7e, 0x393f_4380,
    0xfe61_cf7a, 0xeec5_207a, 0x5588_9c94, 0x72fc_0651,
    0xada7_ef79, 0x4e1d_7235, 0xd55a_63ce, 0xde04_36ba,
    0x99c4_30ef, 0x5f0c_0794, 0x18dc_db7d, 0xa1d6_eff3,
    0xa0b5_2f7b, 0x59e8_3605, 0xee15_b094, 0xe9ff_d909,
    0xdc44_0086, 0xef94_4459, 0xba83_ccb3, 0xe0c3_cdfb,
    0xd1da_4181, 0x3b09_2ab1, 0xf997_f1c1, 0xa5e6_cf7b,
    0x0142_0ddb, 0xe4e7_ef5b, 0x25a1_ff41, 0xe180_f806,
    0x1fc4_1080, 0x179b_ee7a, 0xd37a_c6a9, 0xfe58_30a4,
    0x98de_8b7f, 0x77e8_3f4e, 0x7992_9269, 0x24fa_9f7b,
    0xe113_c85b, 0xacc4_0083, 0xd750_3525, 0xf7ea_615f,
    0x6214_3154, 0x0d55_4b63, 0x5d68_1121, 0xc866_c359,
    0x3d63_cf73, 0xcee2_34c0, 0xd4d8_7e87, 0x5c67_2b21,
    0x071f_6181, 0x39f7_627f, 0x361e_3084, 0xe4eb_573b,
    0x602f_64a4, 0xd63a_cd9c, 0x1bbc_4635, 0x9e81_032d,
    0x2701_f50c, 0x9984_7ab4, 0xa0e3_df79, 0xba6c_f38c,
    0x1084_3094, 0x2537_a95e, 0xf46f_6ffe, 0xa1ff_3b1f,
    0x208c_fb6a, 0x8f45_8c74, 0xd9e0_a227, 0x4ec7_3a34,
    0xfc88_4f69, 0x3e4d_e8df, 0xef0e_0088, 0x3559_648d,
    0x8a45_388c, 0x1d80_4366, 0x721d_9bfd, 0xa586_84bb,
    0xe825_6333, 0x844e_8212, 0x128d_8098, 0xfed3_3fb4,
    0xce28_0ae1, 0x27e1_9ba5, 0xd5a6_c252, 0xe497_54bd,
    0xc5d6_55dd, 0xeb66_7064, 0x7784_0b4d, 0xa1b6_a801,
    0x84db_26a9, 0xe0b5_6714, 0x21f0_43b7, 0xe5d0_5860,
    0x54f0_3084, 0x066f_f472, 0xa31a_a153, 0xdadc_4755,
    0xb562_5dbf, 0x6856_1be6, 0x83ca_6b94, 0x2d6e_d23b,
    0xeccf_01db, 0xa6d3_d0ba, 0xb680_3d5c, 0xaf77_a709,
    0x33b4_a34c, 0x397b_c8d6, 0x5ee2_2b95, 0x5f0e_5304,
    0x81ed_6f61, 0x20e7_4364, 0xb45e_1378, 0xde18_639b,
    0x881c_a122, 0xb967_26d1, 0x8049_a7e8, 0x22b7_da7b,
    0x5e55_2d25, 0x5272_d237, 0x79d2_951c, 0xc60d_894c,
    0x488c_b402, 0x1ba4_fe5b, 0xa4b0_9f6b, 0x1ca8_15cf,
    0xa20c_3005, 0x8871_df63, 0xb9de_2fcb, 0x0cc6_c9e9,
    0x0bee_ff53, 0xe321_4517, 0xb454_2835, 0x9f63_293c,
    0xee41_e729, 0x6e1d_2d7c, 0x5004_5286, 0x1e66_85f3,
    0xf334_01c6, 0x30a2_2c95, 0x31a7_0850, 0x6093_0f13,
    0x73f9_8417, 0xa126_9859, 0xec64_5c44, 0x52c8_77a9,
    0xcdff_33a6, 0xa02b_1741, 0x7cba_d9a2, 0x2180_036f,
    0x50d9_9c08, 0xcb3f_4861, 0xc26b_d765, 0x64a3_f6ab,
    0x8034_2676, 0x25a7_5e7b, 0xe4e6_d1fc, 0x20c7_10e6,
    0xcdf0_b680, 0x1784_4d3b, 0x31ee_f84d, 0x7e08_24e4,
    0x2ccb_49eb, 0x846a_3bae, 0x8ff7_7888, 0xee5d_60f6,
    0x7af7_5673, 0x2fdd_5cdb, 0xa116_31c1, 0x30f6_6f43,
    0xb3fa_ec54, 0x157f_d7fa, 0xef85_79cc, 0xd152_de58,
    0xdb2f_fd5e, 0x8f32_ce19, 0x306a_f97a, 0x02f0_3ef8,
    0x9931_9ad5, 0xc242_fa0f, 0xa7e3_ebb0, 0xc68e_4906,
    0xb8da_230c, 0x8082_3028, 0xdcde_f3c8, 0xd35f_b171,
    0x088a_1bc8, 0xbec0_c560, 0x61a3_c9e8, 0xbca8_f54d,
    0xc72f_effa, 0x2282_2e99, 0x82c5_70b4, 0xd8d9_4e89,
    0x8b1c_34bc, 0x301e_16e6, 0x273b_e979, 0xb0ff_eaa6,
    0x61d9_b8c6, 0x00b2_4869, 0xb7ff_ce3f, 0x08dc_283b,
    0x43da_f65a, 0xf7e1_9798, 0x7619_b72f, 0x8f1c_9ba4,
    0xdc86_37a0, 0x16a7_d3b1, 0x9fc3_93b7, 0xa713_6eeb,
    0xc6bc_c63e, 0x1a51_3742, 0xef68_28bc, 0x5203_65d6,
    0x2d6a_77ab, 0x3527_ed4b, 0x821f_d216, 0x095c_6e2e,
    0xdb92_f2fb, 0x5eea_29cb, 0x1458_92f5, 0x9158_4f7f,
    0x5483_697b, 0x2667_a8cc, 0x8519_6048, 0x8c4b_acea,
    0x8338_60d4, 0x0d23_e0f9, 0x6c38_7e8a, 0x0ae6_d249,
    0xb284_600c, 0xd835_731d, 0xdcb1_c647, 0xac4c_56ea,
    0x3ebd_81b3, 0x230e_abb0, 0x6438_bc87, 0xf0b5_b1fa,
    0x8f5e_a2b3, 0xfc18_4642, 0x0a03_6b7a, 0x4fb0_89bd,
    0x649d_a589, 0xa345_415e, 0x5c03_8323, 0x3e5d_3bb9,
    0x43d7_9572, 0x7e6d_d07c, 0x06df_df1e, 0x6c6c_c4ef,
    0x7160_a539, 0x73bf_be70, 0x8387_7605, 0x4523_ecf1,
];

pub(crate) const S3: [u32; 256] = [
    0x8def_c240, 0x25fa_5d9f, 0xeb90_3dbf, 0xe810_c907,
    0x4760_7fff, 0x369f_e44b, 0x8c1f_c644, 0xaece_ca90,
    0xbeb1_f9bf, 0xeefb_caea, 0xe8cf_1950, 0x51df_07ae,
    0x920e_8806, 0xf0ad_0548, 0xe13c_8d83, 0x9270_10d5,
    0x1110_7d9f, 0x0764_7db9, 0xb2e3_e4d4, 0x3d4f_285e,
    0xb9af_a820, 0xfade_82e0, 0xa067_268b, 0x8272_792e,
    0x553f_b2c0, 0x489a_e22b, 0xd4ef_9794, 0x125e_3fbc,
    0x21ff_fcee, 0x825b_1bfd, 0x9255_c5ed, 0x1257_a240,
    0x4e1a_8302, 0xbae0_7fff, 0x5282_46e7, 0x8e57_140e,
    0x3373_f7bf, 0x8c9f_8188, 0xa6fc_4ee8, 0xc982_b5a5,
    0xa8c0_1db7, 0x579f_c264, 0x6709_4f31, 0xf2bd_3f5f,
    0x40ff_f7c1, 0x1fb7_8dfc, 0x8e6b_d2c1, 0x437b_e59b,
    0x99b0_3dbf, 0xb5db_c64b, 0x638d_c0e6, 0x5581_9d99,
    0xa197_c81c, 0x4a01_2d6e, 0xc588_4a28, 0xccc3_6f71,
    0xb843_c213, 0x6c07_43f1, 0x8309_893c, 0x0fed_dd5f,
    0x2f7f_e850, 0xd7c0_7f7e, 0x0250_7fbf, 0x5afb_9a04,
    0xa747_d2d0, 0x1651_192e, 0xaf70_bf3e, 0x58c3_1380,
    0x5f98_302e, 0x727c_c3c4, 0x0a0f_b402, 0x0f7f_ef82,
    0x8c96_fdad, 0x5d2c_2aae, 0x8ee9_9a49, 0x50da_88b8,
    0x8427_f4a0, 0x1eac_5790, 0x796f_b449, 0x8252_dc15,
    0xefbd_7d9b, 0xa672_597d, 0xada8_40d8, 0x45f5_4504,
    0xfa5d_7403, 0xe83e_c305, 0x4f91_751a, 0x9256_69c2,
    0x23ef_e941, 0xa903_f12e, 0x6027_0df2, 0x0276_e4b6,
    0x94fd_6574, 0x9279_85b2, 0x8276_dbcb, 0x0277_8176,
    0xf8af_918d, 0x4e48_f79e, 0x8f61_6ddf, 0xe29d_840e,
    0x842f_7d83, 0x340c_e5c8, 0x96bb_b682, 0x93b4_b148,
    0xef30_3cab, 0x984f_af28, 0x779f_af9b, 0x92dc_560d,
    0x224d_1e20, 0x8437_aa88, 0x7d29_dc96, 0x2756_d3dc,
    0x8b90_7cee, 0xb51f_d240, 0xe7c0_7ce3, 0xe566_b4a1,
    0xc3e9_615e, 0x3cf8_209d, 0x6094_d1e3, 0xcd9c_a341,
    0x5c76_460e, 0x00ea_983b, 0xd4d6_7881, 0xfd47_572c,
    0xf76c_edd9, 0xbda8_229c, 0x127d_adaa, 0x438a_074e,
    0x1f97_c090, 0x081b_db8a, 0x93a0_7ebe, 0xb938_ca15,
    0x97b0_3cff, 0x3dc2_c0f8, 0x8d1a_b2ec, 0x6438_0e51,
    0x68cc_7bfb, 0xd90f_2788, 0x1249_0181, 0x5de5_ffd4,
    0xdd7e_f86a, 0x76a2_e214, 0xb9a4_0368, 0x925d_958f,
    0x4b39_fffa, 0xba39_aee9, 0xa4ff_d30b, 0xfaf7_933b,
    0x6d49_8623, 0x193c_bcfa, 0x2762_7545, 0x825c_f47a,
    0x61bd_8ba0, 0xd11e_42d1, 0xcead_04f4, 0x127e_a392,
    0x1042_8db7, 0x8272_a972, 0x9270_c4a8, 0x127d_e50b,
    0x285b_a1c8, 0x3c62_f44f, 0x35c0_eaa5, 0xe805_d231,
    0x4289_29fb, 0xb4fc_df82, 0x4fb6_6a53, 0x0e7d_c15b,
    0x1f08_1fab, 0x1086_18ae, 0xfcfd_086d, 0xf9ff_2889,
    0x694b_cc11, 0x236a_5cae, 0x12de_ca4d, 0x2c3f_8cc5,
    0xd2d0_2dfe, 0xf8ef_5896, 0xe4cf_52da, 0x9515_5b67,
    0x494a_488c, 0xb9b6_a80c, 0x5c8f_82bc, 0x89d3_6b45,
    0x3a60_9437, 0xec00_c9a9, 0x4471_5253, 0x0a87_4b49,
    0xd773_bc40, 0x7c34_671c, 0x0271_7ef6, 0x4feb_5536,
    0xa2d0_2fff, 0xd2bf_60c4, 0xd43f_03c0, 0x50b4_ef6d,
    0x0747_8cd1, 0x006e_1888, 0xa2e5_3f55, 0xb9e6_d4bc,
    0xa204_8016, 0x9757_3833, 0xd720_7d67, 0xde0f_8f3d,
    0x72f8_7b33, 0xabcc_4f33, 0x7688_c55d, 0x7b00_a6b0,
    0x947b_0001, 0x5700_75d2, 0xf9bb_88f8, 0x8942_019e,
    0x4264_a5ff, 0x8563_02e0, 0x72db_d92b, 0xee97_1b69,
    0x6ea2_2fde, 0x5f08_ae2b, 0xaf7a_616d, 0xe5c9_8767,
    0xcf1f_ebd2, 0x61ef_c8c2, 0xf1ac_2571, 0xcc82_39c2,
    0x6721_4cb8, 0xb1e5_83d1, 0xb7dc_3e62, 0x7f10_bdce,
    0xf90a_5c38, 0x0ff0_443d, 0x606e_6dc6, 0x6054_3a49,
    0x5727_c148, 0x2be9_8a1d, 0x8ab4_1738, 0x20e1_be24,
    0xaf96_da0f, 0x6845_8425, 0x9983_3be5, 0x600d_457d,
    0x282f_9350, 0x8334_b362, 0xd91d_1120, 0x2b6d_8da0,
    0x642b_1e31, 0x9c30_5a00, 0x52bc_e688, 0x1b03_588a,
    0xf7ba_efd5, 0x4142_ed9c, 0xa431_5c11, 0x8332_3ec5,
    0xdfef_4636, 0xa133_c501, 0xe9d3_531c, 0xee35_3783,
];

pub(crate) const S4: [u32; 256] = [
    0x9db3_0420, 0x1fb6_e9de, 0xa7be_7bef, 0xd273_a298,
    0x4a4f_7bdb, 0x64ad_8c57, 0x8551_0443, 0xfa02_0ed1,
    0x7e28_7aff, 0xe60f_b663, 0x095f_35a1, 0x79eb_f120,
    0xfd05_9d43, 0x6497_b7b1, 0xf364_1f63, 0x241e_4adf,
    0x2814_7f5f, 0x4fa2_b8cd, 0xc943_0040, 0x0cc3_2220,
    0xfdd3_0b30, 0xc0a5_374f, 0x1d2d_00d9, 0x2414_7b15,
    0xee4d_111a, 0x0fca_5167, 0x71ff_904c, 0x2d19_5ffe,
    0x1a05_645f, 0x0c13_fefe, 0x081b_08ca, 0x0517_0121,
    0x8053_0100, 0xe83e_5efe, 0xac9a_f4f8, 0x7fe7_2701,
    0xd2b8_ee5f, 0x06df_4261, 0xbb9e_9b8a, 0x7293_ea25,
    0xce84_ffdf, 0xf571_8801, 0x3dd6_4b04, 0xa26f_263b,
    0x7ed4_8400, 0x547e_ebe6, 0x446d_4ca0, 0x6cf3_d6f5,
    0x2649_abdf, 0xaea0_c7f5, 0x3633_8cc1, 0x503f_7e93,
    0xd377_2061, 0x11b6_38e1, 0x7250_0e03, 0xf80e_b2bb,
    0xabe0_502e, 0xec8d_77de, 0x5797_1e81, 0xe14f_6746,
    0xc933_5400, 0x6920_318f, 0x081d_bb99, 0xffc3_04a5,
    0x4d35_1805, 0x7f3d_5ce3, 0xa6c8_66c6, 0x5d5b_cca9,
    0xdaec_6fea, 0x9f92_6f91, 0x9f46_222f, 0x3991_467d,
    0xa5bf_6d8e, 0x1143_c44f, 0x4395_8302, 0xd021_4eeb,
    0x0220_83b8, 0x3fb6_180c, 0x18f8_931e, 0x2816_58e6,
    0x2648_6e3e, 0x8bd7_8a70, 0x7477_e4c1, 0xb506_e07c,
    0xf32d_0a25, 0x7909_8b02, 0xe4ea_bb81, 0x2812_3b23,
    0x69de_ad38, 0x1574_ca16, 0xdf87_1b62, 0x211c_40b7,
    0xa51a_9ef9, 0x0014_377b, 0x041e_8ac8, 0x0911_4003,
    0xbd59_e4d2, 0xe3d1_56d5, 0x4fe8_76d5, 0x2f91_a340,
    0x557b_e8de, 0x00ea_e4a7, 0x0ce5_c2ec, 0x4db4_bba6,
    0xe756_bdff, 0xdd33_69ac, 0xec17_b035, 0x0657_2327,
    0x99af_c8b0, 0x56c8_c391, 0x6b65_811c, 0x5e14_6119,
    0x6e85_cb75, 0xbe07_c002, 0xc232_5577, 0x893f_f4ec,
    0x5bbf_c92d, 0xd0ec_3b25, 0xb780_1ab7, 0x8d6d_3b24,
    0x20c7_63ef, 0xc366_a5fc, 0x9c38_2880, 0x0ace_3205,
    0xaac9_548a, 0xeca1_d7c7, 0x041a_fa32, 0x1d16_625a,
    0x6701_902c, 0x9b75_7a54, 0x31d4_77f7, 0x9126_b031,
    0x36cc_6fdb, 0xc70b_8b46, 0xd9e6_6a48, 0x56e5_5a79,
    0x026a_4ceb, 0x5243_7eff, 0x2f8f_76b4, 0x0df9_80a5,
    0x8674_cde3, 0xedda_04eb, 0x17a9_be04, 0x2c18_f4df,
    0xb774_7f9d, 0xab2a_f7b4, 0xefc3_4d20, 0x2e09_6b7c,
    0x1741_a254, 0xe5b6_a035, 0x213d_42f6, 0x2c1c_7c26,
    0x61c2_f50f, 0x6552_daf9, 0xd2c2_31f8, 0x2513_0f69,
    0xd816_7fa2, 0x0418_f2c8, 0x001a_96a6, 0x0d15_26ab,
    0x6331_5c21, 0x5e0a_72ec, 0x49ba_fefd, 0x1879_08d9,
    0x8d0d_bd86, 0x3111_70a7, 0x3e9b_640c, 0xcc3e_10d7,
    0xd5ca_d3b6, 0x0cae_c388, 0xf730_01e1, 0x6c72_8aff,
    0x71ea_e2a1, 0x1f9a_f36e, 0xcfcb_d12f, 0xc1de_8417,
    0xac07_be6b, 0xcb44_a1d8, 0x8b9b_0f56, 0x0139_88c3,
    0xb1c5_2fca, 0xb4be_31cd, 0xd878_2806, 0x12a3_a4e2,
    0x6f7d_e532, 0x58fd_7eb6, 0xd01e_e900, 0x24ad_ffc2,
    0xf499_0fc5, 0x9711_aac5, 0x001d_7b95, 0x82e5_e7d2,
    0x1098_73f6, 0x0061_3096, 0xc32d_9521, 0xada1_21ff,
    0x2990_8415, 0x7fbb_977f, 0xaf9e_b3db, 0x29c9_ed2a,
    0x5ce2_a465, 0xa730_f32c, 0xd0aa_3fe8, 0x8a5c_c091,
    0xd49e_2ce7, 0x0ce4_54a9, 0xd60a_cd86, 0x015f_1919,
    0x7707_9103, 0xdea0_3af6, 0x78a8_565e, 0xdee3_56df,
    0x21f0_5cbe, 0x8b75_e387, 0xb3c5_0651, 0xb8a5_c3ef,
    0xd8ee_b6d2, 0xe523_be77, 0xc215_4529, 0x2f69_efdf,
    0xafe6_7afb, 0xf470_c4b2, 0xf3e0_eb5b, 0xd6cc_9876,
    0x39e4_460c, 0x1fda_8538, 0x1987_832f, 0xca00_7367,
    0xa991_44f8, 0x296b_299e, 0x492f_c295, 0x9266_beab,
    0xb567_6e69, 0x9bd3_ddda, 0xdf7e_052f, 0xdb25_701c,
    0x1b5e_51ee, 0xf653_24e6, 0x6afc_e36c, 0x0316_cc04,
    0x8644_213e, 0xb7dc_59d0, 0x7965_291f, 0xccd6_fd43,
    0x4182_3979, 0x932b_cdf6, 0xb657_c34d, 0x4edf_d282,
    0x7ae5_290c, 0x3cb9_536b, 0x851e_20fe, 0x9833_557e,
    0x13ec_f0b0, 0xd3ff_b372, 0x3f85_c5c1, 0x0aef_7ed2,
];

pub(crate) const S5: [u32; 256] = [
    0x7ec9_0c04, 0x2c6e_74b9, 0x9b0e_66df, 0xa633_7911,
    0xb86a_7fff, 0x1dd3_58f5, 0x44dd_9d44, 0x1731_167f,
    0x08fb_f1fa, 0xe7f5_11cc, 0xd205_1b00, 0x735a_ba00,
    0x2ab7_22d8, 0x3863_81cb, 0xacf6_243a, 0x69be_fd7a,
    0xe6a2_e77f, 0xf0c7_20cd, 0xc449_4816, 0xccf5_c180,
    0x3885_1640, 0x15b0_a848, 0xe68b_18cb, 0x4caa_deff,
    0x5f48_0a01, 0x0412_b2aa, 0x2598_14fc, 0x41d0_efe2,
    0x4e40_b48d, 0x248e_b6fb, 0x8dba_1cfe, 0x41a9_9b02,
    0x1a55_0a04, 0xba8f_65cb, 0x7251_f4e7, 0x95a5_1725,
    0xc106_ecd7, 0x97a5_980a, 0xc539_b9aa, 0x4d79_fe6a,
    0xf2f3_f763, 0x68af_8040, 0xed0c_9e56, 0x11b4_958b,
    0xe1eb_5a88, 0x8709_e6b0, 0xd7e0_7156, 0x4e29_fea7,
    0x6366_e52d, 0x02d1_c000, 0xc4ac_8e05, 0x9377_f571,
    0x0c05_372a, 0x5785_35f2, 0x2261_be02, 0xd642_a0c9,
    0xdf13_a280, 0x74b5_5bd2, 0x6821_99c0, 0xd421_e5ec,
    0x53fb_3ce8, 0xc8ad_edb3, 0x28a8_7fc9, 0x3d95_9981,
    0x5c1f_f900, 0xfe38_d399, 0x0c4e_ff0b, 0x0624_07ea,
    0xaa2f_4fb1, 0x4fb9_6976, 0x90c7_9505, 0xb0a8_a774,
    0xef55_a1ff, 0xe59c_a2c2, 0xa6b6_2d27, 0xe66a_4263,
    0xdf65_001f, 0x0ec5_0966, 0xdfdd_55bc, 0x29de_0655,
    0x911e_739a, 0x17af_8975, 0x32c7_911c, 0x89f8_9468,
    0x0d01_e980, 0x5247_55f4, 0x03b6_3cc9, 0x0cc8_44b2,
    0xbcf3_f0aa, 0x87ac_36e9, 0xe53a_7426, 0x01b3_d82b,
    0x1a9e_7449, 0x64ee_2d7e, 0xcddb_b1da, 0x01c9_4910,
    0xb868_bf80, 0x0d26_f3fd, 0x9342_ede7, 0x04a5_c284,
    0x6367_37b6, 0x50f5_b616, 0xf247_66e3, 0x8eca_36c1,
    0x136e_05db, 0xfef1_8391, 0xfb88_7a37, 0xd6e7_f7d4,
    0xc7fb_7dc9, 0x3063_fcdf, 0xb6f5_89de, 0xec29_41da,
    0x26e4_6695, 0xb756_6419, 0xf654_efc5, 0xd08d_58b7,
    0x4892_5401, 0xc1ba_cb7f, 0xe5ff_550f, 0xb608_3049,
    0x5bb5_d0e8, 0x87d7_2e5a, 0xab6a_6ee1, 0x223a_66ce,
    0xc62b_f3cd, 0x9e08_85f9, 0x68cb_3e47, 0x086c_010f,
    0xa21d_e820, 0xd18b_69de, 0xf3f6_5777, 0xfa02_c3f6,
    0x407e_dac3, 0xcbb3_d550, 0x1793_084d, 0xb0d7_0eba,
    0x0ab3_78d5, 0xd951_fb0c, 0xded7_da56, 0x4124_bbe4,
    0x94ca_0b56, 0x0f57_55d1, 0xe0e1_e56e, 0x6184_b5be,
    0x580a_249f, 0x94f7_4bc0, 0xe327_888e, 0x9f7b_5561,
    0xc3dc_0280, 0x0568_7715, 0x646c_6bd7, 0x4490_4db3,
    0x66b4_f0a3, 0xc0f1_648a, 0x697e_d5af, 0x49e9_2ff6,
    0x309e_374f, 0x2cb6_356a, 0x8580_8573, 0x4991_f840,
    0x76f0_ae02, 0x083b_e84d, 0x2842_1c9a, 0x4448_9406,
    0x736e_4cb8, 0xc109_2910, 0x8bc9_5fc6, 0x7d86_9cf4,
    0x134f_616f, 0x2e77_118d, 0xb31b_2be1, 0xaa90_b472,
    0x3ca5_d717, 0x7d16_1bba, 0x9cad_9010, 0xaf46_2ba2,
    0x9fe4_59d2, 0x45d3_4559, 0xd9f2_da13, 0xdbc6_5487,
    0xf3e4_f94e, 0x176d_486f, 0x097c_13ea, 0x631d_a5c7,
    0x445f_7382, 0x1756_83f4, 0xcdc6_6a97, 0x70be_0288,
    0xb3cd_cf72, 0x6e5d_d2f3, 0x2093_6079, 0x459b_80a5,
    0xbe60_e2db, 0xa9c2_3101, 0xeba5_315c, 0x224e_42f2,
    0x1c5c_1572, 0xf672_1b2c, 0x1ad2_fff3, 0x8c25_404e,
    0x324e_d72f, 0x4067_b7fd, 0x0523_138e, 0x5ca3_bc78,
    0xdc0f_d66e, 0x7592_2283, 0x784d_6b17, 0x58eb_b16e,
    0x4409_4f85, 0x3f48_1d87, 0xfcfe_ae7b, 0x77b5_ff76,
    0x8c23_02bf, 0xaaf4_7556, 0x5f46_b02a, 0x2b09_2801,
    0x3d38_f5f7, 0x0ca8_1f36, 0x52af_4a8a, 0x66d5_e7c0,
    0xdf3b_0874, 0x9505_5110, 0x1b5a_d7a8, 0xf61e_d5ad,
    0x6cf6_e479, 0x2075_8184, 0xd0ce_fa65, 0x88f7_be58,
    0x4a04_6826, 0x0ff6_f8f3, 0xa09c_7f70, 0x5346_aba0,
    0x5ce9_6c28, 0xe176_eda3, 0x6bac_307f, 0x3768_29d2,
    0x8536_0fa9, 0x17e3_fe2a, 0x24b7_9767, 0xf5a9_6b20,
    0xd6cd_2595, 0x68ff_1ebf, 0x7555_442c, 0xf19f_06be,
    0xf9e0_659a, 0xeeb9_491d, 0x3401_0718, 0xbb30_cab8,
    0xe822_fe15, 0x8857_0983, 0x750e_6249, 0xda62_7e55,
    0x5e76_ffa8, 0xb153_4546, 0x6d47_de08, 0xefe9_e7d4,
];

pub(crate) const S6: [u32; 256] = [
    0xf6fa_8f9d, 0x2cac_6ce1, 0x4ca3_4867, 0xe233_7f7c,
    0x95db_08e7, 0x0168_43b4, 0xeced_5cbc, 0x3255_53ac,
    0xbf9f_0960, 0xdfa1_e2ed, 0x83f0_579d, 0x63ed_86b9,
    0x1ab6_a6b8, 0xde5e_be39, 0xf38f_f732, 0x8989_b138,
    0x33f1_4961, 0xc019_37bd, 0xf506_c6da, 0xe462_5e7e,
    0xa308_ea99, 0x4e23_e33c, 0x79cb_d7cc, 0x48a1_4367,
    0xa314_9619, 0xfec9_4bd5, 0xa114_174a, 0xeaa0_1866,
    0xa084_db2d, 0x09a8_486f, 0xa888_614a, 0x2900_af98,
    0x0166_5991, 0xe199_2863, 0xc8f3_0c60, 0x2e78_ef3c,
    0xd0d5_1932, 0xcf0f_ec14, 0xf7ca_07d2, 0xd0a8_2072,
    0xfd41_197e, 0x9305_a6b0, 0xe86b_e3da, 0x74be_d3cd,
    0x372d_a53c, 0x4c7f_4448, 0xdab5_d440, 0x6dba_0ec3,
    0x0839_19a7, 0x9fba_eed9, 0x49db_cfb0, 0x4e67_0c53,
    0x5c3d_9c01, 0x64bd_b941, 0x2c0e_636a, 0xba7d_d9cd,
    0xea6f_7388, 0xe70b_c762, 0x35f2_9adb, 0x5c4c_dd8d,
    0xf0d4_8d8c, 0xb881_53e2, 0x08a1_9866, 0x1ae2_eac8,
    0x284c_af89, 0xaa92_8223, 0x9334_be53, 0x3b3a_21bf,
    0x1643_4be3, 0x9aea_3906, 0xefe8_c36e, 0xf890_cdd9,
    0x8022_6dae, 0xc340_a4a3, 0xdf7e_9c09, 0xa694_a807,
    0x5b7c_5ecc, 0x221d_b3a6, 0x9a69_a02f, 0x6881_8a54,
    0xceb2_296f, 0x53c0_843a, 0xfe89_3655, 0x25bf_e68a,
    0xb462_8abc, 0xcf22_2ebf, 0x25ac_6f48, 0xa9a9_9387,
    0x53bd_db65, 0xe76f_fbe7, 0xe967_fd78, 0x0ba9_3563,
    0x8e34_2bc1, 0xe8a1_1be9, 0x4980_740d, 0xc808_7dfc,
    0x8de4_bf99, 0xa111_01a0, 0x7fd3_7975, 0xda5a_26c0,
    0xe81f_994f, 0x9528_cd89, 0xfd33_9fed, 0xb878_34bf,
    0x5f04_456d, 0x2225_8698, 0xc9c4_c83b, 0x2dc1_56be,
    0x4f62_8daa, 0x57f5_5ec5, 0xe222_0abe, 0xd291_6ebf,
    0x4ec7_5b95, 0x24f2_c3c0, 0x42d1_5d99, 0xcd0d_7fa0,
    0x7b6e_27ff, 0xa8dc_8af0, 0x7345_c106, 0xf41e_232f,
    0x3516_2386, 0xe6ea_8926, 0x3333_b094, 0x157e_c6f2,
    0x372b_74af, 0x6925_73e4, 0xe9a9_d848, 0xf316_0289,
    0x3a62_ef1d, 0xa787_e238, 0xf3a5_f676, 0x7436_4853,
    0x2095_1063, 0x4576_698d, 0xb6fa_d407, 0x592a_f950,
    0x36f7_3523, 0x4cfb_6e87, 0x7da4_cec0, 0x6c15_2daa,
    0xcb03_96a8, 0xc50d_fe5d, 0xfcd7_07ab, 0x0921_c42f,
    0x89df_f0bb, 0x5fe2_be78, 0x448f_4f33, 0x7546_13c9,
    0x2b05_d08d, 0x48b9_d585, 0xdc04_9441, 0xc809_8f9b,
    0x7ded_e786, 0xc39a_3373, 0x4241_0005, 0x6a09_1751,
    0x0ef3_c8a6, 0x8900_72d6, 0x2820_7682, 0xa9a9_f7be,
    0xbf32_679d, 0xd45b_5b75, 0xb353_fd00, 0xcbb0_e358,
    0x830f_220a, 0x1f8f_b214, 0xd372_cf08, 0xcc3c_4a13,
    0x8cf6_3166, 0x061c_87be, 0x88c9_8f88, 0x6062_e397,
    0x47cf_8e7a, 0xb6c8_5283, 0x3cc2_acfb, 0x3fc0_6976,
    0x4e8f_0252, 0x64d8_314d, 0xda38_70e3, 0x1e66_5459,
    0xc109_08f0, 0x5130_21a5, 0x6c5b_68b7, 0x822f_8aa0,
    0x3007_cd3e, 0x7471_9eef, 0xdc87_2681, 0x0733_40d4,
    0x7e43_2fd9, 0x0c5e_c241, 0x8809_286c, 0xf592_d891,
    0x08a9_30f6, 0x957e_f305, 0xb7fb_ffbd, 0xc266_e96f,
    0x6fe4_ac98, 0xb173_ecc0, 0xbc60_b42a, 0x9534_98da,
    0xfba1_ae12, 0x2d4b_d736, 0x0f25_faab, 0xa4f3_fceb,
    0xe296_9123, 0x257f_0c3d, 0x9348_af49, 0x3614_00bc,
    0xe881_6f4a, 0x3814_f200, 0xa3f9_4043, 0x9c7a_54c2,
    0xbc70_4f57, 0xda41_e7f9, 0xc25a_d33a, 0x54f4_a084,
    0xb17f_5505, 0x5935_7cbe, 0xedbd_15c8, 0x7f97_c5ab,
    0xba5a_c7b5, 0xb6f6_deaf, 0x3a47_9c3a, 0x5302_da25,
    0x653d_7e6a, 0x5426_8d49, 0x51a4_77ea, 0x5017_d55b,
    0xd7d2_5d88, 0x4413_6c76, 0x0404_a8c8, 0xb8e5_a121,
    0xb81a_928a, 0x60ed_5869, 0x97c5_5b96, 0xeaec_991b,
    0x2993_5913, 0x01fd_b7f1, 0x088e_8dfa, 0x9ab6_f6f5,
    0x3b4c_bf9f, 0x4a5d_e3ab, 0xe605_1d35, 0xa0e1_d855,
    0xd36b_4cf1, 0xf544_edeb, 0xb0e9_3524, 0xbebb_8fbd,
    0xa2d7_62cf, 0x49c9_2f54, 0x38b5_f331, 0x7128_a454,
    0x4839_2905, 0xa65b_1db8, 0x851c_97bd, 0xd675_cf2f,
];

pub(crate) const S7: [u32; 256] = [
    0x85e0_4019, 0x332b_f567, 0x662d_bfff, 0xcfc6_5693,
    0x2a8d_7f6f, 0xab9b_c912, 0xde60_08a1, 0x2028_da1f,
    0x0227_bce7, 0x4d64_2916, 0x18fa_c300, 0x50f1_8b82,
    0x2cb2_cb11, 0xb232_e75c, 0x4b36_95f2, 0xb287_07de,
    0xa05f_bcf6, 0xcd41_81e9, 0xe150_210c, 0xe24e_f1bd,
    0xb168_c381, 0xfde4_e789, 0x5c79_b0d8, 0x1e8b_fd43,
    0x4d49_5001, 0x38be_4341, 0x913c_ee1d, 0x92a7_9c3f,
    0x0897_66be, 0xbaee_adf4, 0x1286_becf, 0xb6ea_cb19,
    0x2660_c200, 0x7565_bde4, 0x6424_1f7a, 0x8248_dca9,
    0xc3b3_ad66, 0x2813_6086, 0x0bd8_dfa8, 0x356d_1cf2,
    0x1077_89be, 0xb3b2_e9ce, 0x0502_aa8f, 0x0bc0_351e,
    0x166b_f52a, 0xeb12_ff82, 0xe348_6911, 0xd34d_7516,
    0x4e7b_3aff, 0x5f43_671b, 0x9cf6_e037, 0x4981_ac83,
    0x3342_66ce, 0x8c93_41b7, 0xd0d8_54c0, 0xcb3a_6c88,
    0x47bc_2829, 0x4725_ba37, 0xa66a_d22b, 0x7ad6_1f1e,
    0x0c5c_bafa, 0x4437_f107, 0xb6e7_9962, 0x42d2_d816,
    0x0a96_1288, 0xe1a5_c06e, 0x1374_9e67, 0x72fc_081a,
    0xb1d1_39f7, 0xf958_3745, 0xcf19_df58, 0xbec3_f756,
    0xc06e_ba30, 0x0721_1b24, 0x45c2_8829, 0xc95e_317f,
    0xbc8e_c511, 0x38bc_46e9, 0xc6e6_fa14, 0xbae8_584a,
    0xad4e_bc46, 0x468f_508b, 0x7829_435f, 0xf124_183b,
    0x821d_ba9f, 0xaff6_0ff4, 0xea2c_4e6d, 0x16e3_9264,
    0x9254_4a8b, 0x009b_4fc3, 0xaba6_8ced, 0x9ac9_6f78,
    0x06a5_b79a, 0xb285_6e6e, 0x1aec_3ca9, 0xbe83_8688,
    0x0e08_04e9, 0x55f1_be56, 0xe7e5_363b, 0xb3a1_f25d,
    0xf7de_bb85, 0x61fe_033c, 0x1674_6233, 0x3c03_4c28,
    0xda6d_0c74, 0x79aa_c56c, 0x3ce4_e1ad, 0x51f0_c802,
    0x98f8_f35a, 0x1626_a49f, 0xeed8_2b29, 0x1d38_2fe3,
    0x0c4f_b99a, 0xbb32_5778, 0x3ec6_d97b, 0x6e77_a6a9,
    0xcb65_8b5c, 0xd452_30c7, 0x2bd1_408b, 0x60c0_3eb7,
    0xb906_8d78, 0xa337_54f4, 0xf430_c87d, 0xc8a7_1302,
    0xb96d_8c32, 0xebd4_e7be, 0xbe8b_9d2d, 0x7979_fb06,
    0xe722_5308, 0x8b75_cf77, 0x11ef_8da4, 0xe083_c858,
    0x8d6b_786f, 0x5a63_17a6, 0xfa5c_f7a0, 0x5dda_0033,
    0xf28e_bfb0, 0xf5b9_c310, 0xa0ea_c280, 0x08b9_767a,
    0xa3d9_d2b0, 0x79d3_4217, 0x021a_718d, 0x9ac6_336a,
    0x2711_fd60, 0x4380_50e3, 0x0699_08a8, 0x3d7f_edc4,
    0x826d_2bef, 0x4eeb_8476, 0x488d_cf25, 0x36c9_d566,
    0x28e7_4e41, 0xc261_0aca, 0x3d49_a9cf, 0xbae3_b9df,
    0xb65f_8de6, 0x92ae_af64, 0x3ac7_d5e6, 0x9ea8_0509,
    0xf22b_017d, 0xa417_3f70, 0xdd1e_16c3, 0x15e0_d7f9,
    0x50b1_b887, 0x2b9f_4fd5, 0x625a_ba82, 0x6a01_7962,
    0x2ec0_1b9c, 0x1548_8aa9, 0xd716_e740, 0x4005_5a2c,
    0x93d2_9a22, 0xe32d_bf9a, 0x0587_45b9, 0x3453_dc1e,
    0xd699_296e, 0x496c_ff6f, 0x1c9f_4986, 0xdfe2_ed07,
    0xb872_42d1, 0x19de_7eae, 0x053e_561a, 0x15ad_6f8c,
    0x6662_6c1c, 0x7154_c24c, 0xea08_2b2a, 0x93eb_2939,
    0x17dc_b0f0, 0x58d4_f2ae, 0x9ea2_94fb, 0x52cf_564c,
    0x9883_fe66, 0x2ec4_0581, 0x7639_53c3, 0x01d6_692e,
    0xd3a0_c108, 0xa1e7_160e, 0xe4f2_dfa6, 0x693e_d285,
    0x7490_4698, 0x4c2b_0edd, 0x4f75_7656, 0x5d39_3378,
    0xa132_234f, 0x3d32_1c5d, 0xc3f5_e194, 0x4b26_9301,
    0xc79f_022f, 0x3c99_7e7e, 0x5e4f_9504, 0x3ffa_fbbd,
    0x76f7_ad0e, 0x2966_93f4, 0x3d1f_ce6f, 0xc61e_45be,
    0xd3b5_ab34, 0xf72b_f9b7, 0x1b04_34c0, 0x4e72_b567,
    0x5592_a33d, 0xb522_9301, 0xcfd2_a87f, 0x60ae_b767,
    0x1814_386b, 0x30bc_c33d, 0x38a0_c07d, 0xfd16_06f2,
    0xc363_519b, 0x589d_d390, 0x5479_f8e6, 0x1cb8_d647,
    0x97fd_61a9, 0xea77_59f4, 0x2d57_539d, 0x569a_58cf,
    0xe84e_63ad, 0x462e_1b78, 0x6580_f87e, 0xf381_7914,
    0x91da_55f4, 0x40a2_30f3, 0xd198_8f35, 0xb6e3_18d2,
    0x3ffa_50bc, 0x3d40_f021, 0xc3c0_bdae, 0x4958_c24c,
    0x518f_36b2, 0x84b1_d370, 0x0fed_ce83, 0x878d_dada,
    0xf2a2_79c7, 0x94e0_1be8, 0x9071_6f4b, 0x954b_8aa3,
];

pub(crate) const S8: [u32; 256] = [
    0xe216_300d, 0xbbdd_fffc, 0xa7eb_dabd, 0x3564_8095,
    0x7789_f8b7, 0xe6c1_121b, 0x0e24_1600, 0x052c_e8b5,
    0x11a9_cfb0, 0xe595_2f11, 0xece7_990a, 0x9386_d174,
    0x2a42_931c, 0x76e3_8111, 0xb12d_ef3a, 0x37dd_ddfc,
    0xde9a_deb1, 0x0a0c_c32c, 0xbe19_7029, 0x84a0_0940,
    0xbb24_3a0f, 0xb4d1_37cf, 0xb44e_79f0, 0x049e_edfd,
    0x0b15_a15d, 0x480d_3168, 0x8bbb_de5a, 0x669d_ed42,
    0xc7ec_e831, 0x3f8f_95e7, 0x72df_191b, 0x7580_330d,
    0x9407_4251, 0x5c7d_cdfa, 0xabbe_6d63, 0xaa40_2164,
    0xb301_d40a, 0x02e7_d1ca, 0x5357_1dae, 0x7a31_82a2,
    0x12a8_ddec, 0xfdaa_335d, 0x176f_43e8, 0x71fb_46d4,
    0x3812_9022, 0xce94_9ad4, 0xb847_69ad, 0x965b_d862,
    0x82f3_d055, 0x66fb_9767, 0x15b8_0b4e, 0x1d5b_47a0,
    0x4cfd_e06f, 0xc28e_c4b8, 0x57e8_726e, 0x647a_78fc,
    0x9986_5d44, 0x608b_d593, 0x6c20_0e03, 0x39dc_5ff6,
    0x5d0b_00a3, 0xae63_aff2, 0x7e8b_d632, 0x7010_8c0c,
    0xbbd3_5049, 0x2998_df04, 0x980c_f42a, 0x9b6d_f491,
    0x9e7e_dd53, 0x0691_8548, 0x58cb_7e07, 0x3b74_ef2e,
    0x522f_ffb1, 0xd247_08cc, 0x1c7e_27cd, 0xa4eb_215b,
    0x3cf1_d2e2, 0x19b4_7a38, 0x424f_7618, 0x3585_6039,
    0x9d17_dee7, 0x27eb_35e6, 0xc9af_f67b, 0x36ba_f5b8,
    0x09c4_67cd, 0xc189_10b1, 0xe11d_bf7b, 0x06cd_1af8,
    0x7170_c608, 0x2d5e_3354, 0xd4de_495a, 0x64c6_d006,
    0xbcc0_c62c, 0x3dd0_0db3, 0x708f_8f34, 0x77d5_1b42,
    0x264f_620f, 0x24b8_d2bf, 0x15c1_b79e, 0x46a5_2564,
    0xf8d7_e54e, 0x3e37_8160, 0x7895_cda5, 0x859c_15a5,
    0xe645_9788, 0xc37b_c75f, 0xdb07_ba0c, 0x0676_a3ab,
    0x7f22_9b1e, 0x3184_2e7b, 0x2425_9fd7, 0xf8be_f472,
    0x835f_fcb8, 0x6df4_c1f2, 0x96f5_b195, 0xfd0a_f0fc,
    0xb0fe_134c, 0xe250_6d3d, 0x4f9b_12ea, 0xf215_f225,
    0xa223_736f, 0x9fb4_c428, 0x25d0_4979, 0x34c7_13f8,
    0xc461_8187, 0xea7a_6e98, 0x7cd1_6efc, 0x1436_876c,
    0xf154_4107, 0xbede_ee14, 0x56e9_af27, 0xa04a_a441,
    0x3cf7_c899, 0x92ec_bae6, 0xdd67_016d, 0x1516_82eb,
    0xa842_eedf, 0xfdba_60b4, 0xf190_7b75, 0x20e3_030f,
    0x24d8_c29e, 0xe139_673b, 0xefa6_3fb8, 0x7187_3054,
    0xb6f2_cf3b, 0x9f32_6442, 0xcb15_a4cc, 0xb01a_4504,
    0xf1e4_7d8d, 0x844a_1be5, 0xbae7_dfdc, 0x42cb_da70,
    0xcd7d_ae0a, 0x57e8_5b7a, 0xd53f_5af6, 0x20cf_4d8c,
    0xcea4_d428, 0x79d1_30a4, 0x3486_ebfb, 0x33d3_cddc,
    0x7785_3b53, 0x37ef_fcb5, 0xc506_8778, 0xe580_b3e6,
    0x4e68_b8f4, 0xc5c8_b37e, 0x0d80_9ea2, 0x398f_eb7c,
    0x132a_4f94, 0x43b7_950e, 0x2fee_7d1c, 0x2236_13bd,
    0xdd06_caa2, 0x37df_932b, 0xc424_8289, 0xacf3_ebc3,
    0x5715_f6b7, 0xef34_78dd, 0xf267_616f, 0xc148_cbe4,
    0x9052_815e, 0x5e41_0fab, 0xb48a_2465, 0x2eda_7fa4,
    0xe87b_40e4, 0xe98e_a084, 0x5889_e9e1, 0xefd3_90fc,
    0xdd07_d35b, 0xdb48_5694, 0x38d7_e5b2, 0x5772_0101,
    0x730e_debc, 0x5b64_3113, 0x9491_7e4f, 0x503c_2fba,
    0x646f_1282, 0x7523_d24a, 0xe077_9695, 0xf9c1_7a8f,
    0x7a5b_2121, 0xd187_b896, 0x2926_3a4d, 0xba51_0cdf,
    0x81f4_7c9f, 0xad11_63ed, 0xea7b_5965, 0x1a00_726e,
    0x1140_3092, 0x00da_6d77, 0x4a0c_dd61, 0xad1f_4603,
    0x605b_dfb0, 0x9eed_c364, 0x22eb_e6a8, 0xcee7_d28a,
    0xa0e7_36a0, 0x5564_a6b9, 0x1085_3209, 0xc7eb_8f37,
    0x2de7_05ca, 0x8951_570f, 0xdf09_822b, 0xbd69_1a6c,
    0xaa12_e4f2, 0x8745_1c0f, 0xe0f6_a27a, 0x3ada_4819,
    0x4cf1_764f, 0x0d77_1c2b, 0x67cd_b156, 0x350d_8384,
    0x5938_fa0f, 0x4239_9ef3, 0x3699_7b07, 0x0e84_093d,
    0x4aa9_3e61, 0x8360_d87b, 0x1fa9_8b0c, 0x1149_382c,
    0xe976_25a5, 0x0614_d1b7, 0x0e25_244b, 0x0c76_8347,
    0x589e_8d82, 0x0d20_59d1, 0xa466_bb1e, 0xf8da_0a82,
    0x04f1_9130, 0xba6e_4ec0, 0x9926_5164, 0x1ee7_230d,
    0x50b2_ad80, 0xeaee_6801, 0x8db2_a283, 0xea8b_f59e,
];