]> www.wagner.pp.ru Git - openssl-gost/engine.git/blob - ecp_id_GostR3410_2001_CryptoPro_B_ParamSet.c
GOST EC armv7 aarch64 fixes
[openssl-gost/engine.git] / ecp_id_GostR3410_2001_CryptoPro_B_ParamSet.c
1 /* Autogenerated: ECCKiila https://gitlab.com/nisec/ecckiila */
2 /*-
3  * MIT License
4  * 
5  * Copyright (c) 2020 Luis Rivera-Zamarripa, Jesús-Javier Chi-Domínguez, Billy Bob Brumley
6  * 
7  * Permission is hereby granted, free of charge, to any person obtaining a copy
8  * of this software and associated documentation files (the "Software"), to deal
9  * in the Software without restriction, including without limitation the rights
10  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11  * copies of the Software, and to permit persons to whom the Software is
12  * furnished to do so, subject to the following conditions:
13  * 
14  * The above copyright notice and this permission notice shall be included in all
15  * copies or substantial portions of the Software.
16  * 
17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23  * SOFTWARE.
24  */
25 #if defined(__SIZEOF_INT128__) && !defined(PEDANTIC)
26
27 #include <stdint.h>
28 #include <string.h>
29 #define LIMB_BITS 64
30 #define LIMB_CNT 4
31 /* Field elements */
32 typedef uint64_t fe_t[LIMB_CNT];
33 typedef uint64_t limb_t;
34
35 #define fe_copy(d, s) memcpy(d, s, sizeof(fe_t))
36 #define fe_set_zero(d) memset(d, 0, sizeof(fe_t))
37
38 /* Projective points */
39 typedef struct {
40     fe_t X;
41     fe_t Y;
42     fe_t Z;
43 } pt_prj_t;
44
45 /* Affine points */
46 typedef struct {
47     fe_t X;
48     fe_t Y;
49 } pt_aff_t;
50
51 /* BEGIN verbatim fiat code https://github.com/mit-plv/fiat-crypto */
52 /*-
53  * MIT License
54  *
55  * Copyright (c) 2020 the fiat-crypto authors (see the AUTHORS file)
56  *
57  * Permission is hereby granted, free of charge, to any person obtaining a copy
58  * of this software and associated documentation files (the "Software"), to deal
59  * in the Software without restriction, including without limitation the rights
60  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
61  * copies of the Software, and to permit persons to whom the Software is
62  * furnished to do so, subject to the following conditions:
63  *
64  * The above copyright notice and this permission notice shall be included in
65  * all copies or substantial portions of the Software.
66  *
67  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
68  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
69  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
70  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
71  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
72  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
73  * SOFTWARE.
74  */
75
76 /* Autogenerated: word_by_word_montgomery --static id_GostR3410_2001_CryptoPro_B_ParamSet 64 '2^255 + 3225' */
77 /* curve description: id_GostR3410_2001_CryptoPro_B_ParamSet */
78 /* machine_wordsize = 64 (from "64") */
79 /* requested operations: (all) */
80 /* m = 0x8000000000000000000000000000000000000000000000000000000000000c99 (from "2^255 + 3225") */
81 /*                                                                    */
82 /* NOTE: In addition to the bounds specified above each function, all */
83 /*   functions synthesized for this Montgomery arithmetic require the */
84 /*   input to be strictly less than the prime modulus (m), and also   */
85 /*   require the input to be in the unique saturated representation.  */
86 /*   All functions also ensure that these two properties are true of  */
87 /*   return values.                                                   */
88 /*  */
89 /* Computed values: */
90 /* eval z = z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) */
91 /* bytes_eval z = z[0] + (z[1] << 8) + (z[2] << 16) + (z[3] << 24) + (z[4] << 32) + (z[5] << 40) + (z[6] << 48) + (z[7] << 56) + (z[8] << 64) + (z[9] << 72) + (z[10] << 80) + (z[11] << 88) + (z[12] << 96) + (z[13] << 104) + (z[14] << 112) + (z[15] << 120) + (z[16] << 128) + (z[17] << 136) + (z[18] << 144) + (z[19] << 152) + (z[20] << 160) + (z[21] << 168) + (z[22] << 176) + (z[23] << 184) + (z[24] << 192) + (z[25] << 200) + (z[26] << 208) + (z[27] << 216) + (z[28] << 224) + (z[29] << 232) + (z[30] << 240) + (z[31] << 248) */
92
93 #include <stdint.h>
94 typedef unsigned char fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1;
95 typedef signed char fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1;
96 typedef signed __int128 fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int128;
97 typedef unsigned __int128 fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint128;
98
99 #if (-1 & 3) != 3
100 #error "This code only works on a two's complement system"
101 #endif
102
103 /*
104  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64 is an addition with carry.
105  * Postconditions:
106  *   out1 = (arg1 + arg2 + arg3) mod 2^64
107  *   out2 = ⌊(arg1 + arg2 + arg3) / 2^64⌋
108  *
109  * Input Bounds:
110  *   arg1: [0x0 ~> 0x1]
111  *   arg2: [0x0 ~> 0xffffffffffffffff]
112  *   arg3: [0x0 ~> 0xffffffffffffffff]
113  * Output Bounds:
114  *   out1: [0x0 ~> 0xffffffffffffffff]
115  *   out2: [0x0 ~> 0x1]
116  */
117 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
118     uint64_t *out1, fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 *out2,
119     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1, uint64_t arg2,
120     uint64_t arg3) {
121     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint128 x1;
122     uint64_t x2;
123     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x3;
124     x1 = ((arg1 + (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint128)arg2) +
125           arg3);
126     x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff));
127     x3 = (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1)(x1 >> 64);
128     *out1 = x2;
129     *out2 = x3;
130 }
131
132 /*
133  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64 is a subtraction with borrow.
134  * Postconditions:
135  *   out1 = (-arg1 + arg2 + -arg3) mod 2^64
136  *   out2 = -⌊(-arg1 + arg2 + -arg3) / 2^64⌋
137  *
138  * Input Bounds:
139  *   arg1: [0x0 ~> 0x1]
140  *   arg2: [0x0 ~> 0xffffffffffffffff]
141  *   arg3: [0x0 ~> 0xffffffffffffffff]
142  * Output Bounds:
143  *   out1: [0x0 ~> 0xffffffffffffffff]
144  *   out2: [0x0 ~> 0x1]
145  */
146 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
147     uint64_t *out1, fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 *out2,
148     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1, uint64_t arg2,
149     uint64_t arg3) {
150     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int128 x1;
151     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1 x2;
152     uint64_t x3;
153     x1 = ((arg2 - (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int128)arg1) -
154           arg3);
155     x2 = (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1)(x1 >> 64);
156     x3 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff));
157     *out1 = x3;
158     *out2 = (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1)(0x0 - x2);
159 }
160
161 /*
162  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64 is a multiplication, returning the full double-width result.
163  * Postconditions:
164  *   out1 = (arg1 * arg2) mod 2^64
165  *   out2 = ⌊arg1 * arg2 / 2^64⌋
166  *
167  * Input Bounds:
168  *   arg1: [0x0 ~> 0xffffffffffffffff]
169  *   arg2: [0x0 ~> 0xffffffffffffffff]
170  * Output Bounds:
171  *   out1: [0x0 ~> 0xffffffffffffffff]
172  *   out2: [0x0 ~> 0xffffffffffffffff]
173  */
174 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
175     uint64_t *out1, uint64_t *out2, uint64_t arg1, uint64_t arg2) {
176     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint128 x1;
177     uint64_t x2;
178     uint64_t x3;
179     x1 = ((fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint128)arg1 * arg2);
180     x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff));
181     x3 = (uint64_t)(x1 >> 64);
182     *out1 = x2;
183     *out2 = x3;
184 }
185
186 /*
187  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64 is a single-word conditional move.
188  * Postconditions:
189  *   out1 = (if arg1 = 0 then arg2 else arg3)
190  *
191  * Input Bounds:
192  *   arg1: [0x0 ~> 0x1]
193  *   arg2: [0x0 ~> 0xffffffffffffffff]
194  *   arg3: [0x0 ~> 0xffffffffffffffff]
195  * Output Bounds:
196  *   out1: [0x0 ~> 0xffffffffffffffff]
197  */
198 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(
199     uint64_t *out1, fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1,
200     uint64_t arg2, uint64_t arg3) {
201     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x1;
202     uint64_t x2;
203     uint64_t x3;
204     x1 = (!(!arg1));
205     x2 = ((fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1)(0x0 - x1) &
206           UINT64_C(0xffffffffffffffff));
207     x3 = ((x2 & arg3) | ((~x2) & arg2));
208     *out1 = x3;
209 }
210
211 /*
212  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul multiplies two field elements in the Montgomery domain.
213  * Preconditions:
214  *   0 ≤ eval arg1 < m
215  *   0 ≤ eval arg2 < m
216  * Postconditions:
217  *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m
218  *   0 ≤ eval out1 < m
219  *
220  * Input Bounds:
221  *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
222  *   arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
223  * Output Bounds:
224  *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
225  */
226 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(
227     uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) {
228     uint64_t x1;
229     uint64_t x2;
230     uint64_t x3;
231     uint64_t x4;
232     uint64_t x5;
233     uint64_t x6;
234     uint64_t x7;
235     uint64_t x8;
236     uint64_t x9;
237     uint64_t x10;
238     uint64_t x11;
239     uint64_t x12;
240     uint64_t x13;
241     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14;
242     uint64_t x15;
243     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x16;
244     uint64_t x17;
245     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x18;
246     uint64_t x19;
247     uint64_t x20;
248     uint64_t x21;
249     uint64_t x22;
250     uint64_t x23;
251     uint64_t x24;
252     uint64_t x25;
253     uint64_t x26;
254     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x27;
255     uint64_t x28;
256     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x29;
257     uint64_t x30;
258     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x31;
259     uint64_t x32;
260     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x33;
261     uint64_t x34;
262     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x35;
263     uint64_t x36;
264     uint64_t x37;
265     uint64_t x38;
266     uint64_t x39;
267     uint64_t x40;
268     uint64_t x41;
269     uint64_t x42;
270     uint64_t x43;
271     uint64_t x44;
272     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x45;
273     uint64_t x46;
274     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x47;
275     uint64_t x48;
276     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x49;
277     uint64_t x50;
278     uint64_t x51;
279     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x52;
280     uint64_t x53;
281     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x54;
282     uint64_t x55;
283     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x56;
284     uint64_t x57;
285     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x58;
286     uint64_t x59;
287     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x60;
288     uint64_t x61;
289     uint64_t x62;
290     uint64_t x63;
291     uint64_t x64;
292     uint64_t x65;
293     uint64_t x66;
294     uint64_t x67;
295     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x68;
296     uint64_t x69;
297     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x70;
298     uint64_t x71;
299     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x72;
300     uint64_t x73;
301     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x74;
302     uint64_t x75;
303     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x76;
304     uint64_t x77;
305     uint64_t x78;
306     uint64_t x79;
307     uint64_t x80;
308     uint64_t x81;
309     uint64_t x82;
310     uint64_t x83;
311     uint64_t x84;
312     uint64_t x85;
313     uint64_t x86;
314     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x87;
315     uint64_t x88;
316     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x89;
317     uint64_t x90;
318     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x91;
319     uint64_t x92;
320     uint64_t x93;
321     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x94;
322     uint64_t x95;
323     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x96;
324     uint64_t x97;
325     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x98;
326     uint64_t x99;
327     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x100;
328     uint64_t x101;
329     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x102;
330     uint64_t x103;
331     uint64_t x104;
332     uint64_t x105;
333     uint64_t x106;
334     uint64_t x107;
335     uint64_t x108;
336     uint64_t x109;
337     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x110;
338     uint64_t x111;
339     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x112;
340     uint64_t x113;
341     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x114;
342     uint64_t x115;
343     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x116;
344     uint64_t x117;
345     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x118;
346     uint64_t x119;
347     uint64_t x120;
348     uint64_t x121;
349     uint64_t x122;
350     uint64_t x123;
351     uint64_t x124;
352     uint64_t x125;
353     uint64_t x126;
354     uint64_t x127;
355     uint64_t x128;
356     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x129;
357     uint64_t x130;
358     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x131;
359     uint64_t x132;
360     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x133;
361     uint64_t x134;
362     uint64_t x135;
363     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x136;
364     uint64_t x137;
365     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x138;
366     uint64_t x139;
367     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x140;
368     uint64_t x141;
369     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x142;
370     uint64_t x143;
371     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x144;
372     uint64_t x145;
373     uint64_t x146;
374     uint64_t x147;
375     uint64_t x148;
376     uint64_t x149;
377     uint64_t x150;
378     uint64_t x151;
379     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x152;
380     uint64_t x153;
381     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x154;
382     uint64_t x155;
383     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x156;
384     uint64_t x157;
385     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x158;
386     uint64_t x159;
387     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x160;
388     uint64_t x161;
389     uint64_t x162;
390     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x163;
391     uint64_t x164;
392     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x165;
393     uint64_t x166;
394     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x167;
395     uint64_t x168;
396     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x169;
397     uint64_t x170;
398     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x171;
399     uint64_t x172;
400     uint64_t x173;
401     uint64_t x174;
402     uint64_t x175;
403     x1 = (arg1[1]);
404     x2 = (arg1[2]);
405     x3 = (arg1[3]);
406     x4 = (arg1[0]);
407     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x5, &x6, x4,
408                                                          (arg2[3]));
409     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x7, &x8, x4,
410                                                          (arg2[2]));
411     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x9, &x10, x4,
412                                                          (arg2[1]));
413     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x11, &x12, x4,
414                                                          (arg2[0]));
415     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x13, &x14, 0x0,
416                                                               x12, x9);
417     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x15, &x16, x14,
418                                                               x10, x7);
419     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x17, &x18, x16,
420                                                               x8, x5);
421     x19 = (x18 + x6);
422     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
423         &x20, &x21, x11, UINT64_C(0xbd667ab8a3347857));
424     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
425         &x22, &x23, x20, UINT64_C(0x8000000000000000));
426     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x24, &x25, x20,
427                                                          UINT16_C(0xc99));
428     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x26, &x27, 0x0,
429                                                               x11, x24);
430     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x28, &x29, x27,
431                                                               x13, x25);
432     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x30, &x31, x29,
433                                                               x15, 0x0);
434     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x32, &x33, x31,
435                                                               x17, x22);
436     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x34, &x35, x33,
437                                                               x19, x23);
438     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x36, &x37, x1,
439                                                          (arg2[3]));
440     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x38, &x39, x1,
441                                                          (arg2[2]));
442     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x40, &x41, x1,
443                                                          (arg2[1]));
444     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x42, &x43, x1,
445                                                          (arg2[0]));
446     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x44, &x45, 0x0,
447                                                               x43, x40);
448     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x46, &x47, x45,
449                                                               x41, x38);
450     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x48, &x49, x47,
451                                                               x39, x36);
452     x50 = (x49 + x37);
453     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x51, &x52, 0x0,
454                                                               x28, x42);
455     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x53, &x54, x52,
456                                                               x30, x44);
457     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x55, &x56, x54,
458                                                               x32, x46);
459     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x57, &x58, x56,
460                                                               x34, x48);
461     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x59, &x60, x58,
462                                                               x35, x50);
463     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
464         &x61, &x62, x51, UINT64_C(0xbd667ab8a3347857));
465     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
466         &x63, &x64, x61, UINT64_C(0x8000000000000000));
467     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x65, &x66, x61,
468                                                          UINT16_C(0xc99));
469     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x67, &x68, 0x0,
470                                                               x51, x65);
471     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x69, &x70, x68,
472                                                               x53, x66);
473     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x71, &x72, x70,
474                                                               x55, 0x0);
475     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x73, &x74, x72,
476                                                               x57, x63);
477     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x75, &x76, x74,
478                                                               x59, x64);
479     x77 = ((uint64_t)x76 + x60);
480     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x78, &x79, x2,
481                                                          (arg2[3]));
482     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x80, &x81, x2,
483                                                          (arg2[2]));
484     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x82, &x83, x2,
485                                                          (arg2[1]));
486     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x84, &x85, x2,
487                                                          (arg2[0]));
488     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x86, &x87, 0x0,
489                                                               x85, x82);
490     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x88, &x89, x87,
491                                                               x83, x80);
492     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x90, &x91, x89,
493                                                               x81, x78);
494     x92 = (x91 + x79);
495     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x93, &x94, 0x0,
496                                                               x69, x84);
497     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x95, &x96, x94,
498                                                               x71, x86);
499     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x97, &x98, x96,
500                                                               x73, x88);
501     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x99, &x100, x98,
502                                                               x75, x90);
503     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x101, &x102,
504                                                               x100, x77, x92);
505     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
506         &x103, &x104, x93, UINT64_C(0xbd667ab8a3347857));
507     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
508         &x105, &x106, x103, UINT64_C(0x8000000000000000));
509     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x107, &x108, x103,
510                                                          UINT16_C(0xc99));
511     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x109, &x110, 0x0,
512                                                               x93, x107);
513     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x111, &x112,
514                                                               x110, x95, x108);
515     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x113, &x114,
516                                                               x112, x97, 0x0);
517     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x115, &x116,
518                                                               x114, x99, x105);
519     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x117, &x118,
520                                                               x116, x101, x106);
521     x119 = ((uint64_t)x118 + x102);
522     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x120, &x121, x3,
523                                                          (arg2[3]));
524     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x122, &x123, x3,
525                                                          (arg2[2]));
526     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x124, &x125, x3,
527                                                          (arg2[1]));
528     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x126, &x127, x3,
529                                                          (arg2[0]));
530     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x128, &x129, 0x0,
531                                                               x127, x124);
532     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x130, &x131,
533                                                               x129, x125, x122);
534     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x132, &x133,
535                                                               x131, x123, x120);
536     x134 = (x133 + x121);
537     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x135, &x136, 0x0,
538                                                               x111, x126);
539     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x137, &x138,
540                                                               x136, x113, x128);
541     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x139, &x140,
542                                                               x138, x115, x130);
543     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x141, &x142,
544                                                               x140, x117, x132);
545     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x143, &x144,
546                                                               x142, x119, x134);
547     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
548         &x145, &x146, x135, UINT64_C(0xbd667ab8a3347857));
549     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
550         &x147, &x148, x145, UINT64_C(0x8000000000000000));
551     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x149, &x150, x145,
552                                                          UINT16_C(0xc99));
553     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x151, &x152, 0x0,
554                                                               x135, x149);
555     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x153, &x154,
556                                                               x152, x137, x150);
557     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x155, &x156,
558                                                               x154, x139, 0x0);
559     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x157, &x158,
560                                                               x156, x141, x147);
561     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x159, &x160,
562                                                               x158, x143, x148);
563     x161 = ((uint64_t)x160 + x144);
564     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
565         &x162, &x163, 0x0, x153, UINT16_C(0xc99));
566     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x164, &x165,
567                                                                x163, x155, 0x0);
568     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x166, &x167,
569                                                                x165, x157, 0x0);
570     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
571         &x168, &x169, x167, x159, UINT64_C(0x8000000000000000));
572     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x170, &x171,
573                                                                x169, x161, 0x0);
574     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x172, x171, x162,
575                                                             x153);
576     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x173, x171, x164,
577                                                             x155);
578     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x174, x171, x166,
579                                                             x157);
580     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x175, x171, x168,
581                                                             x159);
582     out1[0] = x172;
583     out1[1] = x173;
584     out1[2] = x174;
585     out1[3] = x175;
586 }
587
588 /*
589  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square squares a field element in the Montgomery domain.
590  * Preconditions:
591  *   0 ≤ eval arg1 < m
592  * Postconditions:
593  *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m
594  *   0 ≤ eval out1 < m
595  *
596  * Input Bounds:
597  *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
598  * Output Bounds:
599  *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
600  */
601 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(
602     uint64_t out1[4], const uint64_t arg1[4]) {
603     uint64_t x1;
604     uint64_t x2;
605     uint64_t x3;
606     uint64_t x4;
607     uint64_t x5;
608     uint64_t x6;
609     uint64_t x7;
610     uint64_t x8;
611     uint64_t x9;
612     uint64_t x10;
613     uint64_t x11;
614     uint64_t x12;
615     uint64_t x13;
616     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14;
617     uint64_t x15;
618     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x16;
619     uint64_t x17;
620     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x18;
621     uint64_t x19;
622     uint64_t x20;
623     uint64_t x21;
624     uint64_t x22;
625     uint64_t x23;
626     uint64_t x24;
627     uint64_t x25;
628     uint64_t x26;
629     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x27;
630     uint64_t x28;
631     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x29;
632     uint64_t x30;
633     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x31;
634     uint64_t x32;
635     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x33;
636     uint64_t x34;
637     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x35;
638     uint64_t x36;
639     uint64_t x37;
640     uint64_t x38;
641     uint64_t x39;
642     uint64_t x40;
643     uint64_t x41;
644     uint64_t x42;
645     uint64_t x43;
646     uint64_t x44;
647     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x45;
648     uint64_t x46;
649     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x47;
650     uint64_t x48;
651     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x49;
652     uint64_t x50;
653     uint64_t x51;
654     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x52;
655     uint64_t x53;
656     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x54;
657     uint64_t x55;
658     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x56;
659     uint64_t x57;
660     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x58;
661     uint64_t x59;
662     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x60;
663     uint64_t x61;
664     uint64_t x62;
665     uint64_t x63;
666     uint64_t x64;
667     uint64_t x65;
668     uint64_t x66;
669     uint64_t x67;
670     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x68;
671     uint64_t x69;
672     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x70;
673     uint64_t x71;
674     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x72;
675     uint64_t x73;
676     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x74;
677     uint64_t x75;
678     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x76;
679     uint64_t x77;
680     uint64_t x78;
681     uint64_t x79;
682     uint64_t x80;
683     uint64_t x81;
684     uint64_t x82;
685     uint64_t x83;
686     uint64_t x84;
687     uint64_t x85;
688     uint64_t x86;
689     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x87;
690     uint64_t x88;
691     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x89;
692     uint64_t x90;
693     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x91;
694     uint64_t x92;
695     uint64_t x93;
696     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x94;
697     uint64_t x95;
698     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x96;
699     uint64_t x97;
700     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x98;
701     uint64_t x99;
702     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x100;
703     uint64_t x101;
704     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x102;
705     uint64_t x103;
706     uint64_t x104;
707     uint64_t x105;
708     uint64_t x106;
709     uint64_t x107;
710     uint64_t x108;
711     uint64_t x109;
712     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x110;
713     uint64_t x111;
714     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x112;
715     uint64_t x113;
716     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x114;
717     uint64_t x115;
718     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x116;
719     uint64_t x117;
720     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x118;
721     uint64_t x119;
722     uint64_t x120;
723     uint64_t x121;
724     uint64_t x122;
725     uint64_t x123;
726     uint64_t x124;
727     uint64_t x125;
728     uint64_t x126;
729     uint64_t x127;
730     uint64_t x128;
731     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x129;
732     uint64_t x130;
733     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x131;
734     uint64_t x132;
735     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x133;
736     uint64_t x134;
737     uint64_t x135;
738     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x136;
739     uint64_t x137;
740     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x138;
741     uint64_t x139;
742     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x140;
743     uint64_t x141;
744     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x142;
745     uint64_t x143;
746     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x144;
747     uint64_t x145;
748     uint64_t x146;
749     uint64_t x147;
750     uint64_t x148;
751     uint64_t x149;
752     uint64_t x150;
753     uint64_t x151;
754     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x152;
755     uint64_t x153;
756     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x154;
757     uint64_t x155;
758     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x156;
759     uint64_t x157;
760     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x158;
761     uint64_t x159;
762     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x160;
763     uint64_t x161;
764     uint64_t x162;
765     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x163;
766     uint64_t x164;
767     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x165;
768     uint64_t x166;
769     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x167;
770     uint64_t x168;
771     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x169;
772     uint64_t x170;
773     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x171;
774     uint64_t x172;
775     uint64_t x173;
776     uint64_t x174;
777     uint64_t x175;
778     x1 = (arg1[1]);
779     x2 = (arg1[2]);
780     x3 = (arg1[3]);
781     x4 = (arg1[0]);
782     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x5, &x6, x4,
783                                                          (arg1[3]));
784     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x7, &x8, x4,
785                                                          (arg1[2]));
786     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x9, &x10, x4,
787                                                          (arg1[1]));
788     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x11, &x12, x4,
789                                                          (arg1[0]));
790     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x13, &x14, 0x0,
791                                                               x12, x9);
792     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x15, &x16, x14,
793                                                               x10, x7);
794     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x17, &x18, x16,
795                                                               x8, x5);
796     x19 = (x18 + x6);
797     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
798         &x20, &x21, x11, UINT64_C(0xbd667ab8a3347857));
799     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
800         &x22, &x23, x20, UINT64_C(0x8000000000000000));
801     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x24, &x25, x20,
802                                                          UINT16_C(0xc99));
803     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x26, &x27, 0x0,
804                                                               x11, x24);
805     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x28, &x29, x27,
806                                                               x13, x25);
807     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x30, &x31, x29,
808                                                               x15, 0x0);
809     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x32, &x33, x31,
810                                                               x17, x22);
811     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x34, &x35, x33,
812                                                               x19, x23);
813     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x36, &x37, x1,
814                                                          (arg1[3]));
815     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x38, &x39, x1,
816                                                          (arg1[2]));
817     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x40, &x41, x1,
818                                                          (arg1[1]));
819     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x42, &x43, x1,
820                                                          (arg1[0]));
821     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x44, &x45, 0x0,
822                                                               x43, x40);
823     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x46, &x47, x45,
824                                                               x41, x38);
825     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x48, &x49, x47,
826                                                               x39, x36);
827     x50 = (x49 + x37);
828     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x51, &x52, 0x0,
829                                                               x28, x42);
830     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x53, &x54, x52,
831                                                               x30, x44);
832     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x55, &x56, x54,
833                                                               x32, x46);
834     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x57, &x58, x56,
835                                                               x34, x48);
836     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x59, &x60, x58,
837                                                               x35, x50);
838     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
839         &x61, &x62, x51, UINT64_C(0xbd667ab8a3347857));
840     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
841         &x63, &x64, x61, UINT64_C(0x8000000000000000));
842     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x65, &x66, x61,
843                                                          UINT16_C(0xc99));
844     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x67, &x68, 0x0,
845                                                               x51, x65);
846     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x69, &x70, x68,
847                                                               x53, x66);
848     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x71, &x72, x70,
849                                                               x55, 0x0);
850     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x73, &x74, x72,
851                                                               x57, x63);
852     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x75, &x76, x74,
853                                                               x59, x64);
854     x77 = ((uint64_t)x76 + x60);
855     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x78, &x79, x2,
856                                                          (arg1[3]));
857     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x80, &x81, x2,
858                                                          (arg1[2]));
859     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x82, &x83, x2,
860                                                          (arg1[1]));
861     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x84, &x85, x2,
862                                                          (arg1[0]));
863     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x86, &x87, 0x0,
864                                                               x85, x82);
865     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x88, &x89, x87,
866                                                               x83, x80);
867     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x90, &x91, x89,
868                                                               x81, x78);
869     x92 = (x91 + x79);
870     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x93, &x94, 0x0,
871                                                               x69, x84);
872     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x95, &x96, x94,
873                                                               x71, x86);
874     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x97, &x98, x96,
875                                                               x73, x88);
876     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x99, &x100, x98,
877                                                               x75, x90);
878     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x101, &x102,
879                                                               x100, x77, x92);
880     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
881         &x103, &x104, x93, UINT64_C(0xbd667ab8a3347857));
882     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
883         &x105, &x106, x103, UINT64_C(0x8000000000000000));
884     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x107, &x108, x103,
885                                                          UINT16_C(0xc99));
886     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x109, &x110, 0x0,
887                                                               x93, x107);
888     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x111, &x112,
889                                                               x110, x95, x108);
890     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x113, &x114,
891                                                               x112, x97, 0x0);
892     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x115, &x116,
893                                                               x114, x99, x105);
894     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x117, &x118,
895                                                               x116, x101, x106);
896     x119 = ((uint64_t)x118 + x102);
897     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x120, &x121, x3,
898                                                          (arg1[3]));
899     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x122, &x123, x3,
900                                                          (arg1[2]));
901     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x124, &x125, x3,
902                                                          (arg1[1]));
903     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x126, &x127, x3,
904                                                          (arg1[0]));
905     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x128, &x129, 0x0,
906                                                               x127, x124);
907     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x130, &x131,
908                                                               x129, x125, x122);
909     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x132, &x133,
910                                                               x131, x123, x120);
911     x134 = (x133 + x121);
912     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x135, &x136, 0x0,
913                                                               x111, x126);
914     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x137, &x138,
915                                                               x136, x113, x128);
916     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x139, &x140,
917                                                               x138, x115, x130);
918     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x141, &x142,
919                                                               x140, x117, x132);
920     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x143, &x144,
921                                                               x142, x119, x134);
922     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
923         &x145, &x146, x135, UINT64_C(0xbd667ab8a3347857));
924     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
925         &x147, &x148, x145, UINT64_C(0x8000000000000000));
926     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x149, &x150, x145,
927                                                          UINT16_C(0xc99));
928     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x151, &x152, 0x0,
929                                                               x135, x149);
930     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x153, &x154,
931                                                               x152, x137, x150);
932     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x155, &x156,
933                                                               x154, x139, 0x0);
934     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x157, &x158,
935                                                               x156, x141, x147);
936     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x159, &x160,
937                                                               x158, x143, x148);
938     x161 = ((uint64_t)x160 + x144);
939     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
940         &x162, &x163, 0x0, x153, UINT16_C(0xc99));
941     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x164, &x165,
942                                                                x163, x155, 0x0);
943     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x166, &x167,
944                                                                x165, x157, 0x0);
945     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
946         &x168, &x169, x167, x159, UINT64_C(0x8000000000000000));
947     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x170, &x171,
948                                                                x169, x161, 0x0);
949     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x172, x171, x162,
950                                                             x153);
951     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x173, x171, x164,
952                                                             x155);
953     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x174, x171, x166,
954                                                             x157);
955     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x175, x171, x168,
956                                                             x159);
957     out1[0] = x172;
958     out1[1] = x173;
959     out1[2] = x174;
960     out1[3] = x175;
961 }
962
963 /*
964  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add adds two field elements in the Montgomery domain.
965  * Preconditions:
966  *   0 ≤ eval arg1 < m
967  *   0 ≤ eval arg2 < m
968  * Postconditions:
969  *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m
970  *   0 ≤ eval out1 < m
971  *
972  * Input Bounds:
973  *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
974  *   arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
975  * Output Bounds:
976  *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
977  */
978 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(
979     uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) {
980     uint64_t x1;
981     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x2;
982     uint64_t x3;
983     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x4;
984     uint64_t x5;
985     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x6;
986     uint64_t x7;
987     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x8;
988     uint64_t x9;
989     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x10;
990     uint64_t x11;
991     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x12;
992     uint64_t x13;
993     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14;
994     uint64_t x15;
995     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x16;
996     uint64_t x17;
997     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x18;
998     uint64_t x19;
999     uint64_t x20;
1000     uint64_t x21;
1001     uint64_t x22;
1002     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1003         &x1, &x2, 0x0, (arg1[0]), (arg2[0]));
1004     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1005         &x3, &x4, x2, (arg1[1]), (arg2[1]));
1006     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1007         &x5, &x6, x4, (arg1[2]), (arg2[2]));
1008     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1009         &x7, &x8, x6, (arg1[3]), (arg2[3]));
1010     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
1011         &x9, &x10, 0x0, x1, UINT16_C(0xc99));
1012     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x11, &x12, x10,
1013                                                                x3, 0x0);
1014     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x13, &x14, x12,
1015                                                                x5, 0x0);
1016     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
1017         &x15, &x16, x14, x7, UINT64_C(0x8000000000000000));
1018     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x17, &x18, x16,
1019                                                                x8, 0x0);
1020     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x19, x18, x9, x1);
1021     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x20, x18, x11, x3);
1022     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x21, x18, x13, x5);
1023     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x22, x18, x15, x7);
1024     out1[0] = x19;
1025     out1[1] = x20;
1026     out1[2] = x21;
1027     out1[3] = x22;
1028 }
1029
1030 /*
1031  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub subtracts two field elements in the Montgomery domain.
1032  * Preconditions:
1033  *   0 ≤ eval arg1 < m
1034  *   0 ≤ eval arg2 < m
1035  * Postconditions:
1036  *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m
1037  *   0 ≤ eval out1 < m
1038  *
1039  * Input Bounds:
1040  *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1041  *   arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1042  * Output Bounds:
1043  *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1044  */
1045 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(
1046     uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) {
1047     uint64_t x1;
1048     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x2;
1049     uint64_t x3;
1050     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x4;
1051     uint64_t x5;
1052     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x6;
1053     uint64_t x7;
1054     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x8;
1055     uint64_t x9;
1056     uint64_t x10;
1057     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x11;
1058     uint64_t x12;
1059     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x13;
1060     uint64_t x14;
1061     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x15;
1062     uint64_t x16;
1063     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x17;
1064     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
1065         &x1, &x2, 0x0, (arg1[0]), (arg2[0]));
1066     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
1067         &x3, &x4, x2, (arg1[1]), (arg2[1]));
1068     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
1069         &x5, &x6, x4, (arg1[2]), (arg2[2]));
1070     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
1071         &x7, &x8, x6, (arg1[3]), (arg2[3]));
1072     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(
1073         &x9, x8, 0x0, UINT64_C(0xffffffffffffffff));
1074     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1075         &x10, &x11, 0x0, x1, (x9 & UINT16_C(0xc99)));
1076     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x12, &x13, x11,
1077                                                               x3, 0x0);
1078     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x14, &x15, x13,
1079                                                               x5, 0x0);
1080     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1081         &x16, &x17, x15, x7, (x9 & UINT64_C(0x8000000000000000)));
1082     out1[0] = x10;
1083     out1[1] = x12;
1084     out1[2] = x14;
1085     out1[3] = x16;
1086 }
1087
1088 /*
1089  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp negates a field element in the Montgomery domain.
1090  * Preconditions:
1091  *   0 ≤ eval arg1 < m
1092  * Postconditions:
1093  *   eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m
1094  *   0 ≤ eval out1 < m
1095  *
1096  * Input Bounds:
1097  *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1098  * Output Bounds:
1099  *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1100  */
1101 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(
1102     uint64_t out1[4], const uint64_t arg1[4]) {
1103     uint64_t x1;
1104     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x2;
1105     uint64_t x3;
1106     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x4;
1107     uint64_t x5;
1108     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x6;
1109     uint64_t x7;
1110     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x8;
1111     uint64_t x9;
1112     uint64_t x10;
1113     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x11;
1114     uint64_t x12;
1115     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x13;
1116     uint64_t x14;
1117     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x15;
1118     uint64_t x16;
1119     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x17;
1120     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x1, &x2, 0x0,
1121                                                                0x0, (arg1[0]));
1122     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x3, &x4, x2,
1123                                                                0x0, (arg1[1]));
1124     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x5, &x6, x4,
1125                                                                0x0, (arg1[2]));
1126     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x7, &x8, x6,
1127                                                                0x0, (arg1[3]));
1128     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(
1129         &x9, x8, 0x0, UINT64_C(0xffffffffffffffff));
1130     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1131         &x10, &x11, 0x0, x1, (x9 & UINT16_C(0xc99)));
1132     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x12, &x13, x11,
1133                                                               x3, 0x0);
1134     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x14, &x15, x13,
1135                                                               x5, 0x0);
1136     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1137         &x16, &x17, x15, x7, (x9 & UINT64_C(0x8000000000000000)));
1138     out1[0] = x10;
1139     out1[1] = x12;
1140     out1[2] = x14;
1141     out1[3] = x16;
1142 }
1143
1144 /*
1145  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery translates a field element out of the Montgomery domain.
1146  * Preconditions:
1147  *   0 ≤ eval arg1 < m
1148  * Postconditions:
1149  *   eval out1 mod m = (eval arg1 * ((2^64)⁻¹ mod m)^4) mod m
1150  *   0 ≤ eval out1 < m
1151  *
1152  * Input Bounds:
1153  *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1154  * Output Bounds:
1155  *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1156  */
1157 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(
1158     uint64_t out1[4], const uint64_t arg1[4]) {
1159     uint64_t x1;
1160     uint64_t x2;
1161     uint64_t x3;
1162     uint64_t x4;
1163     uint64_t x5;
1164     uint64_t x6;
1165     uint64_t x7;
1166     uint64_t x8;
1167     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x9;
1168     uint64_t x10;
1169     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x11;
1170     uint64_t x12;
1171     uint64_t x13;
1172     uint64_t x14;
1173     uint64_t x15;
1174     uint64_t x16;
1175     uint64_t x17;
1176     uint64_t x18;
1177     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x19;
1178     uint64_t x20;
1179     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x21;
1180     uint64_t x22;
1181     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x23;
1182     uint64_t x24;
1183     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x25;
1184     uint64_t x26;
1185     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x27;
1186     uint64_t x28;
1187     uint64_t x29;
1188     uint64_t x30;
1189     uint64_t x31;
1190     uint64_t x32;
1191     uint64_t x33;
1192     uint64_t x34;
1193     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x35;
1194     uint64_t x36;
1195     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x37;
1196     uint64_t x38;
1197     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x39;
1198     uint64_t x40;
1199     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x41;
1200     uint64_t x42;
1201     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x43;
1202     uint64_t x44;
1203     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x45;
1204     uint64_t x46;
1205     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x47;
1206     uint64_t x48;
1207     uint64_t x49;
1208     uint64_t x50;
1209     uint64_t x51;
1210     uint64_t x52;
1211     uint64_t x53;
1212     uint64_t x54;
1213     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x55;
1214     uint64_t x56;
1215     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x57;
1216     uint64_t x58;
1217     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x59;
1218     uint64_t x60;
1219     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x61;
1220     uint64_t x62;
1221     uint64_t x63;
1222     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x64;
1223     uint64_t x65;
1224     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x66;
1225     uint64_t x67;
1226     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x68;
1227     uint64_t x69;
1228     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x70;
1229     uint64_t x71;
1230     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x72;
1231     uint64_t x73;
1232     uint64_t x74;
1233     uint64_t x75;
1234     uint64_t x76;
1235     x1 = (arg1[0]);
1236     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1237         &x2, &x3, x1, UINT64_C(0xbd667ab8a3347857));
1238     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1239         &x4, &x5, x2, UINT64_C(0x8000000000000000));
1240     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x6, &x7, x2,
1241                                                          UINT16_C(0xc99));
1242     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x8, &x9, 0x0, x1,
1243                                                               x6);
1244     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1245         &x10, &x11, 0x0, (x9 + x7), (arg1[1]));
1246     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1247         &x12, &x13, x10, UINT64_C(0xbd667ab8a3347857));
1248     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1249         &x14, &x15, x12, UINT64_C(0x8000000000000000));
1250     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x16, &x17, x12,
1251                                                          UINT16_C(0xc99));
1252     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x18, &x19, 0x0,
1253                                                               x5, x14);
1254     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x20, &x21, 0x0,
1255                                                               x10, x16);
1256     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1257         &x22, &x23, 0x0, (((uint64_t)x21 + x11) + x17), (arg1[2]));
1258     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x24, &x25, x23,
1259                                                               x4, 0x0);
1260     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x26, &x27, x25,
1261                                                               x18, 0x0);
1262     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1263         &x28, &x29, x22, UINT64_C(0xbd667ab8a3347857));
1264     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1265         &x30, &x31, x28, UINT64_C(0x8000000000000000));
1266     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x32, &x33, x28,
1267                                                          UINT16_C(0xc99));
1268     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x34, &x35, 0x0,
1269                                                               x22, x32);
1270     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x36, &x37, x35,
1271                                                               x24, x33);
1272     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x38, &x39, x37,
1273                                                               x26, 0x0);
1274     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1275         &x40, &x41, x39, (x27 + (x19 + x15)), x30);
1276     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x42, &x43, 0x0,
1277                                                               x36, (arg1[3]));
1278     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x44, &x45, x43,
1279                                                               x38, 0x0);
1280     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x46, &x47, x45,
1281                                                               x40, 0x0);
1282     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1283         &x48, &x49, x42, UINT64_C(0xbd667ab8a3347857));
1284     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1285         &x50, &x51, x48, UINT64_C(0x8000000000000000));
1286     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x52, &x53, x48,
1287                                                          UINT16_C(0xc99));
1288     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x54, &x55, 0x0,
1289                                                               x42, x52);
1290     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x56, &x57, x55,
1291                                                               x44, x53);
1292     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x58, &x59, x57,
1293                                                               x46, 0x0);
1294     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1295         &x60, &x61, x59, (x47 + (x41 + x31)), x50);
1296     x62 = (x61 + x51);
1297     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
1298         &x63, &x64, 0x0, x56, UINT16_C(0xc99));
1299     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x65, &x66, x64,
1300                                                                x58, 0x0);
1301     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x67, &x68, x66,
1302                                                                x60, 0x0);
1303     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
1304         &x69, &x70, x68, x62, UINT64_C(0x8000000000000000));
1305     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x71, &x72, x70,
1306                                                                0x0, 0x0);
1307     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x73, x72, x63,
1308                                                             x56);
1309     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x74, x72, x65,
1310                                                             x58);
1311     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x75, x72, x67,
1312                                                             x60);
1313     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x76, x72, x69,
1314                                                             x62);
1315     out1[0] = x73;
1316     out1[1] = x74;
1317     out1[2] = x75;
1318     out1[3] = x76;
1319 }
1320
1321 /*
1322  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery translates a field element into the Montgomery domain.
1323  * Preconditions:
1324  *   0 ≤ eval arg1 < m
1325  * Postconditions:
1326  *   eval (from_montgomery out1) mod m = eval arg1 mod m
1327  *   0 ≤ eval out1 < m
1328  *
1329  * Input Bounds:
1330  *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1331  * Output Bounds:
1332  *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1333  */
1334 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(
1335     uint64_t out1[4], const uint64_t arg1[4]) {
1336     uint64_t x1;
1337     uint64_t x2;
1338     uint64_t x3;
1339     uint64_t x4;
1340     uint64_t x5;
1341     uint64_t x6;
1342     uint64_t x7;
1343     uint64_t x8;
1344     uint64_t x9;
1345     uint64_t x10;
1346     uint64_t x11;
1347     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x12;
1348     uint64_t x13;
1349     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14;
1350     uint64_t x15;
1351     uint64_t x16;
1352     uint64_t x17;
1353     uint64_t x18;
1354     uint64_t x19;
1355     uint64_t x20;
1356     uint64_t x21;
1357     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x22;
1358     uint64_t x23;
1359     uint64_t x24;
1360     uint64_t x25;
1361     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x26;
1362     uint64_t x27;
1363     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x28;
1364     uint64_t x29;
1365     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x30;
1366     uint64_t x31;
1367     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x32;
1368     uint64_t x33;
1369     uint64_t x34;
1370     uint64_t x35;
1371     uint64_t x36;
1372     uint64_t x37;
1373     uint64_t x38;
1374     uint64_t x39;
1375     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x40;
1376     uint64_t x41;
1377     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x42;
1378     uint64_t x43;
1379     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x44;
1380     uint64_t x45;
1381     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x46;
1382     uint64_t x47;
1383     uint64_t x48;
1384     uint64_t x49;
1385     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x50;
1386     uint64_t x51;
1387     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x52;
1388     uint64_t x53;
1389     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x54;
1390     uint64_t x55;
1391     uint64_t x56;
1392     uint64_t x57;
1393     uint64_t x58;
1394     uint64_t x59;
1395     uint64_t x60;
1396     uint64_t x61;
1397     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x62;
1398     uint64_t x63;
1399     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x64;
1400     uint64_t x65;
1401     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x66;
1402     uint64_t x67;
1403     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x68;
1404     uint64_t x69;
1405     uint64_t x70;
1406     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x71;
1407     uint64_t x72;
1408     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x73;
1409     uint64_t x74;
1410     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x75;
1411     uint64_t x76;
1412     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x77;
1413     uint64_t x78;
1414     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x79;
1415     uint64_t x80;
1416     uint64_t x81;
1417     uint64_t x82;
1418     uint64_t x83;
1419     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x1, &x2, (arg1[0]),
1420                                                          UINT32_C(0x27acdc4));
1421     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1422         &x3, &x4, x1, UINT64_C(0xbd667ab8a3347857));
1423     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1424         &x5, &x6, x3, UINT64_C(0x8000000000000000));
1425     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x7, &x8, x3,
1426                                                          UINT16_C(0xc99));
1427     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x9, &x10, (arg1[1]),
1428                                                          UINT32_C(0x27acdc4));
1429     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x11, &x12, 0x0,
1430                                                               x1, x7);
1431     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1432         &x13, &x14, 0x0, ((x12 + x2) + x8), x9);
1433     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1434         &x15, &x16, x13, UINT64_C(0xbd667ab8a3347857));
1435     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1436         &x17, &x18, x15, UINT64_C(0x8000000000000000));
1437     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x19, &x20, x15,
1438                                                          UINT16_C(0xc99));
1439     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x21, &x22, 0x0,
1440                                                               x6, x17);
1441     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x23, &x24, (arg1[2]),
1442                                                          UINT32_C(0x27acdc4));
1443     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x25, &x26, 0x0,
1444                                                               x13, x19);
1445     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1446         &x27, &x28, 0x0, ((x26 + (x14 + x10)) + x20), x23);
1447     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x29, &x30, x28,
1448                                                               x5, x24);
1449     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x31, &x32, x30,
1450                                                               x21, 0x0);
1451     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1452         &x33, &x34, x27, UINT64_C(0xbd667ab8a3347857));
1453     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1454         &x35, &x36, x33, UINT64_C(0x8000000000000000));
1455     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x37, &x38, x33,
1456                                                          UINT16_C(0xc99));
1457     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x39, &x40, 0x0,
1458                                                               x27, x37);
1459     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x41, &x42, x40,
1460                                                               x29, x38);
1461     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x43, &x44, x42,
1462                                                               x31, 0x0);
1463     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1464         &x45, &x46, x44, (x32 + (x22 + x18)), x35);
1465     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x47, &x48, (arg1[3]),
1466                                                          UINT32_C(0x27acdc4));
1467     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x49, &x50, 0x0,
1468                                                               x41, x47);
1469     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x51, &x52, x50,
1470                                                               x43, x48);
1471     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x53, &x54, x52,
1472                                                               x45, 0x0);
1473     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1474         &x55, &x56, x49, UINT64_C(0xbd667ab8a3347857));
1475     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(
1476         &x57, &x58, x55, UINT64_C(0x8000000000000000));
1477     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x59, &x60, x55,
1478                                                          UINT16_C(0xc99));
1479     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x61, &x62, 0x0,
1480                                                               x49, x59);
1481     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x63, &x64, x62,
1482                                                               x51, x60);
1483     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x65, &x66, x64,
1484                                                               x53, 0x0);
1485     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(
1486         &x67, &x68, x66, (x54 + (x46 + x36)), x57);
1487     x69 = (x68 + x58);
1488     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
1489         &x70, &x71, 0x0, x63, UINT16_C(0xc99));
1490     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x72, &x73, x71,
1491                                                                x65, 0x0);
1492     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x74, &x75, x73,
1493                                                                x67, 0x0);
1494     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(
1495         &x76, &x77, x75, x69, UINT64_C(0x8000000000000000));
1496     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x78, &x79, x77,
1497                                                                0x0, 0x0);
1498     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x80, x79, x70,
1499                                                             x63);
1500     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x81, x79, x72,
1501                                                             x65);
1502     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x82, x79, x74,
1503                                                             x67);
1504     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x83, x79, x76,
1505                                                             x69);
1506     out1[0] = x80;
1507     out1[1] = x81;
1508     out1[2] = x82;
1509     out1[3] = x83;
1510 }
1511
1512 /*
1513  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise.
1514  * Preconditions:
1515  *   0 ≤ eval arg1 < m
1516  * Postconditions:
1517  *   out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0
1518  *
1519  * Input Bounds:
1520  *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1521  * Output Bounds:
1522  *   out1: [0x0 ~> 0xffffffffffffffff]
1523  */
1524 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_nonzero(
1525     uint64_t *out1, const uint64_t arg1[4]) {
1526     uint64_t x1;
1527     x1 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | ((arg1[3]) | (uint64_t)0x0))));
1528     *out1 = x1;
1529 }
1530
1531 /*
1532  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz is a multi-limb conditional select.
1533  * Postconditions:
1534  *   eval out1 = (if arg1 = 0 then eval arg2 else eval arg3)
1535  *
1536  * Input Bounds:
1537  *   arg1: [0x0 ~> 0x1]
1538  *   arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1539  *   arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1540  * Output Bounds:
1541  *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1542  */
1543 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(
1544     uint64_t out1[4], fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1,
1545     const uint64_t arg2[4], const uint64_t arg3[4]) {
1546     uint64_t x1;
1547     uint64_t x2;
1548     uint64_t x3;
1549     uint64_t x4;
1550     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(
1551         &x1, arg1, (arg2[0]), (arg3[0]));
1552     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(
1553         &x2, arg1, (arg2[1]), (arg3[1]));
1554     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(
1555         &x3, arg1, (arg2[2]), (arg3[2]));
1556     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(
1557         &x4, arg1, (arg2[3]), (arg3[3]));
1558     out1[0] = x1;
1559     out1[1] = x2;
1560     out1[2] = x3;
1561     out1[3] = x4;
1562 }
1563
1564 /*
1565  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes serializes a field element in the Montgomery domain to bytes in little-endian order.
1566  * Preconditions:
1567  *   0 ≤ eval arg1 < m
1568  * Postconditions:
1569  *   out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31]
1570  *
1571  * Input Bounds:
1572  *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1573  * Output Bounds:
1574  *   out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]]
1575  */
1576 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(
1577     uint8_t out1[32], const uint64_t arg1[4]) {
1578     uint64_t x1;
1579     uint64_t x2;
1580     uint64_t x3;
1581     uint64_t x4;
1582     uint64_t x5;
1583     uint8_t x6;
1584     uint64_t x7;
1585     uint8_t x8;
1586     uint64_t x9;
1587     uint8_t x10;
1588     uint64_t x11;
1589     uint8_t x12;
1590     uint64_t x13;
1591     uint8_t x14;
1592     uint64_t x15;
1593     uint8_t x16;
1594     uint8_t x17;
1595     uint8_t x18;
1596     uint8_t x19;
1597     uint64_t x20;
1598     uint8_t x21;
1599     uint64_t x22;
1600     uint8_t x23;
1601     uint64_t x24;
1602     uint8_t x25;
1603     uint64_t x26;
1604     uint8_t x27;
1605     uint64_t x28;
1606     uint8_t x29;
1607     uint64_t x30;
1608     uint8_t x31;
1609     uint8_t x32;
1610     uint8_t x33;
1611     uint8_t x34;
1612     uint64_t x35;
1613     uint8_t x36;
1614     uint64_t x37;
1615     uint8_t x38;
1616     uint64_t x39;
1617     uint8_t x40;
1618     uint64_t x41;
1619     uint8_t x42;
1620     uint64_t x43;
1621     uint8_t x44;
1622     uint64_t x45;
1623     uint8_t x46;
1624     uint8_t x47;
1625     uint8_t x48;
1626     uint8_t x49;
1627     uint64_t x50;
1628     uint8_t x51;
1629     uint64_t x52;
1630     uint8_t x53;
1631     uint64_t x54;
1632     uint8_t x55;
1633     uint64_t x56;
1634     uint8_t x57;
1635     uint64_t x58;
1636     uint8_t x59;
1637     uint64_t x60;
1638     uint8_t x61;
1639     uint8_t x62;
1640     uint8_t x63;
1641     x1 = (arg1[3]);
1642     x2 = (arg1[2]);
1643     x3 = (arg1[1]);
1644     x4 = (arg1[0]);
1645     x5 = (x4 >> 8);
1646     x6 = (uint8_t)(x4 & UINT8_C(0xff));
1647     x7 = (x5 >> 8);
1648     x8 = (uint8_t)(x5 & UINT8_C(0xff));
1649     x9 = (x7 >> 8);
1650     x10 = (uint8_t)(x7 & UINT8_C(0xff));
1651     x11 = (x9 >> 8);
1652     x12 = (uint8_t)(x9 & UINT8_C(0xff));
1653     x13 = (x11 >> 8);
1654     x14 = (uint8_t)(x11 & UINT8_C(0xff));
1655     x15 = (x13 >> 8);
1656     x16 = (uint8_t)(x13 & UINT8_C(0xff));
1657     x17 = (uint8_t)(x15 >> 8);
1658     x18 = (uint8_t)(x15 & UINT8_C(0xff));
1659     x19 = (uint8_t)(x17 & UINT8_C(0xff));
1660     x20 = (x3 >> 8);
1661     x21 = (uint8_t)(x3 & UINT8_C(0xff));
1662     x22 = (x20 >> 8);
1663     x23 = (uint8_t)(x20 & UINT8_C(0xff));
1664     x24 = (x22 >> 8);
1665     x25 = (uint8_t)(x22 & UINT8_C(0xff));
1666     x26 = (x24 >> 8);
1667     x27 = (uint8_t)(x24 & UINT8_C(0xff));
1668     x28 = (x26 >> 8);
1669     x29 = (uint8_t)(x26 & UINT8_C(0xff));
1670     x30 = (x28 >> 8);
1671     x31 = (uint8_t)(x28 & UINT8_C(0xff));
1672     x32 = (uint8_t)(x30 >> 8);
1673     x33 = (uint8_t)(x30 & UINT8_C(0xff));
1674     x34 = (uint8_t)(x32 & UINT8_C(0xff));
1675     x35 = (x2 >> 8);
1676     x36 = (uint8_t)(x2 & UINT8_C(0xff));
1677     x37 = (x35 >> 8);
1678     x38 = (uint8_t)(x35 & UINT8_C(0xff));
1679     x39 = (x37 >> 8);
1680     x40 = (uint8_t)(x37 & UINT8_C(0xff));
1681     x41 = (x39 >> 8);
1682     x42 = (uint8_t)(x39 & UINT8_C(0xff));
1683     x43 = (x41 >> 8);
1684     x44 = (uint8_t)(x41 & UINT8_C(0xff));
1685     x45 = (x43 >> 8);
1686     x46 = (uint8_t)(x43 & UINT8_C(0xff));
1687     x47 = (uint8_t)(x45 >> 8);
1688     x48 = (uint8_t)(x45 & UINT8_C(0xff));
1689     x49 = (uint8_t)(x47 & UINT8_C(0xff));
1690     x50 = (x1 >> 8);
1691     x51 = (uint8_t)(x1 & UINT8_C(0xff));
1692     x52 = (x50 >> 8);
1693     x53 = (uint8_t)(x50 & UINT8_C(0xff));
1694     x54 = (x52 >> 8);
1695     x55 = (uint8_t)(x52 & UINT8_C(0xff));
1696     x56 = (x54 >> 8);
1697     x57 = (uint8_t)(x54 & UINT8_C(0xff));
1698     x58 = (x56 >> 8);
1699     x59 = (uint8_t)(x56 & UINT8_C(0xff));
1700     x60 = (x58 >> 8);
1701     x61 = (uint8_t)(x58 & UINT8_C(0xff));
1702     x62 = (uint8_t)(x60 >> 8);
1703     x63 = (uint8_t)(x60 & UINT8_C(0xff));
1704     out1[0] = x6;
1705     out1[1] = x8;
1706     out1[2] = x10;
1707     out1[3] = x12;
1708     out1[4] = x14;
1709     out1[5] = x16;
1710     out1[6] = x18;
1711     out1[7] = x19;
1712     out1[8] = x21;
1713     out1[9] = x23;
1714     out1[10] = x25;
1715     out1[11] = x27;
1716     out1[12] = x29;
1717     out1[13] = x31;
1718     out1[14] = x33;
1719     out1[15] = x34;
1720     out1[16] = x36;
1721     out1[17] = x38;
1722     out1[18] = x40;
1723     out1[19] = x42;
1724     out1[20] = x44;
1725     out1[21] = x46;
1726     out1[22] = x48;
1727     out1[23] = x49;
1728     out1[24] = x51;
1729     out1[25] = x53;
1730     out1[26] = x55;
1731     out1[27] = x57;
1732     out1[28] = x59;
1733     out1[29] = x61;
1734     out1[30] = x63;
1735     out1[31] = x62;
1736 }
1737
1738 /*
1739  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes deserializes a field element in the Montgomery domain from bytes in little-endian order.
1740  * Preconditions:
1741  *   0 ≤ bytes_eval arg1 < m
1742  * Postconditions:
1743  *   eval out1 mod m = bytes_eval arg1 mod m
1744  *   0 ≤ eval out1 < m
1745  *
1746  * Input Bounds:
1747  *   arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]]
1748  * Output Bounds:
1749  *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
1750  */
1751 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(
1752     uint64_t out1[4], const uint8_t arg1[32]) {
1753     uint64_t x1;
1754     uint64_t x2;
1755     uint64_t x3;
1756     uint64_t x4;
1757     uint64_t x5;
1758     uint64_t x6;
1759     uint64_t x7;
1760     uint8_t x8;
1761     uint64_t x9;
1762     uint64_t x10;
1763     uint64_t x11;
1764     uint64_t x12;
1765     uint64_t x13;
1766     uint64_t x14;
1767     uint64_t x15;
1768     uint8_t x16;
1769     uint64_t x17;
1770     uint64_t x18;
1771     uint64_t x19;
1772     uint64_t x20;
1773     uint64_t x21;
1774     uint64_t x22;
1775     uint64_t x23;
1776     uint8_t x24;
1777     uint64_t x25;
1778     uint64_t x26;
1779     uint64_t x27;
1780     uint64_t x28;
1781     uint64_t x29;
1782     uint64_t x30;
1783     uint64_t x31;
1784     uint8_t x32;
1785     uint64_t x33;
1786     uint64_t x34;
1787     uint64_t x35;
1788     uint64_t x36;
1789     uint64_t x37;
1790     uint64_t x38;
1791     uint64_t x39;
1792     x1 = ((uint64_t)(arg1[31]) << 56);
1793     x2 = ((uint64_t)(arg1[30]) << 48);
1794     x3 = ((uint64_t)(arg1[29]) << 40);
1795     x4 = ((uint64_t)(arg1[28]) << 32);
1796     x5 = ((uint64_t)(arg1[27]) << 24);
1797     x6 = ((uint64_t)(arg1[26]) << 16);
1798     x7 = ((uint64_t)(arg1[25]) << 8);
1799     x8 = (arg1[24]);
1800     x9 = ((uint64_t)(arg1[23]) << 56);
1801     x10 = ((uint64_t)(arg1[22]) << 48);
1802     x11 = ((uint64_t)(arg1[21]) << 40);
1803     x12 = ((uint64_t)(arg1[20]) << 32);
1804     x13 = ((uint64_t)(arg1[19]) << 24);
1805     x14 = ((uint64_t)(arg1[18]) << 16);
1806     x15 = ((uint64_t)(arg1[17]) << 8);
1807     x16 = (arg1[16]);
1808     x17 = ((uint64_t)(arg1[15]) << 56);
1809     x18 = ((uint64_t)(arg1[14]) << 48);
1810     x19 = ((uint64_t)(arg1[13]) << 40);
1811     x20 = ((uint64_t)(arg1[12]) << 32);
1812     x21 = ((uint64_t)(arg1[11]) << 24);
1813     x22 = ((uint64_t)(arg1[10]) << 16);
1814     x23 = ((uint64_t)(arg1[9]) << 8);
1815     x24 = (arg1[8]);
1816     x25 = ((uint64_t)(arg1[7]) << 56);
1817     x26 = ((uint64_t)(arg1[6]) << 48);
1818     x27 = ((uint64_t)(arg1[5]) << 40);
1819     x28 = ((uint64_t)(arg1[4]) << 32);
1820     x29 = ((uint64_t)(arg1[3]) << 24);
1821     x30 = ((uint64_t)(arg1[2]) << 16);
1822     x31 = ((uint64_t)(arg1[1]) << 8);
1823     x32 = (arg1[0]);
1824     x33 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + (x26 + x25)))))));
1825     x34 = (x33 & UINT64_C(0xffffffffffffffff));
1826     x35 = (x8 + (x7 + (x6 + (x5 + (x4 + (x3 + (x2 + x1)))))));
1827     x36 = (x16 + (x15 + (x14 + (x13 + (x12 + (x11 + (x10 + x9)))))));
1828     x37 = (x24 + (x23 + (x22 + (x21 + (x20 + (x19 + (x18 + x17)))))));
1829     x38 = (x37 & UINT64_C(0xffffffffffffffff));
1830     x39 = (x36 & UINT64_C(0xffffffffffffffff));
1831     out1[0] = x34;
1832     out1[1] = x38;
1833     out1[2] = x39;
1834     out1[3] = x35;
1835 }
1836
1837 /* END verbatim fiat code */
1838
1839 /*-
1840  * Finite field inversion via FLT.
1841  * NB: this is not a real Fiat function, just named that way for consistency.
1842  * Autogenerated: ecp/id_GostR3410_2001_CryptoPro_B_ParamSet/fe_inv.op3
1843  * sliding window w=5
1844  */
1845 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(fe_t output,
1846                                                             const fe_t t1) {
1847     int i;
1848     /* temporary variables */
1849     fe_t acc, t23, t25;
1850
1851     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, t1);
1852     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t25, t1, acc);
1853     for (i = 0; i < 9; i++)
1854         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t25, t25, acc);
1855     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t23, t25, acc);
1856     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t25, t23, acc);
1857     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, t1);
1858     for (i = 0; i < 247; i++)
1859         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, acc);
1860     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(acc, acc, t25);
1861     for (i = 0; i < 7; i++)
1862         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, acc);
1863     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(output, acc, t23);
1864 }
1865
1866 /* curve coefficient constants */
1867
1868 static const limb_t const_one[4] = {
1869     UINT64_C(0xFFFFFFFFFFFFF367), UINT64_C(0xFFFFFFFFFFFFFFFF),
1870     UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0x7FFFFFFFFFFFFFFF)};
1871
1872 static const limb_t const_b[4] = {
1873     UINT64_C(0x8DCC455AA9C5A084), UINT64_C(0x91AB42DF6CF438A8),
1874     UINT64_C(0x8F8AA907EEAC7D11), UINT64_C(0x3CE5D221F6285375)};
1875
1876 /* LUT for scalar multiplication by comb interleaving */
1877 static const pt_aff_t lut_cmb[27][16] = {
1878     {
1879         {{UINT64_C(0xFFFFFFFFFFFFF367), UINT64_C(0xFFFFFFFFFFFFFFFF),
1880           UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0x7FFFFFFFFFFFFFFF)},
1881          {UINT64_C(0xDDDC64B3570C7410), UINT64_C(0xA7B0992513172887),
1882           UINT64_C(0x0C4E5C4C4B6382DB), UINT64_C(0x2763DB0F124768DE)}},
1883         {{UINT64_C(0xCD3E57B68457D15D), UINT64_C(0xEB688F7FBEA56E83),
1884           UINT64_C(0x235A123C6A13C5CE), UINT64_C(0x0CD7EB9D50F57A6D)},
1885          {UINT64_C(0xC0124E91544C1965), UINT64_C(0x4D9C172962AFA35E),
1886           UINT64_C(0x0F92F2C30037C554), UINT64_C(0x1D8998680A3F2665)}},
1887         {{UINT64_C(0x9DE4B21355F43EFF), UINT64_C(0x2E110A425C9E63F5),
1888           UINT64_C(0x9350A9C31CE5A6DF), UINT64_C(0x377CBF0BA332315E)},
1889          {UINT64_C(0x2805DD4820F0D1B5), UINT64_C(0x3B1975660F9723E5),
1890           UINT64_C(0xA1CCA78C84B79937), UINT64_C(0x4F87BB1B94D5E03D)}},
1891         {{UINT64_C(0xE428FBFB5652C96F), UINT64_C(0x2E9A14D2D261BDD1),
1892           UINT64_C(0x082D82967453B76A), UINT64_C(0x61EA580E7AC87B02)},
1893          {UINT64_C(0xA0F8C2BACF368FDB), UINT64_C(0xDF093380D73B2A28),
1894           UINT64_C(0xFA0928B2EA8FE5D2), UINT64_C(0x77A674925F86D38A)}},
1895         {{UINT64_C(0xDFFAB41027670451), UINT64_C(0xEBC3D0171200AD3A),
1896           UINT64_C(0xF68324F325F4F6C4), UINT64_C(0x4A24CD5F7D0EAFD0)},
1897          {UINT64_C(0xF8FBD489D3F6BD1C), UINT64_C(0x0F6B56D567B473DE),
1898           UINT64_C(0x6FB063DECACF0D6B), UINT64_C(0x27F2E7E996DC574B)}},
1899         {{UINT64_C(0xA6A1064593937228), UINT64_C(0xAB7550B4A9165BBB),
1900           UINT64_C(0xD682D4F1CB0EDBE8), UINT64_C(0x2261FCEC40E5AD8D)},
1901          {UINT64_C(0x9F2119C6CCBD4E18), UINT64_C(0x2FD094E9AAB09697),
1902           UINT64_C(0x00331713E700929E), UINT64_C(0x6C5F2EFE54338FE1)}},
1903         {{UINT64_C(0xD631401742FFF78A), UINT64_C(0x38F23A912087E055),
1904           UINT64_C(0xE30E809C10EF1CAC), UINT64_C(0x3BCB0A542432FF74)},
1905          {UINT64_C(0x2B4B5B97B31509E6), UINT64_C(0x117FE9D73E54AF47),
1906           UINT64_C(0xE513C0BE52F63ACA), UINT64_C(0x41ED8ADAB1C80A6B)}},
1907         {{UINT64_C(0x61A31837E0A79FCD), UINT64_C(0x8F742B5751D3DE38),
1908           UINT64_C(0x10635FCD41354B55), UINT64_C(0x61F30C61946510BE)},
1909          {UINT64_C(0x9183D6776C416DAC), UINT64_C(0x391B7B42345431CB),
1910           UINT64_C(0xE3D6F0847C254A8D), UINT64_C(0x777E1F6219D320D8)}},
1911         {{UINT64_C(0x090E633FF05BD85D), UINT64_C(0x546C41A0240392ED),
1912           UINT64_C(0x6BBCF15D9F4139CA), UINT64_C(0x73F5B6577FFDA5DA)},
1913          {UINT64_C(0xBC04E353E0622A57), UINT64_C(0xCBD8F01E6E6414F4),
1914           UINT64_C(0x53377C0B8C3C0CC5), UINT64_C(0x6D302331E0A14548)}},
1915         {{UINT64_C(0x235487F83D6D456E), UINT64_C(0xBD92203DB3FDCDCF),
1916           UINT64_C(0x15B13D60CFFDA977), UINT64_C(0x22DCB48731A1C4B5)},
1917          {UINT64_C(0xA367FB4EC76ED9A2), UINT64_C(0x1E4F7956C0C86AF4),
1918           UINT64_C(0x6F087C495B012AD7), UINT64_C(0x33437E4A4949B444)}},
1919         {{UINT64_C(0x261B44FEB7CDDB38), UINT64_C(0xDCE2FE47419216AD),
1920           UINT64_C(0xA4CE17FF9428657B), UINT64_C(0x7CE64F48F8329049)},
1921          {UINT64_C(0x4CE742117289C114), UINT64_C(0x0E6224098C212A23),
1922           UINT64_C(0xCF75BF452096719D), UINT64_C(0x6F5535817BDC1600)}},
1923         {{UINT64_C(0xE776AA0CB941CBC9), UINT64_C(0x16D670E0951AAED3),
1924           UINT64_C(0x79C019DF4B1EC097), UINT64_C(0x635A66BB12266D30)},
1925          {UINT64_C(0x030D843E023AAFD2), UINT64_C(0x10FB61576466108F),
1926           UINT64_C(0x93774BEC08D568D5), UINT64_C(0x29D2796204C1EE73)}},
1927         {{UINT64_C(0x6F0F4C2EE00BBC21), UINT64_C(0x9EB34C58A30AB92F),
1928           UINT64_C(0x2153D901AE34908B), UINT64_C(0x136A7E1F4EDC188F)},
1929          {UINT64_C(0xF709BF5D8BC45EE4), UINT64_C(0xEA6984E44FAD9A54),
1930           UINT64_C(0xFC8E6F8AAF5140EB), UINT64_C(0x25EBF0DE87756E47)}},
1931         {{UINT64_C(0x5C2A97265B1D4B9F), UINT64_C(0xBE235DFD68E93FC7),
1932           UINT64_C(0x7766BDB9471A4EA0), UINT64_C(0x476D17CCD9909CD9)},
1933          {UINT64_C(0x4960E5B47B398BC4), UINT64_C(0x909D0F170F58F328),
1934           UINT64_C(0x1ABF7E02230EF508), UINT64_C(0x6DE6B3E1D29239C9)}},
1935         {{UINT64_C(0xCCF0AA2885A6DBE3), UINT64_C(0xA5E4B325823C606C),
1936           UINT64_C(0xADE98B2A15505FC6), UINT64_C(0x4D4E770302E20C3B)},
1937          {UINT64_C(0x241964174730DF64), UINT64_C(0x3DD47817A914A59D),
1938           UINT64_C(0x4D7A317EC4FDFD97), UINT64_C(0x3767E545BE12AA72)}},
1939         {{UINT64_C(0xA0C2A028165C7BF4), UINT64_C(0xCD4DA6EA36A0B483),
1940           UINT64_C(0x1E1E63323AF53195), UINT64_C(0x7A025E238D77188F)},
1941          {UINT64_C(0xB3CF03B908D2CEF2), UINT64_C(0x8FEE9BB825A0AFA6),
1942           UINT64_C(0x855340E088111895), UINT64_C(0x32E3EF014FB8F8A3)}},
1943     },
1944     {
1945         {{UINT64_C(0x33EBE39DEBF87807), UINT64_C(0xB048F96CDBDEFF76),
1946           UINT64_C(0xA0496C3C342A3087), UINT64_C(0x7623E19250953679)},
1947          {UINT64_C(0x12F767114B932390), UINT64_C(0xF80851EAACECE2F7),
1948           UINT64_C(0xE447465BE5B280EA), UINT64_C(0x0412ADE811115958)}},
1949         {{UINT64_C(0x982F1AC8B5EB0DC2), UINT64_C(0x8464E052BBBCC880),
1950           UINT64_C(0xC927B59601335D53), UINT64_C(0x4B0C6F5A4DA4D80B)},
1951          {UINT64_C(0x101E1878E04783AF), UINT64_C(0x50458FFC41D8A690),
1952           UINT64_C(0x11499D881B77DFBF), UINT64_C(0x46DC7D221F77A937)}},
1953         {{UINT64_C(0xE9AD22CE620E52C0), UINT64_C(0x0990D6AA4140F356),
1954           UINT64_C(0x0F6B2EF70CBBEEE5), UINT64_C(0x2C67DC80EAD414C6)},
1955          {UINT64_C(0xE17182BC23D4CD20), UINT64_C(0xFC8FE3CBC13DDEA9),
1956           UINT64_C(0xD1E4A7B83BABC06D), UINT64_C(0x52EA05CC71C06DB7)}},
1957         {{UINT64_C(0xF8ABB7700D022B5B), UINT64_C(0x362B8059199DC689),
1958           UINT64_C(0x5D887A4D26BBDEC8), UINT64_C(0x7835F183F7FC2A01)},
1959          {UINT64_C(0xEEDE12F5DE99DF34), UINT64_C(0xBE952638A3082301),
1960           UINT64_C(0x829FDF804C35A162), UINT64_C(0x205A2252C2B9645E)}},
1961         {{UINT64_C(0xDE284DA91356E14C), UINT64_C(0xE40CEFE0C37415FE),
1962           UINT64_C(0x62BE93E947F6016E), UINT64_C(0x2DD989045DBFE2F6)},
1963          {UINT64_C(0x195B0E982EBC70F9), UINT64_C(0x7E52840DF01F4D43),
1964           UINT64_C(0x1AFB1FDF4B1F6AB4), UINT64_C(0x050AABB820B3E491)}},
1965         {{UINT64_C(0xC59E1EDBC645DAD4), UINT64_C(0x5AF6B2DC565A286D),
1966           UINT64_C(0xC399A48A13076366), UINT64_C(0x19F4881F4AC0E5B9)},
1967          {UINT64_C(0xC07D02A1CD5AC339), UINT64_C(0x18FBD088ED628A55),
1968           UINT64_C(0x2D33C6F4FFA4788E), UINT64_C(0x52E9AE42CCB832E7)}},
1969         {{UINT64_C(0xA47091AE4E5E934E), UINT64_C(0x2542CE1391CED3C6),
1970           UINT64_C(0xDDE01FD58FC47857), UINT64_C(0x6BA6E5694304EAA9)},
1971          {UINT64_C(0x2FF0278BE24091A9), UINT64_C(0xB895F0AB782BBCE0),
1972           UINT64_C(0xA80CCC97AB8B8828), UINT64_C(0x6A54B96168A7D8FE)}},
1973         {{UINT64_C(0x15E1F5ADBAC4581A), UINT64_C(0x91620EF0D4BAA751),
1974           UINT64_C(0x4E65731FC7273C4D), UINT64_C(0x14B166CB7EEE33B5)},
1975          {UINT64_C(0x7B0EFFA53CD06080), UINT64_C(0x4491156A8CF95FF9),
1976           UINT64_C(0xC8C64C39E2258574), UINT64_C(0x3D48DA9D13315CE9)}},
1977         {{UINT64_C(0x97A098A399866CE5), UINT64_C(0xF4CCDB40023A1167),
1978           UINT64_C(0x4BB32981F8094782), UINT64_C(0x7342CC98C7D5FD13)},
1979          {UINT64_C(0x3C1C5B1878B99D4E), UINT64_C(0x1277668FF4762AC9),
1980           UINT64_C(0x612431D76AE50E4F), UINT64_C(0x36C174E036F9071C)}},
1981         {{UINT64_C(0x39194E879327BA7F), UINT64_C(0xC4D251FF7237FA1A),
1982           UINT64_C(0x55ED3CD42BA5EB8D), UINT64_C(0x0263AF07BA590188)},
1983          {UINT64_C(0xB4853127EFA82CF3), UINT64_C(0x2CC2D2202B8E761D),
1984           UINT64_C(0x4582B81E2722B490), UINT64_C(0x1DA7680A610AA621)}},
1985         {{UINT64_C(0x06A669EE30D297D4), UINT64_C(0xC336B048E133D393),
1986           UINT64_C(0xB733A2C493B7B41B), UINT64_C(0x427CC233C7A8E721)},
1987          {UINT64_C(0x727C14F12867BB00), UINT64_C(0x756F4C7AA736035E),
1988           UINT64_C(0xB72A3EDE26327A22), UINT64_C(0x4AEDE2BB77F73F28)}},
1989         {{UINT64_C(0xC8A3612FA7282ED0), UINT64_C(0xE4AD8B40B0150579),
1990           UINT64_C(0xAB1DE11D0C3FEE4B), UINT64_C(0x613AAD4833B31F23)},
1991          {UINT64_C(0xE74AB8565C91BD21), UINT64_C(0x499177357953D695),
1992           UINT64_C(0x3831EB601A53D74F), UINT64_C(0x245977A054DEB1A6)}},
1993         {{UINT64_C(0x15972E4DFFFC1468), UINT64_C(0xA758D9CB141DC24C),
1994           UINT64_C(0x5E76FCDFED8694C5), UINT64_C(0x5F9DAF35069B7A5E)},
1995          {UINT64_C(0xFE50FCE4501B5415), UINT64_C(0x6442CF6758CFDE50),
1996           UINT64_C(0xA89C6DB438E5F4D0), UINT64_C(0x21F012DBF5D4FEFC)}},
1997         {{UINT64_C(0x2A1170AD98CB9A81), UINT64_C(0x934BD9D5036C5E45),
1998           UINT64_C(0x27DF152ECA5095B1), UINT64_C(0x682698DBCCEEE508)},
1999          {UINT64_C(0x1F4FE3A2B973FB5F), UINT64_C(0xD33CBEBE792C7D4D),
2000           UINT64_C(0x99D37961E7B33A8F), UINT64_C(0x46B8993B7B6D015D)}},
2001         {{UINT64_C(0x93A3809B6FBAC8F7), UINT64_C(0x84861BF097C55DC4),
2002           UINT64_C(0xA6F89EEA15BB65E3), UINT64_C(0x66AE1C5DA6E531D1)},
2003          {UINT64_C(0x643A14FCFD83DAEA), UINT64_C(0xA7A46D0DC585947B),
2004           UINT64_C(0xFA20CF074FBA1274), UINT64_C(0x5999ED7B93578A7D)}},
2005         {{UINT64_C(0x36C8B6ED78E7C6CE), UINT64_C(0x6D400CA55E325F44),
2006           UINT64_C(0xC6AE09B320B7AA5C), UINT64_C(0x1AF261C189EABC17)},
2007          {UINT64_C(0x64D6FFBBB9E778E4), UINT64_C(0x1C9E223E7FC64BEB),
2008           UINT64_C(0x4D68B5205D75E6C0), UINT64_C(0x5A72B1D976677A06)}},
2009     },
2010     {
2011         {{UINT64_C(0x62DB66406F08BB17), UINT64_C(0xC34F29DFAE75BB73),
2012           UINT64_C(0xD501293D7DBD4851), UINT64_C(0x5EAA94CAAD1F604B)},
2013          {UINT64_C(0x39CFE9D1094408A8), UINT64_C(0xC0F6544CE8A476F2),
2014           UINT64_C(0x9F6308B6A42D7607), UINT64_C(0x17F82949D727018F)}},
2015         {{UINT64_C(0xC44453CD9C4C4BD2), UINT64_C(0xA895E247EBD0B947),
2016           UINT64_C(0x0AEB7AFCAEBC27F4), UINT64_C(0x2472FD08F04ABFAC)},
2017          {UINT64_C(0x319EC67D73E6E994), UINT64_C(0xD6533E4C798C5FC0),
2018           UINT64_C(0xF4C3B24D3FB9AA89), UINT64_C(0x3EC580820A3B376B)}},
2019         {{UINT64_C(0x79732D6F144ACF7A), UINT64_C(0xFDD630C3911342DD),
2020           UINT64_C(0xC577C4B34A630649), UINT64_C(0x14956A17BBA999D6)},
2021          {UINT64_C(0x523D3CC8A435A559), UINT64_C(0x488DC690ACDA8861),
2022           UINT64_C(0x4CF70928F051C69A), UINT64_C(0x2D98D573955394CB)}},
2023         {{UINT64_C(0xEDB7BA2A23A4B840), UINT64_C(0x725EC496F6C2D93B),
2024           UINT64_C(0x0C94818B8833BB3F), UINT64_C(0x51281A31B142B12A)},
2025          {UINT64_C(0x2A8A5706659EDA83), UINT64_C(0x3098F7507F9D6877),
2026           UINT64_C(0x87AD0FDF2171F69F), UINT64_C(0x6B7067C31A6F2F28)}},
2027         {{UINT64_C(0x3B52107412B1E36F), UINT64_C(0x727A2432F81E4733),
2028           UINT64_C(0xB75A2F3553F2CBBD), UINT64_C(0x46DE933854960EB0)},
2029          {UINT64_C(0xAC5344F8E561D908), UINT64_C(0x4BD40ECB12C67430),
2030           UINT64_C(0x1698FD62EF499F97), UINT64_C(0x29EBD7AE6AE9FBD1)}},
2031         {{UINT64_C(0x9DEC249B1EC8110D), UINT64_C(0x2D19053AFD2F5C39),
2032           UINT64_C(0xB1189807E01522DF), UINT64_C(0x24A04C16C1424C77)},
2033          {UINT64_C(0xA4FC7C7D24F72226), UINT64_C(0x763405FBA8322501),
2034           UINT64_C(0xC5443C9A18F015E0), UINT64_C(0x6DEDA19BC55D6CEA)}},
2035         {{UINT64_C(0x4EF309769EAE2FF9), UINT64_C(0x2549B7F25741B21B),
2036           UINT64_C(0x859ACD103BC23F01), UINT64_C(0x05C0358FBF5FB0D7)},
2037          {UINT64_C(0x85E53AA8FB6AB34C), UINT64_C(0x8DAAAA698FD2FD20),
2038           UINT64_C(0xBE6D4D3416096FC9), UINT64_C(0x27572C88F8B8B831)}},
2039         {{UINT64_C(0xADB98DC547D56A25), UINT64_C(0x0CC764328B8E1DC6),
2040           UINT64_C(0x032C738EBE48C4A1), UINT64_C(0x31372DAD94FC9CF0)},
2041          {UINT64_C(0x8E646A0C78A7DCB2), UINT64_C(0xA32F3E9C6ECD9885),
2042           UINT64_C(0x280BB4AD6A3AD963), UINT64_C(0x7DEE1BC4817D4327)}},
2043         {{UINT64_C(0x1AE6A27BF8A7C1E1), UINT64_C(0x558C652FCBC527C7),
2044           UINT64_C(0x4084B56EA65056F6), UINT64_C(0x3FD454596D4C838B)},
2045          {UINT64_C(0xF5C15AFD56DE792A), UINT64_C(0xF656FAA488959282),
2046           UINT64_C(0x7F0D8EF41C07D63F), UINT64_C(0x44EFFF7DCD841ACC)}},
2047         {{UINT64_C(0xAC28F2A68D3695D8), UINT64_C(0x94959EB83F91E781),
2048           UINT64_C(0x7693FFF7FEDD6E1F), UINT64_C(0x2512E6E1A9A699EF)},
2049          {UINT64_C(0x823400EB7955FAB7), UINT64_C(0xCF109EF994924C08),
2050           UINT64_C(0x12E087793A709F32), UINT64_C(0x187D04139CC6484C)}},
2051         {{UINT64_C(0xD3932AFBEBDE477F), UINT64_C(0x9D5A542244538D8A),
2052           UINT64_C(0x40B0B159166A87AF), UINT64_C(0x31294B3D41D5E078)},
2053          {UINT64_C(0x6C49C853E8C48222), UINT64_C(0x8FBE6620DCD0D611),
2054           UINT64_C(0x9DDC7EE2F611007B), UINT64_C(0x12289A60E6652172)}},
2055         {{UINT64_C(0x8B85475BDACF80F7), UINT64_C(0xADBAB3539B5CAEF2),
2056           UINT64_C(0x7C4090A38D2A7707), UINT64_C(0x271FA4F1DAB97830)},
2057          {UINT64_C(0x141B725253173E04), UINT64_C(0x4B483D6406D0B127),
2058           UINT64_C(0x8FD15BCF063A7AF8), UINT64_C(0x59B19EAFE580F34C)}},
2059         {{UINT64_C(0xA7EEA8C49C0D79B6), UINT64_C(0x766FA113B9185109),
2060           UINT64_C(0xB42D74F34642CC64), UINT64_C(0x51D0127BBB817476)},
2061          {UINT64_C(0x6DA097F58AB71448), UINT64_C(0x145872E5F95AD0C7),
2062           UINT64_C(0xB7E934F3F1759436), UINT64_C(0x4EA883F93160ED1F)}},
2063         {{UINT64_C(0x30DC39B70CEABAE1), UINT64_C(0x49EC5EE8A606D766),
2064           UINT64_C(0x230E276297FC46AF), UINT64_C(0x079A531F5BE79B8D)},
2065          {UINT64_C(0x48253BC2EF08C93F), UINT64_C(0x2D32AF02F124D043),
2066           UINT64_C(0x85796D0DAF34D231), UINT64_C(0x06A6205C15F8CECD)}},
2067         {{UINT64_C(0x1FA77AFD47B00D1A), UINT64_C(0x429717B0E48CE97A),
2068           UINT64_C(0x38FEF11D57433697), UINT64_C(0x3E91BED67D426687)},
2069          {UINT64_C(0x95919BF72AB4BFE9), UINT64_C(0x7A3F33FC97096B3A),
2070           UINT64_C(0x0E0BBAC33DD8C82E), UINT64_C(0x2CE9EFCBF8EDB675)}},
2071         {{UINT64_C(0x2D44E99843D8B81D), UINT64_C(0x8ABFF4196D68A95C),
2072           UINT64_C(0x639000A03B2A18DD), UINT64_C(0x7CD15413871E3ED3)},
2073          {UINT64_C(0xC059855B148F0378), UINT64_C(0x50147459616B62BF),
2074           UINT64_C(0x53B699AF4D461110), UINT64_C(0x6A0D0EC7EC29E48D)}},
2075     },
2076     {
2077         {{UINT64_C(0x5173322115797F35), UINT64_C(0x2F2982144BBE6644),
2078           UINT64_C(0x7BC8FEC64A5EF621), UINT64_C(0x3D2BE7857F472F05)},
2079          {UINT64_C(0xA1C3A1C92765C427), UINT64_C(0xBACF08FE24155ACF),
2080           UINT64_C(0xA9CC1A179D229948), UINT64_C(0x1918C97F27039FD8)}},
2081         {{UINT64_C(0x2CF393387843FF7B), UINT64_C(0x5FCBDE65258997F2),
2082           UINT64_C(0x3980BF90165A98A3), UINT64_C(0x2E80607DBF9458E5)},
2083          {UINT64_C(0x5F646EB67019165C), UINT64_C(0xFA091FBEDDE34205),
2084           UINT64_C(0x695348B669267AE3), UINT64_C(0x385B0B6AABC22051)}},
2085         {{UINT64_C(0x3CAE0756B537F78C), UINT64_C(0x3012A9588BE30367),
2086           UINT64_C(0x32D26C06981A22C3), UINT64_C(0x7D091FAB2950E833)},
2087          {UINT64_C(0xD8E1B638797ACAAF), UINT64_C(0xE7021C8549F2EA10),
2088           UINT64_C(0xCA382BC117A7AF3B), UINT64_C(0x08A5A81DBB809976)}},
2089         {{UINT64_C(0x00F499FD4287BB97), UINT64_C(0xFB6791CADAA9DAF2),
2090           UINT64_C(0x9A19E4F3057B2B98), UINT64_C(0x6968D2FFC53C0223)},
2091          {UINT64_C(0xDC741EF5CE88509C), UINT64_C(0x38AE355D306A0570),
2092           UINT64_C(0xFECF6589C23AF46B), UINT64_C(0x6C0E6ED16AD48836)}},
2093         {{UINT64_C(0x22B68698E363495D), UINT64_C(0x120005D039AF2BE3),
2094           UINT64_C(0xE37B19650BF4BA69), UINT64_C(0x3B416E9326E64AE7)},
2095          {UINT64_C(0xFAED5088DEAC5C59), UINT64_C(0x67436ACCEB2518A5),
2096           UINT64_C(0x636B52F891FA788D), UINT64_C(0x10B2A57A655153D1)}},
2097         {{UINT64_C(0xB18060A7833A984C), UINT64_C(0x7EF8374674833BAD),
2098           UINT64_C(0xCBFAF742C5B3BC88), UINT64_C(0x7981DC36A1A7F135)},
2099          {UINT64_C(0xE70CCAFA5D076280), UINT64_C(0xEBA80EB707009D85),
2100           UINT64_C(0x7D99D24C73778DE2), UINT64_C(0x1EFEE1BBA7262D50)}},
2101         {{UINT64_C(0xBC47F4A26A7CAB32), UINT64_C(0x53F290A7DD6E48A3),
2102           UINT64_C(0x82257A1B92F35F9E), UINT64_C(0x73D17B318BB0AAB0)},
2103          {UINT64_C(0xBBD4522AC2DFFE96), UINT64_C(0x9C37DAA1E6EB0501),
2104           UINT64_C(0xF4D4D568453DB6BE), UINT64_C(0x2868CBF5642AD2E4)}},
2105         {{UINT64_C(0x40A988E6ABE30C59), UINT64_C(0x5ADED92993057DEC),
2106           UINT64_C(0x18FD7E04DACD37B0), UINT64_C(0x6E3FB81E8228ACA5)},
2107          {UINT64_C(0xFF3EEFE64104B0C9), UINT64_C(0xD7DD05E731CA120A),
2108           UINT64_C(0xAFD3CF1CD01C1CF8), UINT64_C(0x4D0CD264831BC4E9)}},
2109         {{UINT64_C(0x2641B32182CAC14A), UINT64_C(0x34EB149570990E6C),
2110           UINT64_C(0x3E5AF58FA1C74CA6), UINT64_C(0x11B50821616B7A2D)},
2111          {UINT64_C(0x891636E3C4FA9719), UINT64_C(0xAEE84C27107DD719),
2112           UINT64_C(0xA2B0D83EC1872E75), UINT64_C(0x7DD62CBC7383069E)}},
2113         {{UINT64_C(0xEBA4A024C81B7E15), UINT64_C(0x1CC37E0804516070),
2114           UINT64_C(0xEF1F0401F90CE59D), UINT64_C(0x3B4259D5E062E133)},
2115          {UINT64_C(0x87A1DBFACF2CA1DD), UINT64_C(0xCFBFB15F61FD1AFB),
2116           UINT64_C(0xFBFD9899ECF4C7BA), UINT64_C(0x57C84CEE2725FA50)}},
2117         {{UINT64_C(0x8B0B7414EFA6E3D0), UINT64_C(0xD9725C5EB3D04224),
2118           UINT64_C(0x670E6C508A91371E), UINT64_C(0x4D1304679B25BD3B)},
2119          {UINT64_C(0x18D77D155CF18D4F), UINT64_C(0xEF80DC411CA09677),
2120           UINT64_C(0x6F3A961BB9A05CF9), UINT64_C(0x0BB8A5187C1433A4)}},
2121         {{UINT64_C(0xAC0CF52AB33FCF05), UINT64_C(0xAD03692F1CDC7782),
2122           UINT64_C(0xB345BAE6AA02B77E), UINT64_C(0x05096694456FCFA9)},
2123          {UINT64_C(0xA898444825D4CF32), UINT64_C(0xD76393E315184188),
2124           UINT64_C(0x7D4A8C0CEA069BED), UINT64_C(0x4D22268D11E18347)}},
2125         {{UINT64_C(0xC2A0BB753CB3C0F1), UINT64_C(0x61F4EC4C8EBA58C6),
2126           UINT64_C(0x5D3F0D44DFC4A903), UINT64_C(0x0B6CE81BF9B6F79A)},
2127          {UINT64_C(0xF694A44A94E49623), UINT64_C(0xCFCBB7E11BDF75E0),
2128           UINT64_C(0x20CEE1BDE0337E13), UINT64_C(0x694EA40BDFF02E18)}},
2129         {{UINT64_C(0xC21BE0FA78D1DC2E), UINT64_C(0x08B4D9A5ED0E49E0),
2130           UINT64_C(0x676731AB827F0B4C), UINT64_C(0x674ECC79EBAB5894)},
2131          {UINT64_C(0xB29BD0D439ABB148), UINT64_C(0x8207A8F82378A63A),
2132           UINT64_C(0xE36A549D1E4C29C2), UINT64_C(0x380D48DE3F1C255B)}},
2133         {{UINT64_C(0x6AB6F887E5F2C87E), UINT64_C(0xE92C7345A01AEC86),
2134           UINT64_C(0x697F45208660C26F), UINT64_C(0x4F2488E09B58015B)},
2135          {UINT64_C(0xB2410B3EBB41900C), UINT64_C(0x31267500BE1A8A39),
2136           UINT64_C(0xA7C9997CB9140554), UINT64_C(0x335B18061CD41524)}},
2137         {{UINT64_C(0xB836FD9F14873270), UINT64_C(0x1AE0F512E3243EC5),
2138           UINT64_C(0xA743E30483B9AB74), UINT64_C(0x1569C30D3A5758C7)},
2139          {UINT64_C(0x003CEF9A9E8F9E52), UINT64_C(0x557AFB4A8C22119E),
2140           UINT64_C(0x66F2487EF223A966), UINT64_C(0x7FA00273A519378F)}},
2141     },
2142     {
2143         {{UINT64_C(0x812C024F7B08C1C4), UINT64_C(0xC6017986ADBA8AD9),
2144           UINT64_C(0x59C7B16C0601BD82), UINT64_C(0x41B6A45C0CFA5622)},
2145          {UINT64_C(0x353A67D583C1E3E8), UINT64_C(0x9A83438EC65F5059),
2146           UINT64_C(0x9995037786EEA346), UINT64_C(0x74E2F4BD330D2570)}},
2147         {{UINT64_C(0xDB8E53C1B4A8BDA8), UINT64_C(0xA850047E2C003C77),
2148           UINT64_C(0xFFD48A731B018831), UINT64_C(0x24F96CB68B325062)},
2149          {UINT64_C(0x3779CA4DCD2B821B), UINT64_C(0xC2AFBF6EC3159CE7),
2150           UINT64_C(0x8A580B1A10F18DE9), UINT64_C(0x37043D0D8CF75334)}},
2151         {{UINT64_C(0x0451DCDAECCCF2E8), UINT64_C(0xCF7A3AD9752A134F),
2152           UINT64_C(0xD5754596FBDAE56C), UINT64_C(0x15237D73F4CDCF6A)},
2153          {UINT64_C(0x1DF5912CECA37967), UINT64_C(0x60934339336CD97E),
2154           UINT64_C(0xA4E523FE434DDC01), UINT64_C(0x24E81DC679DBE24C)}},
2155         {{UINT64_C(0x28F0D73BC83B2B7C), UINT64_C(0x45BE220F7B5DE1AA),
2156           UINT64_C(0x1B785230B136A877), UINT64_C(0x5A94122AAEFF115B)},
2157          {UINT64_C(0xEF895F0C8E598998), UINT64_C(0xCEE32B3EF4C622C3),
2158           UINT64_C(0x2D080B1DB256CFD0), UINT64_C(0x672686D621075E15)}},
2159         {{UINT64_C(0xE85FB5759F9F26FE), UINT64_C(0x1DE57B8393A7966E),
2160           UINT64_C(0xA9948DE8DD8CB696), UINT64_C(0x226C95A6758E685D)},
2161          {UINT64_C(0x38B0753B3729C663), UINT64_C(0xD46CA4D9410E4884),
2162           UINT64_C(0x1D6FA5F977516FA4), UINT64_C(0x09A0FDB8696CFAFC)}},
2163         {{UINT64_C(0xD1DAD8E9CC7F6FD8), UINT64_C(0x7BB9F606022195A2),
2164           UINT64_C(0x1B997396223A9346), UINT64_C(0x6ACD6F7C88DCFB04)},
2165          {UINT64_C(0x9029E5EB3AC52F65), UINT64_C(0xED1D7A0F935A39DE),
2166           UINT64_C(0xF1D58C3A538D8914), UINT64_C(0x19153569B36B8342)}},
2167         {{UINT64_C(0xFF600354E2502156), UINT64_C(0xE386A20F733DA5EC),
2168           UINT64_C(0xD6FBCBBB9D24D11D), UINT64_C(0x0B57498C0B06C843)},
2169          {UINT64_C(0x98F1FFF87A834667), UINT64_C(0x4AEB8788C7DF05F5),
2170           UINT64_C(0x8CFA3B01C2681DA4), UINT64_C(0x1AECC0E82FA2FAEA)}},
2171         {{UINT64_C(0x3827886594C5CBC5), UINT64_C(0x9ADA7CAB041A755A),
2172           UINT64_C(0xB38F762A8D891640), UINT64_C(0x28F6FBB200AD88F0)},
2173          {UINT64_C(0x3F9629E33709CD6D), UINT64_C(0xD2435A554912F483),
2174           UINT64_C(0x305BEA64DFF5AB69), UINT64_C(0x4D29041A663BB0D9)}},
2175         {{UINT64_C(0xDC4BC9D4E2FD9338), UINT64_C(0x5389390DBA7938FC),
2176           UINT64_C(0xC42B812DF329B218), UINT64_C(0x5E809B5EFA9F1956)},
2177          {UINT64_C(0xE2A89BAA523D74C3), UINT64_C(0x97CD9FFB78CBA7B5),
2178           UINT64_C(0x25F953015B07BCD2), UINT64_C(0x4042C7052064BB3A)}},
2179         {{UINT64_C(0xD8B6ADA428D53BF9), UINT64_C(0x5E922CA5A4210F2D),
2180           UINT64_C(0x9501F46AF05A1629), UINT64_C(0x28094E54C6CD71CD)},
2181          {UINT64_C(0x8D5484D5811285AD), UINT64_C(0xFB2168F41593EE86),
2182           UINT64_C(0x693D3B32AC54A41D), UINT64_C(0x3DAFEC0728A5425C)}},
2183         {{UINT64_C(0x0E4CF0D0D12837A8), UINT64_C(0x19FA2CC9CF5273BB),
2184           UINT64_C(0x56346BAE116A20C4), UINT64_C(0x4F3597FE0E436A36)},
2185          {UINT64_C(0x459D3FFBE8EB1B85), UINT64_C(0x7C7186725AE04130),
2186           UINT64_C(0xA37C258660302740), UINT64_C(0x2871AF37913072D8)}},
2187         {{UINT64_C(0xD77249B78590319D), UINT64_C(0x73F7A684EB06B813),
2188           UINT64_C(0x4C9DC5B971D1D580), UINT64_C(0x7C91A9F55A50A95B)},
2189          {UINT64_C(0x4F8F2E890475F161), UINT64_C(0xF34EC1DD538B7F94),
2190           UINT64_C(0xB8FF6C65D46F2575), UINT64_C(0x79A2CE2C64433C80)}},
2191         {{UINT64_C(0x38448A531AEB7039), UINT64_C(0xF5EC03F7417189EC),
2192           UINT64_C(0xFA095CA1EB92FF2B), UINT64_C(0x4612F720E4FCAEDB)},
2193          {UINT64_C(0xC945E966F30AAE0E), UINT64_C(0xF61CFE85340A7A1D),
2194           UINT64_C(0xA2560BC6E42D7920), UINT64_C(0x07D7B321A692E9C7)}},
2195         {{UINT64_C(0xB9C26307592C60C5), UINT64_C(0xCECBC6C30F59D966),
2196           UINT64_C(0x8BA31FD65459D89E), UINT64_C(0x1A4AF6B147C7FAE8)},
2197          {UINT64_C(0x66487766B431D720), UINT64_C(0x5D5973095108B845),
2198           UINT64_C(0xA3B94FD7CA8E6E0D), UINT64_C(0x639519E355C6A48D)}},
2199         {{UINT64_C(0xAD3EE167052DC195), UINT64_C(0x4DF2BFC70947816B),
2200           UINT64_C(0x5D463469ABADBB3C), UINT64_C(0x6F7AA885C33D4F96)},
2201          {UINT64_C(0x3DD27536FE06133C), UINT64_C(0x27A557B22796E7ED),
2202           UINT64_C(0x1117CCB73D314A4F), UINT64_C(0x6F0C0AE023968946)}},
2203         {{UINT64_C(0x0A3D4DAEE2110C00), UINT64_C(0x0389D3A54C633A23),
2204           UINT64_C(0xE167BDFA83AEC172), UINT64_C(0x067070CEFB38E8F1)},
2205          {UINT64_C(0x411373674DF220C5), UINT64_C(0xB255E5D359C39F05),
2206           UINT64_C(0xE437984E043C75B3), UINT64_C(0x01DCD7716A22994A)}},
2207     },
2208     {
2209         {{UINT64_C(0xD2880DF24C6FDDCF), UINT64_C(0x76A28FF28A00D80F),
2210           UINT64_C(0x257CB1F80792F82C), UINT64_C(0x07938ABC605703EA)},
2211          {UINT64_C(0xD99F0AC95F61B0FE), UINT64_C(0x440DC63C8EC15433),
2212           UINT64_C(0xD9BDDFF186AB5DDB), UINT64_C(0x3B8875DC744755EA)}},
2213         {{UINT64_C(0x01D904404938C9FB), UINT64_C(0x900657FD8DB6A890),
2214           UINT64_C(0xDCC5068AF60A173A), UINT64_C(0x5F3EB242857C7B2A)},
2215          {UINT64_C(0x634240BDA4F0EB9E), UINT64_C(0xACDDA6C444E85C70),
2216           UINT64_C(0x753F02AB0AABE4C5), UINT64_C(0x33D89D21C1D034E1)}},
2217         {{UINT64_C(0x4596B52D1279B25B), UINT64_C(0x494669D9A48014AE),
2218           UINT64_C(0x9A26B6FC4FD22150), UINT64_C(0x394DE0BBF07D5A3F)},
2219          {UINT64_C(0x12DFE5A6634C1733), UINT64_C(0x33EC21D21EBC5177),
2220           UINT64_C(0x454B4930527514CC), UINT64_C(0x7F23BD0F41405532)}},
2221         {{UINT64_C(0xB2879E7FBAC9DD30), UINT64_C(0x259BB1CB06CE7672),
2222           UINT64_C(0x201DB42EBB97BE10), UINT64_C(0x112D60792EA35A8E)},
2223          {UINT64_C(0x7CC756D46B3B9933), UINT64_C(0x4BD24810781CE4DD),
2224           UINT64_C(0x53CB4E388733247E), UINT64_C(0x47BD6A309DA66787)}},
2225         {{UINT64_C(0x8A700953BA600C8E), UINT64_C(0xD466F11DCF388C0D),
2226           UINT64_C(0xD485F341E4A17A8E), UINT64_C(0x63278918234FC16D)},
2227          {UINT64_C(0xF4DDA875BB82046D), UINT64_C(0xD61E4E582945470A),
2228           UINT64_C(0xCDB6C5BD6D0F8976), UINT64_C(0x44CD9E4D10A004A2)}},
2229         {{UINT64_C(0x595CD94249C4AA6E), UINT64_C(0xE5A901363DE400C8),
2230           UINT64_C(0x4BCED3BD9DD12D9E), UINT64_C(0x3700CF9278E3D5E4)},
2231          {UINT64_C(0xECFFF49875A32D1A), UINT64_C(0xC28DDE373C4A54B2),
2232           UINT64_C(0x8DC22352993CAE6D), UINT64_C(0x46CB540852ED7019)}},
2233         {{UINT64_C(0x71FFAED0EA94E7BF), UINT64_C(0xC0817D2CD5AE6185),
2234           UINT64_C(0x7B72B8B95CF23687), UINT64_C(0x61DDE59960A450E1)},
2235          {UINT64_C(0x17CF0B10D13870E6), UINT64_C(0x7D08E1FB5F2930BB),
2236           UINT64_C(0x8D0F4F5583807C14), UINT64_C(0x61EBFC1A6E6DB701)}},
2237         {{UINT64_C(0x247A3F650FCAFE68), UINT64_C(0x575480357AC2A25E),
2238           UINT64_C(0xB7466CA53CD0FE06), UINT64_C(0x7B0D8B36BCC31AB3)},
2239          {UINT64_C(0x2FAAF49CA6D4358C), UINT64_C(0xD9E5E2FE3E9B4E31),
2240           UINT64_C(0xA6A859A0F6086336), UINT64_C(0x0C2A442AA9C19F84)}},
2241         {{UINT64_C(0x66FEA8413BC0AD7D), UINT64_C(0xCD3A546C32C9158E),
2242           UINT64_C(0xACD2EE7F8FE1DF7F), UINT64_C(0x10F58C0AEBE9621E)},
2243          {UINT64_C(0x80047C54478B667D), UINT64_C(0x9EAE5FAA89870DCE),
2244           UINT64_C(0xC05BEB330520A005), UINT64_C(0x2CFBC921352AC891)}},
2245         {{UINT64_C(0x6842E6B8632F6D73), UINT64_C(0x6F2B57242B9FFAEA),
2246           UINT64_C(0x7ACCC9829341D2FA), UINT64_C(0x6DAD9A1188809B65)},
2247          {UINT64_C(0x3411850CB6CC2240), UINT64_C(0x8547BCAFB64937E1),
2248           UINT64_C(0x49AEDD5F6978F636), UINT64_C(0x38F5975285A53D2A)}},
2249         {{UINT64_C(0x5C38EB49F5F5A2D0), UINT64_C(0xE028121BE3BF779C),
2250           UINT64_C(0x649997C8A783D5E3), UINT64_C(0x04DE984A2C06CC0F)},
2251          {UINT64_C(0x52C834B0A49D6239), UINT64_C(0x070A1B09628413AC),
2252           UINT64_C(0x2FBE0CA5A8624A1E), UINT64_C(0x687D93C3268D930A)}},
2253         {{UINT64_C(0xC7CD6805314C47A4), UINT64_C(0x8BD0C630CE7A9A6D),
2254           UINT64_C(0xCDB2DAD534F727BA), UINT64_C(0x7814C41425DB0189)},
2255          {UINT64_C(0xD7F9C5DC7DD9CAEE), UINT64_C(0xDA6EACC8798690E4),
2256           UINT64_C(0x705794E36B675E01), UINT64_C(0x4A31D71475C5EC38)}},
2257         {{UINT64_C(0xC162A3EA0519D5F2), UINT64_C(0x92146A782958FABF),
2258           UINT64_C(0x1E63CBE46CB31EB0), UINT64_C(0x77CE5AADFBC5AD0F)},
2259          {UINT64_C(0x3631E47032605DC6), UINT64_C(0xC7D1C72F43413DD3),
2260           UINT64_C(0x171A37940DF6B7C9), UINT64_C(0x6D7117432B5A08BC)}},
2261         {{UINT64_C(0xDDC8057D509EF0F2), UINT64_C(0x05C0B92B6CABB486),
2262           UINT64_C(0xD49692B64244D919), UINT64_C(0x4E181744D297F56E)},
2263          {UINT64_C(0x902F6E73F8CBB897), UINT64_C(0xC3B21FE156D01382),
2264           UINT64_C(0xA858ABE146890F6D), UINT64_C(0x46B5E2C9506858AF)}},
2265         {{UINT64_C(0x30441281F4DEDE56), UINT64_C(0x13F06FBBA195AEDE),
2266           UINT64_C(0xAD5F575B2FDD3BFF), UINT64_C(0x680F656D32ACB590)},
2267          {UINT64_C(0xFB60A8E1E3FAABA7), UINT64_C(0xC8FBC1E489A14827),
2268           UINT64_C(0x5835453FA8616136), UINT64_C(0x02826A47E6F4926F)}},
2269         {{UINT64_C(0xAF4319A174F32180), UINT64_C(0x4C9FDD166C2C1712),
2270           UINT64_C(0x59CA4FD4AC7E14A7), UINT64_C(0x07AA6E2FABBD4EA4)},
2271          {UINT64_C(0xB4BD441CFE9F121F), UINT64_C(0xDEBB4356CDA452C5),
2272           UINT64_C(0xC29F1CFA51C9F451), UINT64_C(0x7E1EEF4C83F598D8)}},
2273     },
2274     {
2275         {{UINT64_C(0xFC41A3215014135F), UINT64_C(0xBE95F9BA3EEADF3F),
2276           UINT64_C(0x054B12123203A540), UINT64_C(0x6DD2FD173721C745)},
2277          {UINT64_C(0xF86B85785A682B59), UINT64_C(0x872AA481BE801F7D),
2278           UINT64_C(0x64C1600C14F865F2), UINT64_C(0x4BDD47AA25365449)}},
2279         {{UINT64_C(0xC96A964CF3A3469F), UINT64_C(0x273C5C859F7DA0E3),
2280           UINT64_C(0x88EDC4AC4C1A9DCD), UINT64_C(0x77623444B48E4CAA)},
2281          {UINT64_C(0x7AF34A9C31581FF7), UINT64_C(0x23328C37BB57F7CC),
2282           UINT64_C(0xE920D8E98B7C86AB), UINT64_C(0x1C7A7A409DE6D64C)}},
2283         {{UINT64_C(0x0BCDCD2279B9451C), UINT64_C(0x2920B43558F5241B),
2284           UINT64_C(0xC24DF7159B33EF3D), UINT64_C(0x15252C5BF2600224)},
2285          {UINT64_C(0xF9C8D8A69A9160B6), UINT64_C(0x3186F2F9A6B9A6B8),
2286           UINT64_C(0xC37267DCA377E98A), UINT64_C(0x71319A0A37957189)}},
2287         {{UINT64_C(0x48E5033F6BAF6AE5), UINT64_C(0x72379B2EA460FCE9),
2288           UINT64_C(0xFC753D47F3D2FA46), UINT64_C(0x3B67685AED9EDF72)},
2289          {UINT64_C(0x1608E304F712500F), UINT64_C(0xDFA358A49EE1B42A),
2290           UINT64_C(0xE7A4B37634B8345C), UINT64_C(0x7D0E0BF306753C17)}},
2291         {{UINT64_C(0xA88526A68FA62042), UINT64_C(0xD6F32BB5393006BD),
2292           UINT64_C(0x14804978A5DD5045), UINT64_C(0x34C02662BF0C5E13)},
2293          {UINT64_C(0xF9BEEBF9376E3E3D), UINT64_C(0xFD7740415923DC61),
2294           UINT64_C(0xFE77BDFAF9735CF5), UINT64_C(0x2E476E224077CFCC)}},
2295         {{UINT64_C(0xAB8E52EB9BA457EF), UINT64_C(0x95F6C5FE0ABED212),
2296           UINT64_C(0x7204B1A6386620FF), UINT64_C(0x463B7474DD180719)},
2297          {UINT64_C(0x7F7D27AAF991D8EE), UINT64_C(0xA7EB10858F67722D),
2298           UINT64_C(0x78D7095BE331480A), UINT64_C(0x1DCC8C1266A1C8FA)}},
2299         {{UINT64_C(0xD4C39C183E6A04C1), UINT64_C(0x73DB1C4DB598ABEE),
2300           UINT64_C(0x381F9780DF4A7D42), UINT64_C(0x3C19A23152F860CD)},
2301          {UINT64_C(0x7EC899343EF00740), UINT64_C(0x50867788F37FE0D5),
2302           UINT64_C(0x502D870B43E84D4A), UINT64_C(0x5F8A84138F744749)}},
2303         {{UINT64_C(0x1C41AAADFAECCFE4), UINT64_C(0xC324F3B921461F41),
2304           UINT64_C(0x165ABA3F4E90C0AB), UINT64_C(0x2F96CED55F88E7D3)},
2305          {UINT64_C(0x8CA366FCC0E52768), UINT64_C(0x6CCA017CA55249A7),
2306           UINT64_C(0x41ED002F0F7EBCA2), UINT64_C(0x0C33B371A2BAF655)}},
2307         {{UINT64_C(0x3B94CD9C62B928CE), UINT64_C(0x5BC43A6A39729345),
2308           UINT64_C(0x044D0C0FC47D223C), UINT64_C(0x3B64B38DB0493367)},
2309          {UINT64_C(0x82AFB645EB74A6C2), UINT64_C(0x0CB01E22D876D71C),
2310           UINT64_C(0xCE2A7DCC29C6BCD0), UINT64_C(0x4753DE1CDFD644EC)}},
2311         {{UINT64_C(0xE69FC90362188792), UINT64_C(0xD91DB9BC4914328B),
2312           UINT64_C(0x44953F4D3B68F8D0), UINT64_C(0x2950435D0654B283)},
2313          {UINT64_C(0xE599A4AEBE88F609), UINT64_C(0xF801CD9090F5D10E),
2314           UINT64_C(0x0AB78DB1D4F1D3D9), UINT64_C(0x3ED9666AC0F71ECB)}},
2315         {{UINT64_C(0x6046A505E1E73E59), UINT64_C(0x8723A3ECF3B5C2E0),
2316           UINT64_C(0x4BD95BF6E22C1555), UINT64_C(0x50DC33DB6DA421E9)},
2317          {UINT64_C(0xCFB51E95F1B01327), UINT64_C(0xE7013F2A199A8765),
2318           UINT64_C(0xF486FEA777504B0B), UINT64_C(0x2AF0F7E9F9BA61C6)}},
2319         {{UINT64_C(0x9DBA1A02BE00B841), UINT64_C(0x488BA4558BED5F08),
2320           UINT64_C(0xF6814A6467F1040E), UINT64_C(0x23AC4762DC252336)},
2321          {UINT64_C(0x25040F02F0ED0577), UINT64_C(0x65209B22C6FFAE9C),
2322           UINT64_C(0xCC441A8C485AA0AC), UINT64_C(0x10DFACB659D63A8A)}},
2323         {{UINT64_C(0xBF4A0569C7D86B28), UINT64_C(0x5CDA94C4DBDA9DA4),
2324           UINT64_C(0x2235C4CE69058335), UINT64_C(0x68FA5E7CD30C89E2)},
2325          {UINT64_C(0xBB286D3959097B5B), UINT64_C(0x87DA80BB9A20BA7E),
2326           UINT64_C(0x85EF865E56F47E54), UINT64_C(0x5BB8786774ABFA5B)}},
2327         {{UINT64_C(0x5DB14FABDE2FA36E), UINT64_C(0x84E3B54677775F09),
2328           UINT64_C(0xDA734523DA951D99), UINT64_C(0x04A890973975026E)},
2329          {UINT64_C(0xB5753599C0D12BE1), UINT64_C(0x05670CE9FB864D61),
2330           UINT64_C(0xB7153502305BF3CF), UINT64_C(0x7A9BB3572E60AF62)}},
2331         {{UINT64_C(0xF43CDA07C7566DA5), UINT64_C(0x7FC4C7FC53FA4196),
2332           UINT64_C(0x1E20E0ED88DCC9F3), UINT64_C(0x7317C7E5FEE23DDA)},
2333          {UINT64_C(0x0305E13F43017070), UINT64_C(0x5568410C6B1CA7C0),
2334           UINT64_C(0x0E5D55BA104BA029), UINT64_C(0x118B284E90FD49F8)}},
2335         {{UINT64_C(0xCA0F7B5B8F3C6D8A), UINT64_C(0xAF72DEE0AF7ECBF6),
2336           UINT64_C(0x21C86D85BB0EC4F1), UINT64_C(0x0303BC47F0525D17)},
2337          {UINT64_C(0x6ADCAB9F896FFCC0), UINT64_C(0x65764C4524E970CA),
2338           UINT64_C(0x0000F14C1C3CA718), UINT64_C(0x01CF1DDBD0292587)}},
2339     },
2340     {
2341         {{UINT64_C(0xEC4FABCC86111EBA), UINT64_C(0x599C20B6BBBB793F),
2342           UINT64_C(0xF74AE7475657668F), UINT64_C(0x24AF29B277BAE892)},
2343          {UINT64_C(0x47D6876BCFAC9D5E), UINT64_C(0xCACF9F5024369E14),
2344           UINT64_C(0x8A231D746F9CAFEF), UINT64_C(0x57645A4EB69AAE58)}},
2345         {{UINT64_C(0x440A3B15489900F6), UINT64_C(0x4B642FD3961AC3C2),
2346           UINT64_C(0x3D668599C265B973), UINT64_C(0x5FA0E65D1139CE78)},
2347          {UINT64_C(0x3FF15AF41FAA710E), UINT64_C(0xE45D35CEA9422FC0),
2348           UINT64_C(0x56904C06BD7BB349), UINT64_C(0x40C5BEE0E529989D)}},
2349         {{UINT64_C(0x8FA4686170B20298), UINT64_C(0xEC6295384838A136),
2350           UINT64_C(0x23ADE0F6137F66D6), UINT64_C(0x1A92E05C8EA53E76)},
2351          {UINT64_C(0x51728E279D51EB7A), UINT64_C(0xA6B0B758C4352E35),
2352           UINT64_C(0x84C5933137A11B35), UINT64_C(0x3933EFC1F66B75C7)}},
2353         {{UINT64_C(0x7FB68D6266916D0A), UINT64_C(0x3325D42EF28A9B14),
2354           UINT64_C(0x75E83A658592B544), UINT64_C(0x524D1CE02718628F)},
2355          {UINT64_C(0x88A110EA3C584D76), UINT64_C(0x6B034AC44AC09AAC),
2356           UINT64_C(0x0648863584FD3A36), UINT64_C(0x516F0EB087D944E1)}},
2357         {{UINT64_C(0xE2016DA0DF11D0BB), UINT64_C(0xB34EB471B01F6540),
2358           UINT64_C(0x13E3D330165CBB24), UINT64_C(0x3E755D117CF7F676)},
2359          {UINT64_C(0xD70CF4F84FEA9A69), UINT64_C(0x98F59E0AD18F4337),
2360           UINT64_C(0x7CCE7CE6826344BA), UINT64_C(0x30D129D7F4004BBE)}},
2361         {{UINT64_C(0x016EF317BA9CB975), UINT64_C(0x8EEBED19E4B3AB4D),
2362           UINT64_C(0x8C597DF0170A2570), UINT64_C(0x451538D85BE6DE70)},
2363          {UINT64_C(0x6C711DAC7A64792F), UINT64_C(0x8F1896EB217EC8FB),
2364           UINT64_C(0x82E9C20B7FE18DED), UINT64_C(0x6CEBF4A7B0C5F622)}},
2365         {{UINT64_C(0xD9403EB549CCC64F), UINT64_C(0x807EBD5628B8A3FD),
2366           UINT64_C(0xF08BB6590F291E12), UINT64_C(0x020D13E39C3F4432)},
2367          {UINT64_C(0xDA247896752BB92E), UINT64_C(0x9954179486EAFA7A),
2368           UINT64_C(0x213E94BA274E36AD), UINT64_C(0x4CC0F1FB61A71333)}},
2369         {{UINT64_C(0x19CC11BD06478801), UINT64_C(0x1251562A6D18216A),
2370           UINT64_C(0x7A5F06BBCDD307FC), UINT64_C(0x4285F6ABFAA9CA2A)},
2371          {UINT64_C(0x5A92283181258996), UINT64_C(0x8F7CF8EE27B8B018),
2372           UINT64_C(0xF030BEF37F81A62D), UINT64_C(0x417ACBC1CD4FD4E7)}},
2373         {{UINT64_C(0xCFB0EA58EC64412F), UINT64_C(0x9547B64A6091E621),
2374           UINT64_C(0x5EA49C7EFD0C9815), UINT64_C(0x6789055AE78B355C)},
2375          {UINT64_C(0x8D743E9877E9A73A), UINT64_C(0xB032EA6A2EA3FA49),
2376           UINT64_C(0x52EA3801CEAAA33A), UINT64_C(0x73B3BB8DF2C3E22B)}},
2377         {{UINT64_C(0xAA2A12917DB9E301), UINT64_C(0x7F29770FA1293DD7),
2378           UINT64_C(0x3135BB2159683DEC), UINT64_C(0x070F8DF77785B505)},
2379          {UINT64_C(0x8F2158EA37F53677), UINT64_C(0x96CC7B9DABE1AF1C),
2380           UINT64_C(0x7F9779156D6477D6), UINT64_C(0x55DB3922DF370EAF)}},
2381         {{UINT64_C(0x3028C03AA9DAC7AE), UINT64_C(0x16F7DF0DBAE06BE0),
2382           UINT64_C(0x09548398410D57D9), UINT64_C(0x5E9C7F431510D51F)},
2383          {UINT64_C(0x033B9BE2D07717B3), UINT64_C(0x0D5D8116EF08AB91),
2384           UINT64_C(0xD5A172B1EEEFE88F), UINT64_C(0x72B1D29F0996294E)}},
2385         {{UINT64_C(0x9E2B79FBE4D0965C), UINT64_C(0x01F403EEF49D8B8E),
2386           UINT64_C(0xBD4D2D48CEB12D6A), UINT64_C(0x4D04DD9A11FB24FB)},
2387          {UINT64_C(0x7E613EC5E5C8D24C), UINT64_C(0x568BEFE8B918E543),
2388           UINT64_C(0xD6456D1EE966DF28), UINT64_C(0x2DDEAD63BAFC71E2)}},
2389         {{UINT64_C(0x1D794F92448D72E9), UINT64_C(0x3978052EE7E62BF2),
2390           UINT64_C(0xF6C7A72EE2B92538), UINT64_C(0x43879A886EF321F0)},
2391          {UINT64_C(0x2A82314034F6FFBC), UINT64_C(0x26F84E5135F4C485),
2392           UINT64_C(0xDEE65540028BFA7E), UINT64_C(0x56216E9D5F033058)}},
2393         {{UINT64_C(0x31CA5470CBC772EE), UINT64_C(0xD3621E11811BB5D0),
2394           UINT64_C(0x501C4C4770863D71), UINT64_C(0x0564518ED28D6BDD)},
2395          {UINT64_C(0x60E3B89BD35B64B9), UINT64_C(0xB4F2599A6621A688),
2396           UINT64_C(0x1A8C45083B5E116D), UINT64_C(0x633EF5CCFABF3125)}},
2397         {{UINT64_C(0x0DB1D2515D4FF62A), UINT64_C(0x6CBD00EB4B17D658),
2398           UINT64_C(0x2FA38212FA1DB737), UINT64_C(0x07B18CB893A7FA03)},
2399          {UINT64_C(0x531E47EF548E5F82), UINT64_C(0xAE7B94FD8276963C),
2400           UINT64_C(0x8055D82A6181A13A), UINT64_C(0x5725B51223B6E361)}},
2401         {{UINT64_C(0xD84C70416D8B1FFE), UINT64_C(0xF68ACA0B5D994200),
2402           UINT64_C(0x32BF99446BB908E2), UINT64_C(0x1240A3E61AD88DB1)},
2403          {UINT64_C(0xB0BE96AAA92B6472), UINT64_C(0xEF88A155A1B7726C),
2404           UINT64_C(0x000FD9ED9349F496), UINT64_C(0x377DCBAD454A05D9)}},
2405     },
2406     {
2407         {{UINT64_C(0xD0A092CDC04111D2), UINT64_C(0x5C43A94C338F06D6),
2408           UINT64_C(0x697B4C2625E964F3), UINT64_C(0x2CD5A0597572CCFD)},
2409          {UINT64_C(0xA09FC4D4B5B523E4), UINT64_C(0x7D8141E84E1E9042),
2410           UINT64_C(0x2462512BD637409E), UINT64_C(0x503F032F7CB2CE75)}},
2411         {{UINT64_C(0xC56F38E3BCBF1450), UINT64_C(0x09F4FC77CF2E5594),
2412           UINT64_C(0xF449C3E60FCB653A), UINT64_C(0x6A1FE75264A53C65)},
2413          {UINT64_C(0xFF366FED7C039488), UINT64_C(0x23F58BA58C99A6CB),
2414           UINT64_C(0x4B5546C68D67F6D6), UINT64_C(0x03405C85178B1668)}},
2415         {{UINT64_C(0x969F1B33C0C86696), UINT64_C(0x9346D06C13746468),
2416           UINT64_C(0x68AED3C8AE0C6D62), UINT64_C(0x7B3D536174FE63D5)},
2417          {UINT64_C(0xFEE8416BC4F4B65D), UINT64_C(0xC79BF488554C6D0A),
2418           UINT64_C(0x191D5D27DC402BB0), UINT64_C(0x31B00167E087EB9F)}},
2419         {{UINT64_C(0xD5FE0979E05D281F), UINT64_C(0x8373AB503485446B),
2420           UINT64_C(0xCE5258BA9223681F), UINT64_C(0x5F82843EA37BF244)},
2421          {UINT64_C(0x94ED780BCFC16536), UINT64_C(0x6A9739B3BD477733),
2422           UINT64_C(0x137D68F2A04A4195), UINT64_C(0x3A0F27E80032BFCE)}},
2423         {{UINT64_C(0x7EADE421358382F9), UINT64_C(0x490B9CA692E3D912),
2424           UINT64_C(0x040CE73EF1AFBC2A), UINT64_C(0x5745D47311AE91BA)},
2425          {UINT64_C(0x625BED61CE303B77), UINT64_C(0x85B2A1EB85B03A1D),
2426           UINT64_C(0x764F62E43D7C02E0), UINT64_C(0x22C2D16FA7AF6DDE)}},
2427         {{UINT64_C(0x5B985DE6D19377BE), UINT64_C(0x0AF85A06D8E43A10),
2428           UINT64_C(0x1465E5040519F4C6), UINT64_C(0x5DA01665E3E20BA3)},
2429          {UINT64_C(0xCD9B8E9B675D9E2A), UINT64_C(0x4C77E1AD6448A2CD),
2430           UINT64_C(0xD6094BAD1E5D4465), UINT64_C(0x4C352951C50DB788)}},
2431         {{UINT64_C(0x42581152EE5AB903), UINT64_C(0xDAD2DBC963311418),
2432           UINT64_C(0xBCA4F70BB885E56A), UINT64_C(0x1F5DD363B94E0876)},
2433          {UINT64_C(0xF9AD5D043FFF479E), UINT64_C(0xEF1176E5FE06AD2B),
2434           UINT64_C(0x46ACB00A216F77AF), UINT64_C(0x709CF4EB857C4F78)}},
2435         {{UINT64_C(0x70CD666ED0D2FF1C), UINT64_C(0x4BAD4A6AE7EFE4AD),
2436           UINT64_C(0xB43F6C2D0FA72024), UINT64_C(0x0D78F8E2E90C0617)},
2437          {UINT64_C(0x543B9662F80DCAA7), UINT64_C(0xB02FB3BCF28ADFAF),
2438           UINT64_C(0x26C17651C51C54C3), UINT64_C(0x0815F6373D648D88)}},
2439         {{UINT64_C(0xAC4F43C1AEA98FA6), UINT64_C(0x2D223416AC4398C6),
2440           UINT64_C(0x48B2EEADDA5C5070), UINT64_C(0x632B65F1BE666F70)},
2441          {UINT64_C(0x971D3BC0952021BE), UINT64_C(0x9FDCB7E023B2C578),
2442           UINT64_C(0x476D47153CC21796), UINT64_C(0x4015565F95832A94)}},
2443         {{UINT64_C(0x8913AFAC13CA725C), UINT64_C(0xA56DC461DC18F0D9),
2444           UINT64_C(0xAC3AC72010F3AAFE), UINT64_C(0x5D75567EC628D69C)},
2445          {UINT64_C(0xC11BE9DCEEEA4BF7), UINT64_C(0xAD97FBCA1C193BD5),
2446           UINT64_C(0xD1EC5BCEC58123E8), UINT64_C(0x0F6DF9309C73D4E5)}},
2447         {{UINT64_C(0xE80A0ADAFD759FFD), UINT64_C(0xE52DF94B239CAFC0),
2448           UINT64_C(0x59640161FE7A43E9), UINT64_C(0x7A96995CDB1A38F0)},
2449          {UINT64_C(0xA46A15037CD5011B), UINT64_C(0x75CFB637AC0E9689),
2450           UINT64_C(0x27B740CA97AAD2BA), UINT64_C(0x64A0748BEAD2F776)}},
2451         {{UINT64_C(0xB67E5BB50625B3B1), UINT64_C(0x2FE19FFBC66D2832),
2452           UINT64_C(0x47815666F70C07CF), UINT64_C(0x5A1AA24AA43E52AB)},
2453          {UINT64_C(0x04EE11F84CAC0E66), UINT64_C(0x51E515833A3A4836),
2454           UINT64_C(0x46755F49B44F6DEC), UINT64_C(0x6388408BC1E9B282)}},
2455         {{UINT64_C(0xD47AA9A69DE7A6A7), UINT64_C(0xEC94AD9B189BC9D2),
2456           UINT64_C(0xFA89099D8EC0E950), UINT64_C(0x1B9FC2069F64D27F)},
2457          {UINT64_C(0x765724840B729DE1), UINT64_C(0xFE9E8E714BE22EB8),
2458           UINT64_C(0x910F0456F9DB5942), UINT64_C(0x4D018459C617D82B)}},
2459         {{UINT64_C(0xB082B58AF5516C6F), UINT64_C(0xFFBA0E73567A8CF5),
2460           UINT64_C(0x08FF64CE8A6DD4A0), UINT64_C(0x6CF3C89C69A9F66A)},
2461          {UINT64_C(0x356782BA62FEB0A7), UINT64_C(0x1A18720D3E2907F9),
2462           UINT64_C(0xF840FFA30BBD9D92), UINT64_C(0x41D9EECA20926421)}},
2463         {{UINT64_C(0xCF2E8AACB6B08321), UINT64_C(0xC76FBE12010D91C0),
2464           UINT64_C(0x5492475068E35E02), UINT64_C(0x74DBA2E19AEE00F8)},
2465          {UINT64_C(0x94C70D6DC5504E82), UINT64_C(0x0BDF415FEA1770F7),
2466           UINT64_C(0xDA45B7003CA6DB0A), UINT64_C(0x473C6A04E133A980)}},
2467         {{UINT64_C(0xD1FF6C1E1E188071), UINT64_C(0x621A7D3CEA3F16F8),
2468           UINT64_C(0x604673076A160F47), UINT64_C(0x37CA7D3D32DC84EE)},
2469          {UINT64_C(0x54F5F7F667DDFDB5), UINT64_C(0x3A8482F9921BA04B),
2470           UINT64_C(0x842F49501A28E238), UINT64_C(0x3A4DC9177214FAFD)}},
2471     },
2472     {
2473         {{UINT64_C(0xEDD8360CEEA25E82), UINT64_C(0x3DB6D933FB7B7ED0),
2474           UINT64_C(0x882F3C0BABF15199), UINT64_C(0x228664A2516E349D)},
2475          {UINT64_C(0x96E6DCF7E88173DF), UINT64_C(0x382C8D3BD7EC0BC3),
2476           UINT64_C(0xFBFF6D216FA5FA58), UINT64_C(0x780039802F41C959)}},
2477         {{UINT64_C(0x713BA43B9D9ACF9C), UINT64_C(0xF59A252D94876559),
2478           UINT64_C(0x8B310954437B8ED5), UINT64_C(0x76A83790E474E98E)},
2479          {UINT64_C(0x84C1386AF6040B05), UINT64_C(0x69FA9F43BF3D8189),
2480           UINT64_C(0x5584164CA98D4866), UINT64_C(0x6C89CE1D3B9045D0)}},
2481         {{UINT64_C(0xD6EF7540B522FB28), UINT64_C(0xDB561B56BB28D745),
2482           UINT64_C(0xC9F7543EEFA58B87), UINT64_C(0x5F02A23BE9062979)},
2483          {UINT64_C(0xFD3C0C196809D624), UINT64_C(0x94481554A92EB229),
2484           UINT64_C(0x72D8EC53F5147EFB), UINT64_C(0x143026610D1BA626)}},
2485         {{UINT64_C(0x0B35BD5989020800), UINT64_C(0x3C6F1527430D7DEB),
2486           UINT64_C(0x9BEB3C8E2FFFA0E0), UINT64_C(0x7E181B78AFD09A19)},
2487          {UINT64_C(0xE82FD9573B2F0B49), UINT64_C(0x4C9461B10BC0F9DA),
2488           UINT64_C(0x87D78C412B1C8B85), UINT64_C(0x775BED20C1F5BDA1)}},
2489         {{UINT64_C(0x883AE89B16350593), UINT64_C(0x85D429CB0C19FEC8),
2490           UINT64_C(0x5938BDEC5742C36D), UINT64_C(0x2DDBC7EBDA8A21B7)},
2491          {UINT64_C(0xA249BDE407A2E700), UINT64_C(0x42A3897CE8BD6215),
2492           UINT64_C(0x87F30BA7732FF181), UINT64_C(0x5385D7091B912C57)}},
2493         {{UINT64_C(0x2B5C555B288041F5), UINT64_C(0xD3D900401F425866),
2494           UINT64_C(0x37E40CD202E0FA71), UINT64_C(0x08B37F263A386038)},
2495          {UINT64_C(0x165BD7FB5DE1ED78), UINT64_C(0x22949E810829ECC9),
2496           UINT64_C(0xBB8705CCBCE3D01F), UINT64_C(0x7961BE851D233CDF)}},
2497         {{UINT64_C(0x5D3DBC6B7659B477), UINT64_C(0xFD86577950EF08EB),
2498           UINT64_C(0x502729E8F34EA1A5), UINT64_C(0x1548526ED2B64602)},
2499          {UINT64_C(0xB13632FDB91D2675), UINT64_C(0x09A42003F7B37397),
2500           UINT64_C(0x37D18F37CCFC4532), UINT64_C(0x3FAEF63B73C7082C)}},
2501         {{UINT64_C(0x3365445FE666DB6D), UINT64_C(0x9051FFF5339A0076),
2502           UINT64_C(0x6167FB769BD6D01D), UINT64_C(0x09737137CA087B41)},
2503          {UINT64_C(0xCA2193AEB3270BA7), UINT64_C(0xEF0744C28F2217B3),
2504           UINT64_C(0x3E030D58F0DD10D8), UINT64_C(0x667246DBCCB4F2F9)}},
2505         {{UINT64_C(0x31F3030E3773EC8C), UINT64_C(0xAF2B31235AD56010),
2506           UINT64_C(0xFC118587B37E9062), UINT64_C(0x52840C2C9C2D5406)},
2507          {UINT64_C(0xA96D3DFF6670ACBB), UINT64_C(0xF469982F772EC6D3),
2508           UINT64_C(0x5BE20628A9DF4C88), UINT64_C(0x59D01479673633BC)}},
2509         {{UINT64_C(0xC9223750AFB5083B), UINT64_C(0xF1EB451E191C2160),
2510           UINT64_C(0x0D913794A38EC005), UINT64_C(0x31062E9E83FD1D18)},
2511          {UINT64_C(0x070538F55F4816AD), UINT64_C(0x90D4855D925F5DA1),
2512           UINT64_C(0xC0BBA87B22F455B6), UINT64_C(0x517B5F80F48D2AE5)}},
2513         {{UINT64_C(0x0D8B670A3F4FA7CA), UINT64_C(0xE29C88493D114EB2),
2514           UINT64_C(0x1823780D916A187E), UINT64_C(0x6961C48365EE66A0)},
2515          {UINT64_C(0x2F6FB20A62FDC12C), UINT64_C(0x51414E5F0CFDDE0C),
2516           UINT64_C(0x16BD56A7DCA39073), UINT64_C(0x0CFE6DAF648FFD43)}},
2517         {{UINT64_C(0x3789F4CAAEBA9241), UINT64_C(0xE8056BC6107777C6),
2518           UINT64_C(0x6EE564C33CB20826), UINT64_C(0x5DF3634745448C69)},
2519          {UINT64_C(0xFD0FA84BB22CE624), UINT64_C(0x2AA19672AC753D50),
2520           UINT64_C(0x29A1464F677CC0D0), UINT64_C(0x7C2237B13CEF5493)}},
2521         {{UINT64_C(0x87C2587C24255918), UINT64_C(0x9AA89A0B90B35A37),
2522           UINT64_C(0x9932EB7810E7CAEF), UINT64_C(0x49278F16CDE31568)},
2523          {UINT64_C(0xA4D33C6141188ED9), UINT64_C(0xC587BDE005AC3A1D),
2524           UINT64_C(0x2A5C5ACC7248B5E0), UINT64_C(0x60026A1D8510D2CB)}},
2525         {{UINT64_C(0xE57CB0C96BAF603C), UINT64_C(0x527F28A6AB770AF0),
2526           UINT64_C(0x2850D8E6016F2BC1), UINT64_C(0x0EC2A46C936DC2EC)},
2527          {UINT64_C(0xA0BC5306D4F23FC2), UINT64_C(0x6DBEDA2653A0130F),
2528           UINT64_C(0xB1D52F87EE3314B7), UINT64_C(0x17168B126C234CF5)}},
2529         {{UINT64_C(0x8B8BC181DADF17D5), UINT64_C(0x31EC3CADFAFFA918),
2530           UINT64_C(0x4611A482274E4658), UINT64_C(0x5A9E365273D35EAD)},
2531          {UINT64_C(0xBA68825BF4028FC7), UINT64_C(0x142859D562E203F5),
2532           UINT64_C(0xCE516AC41C817A9E), UINT64_C(0x4201468257223F8D)}},
2533         {{UINT64_C(0x51FBFB2EB4B66798), UINT64_C(0x3A3F15910EA9C4EF),
2534           UINT64_C(0x3FD3D026E8814805), UINT64_C(0x3CA531E4B0C8DFD0)},
2535          {UINT64_C(0x69A6B3F8E585A960), UINT64_C(0x1627CC77BD3F567D),
2536           UINT64_C(0x6F4EF4305DB9CFD0), UINT64_C(0x05B567078D02278A)}},
2537     },
2538     {
2539         {{UINT64_C(0x6663F2F310B96338), UINT64_C(0x69373D1FCE8CA31C),
2540           UINT64_C(0x3D31C5CFD67AEC10), UINT64_C(0x2FAF554516F2547E)},
2541          {UINT64_C(0xF6E397D51EA2EA64), UINT64_C(0x2281A0DFEEAEBE7A),
2542           UINT64_C(0x72E53254FA2527EC), UINT64_C(0x660D059A76432155)}},
2543         {{UINT64_C(0xD3CA8B132C66D937), UINT64_C(0xC6F34B08CD2DF849),
2544           UINT64_C(0x9AF2C9E3A23A9F73), UINT64_C(0x24D44BD9702388E9)},
2545          {UINT64_C(0x8DA4D6A4D1B3DA10), UINT64_C(0xB9FAFBF440B93B10),
2546           UINT64_C(0xBBE51BB3EFCFD2A3), UINT64_C(0x68BE03951844581D)}},
2547         {{UINT64_C(0xDECABD8C0EA1FAE1), UINT64_C(0xA7499225FDFED7C2),
2548           UINT64_C(0x08489E35FB468B83), UINT64_C(0x5B68934443D95F9C)},
2549          {UINT64_C(0x9FC8364A9D2F522E), UINT64_C(0x114DB31A3A5D27A4),
2550           UINT64_C(0xC6A35992E33A9EC8), UINT64_C(0x6FE9EC3BDC9ACAF6)}},
2551         {{UINT64_C(0x98AE2D66DEAFC64C), UINT64_C(0x95AAC8EFABE706B7),
2552           UINT64_C(0xB15A6604223DFA3B), UINT64_C(0x77DBC24AE24B43CB)},
2553          {UINT64_C(0x65D6F8718542FA2A), UINT64_C(0x1093B2735D326A1A),
2554           UINT64_C(0xBA82D607F137AFEF), UINT64_C(0x502B32E3B9DEA6A7)}},
2555         {{UINT64_C(0x88906BD6885CA6CE), UINT64_C(0x136ADF9A1D36BFEE),
2556           UINT64_C(0xF844088C09AA61E3), UINT64_C(0x4E508EA351BAC299)},
2557          {UINT64_C(0x251ACD26EB821936), UINT64_C(0xDF6AD7D543D90E10),
2558           UINT64_C(0xEBCD7046DE7F14B9), UINT64_C(0x1DB258B1AB503259)}},
2559         {{UINT64_C(0x348E301890AD5D55), UINT64_C(0x0EF6BE737067806A),
2560           UINT64_C(0x072C113441627FCC), UINT64_C(0x48EE7606E904F823)},
2561          {UINT64_C(0xEE6AB582D9FD5EF3), UINT64_C(0x57765D0317AB50BC),
2562           UINT64_C(0x1CCFB407FB7DEC68), UINT64_C(0x2E1771C7141DF51D)}},
2563         {{UINT64_C(0xCBDD6235A013284B), UINT64_C(0x4D93FD8720D07125),
2564           UINT64_C(0xB3D055B3D485418E), UINT64_C(0x4EFB8763C67ADD2D)},
2565          {UINT64_C(0xEC3693821B2DF427), UINT64_C(0x2500979164D0DDF4),
2566           UINT64_C(0x9BD42FFC163056C8), UINT64_C(0x605277925B88BEBA)}},
2567         {{UINT64_C(0x6D5D6A869D82DADF), UINT64_C(0xC3BA9A167C24A1CA),
2568           UINT64_C(0x838167EC2E6981CC), UINT64_C(0x7FB5D8577E1E4237)},
2569          {UINT64_C(0x83B2C2FC86A40BC7), UINT64_C(0x679D2DFC6F9AC4FB),
2570           UINT64_C(0x0B3714CDE45455EF), UINT64_C(0x1C8D833D394A7797)}},
2571         {{UINT64_C(0x1FBF89614E641C9D), UINT64_C(0x3330DAB0D951DFC8),
2572           UINT64_C(0x9D4EBA4D051D96DB), UINT64_C(0x27C6DBF023066924)},
2573          {UINT64_C(0xB950C648DA5D1D79), UINT64_C(0x544D46BA5E9CD783),
2574           UINT64_C(0xFA77226FE69BA3EF), UINT64_C(0x0A93D219E4DA8423)}},
2575         {{UINT64_C(0x7C377CC65BDCA76B), UINT64_C(0x7DF505D7DC58D194),
2576           UINT64_C(0x18A24C0B13E389E1), UINT64_C(0x5E0782DD6C3972FD)},
2577          {UINT64_C(0x97AD477E6680FCE1), UINT64_C(0x6B07BF223CBAB792),
2578           UINT64_C(0xB8DF3C73DC68C9E2), UINT64_C(0x33AB5A4CC04B2749)}},
2579         {{UINT64_C(0xD151C7627E79B5A7), UINT64_C(0xA4356B79C82C7B8A),
2580           UINT64_C(0x931DDDE896E0A2E2), UINT64_C(0x40378EB252C54FDC)},
2581          {UINT64_C(0xA6BBD5E340C24003), UINT64_C(0xB4F3246E65C34FEA),
2582           UINT64_C(0x780B21ED9C767A23), UINT64_C(0x5F1E95FE52BD7E83)}},
2583         {{UINT64_C(0x4F3453DFCF39F9C4), UINT64_C(0xA3E1CFD1B8CC2CA6),
2584           UINT64_C(0xE49BC49C4B898859), UINT64_C(0x4FFD7BD66C0BF055)},
2585          {UINT64_C(0x7DE7604CD139AD1B), UINT64_C(0x6973F5EB2A3CE8FE),
2586           UINT64_C(0xAC66FF97F9501ECC), UINT64_C(0x3D96F1E2A97D46CD)}},
2587         {{UINT64_C(0x70D5A0D06106EB96), UINT64_C(0x938E038F398C1FD9),
2588           UINT64_C(0xE66B70071F3A1AA9), UINT64_C(0x42BDB264F5BD9308)},
2589          {UINT64_C(0x4B3FD7545AF84957), UINT64_C(0x9E3E17FA4E27DC6B),
2590           UINT64_C(0x384FCACD51D8560B), UINT64_C(0x42F00D11F8068C09)}},
2591         {{UINT64_C(0x794C1E6A7D5897D5), UINT64_C(0x4901097FDF72DCA0),
2592           UINT64_C(0xDED5B1920B01E4C4), UINT64_C(0x364FF58226DD41E9)},
2593          {UINT64_C(0xA3F92DCC32FCA925), UINT64_C(0x8A1FB329207AA09A),
2594           UINT64_C(0xA9274BD3F512AE3A), UINT64_C(0x161C82BCC47B9007)}},
2595         {{UINT64_C(0x482ECE3B7AE1175F), UINT64_C(0x97CAC7E8BDD5DC6C),
2596           UINT64_C(0x562253099FDA910D), UINT64_C(0x52A9893B9FC206B9)},
2597          {UINT64_C(0xAD9F2A9205BB5ACA), UINT64_C(0xB9EEFB5BA3B65716),
2598           UINT64_C(0xE7BC173B8DB5A8D4), UINT64_C(0x6715EC64399DAE9E)}},
2599         {{UINT64_C(0x780796D15E41AC75), UINT64_C(0x3E165C784FB3A0B4),
2600           UINT64_C(0x198599BA237103E9), UINT64_C(0x2C04C3F5FA7ED86B)},
2601          {UINT64_C(0x29547DA8AC9356F0), UINT64_C(0xCB345AB479EADA37),
2602           UINT64_C(0x1D15D377A295BF2D), UINT64_C(0x10292C9D2FDC8131)}},
2603     },
2604     {
2605         {{UINT64_C(0xADF3B54740E1DC7E), UINT64_C(0x420CE2DD1C345D14),
2606           UINT64_C(0xC08E3CBE21DC5C2D), UINT64_C(0x79FDC0006F8FCE80)},
2607          {UINT64_C(0x23EBDF7FCB105CE7), UINT64_C(0x793FC99D7C6794A8),
2608           UINT64_C(0x4CA3FB21293E3575), UINT64_C(0x7FB2ACB97BF73CC8)}},
2609         {{UINT64_C(0x67DB6C900FC8FCD4), UINT64_C(0x22A3DF5F7EE3B705),
2610           UINT64_C(0xD50EBF8BC7B2EDFF), UINT64_C(0x0C70104599522FB7)},
2611          {UINT64_C(0x1420CF02AD4F9044), UINT64_C(0xD78DBA23E5B59451),
2612           UINT64_C(0xDFDC1C7F6AEFD853), UINT64_C(0x560DEE94DEA1DAAB)}},
2613         {{UINT64_C(0x0F2355132167A78B), UINT64_C(0xCF4637029F441927),
2614           UINT64_C(0xD0AE2723A3D1505C), UINT64_C(0x3149D858CD9FBFF4)},
2615          {UINT64_C(0x2A73913AF79240FA), UINT64_C(0xC904A575252A958B),
2616           UINT64_C(0x10D1819078473D97), UINT64_C(0x42CE7A38203BC8C4)}},
2617         {{UINT64_C(0x1D2AD4F2FA59BB8B), UINT64_C(0x8234964C79F137DD),
2618           UINT64_C(0x00B63A305D02679E), UINT64_C(0x506C45BE5DD7543D)},
2619          {UINT64_C(0x4378F900776BF80C), UINT64_C(0x179558B2B312F2BB),
2620           UINT64_C(0x5B15368CEA37C183), UINT64_C(0x7593B19FB198E42D)}},
2621         {{UINT64_C(0xED723535DEFA1F48), UINT64_C(0x0DAFC48B87F96EE5),
2622           UINT64_C(0x0AEFA3BA91B1B52C), UINT64_C(0x56BA1B33A1ADBEA4)},
2623          {UINT64_C(0x8A0B617030A6C905), UINT64_C(0xC5BA3518B272D12E),
2624           UINT64_C(0x782100CF4B6643A9), UINT64_C(0x12DEE80385C5BD2B)}},
2625         {{UINT64_C(0xDD07D2D578FCADD6), UINT64_C(0x8CB8E8A83B25C523),
2626           UINT64_C(0x25063508530919CF), UINT64_C(0x45D3DD541E24F7A1)},
2627          {UINT64_C(0x296AE89349DDAF96), UINT64_C(0x7EF3CDE0ACE559F5),
2628           UINT64_C(0x9CDF22E40D36F87B), UINT64_C(0x196847654AC9A845)}},
2629         {{UINT64_C(0x3955B5ABC597B7AE), UINT64_C(0x59F3BA053AB49731),
2630           UINT64_C(0xBCA5B117F525C6C8), UINT64_C(0x4969C13432050B8D)},
2631          {UINT64_C(0x353183D9970E8E49), UINT64_C(0x3D005213E95300CF),
2632           UINT64_C(0x595F9C8E09022378), UINT64_C(0x70FA8B471A445C28)}},
2633         {{UINT64_C(0xECC88EE3BADB79EA), UINT64_C(0x5BDAF68CFBD8464E),
2634           UINT64_C(0x24AF6A4CB4280334), UINT64_C(0x17A5DE8B398E5BBE)},
2635          {UINT64_C(0x300B6DEB92999E18), UINT64_C(0xA076691867DEFC2F),
2636           UINT64_C(0x4E904450B19F87FF), UINT64_C(0x3010AD94C2871056)}},
2637         {{UINT64_C(0x72E747A1461EFCC3), UINT64_C(0x329EDF18562F923E),
2638           UINT64_C(0x65E021D4D081A4E7), UINT64_C(0x4B2DBFFFB727B6F4)},
2639          {UINT64_C(0x5A597A809C8505AC), UINT64_C(0x13486480562B82D2),
2640           UINT64_C(0x477FD480CC8234C3), UINT64_C(0x6045ABA404800C00)}},
2641         {{UINT64_C(0x3E0874399C541035), UINT64_C(0x389AA76C6D9D8B6A),
2642           UINT64_C(0x68FE5E8336A21299), UINT64_C(0x67AC313D402A32CF)},
2643          {UINT64_C(0x996131D225501A53), UINT64_C(0x5C1B89DEA77A85F4),
2644           UINT64_C(0xA9822C84ED6702AD), UINT64_C(0x50F014A456609EA0)}},
2645         {{UINT64_C(0xF0F8B4E6E5A8E91E), UINT64_C(0x734CFF081A2FFEFD),
2646           UINT64_C(0x9724EE0B27BCB163), UINT64_C(0x6AF3808B30B8EF68)},
2647          {UINT64_C(0xE5B3829F126E88FC), UINT64_C(0x0F441EE34EE5FD4B),
2648           UINT64_C(0x534D2F8CBFEC4D34), UINT64_C(0x3E1F16DE076E6737)}},
2649         {{UINT64_C(0x4DB53E8A4ED36E6A), UINT64_C(0x49A9EFE94352B22F),
2650           UINT64_C(0x7829605C39CF005C), UINT64_C(0x190A8E16D85DB959)},
2651          {UINT64_C(0x699810699B073AB3), UINT64_C(0x8C264B878C141AA1),
2652           UINT64_C(0x7F614282603ED47C), UINT64_C(0x21FD2E7A9F9B0940)}},
2653         {{UINT64_C(0xC5CA10A01EC6BB3D), UINT64_C(0x9403E3F527A9B02B),
2654           UINT64_C(0x9D3D186DFB43F790), UINT64_C(0x7855276E67DC0C00)},
2655          {UINT64_C(0x053DBB2AFFFFB14C), UINT64_C(0x2674666343ACC0A6),
2656           UINT64_C(0x1EE7A9467FFC1C68), UINT64_C(0x14BFAF0156DBB0DE)}},
2657         {{UINT64_C(0x11C89A47849EA674), UINT64_C(0x194FAAF094A540E6),
2658           UINT64_C(0xE61163F86050E4C0), UINT64_C(0x6939A166B1A07B76)},
2659          {UINT64_C(0x8166CA8E2EF18325), UINT64_C(0x96112E6530C042E2),
2660           UINT64_C(0xA805CAE05A394C25), UINT64_C(0x45A0DE010392E6BB)}},
2661         {{UINT64_C(0xB89CEE96B4FAAA56), UINT64_C(0x7A7DC8AE529736DE),
2662           UINT64_C(0x9158AA49A727FCF7), UINT64_C(0x621B8B311896B9DA)},
2663          {UINT64_C(0x875930D603BEC74B), UINT64_C(0x1056DB45A7A50309),
2664           UINT64_C(0xEE713E04B5657B0E), UINT64_C(0x2D68155E6FCAD967)}},
2665         {{UINT64_C(0x3BB1E9E365B1E2B3), UINT64_C(0x2A61567088425BAB),
2666           UINT64_C(0x22F4F32F62F1BA4A), UINT64_C(0x7B5EC25088A59642)},
2667          {UINT64_C(0x7B5BA12A42D30049), UINT64_C(0x4E6AC05586995BE6),
2668           UINT64_C(0x04431A0445EC87AC), UINT64_C(0x28974ED7ED94823D)}},
2669     },
2670     {
2671         {{UINT64_C(0x5925805712BB5555), UINT64_C(0x03141CD8BB7608EE),
2672           UINT64_C(0x84EBDC49EF77714B), UINT64_C(0x6A45FC3AB5DC1A5F)},
2673          {UINT64_C(0x1F6DC2052FBEEC76), UINT64_C(0x17EB733BA920C554),
2674           UINT64_C(0xDB022C217A28ACDF), UINT64_C(0x6AF16156A9B62BF1)}},
2675         {{UINT64_C(0x9379D6A880B472CC), UINT64_C(0x6CB08CB07BD92F27),
2676           UINT64_C(0x19B3C353147E6E12), UINT64_C(0x3C26CB2F26827839)},
2677          {UINT64_C(0x98AAC9A70CC571E4), UINT64_C(0x075D05F2C3C8FC04),
2678           UINT64_C(0x718B55A0D79621AC), UINT64_C(0x149FEECF5B94B41B)}},
2679         {{UINT64_C(0x6A150A64783F9C81), UINT64_C(0x5950C2DF0FB18827),
2680           UINT64_C(0xF5D75504F15E3A89), UINT64_C(0x5F92F2F7FCB4406B)},
2681          {UINT64_C(0x665F31E76123E858), UINT64_C(0x4E568EA9A95184A3),
2682           UINT64_C(0x851EEADC505FF0AD), UINT64_C(0x62AD5BA6542C3EF8)}},
2683         {{UINT64_C(0x1103859DC55C23FD), UINT64_C(0x06AB0BD6695E4E9B),
2684           UINT64_C(0x2CD00D76DD734990), UINT64_C(0x5D59C693B06460E4)},
2685          {UINT64_C(0x3BA8F2F01F9C76DA), UINT64_C(0x08E4A7EC960F5C0E),
2686           UINT64_C(0x79C82AD9E4AAB060), UINT64_C(0x093D322C0DF95C43)}},
2687         {{UINT64_C(0x88AF12580C627547), UINT64_C(0x81E5F197889A5E12),
2688           UINT64_C(0x99E0E1917CBD84FD), UINT64_C(0x3024BCE8DB0B9711)},
2689          {UINT64_C(0x04075C80DB93B1A2), UINT64_C(0x12F30AF8628B0E63),
2690           UINT64_C(0xA3514F26EB25A4ED), UINT64_C(0x3D42E4897BCD0873)}},
2691         {{UINT64_C(0x0F1C16C6754B236F), UINT64_C(0x717CE487594F5D3D),
2692           UINT64_C(0x7679C7DAAFAD77B1), UINT64_C(0x51AFD0146F3E724C)},
2693          {UINT64_C(0xAFC9745C3AF6938F), UINT64_C(0xCA12BFA9C4E61CB4),
2694           UINT64_C(0x943B56969425CCA7), UINT64_C(0x5BD3E65EB6E48A69)}},
2695         {{UINT64_C(0x2D23CF78DEAE74B1), UINT64_C(0xA686767E043BF2F1),
2696           UINT64_C(0x3AFED34DE464ADE9), UINT64_C(0x1E4620735A6AE80B)},
2697          {UINT64_C(0xA86AA408737F7B66), UINT64_C(0xD67A0B49EAB3B6CE),
2698           UINT64_C(0x6FF3CA4F275355F3), UINT64_C(0x6F385576688F99AB)}},
2699         {{UINT64_C(0xC9B63343FD2F9A72), UINT64_C(0xBD0A126DAC267E8A),
2700           UINT64_C(0x818BD5D85D2839B5), UINT64_C(0x1BBAB4CE0BF5AFCE)},
2701          {UINT64_C(0x2827B24A4D8B67DE), UINT64_C(0x841F6BD3C34E6642),
2702           UINT64_C(0xE9F5C1C25E4A34D4), UINT64_C(0x4E98795CFDA4177C)}},
2703         {{UINT64_C(0x3C9FF1C20763AB04), UINT64_C(0x4FC1BE619832FCFD),
2704           UINT64_C(0x5FA50C388BD0363A), UINT64_C(0x14C9BB2FF26206BE)},
2705          {UINT64_C(0xAD1A96EB1D31880C), UINT64_C(0xF0A37BC465DFCF8A),
2706           UINT64_C(0x389627293D048FE4), UINT64_C(0x017125C06480B254)}},
2707         {{UINT64_C(0x01E819F598D4BAC6), UINT64_C(0xD3686E0436B99D30),
2708           UINT64_C(0x0C2876FB200A4A9D), UINT64_C(0x45D50C2FE65782D5)},
2709          {UINT64_C(0xB8316ECE865B7A21), UINT64_C(0xA3ADB90FCC875503),
2710           UINT64_C(0xD72E864E98468FB4), UINT64_C(0x13BB23FDDED21F40)}},
2711         {{UINT64_C(0x653C3C15C6B96368), UINT64_C(0x9A42FC2C2B9C381F),
2712           UINT64_C(0xF06B41B969534D92), UINT64_C(0x46F7292E3FB7BED2)},
2713          {UINT64_C(0x14A2C42097D1875E), UINT64_C(0x45DFA824D3B2DF55),
2714           UINT64_C(0x59CB7E593F2BA72D), UINT64_C(0x2EEC65C9D7D96C98)}},
2715         {{UINT64_C(0x907CD4C849650405), UINT64_C(0xFC29320A37E05E06),
2716           UINT64_C(0x99B4C1DF09E29619), UINT64_C(0x74E69BF834DE993F)},
2717          {UINT64_C(0x62C0F296509D9797), UINT64_C(0x2E6BD4E65F1EF554),
2718           UINT64_C(0xE30506410D0B71B8), UINT64_C(0x29DA0C9D235DDE6C)}},
2719         {{UINT64_C(0x3CFBCA4B689398C1), UINT64_C(0x11E5880440C9DF13),
2720           UINT64_C(0x3923A39BBCDF2489), UINT64_C(0x3805CCC7387C8089)},
2721          {UINT64_C(0xC1B4EB4870319AFA), UINT64_C(0x0A6A5FA4CA089604),
2722           UINT64_C(0x16ABDE5473139A20), UINT64_C(0x7C0055E094BD61B5)}},
2723         {{UINT64_C(0xA5AB5CEFCB05A02A), UINT64_C(0xC0B4E1B40BFE903B),
2724           UINT64_C(0xBA528329EAC9E7E8), UINT64_C(0x0266C5A70A2456B6)},
2725          {UINT64_C(0x507E9A415E216EEC), UINT64_C(0xFCC06B0AD0F1E440),
2726           UINT64_C(0x6FAEFC8EE5C7B26F), UINT64_C(0x4744CF2EB02F85C1)}},
2727         {{UINT64_C(0xF5E2B8121C291BFC), UINT64_C(0xC18E791D2CDCBF7A),
2728           UINT64_C(0xC386B96246554345), UINT64_C(0x373E00FB067518CD)},
2729          {UINT64_C(0xC9BA9DF9E950051B), UINT64_C(0x182CB132DD6133EE),
2730           UINT64_C(0xD6D7F81570A3C71C), UINT64_C(0x44C5AEBC7FAFE307)}},
2731         {{UINT64_C(0x6C7CE359A9D16080), UINT64_C(0xA874386D1E8B643E),
2732           UINT64_C(0xA064812907F48E10), UINT64_C(0x2A40220193E4D619)},
2733          {UINT64_C(0x8B429545BD383EA6), UINT64_C(0xC096D593F2880536),
2734           UINT64_C(0xB4057D6C20E299B9), UINT64_C(0x303962CE38A825FA)}},
2735     },
2736     {
2737         {{UINT64_C(0x9E426EBF1E1D70D0), UINT64_C(0x6AEA4DDCB83529CA),
2738           UINT64_C(0xF3ECD4627CC9A07C), UINT64_C(0x7F255C86C364772E)},
2739          {UINT64_C(0x0DF212CF5613BEF0), UINT64_C(0x771F02A91309F9D0),
2740           UINT64_C(0xE97BEE39805FE1F5), UINT64_C(0x54A43430D93522B9)}},
2741         {{UINT64_C(0xC01553BDCDE4EBBE), UINT64_C(0xB1928DDCA02E56C1),
2742           UINT64_C(0xB91004BA94A1A417), UINT64_C(0x44F74BE656CB9C88)},
2743          {UINT64_C(0x6A7E3E9B921B62E5), UINT64_C(0xF2BF553B5FBF13C4),
2744           UINT64_C(0x51CB776D86D55641), UINT64_C(0x71826BC56425A3AD)}},
2745         {{UINT64_C(0xD6D49F90C6D70EF9), UINT64_C(0x5BD0DA6929EBA0DD),
2746           UINT64_C(0x0BBA7571803233EF), UINT64_C(0x0EB0959E679A17D5)},
2747          {UINT64_C(0x97818DC2B8A3D6EC), UINT64_C(0x09497FB0C687EAA2),
2748           UINT64_C(0x2E2707EAA65FA4C0), UINT64_C(0x6A74D4C67542F472)}},
2749         {{UINT64_C(0x0D1930061EE0BC40), UINT64_C(0x7D7BEE196DC98BA8),
2750           UINT64_C(0x1AD37C98447C38D2), UINT64_C(0x3E163AE1B6B4550A)},
2751          {UINT64_C(0x734E36C95BC93243), UINT64_C(0x54E217FD986C35A8),
2752           UINT64_C(0xF0576FF09E3285E3), UINT64_C(0x65C950C8186EE7EB)}},
2753         {{UINT64_C(0x1AB12C042012D277), UINT64_C(0x97CAB84B83872384),
2754           UINT64_C(0x479C9CF51C66FCFD), UINT64_C(0x70ABC8B4F276933E)},
2755          {UINT64_C(0xE6B15BF7BA4D14F0), UINT64_C(0xF4060ED322E2F5D5),
2756           UINT64_C(0xA53F3CA0CDC5462C), UINT64_C(0x593219D4C6FC3854)}},
2757         {{UINT64_C(0x9DE6993472B6F8A1), UINT64_C(0xECABAEEE19E16B3F),
2758           UINT64_C(0x0B537CA5EDA68D7B), UINT64_C(0x744628BDD3CE55B7)},
2759          {UINT64_C(0x3A5B2D8E98A95308), UINT64_C(0x74D0CEF16758C6C8),
2760           UINT64_C(0x7538198ADA204834), UINT64_C(0x1E166AAAA644E880)}},
2761         {{UINT64_C(0xE76EE7124674ACF0), UINT64_C(0x40A6F6DEDF9DFB4C),
2762           UINT64_C(0x91B0034C40C65721), UINT64_C(0x54FE8B8BF8E0F5E5)},
2763          {UINT64_C(0x6322CA0F75891895), UINT64_C(0x3D1C821E7D20C522),
2764           UINT64_C(0x1691407F08043786), UINT64_C(0x02C3083814847D58)}},
2765         {{UINT64_C(0x57DEF069B8F0C372), UINT64_C(0x50375DC30D5ABF2C),
2766           UINT64_C(0x2290381475EDFBC9), UINT64_C(0x56E39BD7AE37695A)},
2767          {UINT64_C(0xAB74B187463D13F2), UINT64_C(0xC50CB8A23CDE8886),
2768           UINT64_C(0x1EFBD1CFB35F7D59), UINT64_C(0x1296C4821057AE42)}},
2769         {{UINT64_C(0xA350B57BC347E3FB), UINT64_C(0x4312EB75ADF65129),
2770           UINT64_C(0xD9A7E2F47F9A6C9E), UINT64_C(0x5493AF7B9BFDCB4D)},
2771          {UINT64_C(0x90A443DD9AC0E58E), UINT64_C(0x9777D58AC6F3BEEF),
2772           UINT64_C(0x12F00913965EC900), UINT64_C(0x2F6C5B59480126DA)}},
2773         {{UINT64_C(0x70B907FCBAD8C051), UINT64_C(0x54492D6AD3B4F608),
2774           UINT64_C(0xE3B46F1B2E096D9F), UINT64_C(0x522AD6D1747D472A)},
2775          {UINT64_C(0x8FCD161602DAB5E5), UINT64_C(0xD3BA292F357B1C85),
2776           UINT64_C(0xA6DB50CD2704F072), UINT64_C(0x63488DDF8341AA73)}},
2777         {{UINT64_C(0x99100A3D0FE2AAAB), UINT64_C(0x7D30C4E98EA44560),
2778           UINT64_C(0xBA458C672B4C776D), UINT64_C(0x2EC11420BBA4D85E)},
2779          {UINT64_C(0xB1D9FBA27A7AEC55), UINT64_C(0x432AB2AA7665AAE5),
2780           UINT64_C(0xD2755948F3BC7043), UINT64_C(0x2FC331BB82510EAD)}},
2781         {{UINT64_C(0xAAF11CF946253DB1), UINT64_C(0xEB025AEDB0DF307C),
2782           UINT64_C(0xCB7C22A57A82ADEE), UINT64_C(0x7316C3909C5FA97B)},
2783          {UINT64_C(0x91620554F518067C), UINT64_C(0x20A438AE3C96A804),
2784           UINT64_C(0xC4F9DCDF5B0C090C), UINT64_C(0x77C512DB6E5C1B45)}},
2785         {{UINT64_C(0xC981E682FDD09EDE), UINT64_C(0xC3EB36B7BBB3F57D),
2786           UINT64_C(0xA07369C6D12BF450), UINT64_C(0x16627566CE017845)},
2787          {UINT64_C(0xFD8DEC909494AF62), UINT64_C(0x7E79309653FD4B22),
2788           UINT64_C(0x21B8E665C8AAEAE9), UINT64_C(0x526FA31818BC33C0)}},
2789         {{UINT64_C(0xF55D32BF853A2647), UINT64_C(0xD873ED6CCDAEE8FE),
2790           UINT64_C(0xA3579E2B80E52622), UINT64_C(0x03871ABA33D16FE8)},
2791          {UINT64_C(0x714804AC69925EDF), UINT64_C(0x0340755FF2B964FF),
2792           UINT64_C(0x93830F98DA0D1A07), UINT64_C(0x2CAB201EF7FB1E16)}},
2793         {{UINT64_C(0x26DE3A3A22A8AF77), UINT64_C(0x0E77C3DCB45BA630),
2794           UINT64_C(0x34F00017FC86E7D1), UINT64_C(0x796ABE2F1B62F7F2)},
2795          {UINT64_C(0x9FA092771663B5B1), UINT64_C(0xFFFDC93F9B2FB9AC),
2796           UINT64_C(0x03AECD1A6B340D75), UINT64_C(0x5D55A168314DCCEA)}},
2797         {{UINT64_C(0x678AEF02747DBD0C), UINT64_C(0xF0D47C1CD47A6C09),
2798           UINT64_C(0x6C2AC72F3FDD1681), UINT64_C(0x750E70646D789D3A)},
2799          {UINT64_C(0x3F970AFEAEBEDD58), UINT64_C(0x6BBA7956E3540951),
2800           UINT64_C(0x7CC461B23E71F6AF), UINT64_C(0x7E51E548C45FED28)}},
2801     },
2802     {
2803         {{UINT64_C(0x4A598EFB2CE2CBE5), UINT64_C(0x774CDE0A89C9A51B),
2804           UINT64_C(0x2D003680CA907F34), UINT64_C(0x62C32DCA9D3C7D97)},
2805          {UINT64_C(0x37B3A90FB3054D17), UINT64_C(0x1423574C67E58A5A),
2806           UINT64_C(0xF1D3BB1A4859FA49), UINT64_C(0x25F0AF1C3F5AFA63)}},
2807         {{UINT64_C(0xD3BF7F621FE53AC9), UINT64_C(0xCE2B67C3CBCE6164),
2808           UINT64_C(0xE081C57695341024), UINT64_C(0x32B0EF5D9A70ECAB)},
2809          {UINT64_C(0x3EC93C853BE1E5CE), UINT64_C(0xE25F54EDA0CB7DCD),
2810           UINT64_C(0x9D6B57D7517965B2), UINT64_C(0x159F7AB0129B0B27)}},
2811         {{UINT64_C(0xAEF88E95EEFB67F3), UINT64_C(0xEAEB2889E0316AB2),
2812           UINT64_C(0x1491881FC2CB6753), UINT64_C(0x67DCDF28702789D0)},
2813          {UINT64_C(0x8282E0A711C0F3FD), UINT64_C(0x9CDCFDB801BA273D),
2814           UINT64_C(0x6BF1E04326279B95), UINT64_C(0x0D42AAC685852777)}},
2815         {{UINT64_C(0xC4CE393E608981AB), UINT64_C(0x210E20F852141CB0),
2816           UINT64_C(0x22C2586D6B9234B5), UINT64_C(0x52F1B3664366750E)},
2817          {UINT64_C(0xE38ED0D9760AFA55), UINT64_C(0xA43FF25AB5D61A08),
2818           UINT64_C(0x0BE3A406B5E21691), UINT64_C(0x37B47A28FD4E17B0)}},
2819         {{UINT64_C(0xC46DC6D44C2C65C2), UINT64_C(0x2A0B452CC54BE778),
2820           UINT64_C(0xAF113693F727070E), UINT64_C(0x7B229CD8C68D13A3)},
2821          {UINT64_C(0x0F63097E02D43E4B), UINT64_C(0x912F8D3355627FD8),
2822           UINT64_C(0x1EBF39612A0DD9AE), UINT64_C(0x7FD33FDEF0294B2D)}},
2823         {{UINT64_C(0xC72411F5D0CC6D9F), UINT64_C(0x66E04C909B92FF84),
2824           UINT64_C(0x0678B4F8E1C033B6), UINT64_C(0x5A99F270E49A972A)},
2825          {UINT64_C(0x3743BCD8D265A4DF), UINT64_C(0x7BD6DDF4CE0404C3),
2826           UINT64_C(0x4043767F131750A5), UINT64_C(0x4A7D89839DD65652)}},
2827         {{UINT64_C(0x535BC78412B7822D), UINT64_C(0xDD32DD67F1F9B703),
2828           UINT64_C(0xFFDBF0EB2EAA2A1C), UINT64_C(0x497C09FAF64E9822)},
2829          {UINT64_C(0x18E717E932EE2A36), UINT64_C(0xF01CC4F5583949B1),
2830           UINT64_C(0x222EE9740A168755), UINT64_C(0x0CD14CD500C81EC9)}},
2831         {{UINT64_C(0x7AE0BD1114C79CDC), UINT64_C(0x67323D1A6DC08C80),
2832           UINT64_C(0x2FD1ABC70EF32432), UINT64_C(0x65923246B0E08EBF)},
2833          {UINT64_C(0x0A9FD3D7C0754ECE), UINT64_C(0xE76B26245F8644FA),
2834           UINT64_C(0xF1F0BEBA0F8BB385), UINT64_C(0x73251F03FC96778F)}},
2835         {{UINT64_C(0x197150DED08795A9), UINT64_C(0xAD6935AEFBB8B9CF),
2836           UINT64_C(0x721186823B2B9EFB), UINT64_C(0x265B288DBC2B7240)},
2837          {UINT64_C(0x7BF2EB362F78C431), UINT64_C(0xF03B83CAF2A6E469),
2838           UINT64_C(0x211592564740E74B), UINT64_C(0x35BE57350490F0B9)}},
2839         {{UINT64_C(0x207F33B2806C1CAE), UINT64_C(0x04249127DAC5ADE0),
2840           UINT64_C(0xC4CCF33E1CC59DE7), UINT64_C(0x2A17B520272BD6D7)},
2841          {UINT64_C(0xC36F6B3CB48F6585), UINT64_C(0xD32A73790861ACF5),
2842           UINT64_C(0x28A12ECB2C3291C6), UINT64_C(0x0E945F95F02A88D0)}},
2843         {{UINT64_C(0x4836EC01D3B3117B), UINT64_C(0x4C197454A4C2FD72),
2844           UINT64_C(0x96FCED51F9897721), UINT64_C(0x142028585828C97D)},
2845          {UINT64_C(0xCA7ACED8774755B9), UINT64_C(0x460FF58297252559),
2846           UINT64_C(0xAAE457765796DD63), UINT64_C(0x711C916E346DDBF5)}},
2847         {{UINT64_C(0xA60E2E7B5E203692), UINT64_C(0xCFC72FEAF3BF2A45),
2848           UINT64_C(0x78729D2872AC0436), UINT64_C(0x3E16DD8B29ABF199)},
2849          {UINT64_C(0xB1705AA615A41F3D), UINT64_C(0x8C7512FE308AB87C),
2850           UINT64_C(0xA27411C503995381), UINT64_C(0x3142403CA780CED3)}},
2851         {{UINT64_C(0xE4473E94F1718C7F), UINT64_C(0x601BC194A3CAB6CB),
2852           UINT64_C(0x8F3540F8581D491D), UINT64_C(0x456A9B7C43C15321)},
2853          {UINT64_C(0x6F335A2D593BB7ED), UINT64_C(0xB6D5A23F7D791514),
2854           UINT64_C(0x976D2F8379235EAD), UINT64_C(0x7D02EA0F44775C97)}},
2855         {{UINT64_C(0x322DBC8CE5EC268E), UINT64_C(0x1F2F6050BE14BF5C),
2856           UINT64_C(0x58AC6397EACF6A50), UINT64_C(0x4167CBD5A5401081)},
2857          {UINT64_C(0x8E6F06A1EE5B4BF5), UINT64_C(0x1A6073D56B2F790F),
2858           UINT64_C(0x1C09FF3D4F901250), UINT64_C(0x286AF8D7E6B40DF4)}},
2859         {{UINT64_C(0xF74C805706BD53FF), UINT64_C(0x4FCE7281E5788F0D),
2860           UINT64_C(0xD6A867AC3D015E6B), UINT64_C(0x04AEC38D6E185A42)},
2861          {UINT64_C(0x8DC12B74083D65CB), UINT64_C(0xDB1AA8AC82966668),
2862           UINT64_C(0xBD2233BF28AF1B90), UINT64_C(0x544569A7172CCA11)}},
2863         {{UINT64_C(0x9C56FCA8149BD0BD), UINT64_C(0x2B4EC788A05F8E44),
2864           UINT64_C(0x1569CF6D92478943), UINT64_C(0x67E373E857380986)},
2865          {UINT64_C(0xF5CC8232ED3C14DB), UINT64_C(0xE3D184B0F52EAF83),
2866           UINT64_C(0x195D41370BC64038), UINT64_C(0x77994388778C3C20)}},
2867     },
2868     {
2869         {{UINT64_C(0x3DAA0C47A0CC77AA), UINT64_C(0xB9794E747C69CDF0),
2870           UINT64_C(0x3610E50B4549F5D4), UINT64_C(0x262CA564B8A112CA)},
2871          {UINT64_C(0xD5EC795E554E8714), UINT64_C(0x73EE5502717EBEF3),
2872           UINT64_C(0xE36E8A1A1947A478), UINT64_C(0x3FBE43A342ADC59D)}},
2873         {{UINT64_C(0x4DE78909021FBCBE), UINT64_C(0xA76A5EE20BBBB324),
2874           UINT64_C(0x5B86519ACD67810B), UINT64_C(0x4CCA44A23710A4EE)},
2875          {UINT64_C(0xD79A121DCD1F8BEC), UINT64_C(0x2E12A772DC9CA10E),
2876           UINT64_C(0xE301CA3B8C9E9640), UINT64_C(0x4B25FE18B731A957)}},
2877         {{UINT64_C(0xA05DA2CDF4AD7264), UINT64_C(0x31336489076977A5),
2878           UINT64_C(0xC1D269BEF2E576A8), UINT64_C(0x1E877ADC7532203F)},
2879          {UINT64_C(0x9C9961BC8B92972C), UINT64_C(0x7BA072726A14D810),
2880           UINT64_C(0xE51095A906913136), UINT64_C(0x4674896930E0EA8C)}},
2881         {{UINT64_C(0xDB8EF3463C73BA49), UINT64_C(0xBF2213123720570D),
2882           UINT64_C(0xC07B3639605DB0D6), UINT64_C(0x44FCEFA6300336A3)},
2883          {UINT64_C(0x121FAC5C2D234592), UINT64_C(0x901DEE8844E367D7),
2884           UINT64_C(0x5B5F3DD61CAA6A3A), UINT64_C(0x72E474ECAC2F6E64)}},
2885         {{UINT64_C(0x15690BEEF55BE61C), UINT64_C(0xE42B945EDF2678A2),
2886           UINT64_C(0x60A5C8AA3B7B1776), UINT64_C(0x16103FBCEB9AB938)},
2887          {UINT64_C(0x79722A1E87AD06AB), UINT64_C(0xD7B509F6D6B632A2),
2888           UINT64_C(0x8C4E8B2E3B69EB40), UINT64_C(0x6A50958314DB2225)}},
2889         {{UINT64_C(0x169F35D893B78659), UINT64_C(0x989B04D28EFF83AD),
2890           UINT64_C(0x72CF7338A6AE4806), UINT64_C(0x6E156C84F4AAA524)},
2891          {UINT64_C(0x33A608EDA1ED5CB2), UINT64_C(0xCE274A64C3D28716),
2892           UINT64_C(0xFCF1B17045F0435F), UINT64_C(0x101D1BDB1653D6F6)}},
2893         {{UINT64_C(0x45BC931D2E5A67D9), UINT64_C(0xAFF02C11697DA479),
2894           UINT64_C(0x7C7972A32EA3E6E1), UINT64_C(0x71A17D505E97BB90)},
2895          {UINT64_C(0x962E84F219AD4C5E), UINT64_C(0xBB8C9FC7692020BE),
2896           UINT64_C(0xA78FDF2CE7B36665), UINT64_C(0x7AC84ED426F92E33)}},
2897         {{UINT64_C(0xBD85A9EEC3C9E5C1), UINT64_C(0x72030BAA6ED2FD6A),
2898           UINT64_C(0xB67185AB39CFFB89), UINT64_C(0x3E2E51A4833BF770)},
2899          {UINT64_C(0x248FA3485E27D5BB), UINT64_C(0xF8D435962E6D3DCF),
2900           UINT64_C(0x07F5B93C0C8DAF81), UINT64_C(0x6A7FFA1DAD2FC97D)}},
2901         {{UINT64_C(0xFF308FAEFAEA33F1), UINT64_C(0x5F29DFFB3CC4C7CF),
2902           UINT64_C(0xB9AD4527ECC5A2B9), UINT64_C(0x08B95AF6048D4B38)},
2903          {UINT64_C(0x56BC43A8DEC152BB), UINT64_C(0xD1147B9A3849D869),
2904           UINT64_C(0xFE5020C2D02AF3B7), UINT64_C(0x54C02B44B918496E)}},
2905         {{UINT64_C(0x1611ECFD0B27468D), UINT64_C(0x4AFCE3290513A562),
2906           UINT64_C(0x982782FD2FE74EED), UINT64_C(0x66AC58BF17ADD2EA)},
2907          {UINT64_C(0x8277BC2D613581D4), UINT64_C(0x0BF5BF0C988D1498),
2908           UINT64_C(0x8A37134D55C984CB), UINT64_C(0x409A79CC92211390)}},
2909         {{UINT64_C(0x8C0081AE816F0462), UINT64_C(0xB431DC245A68BFC2),
2910           UINT64_C(0x25C769C65F78C8A1), UINT64_C(0x3BE0458DB382AF14)},
2911          {UINT64_C(0x10583083A171ADF2), UINT64_C(0xBA5D532537F7C39F),
2912           UINT64_C(0x76B03B945EAC7585), UINT64_C(0x76159AAC9C2DF2C6)}},
2913         {{UINT64_C(0x886C73BA918E0332), UINT64_C(0xF6FEC62AD24B5B52),
2914           UINT64_C(0xB98759B436B4D23A), UINT64_C(0x5EC5B3FE5480ACF3)},
2915          {UINT64_C(0x30FF297D6DD175BF), UINT64_C(0x501DE74475F2B9C3),
2916           UINT64_C(0xDEBE47CAF19230C5), UINT64_C(0x7401F20932BBBB62)}},
2917         {{UINT64_C(0x80712E4722496D1E), UINT64_C(0x36A0EF37DA80AF1D),
2918           UINT64_C(0xAF6CA51C940E5E9F), UINT64_C(0x74E17B6F722D9D22)},
2919          {UINT64_C(0xCB70B878B8B3AE1B), UINT64_C(0xBF8B9A0B07DF974C),
2920           UINT64_C(0x89FCC996F68A4BF4), UINT64_C(0x46F581E86EB0FB2E)}},
2921         {{UINT64_C(0xBCE0BD6C67137153), UINT64_C(0xAD3E92B375F64B78),
2922           UINT64_C(0x6454CD1DFD047DD9), UINT64_C(0x181C93EB612AE472)},
2923          {UINT64_C(0xE575307E23A529C3), UINT64_C(0xB9C43A0B59C09EB5),
2924           UINT64_C(0xFD233A68AA805840), UINT64_C(0x067C442EA122FFB9)}},
2925         {{UINT64_C(0xE1F3F76F2CD6762E), UINT64_C(0xFB68650F9764B53A),
2926           UINT64_C(0x4E90AC72F1224580), UINT64_C(0x2BF68F01127EED48)},
2927          {UINT64_C(0xE6B4B40994D389A0), UINT64_C(0xD7BC8108D44593D6),
2928           UINT64_C(0xDCF0399148A86677), UINT64_C(0x4A52D961CEBCE3C7)}},
2929         {{UINT64_C(0x55734AB5BAA873EA), UINT64_C(0x506DE4CF7871F323),
2930           UINT64_C(0x7C3F8B00578612C0), UINT64_C(0x730D4B8A9243C9E8)},
2931          {UINT64_C(0xA3290689D385F6BD), UINT64_C(0xAF688C6A913596F5),
2932           UINT64_C(0x0A2D89B5B646BE23), UINT64_C(0x31891165F63A6029)}},
2933     },
2934     {
2935         {{UINT64_C(0x331F9E57579583C0), UINT64_C(0xE92ABADF69C65DA2),
2936           UINT64_C(0xC796FBECA5B8B057), UINT64_C(0x52E6F9C9312D1E89)},
2937          {UINT64_C(0x0318B1DFDA68DFD3), UINT64_C(0x8BAA2EB3A1CAC4F1),
2938           UINT64_C(0x0CDC89A2BEE7D6E1), UINT64_C(0x6102DE7A22AB50F4)}},
2939         {{UINT64_C(0x02003D83E20C707A), UINT64_C(0xD819249C28289D89),
2940           UINT64_C(0x3FBC00B172053FF8), UINT64_C(0x0249C43CDF40D261)},
2941          {UINT64_C(0x8794EEACD8F064AF), UINT64_C(0xE2359E70DC9F0631),
2942           UINT64_C(0xD1603647ADA310D0), UINT64_C(0x6A9E3785EDC888EC)}},
2943         {{UINT64_C(0xF332B384EC41908E), UINT64_C(0xF3274472BDE4760B),
2944           UINT64_C(0x96185E89140D0EF4), UINT64_C(0x5646208990E698E7)},
2945          {UINT64_C(0x841A31C5F2E64396), UINT64_C(0x8F494CA503C4118F),
2946           UINT64_C(0x0C98A4C31A188305), UINT64_C(0x1C4B5F6298AAB1AB)}},
2947         {{UINT64_C(0xDDEEEBF85D0D8381), UINT64_C(0xD1616F4889044363),
2948           UINT64_C(0x2EE41D4721616A13), UINT64_C(0x2DCE61104BC769FC)},
2949          {UINT64_C(0xE3707A0116C1C468), UINT64_C(0x3B674187969AF612),
2950           UINT64_C(0xB64BD4D71E0671CC), UINT64_C(0x7EF01DBAB98C297C)}},
2951         {{UINT64_C(0x91DCBF99815381AC), UINT64_C(0x8D711F5838B67B97),
2952           UINT64_C(0x9C11F5959C6E322C), UINT64_C(0x4A688D0BE31A782F)},
2953          {UINT64_C(0x1297D9F3DCE93F5B), UINT64_C(0xA79561947C1DC62A),
2954           UINT64_C(0x340F217A5F718F63), UINT64_C(0x71F84529FCC0EF6A)}},
2955         {{UINT64_C(0x0D968E503DD00963), UINT64_C(0x5E696D79D7FF66C3),
2956           UINT64_C(0xAA52D60D499A9BE2), UINT64_C(0x72482C45CDC289DE)},
2957          {UINT64_C(0xC84968F57FFAAD3A), UINT64_C(0xEE91304CF7CD5BED),
2958           UINT64_C(0x684936760A7CC7C0), UINT64_C(0x3411AFA780023968)}},
2959         {{UINT64_C(0xA0AEBC706E3294C0), UINT64_C(0x93263942DC385E50),
2960           UINT64_C(0x7B90C0028467FB06), UINT64_C(0x29477CA438CFD0FF)},
2961          {UINT64_C(0xADC04D8192A748D5), UINT64_C(0xAE4F309D76CF3AE5),
2962           UINT64_C(0xBDA34BF04BB2C2FF), UINT64_C(0x65138897368536E4)}},
2963         {{UINT64_C(0x9CB8F7D66FE6D4D6), UINT64_C(0x6C2FFBF5AF246792),
2964           UINT64_C(0xD5A4F34981524707), UINT64_C(0x3AFE45CE36766D5E)},
2965          {UINT64_C(0x41991B49513BA267), UINT64_C(0x06EF1EEA6C18AA5E),
2966           UINT64_C(0x0A51763588EA2099), UINT64_C(0x32D2B5E2D245B88B)}},
2967         {{UINT64_C(0xAE38CDD53F517C5B), UINT64_C(0x1C94FDC5D878FEEE),
2968           UINT64_C(0xABF7A41DBEFCE107), UINT64_C(0x33BF3FE9D408DFE8)},
2969          {UINT64_C(0x4F2E6FF0947CB8C4), UINT64_C(0x3A8E86ABF998C5A0),
2970           UINT64_C(0x3ADC6ABAE359209F), UINT64_C(0x37A2DE1BD9A50051)}},
2971         {{UINT64_C(0x424F4E34E718F6B9), UINT64_C(0x50B1A03B75C58EB6),
2972           UINT64_C(0xB949531491390E27), UINT64_C(0x4AE0CC3A880E78D8)},
2973          {UINT64_C(0x10331AFAF1E4413C), UINT64_C(0xE7A3E554DDFCD2F0),
2974           UINT64_C(0x44F6DE850EBF484B), UINT64_C(0x6A762A7E895D0F54)}},
2975         {{UINT64_C(0x8E606B0A8D0558F6), UINT64_C(0xAADA76045C4DD930),
2976           UINT64_C(0x5B2FC7ADEF4ACAD0), UINT64_C(0x0D969AD087F5B6E2)},
2977          {UINT64_C(0xF9A182B25974E67B), UINT64_C(0xCD8232E723B4009A),
2978           UINT64_C(0x3D8F5DDD285BCC3F), UINT64_C(0x114AC56FEEE1B9BF)}},
2979         {{UINT64_C(0xD3EA1B56AA45085A), UINT64_C(0x5DE7BB70D314CEDF),
2980           UINT64_C(0x8A74384C7BCCDCFD), UINT64_C(0x64B80F8A8E0E0367)},
2981          {UINT64_C(0xA9EA432B48884ED1), UINT64_C(0x51957A8F8C0BA810),
2982           UINT64_C(0x9E88340039E810E3), UINT64_C(0x0A73ED5A28B2051C)}},
2983         {{UINT64_C(0x655212A313C30826), UINT64_C(0xAE53668EB73E8660),
2984           UINT64_C(0x6C33B649FF108CCE), UINT64_C(0x39E0B11821D49681)},
2985          {UINT64_C(0xFE4D215270525312), UINT64_C(0x2EDCE32BFFD18749),
2986           UINT64_C(0xFED19B1CB04D3FB8), UINT64_C(0x4DFE216B2B225A9D)}},
2987         {{UINT64_C(0x583E8A6C4C70F8A8), UINT64_C(0xC8206231954A9AE1),
2988           UINT64_C(0x9360B592B76517B1), UINT64_C(0x362C5C5CEED10CCA)},
2989          {UINT64_C(0x3DBA95953D607921), UINT64_C(0x0188A5D65A6ECC40),
2990           UINT64_C(0x0EAB43C16CFF4ADE), UINT64_C(0x1F3673AEDE3347E0)}},
2991         {{UINT64_C(0x7300C4B3796593EE), UINT64_C(0x607E7E76D8D926C3),
2992           UINT64_C(0x1762CE2677F9FD06), UINT64_C(0x0D0478B3CEA891EB)},
2993          {UINT64_C(0xB11297912618B09E), UINT64_C(0x5F9D290D33F928C9),
2994           UINT64_C(0xE3192631E6178DB0), UINT64_C(0x21260AC808576D3F)}},
2995         {{UINT64_C(0x899DAF2A76968E1C), UINT64_C(0x0519DEA9F9C2B3E7),
2996           UINT64_C(0x5FDADC3893D0BD4E), UINT64_C(0x0467BFF743B4D98F)},
2997          {UINT64_C(0x651C316C6F3936C9), UINT64_C(0xE757689AAF27DF8B),
2998           UINT64_C(0x3AB037EAA0FA9188), UINT64_C(0x2F8B039BD927B60A)}},
2999     },
3000     {
3001         {{UINT64_C(0x72211BF5DE876A70), UINT64_C(0xA836163173D121CE),
3002           UINT64_C(0x2385272123D419E4), UINT64_C(0x3F56D47EDBD03345)},
3003          {UINT64_C(0xFB0E91A5D6F05BAC), UINT64_C(0xA0E02BF6AC9D0F46),
3004           UINT64_C(0x5ED9EA2C97F1812F), UINT64_C(0x172F564FEBD5DB5A)}},
3005         {{UINT64_C(0xC790E91281F11E58), UINT64_C(0x14A1763099A5DFF7),
3006           UINT64_C(0xF6F30F2F1627516D), UINT64_C(0x522CAD8FEFCF43B7)},
3007          {UINT64_C(0xFFADD45E6EA01128), UINT64_C(0x5D23234CD61D1964),
3008           UINT64_C(0xE9212C852802DF86), UINT64_C(0x0A3D237B92AA8DA3)}},
3009         {{UINT64_C(0x2CED05F4E50ED356), UINT64_C(0x1CBC7FB1BFFEEF3A),
3010           UINT64_C(0x885991B1BE19F0F0), UINT64_C(0x6DED0794DE44A492)},
3011          {UINT64_C(0x9967E83444CBECFC), UINT64_C(0xB0674A8D6A792ED1),
3012           UINT64_C(0x360E2DE4B7DDD557), UINT64_C(0x26852A7470E95D26)}},
3013         {{UINT64_C(0x8CBC15203A6E2116), UINT64_C(0xF09327DFBF285BBE),
3014           UINT64_C(0x8C7D9AD54A54D3C5), UINT64_C(0x778F54E66BD2768F)},
3015          {UINT64_C(0x09B489F88FF3DBC0), UINT64_C(0x0A0FA7FBD2871932),
3016           UINT64_C(0xABB9DC38E0A8CEC4), UINT64_C(0x2EE092D821E37A50)}},
3017         {{UINT64_C(0xBB9256E7AF6D88D8), UINT64_C(0x3CDCB1CB0A218927),
3018           UINT64_C(0x8E5B744AF216D6E6), UINT64_C(0x6F0617F2BC885AFD)},
3019          {UINT64_C(0xFBA9CDA7268397D5), UINT64_C(0xC61547165D4C75D8),
3020           UINT64_C(0x9ED8D17B43FB2CD2), UINT64_C(0x4D0CE3FBBE45BC5C)}},
3021         {{UINT64_C(0x4259BB02A38472F5), UINT64_C(0xFAFAAE0315107D0E),
3022           UINT64_C(0x2B8E450ECF0CF2B6), UINT64_C(0x788674C3ED887C3A)},
3023          {UINT64_C(0x1F3EBD594B3D2EAC), UINT64_C(0x82CB568475E41B55),
3024           UINT64_C(0x005AB76BC02BE49A), UINT64_C(0x6F13ADD2F5F90FEE)}},
3025         {{UINT64_C(0x0116374A7AFA7161), UINT64_C(0x8A1AE4482DB7F824),
3026           UINT64_C(0xD3C0DA12DB656A22), UINT64_C(0x7B095B95B989204D)},
3027          {UINT64_C(0x24C35202EF8F21CA), UINT64_C(0x91088DA72DA5A5A1),
3028           UINT64_C(0xAAF1944BE3F97D68), UINT64_C(0x245D28487C884134)}},
3029         {{UINT64_C(0xD80C65D668F5C702), UINT64_C(0xE2FE245F021A2974),
3030           UINT64_C(0xFB8520E03A11899C), UINT64_C(0x4806D1FA2BE6BF88)},
3031          {UINT64_C(0xF6F8C11A20ED235F), UINT64_C(0x52AC14247F0D651E),
3032           UINT64_C(0x44C3C89FDB9CF6D6), UINT64_C(0x6762516DB2E2E41F)}},
3033         {{UINT64_C(0x2743D874FDE91600), UINT64_C(0x60975FD5CDF00100),
3034           UINT64_C(0x78ACC8642D2954F4), UINT64_C(0x46B9E60256373454)},
3035          {UINT64_C(0x7586A9706F0FB867), UINT64_C(0x888E3677242DF35A),
3036           UINT64_C(0x5A639E79F1460F62), UINT64_C(0x1256517E55297DBC)}},
3037         {{UINT64_C(0x3F78339B7B9294C3), UINT64_C(0x5BA765D1BCE77012),
3038           UINT64_C(0xA88E0CD8512E39E2), UINT64_C(0x2D63E14BF6BA6A6A)},
3039          {UINT64_C(0xF849A163EA29071B), UINT64_C(0xF32519B74C0A2E22),
3040           UINT64_C(0xEA5D1315561C35F5), UINT64_C(0x7041F515D9267DCA)}},
3041         {{UINT64_C(0xE01E839F1FE56E6B), UINT64_C(0x3E473D8C4A93CE88),
3042           UINT64_C(0xC4846ECF89AAFDAE), UINT64_C(0x4111D97A07D946EA)},
3043          {UINT64_C(0xC20881F651A45F02), UINT64_C(0x14C2AC95B9CD841A),
3044           UINT64_C(0x2FBE8329F2CBD929), UINT64_C(0x1E8B7469C812608B)}},
3045         {{UINT64_C(0xB36A5D03007F0A5D), UINT64_C(0xA7E7A1A85DCF7AF4),
3046           UINT64_C(0x7227F4C5BEB12AFB), UINT64_C(0x462277924D276783)},
3047          {UINT64_C(0x9EA64D4C48403B93), UINT64_C(0x58EA31BC0B333ED5),
3048           UINT64_C(0x2D6DD219C5C93119), UINT64_C(0x385023A745069280)}},
3049         {{UINT64_C(0x8AB9B9EAF60C46AF), UINT64_C(0xFA1D3F08E8B827C2),
3050           UINT64_C(0x78C6BFBC1BAD41DB), UINT64_C(0x527A0BED23BE0C1E)},
3051          {UINT64_C(0x66212FD26ACCE641), UINT64_C(0x86125B0DEE6F78E7),
3052           UINT64_C(0xA2A0271858552A8C), UINT64_C(0x594F2B777E9605C5)}},
3053         {{UINT64_C(0x3FB1F6CF88A27989), UINT64_C(0xBC4962F7D96268B8),
3054           UINT64_C(0xBD8761E9B95E2A36), UINT64_C(0x64AB934A046DEC63)},
3055          {UINT64_C(0xC64D1C592E53CF1A), UINT64_C(0xC9865A9B578C5E8C),
3056           UINT64_C(0x5ECA62327A0359DE), UINT64_C(0x127DD136FB4685E5)}},
3057         {{UINT64_C(0xB0F7B0711AE320C9), UINT64_C(0x09BF89BB52525203),
3058           UINT64_C(0x97B20027709C5692), UINT64_C(0x16A62485EDBF6175)},
3059          {UINT64_C(0x32C18836394C50F9), UINT64_C(0x7D99468FD3B98C19),
3060           UINT64_C(0x8EBE50962E8D2729), UINT64_C(0x4E75B3CCE655F093)}},
3061         {{UINT64_C(0xCBEFD1A29EAE827E), UINT64_C(0xDE2D1234FBF4630D),
3062           UINT64_C(0x1B3ADCF896086CDA), UINT64_C(0x43D3960E2EA6CBA7)},
3063          {UINT64_C(0x18321D1D1CB5A0F7), UINT64_C(0xDC94C6F947BEABB4),
3064           UINT64_C(0xFBACC6D575AF6AB7), UINT64_C(0x0EE5D35789B98E86)}},
3065     },
3066     {
3067         {{UINT64_C(0x3F01B4AA062E0994), UINT64_C(0x994B28B05C952259),
3068           UINT64_C(0x2678F8B80CDEEC70), UINT64_C(0x4D06AF84212436F3)},
3069          {UINT64_C(0xE9DF52FD1CF27A98), UINT64_C(0xD56B9FD10B7718F7),
3070           UINT64_C(0x728BE624D9AEDA0D), UINT64_C(0x098710881A646888)}},
3071         {{UINT64_C(0xB1BC922D9B586B13), UINT64_C(0x6C084C543CA3B1BA),
3072           UINT64_C(0x54D196C7CF322698), UINT64_C(0x06EC3A5585D527E1)},
3073          {UINT64_C(0x069187102A57CAA1), UINT64_C(0x6AEAC07D65FD0F6B),
3074           UINT64_C(0xB66A34D70F512F84), UINT64_C(0x3860C002A44E6452)}},
3075         {{UINT64_C(0x17263B260881608A), UINT64_C(0x78D556AA56C18A7A),
3076           UINT64_C(0xA0826A1CAC3A47AB), UINT64_C(0x61686A58B6933FF5)},
3077          {UINT64_C(0xEA9D8771DBCF2C4F), UINT64_C(0x1C66EB026AB00426),
3078           UINT64_C(0xF8DAED2B401C466A), UINT64_C(0x1ED0A99ADAAE8040)}},
3079         {{UINT64_C(0x31EFFC4B7208E58A), UINT64_C(0x28868456B4E4319E),
3080           UINT64_C(0x1059C249D46AC4DA), UINT64_C(0x3589D2122279B362)},
3081          {UINT64_C(0xB28B8FAD45552E92), UINT64_C(0xC9E32541C3AB8098),
3082           UINT64_C(0x82604904F14B35A1), UINT64_C(0x1E64A89FDB68C214)}},
3083         {{UINT64_C(0xDF0E223DAB6947AF), UINT64_C(0xE74EF1D6771670D0),
3084           UINT64_C(0x70A9AD21F429F03B), UINT64_C(0x7CB1FA1F1385B8DC)},
3085          {UINT64_C(0x25ABC0A769053D24), UINT64_C(0x207FE30A6369D02E),
3086           UINT64_C(0x57B76E3CC6E4EC2C), UINT64_C(0x2E03D2E3B927CAB2)}},
3087         {{UINT64_C(0xEFA377FF622D57AE), UINT64_C(0x41532F56A885951A),
3088           UINT64_C(0x5ED89AA7CC69B9A8), UINT64_C(0x60BFF2EC295F5E84)},
3089          {UINT64_C(0x411D65C31E5C3041), UINT64_C(0xDB533F8B4B7772F8),
3090           UINT64_C(0x72CADEB63BDD4AEA), UINT64_C(0x0EC79DF27C49E454)}},
3091         {{UINT64_C(0x0C39332C81D0B84B), UINT64_C(0xA76A9A3A95FF472B),
3092           UINT64_C(0xD12FEB9931DB2BA6), UINT64_C(0x4AAB92223683E53A)},
3093          {UINT64_C(0x56CB18AF24FC6271), UINT64_C(0x671581D62544C72D),
3094           UINT64_C(0xCD136492FBD6F4D1), UINT64_C(0x6C2023183579EE09)}},
3095         {{UINT64_C(0xEDC5AF02C103C348), UINT64_C(0xDA32344E155A103D),
3096           UINT64_C(0xFF3A7679B0D1377E), UINT64_C(0x1609197268F02750)},
3097          {UINT64_C(0xD4C6360DD9E9C143), UINT64_C(0xE0ABA0EF968EE990),
3098           UINT64_C(0x5781687897E4C9AE), UINT64_C(0x5A4D167B9D63E32D)}},
3099         {{UINT64_C(0xB04BA52550E25802), UINT64_C(0x011DA36E66912F15),
3100           UINT64_C(0x08D8B68019E0A182), UINT64_C(0x66AA4AE82E462B0F)},
3101          {UINT64_C(0x3227C3A6E0B9D283), UINT64_C(0x9BF8C4D0F2B2B096),
3102           UINT64_C(0x1E51416CBA809EB7), UINT64_C(0x68411B752A67D346)}},
3103         {{UINT64_C(0xE55B134837A67F3B), UINT64_C(0x5E32D73C96484391),
3104           UINT64_C(0xC3F804D56256B91E), UINT64_C(0x67F17A4703B0783B)},
3105          {UINT64_C(0x2010EFEBDD2334AD), UINT64_C(0xBD9965B5B10FF052),
3106           UINT64_C(0x519CDA6DF58ACA52), UINT64_C(0x045BEEBE2FD3D394)}},
3107         {{UINT64_C(0x81722E2CEA271BCD), UINT64_C(0x393C082E0A4F1342),
3108           UINT64_C(0x573F7CD553B345CE), UINT64_C(0x7AD71FE23D7B4292)},
3109          {UINT64_C(0xDA406D0ADA8BECB8), UINT64_C(0x14FD41CA82FE66BC),
3110           UINT64_C(0x80A410620A91DFFC), UINT64_C(0x33E38E10F4F0CDEB)}},
3111         {{UINT64_C(0x0234BF382529532C), UINT64_C(0x9F5D6342A76CAE3B),
3112           UINT64_C(0xC9944CB3B3C50442), UINT64_C(0x51752DF08ABFAF17)},
3113          {UINT64_C(0x2BFA58C4A37B13FB), UINT64_C(0x19F80FDEDDB14951),
3114           UINT64_C(0xDC7026AA7DCB927B), UINT64_C(0x57907272AAB9FCBA)}},
3115         {{UINT64_C(0xCE38712DF3C046C2), UINT64_C(0x21D1FDB047B29D0E),
3116           UINT64_C(0x7F746E0ECD96D414), UINT64_C(0x72F07B52636CFEA4)},
3117          {UINT64_C(0x0D8FE94FECE6382D), UINT64_C(0x9BFB4CBA24229CA4),
3118           UINT64_C(0xFAE55B77E54388B0), UINT64_C(0x074EBC32A188299F)}},
3119         {{UINT64_C(0x8AF2EBCDE21DCCA2), UINT64_C(0x9916A6B6377487F2),
3120           UINT64_C(0x607DC19AD8051D40), UINT64_C(0x7DFD53F4419DDE12)},
3121          {UINT64_C(0xD17D0D619AD07924), UINT64_C(0x14F7CE0F173E266B),
3122           UINT64_C(0x687FB8530281C9EB), UINT64_C(0x6B35CC1A3361B273)}},
3123         {{UINT64_C(0x7CD6369E16E02DE3), UINT64_C(0x118EE0B11F35DFBC),
3124           UINT64_C(0x7D8C8DBD98B3EE60), UINT64_C(0x039806FC8D29EA17)},
3125          {UINT64_C(0x3C473872EC2C2597), UINT64_C(0x81294AF45E4EF521),
3126           UINT64_C(0x5ED048DBC22A9D7C), UINT64_C(0x3879E95B0A08C4D4)}},
3127         {{UINT64_C(0x0206E47F96A864FE), UINT64_C(0xC94F137AA55D0631),
3128           UINT64_C(0x9C1B3D298E8408F8), UINT64_C(0x150A4046B9193A5E)},
3129          {UINT64_C(0x4E8F9345CB1ADF21), UINT64_C(0x6ED14D8A7BD5E1F9),
3130           UINT64_C(0x7082532960809F68), UINT64_C(0x0D2F1C3BFA85A06C)}},
3131     },
3132     {
3133         {{UINT64_C(0x3C5ABE75B5C810C3), UINT64_C(0xEA2C3EF9E28F1E26),
3134           UINT64_C(0xEEB1C5688BF68280), UINT64_C(0x5A165CEB7AE69110)},
3135          {UINT64_C(0xE36C646044550DF1), UINT64_C(0x6FB4B108DB909258),
3136           UINT64_C(0xBFA1427717D4D8C5), UINT64_C(0x744CAF23927976D8)}},
3137         {{UINT64_C(0xCBE70DF947EA55C7), UINT64_C(0x8F8119AE535457AE),
3138           UINT64_C(0x1E3C69EC7DAFD732), UINT64_C(0x1A2E162D39D409A2)},
3139          {UINT64_C(0xBD7576A15F81C227), UINT64_C(0xA040AF9EC86AC2C3),
3140           UINT64_C(0x5690C059C10FC749), UINT64_C(0x20B26E8849CFAEC6)}},
3141         {{UINT64_C(0x87AEBD1EE3EF781E), UINT64_C(0xBC794A621609A1F0),
3142           UINT64_C(0x96D8314226E7F61B), UINT64_C(0x5198577FFC51D17D)},
3143          {UINT64_C(0xBFB5FAE28E6D0124), UINT64_C(0x91A7172BFFD5BD72),
3144           UINT64_C(0x474B015402832847), UINT64_C(0x4BAF0B4C59827FEB)}},
3145         {{UINT64_C(0x5EADAA8EBA090294), UINT64_C(0x51401BC911A6E9FA),
3146           UINT64_C(0x78F117581D2594CD), UINT64_C(0x1811AD3082D203C2)},
3147          {UINT64_C(0x554CC39A53FD07CC), UINT64_C(0x055FC983C7A05601),
3148           UINT64_C(0xB3B34E95D5A80B4B), UINT64_C(0x72B4CF941819BC16)}},
3149         {{UINT64_C(0x0750E4F0514FAFD0), UINT64_C(0x297D27E6AD61C7B1),
3150           UINT64_C(0x701D743FA2D5D410), UINT64_C(0x535DD97BC83B55C9)},
3151          {UINT64_C(0x2EE96DDE1CB11BB0), UINT64_C(0xECEA32EA0914450F),
3152           UINT64_C(0x4FB812364CDBDA6A), UINT64_C(0x5B75B6B2233C8063)}},
3153         {{UINT64_C(0xF0A934A6D69D6C6A), UINT64_C(0x313E89773CC80AC9),
3154           UINT64_C(0x74692B171E428B71), UINT64_C(0x0474FEFCE1BE662D)},
3155          {UINT64_C(0xAA2FF6DBAFFBF61B), UINT64_C(0xCE1594E1776983AF),
3156           UINT64_C(0xF00C665B4D5A2596), UINT64_C(0x30DD24497D414B9A)}},
3157         {{UINT64_C(0xEF862DA2ACC44AB3), UINT64_C(0xBAD6857F6EE7A44A),
3158           UINT64_C(0x57674BF9D2F9027E), UINT64_C(0x4D771CC32ABF816E)},
3159          {UINT64_C(0x27BEFC18AC0F1348), UINT64_C(0xD83112EF5E4F1202),
3160           UINT64_C(0x3571BDE38E9AAAE5), UINT64_C(0x07284830C1379B13)}},
3161         {{UINT64_C(0xA4C2F36F72A8890C), UINT64_C(0x22DF0E815824B392),
3162           UINT64_C(0x50FAD77F5E720240), UINT64_C(0x1D152A6903278F96)},
3163          {UINT64_C(0x25A3E92EA7D80F17), UINT64_C(0xBBF85B327EF32666),
3164           UINT64_C(0xBBB5568727222E52), UINT64_C(0x756D22A67582FE42)}},
3165         {{UINT64_C(0x0AE7493A9BC9EAED), UINT64_C(0x9185F53F0DDBB275),
3166           UINT64_C(0x1585D068C3DFDBA7), UINT64_C(0x543208A1562E2455)},
3167          {UINT64_C(0x4C417D81CBCF9535), UINT64_C(0xD2DC38D3E35DD6ED),
3168           UINT64_C(0x9DF1E014346F03A4), UINT64_C(0x65736E3FF0E772A6)}},
3169         {{UINT64_C(0x58684A7BCFB7FF06), UINT64_C(0x72CC4AFEC58E6316),
3170           UINT64_C(0x2CA9BF30A8BB508A), UINT64_C(0x61576519E2044C8C)},
3171          {UINT64_C(0xE78FAD3D8FF6D2B5), UINT64_C(0x6E5B839FA934C7B2),
3172           UINT64_C(0xC1F3D367FAFA9F9B), UINT64_C(0x637CC398F8B2AFA4)}},
3173         {{UINT64_C(0xD6FC1806FE2B2639), UINT64_C(0x1DB199B49E98A7F2),
3174           UINT64_C(0x0508763DC794F900), UINT64_C(0x363F1F7D3232E5AC)},
3175          {UINT64_C(0xDCF2AD74BBDBB351), UINT64_C(0x91F2EAF15A506BC6),
3176           UINT64_C(0xBDE8459EB850088B), UINT64_C(0x52DF883B3E1135AF)}},
3177         {{UINT64_C(0x12FD053AF93779DC), UINT64_C(0x3E3D87289E319E46),
3178           UINT64_C(0x4D631005E5E360AE), UINT64_C(0x4A8B5683B1B29A30)},
3179          {UINT64_C(0x305E5E53A8CA45EF), UINT64_C(0x59EACB45C2914843),
3180           UINT64_C(0x83677B7A1988ECEA), UINT64_C(0x63D9CD36D6FD53E8)}},
3181         {{UINT64_C(0xDF2DACF2B77EB45F), UINT64_C(0x3C1303E355BBA70E),
3182           UINT64_C(0x5AB8EB424526A06C), UINT64_C(0x4D4FD2167FE06BBC)},
3183          {UINT64_C(0x98C5ADCFE1486ABC), UINT64_C(0x9A503BFF07F86F3A),
3184           UINT64_C(0x7CEBAECB56282E44), UINT64_C(0x4FB090371F230DA0)}},
3185         {{UINT64_C(0xD1A3738427210752), UINT64_C(0xD10794D602CF1C74),
3186           UINT64_C(0x48A2095A820CC08C), UINT64_C(0x6DCDDE2EE3284B9D)},
3187          {UINT64_C(0xB8C7203E5D40510D), UINT64_C(0x957E89825385E3A7),
3188           UINT64_C(0xD220BE2FE27D7C13), UINT64_C(0x2D104AC57B471B5B)}},
3189         {{UINT64_C(0x3B31D52BBA0AFA8D), UINT64_C(0xFA9639F5DCC85F88),
3190           UINT64_C(0x150146378861DDD7), UINT64_C(0x31C222DB7B5443B0)},
3191          {UINT64_C(0xE2618546C3CDD689), UINT64_C(0x7F3FB754D528A130),
3192           UINT64_C(0xA0915810AC5FAF99), UINT64_C(0x3863B890E9899CE5)}},
3193         {{UINT64_C(0xBDD42CA3579C4353), UINT64_C(0xAD30567D4D65CB5B),
3194           UINT64_C(0x0E343F216D91810B), UINT64_C(0x65E0092D42E19816)},
3195          {UINT64_C(0x76154DCCF84E8C8E), UINT64_C(0xBA147CA80BA4AE59),
3196           UINT64_C(0xCA8085E756A1A71E), UINT64_C(0x1D90B4B01A158536)}},
3197     },
3198     {
3199         {{UINT64_C(0x5C4B7438F8B6C26A), UINT64_C(0x0C17A41B645BBE80),
3200           UINT64_C(0xA386062D40CF3D85), UINT64_C(0x563E42D2E78F776D)},
3201          {UINT64_C(0x4BB8E3561F07459B), UINT64_C(0xF01A24B775D222CD),
3202           UINT64_C(0xBE3D032B24CF3F61), UINT64_C(0x759B01670AD5F3A3)}},
3203         {{UINT64_C(0x2F5AEBD17D201AAB), UINT64_C(0x7B14CBEEC0AE02AD),
3204           UINT64_C(0xB9B54430EDC6388B), UINT64_C(0x69E713FBB622E01F)},
3205          {UINT64_C(0x4630EE8EC5361565), UINT64_C(0x6705961E5C8FB479),
3206           UINT64_C(0x125CC97E07C2AA45), UINT64_C(0x4BC459F425AE3B12)}},
3207         {{UINT64_C(0xEF02549628CF94E4), UINT64_C(0x04CFAB259DB24DE6),
3208           UINT64_C(0x52B8C734C62254EF), UINT64_C(0x0F2FE922568AB164)},
3209          {UINT64_C(0x48551A05E3F39B40), UINT64_C(0x4A36865F31A7C7F6),
3210           UINT64_C(0x4486512C840441AE), UINT64_C(0x559C6CAF8C7C4B4D)}},
3211         {{UINT64_C(0xFCC0D1DA0F103030), UINT64_C(0x7A9F1D5539CD584E),
3212           UINT64_C(0x3EFB9B94681D0D37), UINT64_C(0x3AE97CCD4D842332)},
3213          {UINT64_C(0x85A8ECE13C03676B), UINT64_C(0x030F87753AD435A1),
3214           UINT64_C(0xF6019B4D7F2D73B5), UINT64_C(0x6B77E31A2F14F911)}},
3215         {{UINT64_C(0x65C8161B9186C671), UINT64_C(0x412C3CC7CDFF2F8C),
3216           UINT64_C(0xBFFC17192C2FEA33), UINT64_C(0x75DCF68BC3675845)},
3217          {UINT64_C(0x0476AFBF3B23D576), UINT64_C(0xB20CAEE219315F79),
3218           UINT64_C(0x1BC2A8590885471A), UINT64_C(0x410FF6CFC328279C)}},
3219         {{UINT64_C(0x327394D960569D94), UINT64_C(0xFF2AEB6A6EA39D95),
3220           UINT64_C(0x1BED71E8EA0CA3AE), UINT64_C(0x1000A81E21072A94)},
3221          {UINT64_C(0x368EA22973C02416), UINT64_C(0xDF5B2A420A4941BC),
3222           UINT64_C(0x4FFDC7B8D0D40B3A), UINT64_C(0x7B2C73F148ABAB4E)}},
3223         {{UINT64_C(0x90FE34E481EE1072), UINT64_C(0xAE7A2FF4310E13D8),
3224           UINT64_C(0x6213D3B1CAB3927C), UINT64_C(0x44936FBD7DC7E9EF)},
3225          {UINT64_C(0x3B898EF323A1BDBE), UINT64_C(0x3FA6C6A054CC7B1D),
3226           UINT64_C(0x41BCC3B5C6AC54F2), UINT64_C(0x1AB5D168DC10AE39)}},
3227         {{UINT64_C(0x1AED113CFEAF67A6), UINT64_C(0x04E3C7A1342AC459),
3228           UINT64_C(0x65A392787A99DFBC), UINT64_C(0x03ECBC6B642329FF)},
3229          {UINT64_C(0x799F4EC5A6A4421A), UINT64_C(0x44522C26BEE18B3C),
3230           UINT64_C(0x1C7BFF151975C4BB), UINT64_C(0x0FAA03BEE6A27857)}},
3231         {{UINT64_C(0x173AB9E00743FF7B), UINT64_C(0xB11187AE2CFC95AE),
3232           UINT64_C(0xCA81BB2E9C112049), UINT64_C(0x6B811DB6C03555D5)},
3233          {UINT64_C(0x76C1FC144FE32256), UINT64_C(0xDA8C5A96D0E47C4E),
3234           UINT64_C(0xB645D41329FDB01C), UINT64_C(0x78898447AC39502A)}},
3235         {{UINT64_C(0x4285FF329BF44B35), UINT64_C(0x207F9029E3358C7F),
3236           UINT64_C(0x0FE8F03263BAF4CE), UINT64_C(0x698A0398FF15E1F7)},
3237          {UINT64_C(0x548748437E572DF6), UINT64_C(0x746835199F43C07B),
3238           UINT64_C(0x47BAB49E0A433D6A), UINT64_C(0x09ED8740FAB5C858)}},
3239         {{UINT64_C(0x8AA5E5C91F6CA820), UINT64_C(0xAD290A94D3C25BEC),
3240           UINT64_C(0xDC4C67BF3BA255F0), UINT64_C(0x0D7EF7D91DEDD8A9)},
3241          {UINT64_C(0x0831A26F5EEFD1C3), UINT64_C(0x78CA66F504483E0C),
3242           UINT64_C(0x9D5A56122FAAC15A), UINT64_C(0x43B0C7E75D6FACDB)}},
3243         {{UINT64_C(0x34BA537C4503899D), UINT64_C(0x9DEBC8F52AF8ED3B),
3244           UINT64_C(0x396995E984F416E6), UINT64_C(0x77F10FEDC7BCE392)},
3245          {UINT64_C(0x065CCB721F8AF262), UINT64_C(0xE220ED60D2F00FC4),
3246           UINT64_C(0x41A5FB065EE25B46), UINT64_C(0x22505574DD9070B1)}},
3247         {{UINT64_C(0x571FF15144BFC5C0), UINT64_C(0xBE2558B83138363C),
3248           UINT64_C(0xB2211ABD605E356C), UINT64_C(0x0B6435DA176C5F53)},
3249          {UINT64_C(0xF18C917C8DCF484E), UINT64_C(0x45D4120CCD93D65F),
3250           UINT64_C(0xEBB0BF9C190AE7F8), UINT64_C(0x3D403DE28D8C8D5A)}},
3251         {{UINT64_C(0xCDE760B4BE656644), UINT64_C(0x99DC5E6D2D21DBC5),
3252           UINT64_C(0x644FCAF3B6232D08), UINT64_C(0x52955488859341E3)},
3253          {UINT64_C(0x3AB4580D25763919), UINT64_C(0x82AB0C534EF66999),
3254           UINT64_C(0xBD395C740180663E), UINT64_C(0x07974F1AB4756474)}},
3255         {{UINT64_C(0x8C15CFE731588EA6), UINT64_C(0x9629060EF36C882D),
3256           UINT64_C(0xDF8E8E9E862B080D), UINT64_C(0x0BD36B48D7A0C5BE)},
3257          {UINT64_C(0xEBD0C6C976DA047B), UINT64_C(0x4F0F08ABBB94FD5A),
3258           UINT64_C(0x33D41A4E74910D9F), UINT64_C(0x3D6F8D0BA9583754)}},
3259         {{UINT64_C(0xEC4C896E4E4FC72E), UINT64_C(0xB111210C002ECE31),
3260           UINT64_C(0x7204D9372AF11E21), UINT64_C(0x59B9C1EC5D0509E9)},
3261          {UINT64_C(0xBC97644CF9D5BBC0), UINT64_C(0x25B123AF31B4E869),
3262           UINT64_C(0x091D7AEC5A6CAAB0), UINT64_C(0x340B9E80ECC911C4)}},
3263     },
3264     {
3265         {{UINT64_C(0xE8036B20EC208406), UINT64_C(0xAF46A05A214CEB5A),
3266           UINT64_C(0x8672084A46CC8379), UINT64_C(0x7DE0A42F04BA7885)},
3267          {UINT64_C(0xB772BEDCC9D3F32A), UINT64_C(0x7DAE3680534B1520),
3268           UINT64_C(0x04CD6203EC7120CC), UINT64_C(0x032F88E3B4E99780)}},
3269         {{UINT64_C(0xB34BDA5CE4A0897E), UINT64_C(0xF7748B26379B2480),
3270           UINT64_C(0xF47F6646B2D97522), UINT64_C(0x66AD8DE1F9641DB9)},
3271          {UINT64_C(0x0F8EB919D1BF09C0), UINT64_C(0x7853BB4EB95DC052),
3272           UINT64_C(0xBE7EE13D62B1FD4A), UINT64_C(0x2FF7EDC5DC7CE53E)}},
3273         {{UINT64_C(0xE1009AA0EE81DF35), UINT64_C(0x14972F0261D0798B),
3274           UINT64_C(0x5A6831A0F1EA1A6A), UINT64_C(0x1DBABA3D0CAB301A)},
3275          {UINT64_C(0x421270E2157D5213), UINT64_C(0xA37BEA956407B790),
3276           UINT64_C(0xEAD56B1F103A6073), UINT64_C(0x27534624BAD909F1)}},
3277         {{UINT64_C(0xC92D2209C2621EF1), UINT64_C(0x450710C31D3AD3F3),
3278           UINT64_C(0x8CFB8D6C19E481AD), UINT64_C(0x35CACDAEE6DB01BD)},
3279          {UINT64_C(0x2DA4A1D87CDD5B01), UINT64_C(0x3E40C7510F55BA11),
3280           UINT64_C(0xA91D9EE7B15C162D), UINT64_C(0x13AD3BE511DBA157)}},
3281         {{UINT64_C(0xAE417DB0E72F64F5), UINT64_C(0x40822279F13352BA),
3282           UINT64_C(0xEC43AFD91F2B75B9), UINT64_C(0x14D4BB2BC9CF2972)},
3283          {UINT64_C(0x4A55718A0761B2F1), UINT64_C(0xDAFBF756D81A9307),
3284           UINT64_C(0x2DCDFC1C5D3E5A07), UINT64_C(0x696E42ED2EBBDF28)}},
3285         {{UINT64_C(0xF473939968705410), UINT64_C(0xFD581005AF5FFC88),
3286           UINT64_C(0x5490A69490A9F517), UINT64_C(0x4A5C8C2E8CF8327E)},
3287          {UINT64_C(0xC203CD35F7D83DA6), UINT64_C(0xECAA6B907282368D),
3288           UINT64_C(0x365BB5712AF7EC42), UINT64_C(0x112E7ACDD4099316)}},
3289         {{UINT64_C(0x9ABDE0603AE3C25C), UINT64_C(0xE4C03DADEB9925B2),
3290           UINT64_C(0x3C28DCB19E03388B), UINT64_C(0x2337A7CF52B63C06)},
3291          {UINT64_C(0x74DC0F134E1AF2EA), UINT64_C(0xA010E4E3CD0D59AA),
3292           UINT64_C(0x6E4DB7BA9FA14C96), UINT64_C(0x5B2C3862557F7CDE)}},
3293         {{UINT64_C(0xC826E567C8C79CA9), UINT64_C(0xE7D110CAE851BE0C),
3294           UINT64_C(0xFFD57057A3606499), UINT64_C(0x2E9DBC40C6482504)},
3295          {UINT64_C(0xC9F0C3C2F784D9AF), UINT64_C(0xDD982A05B755172E),
3296           UINT64_C(0x6BC6C19DA023997F), UINT64_C(0x4AC177BEE34493C6)}},
3297         {{UINT64_C(0x21C3E0874FA4F134), UINT64_C(0x66E10C3486F9722F),
3298           UINT64_C(0xD2927B017398579A), UINT64_C(0x7135B6380352C3D3)},
3299          {UINT64_C(0x2DA620073BB5EE11), UINT64_C(0x8B64F13C3A946236),
3300           UINT64_C(0x3A83C85430EAE6DF), UINT64_C(0x31114E2A0EB6F749)}},
3301         {{UINT64_C(0x2C7B52E735BFC72B), UINT64_C(0x6DD29EBD2B0D4C2C),
3302           UINT64_C(0xE90D39886C92E82D), UINT64_C(0x0A9249013864D94D)},
3303          {UINT64_C(0x630508249BEE9E78), UINT64_C(0x7929FD62003DD5CF),
3304           UINT64_C(0xD04F832CE57507D1), UINT64_C(0x61078BDC37D2C32E)}},
3305         {{UINT64_C(0xB118AFDD2E75264A), UINT64_C(0x3AB692EAEFD65114),
3306           UINT64_C(0x58D2CE248B0A2128), UINT64_C(0x4316E6C282ED6D5F)},
3307          {UINT64_C(0x97766FFF46345BE4), UINT64_C(0xD7FF30140A7451AA),
3308           UINT64_C(0x078A423FAACE2E37), UINT64_C(0x7F1F90C2A6A78919)}},
3309         {{UINT64_C(0x988FCCB08E9E3D4D), UINT64_C(0xBD003FC0B95C9731),
3310           UINT64_C(0x74E40076B0A84E58), UINT64_C(0x5FD1DBE61DF7FDD0)},
3311          {UINT64_C(0xD2C700C74E6CE2FA), UINT64_C(0xA6E042E2903C5AE7),
3312           UINT64_C(0x561CC25F3C73822E), UINT64_C(0x651A79392A6A0C0C)}},
3313         {{UINT64_C(0x103E9EC688CD7642), UINT64_C(0x65ED52183C3C86CE),
3314           UINT64_C(0x16BAB00282785C8B), UINT64_C(0x0B5C18BBF34723C5)},
3315          {UINT64_C(0x528B0546E724D144), UINT64_C(0x5E582A6B780EEF9E),
3316           UINT64_C(0xC08283B8122F17AD), UINT64_C(0x0300EDCD1C22F32D)}},
3317         {{UINT64_C(0x03AC716A38DCFD39), UINT64_C(0xCD88474C94F12C74),
3318           UINT64_C(0xB5E8641EE9042CA8), UINT64_C(0x1D5746CC40D10558)},
3319          {UINT64_C(0x7869F45ECB4BB408), UINT64_C(0x28FB091D569489C3),
3320           UINT64_C(0xEA371EEC50A46306), UINT64_C(0x2802579675AA224C)}},
3321         {{UINT64_C(0x4EAFA44EF7A5923A), UINT64_C(0xD2427C306B69FD8B),
3322           UINT64_C(0x4C4E884A393D83F9), UINT64_C(0x2D34890A6236AB65)},
3323          {UINT64_C(0x80038D4035CC97F5), UINT64_C(0x4FE43C8497897472),
3324           UINT64_C(0xE5F56243BEF161AF), UINT64_C(0x3E1BDD6F9372E631)}},
3325         {{UINT64_C(0x06A2B2875732669F), UINT64_C(0x92D00397CDF4D2C0),
3326           UINT64_C(0xCD9A25F0454A57F5), UINT64_C(0x23ADB7242F0CDB0B)},
3327          {UINT64_C(0x504DA603FF0F8CB0), UINT64_C(0x14EF9D30D3E24181),
3328           UINT64_C(0xB1B1328E47FC1E66), UINT64_C(0x319B2A846C60354D)}},
3329     },
3330     {
3331         {{UINT64_C(0xBBF5542EF1D56038), UINT64_C(0xEDE3E637DD71CFC3),
3332           UINT64_C(0xFAA81D212E9F6C8B), UINT64_C(0x4DD2D44B69FBD060)},
3333          {UINT64_C(0x71FB623314366A20), UINT64_C(0x155E486F9575451D),
3334           UINT64_C(0x001106F0EC7807D9), UINT64_C(0x1C80E5ABC617034C)}},
3335         {{UINT64_C(0xD3E478DB8619F5F4), UINT64_C(0x1DF5C367F68170C2),
3336           UINT64_C(0xEAB095243430DE1D), UINT64_C(0x48F09361C3CD4C24)},
3337          {UINT64_C(0xE49DEA4B60644FED), UINT64_C(0x47170F1C758C3679),
3338           UINT64_C(0x4CC1E6E8B0382A84), UINT64_C(0x2DBDB9DA10A4465E)}},
3339         {{UINT64_C(0x67BAA79AC8400A4C), UINT64_C(0xFA30675301D28ECE),
3340           UINT64_C(0x29DB5B1C6F33289C), UINT64_C(0x4475757326A8FCB4)},
3341          {UINT64_C(0x59616219E1B0A795), UINT64_C(0x3032D939C5B32FA0),
3342           UINT64_C(0x3010C9177C3CEA2C), UINT64_C(0x5CF83EF19892BDF4)}},
3343         {{UINT64_C(0x55DE11413C7E83E6), UINT64_C(0x9D03929C74EA0366),
3344           UINT64_C(0x5CA60C5083BAF3FE), UINT64_C(0x3D9BCA587F70E905)},
3345          {UINT64_C(0xDB79DF5AFCC5AB59), UINT64_C(0x03CFCF0653F68D30),
3346           UINT64_C(0xBE101A784FCFA5F1), UINT64_C(0x115D7078B49E493C)}},
3347         {{UINT64_C(0xF14023AA76A0CCBD), UINT64_C(0x4287F0BC086F2E50),
3348           UINT64_C(0xC5EAA559F79A37E7), UINT64_C(0x5D527C0904E4F2A2)},
3349          {UINT64_C(0xEC91461651DAA504), UINT64_C(0x250D90C6EEF1DC95),
3350           UINT64_C(0x1B0AA868A50330B2), UINT64_C(0x7B45A78354189BBE)}},
3351         {{UINT64_C(0x0D602E05F019D6FF), UINT64_C(0x563E3893DD1800BA),
3352           UINT64_C(0x7146727EF3C7F7E5), UINT64_C(0x59641D984B026635)},
3353          {UINT64_C(0x50BCF90FE91DDBB8), UINT64_C(0x5D43E78E7F8397A6),
3354           UINT64_C(0x8734A261EB15896E), UINT64_C(0x4AD1E8649FF6B361)}},
3355         {{UINT64_C(0x1A9B601F320322F1), UINT64_C(0x606D40B391F611C4),
3356           UINT64_C(0xB984958BA19C918F), UINT64_C(0x67BFB045776F834E)},
3357          {UINT64_C(0xC59E556968DD85F0), UINT64_C(0xB5642834D4067875),
3358           UINT64_C(0x247E7D65CB138DF3), UINT64_C(0x73640A035CB9281D)}},
3359         {{UINT64_C(0xC7C34CCC88639889), UINT64_C(0xD9E44E07A785C707),
3360           UINT64_C(0x1BE68EFE32F83073), UINT64_C(0x249902DAAE5317CE)},
3361          {UINT64_C(0xF1F0B86A76CA92FF), UINT64_C(0xA7F502CFC01CB06B),
3362           UINT64_C(0x0A8B4766595AA185), UINT64_C(0x614135AAB792DE49)}},
3363         {{UINT64_C(0x5392CAA7564F2BC8), UINT64_C(0x1CDDA684CC894FCD),
3364           UINT64_C(0x10AC2378A4EBF82F), UINT64_C(0x6211EA465051BFF9)},
3365          {UINT64_C(0xE53B017430E8E210), UINT64_C(0x2374FEC302C0E381),
3366           UINT64_C(0xF8B1506B4DA07224), UINT64_C(0x4E451E0154DA7A08)}},
3367         {{UINT64_C(0xA8404D9C241FC7FB), UINT64_C(0x1D6DBF6EC4406332),
3368           UINT64_C(0xFE14231930162118), UINT64_C(0x69DE75CCA7EF5EF5)},
3369          {UINT64_C(0x008D4D09856E26A5), UINT64_C(0x2BC64B65C588ECF6),
3370           UINT64_C(0x7A523D0BAA01EE19), UINT64_C(0x213EF390932F0B95)}},
3371         {{UINT64_C(0xA42FE5131CD716FA), UINT64_C(0xFB13B3C60E8001B6),
3372           UINT64_C(0xBFDC7998D8F530CB), UINT64_C(0x04F9C05BF1C61761)},
3373          {UINT64_C(0xFB57396FAFED9D64), UINT64_C(0x28CCEE3A421AC123),
3374           UINT64_C(0x32590C9BF6C21ACC), UINT64_C(0x503B97CBBCA75AE3)}},
3375         {{UINT64_C(0x745208BC366946ED), UINT64_C(0xA75D88E94C906596),
3376           UINT64_C(0x03A30C7EEE043530), UINT64_C(0x5C67C151D11BF4D5)},
3377          {UINT64_C(0x04F75DFAE7AE4BB3), UINT64_C(0xA08136067F8D7404),
3378           UINT64_C(0x8B9F921019D68F64), UINT64_C(0x5AB6797106F73B55)}},
3379         {{UINT64_C(0x08064C4AB0687095), UINT64_C(0x27E30DDDB0106DF4),
3380           UINT64_C(0x31D29C708482524A), UINT64_C(0x65DD5896D86FDACD)},
3381          {UINT64_C(0x081C013DC647197E), UINT64_C(0x51C10B9ED7A53A45),
3382           UINT64_C(0xACB9A4DE0DD7FC53), UINT64_C(0x639997A2F646220B)}},
3383         {{UINT64_C(0x97CCF8251FB93B43), UINT64_C(0xB7D7713DE488D786),
3384           UINT64_C(0x4F7595663E4DBB33), UINT64_C(0x13B5D8A1E0F09964)},
3385          {UINT64_C(0xFFDDAD74316CDD97), UINT64_C(0x67C5578252C92EE9),
3386           UINT64_C(0x03B50F940AC5D6FD), UINT64_C(0x56C5C0091484DF88)}},
3387         {{UINT64_C(0xDCE199E31778D303), UINT64_C(0x53A2A4C60F1DD4EC),
3388           UINT64_C(0x7CC5EE9E370A7B99), UINT64_C(0x4403202B2598744E)},
3389          {UINT64_C(0xCCFAA978228247B6), UINT64_C(0xF50D14BD4A1D0E27),
3390           UINT64_C(0x6669506180723ABC), UINT64_C(0x750CCB6A742C0015)}},
3391         {{UINT64_C(0x7B04693681A109F1), UINT64_C(0x6414D9A3D4C1AFE5),
3392           UINT64_C(0x35070548DD14AC1F), UINT64_C(0x27172F39DEC0D3F0)},
3393          {UINT64_C(0x4EE0A7BFF2E273F0), UINT64_C(0x028C7813EC82B8E6),
3394           UINT64_C(0x907BF09F2081EAE2), UINT64_C(0x72E4C3D3414D6421)}},
3395     },
3396     {
3397         {{UINT64_C(0x2064097EA073711C), UINT64_C(0x980D830A5A65EC25),
3398           UINT64_C(0x7906A87CF0877567), UINT64_C(0x3E5EAE10F1980A3A)},
3399          {UINT64_C(0x5F51023A9272CE32), UINT64_C(0x71D69E68A437C974),
3400           UINT64_C(0x32006EA1D0B579FF), UINT64_C(0x191935FFA436E129)}},
3401         {{UINT64_C(0xE5FE290991C1474C), UINT64_C(0x7350B9FA1F0B10F5),
3402           UINT64_C(0x2006F41D6B4AB128), UINT64_C(0x4EBDA6CFCD95FA42)},
3403          {UINT64_C(0x450289385DA9A7F4), UINT64_C(0xD8129DE457FB462B),
3404           UINT64_C(0x4F2BF2C9E592EF90), UINT64_C(0x14A1A16BD6751DCC)}},
3405         {{UINT64_C(0x7460BB84DE0CD47A), UINT64_C(0x261F24D6468CBA3D),
3406           UINT64_C(0x229D31811E3C2D8A), UINT64_C(0x4AE520C91D19E059)},
3407          {UINT64_C(0x5AC3AEE7DF8DC66E), UINT64_C(0xCB417060299697EE),
3408           UINT64_C(0x227C1497CE97514F), UINT64_C(0x2589B8032E991FDE)}},
3409         {{UINT64_C(0x7FE9D585A97A5D03), UINT64_C(0x7333A1EF10D58157),
3410           UINT64_C(0x54C1CCD2C94C3DF6), UINT64_C(0x25C1B25228073B4E)},
3411          {UINT64_C(0xEEB29AF90635AD79), UINT64_C(0x880019C19AA38848),
3412           UINT64_C(0x1A85994230A9A497), UINT64_C(0x57EDCC2D92B25ABA)}},
3413         {{UINT64_C(0xA98DAE7D65E19DE6), UINT64_C(0x8007DD1746AD8696),
3414           UINT64_C(0x61F2E2CFA7F3BBAD), UINT64_C(0x1EFCD38754193858)},
3415          {UINT64_C(0xFB54FD6011666ECF), UINT64_C(0xD97EA5DF36E7D371),
3416           UINT64_C(0x944CA1703B9371FF), UINT64_C(0x32A52CAC05DE7FB0)}},
3417         {{UINT64_C(0xB960FFF619ED8B5E), UINT64_C(0xFD6B4C3E660354BB),
3418           UINT64_C(0xF8ECAADA1C9E95F0), UINT64_C(0x687A6D29A8E08CC7)},
3419          {UINT64_C(0xD38B7670C6A83D12), UINT64_C(0x1646064C1265BF30),
3420           UINT64_C(0x7DE19FFE2464892D), UINT64_C(0x05B57E081BDBB729)}},
3421         {{UINT64_C(0xF3586B04FFB7A98A), UINT64_C(0xF1850CDCCB072826),
3422           UINT64_C(0xFA3E66A4CF53BFB0), UINT64_C(0x7C78E56706E07221)},
3423          {UINT64_C(0x21E6F2453B4E72AE), UINT64_C(0x10A0D78BC6A3DBE8),
3424           UINT64_C(0xB9FC6D77D618DDAB), UINT64_C(0x33092D1376951DE5)}},
3425         {{UINT64_C(0xCAA1BF9D5A0257CB), UINT64_C(0x1044E224866C505F),
3426           UINT64_C(0x9B51410781482E7D), UINT64_C(0x538CB86788940BFB)},
3427          {UINT64_C(0xACE68B78AC21DCC1), UINT64_C(0x57942F3C1609BF8C),
3428           UINT64_C(0x30A47F3266E48C7A), UINT64_C(0x170D301DB0DA341F)}},
3429         {{UINT64_C(0x19643EB218ED9863), UINT64_C(0xBBE55BCCD9104F33),
3430           UINT64_C(0x77008B6CA15B283C), UINT64_C(0x2A6E0B41873A6A02)},
3431          {UINT64_C(0x517410DF3CB9A225), UINT64_C(0x20D76E38F538730A),
3432           UINT64_C(0x76C9CAD69F8724F0), UINT64_C(0x588BA1066BE9A035)}},
3433         {{UINT64_C(0xA059DBECF842F66C), UINT64_C(0x59CA186DB3ED0481),
3434           UINT64_C(0xA5B2ABCBD454490F), UINT64_C(0x4A0F600402624902)},
3435          {UINT64_C(0x45AF7B514D2F605F), UINT64_C(0x57E8FE0FC368030F),
3436           UINT64_C(0x23B745570C0727AE), UINT64_C(0x7E91EC772B603EC4)}},
3437         {{UINT64_C(0xEDD284CFFD582BE8), UINT64_C(0x3077CB2381093CDA),
3438           UINT64_C(0xB1934840FDEA4FCE), UINT64_C(0x00F9B9D1D7F01C9A)},
3439          {UINT64_C(0xA55E5C5B0A1C707B), UINT64_C(0x05CD73CB2F8618A5),
3440           UINT64_C(0x7327CECB512EEA05), UINT64_C(0x5130A0998BF2A4D5)}},
3441         {{UINT64_C(0x34D18880FA7A1C7B), UINT64_C(0x5E0D6C53FD4E043F),
3442           UINT64_C(0xB4DD80101B4442AE), UINT64_C(0x59D9183E78ED7563)},
3443          {UINT64_C(0x624DDAFCF1FAE158), UINT64_C(0xC08C36535C4C1E92),
3444           UINT64_C(0x452FD71FCE3E42EF), UINT64_C(0x175B490820B902EC)}},
3445         {{UINT64_C(0x5F0FDF2418F4CE34), UINT64_C(0xA64A30119B7E61B8),
3446           UINT64_C(0x8109ACD5663362E2), UINT64_C(0x4D02F82497F3DF44)},
3447          {UINT64_C(0x2CE27CCE3A4F916A), UINT64_C(0x4A4E6CBB3B85B146),
3448           UINT64_C(0xFE7A6199DB8C9E5E), UINT64_C(0x53F5D620D94B8D23)}},
3449         {{UINT64_C(0x37FEBEC3E77610A9), UINT64_C(0xE82D8EAC92245CB0),
3450           UINT64_C(0x3FD2CEEAF79A31BC), UINT64_C(0x277ACF32B446850C)},
3451          {UINT64_C(0xD89FF4C7CE1A2786), UINT64_C(0x441781E5FFD3A23C),
3452           UINT64_C(0x7876EFC507E85496), UINT64_C(0x0F306C7BE6F41B30)}},
3453         {{UINT64_C(0x3BF2BFD15AB1B92B), UINT64_C(0xDCC3F5A6F373FCF2),
3454           UINT64_C(0x27CFC4A6DA53C229), UINT64_C(0x5885737C508E677F)},
3455          {UINT64_C(0x1275D0F17B829F24), UINT64_C(0xBD3C0B024991B75B),
3456           UINT64_C(0x3F82ACDFE581C569), UINT64_C(0x123294353F28904E)}},
3457         {{UINT64_C(0xCF7BDCCC99C3A09B), UINT64_C(0x191911075F7D601A),
3458           UINT64_C(0xA82F746039FBAA22), UINT64_C(0x3105A6FCD75B5786)},
3459          {UINT64_C(0x9673DAC4932F69A6), UINT64_C(0xF5664B25B57D6EE6),
3460           UINT64_C(0x1EDAC1120A3CDD3E), UINT64_C(0x3CF84F8C42778563)}},
3461     },
3462     {
3463         {{UINT64_C(0xE36FD1B765DE3040), UINT64_C(0x240EADEA8AA0D3FE),
3464           UINT64_C(0x769714317F77F804), UINT64_C(0x6FCC933E591E9694)},
3465          {UINT64_C(0x3218D92B18F48742), UINT64_C(0x215F13E95E1B4001),
3466           UINT64_C(0xCDF333CD7A8D69B9), UINT64_C(0x14F159B1D2FD134F)}},
3467         {{UINT64_C(0x2D1228D607A50C16), UINT64_C(0x0DFD80F629AE42FD),
3468           UINT64_C(0x6C18B122BB8F3512), UINT64_C(0x0FE61243303F3DCA)},
3469          {UINT64_C(0x43A29F4DDA50709B), UINT64_C(0x3FF58C084B92BF7B),
3470           UINT64_C(0x62DC6B41DFCEF797), UINT64_C(0x43F9525AC7B83F32)}},
3471         {{UINT64_C(0x17EBBC9A15F08F5B), UINT64_C(0xBCD3B6408BB3E932),
3472           UINT64_C(0xD46FBB9F510BBD36), UINT64_C(0x389ABBA8CF65442B)},
3473          {UINT64_C(0x3A3DAFE4B575545C), UINT64_C(0x6AB985ECE1D0994D),
3474           UINT64_C(0xCC2A697B69E1DB27), UINT64_C(0x0D483E18271581DC)}},
3475         {{UINT64_C(0x380D4095C046D968), UINT64_C(0x5303975555D3318B),
3476           UINT64_C(0x57FA762991CE6FFC), UINT64_C(0x0A0F2885A4ADB641)},
3477          {UINT64_C(0x8B99AF1B6E5C2909), UINT64_C(0xBDFE7FFDB8794175),
3478           UINT64_C(0x2CFB948A795ED786), UINT64_C(0x11FE74650FD0DF66)}},
3479         {{UINT64_C(0xFC2CC2BD22E152E2), UINT64_C(0xCF6AB96BE30BCEB3),
3480           UINT64_C(0xAE89C041BC89B689), UINT64_C(0x6813430CE7523AB6)},
3481          {UINT64_C(0x3F49E72840A4FA33), UINT64_C(0x025DE1B7857CB0C9),
3482           UINT64_C(0x6D71465A11EA5EA5), UINT64_C(0x6651F7B946C8D7CB)}},
3483         {{UINT64_C(0xD05F1DCE5268098F), UINT64_C(0x891DBB680DC75030),
3484           UINT64_C(0xD939E428EA916291), UINT64_C(0x5F8EECCCEA37D060)},
3485          {UINT64_C(0x885F1EA88DC5D544), UINT64_C(0xFD3B3D1757E7448F),
3486           UINT64_C(0x5FC791A879531DE0), UINT64_C(0x780C1AAF42E66DAA)}},
3487         {{UINT64_C(0x19697778397BB28F), UINT64_C(0x5EC31D44AAA9069D),
3488           UINT64_C(0xDC2DFEAA3CA24A6F), UINT64_C(0x3F66CFCA80BED770)},
3489          {UINT64_C(0x2B6B82151A102662), UINT64_C(0x44B4D7A4C5D34CEB),
3490           UINT64_C(0x17E0FDE688AFECF2), UINT64_C(0x0DEFA14BCFF8D214)}},
3491         {{UINT64_C(0x14035AA48365CA84), UINT64_C(0x309CEEF0197CE2B7),
3492           UINT64_C(0x21305426ED39AF37), UINT64_C(0x10D01D11D2EA583A)},
3493          {UINT64_C(0x3F2E97499FA5C766), UINT64_C(0x98357584D70549D4),
3494           UINT64_C(0x8FF80803D279946D), UINT64_C(0x53DBC43399DF1253)}},
3495         {{UINT64_C(0x1D0D9EFA5329F12F), UINT64_C(0xBC9F74CFBE1F007F),
3496           UINT64_C(0xD7F2AA9A18EE4DBC), UINT64_C(0x634BF4CF3A792753)},
3497          {UINT64_C(0xD5DC72AD2FA6255A), UINT64_C(0xEE69EA43F3BC00C5),
3498           UINT64_C(0xEA930F61D8147A1A), UINT64_C(0x25E1368DF4E9AD37)}},
3499         {{UINT64_C(0x9422AAF7B7C955EC), UINT64_C(0x7C7107616A74D634),
3500           UINT64_C(0x4ED89932305EE420), UINT64_C(0x07E422122E937289)},
3501          {UINT64_C(0x7EBB231328566C88), UINT64_C(0xC7ED9C7AC27ED656),
3502           UINT64_C(0xF77F3873BF14FB3B), UINT64_C(0x447AA1E5EB957520)}},
3503         {{UINT64_C(0x3E3CEC7EB5C5E016), UINT64_C(0xB33DDFF7BDE44D26),
3504           UINT64_C(0x2056E9C766E820DD), UINT64_C(0x21A9E5D4F8196FE2)},
3505          {UINT64_C(0x86CB0A1788040C97), UINT64_C(0x18AD8AE7FF515D49),
3506           UINT64_C(0xCB8A564A226A400A), UINT64_C(0x6DB489798B72A0D2)}},
3507         {{UINT64_C(0x4365074B6324DED2), UINT64_C(0x9EFB5CC6AEDAF0F8),
3508           UINT64_C(0xCF952C3CC0792B14), UINT64_C(0x70B82AB997ED965E)},
3509          {UINT64_C(0x931B98863ACEBCE7), UINT64_C(0xDA85049118C2425A),
3510           UINT64_C(0xD88E1E27E499F7FB), UINT64_C(0x61D3F246960981DE)}},
3511         {{UINT64_C(0x1D8EA2278393EB0A), UINT64_C(0x9DCC23D27863FB53),
3512           UINT64_C(0x961B2337D5EBD297), UINT64_C(0x0A96F8B25BFED1E9)},
3513          {UINT64_C(0x39EA1803FE7DD2B7), UINT64_C(0x7E4817BBE5F7772A),
3514           UINT64_C(0x3668C5FFD44A41EF), UINT64_C(0x78227653E11F8E11)}},
3515         {{UINT64_C(0x272D6933D024880B), UINT64_C(0x733C029FF236FD8A),
3516           UINT64_C(0xBA5C20BD604868F0), UINT64_C(0x33F211AE321175C2)},
3517          {UINT64_C(0xE40010FB9FD79FE3), UINT64_C(0x9C6EA1DCA685A59F),
3518           UINT64_C(0x79963FFC8EB9889D), UINT64_C(0x15434E7D5F67108D)}},
3519         {{UINT64_C(0x42C14BBFD68B670F), UINT64_C(0x2021AC9D23F1AA69),
3520           UINT64_C(0xBF4C6D74AEA04636), UINT64_C(0x1E4D2F8EBD1FB11D)},
3521          {UINT64_C(0x4B0CF0E337911AA6), UINT64_C(0x7542D9282C484507),
3522           UINT64_C(0x68836751889542DC), UINT64_C(0x05F229F7FE2282A0)}},
3523         {{UINT64_C(0xAF269E8B409B2067), UINT64_C(0x6C749952A860F075),
3524           UINT64_C(0xCB7492DA5DF7C7F6), UINT64_C(0x2B010A7FE8E591E1)},
3525          {UINT64_C(0xF744657704D9E871), UINT64_C(0xC2E0A2A35E68408E),
3526           UINT64_C(0xD512E9A6D0F0BAAD), UINT64_C(0x3E2F73E1C6BE34A3)}},
3527     },
3528     {
3529         {{UINT64_C(0x6C466C8E2EC65BB4), UINT64_C(0x912FFAE5B1FC8F92),
3530           UINT64_C(0x7587BE5DB50A522D), UINT64_C(0x15939FF7649847CF)},
3531          {UINT64_C(0x69E81D63F464794E), UINT64_C(0x7BB6EEE36D3F858E),
3532           UINT64_C(0x24FE5C0110813BBB), UINT64_C(0x0C491F976D80756C)}},
3533         {{UINT64_C(0xBAD1C256A5FF3510), UINT64_C(0xF06F38A299C1B7B2),
3534           UINT64_C(0xF7C0F164049312D6), UINT64_C(0x073C53745749B3E4)},
3535          {UINT64_C(0xD676148055211A81), UINT64_C(0xF34CB5DBDFA98F45),
3536           UINT64_C(0xAF59FA47B4AA4967), UINT64_C(0x116935B98214BE48)}},
3537         {{UINT64_C(0x1D86FA009FE10E46), UINT64_C(0x73B8099C0B5B8494),
3538           UINT64_C(0x9A6EA98DA1102BE7), UINT64_C(0x3DE1948B5514CA21)},
3539          {UINT64_C(0x5D18ED69D0AAAA53), UINT64_C(0x17BF7DFF3C952B98),
3540           UINT64_C(0xC60143FE7DDBD937), UINT64_C(0x214F2F556F2F10C4)}},
3541         {{UINT64_C(0xB2F2869502F047D0), UINT64_C(0x80952DFE923F52BF),
3542           UINT64_C(0x56F3306BA5017C3E), UINT64_C(0x5DD62F07052DADFB)},
3543          {UINT64_C(0xDD11592DD5274F90), UINT64_C(0x40632FF3E471965B),
3544           UINT64_C(0xAD1939A87E618430), UINT64_C(0x5DD9CAD233F19556)}},
3545         {{UINT64_C(0x7B0AA88CC1094747), UINT64_C(0xCFA6B95DF6753A0C),
3546           UINT64_C(0xE81AFADA2A252A4D), UINT64_C(0x364CAB7CD3770570)},
3547          {UINT64_C(0xE99D8252B4610A19), UINT64_C(0xB22B2FEC55ED9AD3),
3548           UINT64_C(0x328ACBDDBEBE7FED), UINT64_C(0x1D379D61FBEDFE84)}},
3549         {{UINT64_C(0xD9EFFFFA5EDF8C9C), UINT64_C(0x9BAA71810CE548EC),
3550           UINT64_C(0xEB458AEB5FA8FEEB), UINT64_C(0x18C5E6910904D841)},
3551          {UINT64_C(0xFCEFAE288F33D2E5), UINT64_C(0xB3CF853E6FAFDA18),
3552           UINT64_C(0x05DE94BA427D6218), UINT64_C(0x021D8AED3731D3E9)}},
3553         {{UINT64_C(0x06C8C318E92719DA), UINT64_C(0x1F7CDE121A65DFDB),
3554           UINT64_C(0x9B4D531E4B672A2D), UINT64_C(0x3E39CC63115FAF11)},
3555          {UINT64_C(0xC9C3F3390037AF60), UINT64_C(0xC1C6758702B43D27),
3556           UINT64_C(0x46B77CDDC42DF26B), UINT64_C(0x7235F2B0EBFA97A7)}},
3557         {{UINT64_C(0xAF7FFC9AE898094E), UINT64_C(0x8D18AB93146A27E3),
3558           UINT64_C(0x1376B7978AEC0416), UINT64_C(0x746A1B1C8D91C25E)},
3559          {UINT64_C(0x16DCCCC10EBDE2E3), UINT64_C(0xFE4ABD418CE7D61E),
3560           UINT64_C(0xB9830395E25F1551), UINT64_C(0x543493D7B885A943)}},
3561         {{UINT64_C(0x52C659E624EBCFC0), UINT64_C(0x72E3CA91D38367A4),
3562           UINT64_C(0xA3086AAC4D168F4F), UINT64_C(0x656ACFEE5D64207B)},
3563          {UINT64_C(0xBE697CBABA196A9E), UINT64_C(0x6A737ACC97DFFEC2),
3564           UINT64_C(0x393E266154F04DBD), UINT64_C(0x4FFF7C244B0E92BD)}},
3565         {{UINT64_C(0xC709CC59828EC659), UINT64_C(0xB275AC8CCBDEACB3),
3566           UINT64_C(0xA8D08921F7922523), UINT64_C(0x68B92F96400A6459)},
3567          {UINT64_C(0x45803EC2DFBECB97), UINT64_C(0x49464E057515D696),
3568           UINT64_C(0xF39CA9618F03E969), UINT64_C(0x605065A11CD7C79F)}},
3569         {{UINT64_C(0xB91C03DC97F1A97A), UINT64_C(0x2F6D50BB201FFB53),
3570           UINT64_C(0x39D67D4046241856), UINT64_C(0x0A2C025674D04805)},
3571          {UINT64_C(0xD289B94C28374A6D), UINT64_C(0x1176C73A10EDD6FC),
3572           UINT64_C(0x890E9C3956AE631E), UINT64_C(0x30451CF16027F549)}},
3573         {{UINT64_C(0x0CB33FDCDF8F4DDB), UINT64_C(0xD9C540DE87FF6E63),
3574           UINT64_C(0xD844573255A1D8E4), UINT64_C(0x1497403D8AC403A6)},
3575          {UINT64_C(0xA2591C406A4BAAC6), UINT64_C(0xF493CF1F48DD3E5D),
3576           UINT64_C(0x7B9AE39FB69AF047), UINT64_C(0x293123C03782B110)}},
3577         {{UINT64_C(0x14921836B7A36B62), UINT64_C(0x5AC824304CA3AA39),
3578           UINT64_C(0x01303AA652F601CA), UINT64_C(0x7EE1E6C72B43BB72)},
3579          {UINT64_C(0x7F82B37B64D44957), UINT64_C(0x840D0654DA4A6FEC),
3580           UINT64_C(0xFC806FA10290F75D), UINT64_C(0x3027FE4A4C62F0E8)}},
3581         {{UINT64_C(0x34E68AB5CD0D3AC0), UINT64_C(0xE6B0B8C1E9BC85BD),
3582           UINT64_C(0xE00F505299533831), UINT64_C(0x11327DA7CDC83750)},
3583          {UINT64_C(0x6D991DF04656A428), UINT64_C(0x6A7BE34986228F26),
3584           UINT64_C(0x6BF85E3D3019CDC5), UINT64_C(0x42200D2F576913A4)}},
3585         {{UINT64_C(0x420D9259707B940F), UINT64_C(0x1BB1FFE13C5E39BB),
3586           UINT64_C(0x83D6BA36E40D018E), UINT64_C(0x139BD842044EC576)},
3587          {UINT64_C(0x3C79F8D2C6DE63E8), UINT64_C(0x49150B1D96F1FB0B),
3588           UINT64_C(0x666160531358A13B), UINT64_C(0x187CA3CFD5DDFD9F)}},
3589         {{UINT64_C(0x0675370F8D5AEE84), UINT64_C(0x30AA7D65DC269114),
3590           UINT64_C(0x295F7FE85AFC6DC1), UINT64_C(0x4945202955674339)},
3591          {UINT64_C(0x7EB1926BA6F209EC), UINT64_C(0x5232B9D1DC72C3E3),
3592           UINT64_C(0xCD788D79AB52141B), UINT64_C(0x3EB561BEFDD9611F)}},
3593     },
3594     {
3595         {{UINT64_C(0x09DB342CE22241AD), UINT64_C(0x2EAB852F2A566653),
3596           UINT64_C(0x970843EDCA6E59F3), UINT64_C(0x6490013EA18C2D89)},
3597          {UINT64_C(0x52293350C7A691CC), UINT64_C(0x6544B49DB2079F14),
3598           UINT64_C(0xC49C559852DCF090), UINT64_C(0x4069B6FC8817A2C7)}},
3599         {{UINT64_C(0x0E4A4B0CC86B40F4), UINT64_C(0x2B5350E151F6F853),
3600           UINT64_C(0xDE26FDE21033BEC4), UINT64_C(0x4DE9D2E7C0E9B971)},
3601          {UINT64_C(0x716605FDD315AD57), UINT64_C(0x5627D732392B101A),
3602           UINT64_C(0x628EDFC681A9F40A), UINT64_C(0x4BD2A96C5AB9C99D)}},
3603         {{UINT64_C(0x2C8DF2A1BFBD288A), UINT64_C(0x260C4F1EF4CF7C09),
3604           UINT64_C(0x88A2618690E796CB), UINT64_C(0x105ACC3A323E0702)},
3605          {UINT64_C(0xA8ADA467667664CF), UINT64_C(0x41144C1B3B518622),
3606           UINT64_C(0x4A532B87D8B99FE1), UINT64_C(0x4A51C2892289C308)}},
3607         {{UINT64_C(0x201DDA611D6F6880), UINT64_C(0x47A964D462029898),
3608           UINT64_C(0xE44E2EEE426C8CA5), UINT64_C(0x02A5182109625DBA)},
3609          {UINT64_C(0x170C626EB45B3DFB), UINT64_C(0xFC7F1F715C8343A9),
3610           UINT64_C(0xE6CF246FE549F040), UINT64_C(0x4ACF60AE2F903ACE)}},
3611         {{UINT64_C(0x9171535281C807EC), UINT64_C(0x72AC60C347174A58),
3612           UINT64_C(0xAD62D06FA0F12F61), UINT64_C(0x325C2792AA899C0D)},
3613          {UINT64_C(0x53A1E3929D8BA267), UINT64_C(0x5DC088A5CDACCB05),
3614           UINT64_C(0x5BB9127F5025CB69), UINT64_C(0x25D2B42E69214616)}},
3615         {{UINT64_C(0x4DE5D58ADDB55121), UINT64_C(0x688AA2F584DE0677),
3616           UINT64_C(0xF7925A3963AA25E0), UINT64_C(0x4FB42FC785D4DEA5)},
3617          {UINT64_C(0x957B933B8F134390), UINT64_C(0xB360DD2C4B9BF8C2),
3618           UINT64_C(0x45E6767FFFFF96CD), UINT64_C(0x26D0A6A91E01D5C3)}},
3619         {{UINT64_C(0xC7FC57145A0A98EA), UINT64_C(0xDBB06F30E7535AF6),
3620           UINT64_C(0x555B22E3DF4ACD0D), UINT64_C(0x3A011AAF2EFD2FBE)},
3621          {UINT64_C(0x341C7733E9166B20), UINT64_C(0x84619E8EFB19590A),
3622           UINT64_C(0x8EF989FD10574C96), UINT64_C(0x61ACFAAE0F55F9A2)}},
3623         {{UINT64_C(0x8C8A33F26DEAB094), UINT64_C(0x4A8E5D9F96022EBC),
3624           UINT64_C(0xA10DF82C7DDA92E8), UINT64_C(0x33A19462D1CF3815)},
3625          {UINT64_C(0xE3FF8E43A489D67F), UINT64_C(0xD4B6136F225064AA),
3626           UINT64_C(0xE1721D2A92F5E662), UINT64_C(0x4C4F03D7A90A33C6)}},
3627         {{UINT64_C(0x70885B35A3463B4A), UINT64_C(0x974BC40EDF9D0194),
3628           UINT64_C(0x1AF71E18273957F4), UINT64_C(0x58EF684B9900CB0D)},
3629          {UINT64_C(0xB09970C820A49A4A), UINT64_C(0x3F28403F42067458),
3630           UINT64_C(0x153FF2C4BD7D1AD5), UINT64_C(0x7912CC2EE97A90F7)}},
3631         {{UINT64_C(0xF653DF598F034D9F), UINT64_C(0xCA1671771C409CCF),
3632           UINT64_C(0x21F47005175F3583), UINT64_C(0x13B8A94BFAAFB66F)},
3633          {UINT64_C(0x64534EE396052C8D), UINT64_C(0x09304DD18D674024),
3634           UINT64_C(0xEB468AC30D7A7E2A), UINT64_C(0x40347256CD62052C)}},
3635         {{UINT64_C(0x0F089165FFF11C0E), UINT64_C(0x383562C98D69A45C),
3636           UINT64_C(0x7AB3EF9D3125FE61), UINT64_C(0x32C042BCE0735F3A)},
3637          {UINT64_C(0x420077C84E268D91), UINT64_C(0x7FB4208244695B4F),
3638           UINT64_C(0xFA83216F448A133E), UINT64_C(0x1C66060793062EB3)}},
3639         {{UINT64_C(0xA0FCBACAEF9E04DE), UINT64_C(0xAEF9EECB5B86F69A),
3640           UINT64_C(0x73D2E95FC39D4C99), UINT64_C(0x098C74F7923A5BA8)},
3641          {UINT64_C(0x5B8C95C84F68DECF), UINT64_C(0xCFF2E10158976551),
3642           UINT64_C(0x5032AE48BE5CAF91), UINT64_C(0x5CCB9008E09BC8AE)}},
3643         {{UINT64_C(0x41A38F203714D3BF), UINT64_C(0x2413653317366520),
3644           UINT64_C(0xF12F314CFAE17B01), UINT64_C(0x4AA0C969FC9AD43B)},
3645          {UINT64_C(0xD8AB5F728BBAC026), UINT64_C(0x35128269526992DC),
3646           UINT64_C(0xA2EF6E44D19880AA), UINT64_C(0x28BB3623DBF47628)}},
3647         {{UINT64_C(0x294742BA3BA25C35), UINT64_C(0x39D3BC9B061555B7),
3648           UINT64_C(0x944E3ABCDE6EA1A0), UINT64_C(0x4FDC641557EBD394)},
3649          {UINT64_C(0xB615C1DAE981E649), UINT64_C(0xAF7EDB348BE3C95F),
3650           UINT64_C(0x38573AE871F7221F), UINT64_C(0x1B30FF04668CF414)}},
3651         {{UINT64_C(0x48EFF6A2A57A9A4E), UINT64_C(0x04BA2F7374A59C19),
3652           UINT64_C(0x5FDE389D6779C5DA), UINT64_C(0x258E2B246612F160)},
3653          {UINT64_C(0xCE8D7A0B6D116D41), UINT64_C(0xAF660436EE2706C8),
3654           UINT64_C(0xFFAD6FE9F81D6398), UINT64_C(0x4FE5EC5414BA128A)}},
3655         {{UINT64_C(0x7D5E8299BD4B886C), UINT64_C(0x5403A46EDB0DB148),
3656           UINT64_C(0x32F49FC076A808D7), UINT64_C(0x6D483FD7D3B9A641)},
3657          {UINT64_C(0x731DF1223952C70F), UINT64_C(0xB5CABAC1CB5E6081),
3658           UINT64_C(0x12FA297D7AFA8F59), UINT64_C(0x3272360A6AC91952)}},
3659     }};
3660
3661 /*-
3662  * Q := 2P, both projective, Q and P same pointers OK
3663  * Autogenerated: op3/dbl_proj.op3
3664  * https://eprint.iacr.org/2015/1060 Alg 6
3665  * ASSERT: a = -3
3666  */
3667 static void point_double(pt_prj_t *Q, const pt_prj_t *P) {
3668     /* temporary variables */
3669     fe_t t0, t1, t2, t3, t4;
3670     /* constants */
3671     const limb_t *b = const_b;
3672     /* set pointers for legacy curve arith */
3673     const limb_t *X = P->X;
3674     const limb_t *Y = P->Y;
3675     const limb_t *Z = P->Z;
3676     limb_t *X3 = Q->X;
3677     limb_t *Y3 = Q->Y;
3678     limb_t *Z3 = Q->Z;
3679
3680     /* the curve arith formula */
3681     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(t0, X);
3682     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(t1, Y);
3683     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(t2, Z);
3684     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t3, X, Y);
3685     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, t3, t3);
3686     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t4, Y, Z);
3687     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, X, Z);
3688     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, Z3);
3689     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, b, t2);
3690     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, Z3);
3691     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, Y3, Y3);
3692     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, X3, Y3);
3693     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, t1, Y3);
3694     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t1, Y3);
3695     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X3, Y3);
3696     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, X3, t3);
3697     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, t2, t2);
3698     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t2, t2, t3);
3699     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, b, Z3);
3700     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, Z3, t2);
3701     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, Z3, t0);
3702     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, Z3, Z3);
3703     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, t3);
3704     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, t0, t0);
3705     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t3, t0);
3706     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t0, t0, t2);
3707     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t0, t0, Z3);
3708     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, t0);
3709     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t4, t4);
3710     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t0, Z3);
3711     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, X3, Z3);
3712     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t0, t1);
3713     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, Z3);
3714     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, Z3);
3715 }
3716
3717 /*-
3718  * R := Q + P where R and Q are projective, P affine.
3719  * R and Q same pointers OK
3720  * R and P same pointers not OK
3721  * Autogenerated: op3/add_mixed.op3
3722  * https://eprint.iacr.org/2015/1060 Alg 5
3723  * ASSERT: a = -3
3724  */
3725 static void point_add_mixed(pt_prj_t *R, const pt_prj_t *Q, const pt_aff_t *P) {
3726     /* temporary variables */
3727     fe_t t0, t1, t2, t3, t4;
3728     /* constants */
3729     const limb_t *b = const_b;
3730     /* set pointers for legacy curve arith */
3731     const limb_t *X1 = Q->X;
3732     const limb_t *Y1 = Q->Y;
3733     const limb_t *Z1 = Q->Z;
3734     const limb_t *X2 = P->X;
3735     const limb_t *Y2 = P->Y;
3736     fe_t X3;
3737     fe_t Y3;
3738     fe_t Z3;
3739     limb_t nz;
3740
3741     /* check P for affine inf */
3742     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_nonzero(&nz, P->Y);
3743
3744     /* the curve arith formula */
3745     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t0, X1, X2);
3746     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, Y1, Y2);
3747     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, X2, Y2);
3748     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, X1, Y1);
3749     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t3, t3, t4);
3750     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, t0, t1);
3751     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t3, t3, t4);
3752     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t4, Y2, Z1);
3753     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, t4, Y1);
3754     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X2, Z1);
3755     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, X1);
3756     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, b, Z1);
3757     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, Y3, Z3);
3758     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, X3, X3);
3759     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, X3, Z3);
3760     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, t1, X3);
3761     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, t1, X3);
3762     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, b, Y3);
3763     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, Z1, Z1);
3764     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t2, t1, Z1);
3765     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t2);
3766     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t0);
3767     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, Y3, Y3);
3768     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t1, Y3);
3769     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, t0, t0);
3770     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t1, t0);
3771     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t0, t0, t2);
3772     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t4, Y3);
3773     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t2, t0, Y3);
3774     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X3, Z3);
3775     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, t2);
3776     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, t3, X3);
3777     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, X3, t1);
3778     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t4, Z3);
3779     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t3, t0);
3780     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, t1);
3781
3782     /* if P is inf, throw all that away and take Q */
3783     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(R->X, nz, Q->X, X3);
3784     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(R->Y, nz, Q->Y, Y3);
3785     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(R->Z, nz, Q->Z, Z3);
3786 }
3787
3788 /*-
3789  * R := Q + P all projective.
3790  * R and Q same pointers OK
3791  * R and P same pointers not OK
3792  * Autogenerated: op3/add_proj.op3
3793  * https://eprint.iacr.org/2015/1060 Alg 4
3794  * ASSERT: a = -3
3795  */
3796 static void point_add_proj(pt_prj_t *R, const pt_prj_t *Q, const pt_prj_t *P) {
3797     /* temporary variables */
3798     fe_t t0, t1, t2, t3, t4, t5;
3799     /* constants */
3800     const limb_t *b = const_b;
3801     /* set pointers for legacy curve arith */
3802     const limb_t *X1 = Q->X;
3803     const limb_t *Y1 = Q->Y;
3804     const limb_t *Z1 = Q->Z;
3805     const limb_t *X2 = P->X;
3806     const limb_t *Y2 = P->Y;
3807     const limb_t *Z2 = P->Z;
3808     limb_t *X3 = R->X;
3809     limb_t *Y3 = R->Y;
3810     limb_t *Z3 = R->Z;
3811
3812     /* the curve arith formula */
3813     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t0, X1, X2);
3814     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, Y1, Y2);
3815     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t2, Z1, Z2);
3816     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, X1, Y1);
3817     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, X2, Y2);
3818     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t3, t3, t4);
3819     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, t0, t1);
3820     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t3, t3, t4);
3821     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, Y1, Z1);
3822     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t5, Y2, Z2);
3823     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t4, t4, t5);
3824     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t5, t1, t2);
3825     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t4, t4, t5);
3826     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, X1, Z1);
3827     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, X2, Z2);
3828     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, X3, Y3);
3829     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t0, t2);
3830     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, X3, Y3);
3831     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, b, t2);
3832     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, Y3, Z3);
3833     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, X3, X3);
3834     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, X3, Z3);
3835     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, t1, X3);
3836     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, t1, X3);
3837     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, b, Y3);
3838     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, t2, t2);
3839     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t2, t1, t2);
3840     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t2);
3841     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t0);
3842     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, Y3, Y3);
3843     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t1, Y3);
3844     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, t0, t0);
3845     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t1, t0);
3846     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t0, t0, t2);
3847     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t4, Y3);
3848     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t2, t0, Y3);
3849     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X3, Z3);
3850     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, t2);
3851     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, t3, X3);
3852     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, X3, t1);
3853     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t4, Z3);
3854     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t3, t0);
3855     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, t1);
3856 }
3857
3858 /* constants */
3859 #define RADIX 5
3860 #define DRADIX (1 << RADIX)
3861 #define DRADIX_WNAF ((DRADIX) << 1)
3862
3863 /*-
3864  * precomp for wnaf scalar multiplication:
3865  * precomp[0] = 1P
3866  * precomp[1] = 3P
3867  * precomp[2] = 5P
3868  * precomp[3] = 7P
3869  * precomp[4] = 9P
3870  * ...
3871  */
3872 static void precomp_wnaf(pt_prj_t precomp[DRADIX / 2], const pt_aff_t *P) {
3873     int i;
3874
3875     fe_copy(precomp[0].X, P->X);
3876     fe_copy(precomp[0].Y, P->Y);
3877     fe_copy(precomp[0].Z, const_one);
3878     point_double(&precomp[DRADIX / 2 - 1], &precomp[0]);
3879
3880     for (i = 1; i < DRADIX / 2; i++)
3881         point_add_proj(&precomp[i], &precomp[DRADIX / 2 - 1], &precomp[i - 1]);
3882 }
3883
3884 /* fetch a scalar bit */
3885 static int scalar_get_bit(const unsigned char in[32], int idx) {
3886     int widx, rshift;
3887
3888     widx = idx >> 3;
3889     rshift = idx & 0x7;
3890
3891     if (idx < 0 || widx >= 32) return 0;
3892
3893     return (in[widx] >> rshift) & 0x1;
3894 }
3895
3896 /*-
3897  * Compute "regular" wnaf representation of a scalar.
3898  * See "Exponent Recoding and Regular Exponentiation Algorithms",
3899  * Tunstall et al., AfricaCrypt 2009, Alg 6.
3900  * It forces an odd scalar and outputs digits in
3901  * {\pm 1, \pm 3, \pm 5, \pm 7, \pm 9, ...}
3902  * i.e. signed odd digits with _no zeroes_ -- that makes it "regular".
3903  */
3904 static void scalar_rwnaf(int8_t out[52], const unsigned char in[32]) {
3905     int i;
3906     int8_t window, d;
3907
3908     window = (in[0] & (DRADIX_WNAF - 1)) | 1;
3909     for (i = 0; i < 51; i++) {
3910         d = (window & (DRADIX_WNAF - 1)) - DRADIX;
3911         out[i] = d;
3912         window = (window - d) >> RADIX;
3913         window += scalar_get_bit(in, (i + 1) * RADIX + 1) << 1;
3914         window += scalar_get_bit(in, (i + 1) * RADIX + 2) << 2;
3915         window += scalar_get_bit(in, (i + 1) * RADIX + 3) << 3;
3916         window += scalar_get_bit(in, (i + 1) * RADIX + 4) << 4;
3917         window += scalar_get_bit(in, (i + 1) * RADIX + 5) << 5;
3918     }
3919     out[i] = window;
3920 }
3921
3922 /*-
3923  * Compute "textbook" wnaf representation of a scalar.
3924  * NB: not constant time
3925  */
3926 static void scalar_wnaf(int8_t out[257], const unsigned char in[32]) {
3927     int i;
3928     int8_t window, d;
3929
3930     window = in[0] & (DRADIX_WNAF - 1);
3931     for (i = 0; i < 257; i++) {
3932         d = 0;
3933         if ((window & 1) && ((d = window & (DRADIX_WNAF - 1)) & DRADIX))
3934             d -= DRADIX_WNAF;
3935         out[i] = d;
3936         window = (window - d) >> 1;
3937         window += scalar_get_bit(in, i + 1 + RADIX) << RADIX;
3938     }
3939 }
3940
3941 /*-
3942  * Simulateous scalar multiplication: interleaved "textbook" wnaf.
3943  * NB: not constant time
3944  */
3945 static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[32],
3946                               const unsigned char b[32], const pt_aff_t *P) {
3947     int i, d, is_neg, is_inf = 1, flipped = 0;
3948     int8_t anaf[257] = {0};
3949     int8_t bnaf[257] = {0};
3950     pt_prj_t Q;
3951     pt_prj_t precomp[DRADIX / 2];
3952
3953     precomp_wnaf(precomp, P);
3954     scalar_wnaf(anaf, a);
3955     scalar_wnaf(bnaf, b);
3956
3957     for (i = 256; i >= 0; i--) {
3958         if (!is_inf) point_double(&Q, &Q);
3959         if ((d = bnaf[i])) {
3960             if ((is_neg = d < 0) != flipped) {
3961                 fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(Q.Y, Q.Y);
3962                 flipped ^= 1;
3963             }
3964             d = (is_neg) ? (-d - 1) >> 1 : (d - 1) >> 1;
3965             if (is_inf) {
3966                 /* initialize accumulator */
3967                 fe_copy(Q.X, &precomp[d].X);
3968                 fe_copy(Q.Y, &precomp[d].Y);
3969                 fe_copy(Q.Z, &precomp[d].Z);
3970                 is_inf = 0;
3971             } else
3972                 point_add_proj(&Q, &Q, &precomp[d]);
3973         }
3974         if ((d = anaf[i])) {
3975             if ((is_neg = d < 0) != flipped) {
3976                 fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(Q.Y, Q.Y);
3977                 flipped ^= 1;
3978             }
3979             d = (is_neg) ? (-d - 1) >> 1 : (d - 1) >> 1;
3980             if (is_inf) {
3981                 /* initialize accumulator */
3982                 fe_copy(Q.X, &lut_cmb[0][d].X);
3983                 fe_copy(Q.Y, &lut_cmb[0][d].Y);
3984                 fe_copy(Q.Z, const_one);
3985                 is_inf = 0;
3986             } else
3987                 point_add_mixed(&Q, &Q, &lut_cmb[0][d]);
3988         }
3989     }
3990
3991     if (is_inf) {
3992         /* initialize accumulator to inf: all-zero scalars */
3993         fe_set_zero(Q.X);
3994         fe_copy(Q.Y, const_one);
3995         fe_set_zero(Q.Z);
3996     }
3997
3998     if (flipped) {
3999         /* correct sign */
4000         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(Q.Y, Q.Y);
4001     }
4002
4003     /* convert to affine -- NB depends on coordinate system */
4004     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(Q.Z, Q.Z);
4005     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->X, Q.X, Q.Z);
4006     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->Y, Q.Y, Q.Z);
4007 }
4008
4009 /*-
4010  * Variable point scalar multiplication with "regular" wnaf.
4011  */
4012 static void var_smul_rwnaf(pt_aff_t *out, const unsigned char scalar[32],
4013                            const pt_aff_t *P) {
4014     int i, j, d, diff, is_neg;
4015     int8_t rnaf[52] = {0};
4016     pt_prj_t Q, lut;
4017     pt_prj_t precomp[DRADIX / 2];
4018
4019     precomp_wnaf(precomp, P);
4020     scalar_rwnaf(rnaf, scalar);
4021
4022 #if defined(_MSC_VER)
4023     /* result still unsigned: yes we know */
4024 #pragma warning(push)
4025 #pragma warning(disable : 4146)
4026 #endif
4027
4028     /* initialize accumulator to high digit */
4029     d = (rnaf[51] - 1) >> 1;
4030     for (j = 0; j < DRADIX / 2; j++) {
4031         diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1;
4032         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.X, diff, Q.X,
4033                                                               precomp[j].X);
4034         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Y, diff, Q.Y,
4035                                                               precomp[j].Y);
4036         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Z, diff, Q.Z,
4037                                                               precomp[j].Z);
4038     }
4039
4040     for (i = 50; i >= 0; i--) {
4041         for (j = 0; j < RADIX; j++) point_double(&Q, &Q);
4042         d = rnaf[i];
4043         /* is_neg = (d < 0) ? 1 : 0 */
4044         is_neg = (d >> (8 * sizeof(int) - 1)) & 1;
4045         /* d = abs(d) */
4046         d = (d ^ -is_neg) + is_neg;
4047         d = (d - 1) >> 1;
4048         for (j = 0; j < DRADIX / 2; j++) {
4049             diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1;
4050             fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(
4051                 lut.X, diff, lut.X, precomp[j].X);
4052             fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(
4053                 lut.Y, diff, lut.Y, precomp[j].Y);
4054             fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(
4055                 lut.Z, diff, lut.Z, precomp[j].Z);
4056         }
4057         /* negate lut point if digit is negative */
4058         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(out->Y, lut.Y);
4059         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(lut.Y, is_neg,
4060                                                               lut.Y, out->Y);
4061         point_add_proj(&Q, &Q, &lut);
4062     }
4063
4064 #if defined(_MSC_VER)
4065 #pragma warning(pop)
4066 #endif
4067
4068     /* conditionally subtract P if the scalar was even */
4069     fe_copy(lut.X, precomp[0].X);
4070     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(lut.Y, precomp[0].Y);
4071     fe_copy(lut.Z, precomp[0].Z);
4072     point_add_proj(&lut, &lut, &Q);
4073     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.X, scalar[0] & 1,
4074                                                           lut.X, Q.X);
4075     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Y, scalar[0] & 1,
4076                                                           lut.Y, Q.Y);
4077     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Z, scalar[0] & 1,
4078                                                           lut.Z, Q.Z);
4079
4080     /* convert to affine -- NB depends on coordinate system */
4081     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(Q.Z, Q.Z);
4082     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->X, Q.X, Q.Z);
4083     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->Y, Q.Y, Q.Z);
4084 }
4085
4086 /*-
4087  * Fixed scalar multiplication: comb with interleaving.
4088  */
4089 static void fixed_smul_cmb(pt_aff_t *out, const unsigned char scalar[32]) {
4090     int i, j, k, d, diff, is_neg = 0;
4091     int8_t rnaf[52] = {0};
4092     pt_prj_t Q, R;
4093     pt_aff_t lut;
4094
4095     scalar_rwnaf(rnaf, scalar);
4096
4097     /* initalize accumulator to inf */
4098     fe_set_zero(Q.X);
4099     fe_copy(Q.Y, const_one);
4100     fe_set_zero(Q.Z);
4101
4102 #if defined(_MSC_VER)
4103     /* result still unsigned: yes we know */
4104 #pragma warning(push)
4105 #pragma warning(disable : 4146)
4106 #endif
4107
4108     for (i = 1; i >= 0; i--) {
4109         for (j = 0; i != 1 && j < RADIX; j++) point_double(&Q, &Q);
4110         for (j = 0; j < 27; j++) {
4111             if (j * 2 + i > 51) continue;
4112             d = rnaf[j * 2 + i];
4113             /* is_neg = (d < 0) ? 1 : 0 */
4114             is_neg = (d >> (8 * sizeof(int) - 1)) & 1;
4115             /* d = abs(d) */
4116             d = (d ^ -is_neg) + is_neg;
4117             d = (d - 1) >> 1;
4118             for (k = 0; k < DRADIX / 2; k++) {
4119                 diff = (1 - (-(d ^ k) >> (8 * sizeof(int) - 1))) & 1;
4120                 fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(
4121                     lut.X, diff, lut.X, lut_cmb[j][k].X);
4122                 fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(
4123                     lut.Y, diff, lut.Y, lut_cmb[j][k].Y);
4124             }
4125             /* negate lut point if digit is negative */
4126             fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(out->Y, lut.Y);
4127             fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(
4128                 lut.Y, is_neg, lut.Y, out->Y);
4129             point_add_mixed(&Q, &Q, &lut);
4130         }
4131     }
4132
4133 #if defined(_MSC_VER)
4134 #pragma warning(pop)
4135 #endif
4136
4137     /* conditionally subtract P if the scalar was even */
4138     fe_copy(lut.X, lut_cmb[0][0].X);
4139     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(lut.Y, lut_cmb[0][0].Y);
4140     point_add_mixed(&R, &Q, &lut);
4141     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.X, scalar[0] & 1,
4142                                                           R.X, Q.X);
4143     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Y, scalar[0] & 1,
4144                                                           R.Y, Q.Y);
4145     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Z, scalar[0] & 1,
4146                                                           R.Z, Q.Z);
4147
4148     /* convert to affine -- NB depends on coordinate system */
4149     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(Q.Z, Q.Z);
4150     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->X, Q.X, Q.Z);
4151     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->Y, Q.Y, Q.Z);
4152 }
4153
4154 static void point_mul_two(unsigned char outx[32], unsigned char outy[32],
4155                           const unsigned char a[32], const unsigned char b[32],
4156                           const unsigned char inx[32],
4157                           const unsigned char iny[32]) {
4158     pt_aff_t P;
4159
4160     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.X, inx);
4161     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.Y, iny);
4162     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.X, P.X);
4163     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.Y, P.Y);
4164     /* simultaneous scalar multiplication */
4165     var_smul_wnaf_two(&P, a, b, &P);
4166
4167     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.X, P.X);
4168     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.Y, P.Y);
4169     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outx, P.X);
4170     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outy, P.Y);
4171 }
4172
4173 static void point_mul_g(unsigned char outx[32], unsigned char outy[32],
4174                         const unsigned char scalar[32]) {
4175     pt_aff_t P;
4176
4177     /* fixed scmul function */
4178     fixed_smul_cmb(&P, scalar);
4179     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.X, P.X);
4180     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.Y, P.Y);
4181     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outx, P.X);
4182     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outy, P.Y);
4183 }
4184
4185 static void point_mul(unsigned char outx[32], unsigned char outy[32],
4186                       const unsigned char scalar[32],
4187                       const unsigned char inx[32],
4188                       const unsigned char iny[32]) {
4189     pt_aff_t P;
4190
4191     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.X, inx);
4192     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.Y, iny);
4193     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.X, P.X);
4194     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.Y, P.Y);
4195     /* var scmul function */
4196     var_smul_rwnaf(&P, scalar, &P);
4197     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.X, P.X);
4198     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.Y, P.Y);
4199     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outx, P.X);
4200     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outy, P.Y);
4201 }
4202
4203
4204 #include <openssl/ec.h>
4205
4206 static const unsigned char const_zb[32] = {0};
4207
4208     int
4209     point_mul_two_id_GostR3410_2001_CryptoPro_B_ParamSet(
4210         const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q,
4211         const BIGNUM *m, BN_CTX *ctx) {
4212     int ret = 0;
4213     unsigned char b_x[32];
4214     unsigned char b_y[32];
4215     unsigned char b_n[32];
4216     unsigned char b_m[32];
4217     BIGNUM *x = NULL, *y = NULL;
4218
4219     BN_CTX_start(ctx);
4220     x = BN_CTX_get(ctx);
4221     if ((y = BN_CTX_get(ctx)) == NULL
4222         /* pull out coords as bytes */
4223         || !EC_POINT_get_affine_coordinates(group, q, x, y, ctx) ||
4224         BN_bn2lebinpad(x, b_x, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 ||
4225         BN_bn2lebinpad(n, b_n, 32) != 32 || BN_bn2lebinpad(m, b_m, 32) != 32)
4226         goto err;
4227     /* do the simultaneous scalar multiplication */
4228     point_mul_two(b_x, b_y, b_n, b_m, b_x, b_y);
4229     /* check for infinity */
4230     if (CRYPTO_memcmp(const_zb, b_x, 32) == 0 &&
4231         CRYPTO_memcmp(const_zb, b_y, 32) == 0) {
4232         if (!EC_POINT_set_to_infinity(group, r)) goto err;
4233     } else {
4234         /* otherwise, pack the bytes into the result */
4235         if (BN_lebin2bn(b_x, 32, x) == NULL ||
4236             BN_lebin2bn(b_y, 32, y) == NULL ||
4237             !EC_POINT_set_affine_coordinates(group, r, x, y, ctx))
4238             goto err;
4239     }
4240     ret = 1;
4241 err:
4242     BN_CTX_end(ctx);
4243     return ret;
4244 }
4245
4246     int
4247     point_mul_id_GostR3410_2001_CryptoPro_B_ParamSet(const EC_GROUP *group,
4248                                                      EC_POINT *r,
4249                                                      const EC_POINT *q,
4250                                                      const BIGNUM *m,
4251                                                      BN_CTX *ctx) {
4252     int ret = 0;
4253     unsigned char b_x[32];
4254     unsigned char b_y[32];
4255     unsigned char b_m[32];
4256     BIGNUM *x = NULL, *y = NULL;
4257
4258     BN_CTX_start(ctx);
4259     x = BN_CTX_get(ctx);
4260     if ((y = BN_CTX_get(ctx)) == NULL
4261         /* pull out coords as bytes */
4262         || !EC_POINT_get_affine_coordinates(group, q, x, y, ctx) ||
4263         BN_bn2lebinpad(x, b_x, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 ||
4264         BN_bn2lebinpad(m, b_m, 32) != 32)
4265         goto err;
4266     /* do the variable scalar multiplication */
4267     point_mul(b_x, b_y, b_m, b_x, b_y);
4268     /* check for infinity */
4269     if (CRYPTO_memcmp(const_zb, b_x, 32) == 0 &&
4270         CRYPTO_memcmp(const_zb, b_y, 32) == 0) {
4271         if (!EC_POINT_set_to_infinity(group, r)) goto err;
4272     } else {
4273         /* otherwise, pack the bytes into the result */
4274         if (BN_lebin2bn(b_x, 32, x) == NULL ||
4275             BN_lebin2bn(b_y, 32, y) == NULL ||
4276             !EC_POINT_set_affine_coordinates(group, r, x, y, ctx))
4277             goto err;
4278     }
4279     ret = 1;
4280 err:
4281     BN_CTX_end(ctx);
4282     return ret;
4283 }
4284
4285     int
4286     point_mul_g_id_GostR3410_2001_CryptoPro_B_ParamSet(const EC_GROUP *group,
4287                                                        EC_POINT *r,
4288                                                        const BIGNUM *n,
4289                                                        BN_CTX *ctx) {
4290     int ret = 0;
4291     unsigned char b_x[32];
4292     unsigned char b_y[32];
4293     unsigned char b_n[32];
4294     BIGNUM *x = NULL, *y = NULL;
4295
4296     BN_CTX_start(ctx);
4297     x = BN_CTX_get(ctx);
4298     if ((y = BN_CTX_get(ctx)) == NULL || BN_bn2lebinpad(n, b_n, 32) != 32)
4299         goto err;
4300     /* do the fixed scalar multiplication */
4301     point_mul_g(b_x, b_y, b_n);
4302     /* check for infinity */
4303     if (CRYPTO_memcmp(const_zb, b_x, 32) == 0 &&
4304         CRYPTO_memcmp(const_zb, b_y, 32) == 0) {
4305         if (!EC_POINT_set_to_infinity(group, r)) goto err;
4306     } else {
4307         /* otherwise, pack the bytes into the result */
4308         if (BN_lebin2bn(b_x, 32, x) == NULL ||
4309             BN_lebin2bn(b_y, 32, y) == NULL ||
4310             !EC_POINT_set_affine_coordinates(group, r, x, y, ctx))
4311             goto err;
4312     }
4313     ret = 1;
4314 err:
4315     BN_CTX_end(ctx);
4316     return ret;
4317 }
4318
4319
4320
4321 #else /* __SIZEOF_INT128__ */
4322
4323 #include <stdint.h>
4324 #include <string.h>
4325 #define LIMB_BITS 32
4326 #define LIMB_CNT 8
4327 /* Field elements */
4328 typedef uint32_t fe_t[LIMB_CNT];
4329 typedef uint32_t limb_t;
4330
4331 #define fe_copy(d, s) memcpy(d, s, sizeof(fe_t))
4332 #define fe_set_zero(d) memset(d, 0, sizeof(fe_t))
4333
4334 /* Projective points */
4335 typedef struct {
4336     fe_t X;
4337     fe_t Y;
4338     fe_t Z;
4339 } pt_prj_t;
4340
4341 /* Affine points */
4342 typedef struct {
4343     fe_t X;
4344     fe_t Y;
4345 } pt_aff_t;
4346
4347 /* BEGIN verbatim fiat code https://github.com/mit-plv/fiat-crypto */
4348 /*-
4349  * MIT License
4350  *
4351  * Copyright (c) 2020 the fiat-crypto authors (see the AUTHORS file)
4352  *
4353  * Permission is hereby granted, free of charge, to any person obtaining a copy
4354  * of this software and associated documentation files (the "Software"), to deal
4355  * in the Software without restriction, including without limitation the rights
4356  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
4357  * copies of the Software, and to permit persons to whom the Software is
4358  * furnished to do so, subject to the following conditions:
4359  *
4360  * The above copyright notice and this permission notice shall be included in
4361  * all copies or substantial portions of the Software.
4362  *
4363  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
4364  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
4365  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
4366  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
4367  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
4368  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
4369  * SOFTWARE.
4370  */
4371
4372 /* Autogenerated: word_by_word_montgomery --static id_GostR3410_2001_CryptoPro_B_ParamSet 32 '2^255 + 3225' */
4373 /* curve description: id_GostR3410_2001_CryptoPro_B_ParamSet */
4374 /* machine_wordsize = 32 (from "32") */
4375 /* requested operations: (all) */
4376 /* m = 0x8000000000000000000000000000000000000000000000000000000000000c99 (from "2^255 + 3225") */
4377 /*                                                                    */
4378 /* NOTE: In addition to the bounds specified above each function, all */
4379 /*   functions synthesized for this Montgomery arithmetic require the */
4380 /*   input to be strictly less than the prime modulus (m), and also   */
4381 /*   require the input to be in the unique saturated representation.  */
4382 /*   All functions also ensure that these two properties are true of  */
4383 /*   return values.                                                   */
4384 /*  */
4385 /* Computed values: */
4386 /* eval z = z[0] + (z[1] << 32) + (z[2] << 64) + (z[3] << 96) + (z[4] << 128) + (z[5] << 160) + (z[6] << 192) + (z[7] << 224) */
4387 /* bytes_eval z = z[0] + (z[1] << 8) + (z[2] << 16) + (z[3] << 24) + (z[4] << 32) + (z[5] << 40) + (z[6] << 48) + (z[7] << 56) + (z[8] << 64) + (z[9] << 72) + (z[10] << 80) + (z[11] << 88) + (z[12] << 96) + (z[13] << 104) + (z[14] << 112) + (z[15] << 120) + (z[16] << 128) + (z[17] << 136) + (z[18] << 144) + (z[19] << 152) + (z[20] << 160) + (z[21] << 168) + (z[22] << 176) + (z[23] << 184) + (z[24] << 192) + (z[25] << 200) + (z[26] << 208) + (z[27] << 216) + (z[28] << 224) + (z[29] << 232) + (z[30] << 240) + (z[31] << 248) */
4388
4389 #include <stdint.h>
4390 typedef unsigned char fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1;
4391 typedef signed char fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1;
4392
4393 #if (-1 & 3) != 3
4394 #error "This code only works on a two's complement system"
4395 #endif
4396
4397 /*
4398  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32 is an addition with carry.
4399  * Postconditions:
4400  *   out1 = (arg1 + arg2 + arg3) mod 2^32
4401  *   out2 = ⌊(arg1 + arg2 + arg3) / 2^32⌋
4402  *
4403  * Input Bounds:
4404  *   arg1: [0x0 ~> 0x1]
4405  *   arg2: [0x0 ~> 0xffffffff]
4406  *   arg3: [0x0 ~> 0xffffffff]
4407  * Output Bounds:
4408  *   out1: [0x0 ~> 0xffffffff]
4409  *   out2: [0x0 ~> 0x1]
4410  */
4411 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
4412     uint32_t *out1, fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 *out2,
4413     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1, uint32_t arg2,
4414     uint32_t arg3) {
4415     uint64_t x1;
4416     uint32_t x2;
4417     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x3;
4418     x1 = ((arg1 + (uint64_t)arg2) + arg3);
4419     x2 = (uint32_t)(x1 & UINT32_C(0xffffffff));
4420     x3 = (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1)(x1 >> 32);
4421     *out1 = x2;
4422     *out2 = x3;
4423 }
4424
4425 /*
4426  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32 is a subtraction with borrow.
4427  * Postconditions:
4428  *   out1 = (-arg1 + arg2 + -arg3) mod 2^32
4429  *   out2 = -⌊(-arg1 + arg2 + -arg3) / 2^32⌋
4430  *
4431  * Input Bounds:
4432  *   arg1: [0x0 ~> 0x1]
4433  *   arg2: [0x0 ~> 0xffffffff]
4434  *   arg3: [0x0 ~> 0xffffffff]
4435  * Output Bounds:
4436  *   out1: [0x0 ~> 0xffffffff]
4437  *   out2: [0x0 ~> 0x1]
4438  */
4439 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
4440     uint32_t *out1, fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 *out2,
4441     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1, uint32_t arg2,
4442     uint32_t arg3) {
4443     int64_t x1;
4444     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1 x2;
4445     uint32_t x3;
4446     x1 = ((arg2 - (int64_t)arg1) - arg3);
4447     x2 = (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1)(x1 >> 32);
4448     x3 = (uint32_t)(x1 & UINT32_C(0xffffffff));
4449     *out1 = x3;
4450     *out2 = (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1)(0x0 - x2);
4451 }
4452
4453 /*
4454  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32 is a multiplication, returning the full double-width result.
4455  * Postconditions:
4456  *   out1 = (arg1 * arg2) mod 2^32
4457  *   out2 = ⌊arg1 * arg2 / 2^32⌋
4458  *
4459  * Input Bounds:
4460  *   arg1: [0x0 ~> 0xffffffff]
4461  *   arg2: [0x0 ~> 0xffffffff]
4462  * Output Bounds:
4463  *   out1: [0x0 ~> 0xffffffff]
4464  *   out2: [0x0 ~> 0xffffffff]
4465  */
4466 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(
4467     uint32_t *out1, uint32_t *out2, uint32_t arg1, uint32_t arg2) {
4468     uint64_t x1;
4469     uint32_t x2;
4470     uint32_t x3;
4471     x1 = ((uint64_t)arg1 * arg2);
4472     x2 = (uint32_t)(x1 & UINT32_C(0xffffffff));
4473     x3 = (uint32_t)(x1 >> 32);
4474     *out1 = x2;
4475     *out2 = x3;
4476 }
4477
4478 /*
4479  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32 is a single-word conditional move.
4480  * Postconditions:
4481  *   out1 = (if arg1 = 0 then arg2 else arg3)
4482  *
4483  * Input Bounds:
4484  *   arg1: [0x0 ~> 0x1]
4485  *   arg2: [0x0 ~> 0xffffffff]
4486  *   arg3: [0x0 ~> 0xffffffff]
4487  * Output Bounds:
4488  *   out1: [0x0 ~> 0xffffffff]
4489  */
4490 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(
4491     uint32_t *out1, fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1,
4492     uint32_t arg2, uint32_t arg3) {
4493     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x1;
4494     uint32_t x2;
4495     uint32_t x3;
4496     x1 = (!(!arg1));
4497     x2 = ((fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1)(0x0 - x1) &
4498           UINT32_C(0xffffffff));
4499     x3 = ((x2 & arg3) | ((~x2) & arg2));
4500     *out1 = x3;
4501 }
4502
4503 /*
4504  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul multiplies two field elements in the Montgomery domain.
4505  * Preconditions:
4506  *   0 ≤ eval arg1 < m
4507  *   0 ≤ eval arg2 < m
4508  * Postconditions:
4509  *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m
4510  *   0 ≤ eval out1 < m
4511  *
4512  * Input Bounds:
4513  *   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
4514  *   arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
4515  * Output Bounds:
4516  *   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
4517  */
4518 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(
4519     uint32_t out1[8], const uint32_t arg1[8], const uint32_t arg2[8]) {
4520     uint32_t x1;
4521     uint32_t x2;
4522     uint32_t x3;
4523     uint32_t x4;
4524     uint32_t x5;
4525     uint32_t x6;
4526     uint32_t x7;
4527     uint32_t x8;
4528     uint32_t x9;
4529     uint32_t x10;
4530     uint32_t x11;
4531     uint32_t x12;
4532     uint32_t x13;
4533     uint32_t x14;
4534     uint32_t x15;
4535     uint32_t x16;
4536     uint32_t x17;
4537     uint32_t x18;
4538     uint32_t x19;
4539     uint32_t x20;
4540     uint32_t x21;
4541     uint32_t x22;
4542     uint32_t x23;
4543     uint32_t x24;
4544     uint32_t x25;
4545     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x26;
4546     uint32_t x27;
4547     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x28;
4548     uint32_t x29;
4549     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x30;
4550     uint32_t x31;
4551     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x32;
4552     uint32_t x33;
4553     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x34;
4554     uint32_t x35;
4555     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x36;
4556     uint32_t x37;
4557     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x38;
4558     uint32_t x39;
4559     uint32_t x40;
4560     uint32_t x41;
4561     uint32_t x42;
4562     uint32_t x43;
4563     uint32_t x44;
4564     uint32_t x45;
4565     uint32_t x46;
4566     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x47;
4567     uint32_t x48;
4568     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x49;
4569     uint32_t x50;
4570     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x51;
4571     uint32_t x52;
4572     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x53;
4573     uint32_t x54;
4574     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x55;
4575     uint32_t x56;
4576     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x57;
4577     uint32_t x58;
4578     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x59;
4579     uint32_t x60;
4580     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x61;
4581     uint32_t x62;
4582     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x63;
4583     uint32_t x64;
4584     uint32_t x65;
4585     uint32_t x66;
4586     uint32_t x67;
4587     uint32_t x68;
4588     uint32_t x69;
4589     uint32_t x70;
4590     uint32_t x71;
4591     uint32_t x72;
4592     uint32_t x73;
4593     uint32_t x74;
4594     uint32_t x75;
4595     uint32_t x76;
4596     uint32_t x77;
4597     uint32_t x78;
4598     uint32_t x79;
4599     uint32_t x80;
4600     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x81;
4601     uint32_t x82;
4602     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x83;
4603     uint32_t x84;
4604     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x85;
4605     uint32_t x86;
4606     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x87;
4607     uint32_t x88;
4608     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x89;
4609     uint32_t x90;
4610     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x91;
4611     uint32_t x92;
4612     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x93;
4613     uint32_t x94;
4614     uint32_t x95;
4615     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x96;
4616     uint32_t x97;
4617     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x98;
4618     uint32_t x99;
4619     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x100;
4620     uint32_t x101;
4621     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x102;
4622     uint32_t x103;
4623     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x104;
4624     uint32_t x105;
4625     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x106;
4626     uint32_t x107;
4627     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x108;
4628     uint32_t x109;
4629     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x110;
4630     uint32_t x111;
4631     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x112;
4632     uint32_t x113;
4633     uint32_t x114;
4634     uint32_t x115;
4635     uint32_t x116;
4636     uint32_t x117;
4637     uint32_t x118;
4638     uint32_t x119;
4639     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x120;
4640     uint32_t x121;
4641     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x122;
4642     uint32_t x123;
4643     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x124;
4644     uint32_t x125;
4645     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x126;
4646     uint32_t x127;
4647     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x128;
4648     uint32_t x129;
4649     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x130;
4650     uint32_t x131;
4651     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x132;
4652     uint32_t x133;
4653     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x134;
4654     uint32_t x135;
4655     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x136;
4656     uint32_t x137;
4657     uint32_t x138;
4658     uint32_t x139;
4659     uint32_t x140;
4660     uint32_t x141;
4661     uint32_t x142;
4662     uint32_t x143;
4663     uint32_t x144;
4664     uint32_t x145;
4665     uint32_t x146;
4666     uint32_t x147;
4667     uint32_t x148;
4668     uint32_t x149;
4669     uint32_t x150;
4670     uint32_t x151;
4671     uint32_t x152;
4672     uint32_t x153;
4673     uint32_t x154;
4674     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x155;
4675     uint32_t x156;
4676     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x157;
4677     uint32_t x158;
4678     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x159;
4679     uint32_t x160;
4680     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x161;
4681     uint32_t x162;
4682     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x163;
4683     uint32_t x164;
4684     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x165;
4685     uint32_t x166;
4686     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x167;
4687     uint32_t x168;
4688     uint32_t x169;
4689     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x170;
4690     uint32_t x171;
4691     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x172;
4692     uint32_t x173;
4693     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x174;
4694     uint32_t x175;
4695     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x176;
4696     uint32_t x177;
4697     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x178;
4698     uint32_t x179;
4699     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x180;
4700     uint32_t x181;
4701     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x182;
4702     uint32_t x183;
4703     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x184;
4704     uint32_t x185;
4705     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x186;
4706     uint32_t x187;
4707     uint32_t x188;
4708     uint32_t x189;
4709     uint32_t x190;
4710     uint32_t x191;
4711     uint32_t x192;
4712     uint32_t x193;
4713     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x194;
4714     uint32_t x195;
4715     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x196;
4716     uint32_t x197;
4717     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x198;
4718     uint32_t x199;
4719     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x200;
4720     uint32_t x201;
4721     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x202;
4722     uint32_t x203;
4723     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x204;
4724     uint32_t x205;
4725     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x206;
4726     uint32_t x207;
4727     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x208;
4728     uint32_t x209;
4729     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x210;
4730     uint32_t x211;
4731     uint32_t x212;
4732     uint32_t x213;
4733     uint32_t x214;
4734     uint32_t x215;
4735     uint32_t x216;
4736     uint32_t x217;
4737     uint32_t x218;
4738     uint32_t x219;
4739     uint32_t x220;
4740     uint32_t x221;
4741     uint32_t x222;
4742     uint32_t x223;
4743     uint32_t x224;
4744     uint32_t x225;
4745     uint32_t x226;
4746     uint32_t x227;
4747     uint32_t x228;
4748     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x229;
4749     uint32_t x230;
4750     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x231;
4751     uint32_t x232;
4752     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x233;
4753     uint32_t x234;
4754     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x235;
4755     uint32_t x236;
4756     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x237;
4757     uint32_t x238;
4758     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x239;
4759     uint32_t x240;
4760     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x241;
4761     uint32_t x242;
4762     uint32_t x243;
4763     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x244;
4764     uint32_t x245;
4765     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x246;
4766     uint32_t x247;
4767     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x248;
4768     uint32_t x249;
4769     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x250;
4770     uint32_t x251;
4771     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x252;
4772     uint32_t x253;
4773     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x254;
4774     uint32_t x255;
4775     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x256;
4776     uint32_t x257;
4777     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x258;
4778     uint32_t x259;
4779     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x260;
4780     uint32_t x261;
4781     uint32_t x262;
4782     uint32_t x263;
4783     uint32_t x264;
4784     uint32_t x265;
4785     uint32_t x266;
4786     uint32_t x267;
4787     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x268;
4788     uint32_t x269;
4789     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x270;
4790     uint32_t x271;
4791     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x272;
4792     uint32_t x273;
4793     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x274;
4794     uint32_t x275;
4795     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x276;
4796     uint32_t x277;
4797     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x278;
4798     uint32_t x279;
4799     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x280;
4800     uint32_t x281;
4801     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x282;
4802     uint32_t x283;
4803     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x284;
4804     uint32_t x285;
4805     uint32_t x286;
4806     uint32_t x287;
4807     uint32_t x288;
4808     uint32_t x289;
4809     uint32_t x290;
4810     uint32_t x291;
4811     uint32_t x292;
4812     uint32_t x293;
4813     uint32_t x294;
4814     uint32_t x295;
4815     uint32_t x296;
4816     uint32_t x297;
4817     uint32_t x298;
4818     uint32_t x299;
4819     uint32_t x300;
4820     uint32_t x301;
4821     uint32_t x302;
4822     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x303;
4823     uint32_t x304;
4824     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x305;
4825     uint32_t x306;
4826     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x307;
4827     uint32_t x308;
4828     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x309;
4829     uint32_t x310;
4830     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x311;
4831     uint32_t x312;
4832     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x313;
4833     uint32_t x314;
4834     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x315;
4835     uint32_t x316;
4836     uint32_t x317;
4837     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x318;
4838     uint32_t x319;
4839     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x320;
4840     uint32_t x321;
4841     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x322;
4842     uint32_t x323;
4843     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x324;
4844     uint32_t x325;
4845     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x326;
4846     uint32_t x327;
4847     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x328;
4848     uint32_t x329;
4849     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x330;
4850     uint32_t x331;
4851     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x332;
4852     uint32_t x333;
4853     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x334;
4854     uint32_t x335;
4855     uint32_t x336;
4856     uint32_t x337;
4857     uint32_t x338;
4858     uint32_t x339;
4859     uint32_t x340;
4860     uint32_t x341;
4861     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x342;
4862     uint32_t x343;
4863     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x344;
4864     uint32_t x345;
4865     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x346;
4866     uint32_t x347;
4867     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x348;
4868     uint32_t x349;
4869     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x350;
4870     uint32_t x351;
4871     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x352;
4872     uint32_t x353;
4873     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x354;
4874     uint32_t x355;
4875     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x356;
4876     uint32_t x357;
4877     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x358;
4878     uint32_t x359;
4879     uint32_t x360;
4880     uint32_t x361;
4881     uint32_t x362;
4882     uint32_t x363;
4883     uint32_t x364;
4884     uint32_t x365;
4885     uint32_t x366;
4886     uint32_t x367;
4887     uint32_t x368;
4888     uint32_t x369;
4889     uint32_t x370;
4890     uint32_t x371;
4891     uint32_t x372;
4892     uint32_t x373;
4893     uint32_t x374;
4894     uint32_t x375;
4895     uint32_t x376;
4896     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x377;
4897     uint32_t x378;
4898     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x379;
4899     uint32_t x380;
4900     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x381;
4901     uint32_t x382;
4902     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x383;
4903     uint32_t x384;
4904     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x385;
4905     uint32_t x386;
4906     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x387;
4907     uint32_t x388;
4908     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x389;
4909     uint32_t x390;
4910     uint32_t x391;
4911     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x392;
4912     uint32_t x393;
4913     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x394;
4914     uint32_t x395;
4915     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x396;
4916     uint32_t x397;
4917     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x398;
4918     uint32_t x399;
4919     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x400;
4920     uint32_t x401;
4921     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x402;
4922     uint32_t x403;
4923     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x404;
4924     uint32_t x405;
4925     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x406;
4926     uint32_t x407;
4927     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x408;
4928     uint32_t x409;
4929     uint32_t x410;
4930     uint32_t x411;
4931     uint32_t x412;
4932     uint32_t x413;
4933     uint32_t x414;
4934     uint32_t x415;
4935     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x416;
4936     uint32_t x417;
4937     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x418;
4938     uint32_t x419;
4939     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x420;
4940     uint32_t x421;
4941     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x422;
4942     uint32_t x423;
4943     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x424;
4944     uint32_t x425;
4945     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x426;
4946     uint32_t x427;
4947     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x428;
4948     uint32_t x429;
4949     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x430;
4950     uint32_t x431;
4951     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x432;
4952     uint32_t x433;
4953     uint32_t x434;
4954     uint32_t x435;
4955     uint32_t x436;
4956     uint32_t x437;
4957     uint32_t x438;
4958     uint32_t x439;
4959     uint32_t x440;
4960     uint32_t x441;
4961     uint32_t x442;
4962     uint32_t x443;
4963     uint32_t x444;
4964     uint32_t x445;
4965     uint32_t x446;
4966     uint32_t x447;
4967     uint32_t x448;
4968     uint32_t x449;
4969     uint32_t x450;
4970     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x451;
4971     uint32_t x452;
4972     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x453;
4973     uint32_t x454;
4974     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x455;
4975     uint32_t x456;
4976     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x457;
4977     uint32_t x458;
4978     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x459;
4979     uint32_t x460;
4980     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x461;
4981     uint32_t x462;
4982     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x463;
4983     uint32_t x464;
4984     uint32_t x465;
4985     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x466;
4986     uint32_t x467;
4987     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x468;
4988     uint32_t x469;
4989     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x470;
4990     uint32_t x471;
4991     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x472;
4992     uint32_t x473;
4993     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x474;
4994     uint32_t x475;
4995     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x476;
4996     uint32_t x477;
4997     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x478;
4998     uint32_t x479;
4999     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x480;
5000     uint32_t x481;
5001     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x482;
5002     uint32_t x483;
5003     uint32_t x484;
5004     uint32_t x485;
5005     uint32_t x486;
5006     uint32_t x487;
5007     uint32_t x488;
5008     uint32_t x489;
5009     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x490;
5010     uint32_t x491;
5011     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x492;
5012     uint32_t x493;
5013     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x494;
5014     uint32_t x495;
5015     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x496;
5016     uint32_t x497;
5017     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x498;
5018     uint32_t x499;
5019     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x500;
5020     uint32_t x501;
5021     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x502;
5022     uint32_t x503;
5023     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x504;
5024     uint32_t x505;
5025     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x506;
5026     uint32_t x507;
5027     uint32_t x508;
5028     uint32_t x509;
5029     uint32_t x510;
5030     uint32_t x511;
5031     uint32_t x512;
5032     uint32_t x513;
5033     uint32_t x514;
5034     uint32_t x515;
5035     uint32_t x516;
5036     uint32_t x517;
5037     uint32_t x518;
5038     uint32_t x519;
5039     uint32_t x520;
5040     uint32_t x521;
5041     uint32_t x522;
5042     uint32_t x523;
5043     uint32_t x524;
5044     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x525;
5045     uint32_t x526;
5046     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x527;
5047     uint32_t x528;
5048     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x529;
5049     uint32_t x530;
5050     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x531;
5051     uint32_t x532;
5052     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x533;
5053     uint32_t x534;
5054     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x535;
5055     uint32_t x536;
5056     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x537;
5057     uint32_t x538;
5058     uint32_t x539;
5059     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x540;
5060     uint32_t x541;
5061     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x542;
5062     uint32_t x543;
5063     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x544;
5064     uint32_t x545;
5065     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x546;
5066     uint32_t x547;
5067     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x548;
5068     uint32_t x549;
5069     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x550;
5070     uint32_t x551;
5071     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x552;
5072     uint32_t x553;
5073     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x554;
5074     uint32_t x555;
5075     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x556;
5076     uint32_t x557;
5077     uint32_t x558;
5078     uint32_t x559;
5079     uint32_t x560;
5080     uint32_t x561;
5081     uint32_t x562;
5082     uint32_t x563;
5083     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x564;
5084     uint32_t x565;
5085     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x566;
5086     uint32_t x567;
5087     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x568;
5088     uint32_t x569;
5089     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x570;
5090     uint32_t x571;
5091     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x572;
5092     uint32_t x573;
5093     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x574;
5094     uint32_t x575;
5095     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x576;
5096     uint32_t x577;
5097     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x578;
5098     uint32_t x579;
5099     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x580;
5100     uint32_t x581;
5101     uint32_t x582;
5102     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x583;
5103     uint32_t x584;
5104     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x585;
5105     uint32_t x586;
5106     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x587;
5107     uint32_t x588;
5108     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x589;
5109     uint32_t x590;
5110     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x591;
5111     uint32_t x592;
5112     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x593;
5113     uint32_t x594;
5114     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x595;
5115     uint32_t x596;
5116     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x597;
5117     uint32_t x598;
5118     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x599;
5119     uint32_t x600;
5120     uint32_t x601;
5121     uint32_t x602;
5122     uint32_t x603;
5123     uint32_t x604;
5124     uint32_t x605;
5125     uint32_t x606;
5126     uint32_t x607;
5127     x1 = (arg1[1]);
5128     x2 = (arg1[2]);
5129     x3 = (arg1[3]);
5130     x4 = (arg1[4]);
5131     x5 = (arg1[5]);
5132     x6 = (arg1[6]);
5133     x7 = (arg1[7]);
5134     x8 = (arg1[0]);
5135     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x9, &x10, x8,
5136                                                          (arg2[7]));
5137     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x11, &x12, x8,
5138                                                          (arg2[6]));
5139     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x13, &x14, x8,
5140                                                          (arg2[5]));
5141     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x15, &x16, x8,
5142                                                          (arg2[4]));
5143     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x17, &x18, x8,
5144                                                          (arg2[3]));
5145     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x19, &x20, x8,
5146                                                          (arg2[2]));
5147     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x21, &x22, x8,
5148                                                          (arg2[1]));
5149     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x23, &x24, x8,
5150                                                          (arg2[0]));
5151     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x25, &x26, 0x0,
5152                                                               x24, x21);
5153     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x27, &x28, x26,
5154                                                               x22, x19);
5155     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x29, &x30, x28,
5156                                                               x20, x17);
5157     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x31, &x32, x30,
5158                                                               x18, x15);
5159     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x33, &x34, x32,
5160                                                               x16, x13);
5161     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x35, &x36, x34,
5162                                                               x14, x11);
5163     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x37, &x38, x36,
5164                                                               x12, x9);
5165     x39 = (x38 + x10);
5166     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x40, &x41, x23,
5167                                                          UINT32_C(0xa3347857));
5168     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x42, &x43, x40,
5169                                                          UINT32_C(0x80000000));
5170     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x44, &x45, x40,
5171                                                          UINT16_C(0xc99));
5172     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x46, &x47, 0x0,
5173                                                               x23, x44);
5174     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x48, &x49, x47,
5175                                                               x25, x45);
5176     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x50, &x51, x49,
5177                                                               x27, 0x0);
5178     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x52, &x53, x51,
5179                                                               x29, 0x0);
5180     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x54, &x55, x53,
5181                                                               x31, 0x0);
5182     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x56, &x57, x55,
5183                                                               x33, 0x0);
5184     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x58, &x59, x57,
5185                                                               x35, 0x0);
5186     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x60, &x61, x59,
5187                                                               x37, x42);
5188     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x62, &x63, x61,
5189                                                               x39, x43);
5190     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x64, &x65, x1,
5191                                                          (arg2[7]));
5192     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x66, &x67, x1,
5193                                                          (arg2[6]));
5194     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x68, &x69, x1,
5195                                                          (arg2[5]));
5196     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x70, &x71, x1,
5197                                                          (arg2[4]));
5198     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x72, &x73, x1,
5199                                                          (arg2[3]));
5200     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x74, &x75, x1,
5201                                                          (arg2[2]));
5202     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x76, &x77, x1,
5203                                                          (arg2[1]));
5204     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x78, &x79, x1,
5205                                                          (arg2[0]));
5206     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x80, &x81, 0x0,
5207                                                               x79, x76);
5208     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x82, &x83, x81,
5209                                                               x77, x74);
5210     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x84, &x85, x83,
5211                                                               x75, x72);
5212     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x86, &x87, x85,
5213                                                               x73, x70);
5214     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x88, &x89, x87,
5215                                                               x71, x68);
5216     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x90, &x91, x89,
5217                                                               x69, x66);
5218     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x92, &x93, x91,
5219                                                               x67, x64);
5220     x94 = (x93 + x65);
5221     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x95, &x96, 0x0,
5222                                                               x48, x78);
5223     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x97, &x98, x96,
5224                                                               x50, x80);
5225     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x99, &x100, x98,
5226                                                               x52, x82);
5227     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x101, &x102,
5228                                                               x100, x54, x84);
5229     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x103, &x104,
5230                                                               x102, x56, x86);
5231     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x105, &x106,
5232                                                               x104, x58, x88);
5233     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x107, &x108,
5234                                                               x106, x60, x90);
5235     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x109, &x110,
5236                                                               x108, x62, x92);
5237     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x111, &x112,
5238                                                               x110, x63, x94);
5239     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x113, &x114, x95,
5240                                                          UINT32_C(0xa3347857));
5241     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x115, &x116, x113,
5242                                                          UINT32_C(0x80000000));
5243     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x117, &x118, x113,
5244                                                          UINT16_C(0xc99));
5245     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x119, &x120, 0x0,
5246                                                               x95, x117);
5247     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x121, &x122,
5248                                                               x120, x97, x118);
5249     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x123, &x124,
5250                                                               x122, x99, 0x0);
5251     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x125, &x126,
5252                                                               x124, x101, 0x0);
5253     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x127, &x128,
5254                                                               x126, x103, 0x0);
5255     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x129, &x130,
5256                                                               x128, x105, 0x0);
5257     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x131, &x132,
5258                                                               x130, x107, 0x0);
5259     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x133, &x134,
5260                                                               x132, x109, x115);
5261     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x135, &x136,
5262                                                               x134, x111, x116);
5263     x137 = ((uint32_t)x136 + x112);
5264     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x138, &x139, x2,
5265                                                          (arg2[7]));
5266     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x140, &x141, x2,
5267                                                          (arg2[6]));
5268     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x142, &x143, x2,
5269                                                          (arg2[5]));
5270     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x144, &x145, x2,
5271                                                          (arg2[4]));
5272     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x146, &x147, x2,
5273                                                          (arg2[3]));
5274     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x148, &x149, x2,
5275                                                          (arg2[2]));
5276     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x150, &x151, x2,
5277                                                          (arg2[1]));
5278     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x152, &x153, x2,
5279                                                          (arg2[0]));
5280     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x154, &x155, 0x0,
5281                                                               x153, x150);
5282     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x156, &x157,
5283                                                               x155, x151, x148);
5284     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x158, &x159,
5285                                                               x157, x149, x146);
5286     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x160, &x161,
5287                                                               x159, x147, x144);
5288     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x162, &x163,
5289                                                               x161, x145, x142);
5290     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x164, &x165,
5291                                                               x163, x143, x140);
5292     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x166, &x167,
5293                                                               x165, x141, x138);
5294     x168 = (x167 + x139);
5295     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x169, &x170, 0x0,
5296                                                               x121, x152);
5297     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x171, &x172,
5298                                                               x170, x123, x154);
5299     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x173, &x174,
5300                                                               x172, x125, x156);
5301     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x175, &x176,
5302                                                               x174, x127, x158);
5303     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x177, &x178,
5304                                                               x176, x129, x160);
5305     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x179, &x180,
5306                                                               x178, x131, x162);
5307     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x181, &x182,
5308                                                               x180, x133, x164);
5309     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x183, &x184,
5310                                                               x182, x135, x166);
5311     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x185, &x186,
5312                                                               x184, x137, x168);
5313     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x187, &x188, x169,
5314                                                          UINT32_C(0xa3347857));
5315     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x189, &x190, x187,
5316                                                          UINT32_C(0x80000000));
5317     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x191, &x192, x187,
5318                                                          UINT16_C(0xc99));
5319     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x193, &x194, 0x0,
5320                                                               x169, x191);
5321     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x195, &x196,
5322                                                               x194, x171, x192);
5323     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x197, &x198,
5324                                                               x196, x173, 0x0);
5325     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x199, &x200,
5326                                                               x198, x175, 0x0);
5327     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x201, &x202,
5328                                                               x200, x177, 0x0);
5329     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x203, &x204,
5330                                                               x202, x179, 0x0);
5331     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x205, &x206,
5332                                                               x204, x181, 0x0);
5333     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x207, &x208,
5334                                                               x206, x183, x189);
5335     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x209, &x210,
5336                                                               x208, x185, x190);
5337     x211 = ((uint32_t)x210 + x186);
5338     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x212, &x213, x3,
5339                                                          (arg2[7]));
5340     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x214, &x215, x3,
5341                                                          (arg2[6]));
5342     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x216, &x217, x3,
5343                                                          (arg2[5]));
5344     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x218, &x219, x3,
5345                                                          (arg2[4]));
5346     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x220, &x221, x3,
5347                                                          (arg2[3]));
5348     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x222, &x223, x3,
5349                                                          (arg2[2]));
5350     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x224, &x225, x3,
5351                                                          (arg2[1]));
5352     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x226, &x227, x3,
5353                                                          (arg2[0]));
5354     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x228, &x229, 0x0,
5355                                                               x227, x224);
5356     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x230, &x231,
5357                                                               x229, x225, x222);
5358     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x232, &x233,
5359                                                               x231, x223, x220);
5360     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x234, &x235,
5361                                                               x233, x221, x218);
5362     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x236, &x237,
5363                                                               x235, x219, x216);
5364     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x238, &x239,
5365                                                               x237, x217, x214);
5366     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x240, &x241,
5367                                                               x239, x215, x212);
5368     x242 = (x241 + x213);
5369     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x243, &x244, 0x0,
5370                                                               x195, x226);
5371     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x245, &x246,
5372                                                               x244, x197, x228);
5373     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x247, &x248,
5374                                                               x246, x199, x230);
5375     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x249, &x250,
5376                                                               x248, x201, x232);
5377     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x251, &x252,
5378                                                               x250, x203, x234);
5379     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x253, &x254,
5380                                                               x252, x205, x236);
5381     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x255, &x256,
5382                                                               x254, x207, x238);
5383     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x257, &x258,
5384                                                               x256, x209, x240);
5385     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x259, &x260,
5386                                                               x258, x211, x242);
5387     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x261, &x262, x243,
5388                                                          UINT32_C(0xa3347857));
5389     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x263, &x264, x261,
5390                                                          UINT32_C(0x80000000));
5391     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x265, &x266, x261,
5392                                                          UINT16_C(0xc99));
5393     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x267, &x268, 0x0,
5394                                                               x243, x265);
5395     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x269, &x270,
5396                                                               x268, x245, x266);
5397     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x271, &x272,
5398                                                               x270, x247, 0x0);
5399     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x273, &x274,
5400                                                               x272, x249, 0x0);
5401     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x275, &x276,
5402                                                               x274, x251, 0x0);
5403     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x277, &x278,
5404                                                               x276, x253, 0x0);
5405     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x279, &x280,
5406                                                               x278, x255, 0x0);
5407     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x281, &x282,
5408                                                               x280, x257, x263);
5409     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x283, &x284,
5410                                                               x282, x259, x264);
5411     x285 = ((uint32_t)x284 + x260);
5412     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x286, &x287, x4,
5413                                                          (arg2[7]));
5414     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x288, &x289, x4,
5415                                                          (arg2[6]));
5416     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x290, &x291, x4,
5417                                                          (arg2[5]));
5418     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x292, &x293, x4,
5419                                                          (arg2[4]));
5420     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x294, &x295, x4,
5421                                                          (arg2[3]));
5422     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x296, &x297, x4,
5423                                                          (arg2[2]));
5424     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x298, &x299, x4,
5425                                                          (arg2[1]));
5426     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x300, &x301, x4,
5427                                                          (arg2[0]));
5428     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x302, &x303, 0x0,
5429                                                               x301, x298);
5430     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x304, &x305,
5431                                                               x303, x299, x296);
5432     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x306, &x307,
5433                                                               x305, x297, x294);
5434     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x308, &x309,
5435                                                               x307, x295, x292);
5436     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x310, &x311,
5437                                                               x309, x293, x290);
5438     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x312, &x313,
5439                                                               x311, x291, x288);
5440     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x314, &x315,
5441                                                               x313, x289, x286);
5442     x316 = (x315 + x287);
5443     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x317, &x318, 0x0,
5444                                                               x269, x300);
5445     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x319, &x320,
5446                                                               x318, x271, x302);
5447     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x321, &x322,
5448                                                               x320, x273, x304);
5449     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x323, &x324,
5450                                                               x322, x275, x306);
5451     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x325, &x326,
5452                                                               x324, x277, x308);
5453     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x327, &x328,
5454                                                               x326, x279, x310);
5455     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x329, &x330,
5456                                                               x328, x281, x312);
5457     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x331, &x332,
5458                                                               x330, x283, x314);
5459     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x333, &x334,
5460                                                               x332, x285, x316);
5461     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x335, &x336, x317,
5462                                                          UINT32_C(0xa3347857));
5463     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x337, &x338, x335,
5464                                                          UINT32_C(0x80000000));
5465     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x339, &x340, x335,
5466                                                          UINT16_C(0xc99));
5467     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x341, &x342, 0x0,
5468                                                               x317, x339);
5469     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x343, &x344,
5470                                                               x342, x319, x340);
5471     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x345, &x346,
5472                                                               x344, x321, 0x0);
5473     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x347, &x348,
5474                                                               x346, x323, 0x0);
5475     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x349, &x350,
5476                                                               x348, x325, 0x0);
5477     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x351, &x352,
5478                                                               x350, x327, 0x0);
5479     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x353, &x354,
5480                                                               x352, x329, 0x0);
5481     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x355, &x356,
5482                                                               x354, x331, x337);
5483     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x357, &x358,
5484                                                               x356, x333, x338);
5485     x359 = ((uint32_t)x358 + x334);
5486     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x360, &x361, x5,
5487                                                          (arg2[7]));
5488     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x362, &x363, x5,
5489                                                          (arg2[6]));
5490     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x364, &x365, x5,
5491                                                          (arg2[5]));
5492     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x366, &x367, x5,
5493                                                          (arg2[4]));
5494     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x368, &x369, x5,
5495                                                          (arg2[3]));
5496     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x370, &x371, x5,
5497                                                          (arg2[2]));
5498     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x372, &x373, x5,
5499                                                          (arg2[1]));
5500     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x374, &x375, x5,
5501                                                          (arg2[0]));
5502     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x376, &x377, 0x0,
5503                                                               x375, x372);
5504     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x378, &x379,
5505                                                               x377, x373, x370);
5506     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x380, &x381,
5507                                                               x379, x371, x368);
5508     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x382, &x383,
5509                                                               x381, x369, x366);
5510     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x384, &x385,
5511                                                               x383, x367, x364);
5512     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x386, &x387,
5513                                                               x385, x365, x362);
5514     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x388, &x389,
5515                                                               x387, x363, x360);
5516     x390 = (x389 + x361);
5517     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x391, &x392, 0x0,
5518                                                               x343, x374);
5519     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x393, &x394,
5520                                                               x392, x345, x376);
5521     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x395, &x396,
5522                                                               x394, x347, x378);
5523     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x397, &x398,
5524                                                               x396, x349, x380);
5525     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x399, &x400,
5526                                                               x398, x351, x382);
5527     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x401, &x402,
5528                                                               x400, x353, x384);
5529     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x403, &x404,
5530                                                               x402, x355, x386);
5531     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x405, &x406,
5532                                                               x404, x357, x388);
5533     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x407, &x408,
5534                                                               x406, x359, x390);
5535     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x409, &x410, x391,
5536                                                          UINT32_C(0xa3347857));
5537     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x411, &x412, x409,
5538                                                          UINT32_C(0x80000000));
5539     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x413, &x414, x409,
5540                                                          UINT16_C(0xc99));
5541     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x415, &x416, 0x0,
5542                                                               x391, x413);
5543     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x417, &x418,
5544                                                               x416, x393, x414);
5545     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x419, &x420,
5546                                                               x418, x395, 0x0);
5547     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x421, &x422,
5548                                                               x420, x397, 0x0);
5549     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x423, &x424,
5550                                                               x422, x399, 0x0);
5551     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x425, &x426,
5552                                                               x424, x401, 0x0);
5553     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x427, &x428,
5554                                                               x426, x403, 0x0);
5555     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x429, &x430,
5556                                                               x428, x405, x411);
5557     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x431, &x432,
5558                                                               x430, x407, x412);
5559     x433 = ((uint32_t)x432 + x408);
5560     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x434, &x435, x6,
5561                                                          (arg2[7]));
5562     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x436, &x437, x6,
5563                                                          (arg2[6]));
5564     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x438, &x439, x6,
5565                                                          (arg2[5]));
5566     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x440, &x441, x6,
5567                                                          (arg2[4]));
5568     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x442, &x443, x6,
5569                                                          (arg2[3]));
5570     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x444, &x445, x6,
5571                                                          (arg2[2]));
5572     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x446, &x447, x6,
5573                                                          (arg2[1]));
5574     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x448, &x449, x6,
5575                                                          (arg2[0]));
5576     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x450, &x451, 0x0,
5577                                                               x449, x446);
5578     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x452, &x453,
5579                                                               x451, x447, x444);
5580     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x454, &x455,
5581                                                               x453, x445, x442);
5582     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x456, &x457,
5583                                                               x455, x443, x440);
5584     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x458, &x459,
5585                                                               x457, x441, x438);
5586     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x460, &x461,
5587                                                               x459, x439, x436);
5588     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x462, &x463,
5589                                                               x461, x437, x434);
5590     x464 = (x463 + x435);
5591     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x465, &x466, 0x0,
5592                                                               x417, x448);
5593     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x467, &x468,
5594                                                               x466, x419, x450);
5595     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x469, &x470,
5596                                                               x468, x421, x452);
5597     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x471, &x472,
5598                                                               x470, x423, x454);
5599     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x473, &x474,
5600                                                               x472, x425, x456);
5601     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x475, &x476,
5602                                                               x474, x427, x458);
5603     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x477, &x478,
5604                                                               x476, x429, x460);
5605     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x479, &x480,
5606                                                               x478, x431, x462);
5607     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x481, &x482,
5608                                                               x480, x433, x464);
5609     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x483, &x484, x465,
5610                                                          UINT32_C(0xa3347857));
5611     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x485, &x486, x483,
5612                                                          UINT32_C(0x80000000));
5613     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x487, &x488, x483,
5614                                                          UINT16_C(0xc99));
5615     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x489, &x490, 0x0,
5616                                                               x465, x487);
5617     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x491, &x492,
5618                                                               x490, x467, x488);
5619     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x493, &x494,
5620                                                               x492, x469, 0x0);
5621     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x495, &x496,
5622                                                               x494, x471, 0x0);
5623     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x497, &x498,
5624                                                               x496, x473, 0x0);
5625     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x499, &x500,
5626                                                               x498, x475, 0x0);
5627     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x501, &x502,
5628                                                               x500, x477, 0x0);
5629     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x503, &x504,
5630                                                               x502, x479, x485);
5631     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x505, &x506,
5632                                                               x504, x481, x486);
5633     x507 = ((uint32_t)x506 + x482);
5634     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x508, &x509, x7,
5635                                                          (arg2[7]));
5636     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x510, &x511, x7,
5637                                                          (arg2[6]));
5638     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x512, &x513, x7,
5639                                                          (arg2[5]));
5640     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x514, &x515, x7,
5641                                                          (arg2[4]));
5642     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x516, &x517, x7,
5643                                                          (arg2[3]));
5644     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x518, &x519, x7,
5645                                                          (arg2[2]));
5646     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x520, &x521, x7,
5647                                                          (arg2[1]));
5648     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x522, &x523, x7,
5649                                                          (arg2[0]));
5650     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x524, &x525, 0x0,
5651                                                               x523, x520);
5652     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x526, &x527,
5653                                                               x525, x521, x518);
5654     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x528, &x529,
5655                                                               x527, x519, x516);
5656     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x530, &x531,
5657                                                               x529, x517, x514);
5658     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x532, &x533,
5659                                                               x531, x515, x512);
5660     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x534, &x535,
5661                                                               x533, x513, x510);
5662     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x536, &x537,
5663                                                               x535, x511, x508);
5664     x538 = (x537 + x509);
5665     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x539, &x540, 0x0,
5666                                                               x491, x522);
5667     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x541, &x542,
5668                                                               x540, x493, x524);
5669     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x543, &x544,
5670                                                               x542, x495, x526);
5671     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x545, &x546,
5672                                                               x544, x497, x528);
5673     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x547, &x548,
5674                                                               x546, x499, x530);
5675     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x549, &x550,
5676                                                               x548, x501, x532);
5677     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x551, &x552,
5678                                                               x550, x503, x534);
5679     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x553, &x554,
5680                                                               x552, x505, x536);
5681     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x555, &x556,
5682                                                               x554, x507, x538);
5683     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x557, &x558, x539,
5684                                                          UINT32_C(0xa3347857));
5685     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x559, &x560, x557,
5686                                                          UINT32_C(0x80000000));
5687     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x561, &x562, x557,
5688                                                          UINT16_C(0xc99));
5689     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x563, &x564, 0x0,
5690                                                               x539, x561);
5691     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x565, &x566,
5692                                                               x564, x541, x562);
5693     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x567, &x568,
5694                                                               x566, x543, 0x0);
5695     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x569, &x570,
5696                                                               x568, x545, 0x0);
5697     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x571, &x572,
5698                                                               x570, x547, 0x0);
5699     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x573, &x574,
5700                                                               x572, x549, 0x0);
5701     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x575, &x576,
5702                                                               x574, x551, 0x0);
5703     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x577, &x578,
5704                                                               x576, x553, x559);
5705     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x579, &x580,
5706                                                               x578, x555, x560);
5707     x581 = ((uint32_t)x580 + x556);
5708     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
5709         &x582, &x583, 0x0, x565, UINT16_C(0xc99));
5710     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x584, &x585,
5711                                                                x583, x567, 0x0);
5712     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x586, &x587,
5713                                                                x585, x569, 0x0);
5714     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x588, &x589,
5715                                                                x587, x571, 0x0);
5716     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x590, &x591,
5717                                                                x589, x573, 0x0);
5718     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x592, &x593,
5719                                                                x591, x575, 0x0);
5720     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x594, &x595,
5721                                                                x593, x577, 0x0);
5722     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
5723         &x596, &x597, x595, x579, UINT32_C(0x80000000));
5724     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x598, &x599,
5725                                                                x597, x581, 0x0);
5726     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x600, x599, x582,
5727                                                             x565);
5728     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x601, x599, x584,
5729                                                             x567);
5730     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x602, x599, x586,
5731                                                             x569);
5732     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x603, x599, x588,
5733                                                             x571);
5734     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x604, x599, x590,
5735                                                             x573);
5736     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x605, x599, x592,
5737                                                             x575);
5738     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x606, x599, x594,
5739                                                             x577);
5740     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x607, x599, x596,
5741                                                             x579);
5742     out1[0] = x600;
5743     out1[1] = x601;
5744     out1[2] = x602;
5745     out1[3] = x603;
5746     out1[4] = x604;
5747     out1[5] = x605;
5748     out1[6] = x606;
5749     out1[7] = x607;
5750 }
5751
5752 /*
5753  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square squares a field element in the Montgomery domain.
5754  * Preconditions:
5755  *   0 ≤ eval arg1 < m
5756  * Postconditions:
5757  *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m
5758  *   0 ≤ eval out1 < m
5759  *
5760  * Input Bounds:
5761  *   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
5762  * Output Bounds:
5763  *   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
5764  */
5765 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(
5766     uint32_t out1[8], const uint32_t arg1[8]) {
5767     uint32_t x1;
5768     uint32_t x2;
5769     uint32_t x3;
5770     uint32_t x4;
5771     uint32_t x5;
5772     uint32_t x6;
5773     uint32_t x7;
5774     uint32_t x8;
5775     uint32_t x9;
5776     uint32_t x10;
5777     uint32_t x11;
5778     uint32_t x12;
5779     uint32_t x13;
5780     uint32_t x14;
5781     uint32_t x15;
5782     uint32_t x16;
5783     uint32_t x17;
5784     uint32_t x18;
5785     uint32_t x19;
5786     uint32_t x20;
5787     uint32_t x21;
5788     uint32_t x22;
5789     uint32_t x23;
5790     uint32_t x24;
5791     uint32_t x25;
5792     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x26;
5793     uint32_t x27;
5794     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x28;
5795     uint32_t x29;
5796     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x30;
5797     uint32_t x31;
5798     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x32;
5799     uint32_t x33;
5800     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x34;
5801     uint32_t x35;
5802     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x36;
5803     uint32_t x37;
5804     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x38;
5805     uint32_t x39;
5806     uint32_t x40;
5807     uint32_t x41;
5808     uint32_t x42;
5809     uint32_t x43;
5810     uint32_t x44;
5811     uint32_t x45;
5812     uint32_t x46;
5813     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x47;
5814     uint32_t x48;
5815     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x49;
5816     uint32_t x50;
5817     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x51;
5818     uint32_t x52;
5819     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x53;
5820     uint32_t x54;
5821     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x55;
5822     uint32_t x56;
5823     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x57;
5824     uint32_t x58;
5825     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x59;
5826     uint32_t x60;
5827     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x61;
5828     uint32_t x62;
5829     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x63;
5830     uint32_t x64;
5831     uint32_t x65;
5832     uint32_t x66;
5833     uint32_t x67;
5834     uint32_t x68;
5835     uint32_t x69;
5836     uint32_t x70;
5837     uint32_t x71;
5838     uint32_t x72;
5839     uint32_t x73;
5840     uint32_t x74;
5841     uint32_t x75;
5842     uint32_t x76;
5843     uint32_t x77;
5844     uint32_t x78;
5845     uint32_t x79;
5846     uint32_t x80;
5847     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x81;
5848     uint32_t x82;
5849     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x83;
5850     uint32_t x84;
5851     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x85;
5852     uint32_t x86;
5853     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x87;
5854     uint32_t x88;
5855     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x89;
5856     uint32_t x90;
5857     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x91;
5858     uint32_t x92;
5859     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x93;
5860     uint32_t x94;
5861     uint32_t x95;
5862     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x96;
5863     uint32_t x97;
5864     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x98;
5865     uint32_t x99;
5866     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x100;
5867     uint32_t x101;
5868     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x102;
5869     uint32_t x103;
5870     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x104;
5871     uint32_t x105;
5872     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x106;
5873     uint32_t x107;
5874     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x108;
5875     uint32_t x109;
5876     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x110;
5877     uint32_t x111;
5878     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x112;
5879     uint32_t x113;
5880     uint32_t x114;
5881     uint32_t x115;
5882     uint32_t x116;
5883     uint32_t x117;
5884     uint32_t x118;
5885     uint32_t x119;
5886     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x120;
5887     uint32_t x121;
5888     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x122;
5889     uint32_t x123;
5890     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x124;
5891     uint32_t x125;
5892     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x126;
5893     uint32_t x127;
5894     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x128;
5895     uint32_t x129;
5896     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x130;
5897     uint32_t x131;
5898     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x132;
5899     uint32_t x133;
5900     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x134;
5901     uint32_t x135;
5902     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x136;
5903     uint32_t x137;
5904     uint32_t x138;
5905     uint32_t x139;
5906     uint32_t x140;
5907     uint32_t x141;
5908     uint32_t x142;
5909     uint32_t x143;
5910     uint32_t x144;
5911     uint32_t x145;
5912     uint32_t x146;
5913     uint32_t x147;
5914     uint32_t x148;
5915     uint32_t x149;
5916     uint32_t x150;
5917     uint32_t x151;
5918     uint32_t x152;
5919     uint32_t x153;
5920     uint32_t x154;
5921     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x155;
5922     uint32_t x156;
5923     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x157;
5924     uint32_t x158;
5925     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x159;
5926     uint32_t x160;
5927     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x161;
5928     uint32_t x162;
5929     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x163;
5930     uint32_t x164;
5931     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x165;
5932     uint32_t x166;
5933     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x167;
5934     uint32_t x168;
5935     uint32_t x169;
5936     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x170;
5937     uint32_t x171;
5938     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x172;
5939     uint32_t x173;
5940     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x174;
5941     uint32_t x175;
5942     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x176;
5943     uint32_t x177;
5944     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x178;
5945     uint32_t x179;
5946     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x180;
5947     uint32_t x181;
5948     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x182;
5949     uint32_t x183;
5950     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x184;
5951     uint32_t x185;
5952     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x186;
5953     uint32_t x187;
5954     uint32_t x188;
5955     uint32_t x189;
5956     uint32_t x190;
5957     uint32_t x191;
5958     uint32_t x192;
5959     uint32_t x193;
5960     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x194;
5961     uint32_t x195;
5962     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x196;
5963     uint32_t x197;
5964     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x198;
5965     uint32_t x199;
5966     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x200;
5967     uint32_t x201;
5968     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x202;
5969     uint32_t x203;
5970     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x204;
5971     uint32_t x205;
5972     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x206;
5973     uint32_t x207;
5974     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x208;
5975     uint32_t x209;
5976     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x210;
5977     uint32_t x211;
5978     uint32_t x212;
5979     uint32_t x213;
5980     uint32_t x214;
5981     uint32_t x215;
5982     uint32_t x216;
5983     uint32_t x217;
5984     uint32_t x218;
5985     uint32_t x219;
5986     uint32_t x220;
5987     uint32_t x221;
5988     uint32_t x222;
5989     uint32_t x223;
5990     uint32_t x224;
5991     uint32_t x225;
5992     uint32_t x226;
5993     uint32_t x227;
5994     uint32_t x228;
5995     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x229;
5996     uint32_t x230;
5997     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x231;
5998     uint32_t x232;
5999     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x233;
6000     uint32_t x234;
6001     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x235;
6002     uint32_t x236;
6003     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x237;
6004     uint32_t x238;
6005     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x239;
6006     uint32_t x240;
6007     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x241;
6008     uint32_t x242;
6009     uint32_t x243;
6010     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x244;
6011     uint32_t x245;
6012     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x246;
6013     uint32_t x247;
6014     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x248;
6015     uint32_t x249;
6016     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x250;
6017     uint32_t x251;
6018     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x252;
6019     uint32_t x253;
6020     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x254;
6021     uint32_t x255;
6022     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x256;
6023     uint32_t x257;
6024     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x258;
6025     uint32_t x259;
6026     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x260;
6027     uint32_t x261;
6028     uint32_t x262;
6029     uint32_t x263;
6030     uint32_t x264;
6031     uint32_t x265;
6032     uint32_t x266;
6033     uint32_t x267;
6034     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x268;
6035     uint32_t x269;
6036     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x270;
6037     uint32_t x271;
6038     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x272;
6039     uint32_t x273;
6040     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x274;
6041     uint32_t x275;
6042     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x276;
6043     uint32_t x277;
6044     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x278;
6045     uint32_t x279;
6046     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x280;
6047     uint32_t x281;
6048     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x282;
6049     uint32_t x283;
6050     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x284;
6051     uint32_t x285;
6052     uint32_t x286;
6053     uint32_t x287;
6054     uint32_t x288;
6055     uint32_t x289;
6056     uint32_t x290;
6057     uint32_t x291;
6058     uint32_t x292;
6059     uint32_t x293;
6060     uint32_t x294;
6061     uint32_t x295;
6062     uint32_t x296;
6063     uint32_t x297;
6064     uint32_t x298;
6065     uint32_t x299;
6066     uint32_t x300;
6067     uint32_t x301;
6068     uint32_t x302;
6069     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x303;
6070     uint32_t x304;
6071     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x305;
6072     uint32_t x306;
6073     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x307;
6074     uint32_t x308;
6075     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x309;
6076     uint32_t x310;
6077     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x311;
6078     uint32_t x312;
6079     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x313;
6080     uint32_t x314;
6081     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x315;
6082     uint32_t x316;
6083     uint32_t x317;
6084     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x318;
6085     uint32_t x319;
6086     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x320;
6087     uint32_t x321;
6088     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x322;
6089     uint32_t x323;
6090     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x324;
6091     uint32_t x325;
6092     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x326;
6093     uint32_t x327;
6094     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x328;
6095     uint32_t x329;
6096     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x330;
6097     uint32_t x331;
6098     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x332;
6099     uint32_t x333;
6100     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x334;
6101     uint32_t x335;
6102     uint32_t x336;
6103     uint32_t x337;
6104     uint32_t x338;
6105     uint32_t x339;
6106     uint32_t x340;
6107     uint32_t x341;
6108     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x342;
6109     uint32_t x343;
6110     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x344;
6111     uint32_t x345;
6112     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x346;
6113     uint32_t x347;
6114     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x348;
6115     uint32_t x349;
6116     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x350;
6117     uint32_t x351;
6118     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x352;
6119     uint32_t x353;
6120     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x354;
6121     uint32_t x355;
6122     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x356;
6123     uint32_t x357;
6124     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x358;
6125     uint32_t x359;
6126     uint32_t x360;
6127     uint32_t x361;
6128     uint32_t x362;
6129     uint32_t x363;
6130     uint32_t x364;
6131     uint32_t x365;
6132     uint32_t x366;
6133     uint32_t x367;
6134     uint32_t x368;
6135     uint32_t x369;
6136     uint32_t x370;
6137     uint32_t x371;
6138     uint32_t x372;
6139     uint32_t x373;
6140     uint32_t x374;
6141     uint32_t x375;
6142     uint32_t x376;
6143     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x377;
6144     uint32_t x378;
6145     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x379;
6146     uint32_t x380;
6147     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x381;
6148     uint32_t x382;
6149     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x383;
6150     uint32_t x384;
6151     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x385;
6152     uint32_t x386;
6153     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x387;
6154     uint32_t x388;
6155     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x389;
6156     uint32_t x390;
6157     uint32_t x391;
6158     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x392;
6159     uint32_t x393;
6160     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x394;
6161     uint32_t x395;
6162     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x396;
6163     uint32_t x397;
6164     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x398;
6165     uint32_t x399;
6166     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x400;
6167     uint32_t x401;
6168     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x402;
6169     uint32_t x403;
6170     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x404;
6171     uint32_t x405;
6172     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x406;
6173     uint32_t x407;
6174     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x408;
6175     uint32_t x409;
6176     uint32_t x410;
6177     uint32_t x411;
6178     uint32_t x412;
6179     uint32_t x413;
6180     uint32_t x414;
6181     uint32_t x415;
6182     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x416;
6183     uint32_t x417;
6184     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x418;
6185     uint32_t x419;
6186     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x420;
6187     uint32_t x421;
6188     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x422;
6189     uint32_t x423;
6190     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x424;
6191     uint32_t x425;
6192     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x426;
6193     uint32_t x427;
6194     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x428;
6195     uint32_t x429;
6196     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x430;
6197     uint32_t x431;
6198     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x432;
6199     uint32_t x433;
6200     uint32_t x434;
6201     uint32_t x435;
6202     uint32_t x436;
6203     uint32_t x437;
6204     uint32_t x438;
6205     uint32_t x439;
6206     uint32_t x440;
6207     uint32_t x441;
6208     uint32_t x442;
6209     uint32_t x443;
6210     uint32_t x444;
6211     uint32_t x445;
6212     uint32_t x446;
6213     uint32_t x447;
6214     uint32_t x448;
6215     uint32_t x449;
6216     uint32_t x450;
6217     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x451;
6218     uint32_t x452;
6219     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x453;
6220     uint32_t x454;
6221     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x455;
6222     uint32_t x456;
6223     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x457;
6224     uint32_t x458;
6225     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x459;
6226     uint32_t x460;
6227     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x461;
6228     uint32_t x462;
6229     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x463;
6230     uint32_t x464;
6231     uint32_t x465;
6232     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x466;
6233     uint32_t x467;
6234     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x468;
6235     uint32_t x469;
6236     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x470;
6237     uint32_t x471;
6238     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x472;
6239     uint32_t x473;
6240     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x474;
6241     uint32_t x475;
6242     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x476;
6243     uint32_t x477;
6244     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x478;
6245     uint32_t x479;
6246     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x480;
6247     uint32_t x481;
6248     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x482;
6249     uint32_t x483;
6250     uint32_t x484;
6251     uint32_t x485;
6252     uint32_t x486;
6253     uint32_t x487;
6254     uint32_t x488;
6255     uint32_t x489;
6256     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x490;
6257     uint32_t x491;
6258     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x492;
6259     uint32_t x493;
6260     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x494;
6261     uint32_t x495;
6262     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x496;
6263     uint32_t x497;
6264     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x498;
6265     uint32_t x499;
6266     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x500;
6267     uint32_t x501;
6268     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x502;
6269     uint32_t x503;
6270     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x504;
6271     uint32_t x505;
6272     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x506;
6273     uint32_t x507;
6274     uint32_t x508;
6275     uint32_t x509;
6276     uint32_t x510;
6277     uint32_t x511;
6278     uint32_t x512;
6279     uint32_t x513;
6280     uint32_t x514;
6281     uint32_t x515;
6282     uint32_t x516;
6283     uint32_t x517;
6284     uint32_t x518;
6285     uint32_t x519;
6286     uint32_t x520;
6287     uint32_t x521;
6288     uint32_t x522;
6289     uint32_t x523;
6290     uint32_t x524;
6291     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x525;
6292     uint32_t x526;
6293     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x527;
6294     uint32_t x528;
6295     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x529;
6296     uint32_t x530;
6297     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x531;
6298     uint32_t x532;
6299     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x533;
6300     uint32_t x534;
6301     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x535;
6302     uint32_t x536;
6303     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x537;
6304     uint32_t x538;
6305     uint32_t x539;
6306     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x540;
6307     uint32_t x541;
6308     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x542;
6309     uint32_t x543;
6310     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x544;
6311     uint32_t x545;
6312     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x546;
6313     uint32_t x547;
6314     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x548;
6315     uint32_t x549;
6316     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x550;
6317     uint32_t x551;
6318     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x552;
6319     uint32_t x553;
6320     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x554;
6321     uint32_t x555;
6322     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x556;
6323     uint32_t x557;
6324     uint32_t x558;
6325     uint32_t x559;
6326     uint32_t x560;
6327     uint32_t x561;
6328     uint32_t x562;
6329     uint32_t x563;
6330     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x564;
6331     uint32_t x565;
6332     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x566;
6333     uint32_t x567;
6334     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x568;
6335     uint32_t x569;
6336     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x570;
6337     uint32_t x571;
6338     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x572;
6339     uint32_t x573;
6340     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x574;
6341     uint32_t x575;
6342     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x576;
6343     uint32_t x577;
6344     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x578;
6345     uint32_t x579;
6346     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x580;
6347     uint32_t x581;
6348     uint32_t x582;
6349     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x583;
6350     uint32_t x584;
6351     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x585;
6352     uint32_t x586;
6353     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x587;
6354     uint32_t x588;
6355     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x589;
6356     uint32_t x590;
6357     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x591;
6358     uint32_t x592;
6359     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x593;
6360     uint32_t x594;
6361     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x595;
6362     uint32_t x596;
6363     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x597;
6364     uint32_t x598;
6365     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x599;
6366     uint32_t x600;
6367     uint32_t x601;
6368     uint32_t x602;
6369     uint32_t x603;
6370     uint32_t x604;
6371     uint32_t x605;
6372     uint32_t x606;
6373     uint32_t x607;
6374     x1 = (arg1[1]);
6375     x2 = (arg1[2]);
6376     x3 = (arg1[3]);
6377     x4 = (arg1[4]);
6378     x5 = (arg1[5]);
6379     x6 = (arg1[6]);
6380     x7 = (arg1[7]);
6381     x8 = (arg1[0]);
6382     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x9, &x10, x8,
6383                                                          (arg1[7]));
6384     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x11, &x12, x8,
6385                                                          (arg1[6]));
6386     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x13, &x14, x8,
6387                                                          (arg1[5]));
6388     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x15, &x16, x8,
6389                                                          (arg1[4]));
6390     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x17, &x18, x8,
6391                                                          (arg1[3]));
6392     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x19, &x20, x8,
6393                                                          (arg1[2]));
6394     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x21, &x22, x8,
6395                                                          (arg1[1]));
6396     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x23, &x24, x8,
6397                                                          (arg1[0]));
6398     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x25, &x26, 0x0,
6399                                                               x24, x21);
6400     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x27, &x28, x26,
6401                                                               x22, x19);
6402     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x29, &x30, x28,
6403                                                               x20, x17);
6404     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x31, &x32, x30,
6405                                                               x18, x15);
6406     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x33, &x34, x32,
6407                                                               x16, x13);
6408     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x35, &x36, x34,
6409                                                               x14, x11);
6410     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x37, &x38, x36,
6411                                                               x12, x9);
6412     x39 = (x38 + x10);
6413     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x40, &x41, x23,
6414                                                          UINT32_C(0xa3347857));
6415     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x42, &x43, x40,
6416                                                          UINT32_C(0x80000000));
6417     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x44, &x45, x40,
6418                                                          UINT16_C(0xc99));
6419     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x46, &x47, 0x0,
6420                                                               x23, x44);
6421     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x48, &x49, x47,
6422                                                               x25, x45);
6423     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x50, &x51, x49,
6424                                                               x27, 0x0);
6425     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x52, &x53, x51,
6426                                                               x29, 0x0);
6427     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x54, &x55, x53,
6428                                                               x31, 0x0);
6429     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x56, &x57, x55,
6430                                                               x33, 0x0);
6431     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x58, &x59, x57,
6432                                                               x35, 0x0);
6433     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x60, &x61, x59,
6434                                                               x37, x42);
6435     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x62, &x63, x61,
6436                                                               x39, x43);
6437     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x64, &x65, x1,
6438                                                          (arg1[7]));
6439     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x66, &x67, x1,
6440                                                          (arg1[6]));
6441     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x68, &x69, x1,
6442                                                          (arg1[5]));
6443     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x70, &x71, x1,
6444                                                          (arg1[4]));
6445     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x72, &x73, x1,
6446                                                          (arg1[3]));
6447     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x74, &x75, x1,
6448                                                          (arg1[2]));
6449     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x76, &x77, x1,
6450                                                          (arg1[1]));
6451     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x78, &x79, x1,
6452                                                          (arg1[0]));
6453     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x80, &x81, 0x0,
6454                                                               x79, x76);
6455     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x82, &x83, x81,
6456                                                               x77, x74);
6457     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x84, &x85, x83,
6458                                                               x75, x72);
6459     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x86, &x87, x85,
6460                                                               x73, x70);
6461     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x88, &x89, x87,
6462                                                               x71, x68);
6463     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x90, &x91, x89,
6464                                                               x69, x66);
6465     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x92, &x93, x91,
6466                                                               x67, x64);
6467     x94 = (x93 + x65);
6468     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x95, &x96, 0x0,
6469                                                               x48, x78);
6470     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x97, &x98, x96,
6471                                                               x50, x80);
6472     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x99, &x100, x98,
6473                                                               x52, x82);
6474     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x101, &x102,
6475                                                               x100, x54, x84);
6476     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x103, &x104,
6477                                                               x102, x56, x86);
6478     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x105, &x106,
6479                                                               x104, x58, x88);
6480     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x107, &x108,
6481                                                               x106, x60, x90);
6482     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x109, &x110,
6483                                                               x108, x62, x92);
6484     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x111, &x112,
6485                                                               x110, x63, x94);
6486     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x113, &x114, x95,
6487                                                          UINT32_C(0xa3347857));
6488     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x115, &x116, x113,
6489                                                          UINT32_C(0x80000000));
6490     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x117, &x118, x113,
6491                                                          UINT16_C(0xc99));
6492     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x119, &x120, 0x0,
6493                                                               x95, x117);
6494     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x121, &x122,
6495                                                               x120, x97, x118);
6496     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x123, &x124,
6497                                                               x122, x99, 0x0);
6498     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x125, &x126,
6499                                                               x124, x101, 0x0);
6500     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x127, &x128,
6501                                                               x126, x103, 0x0);
6502     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x129, &x130,
6503                                                               x128, x105, 0x0);
6504     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x131, &x132,
6505                                                               x130, x107, 0x0);
6506     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x133, &x134,
6507                                                               x132, x109, x115);
6508     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x135, &x136,
6509                                                               x134, x111, x116);
6510     x137 = ((uint32_t)x136 + x112);
6511     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x138, &x139, x2,
6512                                                          (arg1[7]));
6513     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x140, &x141, x2,
6514                                                          (arg1[6]));
6515     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x142, &x143, x2,
6516                                                          (arg1[5]));
6517     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x144, &x145, x2,
6518                                                          (arg1[4]));
6519     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x146, &x147, x2,
6520                                                          (arg1[3]));
6521     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x148, &x149, x2,
6522                                                          (arg1[2]));
6523     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x150, &x151, x2,
6524                                                          (arg1[1]));
6525     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x152, &x153, x2,
6526                                                          (arg1[0]));
6527     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x154, &x155, 0x0,
6528                                                               x153, x150);
6529     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x156, &x157,
6530                                                               x155, x151, x148);
6531     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x158, &x159,
6532                                                               x157, x149, x146);
6533     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x160, &x161,
6534                                                               x159, x147, x144);
6535     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x162, &x163,
6536                                                               x161, x145, x142);
6537     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x164, &x165,
6538                                                               x163, x143, x140);
6539     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x166, &x167,
6540                                                               x165, x141, x138);
6541     x168 = (x167 + x139);
6542     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x169, &x170, 0x0,
6543                                                               x121, x152);
6544     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x171, &x172,
6545                                                               x170, x123, x154);
6546     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x173, &x174,
6547                                                               x172, x125, x156);
6548     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x175, &x176,
6549                                                               x174, x127, x158);
6550     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x177, &x178,
6551                                                               x176, x129, x160);
6552     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x179, &x180,
6553                                                               x178, x131, x162);
6554     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x181, &x182,
6555                                                               x180, x133, x164);
6556     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x183, &x184,
6557                                                               x182, x135, x166);
6558     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x185, &x186,
6559                                                               x184, x137, x168);
6560     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x187, &x188, x169,
6561                                                          UINT32_C(0xa3347857));
6562     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x189, &x190, x187,
6563                                                          UINT32_C(0x80000000));
6564     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x191, &x192, x187,
6565                                                          UINT16_C(0xc99));
6566     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x193, &x194, 0x0,
6567                                                               x169, x191);
6568     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x195, &x196,
6569                                                               x194, x171, x192);
6570     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x197, &x198,
6571                                                               x196, x173, 0x0);
6572     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x199, &x200,
6573                                                               x198, x175, 0x0);
6574     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x201, &x202,
6575                                                               x200, x177, 0x0);
6576     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x203, &x204,
6577                                                               x202, x179, 0x0);
6578     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x205, &x206,
6579                                                               x204, x181, 0x0);
6580     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x207, &x208,
6581                                                               x206, x183, x189);
6582     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x209, &x210,
6583                                                               x208, x185, x190);
6584     x211 = ((uint32_t)x210 + x186);
6585     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x212, &x213, x3,
6586                                                          (arg1[7]));
6587     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x214, &x215, x3,
6588                                                          (arg1[6]));
6589     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x216, &x217, x3,
6590                                                          (arg1[5]));
6591     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x218, &x219, x3,
6592                                                          (arg1[4]));
6593     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x220, &x221, x3,
6594                                                          (arg1[3]));
6595     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x222, &x223, x3,
6596                                                          (arg1[2]));
6597     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x224, &x225, x3,
6598                                                          (arg1[1]));
6599     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x226, &x227, x3,
6600                                                          (arg1[0]));
6601     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x228, &x229, 0x0,
6602                                                               x227, x224);
6603     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x230, &x231,
6604                                                               x229, x225, x222);
6605     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x232, &x233,
6606                                                               x231, x223, x220);
6607     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x234, &x235,
6608                                                               x233, x221, x218);
6609     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x236, &x237,
6610                                                               x235, x219, x216);
6611     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x238, &x239,
6612                                                               x237, x217, x214);
6613     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x240, &x241,
6614                                                               x239, x215, x212);
6615     x242 = (x241 + x213);
6616     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x243, &x244, 0x0,
6617                                                               x195, x226);
6618     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x245, &x246,
6619                                                               x244, x197, x228);
6620     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x247, &x248,
6621                                                               x246, x199, x230);
6622     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x249, &x250,
6623                                                               x248, x201, x232);
6624     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x251, &x252,
6625                                                               x250, x203, x234);
6626     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x253, &x254,
6627                                                               x252, x205, x236);
6628     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x255, &x256,
6629                                                               x254, x207, x238);
6630     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x257, &x258,
6631                                                               x256, x209, x240);
6632     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x259, &x260,
6633                                                               x258, x211, x242);
6634     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x261, &x262, x243,
6635                                                          UINT32_C(0xa3347857));
6636     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x263, &x264, x261,
6637                                                          UINT32_C(0x80000000));
6638     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x265, &x266, x261,
6639                                                          UINT16_C(0xc99));
6640     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x267, &x268, 0x0,
6641                                                               x243, x265);
6642     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x269, &x270,
6643                                                               x268, x245, x266);
6644     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x271, &x272,
6645                                                               x270, x247, 0x0);
6646     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x273, &x274,
6647                                                               x272, x249, 0x0);
6648     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x275, &x276,
6649                                                               x274, x251, 0x0);
6650     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x277, &x278,
6651                                                               x276, x253, 0x0);
6652     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x279, &x280,
6653                                                               x278, x255, 0x0);
6654     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x281, &x282,
6655                                                               x280, x257, x263);
6656     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x283, &x284,
6657                                                               x282, x259, x264);
6658     x285 = ((uint32_t)x284 + x260);
6659     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x286, &x287, x4,
6660                                                          (arg1[7]));
6661     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x288, &x289, x4,
6662                                                          (arg1[6]));
6663     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x290, &x291, x4,
6664                                                          (arg1[5]));
6665     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x292, &x293, x4,
6666                                                          (arg1[4]));
6667     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x294, &x295, x4,
6668                                                          (arg1[3]));
6669     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x296, &x297, x4,
6670                                                          (arg1[2]));
6671     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x298, &x299, x4,
6672                                                          (arg1[1]));
6673     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x300, &x301, x4,
6674                                                          (arg1[0]));
6675     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x302, &x303, 0x0,
6676                                                               x301, x298);
6677     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x304, &x305,
6678                                                               x303, x299, x296);
6679     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x306, &x307,
6680                                                               x305, x297, x294);
6681     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x308, &x309,
6682                                                               x307, x295, x292);
6683     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x310, &x311,
6684                                                               x309, x293, x290);
6685     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x312, &x313,
6686                                                               x311, x291, x288);
6687     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x314, &x315,
6688                                                               x313, x289, x286);
6689     x316 = (x315 + x287);
6690     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x317, &x318, 0x0,
6691                                                               x269, x300);
6692     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x319, &x320,
6693                                                               x318, x271, x302);
6694     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x321, &x322,
6695                                                               x320, x273, x304);
6696     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x323, &x324,
6697                                                               x322, x275, x306);
6698     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x325, &x326,
6699                                                               x324, x277, x308);
6700     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x327, &x328,
6701                                                               x326, x279, x310);
6702     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x329, &x330,
6703                                                               x328, x281, x312);
6704     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x331, &x332,
6705                                                               x330, x283, x314);
6706     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x333, &x334,
6707                                                               x332, x285, x316);
6708     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x335, &x336, x317,
6709                                                          UINT32_C(0xa3347857));
6710     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x337, &x338, x335,
6711                                                          UINT32_C(0x80000000));
6712     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x339, &x340, x335,
6713                                                          UINT16_C(0xc99));
6714     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x341, &x342, 0x0,
6715                                                               x317, x339);
6716     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x343, &x344,
6717                                                               x342, x319, x340);
6718     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x345, &x346,
6719                                                               x344, x321, 0x0);
6720     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x347, &x348,
6721                                                               x346, x323, 0x0);
6722     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x349, &x350,
6723                                                               x348, x325, 0x0);
6724     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x351, &x352,
6725                                                               x350, x327, 0x0);
6726     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x353, &x354,
6727                                                               x352, x329, 0x0);
6728     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x355, &x356,
6729                                                               x354, x331, x337);
6730     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x357, &x358,
6731                                                               x356, x333, x338);
6732     x359 = ((uint32_t)x358 + x334);
6733     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x360, &x361, x5,
6734                                                          (arg1[7]));
6735     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x362, &x363, x5,
6736                                                          (arg1[6]));
6737     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x364, &x365, x5,
6738                                                          (arg1[5]));
6739     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x366, &x367, x5,
6740                                                          (arg1[4]));
6741     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x368, &x369, x5,
6742                                                          (arg1[3]));
6743     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x370, &x371, x5,
6744                                                          (arg1[2]));
6745     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x372, &x373, x5,
6746                                                          (arg1[1]));
6747     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x374, &x375, x5,
6748                                                          (arg1[0]));
6749     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x376, &x377, 0x0,
6750                                                               x375, x372);
6751     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x378, &x379,
6752                                                               x377, x373, x370);
6753     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x380, &x381,
6754                                                               x379, x371, x368);
6755     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x382, &x383,
6756                                                               x381, x369, x366);
6757     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x384, &x385,
6758                                                               x383, x367, x364);
6759     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x386, &x387,
6760                                                               x385, x365, x362);
6761     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x388, &x389,
6762                                                               x387, x363, x360);
6763     x390 = (x389 + x361);
6764     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x391, &x392, 0x0,
6765                                                               x343, x374);
6766     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x393, &x394,
6767                                                               x392, x345, x376);
6768     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x395, &x396,
6769                                                               x394, x347, x378);
6770     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x397, &x398,
6771                                                               x396, x349, x380);
6772     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x399, &x400,
6773                                                               x398, x351, x382);
6774     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x401, &x402,
6775                                                               x400, x353, x384);
6776     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x403, &x404,
6777                                                               x402, x355, x386);
6778     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x405, &x406,
6779                                                               x404, x357, x388);
6780     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x407, &x408,
6781                                                               x406, x359, x390);
6782     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x409, &x410, x391,
6783                                                          UINT32_C(0xa3347857));
6784     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x411, &x412, x409,
6785                                                          UINT32_C(0x80000000));
6786     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x413, &x414, x409,
6787                                                          UINT16_C(0xc99));
6788     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x415, &x416, 0x0,
6789                                                               x391, x413);
6790     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x417, &x418,
6791                                                               x416, x393, x414);
6792     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x419, &x420,
6793                                                               x418, x395, 0x0);
6794     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x421, &x422,
6795                                                               x420, x397, 0x0);
6796     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x423, &x424,
6797                                                               x422, x399, 0x0);
6798     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x425, &x426,
6799                                                               x424, x401, 0x0);
6800     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x427, &x428,
6801                                                               x426, x403, 0x0);
6802     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x429, &x430,
6803                                                               x428, x405, x411);
6804     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x431, &x432,
6805                                                               x430, x407, x412);
6806     x433 = ((uint32_t)x432 + x408);
6807     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x434, &x435, x6,
6808                                                          (arg1[7]));
6809     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x436, &x437, x6,
6810                                                          (arg1[6]));
6811     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x438, &x439, x6,
6812                                                          (arg1[5]));
6813     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x440, &x441, x6,
6814                                                          (arg1[4]));
6815     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x442, &x443, x6,
6816                                                          (arg1[3]));
6817     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x444, &x445, x6,
6818                                                          (arg1[2]));
6819     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x446, &x447, x6,
6820                                                          (arg1[1]));
6821     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x448, &x449, x6,
6822                                                          (arg1[0]));
6823     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x450, &x451, 0x0,
6824                                                               x449, x446);
6825     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x452, &x453,
6826                                                               x451, x447, x444);
6827     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x454, &x455,
6828                                                               x453, x445, x442);
6829     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x456, &x457,
6830                                                               x455, x443, x440);
6831     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x458, &x459,
6832                                                               x457, x441, x438);
6833     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x460, &x461,
6834                                                               x459, x439, x436);
6835     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x462, &x463,
6836                                                               x461, x437, x434);
6837     x464 = (x463 + x435);
6838     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x465, &x466, 0x0,
6839                                                               x417, x448);
6840     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x467, &x468,
6841                                                               x466, x419, x450);
6842     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x469, &x470,
6843                                                               x468, x421, x452);
6844     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x471, &x472,
6845                                                               x470, x423, x454);
6846     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x473, &x474,
6847                                                               x472, x425, x456);
6848     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x475, &x476,
6849                                                               x474, x427, x458);
6850     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x477, &x478,
6851                                                               x476, x429, x460);
6852     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x479, &x480,
6853                                                               x478, x431, x462);
6854     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x481, &x482,
6855                                                               x480, x433, x464);
6856     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x483, &x484, x465,
6857                                                          UINT32_C(0xa3347857));
6858     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x485, &x486, x483,
6859                                                          UINT32_C(0x80000000));
6860     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x487, &x488, x483,
6861                                                          UINT16_C(0xc99));
6862     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x489, &x490, 0x0,
6863                                                               x465, x487);
6864     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x491, &x492,
6865                                                               x490, x467, x488);
6866     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x493, &x494,
6867                                                               x492, x469, 0x0);
6868     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x495, &x496,
6869                                                               x494, x471, 0x0);
6870     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x497, &x498,
6871                                                               x496, x473, 0x0);
6872     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x499, &x500,
6873                                                               x498, x475, 0x0);
6874     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x501, &x502,
6875                                                               x500, x477, 0x0);
6876     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x503, &x504,
6877                                                               x502, x479, x485);
6878     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x505, &x506,
6879                                                               x504, x481, x486);
6880     x507 = ((uint32_t)x506 + x482);
6881     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x508, &x509, x7,
6882                                                          (arg1[7]));
6883     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x510, &x511, x7,
6884                                                          (arg1[6]));
6885     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x512, &x513, x7,
6886                                                          (arg1[5]));
6887     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x514, &x515, x7,
6888                                                          (arg1[4]));
6889     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x516, &x517, x7,
6890                                                          (arg1[3]));
6891     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x518, &x519, x7,
6892                                                          (arg1[2]));
6893     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x520, &x521, x7,
6894                                                          (arg1[1]));
6895     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x522, &x523, x7,
6896                                                          (arg1[0]));
6897     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x524, &x525, 0x0,
6898                                                               x523, x520);
6899     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x526, &x527,
6900                                                               x525, x521, x518);
6901     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x528, &x529,
6902                                                               x527, x519, x516);
6903     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x530, &x531,
6904                                                               x529, x517, x514);
6905     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x532, &x533,
6906                                                               x531, x515, x512);
6907     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x534, &x535,
6908                                                               x533, x513, x510);
6909     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x536, &x537,
6910                                                               x535, x511, x508);
6911     x538 = (x537 + x509);
6912     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x539, &x540, 0x0,
6913                                                               x491, x522);
6914     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x541, &x542,
6915                                                               x540, x493, x524);
6916     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x543, &x544,
6917                                                               x542, x495, x526);
6918     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x545, &x546,
6919                                                               x544, x497, x528);
6920     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x547, &x548,
6921                                                               x546, x499, x530);
6922     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x549, &x550,
6923                                                               x548, x501, x532);
6924     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x551, &x552,
6925                                                               x550, x503, x534);
6926     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x553, &x554,
6927                                                               x552, x505, x536);
6928     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x555, &x556,
6929                                                               x554, x507, x538);
6930     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x557, &x558, x539,
6931                                                          UINT32_C(0xa3347857));
6932     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x559, &x560, x557,
6933                                                          UINT32_C(0x80000000));
6934     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x561, &x562, x557,
6935                                                          UINT16_C(0xc99));
6936     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x563, &x564, 0x0,
6937                                                               x539, x561);
6938     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x565, &x566,
6939                                                               x564, x541, x562);
6940     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x567, &x568,
6941                                                               x566, x543, 0x0);
6942     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x569, &x570,
6943                                                               x568, x545, 0x0);
6944     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x571, &x572,
6945                                                               x570, x547, 0x0);
6946     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x573, &x574,
6947                                                               x572, x549, 0x0);
6948     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x575, &x576,
6949                                                               x574, x551, 0x0);
6950     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x577, &x578,
6951                                                               x576, x553, x559);
6952     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x579, &x580,
6953                                                               x578, x555, x560);
6954     x581 = ((uint32_t)x580 + x556);
6955     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
6956         &x582, &x583, 0x0, x565, UINT16_C(0xc99));
6957     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x584, &x585,
6958                                                                x583, x567, 0x0);
6959     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x586, &x587,
6960                                                                x585, x569, 0x0);
6961     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x588, &x589,
6962                                                                x587, x571, 0x0);
6963     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x590, &x591,
6964                                                                x589, x573, 0x0);
6965     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x592, &x593,
6966                                                                x591, x575, 0x0);
6967     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x594, &x595,
6968                                                                x593, x577, 0x0);
6969     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
6970         &x596, &x597, x595, x579, UINT32_C(0x80000000));
6971     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x598, &x599,
6972                                                                x597, x581, 0x0);
6973     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x600, x599, x582,
6974                                                             x565);
6975     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x601, x599, x584,
6976                                                             x567);
6977     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x602, x599, x586,
6978                                                             x569);
6979     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x603, x599, x588,
6980                                                             x571);
6981     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x604, x599, x590,
6982                                                             x573);
6983     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x605, x599, x592,
6984                                                             x575);
6985     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x606, x599, x594,
6986                                                             x577);
6987     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x607, x599, x596,
6988                                                             x579);
6989     out1[0] = x600;
6990     out1[1] = x601;
6991     out1[2] = x602;
6992     out1[3] = x603;
6993     out1[4] = x604;
6994     out1[5] = x605;
6995     out1[6] = x606;
6996     out1[7] = x607;
6997 }
6998
6999 /*
7000  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add adds two field elements in the Montgomery domain.
7001  * Preconditions:
7002  *   0 ≤ eval arg1 < m
7003  *   0 ≤ eval arg2 < m
7004  * Postconditions:
7005  *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m
7006  *   0 ≤ eval out1 < m
7007  *
7008  * Input Bounds:
7009  *   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
7010  *   arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
7011  * Output Bounds:
7012  *   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
7013  */
7014 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(
7015     uint32_t out1[8], const uint32_t arg1[8], const uint32_t arg2[8]) {
7016     uint32_t x1;
7017     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x2;
7018     uint32_t x3;
7019     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x4;
7020     uint32_t x5;
7021     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x6;
7022     uint32_t x7;
7023     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x8;
7024     uint32_t x9;
7025     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x10;
7026     uint32_t x11;
7027     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x12;
7028     uint32_t x13;
7029     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14;
7030     uint32_t x15;
7031     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x16;
7032     uint32_t x17;
7033     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x18;
7034     uint32_t x19;
7035     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x20;
7036     uint32_t x21;
7037     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x22;
7038     uint32_t x23;
7039     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x24;
7040     uint32_t x25;
7041     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x26;
7042     uint32_t x27;
7043     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x28;
7044     uint32_t x29;
7045     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x30;
7046     uint32_t x31;
7047     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x32;
7048     uint32_t x33;
7049     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x34;
7050     uint32_t x35;
7051     uint32_t x36;
7052     uint32_t x37;
7053     uint32_t x38;
7054     uint32_t x39;
7055     uint32_t x40;
7056     uint32_t x41;
7057     uint32_t x42;
7058     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7059         &x1, &x2, 0x0, (arg1[0]), (arg2[0]));
7060     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7061         &x3, &x4, x2, (arg1[1]), (arg2[1]));
7062     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7063         &x5, &x6, x4, (arg1[2]), (arg2[2]));
7064     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7065         &x7, &x8, x6, (arg1[3]), (arg2[3]));
7066     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7067         &x9, &x10, x8, (arg1[4]), (arg2[4]));
7068     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7069         &x11, &x12, x10, (arg1[5]), (arg2[5]));
7070     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7071         &x13, &x14, x12, (arg1[6]), (arg2[6]));
7072     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7073         &x15, &x16, x14, (arg1[7]), (arg2[7]));
7074     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
7075         &x17, &x18, 0x0, x1, UINT16_C(0xc99));
7076     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x19, &x20, x18,
7077                                                                x3, 0x0);
7078     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x21, &x22, x20,
7079                                                                x5, 0x0);
7080     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x23, &x24, x22,
7081                                                                x7, 0x0);
7082     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x25, &x26, x24,
7083                                                                x9, 0x0);
7084     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x27, &x28, x26,
7085                                                                x11, 0x0);
7086     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x29, &x30, x28,
7087                                                                x13, 0x0);
7088     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
7089         &x31, &x32, x30, x15, UINT32_C(0x80000000));
7090     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x33, &x34, x32,
7091                                                                x16, 0x0);
7092     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x35, x34, x17, x1);
7093     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x36, x34, x19, x3);
7094     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x37, x34, x21, x5);
7095     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x38, x34, x23, x7);
7096     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x39, x34, x25, x9);
7097     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x40, x34, x27,
7098                                                             x11);
7099     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x41, x34, x29,
7100                                                             x13);
7101     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x42, x34, x31,
7102                                                             x15);
7103     out1[0] = x35;
7104     out1[1] = x36;
7105     out1[2] = x37;
7106     out1[3] = x38;
7107     out1[4] = x39;
7108     out1[5] = x40;
7109     out1[6] = x41;
7110     out1[7] = x42;
7111 }
7112
7113 /*
7114  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub subtracts two field elements in the Montgomery domain.
7115  * Preconditions:
7116  *   0 ≤ eval arg1 < m
7117  *   0 ≤ eval arg2 < m
7118  * Postconditions:
7119  *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m
7120  *   0 ≤ eval out1 < m
7121  *
7122  * Input Bounds:
7123  *   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
7124  *   arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
7125  * Output Bounds:
7126  *   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
7127  */
7128 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(
7129     uint32_t out1[8], const uint32_t arg1[8], const uint32_t arg2[8]) {
7130     uint32_t x1;
7131     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x2;
7132     uint32_t x3;
7133     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x4;
7134     uint32_t x5;
7135     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x6;
7136     uint32_t x7;
7137     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x8;
7138     uint32_t x9;
7139     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x10;
7140     uint32_t x11;
7141     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x12;
7142     uint32_t x13;
7143     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14;
7144     uint32_t x15;
7145     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x16;
7146     uint32_t x17;
7147     uint32_t x18;
7148     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x19;
7149     uint32_t x20;
7150     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x21;
7151     uint32_t x22;
7152     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x23;
7153     uint32_t x24;
7154     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x25;
7155     uint32_t x26;
7156     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x27;
7157     uint32_t x28;
7158     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x29;
7159     uint32_t x30;
7160     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x31;
7161     uint32_t x32;
7162     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x33;
7163     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
7164         &x1, &x2, 0x0, (arg1[0]), (arg2[0]));
7165     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
7166         &x3, &x4, x2, (arg1[1]), (arg2[1]));
7167     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
7168         &x5, &x6, x4, (arg1[2]), (arg2[2]));
7169     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
7170         &x7, &x8, x6, (arg1[3]), (arg2[3]));
7171     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
7172         &x9, &x10, x8, (arg1[4]), (arg2[4]));
7173     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
7174         &x11, &x12, x10, (arg1[5]), (arg2[5]));
7175     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
7176         &x13, &x14, x12, (arg1[6]), (arg2[6]));
7177     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
7178         &x15, &x16, x14, (arg1[7]), (arg2[7]));
7179     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(
7180         &x17, x16, 0x0, UINT32_C(0xffffffff));
7181     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7182         &x18, &x19, 0x0, x1, (x17 & UINT16_C(0xc99)));
7183     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x20, &x21, x19,
7184                                                               x3, 0x0);
7185     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x22, &x23, x21,
7186                                                               x5, 0x0);
7187     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x24, &x25, x23,
7188                                                               x7, 0x0);
7189     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x26, &x27, x25,
7190                                                               x9, 0x0);
7191     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x28, &x29, x27,
7192                                                               x11, 0x0);
7193     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x30, &x31, x29,
7194                                                               x13, 0x0);
7195     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7196         &x32, &x33, x31, x15, (x17 & UINT32_C(0x80000000)));
7197     out1[0] = x18;
7198     out1[1] = x20;
7199     out1[2] = x22;
7200     out1[3] = x24;
7201     out1[4] = x26;
7202     out1[5] = x28;
7203     out1[6] = x30;
7204     out1[7] = x32;
7205 }
7206
7207 /*
7208  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp negates a field element in the Montgomery domain.
7209  * Preconditions:
7210  *   0 ≤ eval arg1 < m
7211  * Postconditions:
7212  *   eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m
7213  *   0 ≤ eval out1 < m
7214  *
7215  * Input Bounds:
7216  *   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
7217  * Output Bounds:
7218  *   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
7219  */
7220 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(
7221     uint32_t out1[8], const uint32_t arg1[8]) {
7222     uint32_t x1;
7223     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x2;
7224     uint32_t x3;
7225     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x4;
7226     uint32_t x5;
7227     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x6;
7228     uint32_t x7;
7229     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x8;
7230     uint32_t x9;
7231     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x10;
7232     uint32_t x11;
7233     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x12;
7234     uint32_t x13;
7235     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14;
7236     uint32_t x15;
7237     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x16;
7238     uint32_t x17;
7239     uint32_t x18;
7240     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x19;
7241     uint32_t x20;
7242     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x21;
7243     uint32_t x22;
7244     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x23;
7245     uint32_t x24;
7246     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x25;
7247     uint32_t x26;
7248     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x27;
7249     uint32_t x28;
7250     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x29;
7251     uint32_t x30;
7252     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x31;
7253     uint32_t x32;
7254     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x33;
7255     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x1, &x2, 0x0,
7256                                                                0x0, (arg1[0]));
7257     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x3, &x4, x2,
7258                                                                0x0, (arg1[1]));
7259     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x5, &x6, x4,
7260                                                                0x0, (arg1[2]));
7261     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x7, &x8, x6,
7262                                                                0x0, (arg1[3]));
7263     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x9, &x10, x8,
7264                                                                0x0, (arg1[4]));
7265     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x11, &x12, x10,
7266                                                                0x0, (arg1[5]));
7267     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x13, &x14, x12,
7268                                                                0x0, (arg1[6]));
7269     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x15, &x16, x14,
7270                                                                0x0, (arg1[7]));
7271     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(
7272         &x17, x16, 0x0, UINT32_C(0xffffffff));
7273     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7274         &x18, &x19, 0x0, x1, (x17 & UINT16_C(0xc99)));
7275     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x20, &x21, x19,
7276                                                               x3, 0x0);
7277     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x22, &x23, x21,
7278                                                               x5, 0x0);
7279     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x24, &x25, x23,
7280                                                               x7, 0x0);
7281     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x26, &x27, x25,
7282                                                               x9, 0x0);
7283     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x28, &x29, x27,
7284                                                               x11, 0x0);
7285     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x30, &x31, x29,
7286                                                               x13, 0x0);
7287     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7288         &x32, &x33, x31, x15, (x17 & UINT32_C(0x80000000)));
7289     out1[0] = x18;
7290     out1[1] = x20;
7291     out1[2] = x22;
7292     out1[3] = x24;
7293     out1[4] = x26;
7294     out1[5] = x28;
7295     out1[6] = x30;
7296     out1[7] = x32;
7297 }
7298
7299 /*
7300  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery translates a field element out of the Montgomery domain.
7301  * Preconditions:
7302  *   0 ≤ eval arg1 < m
7303  * Postconditions:
7304  *   eval out1 mod m = (eval arg1 * ((2^32)⁻¹ mod m)^8) mod m
7305  *   0 ≤ eval out1 < m
7306  *
7307  * Input Bounds:
7308  *   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
7309  * Output Bounds:
7310  *   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
7311  */
7312 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(
7313     uint32_t out1[8], const uint32_t arg1[8]) {
7314     uint32_t x1;
7315     uint32_t x2;
7316     uint32_t x3;
7317     uint32_t x4;
7318     uint32_t x5;
7319     uint32_t x6;
7320     uint32_t x7;
7321     uint32_t x8;
7322     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x9;
7323     uint32_t x10;
7324     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x11;
7325     uint32_t x12;
7326     uint32_t x13;
7327     uint32_t x14;
7328     uint32_t x15;
7329     uint32_t x16;
7330     uint32_t x17;
7331     uint32_t x18;
7332     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x19;
7333     uint32_t x20;
7334     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x21;
7335     uint32_t x22;
7336     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x23;
7337     uint32_t x24;
7338     uint32_t x25;
7339     uint32_t x26;
7340     uint32_t x27;
7341     uint32_t x28;
7342     uint32_t x29;
7343     uint32_t x30;
7344     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x31;
7345     uint32_t x32;
7346     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x33;
7347     uint32_t x34;
7348     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x35;
7349     uint32_t x36;
7350     uint32_t x37;
7351     uint32_t x38;
7352     uint32_t x39;
7353     uint32_t x40;
7354     uint32_t x41;
7355     uint32_t x42;
7356     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x43;
7357     uint32_t x44;
7358     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x45;
7359     uint32_t x46;
7360     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x47;
7361     uint32_t x48;
7362     uint32_t x49;
7363     uint32_t x50;
7364     uint32_t x51;
7365     uint32_t x52;
7366     uint32_t x53;
7367     uint32_t x54;
7368     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x55;
7369     uint32_t x56;
7370     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x57;
7371     uint32_t x58;
7372     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x59;
7373     uint32_t x60;
7374     uint32_t x61;
7375     uint32_t x62;
7376     uint32_t x63;
7377     uint32_t x64;
7378     uint32_t x65;
7379     uint32_t x66;
7380     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x67;
7381     uint32_t x68;
7382     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x69;
7383     uint32_t x70;
7384     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x71;
7385     uint32_t x72;
7386     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x73;
7387     uint32_t x74;
7388     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x75;
7389     uint32_t x76;
7390     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x77;
7391     uint32_t x78;
7392     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x79;
7393     uint32_t x80;
7394     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x81;
7395     uint32_t x82;
7396     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x83;
7397     uint32_t x84;
7398     uint32_t x85;
7399     uint32_t x86;
7400     uint32_t x87;
7401     uint32_t x88;
7402     uint32_t x89;
7403     uint32_t x90;
7404     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x91;
7405     uint32_t x92;
7406     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x93;
7407     uint32_t x94;
7408     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x95;
7409     uint32_t x96;
7410     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x97;
7411     uint32_t x98;
7412     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x99;
7413     uint32_t x100;
7414     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x101;
7415     uint32_t x102;
7416     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x103;
7417     uint32_t x104;
7418     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x105;
7419     uint32_t x106;
7420     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x107;
7421     uint32_t x108;
7422     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x109;
7423     uint32_t x110;
7424     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x111;
7425     uint32_t x112;
7426     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x113;
7427     uint32_t x114;
7428     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x115;
7429     uint32_t x116;
7430     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x117;
7431     uint32_t x118;
7432     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x119;
7433     uint32_t x120;
7434     uint32_t x121;
7435     uint32_t x122;
7436     uint32_t x123;
7437     uint32_t x124;
7438     uint32_t x125;
7439     uint32_t x126;
7440     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x127;
7441     uint32_t x128;
7442     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x129;
7443     uint32_t x130;
7444     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x131;
7445     uint32_t x132;
7446     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x133;
7447     uint32_t x134;
7448     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x135;
7449     uint32_t x136;
7450     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x137;
7451     uint32_t x138;
7452     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x139;
7453     uint32_t x140;
7454     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x141;
7455     uint32_t x142;
7456     uint32_t x143;
7457     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x144;
7458     uint32_t x145;
7459     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x146;
7460     uint32_t x147;
7461     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x148;
7462     uint32_t x149;
7463     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x150;
7464     uint32_t x151;
7465     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x152;
7466     uint32_t x153;
7467     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x154;
7468     uint32_t x155;
7469     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x156;
7470     uint32_t x157;
7471     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x158;
7472     uint32_t x159;
7473     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x160;
7474     uint32_t x161;
7475     uint32_t x162;
7476     uint32_t x163;
7477     uint32_t x164;
7478     uint32_t x165;
7479     uint32_t x166;
7480     uint32_t x167;
7481     uint32_t x168;
7482     x1 = (arg1[0]);
7483     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x2, &x3, x1,
7484                                                          UINT32_C(0xa3347857));
7485     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x4, &x5, x2,
7486                                                          UINT32_C(0x80000000));
7487     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x6, &x7, x2,
7488                                                          UINT16_C(0xc99));
7489     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x8, &x9, 0x0, x1,
7490                                                               x6);
7491     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7492         &x10, &x11, 0x0, (x9 + x7), (arg1[1]));
7493     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x12, &x13, x10,
7494                                                          UINT32_C(0xa3347857));
7495     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x14, &x15, x12,
7496                                                          UINT32_C(0x80000000));
7497     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x16, &x17, x12,
7498                                                          UINT16_C(0xc99));
7499     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x18, &x19, 0x0,
7500                                                               x5, x14);
7501     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x20, &x21, 0x0,
7502                                                               x10, x16);
7503     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7504         &x22, &x23, 0x0, (((uint32_t)x21 + x11) + x17), (arg1[2]));
7505     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x24, &x25, x22,
7506                                                          UINT32_C(0xa3347857));
7507     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x26, &x27, x24,
7508                                                          UINT32_C(0x80000000));
7509     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x28, &x29, x24,
7510                                                          UINT16_C(0xc99));
7511     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x30, &x31, 0x0,
7512                                                               (x19 + x15), x26);
7513     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x32, &x33, 0x0,
7514                                                               x22, x28);
7515     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7516         &x34, &x35, 0x0, (((uint32_t)x33 + x23) + x29), (arg1[3]));
7517     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x36, &x37, x34,
7518                                                          UINT32_C(0xa3347857));
7519     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x38, &x39, x36,
7520                                                          UINT32_C(0x80000000));
7521     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x40, &x41, x36,
7522                                                          UINT16_C(0xc99));
7523     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x42, &x43, 0x0,
7524                                                               (x31 + x27), x38);
7525     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x44, &x45, 0x0,
7526                                                               x34, x40);
7527     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7528         &x46, &x47, 0x0, (((uint32_t)x45 + x35) + x41), (arg1[4]));
7529     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x48, &x49, x46,
7530                                                          UINT32_C(0xa3347857));
7531     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x50, &x51, x48,
7532                                                          UINT32_C(0x80000000));
7533     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x52, &x53, x48,
7534                                                          UINT16_C(0xc99));
7535     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x54, &x55, 0x0,
7536                                                               (x43 + x39), x50);
7537     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x56, &x57, 0x0,
7538                                                               x46, x52);
7539     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7540         &x58, &x59, 0x0, (((uint32_t)x57 + x47) + x53), (arg1[5]));
7541     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x60, &x61, x58,
7542                                                          UINT32_C(0xa3347857));
7543     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x62, &x63, x60,
7544                                                          UINT32_C(0x80000000));
7545     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x64, &x65, x60,
7546                                                          UINT16_C(0xc99));
7547     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x66, &x67, 0x0,
7548                                                               (x55 + x51), x62);
7549     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x68, &x69, 0x0,
7550                                                               x58, x64);
7551     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7552         &x70, &x71, 0x0, (((uint32_t)x69 + x59) + x65), (arg1[6]));
7553     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x72, &x73, x71,
7554                                                               x4, 0x0);
7555     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x74, &x75, x73,
7556                                                               x18, 0x0);
7557     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x76, &x77, x75,
7558                                                               x30, 0x0);
7559     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x78, &x79, x77,
7560                                                               x42, 0x0);
7561     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x80, &x81, x79,
7562                                                               x54, 0x0);
7563     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x82, &x83, x81,
7564                                                               x66, 0x0);
7565     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x84, &x85, x70,
7566                                                          UINT32_C(0xa3347857));
7567     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x86, &x87, x84,
7568                                                          UINT32_C(0x80000000));
7569     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x88, &x89, x84,
7570                                                          UINT16_C(0xc99));
7571     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x90, &x91, 0x0,
7572                                                               x70, x88);
7573     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x92, &x93, x91,
7574                                                               x72, x89);
7575     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x94, &x95, x93,
7576                                                               x74, 0x0);
7577     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x96, &x97, x95,
7578                                                               x76, 0x0);
7579     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x98, &x99, x97,
7580                                                               x78, 0x0);
7581     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x100, &x101, x99,
7582                                                               x80, 0x0);
7583     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x102, &x103,
7584                                                               x101, x82, 0x0);
7585     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7586         &x104, &x105, x103, (x83 + (x67 + x63)), x86);
7587     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x106, &x107, 0x0,
7588                                                               x92, (arg1[7]));
7589     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x108, &x109,
7590                                                               x107, x94, 0x0);
7591     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x110, &x111,
7592                                                               x109, x96, 0x0);
7593     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x112, &x113,
7594                                                               x111, x98, 0x0);
7595     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x114, &x115,
7596                                                               x113, x100, 0x0);
7597     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x116, &x117,
7598                                                               x115, x102, 0x0);
7599     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x118, &x119,
7600                                                               x117, x104, 0x0);
7601     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x120, &x121, x106,
7602                                                          UINT32_C(0xa3347857));
7603     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x122, &x123, x120,
7604                                                          UINT32_C(0x80000000));
7605     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x124, &x125, x120,
7606                                                          UINT16_C(0xc99));
7607     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x126, &x127, 0x0,
7608                                                               x106, x124);
7609     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x128, &x129,
7610                                                               x127, x108, x125);
7611     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x130, &x131,
7612                                                               x129, x110, 0x0);
7613     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x132, &x133,
7614                                                               x131, x112, 0x0);
7615     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x134, &x135,
7616                                                               x133, x114, 0x0);
7617     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x136, &x137,
7618                                                               x135, x116, 0x0);
7619     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x138, &x139,
7620                                                               x137, x118, 0x0);
7621     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7622         &x140, &x141, x139, (x119 + (x105 + x87)), x122);
7623     x142 = (x141 + x123);
7624     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
7625         &x143, &x144, 0x0, x128, UINT16_C(0xc99));
7626     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x145, &x146,
7627                                                                x144, x130, 0x0);
7628     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x147, &x148,
7629                                                                x146, x132, 0x0);
7630     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x149, &x150,
7631                                                                x148, x134, 0x0);
7632     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x151, &x152,
7633                                                                x150, x136, 0x0);
7634     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x153, &x154,
7635                                                                x152, x138, 0x0);
7636     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x155, &x156,
7637                                                                x154, x140, 0x0);
7638     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
7639         &x157, &x158, x156, x142, UINT32_C(0x80000000));
7640     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x159, &x160,
7641                                                                x158, 0x0, 0x0);
7642     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x161, x160, x143,
7643                                                             x128);
7644     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x162, x160, x145,
7645                                                             x130);
7646     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x163, x160, x147,
7647                                                             x132);
7648     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x164, x160, x149,
7649                                                             x134);
7650     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x165, x160, x151,
7651                                                             x136);
7652     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x166, x160, x153,
7653                                                             x138);
7654     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x167, x160, x155,
7655                                                             x140);
7656     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x168, x160, x157,
7657                                                             x142);
7658     out1[0] = x161;
7659     out1[1] = x162;
7660     out1[2] = x163;
7661     out1[3] = x164;
7662     out1[4] = x165;
7663     out1[5] = x166;
7664     out1[6] = x167;
7665     out1[7] = x168;
7666 }
7667
7668 /*
7669  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery translates a field element into the Montgomery domain.
7670  * Preconditions:
7671  *   0 ≤ eval arg1 < m
7672  * Postconditions:
7673  *   eval (from_montgomery out1) mod m = eval arg1 mod m
7674  *   0 ≤ eval out1 < m
7675  *
7676  * Input Bounds:
7677  *   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
7678  * Output Bounds:
7679  *   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
7680  */
7681 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(
7682     uint32_t out1[8], const uint32_t arg1[8]) {
7683     uint32_t x1;
7684     uint32_t x2;
7685     uint32_t x3;
7686     uint32_t x4;
7687     uint32_t x5;
7688     uint32_t x6;
7689     uint32_t x7;
7690     uint32_t x8;
7691     uint32_t x9;
7692     uint32_t x10;
7693     uint32_t x11;
7694     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x12;
7695     uint32_t x13;
7696     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14;
7697     uint32_t x15;
7698     uint32_t x16;
7699     uint32_t x17;
7700     uint32_t x18;
7701     uint32_t x19;
7702     uint32_t x20;
7703     uint32_t x21;
7704     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x22;
7705     uint32_t x23;
7706     uint32_t x24;
7707     uint32_t x25;
7708     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x26;
7709     uint32_t x27;
7710     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x28;
7711     uint32_t x29;
7712     uint32_t x30;
7713     uint32_t x31;
7714     uint32_t x32;
7715     uint32_t x33;
7716     uint32_t x34;
7717     uint32_t x35;
7718     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x36;
7719     uint32_t x37;
7720     uint32_t x38;
7721     uint32_t x39;
7722     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x40;
7723     uint32_t x41;
7724     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x42;
7725     uint32_t x43;
7726     uint32_t x44;
7727     uint32_t x45;
7728     uint32_t x46;
7729     uint32_t x47;
7730     uint32_t x48;
7731     uint32_t x49;
7732     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x50;
7733     uint32_t x51;
7734     uint32_t x52;
7735     uint32_t x53;
7736     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x54;
7737     uint32_t x55;
7738     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x56;
7739     uint32_t x57;
7740     uint32_t x58;
7741     uint32_t x59;
7742     uint32_t x60;
7743     uint32_t x61;
7744     uint32_t x62;
7745     uint32_t x63;
7746     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x64;
7747     uint32_t x65;
7748     uint32_t x66;
7749     uint32_t x67;
7750     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x68;
7751     uint32_t x69;
7752     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x70;
7753     uint32_t x71;
7754     uint32_t x72;
7755     uint32_t x73;
7756     uint32_t x74;
7757     uint32_t x75;
7758     uint32_t x76;
7759     uint32_t x77;
7760     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x78;
7761     uint32_t x79;
7762     uint32_t x80;
7763     uint32_t x81;
7764     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x82;
7765     uint32_t x83;
7766     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x84;
7767     uint32_t x85;
7768     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x86;
7769     uint32_t x87;
7770     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x88;
7771     uint32_t x89;
7772     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x90;
7773     uint32_t x91;
7774     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x92;
7775     uint32_t x93;
7776     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x94;
7777     uint32_t x95;
7778     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x96;
7779     uint32_t x97;
7780     uint32_t x98;
7781     uint32_t x99;
7782     uint32_t x100;
7783     uint32_t x101;
7784     uint32_t x102;
7785     uint32_t x103;
7786     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x104;
7787     uint32_t x105;
7788     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x106;
7789     uint32_t x107;
7790     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x108;
7791     uint32_t x109;
7792     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x110;
7793     uint32_t x111;
7794     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x112;
7795     uint32_t x113;
7796     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x114;
7797     uint32_t x115;
7798     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x116;
7799     uint32_t x117;
7800     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x118;
7801     uint32_t x119;
7802     uint32_t x120;
7803     uint32_t x121;
7804     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x122;
7805     uint32_t x123;
7806     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x124;
7807     uint32_t x125;
7808     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x126;
7809     uint32_t x127;
7810     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x128;
7811     uint32_t x129;
7812     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x130;
7813     uint32_t x131;
7814     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x132;
7815     uint32_t x133;
7816     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x134;
7817     uint32_t x135;
7818     uint32_t x136;
7819     uint32_t x137;
7820     uint32_t x138;
7821     uint32_t x139;
7822     uint32_t x140;
7823     uint32_t x141;
7824     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x142;
7825     uint32_t x143;
7826     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x144;
7827     uint32_t x145;
7828     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x146;
7829     uint32_t x147;
7830     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x148;
7831     uint32_t x149;
7832     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x150;
7833     uint32_t x151;
7834     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x152;
7835     uint32_t x153;
7836     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x154;
7837     uint32_t x155;
7838     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x156;
7839     uint32_t x157;
7840     uint32_t x158;
7841     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x159;
7842     uint32_t x160;
7843     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x161;
7844     uint32_t x162;
7845     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x163;
7846     uint32_t x164;
7847     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x165;
7848     uint32_t x166;
7849     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x167;
7850     uint32_t x168;
7851     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x169;
7852     uint32_t x170;
7853     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x171;
7854     uint32_t x172;
7855     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x173;
7856     uint32_t x174;
7857     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x175;
7858     uint32_t x176;
7859     uint32_t x177;
7860     uint32_t x178;
7861     uint32_t x179;
7862     uint32_t x180;
7863     uint32_t x181;
7864     uint32_t x182;
7865     uint32_t x183;
7866     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x1, &x2, (arg1[0]),
7867                                                          UINT32_C(0x27acdc4));
7868     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x3, &x4, x1,
7869                                                          UINT32_C(0xa3347857));
7870     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x5, &x6, x3,
7871                                                          UINT32_C(0x80000000));
7872     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x7, &x8, x3,
7873                                                          UINT16_C(0xc99));
7874     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x9, &x10, (arg1[1]),
7875                                                          UINT32_C(0x27acdc4));
7876     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x11, &x12, 0x0,
7877                                                               x1, x7);
7878     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7879         &x13, &x14, 0x0, ((x12 + x2) + x8), x9);
7880     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x15, &x16, x13,
7881                                                          UINT32_C(0xa3347857));
7882     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x17, &x18, x15,
7883                                                          UINT32_C(0x80000000));
7884     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x19, &x20, x15,
7885                                                          UINT16_C(0xc99));
7886     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x21, &x22, 0x0,
7887                                                               x6, x17);
7888     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x23, &x24, (arg1[2]),
7889                                                          UINT32_C(0x27acdc4));
7890     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x25, &x26, 0x0,
7891                                                               x13, x19);
7892     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7893         &x27, &x28, 0x0, ((x26 + (x14 + x10)) + x20), x23);
7894     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x29, &x30, x27,
7895                                                          UINT32_C(0xa3347857));
7896     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x31, &x32, x29,
7897                                                          UINT32_C(0x80000000));
7898     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x33, &x34, x29,
7899                                                          UINT16_C(0xc99));
7900     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x35, &x36, 0x0,
7901                                                               (x22 + x18), x31);
7902     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x37, &x38, (arg1[3]),
7903                                                          UINT32_C(0x27acdc4));
7904     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x39, &x40, 0x0,
7905                                                               x27, x33);
7906     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7907         &x41, &x42, 0x0, ((x40 + (x28 + x24)) + x34), x37);
7908     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x43, &x44, x41,
7909                                                          UINT32_C(0xa3347857));
7910     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x45, &x46, x43,
7911                                                          UINT32_C(0x80000000));
7912     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x47, &x48, x43,
7913                                                          UINT16_C(0xc99));
7914     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x49, &x50, 0x0,
7915                                                               (x36 + x32), x45);
7916     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x51, &x52, (arg1[4]),
7917                                                          UINT32_C(0x27acdc4));
7918     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x53, &x54, 0x0,
7919                                                               x41, x47);
7920     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7921         &x55, &x56, 0x0, ((x54 + (x42 + x38)) + x48), x51);
7922     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x57, &x58, x55,
7923                                                          UINT32_C(0xa3347857));
7924     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x59, &x60, x57,
7925                                                          UINT32_C(0x80000000));
7926     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x61, &x62, x57,
7927                                                          UINT16_C(0xc99));
7928     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x63, &x64, 0x0,
7929                                                               (x50 + x46), x59);
7930     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x65, &x66, (arg1[5]),
7931                                                          UINT32_C(0x27acdc4));
7932     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x67, &x68, 0x0,
7933                                                               x55, x61);
7934     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7935         &x69, &x70, 0x0, ((x68 + (x56 + x52)) + x62), x65);
7936     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x71, &x72, x69,
7937                                                          UINT32_C(0xa3347857));
7938     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x73, &x74, x71,
7939                                                          UINT32_C(0x80000000));
7940     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x75, &x76, x71,
7941                                                          UINT16_C(0xc99));
7942     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x77, &x78, 0x0,
7943                                                               (x64 + x60), x73);
7944     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x79, &x80, (arg1[6]),
7945                                                          UINT32_C(0x27acdc4));
7946     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x81, &x82, 0x0,
7947                                                               x69, x75);
7948     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7949         &x83, &x84, 0x0, ((x82 + (x70 + x66)) + x76), x79);
7950     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x85, &x86, x84,
7951                                                               x5, x80);
7952     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x87, &x88, x86,
7953                                                               x21, 0x0);
7954     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x89, &x90, x88,
7955                                                               x35, 0x0);
7956     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x91, &x92, x90,
7957                                                               x49, 0x0);
7958     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x93, &x94, x92,
7959                                                               x63, 0x0);
7960     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x95, &x96, x94,
7961                                                               x77, 0x0);
7962     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x97, &x98, x83,
7963                                                          UINT32_C(0xa3347857));
7964     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x99, &x100, x97,
7965                                                          UINT32_C(0x80000000));
7966     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x101, &x102, x97,
7967                                                          UINT16_C(0xc99));
7968     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x103, &x104, 0x0,
7969                                                               x83, x101);
7970     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x105, &x106,
7971                                                               x104, x85, x102);
7972     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x107, &x108,
7973                                                               x106, x87, 0x0);
7974     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x109, &x110,
7975                                                               x108, x89, 0x0);
7976     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x111, &x112,
7977                                                               x110, x91, 0x0);
7978     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x113, &x114,
7979                                                               x112, x93, 0x0);
7980     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x115, &x116,
7981                                                               x114, x95, 0x0);
7982     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
7983         &x117, &x118, x116, (x96 + (x78 + x74)), x99);
7984     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(
7985         &x119, &x120, (arg1[7]), UINT32_C(0x27acdc4));
7986     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x121, &x122, 0x0,
7987                                                               x105, x119);
7988     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x123, &x124,
7989                                                               x122, x107, x120);
7990     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x125, &x126,
7991                                                               x124, x109, 0x0);
7992     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x127, &x128,
7993                                                               x126, x111, 0x0);
7994     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x129, &x130,
7995                                                               x128, x113, 0x0);
7996     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x131, &x132,
7997                                                               x130, x115, 0x0);
7998     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x133, &x134,
7999                                                               x132, x117, 0x0);
8000     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x135, &x136, x121,
8001                                                          UINT32_C(0xa3347857));
8002     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x137, &x138, x135,
8003                                                          UINT32_C(0x80000000));
8004     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x139, &x140, x135,
8005                                                          UINT16_C(0xc99));
8006     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x141, &x142, 0x0,
8007                                                               x121, x139);
8008     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x143, &x144,
8009                                                               x142, x123, x140);
8010     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x145, &x146,
8011                                                               x144, x125, 0x0);
8012     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x147, &x148,
8013                                                               x146, x127, 0x0);
8014     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x149, &x150,
8015                                                               x148, x129, 0x0);
8016     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x151, &x152,
8017                                                               x150, x131, 0x0);
8018     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x153, &x154,
8019                                                               x152, x133, 0x0);
8020     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(
8021         &x155, &x156, x154, (x134 + (x118 + x100)), x137);
8022     x157 = (x156 + x138);
8023     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
8024         &x158, &x159, 0x0, x143, UINT16_C(0xc99));
8025     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x160, &x161,
8026                                                                x159, x145, 0x0);
8027     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x162, &x163,
8028                                                                x161, x147, 0x0);
8029     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x164, &x165,
8030                                                                x163, x149, 0x0);
8031     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x166, &x167,
8032                                                                x165, x151, 0x0);
8033     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x168, &x169,
8034                                                                x167, x153, 0x0);
8035     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x170, &x171,
8036                                                                x169, x155, 0x0);
8037     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(
8038         &x172, &x173, x171, x157, UINT32_C(0x80000000));
8039     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x174, &x175,
8040                                                                x173, 0x0, 0x0);
8041     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x176, x175, x158,
8042                                                             x143);
8043     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x177, x175, x160,
8044                                                             x145);
8045     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x178, x175, x162,
8046                                                             x147);
8047     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x179, x175, x164,
8048                                                             x149);
8049     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x180, x175, x166,
8050                                                             x151);
8051     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x181, x175, x168,
8052                                                             x153);
8053     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x182, x175, x170,
8054                                                             x155);
8055     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x183, x175, x172,
8056                                                             x157);
8057     out1[0] = x176;
8058     out1[1] = x177;
8059     out1[2] = x178;
8060     out1[3] = x179;
8061     out1[4] = x180;
8062     out1[5] = x181;
8063     out1[6] = x182;
8064     out1[7] = x183;
8065 }
8066
8067 /*
8068  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise.
8069  * Preconditions:
8070  *   0 ≤ eval arg1 < m
8071  * Postconditions:
8072  *   out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0
8073  *
8074  * Input Bounds:
8075  *   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
8076  * Output Bounds:
8077  *   out1: [0x0 ~> 0xffffffff]
8078  */
8079 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_nonzero(
8080     uint32_t *out1, const uint32_t arg1[8]) {
8081     uint32_t x1;
8082     x1 = ((arg1[0]) |
8083           ((arg1[1]) |
8084            ((arg1[2]) |
8085             ((arg1[3]) |
8086              ((arg1[4]) |
8087               ((arg1[5]) | ((arg1[6]) | ((arg1[7]) | (uint32_t)0x0))))))));
8088     *out1 = x1;
8089 }
8090
8091 /*
8092  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz is a multi-limb conditional select.
8093  * Postconditions:
8094  *   eval out1 = (if arg1 = 0 then eval arg2 else eval arg3)
8095  *
8096  * Input Bounds:
8097  *   arg1: [0x0 ~> 0x1]
8098  *   arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
8099  *   arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
8100  * Output Bounds:
8101  *   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
8102  */
8103 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(
8104     uint32_t out1[8], fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1,
8105     const uint32_t arg2[8], const uint32_t arg3[8]) {
8106     uint32_t x1;
8107     uint32_t x2;
8108     uint32_t x3;
8109     uint32_t x4;
8110     uint32_t x5;
8111     uint32_t x6;
8112     uint32_t x7;
8113     uint32_t x8;
8114     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(
8115         &x1, arg1, (arg2[0]), (arg3[0]));
8116     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(
8117         &x2, arg1, (arg2[1]), (arg3[1]));
8118     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(
8119         &x3, arg1, (arg2[2]), (arg3[2]));
8120     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(
8121         &x4, arg1, (arg2[3]), (arg3[3]));
8122     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(
8123         &x5, arg1, (arg2[4]), (arg3[4]));
8124     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(
8125         &x6, arg1, (arg2[5]), (arg3[5]));
8126     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(
8127         &x7, arg1, (arg2[6]), (arg3[6]));
8128     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(
8129         &x8, arg1, (arg2[7]), (arg3[7]));
8130     out1[0] = x1;
8131     out1[1] = x2;
8132     out1[2] = x3;
8133     out1[3] = x4;
8134     out1[4] = x5;
8135     out1[5] = x6;
8136     out1[6] = x7;
8137     out1[7] = x8;
8138 }
8139
8140 /*
8141  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes serializes a field element in the Montgomery domain to bytes in little-endian order.
8142  * Preconditions:
8143  *   0 ≤ eval arg1 < m
8144  * Postconditions:
8145  *   out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31]
8146  *
8147  * Input Bounds:
8148  *   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
8149  * Output Bounds:
8150  *   out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]]
8151  */
8152 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(
8153     uint8_t out1[32], const uint32_t arg1[8]) {
8154     uint32_t x1;
8155     uint32_t x2;
8156     uint32_t x3;
8157     uint32_t x4;
8158     uint32_t x5;
8159     uint32_t x6;
8160     uint32_t x7;
8161     uint32_t x8;
8162     uint32_t x9;
8163     uint8_t x10;
8164     uint32_t x11;
8165     uint8_t x12;
8166     uint8_t x13;
8167     uint8_t x14;
8168     uint8_t x15;
8169     uint32_t x16;
8170     uint8_t x17;
8171     uint32_t x18;
8172     uint8_t x19;
8173     uint8_t x20;
8174     uint8_t x21;
8175     uint8_t x22;
8176     uint32_t x23;
8177     uint8_t x24;
8178     uint32_t x25;
8179     uint8_t x26;
8180     uint8_t x27;
8181     uint8_t x28;
8182     uint8_t x29;
8183     uint32_t x30;
8184     uint8_t x31;
8185     uint32_t x32;
8186     uint8_t x33;
8187     uint8_t x34;
8188     uint8_t x35;
8189     uint8_t x36;
8190     uint32_t x37;
8191     uint8_t x38;
8192     uint32_t x39;
8193     uint8_t x40;
8194     uint8_t x41;
8195     uint8_t x42;
8196     uint8_t x43;
8197     uint32_t x44;
8198     uint8_t x45;
8199     uint32_t x46;
8200     uint8_t x47;
8201     uint8_t x48;
8202     uint8_t x49;
8203     uint8_t x50;
8204     uint32_t x51;
8205     uint8_t x52;
8206     uint32_t x53;
8207     uint8_t x54;
8208     uint8_t x55;
8209     uint8_t x56;
8210     uint8_t x57;
8211     uint32_t x58;
8212     uint8_t x59;
8213     uint32_t x60;
8214     uint8_t x61;
8215     uint8_t x62;
8216     uint8_t x63;
8217     x1 = (arg1[7]);
8218     x2 = (arg1[6]);
8219     x3 = (arg1[5]);
8220     x4 = (arg1[4]);
8221     x5 = (arg1[3]);
8222     x6 = (arg1[2]);
8223     x7 = (arg1[1]);
8224     x8 = (arg1[0]);
8225     x9 = (x8 >> 8);
8226     x10 = (uint8_t)(x8 & UINT8_C(0xff));
8227     x11 = (x9 >> 8);
8228     x12 = (uint8_t)(x9 & UINT8_C(0xff));
8229     x13 = (uint8_t)(x11 >> 8);
8230     x14 = (uint8_t)(x11 & UINT8_C(0xff));
8231     x15 = (uint8_t)(x13 & UINT8_C(0xff));
8232     x16 = (x7 >> 8);
8233     x17 = (uint8_t)(x7 & UINT8_C(0xff));
8234     x18 = (x16 >> 8);
8235     x19 = (uint8_t)(x16 & UINT8_C(0xff));
8236     x20 = (uint8_t)(x18 >> 8);
8237     x21 = (uint8_t)(x18 & UINT8_C(0xff));
8238     x22 = (uint8_t)(x20 & UINT8_C(0xff));
8239     x23 = (x6 >> 8);
8240     x24 = (uint8_t)(x6 & UINT8_C(0xff));
8241     x25 = (x23 >> 8);
8242     x26 = (uint8_t)(x23 & UINT8_C(0xff));
8243     x27 = (uint8_t)(x25 >> 8);
8244     x28 = (uint8_t)(x25 & UINT8_C(0xff));
8245     x29 = (uint8_t)(x27 & UINT8_C(0xff));
8246     x30 = (x5 >> 8);
8247     x31 = (uint8_t)(x5 & UINT8_C(0xff));
8248     x32 = (x30 >> 8);
8249     x33 = (uint8_t)(x30 & UINT8_C(0xff));
8250     x34 = (uint8_t)(x32 >> 8);
8251     x35 = (uint8_t)(x32 & UINT8_C(0xff));
8252     x36 = (uint8_t)(x34 & UINT8_C(0xff));
8253     x37 = (x4 >> 8);
8254     x38 = (uint8_t)(x4 & UINT8_C(0xff));
8255     x39 = (x37 >> 8);
8256     x40 = (uint8_t)(x37 & UINT8_C(0xff));
8257     x41 = (uint8_t)(x39 >> 8);
8258     x42 = (uint8_t)(x39 & UINT8_C(0xff));
8259     x43 = (uint8_t)(x41 & UINT8_C(0xff));
8260     x44 = (x3 >> 8);
8261     x45 = (uint8_t)(x3 & UINT8_C(0xff));
8262     x46 = (x44 >> 8);
8263     x47 = (uint8_t)(x44 & UINT8_C(0xff));
8264     x48 = (uint8_t)(x46 >> 8);
8265     x49 = (uint8_t)(x46 & UINT8_C(0xff));
8266     x50 = (uint8_t)(x48 & UINT8_C(0xff));
8267     x51 = (x2 >> 8);
8268     x52 = (uint8_t)(x2 & UINT8_C(0xff));
8269     x53 = (x51 >> 8);
8270     x54 = (uint8_t)(x51 & UINT8_C(0xff));
8271     x55 = (uint8_t)(x53 >> 8);
8272     x56 = (uint8_t)(x53 & UINT8_C(0xff));
8273     x57 = (uint8_t)(x55 & UINT8_C(0xff));
8274     x58 = (x1 >> 8);
8275     x59 = (uint8_t)(x1 & UINT8_C(0xff));
8276     x60 = (x58 >> 8);
8277     x61 = (uint8_t)(x58 & UINT8_C(0xff));
8278     x62 = (uint8_t)(x60 >> 8);
8279     x63 = (uint8_t)(x60 & UINT8_C(0xff));
8280     out1[0] = x10;
8281     out1[1] = x12;
8282     out1[2] = x14;
8283     out1[3] = x15;
8284     out1[4] = x17;
8285     out1[5] = x19;
8286     out1[6] = x21;
8287     out1[7] = x22;
8288     out1[8] = x24;
8289     out1[9] = x26;
8290     out1[10] = x28;
8291     out1[11] = x29;
8292     out1[12] = x31;
8293     out1[13] = x33;
8294     out1[14] = x35;
8295     out1[15] = x36;
8296     out1[16] = x38;
8297     out1[17] = x40;
8298     out1[18] = x42;
8299     out1[19] = x43;
8300     out1[20] = x45;
8301     out1[21] = x47;
8302     out1[22] = x49;
8303     out1[23] = x50;
8304     out1[24] = x52;
8305     out1[25] = x54;
8306     out1[26] = x56;
8307     out1[27] = x57;
8308     out1[28] = x59;
8309     out1[29] = x61;
8310     out1[30] = x63;
8311     out1[31] = x62;
8312 }
8313
8314 /*
8315  * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes deserializes a field element in the Montgomery domain from bytes in little-endian order.
8316  * Preconditions:
8317  *   0 ≤ bytes_eval arg1 < m
8318  * Postconditions:
8319  *   eval out1 mod m = bytes_eval arg1 mod m
8320  *   0 ≤ eval out1 < m
8321  *
8322  * Input Bounds:
8323  *   arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]]
8324  * Output Bounds:
8325  *   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
8326  */
8327 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(
8328     uint32_t out1[8], const uint8_t arg1[32]) {
8329     uint32_t x1;
8330     uint32_t x2;
8331     uint32_t x3;
8332     uint8_t x4;
8333     uint32_t x5;
8334     uint32_t x6;
8335     uint32_t x7;
8336     uint8_t x8;
8337     uint32_t x9;
8338     uint32_t x10;
8339     uint32_t x11;
8340     uint8_t x12;
8341     uint32_t x13;
8342     uint32_t x14;
8343     uint32_t x15;
8344     uint8_t x16;
8345     uint32_t x17;
8346     uint32_t x18;
8347     uint32_t x19;
8348     uint8_t x20;
8349     uint32_t x21;
8350     uint32_t x22;
8351     uint32_t x23;
8352     uint8_t x24;
8353     uint32_t x25;
8354     uint32_t x26;
8355     uint32_t x27;
8356     uint8_t x28;
8357     uint32_t x29;
8358     uint32_t x30;
8359     uint32_t x31;
8360     uint8_t x32;
8361     uint32_t x33;
8362     uint32_t x34;
8363     uint32_t x35;
8364     uint32_t x36;
8365     uint32_t x37;
8366     uint32_t x38;
8367     uint32_t x39;
8368     uint32_t x40;
8369     uint32_t x41;
8370     uint32_t x42;
8371     uint32_t x43;
8372     uint32_t x44;
8373     uint32_t x45;
8374     uint32_t x46;
8375     uint32_t x47;
8376     x1 = ((uint32_t)(arg1[31]) << 24);
8377     x2 = ((uint32_t)(arg1[30]) << 16);
8378     x3 = ((uint32_t)(arg1[29]) << 8);
8379     x4 = (arg1[28]);
8380     x5 = ((uint32_t)(arg1[27]) << 24);
8381     x6 = ((uint32_t)(arg1[26]) << 16);
8382     x7 = ((uint32_t)(arg1[25]) << 8);
8383     x8 = (arg1[24]);
8384     x9 = ((uint32_t)(arg1[23]) << 24);
8385     x10 = ((uint32_t)(arg1[22]) << 16);
8386     x11 = ((uint32_t)(arg1[21]) << 8);
8387     x12 = (arg1[20]);
8388     x13 = ((uint32_t)(arg1[19]) << 24);
8389     x14 = ((uint32_t)(arg1[18]) << 16);
8390     x15 = ((uint32_t)(arg1[17]) << 8);
8391     x16 = (arg1[16]);
8392     x17 = ((uint32_t)(arg1[15]) << 24);
8393     x18 = ((uint32_t)(arg1[14]) << 16);
8394     x19 = ((uint32_t)(arg1[13]) << 8);
8395     x20 = (arg1[12]);
8396     x21 = ((uint32_t)(arg1[11]) << 24);
8397     x22 = ((uint32_t)(arg1[10]) << 16);
8398     x23 = ((uint32_t)(arg1[9]) << 8);
8399     x24 = (arg1[8]);
8400     x25 = ((uint32_t)(arg1[7]) << 24);
8401     x26 = ((uint32_t)(arg1[6]) << 16);
8402     x27 = ((uint32_t)(arg1[5]) << 8);
8403     x28 = (arg1[4]);
8404     x29 = ((uint32_t)(arg1[3]) << 24);
8405     x30 = ((uint32_t)(arg1[2]) << 16);
8406     x31 = ((uint32_t)(arg1[1]) << 8);
8407     x32 = (arg1[0]);
8408     x33 = (x32 + (x31 + (x30 + x29)));
8409     x34 = (x33 & UINT32_C(0xffffffff));
8410     x35 = (x4 + (x3 + (x2 + x1)));
8411     x36 = (x8 + (x7 + (x6 + x5)));
8412     x37 = (x12 + (x11 + (x10 + x9)));
8413     x38 = (x16 + (x15 + (x14 + x13)));
8414     x39 = (x20 + (x19 + (x18 + x17)));
8415     x40 = (x24 + (x23 + (x22 + x21)));
8416     x41 = (x28 + (x27 + (x26 + x25)));
8417     x42 = (x41 & UINT32_C(0xffffffff));
8418     x43 = (x40 & UINT32_C(0xffffffff));
8419     x44 = (x39 & UINT32_C(0xffffffff));
8420     x45 = (x38 & UINT32_C(0xffffffff));
8421     x46 = (x37 & UINT32_C(0xffffffff));
8422     x47 = (x36 & UINT32_C(0xffffffff));
8423     out1[0] = x34;
8424     out1[1] = x42;
8425     out1[2] = x43;
8426     out1[3] = x44;
8427     out1[4] = x45;
8428     out1[5] = x46;
8429     out1[6] = x47;
8430     out1[7] = x35;
8431 }
8432
8433 /* END verbatim fiat code */
8434
8435 /*-
8436  * Finite field inversion via FLT.
8437  * NB: this is not a real Fiat function, just named that way for consistency.
8438  * Autogenerated: ecp/id_GostR3410_2001_CryptoPro_B_ParamSet/fe_inv.op3
8439  * sliding window w=5
8440  */
8441 static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(fe_t output,
8442                                                             const fe_t t1) {
8443     int i;
8444     /* temporary variables */
8445     fe_t acc, t23, t25;
8446
8447     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, t1);
8448     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t25, t1, acc);
8449     for (i = 0; i < 9; i++)
8450         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t25, t25, acc);
8451     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t23, t25, acc);
8452     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t25, t23, acc);
8453     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, t1);
8454     for (i = 0; i < 247; i++)
8455         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, acc);
8456     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(acc, acc, t25);
8457     for (i = 0; i < 7; i++)
8458         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, acc);
8459     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(output, acc, t23);
8460 }
8461
8462 /* curve coefficient constants */
8463
8464 static const limb_t const_one[8] = {UINT32_C(0xFFFFF367), UINT32_C(0xFFFFFFFF),
8465                                     UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF),
8466                                     UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF),
8467                                     UINT32_C(0xFFFFFFFF), UINT32_C(0x7FFFFFFF)};
8468
8469 static const limb_t const_b[8] = {UINT32_C(0xA9C5A084), UINT32_C(0x8DCC455A),
8470                                   UINT32_C(0x6CF438A8), UINT32_C(0x91AB42DF),
8471                                   UINT32_C(0xEEAC7D11), UINT32_C(0x8F8AA907),
8472                                   UINT32_C(0xF6285375), UINT32_C(0x3CE5D221)};
8473
8474 /* LUT for scalar multiplication by comb interleaving */
8475 static const pt_aff_t lut_cmb[27][16] = {
8476     {
8477         {{UINT32_C(0xFFFFF367), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF),
8478           UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF),
8479           UINT32_C(0xFFFFFFFF), UINT32_C(0x7FFFFFFF)},
8480          {UINT32_C(0x570C7410), UINT32_C(0xDDDC64B3), UINT32_C(0x13172887),
8481           UINT32_C(0xA7B09925), UINT32_C(0x4B6382DB), UINT32_C(0x0C4E5C4C),
8482           UINT32_C(0x124768DE), UINT32_C(0x2763DB0F)}},
8483         {{UINT32_C(0x8457D15D), UINT32_C(0xCD3E57B6), UINT32_C(0xBEA56E83),
8484           UINT32_C(0xEB688F7F), UINT32_C(0x6A13C5CE), UINT32_C(0x235A123C),
8485           UINT32_C(0x50F57A6D), UINT32_C(0x0CD7EB9D)},
8486          {UINT32_C(0x544C1965), UINT32_C(0xC0124E91), UINT32_C(0x62AFA35E),
8487           UINT32_C(0x4D9C1729), UINT32_C(0x0037C554), UINT32_C(0x0F92F2C3),
8488           UINT32_C(0x0A3F2665), UINT32_C(0x1D899868)}},
8489         {{UINT32_C(0x55F43EFF), UINT32_C(0x9DE4B213), UINT32_C(0x5C9E63F5),
8490           UINT32_C(0x2E110A42), UINT32_C(0x1CE5A6DF), UINT32_C(0x9350A9C3),
8491           UINT32_C(0xA332315E), UINT32_C(0x377CBF0B)},
8492          {UINT32_C(0x20F0D1B5), UINT32_C(0x2805DD48), UINT32_C(0x0F9723E5),
8493           UINT32_C(0x3B197566), UINT32_C(0x84B79937), UINT32_C(0xA1CCA78C),
8494           UINT32_C(0x94D5E03D), UINT32_C(0x4F87BB1B)}},
8495         {{UINT32_C(0x5652C96F), UINT32_C(0xE428FBFB), UINT32_C(0xD261BDD1),
8496           UINT32_C(0x2E9A14D2), UINT32_C(0x7453B76A), UINT32_C(0x082D8296),
8497           UINT32_C(0x7AC87B02), UINT32_C(0x61EA580E)},
8498          {UINT32_C(0xCF368FDB), UINT32_C(0xA0F8C2BA), UINT32_C(0xD73B2A28),
8499           UINT32_C(0xDF093380), UINT32_C(0xEA8FE5D2), UINT32_C(0xFA0928B2),
8500           UINT32_C(0x5F86D38A), UINT32_C(0x77A67492)}},
8501         {{UINT32_C(0x27670451), UINT32_C(0xDFFAB410), UINT32_C(0x1200AD3A),
8502           UINT32_C(0xEBC3D017), UINT32_C(0x25F4F6C4), UINT32_C(0xF68324F3),
8503           UINT32_C(0x7D0EAFD0), UINT32_C(0x4A24CD5F)},
8504          {UINT32_C(0xD3F6BD1C), UINT32_C(0xF8FBD489), UINT32_C(0x67B473DE),
8505           UINT32_C(0x0F6B56D5), UINT32_C(0xCACF0D6B), UINT32_C(0x6FB063DE),
8506           UINT32_C(0x96DC574B), UINT32_C(0x27F2E7E9)}},
8507         {{UINT32_C(0x93937228), UINT32_C(0xA6A10645), UINT32_C(0xA9165BBB),
8508           UINT32_C(0xAB7550B4), UINT32_C(0xCB0EDBE8), UINT32_C(0xD682D4F1),
8509           UINT32_C(0x40E5AD8D), UINT32_C(0x2261FCEC)},
8510          {UINT32_C(0xCCBD4E18), UINT32_C(0x9F2119C6), UINT32_C(0xAAB09697),
8511           UINT32_C(0x2FD094E9), UINT32_C(0xE700929E), UINT32_C(0x00331713),
8512           UINT32_C(0x54338FE1), UINT32_C(0x6C5F2EFE)}},
8513         {{UINT32_C(0x42FFF78A), UINT32_C(0xD6314017), UINT32_C(0x2087E055),
8514           UINT32_C(0x38F23A91), UINT32_C(0x10EF1CAC), UINT32_C(0xE30E809C),
8515           UINT32_C(0x2432FF74), UINT32_C(0x3BCB0A54)},
8516          {UINT32_C(0xB31509E6), UINT32_C(0x2B4B5B97), UINT32_C(0x3E54AF47),
8517           UINT32_C(0x117FE9D7), UINT32_C(0x52F63ACA), UINT32_C(0xE513C0BE),
8518           UINT32_C(0xB1C80A6B), UINT32_C(0x41ED8ADA)}},
8519         {{UINT32_C(0xE0A79FCD), UINT32_C(0x61A31837), UINT32_C(0x51D3DE38),
8520           UINT32_C(0x8F742B57), UINT32_C(0x41354B55), UINT32_C(0x10635FCD),
8521           UINT32_C(0x946510BE), UINT32_C(0x61F30C61)},
8522          {UINT32_C(0x6C416DAC), UINT32_C(0x9183D677), UINT32_C(0x345431CB),
8523           UINT32_C(0x391B7B42), UINT32_C(0x7C254A8D), UINT32_C(0xE3D6F084),
8524           UINT32_C(0x19D320D8), UINT32_C(0x777E1F62)}},
8525         {{UINT32_C(0xF05BD85D), UINT32_C(0x090E633F), UINT32_C(0x240392ED),
8526           UINT32_C(0x546C41A0), UINT32_C(0x9F4139CA), UINT32_C(0x6BBCF15D),
8527           UINT32_C(0x7FFDA5DA), UINT32_C(0x73F5B657)},
8528          {UINT32_C(0xE0622A57), UINT32_C(0xBC04E353), UINT32_C(0x6E6414F4),
8529           UINT32_C(0xCBD8F01E), UINT32_C(0x8C3C0CC5), UINT32_C(0x53377C0B),
8530           UINT32_C(0xE0A14548), UINT32_C(0x6D302331)}},
8531         {{UINT32_C(0x3D6D456E), UINT32_C(0x235487F8), UINT32_C(0xB3FDCDCF),
8532           UINT32_C(0xBD92203D), UINT32_C(0xCFFDA977), UINT32_C(0x15B13D60),
8533           UINT32_C(0x31A1C4B5), UINT32_C(0x22DCB487)},
8534          {UINT32_C(0xC76ED9A2), UINT32_C(0xA367FB4E), UINT32_C(0xC0C86AF4),
8535           UINT32_C(0x1E4F7956), UINT32_C(0x5B012AD7), UINT32_C(0x6F087C49),
8536           UINT32_C(0x4949B444), UINT32_C(0x33437E4A)}},
8537         {{UINT32_C(0xB7CDDB38), UINT32_C(0x261B44FE), UINT32_C(0x419216AD),
8538           UINT32_C(0xDCE2FE47), UINT32_C(0x9428657B), UINT32_C(0xA4CE17FF),
8539           UINT32_C(0xF8329049), UINT32_C(0x7CE64F48)},
8540          {UINT32_C(0x7289C114), UINT32_C(0x4CE74211), UINT32_C(0x8C212A23),
8541           UINT32_C(0x0E622409), UINT32_C(0x2096719D), UINT32_C(0xCF75BF45),
8542           UINT32_C(0x7BDC1600), UINT32_C(0x6F553581)}},
8543         {{UINT32_C(0xB941CBC9), UINT32_C(0xE776AA0C), UINT32_C(0x951AAED3),
8544           UINT32_C(0x16D670E0), UINT32_C(0x4B1EC097), UINT32_C(0x79C019DF),
8545           UINT32_C(0x12266D30), UINT32_C(0x635A66BB)},
8546          {UINT32_C(0x023AAFD2), UINT32_C(0x030D843E), UINT32_C(0x6466108F),
8547           UINT32_C(0x10FB6157), UINT32_C(0x08D568D5), UINT32_C(0x93774BEC),
8548           UINT32_C(0x04C1EE73), UINT32_C(0x29D27962)}},
8549         {{UINT32_C(0xE00BBC21), UINT32_C(0x6F0F4C2E), UINT32_C(0xA30AB92F),
8550           UINT32_C(0x9EB34C58), UINT32_C(0xAE34908B), UINT32_C(0x2153D901),
8551           UINT32_C(0x4EDC188F), UINT32_C(0x136A7E1F)},
8552          {UINT32_C(0x8BC45EE4), UINT32_C(0xF709BF5D), UINT32_C(0x4FAD9A54),
8553           UINT32_C(0xEA6984E4), UINT32_C(0xAF5140EB), UINT32_C(0xFC8E6F8A),
8554           UINT32_C(0x87756E47), UINT32_C(0x25EBF0DE)}},
8555         {{UINT32_C(0x5B1D4B9F), UINT32_C(0x5C2A9726), UINT32_C(0x68E93FC7),
8556           UINT32_C(0xBE235DFD), UINT32_C(0x471A4EA0), UINT32_C(0x7766BDB9),
8557           UINT32_C(0xD9909CD9), UINT32_C(0x476D17CC)},
8558          {UINT32_C(0x7B398BC4), UINT32_C(0x4960E5B4), UINT32_C(0x0F58F328),
8559           UINT32_C(0x909D0F17), UINT32_C(0x230EF508), UINT32_C(0x1ABF7E02),
8560           UINT32_C(0xD29239C9), UINT32_C(0x6DE6B3E1)}},
8561         {{UINT32_C(0x85A6DBE3), UINT32_C(0xCCF0AA28), UINT32_C(0x823C606C),
8562           UINT32_C(0xA5E4B325), UINT32_C(0x15505FC6), UINT32_C(0xADE98B2A),
8563           UINT32_C(0x02E20C3B), UINT32_C(0x4D4E7703)},
8564          {UINT32_C(0x4730DF64), UINT32_C(0x24196417), UINT32_C(0xA914A59D),
8565           UINT32_C(0x3DD47817), UINT32_C(0xC4FDFD97), UINT32_C(0x4D7A317E),
8566           UINT32_C(0xBE12AA72), UINT32_C(0x3767E545)}},
8567         {{UINT32_C(0x165C7BF4), UINT32_C(0xA0C2A028), UINT32_C(0x36A0B483),
8568           UINT32_C(0xCD4DA6EA), UINT32_C(0x3AF53195), UINT32_C(0x1E1E6332),
8569           UINT32_C(0x8D77188F), UINT32_C(0x7A025E23)},
8570          {UINT32_C(0x08D2CEF2), UINT32_C(0xB3CF03B9), UINT32_C(0x25A0AFA6),
8571           UINT32_C(0x8FEE9BB8), UINT32_C(0x88111895), UINT32_C(0x855340E0),
8572           UINT32_C(0x4FB8F8A3), UINT32_C(0x32E3EF01)}},
8573     },
8574     {
8575         {{UINT32_C(0xEBF87807), UINT32_C(0x33EBE39D), UINT32_C(0xDBDEFF76),
8576           UINT32_C(0xB048F96C), UINT32_C(0x342A3087), UINT32_C(0xA0496C3C),
8577           UINT32_C(0x50953679), UINT32_C(0x7623E192)},
8578          {UINT32_C(0x4B932390), UINT32_C(0x12F76711), UINT32_C(0xACECE2F7),
8579           UINT32_C(0xF80851EA), UINT32_C(0xE5B280EA), UINT32_C(0xE447465B),
8580           UINT32_C(0x11115958), UINT32_C(0x0412ADE8)}},
8581         {{UINT32_C(0xB5EB0DC2), UINT32_C(0x982F1AC8), UINT32_C(0xBBBCC880),
8582           UINT32_C(0x8464E052), UINT32_C(0x01335D53), UINT32_C(0xC927B596),
8583           UINT32_C(0x4DA4D80B), UINT32_C(0x4B0C6F5A)},
8584          {UINT32_C(0xE04783AF), UINT32_C(0x101E1878), UINT32_C(0x41D8A690),
8585           UINT32_C(0x50458FFC), UINT32_C(0x1B77DFBF), UINT32_C(0x11499D88),
8586           UINT32_C(0x1F77A937), UINT32_C(0x46DC7D22)}},
8587         {{UINT32_C(0x620E52C0), UINT32_C(0xE9AD22CE), UINT32_C(0x4140F356),
8588           UINT32_C(0x0990D6AA), UINT32_C(0x0CBBEEE5), UINT32_C(0x0F6B2EF7),
8589           UINT32_C(0xEAD414C6), UINT32_C(0x2C67DC80)},
8590          {UINT32_C(0x23D4CD20), UINT32_C(0xE17182BC), UINT32_C(0xC13DDEA9),
8591           UINT32_C(0xFC8FE3CB), UINT32_C(0x3BABC06D), UINT32_C(0xD1E4A7B8),
8592           UINT32_C(0x71C06DB7), UINT32_C(0x52EA05CC)}},
8593         {{UINT32_C(0x0D022B5B), UINT32_C(0xF8ABB770), UINT32_C(0x199DC689),
8594           UINT32_C(0x362B8059), UINT32_C(0x26BBDEC8), UINT32_C(0x5D887A4D),
8595           UINT32_C(0xF7FC2A01), UINT32_C(0x7835F183)},
8596          {UINT32_C(0xDE99DF34), UINT32_C(0xEEDE12F5), UINT32_C(0xA3082301),
8597           UINT32_C(0xBE952638), UINT32_C(0x4C35A162), UINT32_C(0x829FDF80),
8598           UINT32_C(0xC2B9645E), UINT32_C(0x205A2252)}},
8599         {{UINT32_C(0x1356E14C), UINT32_C(0xDE284DA9), UINT32_C(0xC37415FE),
8600           UINT32_C(0xE40CEFE0), UINT32_C(0x47F6016E), UINT32_C(0x62BE93E9),
8601           UINT32_C(0x5DBFE2F6), UINT32_C(0x2DD98904)},
8602          {UINT32_C(0x2EBC70F9), UINT32_C(0x195B0E98), UINT32_C(0xF01F4D43),
8603           UINT32_C(0x7E52840D), UINT32_C(0x4B1F6AB4), UINT32_C(0x1AFB1FDF),
8604           UINT32_C(0x20B3E491), UINT32_C(0x050AABB8)}},
8605         {{UINT32_C(0xC645DAD4), UINT32_C(0xC59E1EDB), UINT32_C(0x565A286D),
8606           UINT32_C(0x5AF6B2DC), UINT32_C(0x13076366), UINT32_C(0xC399A48A),
8607           UINT32_C(0x4AC0E5B9), UINT32_C(0x19F4881F)},
8608          {UINT32_C(0xCD5AC339), UINT32_C(0xC07D02A1), UINT32_C(0xED628A55),
8609           UINT32_C(0x18FBD088), UINT32_C(0xFFA4788E), UINT32_C(0x2D33C6F4),
8610           UINT32_C(0xCCB832E7), UINT32_C(0x52E9AE42)}},
8611         {{UINT32_C(0x4E5E934E), UINT32_C(0xA47091AE), UINT32_C(0x91CED3C6),
8612           UINT32_C(0x2542CE13), UINT32_C(0x8FC47857), UINT32_C(0xDDE01FD5),
8613           UINT32_C(0x4304EAA9), UINT32_C(0x6BA6E569)},
8614          {UINT32_C(0xE24091A9), UINT32_C(0x2FF0278B), UINT32_C(0x782BBCE0),
8615           UINT32_C(0xB895F0AB), UINT32_C(0xAB8B8828), UINT32_C(0xA80CCC97),
8616           UINT32_C(0x68A7D8FE), UINT32_C(0x6A54B961)}},
8617         {{UINT32_C(0xBAC4581A), UINT32_C(0x15E1F5AD), UINT32_C(0xD4BAA751),
8618           UINT32_C(0x91620EF0), UINT32_C(0xC7273C4D), UINT32_C(0x4E65731F),
8619           UINT32_C(0x7EEE33B5), UINT32_C(0x14B166CB)},
8620          {UINT32_C(0x3CD06080), UINT32_C(0x7B0EFFA5), UINT32_C(0x8CF95FF9),
8621           UINT32_C(0x4491156A), UINT32_C(0xE2258574), UINT32_C(0xC8C64C39),
8622           UINT32_C(0x13315CE9), UINT32_C(0x3D48DA9D)}},
8623         {{UINT32_C(0x99866CE5), UINT32_C(0x97A098A3), UINT32_C(0x023A1167),
8624           UINT32_C(0xF4CCDB40), UINT32_C(0xF8094782), UINT32_C(0x4BB32981),
8625           UINT32_C(0xC7D5FD13), UINT32_C(0x7342CC98)},
8626          {UINT32_C(0x78B99D4E), UINT32_C(0x3C1C5B18), UINT32_C(0xF4762AC9),
8627           UINT32_C(0x1277668F), UINT32_C(0x6AE50E4F), UINT32_C(0x612431D7),
8628           UINT32_C(0x36F9071C), UINT32_C(0x36C174E0)}},
8629         {{UINT32_C(0x9327BA7F), UINT32_C(0x39194E87), UINT32_C(0x7237FA1A),
8630           UINT32_C(0xC4D251FF), UINT32_C(0x2BA5EB8D), UINT32_C(0x55ED3CD4),
8631           UINT32_C(0xBA590188), UINT32_C(0x0263AF07)},
8632          {UINT32_C(0xEFA82CF3), UINT32_C(0xB4853127), UINT32_C(0x2B8E761D),
8633           UINT32_C(0x2CC2D220), UINT32_C(0x2722B490), UINT32_C(0x4582B81E),
8634           UINT32_C(0x610AA621), UINT32_C(0x1DA7680A)}},
8635         {{UINT32_C(0x30D297D4), UINT32_C(0x06A669EE), UINT32_C(0xE133D393),
8636           UINT32_C(0xC336B048), UINT32_C(0x93B7B41B), UINT32_C(0xB733A2C4),
8637           UINT32_C(0xC7A8E721), UINT32_C(0x427CC233)},
8638          {UINT32_C(0x2867BB00), UINT32_C(0x727C14F1), UINT32_C(0xA736035E),
8639           UINT32_C(0x756F4C7A), UINT32_C(0x26327A22), UINT32_C(0xB72A3EDE),
8640           UINT32_C(0x77F73F28), UINT32_C(0x4AEDE2BB)}},
8641         {{UINT32_C(0xA7282ED0), UINT32_C(0xC8A3612F), UINT32_C(0xB0150579),
8642           UINT32_C(0xE4AD8B40), UINT32_C(0x0C3FEE4B), UINT32_C(0xAB1DE11D),
8643           UINT32_C(0x33B31F23), UINT32_C(0x613AAD48)},
8644          {UINT32_C(0x5C91BD21), UINT32_C(0xE74AB856), UINT32_C(0x7953D695),
8645           UINT32_C(0x49917735), UINT32_C(0x1A53D74F), UINT32_C(0x3831EB60),
8646           UINT32_C(0x54DEB1A6), UINT32_C(0x245977A0)}},
8647         {{UINT32_C(0xFFFC1468), UINT32_C(0x15972E4D), UINT32_C(0x141DC24C),
8648           UINT32_C(0xA758D9CB), UINT32_C(0xED8694C5), UINT32_C(0x5E76FCDF),
8649           UINT32_C(0x069B7A5E), UINT32_C(0x5F9DAF35)},
8650          {UINT32_C(0x501B5415), UINT32_C(0xFE50FCE4), UINT32_C(0x58CFDE50),
8651           UINT32_C(0x6442CF67), UINT32_C(0x38E5F4D0), UINT32_C(0xA89C6DB4),
8652           UINT32_C(0xF5D4FEFC), UINT32_C(0x21F012DB)}},
8653         {{UINT32_C(0x98CB9A81), UINT32_C(0x2A1170AD), UINT32_C(0x036C5E45),
8654           UINT32_C(0x934BD9D5), UINT32_C(0xCA5095B1), UINT32_C(0x27DF152E),
8655           UINT32_C(0xCCEEE508), UINT32_C(0x682698DB)},
8656          {UINT32_C(0xB973FB5F), UINT32_C(0x1F4FE3A2), UINT32_C(0x792C7D4D),
8657           UINT32_C(0xD33CBEBE), UINT32_C(0xE7B33A8F), UINT32_C(0x99D37961),
8658           UINT32_C(0x7B6D015D), UINT32_C(0x46B8993B)}},
8659         {{UINT32_C(0x6FBAC8F7), UINT32_C(0x93A3809B), UINT32_C(0x97C55DC4),
8660           UINT32_C(0x84861BF0), UINT32_C(0x15BB65E3), UINT32_C(0xA6F89EEA),
8661           UINT32_C(0xA6E531D1), UINT32_C(0x66AE1C5D)},
8662          {UINT32_C(0xFD83DAEA), UINT32_C(0x643A14FC), UINT32_C(0xC585947B),
8663           UINT32_C(0xA7A46D0D), UINT32_C(0x4FBA1274), UINT32_C(0xFA20CF07),
8664           UINT32_C(0x93578A7D), UINT32_C(0x5999ED7B)}},
8665         {{UINT32_C(0x78E7C6CE), UINT32_C(0x36C8B6ED), UINT32_C(0x5E325F44),
8666           UINT32_C(0x6D400CA5), UINT32_C(0x20B7AA5C), UINT32_C(0xC6AE09B3),
8667           UINT32_C(0x89EABC17), UINT32_C(0x1AF261C1)},
8668          {UINT32_C(0xB9E778E4), UINT32_C(0x64D6FFBB), UINT32_C(0x7FC64BEB),
8669           UINT32_C(0x1C9E223E), UINT32_C(0x5D75E6C0), UINT32_C(0x4D68B520),
8670           UINT32_C(0x76677A06), UINT32_C(0x5A72B1D9)}},
8671     },
8672     {
8673         {{UINT32_C(0x6F08BB17), UINT32_C(0x62DB6640), UINT32_C(0xAE75BB73),
8674           UINT32_C(0xC34F29DF), UINT32_C(0x7DBD4851), UINT32_C(0xD501293D),
8675           UINT32_C(0xAD1F604B), UINT32_C(0x5EAA94CA)},
8676          {UINT32_C(0x094408A8), UINT32_C(0x39CFE9D1), UINT32_C(0xE8A476F2),
8677           UINT32_C(0xC0F6544C), UINT32_C(0xA42D7607), UINT32_C(0x9F6308B6),
8678           UINT32_C(0xD727018F), UINT32_C(0x17F82949)}},
8679         {{UINT32_C(0x9C4C4BD2), UINT32_C(0xC44453CD), UINT32_C(0xEBD0B947),
8680           UINT32_C(0xA895E247), UINT32_C(0xAEBC27F4), UINT32_C(0x0AEB7AFC),
8681           UINT32_C(0xF04ABFAC), UINT32_C(0x2472FD08)},
8682          {UINT32_C(0x73E6E994), UINT32_C(0x319EC67D), UINT32_C(0x798C5FC0),
8683           UINT32_C(0xD6533E4C), UINT32_C(0x3FB9AA89), UINT32_C(0xF4C3B24D),
8684           UINT32_C(0x0A3B376B), UINT32_C(0x3EC58082)}},
8685         {{UINT32_C(0x144ACF7A), UINT32_C(0x79732D6F), UINT32_C(0x911342DD),
8686           UINT32_C(0xFDD630C3), UINT32_C(0x4A630649), UINT32_C(0xC577C4B3),
8687           UINT32_C(0xBBA999D6), UINT32_C(0x14956A17)},
8688          {UINT32_C(0xA435A559), UINT32_C(0x523D3CC8), UINT32_C(0xACDA8861),
8689           UINT32_C(0x488DC690), UINT32_C(0xF051C69A), UINT32_C(0x4CF70928),
8690           UINT32_C(0x955394CB), UINT32_C(0x2D98D573)}},
8691         {{UINT32_C(0x23A4B840), UINT32_C(0xEDB7BA2A), UINT32_C(0xF6C2D93B),
8692           UINT32_C(0x725EC496), UINT32_C(0x8833BB3F), UINT32_C(0x0C94818B),
8693           UINT32_C(0xB142B12A), UINT32_C(0x51281A31)},
8694          {UINT32_C(0x659EDA83), UINT32_C(0x2A8A5706), UINT32_C(0x7F9D6877),
8695           UINT32_C(0x3098F750), UINT32_C(0x2171F69F), UINT32_C(0x87AD0FDF),
8696           UINT32_C(0x1A6F2F28), UINT32_C(0x6B7067C3)}},
8697         {{UINT32_C(0x12B1E36F), UINT32_C(0x3B521074), UINT32_C(0xF81E4733),
8698           UINT32_C(0x727A2432), UINT32_C(0x53F2CBBD), UINT32_C(0xB75A2F35),
8699           UINT32_C(0x54960EB0), UINT32_C(0x46DE9338)},
8700          {UINT32_C(0xE561D908), UINT32_C(0xAC5344F8), UINT32_C(0x12C67430),
8701           UINT32_C(0x4BD40ECB), UINT32_C(0xEF499F97), UINT32_C(0x1698FD62),
8702           UINT32_C(0x6AE9FBD1), UINT32_C(0x29EBD7AE)}},
8703         {{UINT32_C(0x1EC8110D), UINT32_C(0x9DEC249B), UINT32_C(0xFD2F5C39),
8704           UINT32_C(0x2D19053A), UINT32_C(0xE01522DF), UINT32_C(0xB1189807),
8705           UINT32_C(0xC1424C77), UINT32_C(0x24A04C16)},
8706          {UINT32_C(0x24F72226), UINT32_C(0xA4FC7C7D), UINT32_C(0xA8322501),
8707           UINT32_C(0x763405FB), UINT32_C(0x18F015E0), UINT32_C(0xC5443C9A),
8708           UINT32_C(0xC55D6CEA), UINT32_C(0x6DEDA19B)}},
8709         {{UINT32_C(0x9EAE2FF9), UINT32_C(0x4EF30976), UINT32_C(0x5741B21B),
8710           UINT32_C(0x2549B7F2), UINT32_C(0x3BC23F01), UINT32_C(0x859ACD10),
8711           UINT32_C(0xBF5FB0D7), UINT32_C(0x05C0358F)},
8712          {UINT32_C(0xFB6AB34C), UINT32_C(0x85E53AA8), UINT32_C(0x8FD2FD20),
8713           UINT32_C(0x8DAAAA69), UINT32_C(0x16096FC9), UINT32_C(0xBE6D4D34),
8714           UINT32_C(0xF8B8B831), UINT32_C(0x27572C88)}},
8715         {{UINT32_C(0x47D56A25), UINT32_C(0xADB98DC5), UINT32_C(0x8B8E1DC6),
8716           UINT32_C(0x0CC76432), UINT32_C(0xBE48C4A1), UINT32_C(0x032C738E),
8717           UINT32_C(0x94FC9CF0), UINT32_C(0x31372DAD)},
8718          {UINT32_C(0x78A7DCB2), UINT32_C(0x8E646A0C), UINT32_C(0x6ECD9885),
8719           UINT32_C(0xA32F3E9C), UINT32_C(0x6A3AD963), UINT32_C(0x280BB4AD),
8720           UINT32_C(0x817D4327), UINT32_C(0x7DEE1BC4)}},
8721         {{UINT32_C(0xF8A7C1E1), UINT32_C(0x1AE6A27B), UINT32_C(0xCBC527C7),
8722           UINT32_C(0x558C652F), UINT32_C(0xA65056F6), UINT32_C(0x4084B56E),
8723           UINT32_C(0x6D4C838B), UINT32_C(0x3FD45459)},
8724          {UINT32_C(0x56DE792A), UINT32_C(0xF5C15AFD), UINT32_C(0x88959282),
8725           UINT32_C(0xF656FAA4), UINT32_C(0x1C07D63F), UINT32_C(0x7F0D8EF4),
8726           UINT32_C(0xCD841ACC), UINT32_C(0x44EFFF7D)}},
8727         {{UINT32_C(0x8D3695D8), UINT32_C(0xAC28F2A6), UINT32_C(0x3F91E781),
8728           UINT32_C(0x94959EB8), UINT32_C(0xFEDD6E1F), UINT32_C(0x7693FFF7),
8729           UINT32_C(0xA9A699EF), UINT32_C(0x2512E6E1)},
8730          {UINT32_C(0x7955FAB7), UINT32_C(0x823400EB), UINT32_C(0x94924C08),
8731           UINT32_C(0xCF109EF9), UINT32_C(0x3A709F32), UINT32_C(0x12E08779),
8732           UINT32_C(0x9CC6484C), UINT32_C(0x187D0413)}},
8733         {{UINT32_C(0xEBDE477F), UINT32_C(0xD3932AFB), UINT32_C(0x44538D8A),
8734           UINT32_C(0x9D5A5422), UINT32_C(0x166A87AF), UINT32_C(0x40B0B159),
8735           UINT32_C(0x41D5E078), UINT32_C(0x31294B3D)},
8736          {UINT32_C(0xE8C48222), UINT32_C(0x6C49C853), UINT32_C(0xDCD0D611),
8737           UINT32_C(0x8FBE6620), UINT32_C(0xF611007B), UINT32_C(0x9DDC7EE2),
8738           UINT32_C(0xE6652172), UINT32_C(0x12289A60)}},
8739         {{UINT32_C(0xDACF80F7), UINT32_C(0x8B85475B), UINT32_C(0x9B5CAEF2),
8740           UINT32_C(0xADBAB353), UINT32_C(0x8D2A7707), UINT32_C(0x7C4090A3),
8741           UINT32_C(0xDAB97830), UINT32_C(0x271FA4F1)},
8742          {UINT32_C(0x53173E04), UINT32_C(0x141B7252), UINT32_C(0x06D0B127),
8743           UINT32_C(0x4B483D64), UINT32_C(0x063A7AF8), UINT32_C(0x8FD15BCF),
8744           UINT32_C(0xE580F34C), UINT32_C(0x59B19EAF)}},
8745         {{UINT32_C(0x9C0D79B6), UINT32_C(0xA7EEA8C4), UINT32_C(0xB9185109),
8746           UINT32_C(0x766FA113), UINT32_C(0x4642CC64), UINT32_C(0xB42D74F3),
8747           UINT32_C(0xBB817476), UINT32_C(0x51D0127B)},
8748          {UINT32_C(0x8AB71448), UINT32_C(0x6DA097F5), UINT32_C(0xF95AD0C7),
8749           UINT32_C(0x145872E5), UINT32_C(0xF1759436), UINT32_C(0xB7E934F3),
8750           UINT32_C(0x3160ED1F), UINT32_C(0x4EA883F9)}},
8751         {{UINT32_C(0x0CEABAE1), UINT32_C(0x30DC39B7), UINT32_C(0xA606D766),
8752           UINT32_C(0x49EC5EE8), UINT32_C(0x97FC46AF), UINT32_C(0x230E2762),
8753           UINT32_C(0x5BE79B8D), UINT32_C(0x079A531F)},
8754          {UINT32_C(0xEF08C93F), UINT32_C(0x48253BC2), UINT32_C(0xF124D043),
8755           UINT32_C(0x2D32AF02), UINT32_C(0xAF34D231), UINT32_C(0x85796D0D),
8756           UINT32_C(0x15F8CECD), UINT32_C(0x06A6205C)}},
8757         {{UINT32_C(0x47B00D1A), UINT32_C(0x1FA77AFD), UINT32_C(0xE48CE97A),
8758           UINT32_C(0x429717B0), UINT32_C(0x57433697), UINT32_C(0x38FEF11D),
8759           UINT32_C(0x7D426687), UINT32_C(0x3E91BED6)},
8760          {UINT32_C(0x2AB4BFE9), UINT32_C(0x95919BF7), UINT32_C(0x97096B3A),
8761           UINT32_C(0x7A3F33FC), UINT32_C(0x3DD8C82E), UINT32_C(0x0E0BBAC3),
8762           UINT32_C(0xF8EDB675), UINT32_C(0x2CE9EFCB)}},
8763         {{UINT32_C(0x43D8B81D), UINT32_C(0x2D44E998), UINT32_C(0x6D68A95C),
8764           UINT32_C(0x8ABFF419), UINT32_C(0x3B2A18DD), UINT32_C(0x639000A0),
8765           UINT32_C(0x871E3ED3), UINT32_C(0x7CD15413)},
8766          {UINT32_C(0x148F0378), UINT32_C(0xC059855B), UINT32_C(0x616B62BF),
8767           UINT32_C(0x50147459), UINT32_C(0x4D461110), UINT32_C(0x53B699AF),
8768           UINT32_C(0xEC29E48D), UINT32_C(0x6A0D0EC7)}},
8769     },
8770     {
8771         {{UINT32_C(0x15797F35), UINT32_C(0x51733221), UINT32_C(0x4BBE6644),
8772           UINT32_C(0x2F298214), UINT32_C(0x4A5EF621), UINT32_C(0x7BC8FEC6),
8773           UINT32_C(0x7F472F05), UINT32_C(0x3D2BE785)},
8774          {UINT32_C(0x2765C427), UINT32_C(0xA1C3A1C9), UINT32_C(0x24155ACF),
8775           UINT32_C(0xBACF08FE), UINT32_C(0x9D229948), UINT32_C(0xA9CC1A17),
8776           UINT32_C(0x27039FD8), UINT32_C(0x1918C97F)}},
8777         {{UINT32_C(0x7843FF7B), UINT32_C(0x2CF39338), UINT32_C(0x258997F2),
8778           UINT32_C(0x5FCBDE65), UINT32_C(0x165A98A3), UINT32_C(0x3980BF90),
8779           UINT32_C(0xBF9458E5), UINT32_C(0x2E80607D)},
8780          {UINT32_C(0x7019165C), UINT32_C(0x5F646EB6), UINT32_C(0xDDE34205),
8781           UINT32_C(0xFA091FBE), UINT32_C(0x69267AE3), UINT32_C(0x695348B6),
8782           UINT32_C(0xABC22051), UINT32_C(0x385B0B6A)}},
8783         {{UINT32_C(0xB537F78C), UINT32_C(0x3CAE0756), UINT32_C(0x8BE30367),
8784           UINT32_C(0x3012A958), UINT32_C(0x981A22C3), UINT32_C(0x32D26C06),
8785           UINT32_C(0x2950E833), UINT32_C(0x7D091FAB)},
8786          {UINT32_C(0x797ACAAF), UINT32_C(0xD8E1B638), UINT32_C(0x49F2EA10),
8787           UINT32_C(0xE7021C85), UINT32_C(0x17A7AF3B), UINT32_C(0xCA382BC1),
8788           UINT32_C(0xBB809976), UINT32_C(0x08A5A81D)}},
8789         {{UINT32_C(0x4287BB97), UINT32_C(0x00F499FD), UINT32_C(0xDAA9DAF2),
8790           UINT32_C(0xFB6791CA), UINT32_C(0x057B2B98), UINT32_C(0x9A19E4F3),
8791           UINT32_C(0xC53C0223), UINT32_C(0x6968D2FF)},
8792          {UINT32_C(0xCE88509C), UINT32_C(0xDC741EF5), UINT32_C(0x306A0570),
8793           UINT32_C(0x38AE355D), UINT32_C(0xC23AF46B), UINT32_C(0xFECF6589),
8794           UINT32_C(0x6AD48836), UINT32_C(0x6C0E6ED1)}},
8795         {{UINT32_C(0xE363495D), UINT32_C(0x22B68698), UINT32_C(0x39AF2BE3),
8796           UINT32_C(0x120005D0), UINT32_C(0x0BF4BA69), UINT32_C(0xE37B1965),
8797           UINT32_C(0x26E64AE7), UINT32_C(0x3B416E93)},
8798          {UINT32_C(0xDEAC5C59), UINT32_C(0xFAED5088), UINT32_C(0xEB2518A5),
8799           UINT32_C(0x67436ACC), UINT32_C(0x91FA788D), UINT32_C(0x636B52F8),
8800           UINT32_C(0x655153D1), UINT32_C(0x10B2A57A)}},
8801         {{UINT32_C(0x833A984C), UINT32_C(0xB18060A7), UINT32_C(0x74833BAD),
8802           UINT32_C(0x7EF83746), UINT32_C(0xC5B3BC88), UINT32_C(0xCBFAF742),
8803           UINT32_C(0xA1A7F135), UINT32_C(0x7981DC36)},
8804          {UINT32_C(0x5D076280), UINT32_C(0xE70CCAFA), UINT32_C(0x07009D85),
8805           UINT32_C(0xEBA80EB7), UINT32_C(0x73778DE2), UINT32_C(0x7D99D24C),
8806           UINT32_C(0xA7262D50), UINT32_C(0x1EFEE1BB)}},
8807         {{UINT32_C(0x6A7CAB32), UINT32_C(0xBC47F4A2), UINT32_C(0xDD6E48A3),
8808           UINT32_C(0x53F290A7), UINT32_C(0x92F35F9E), UINT32_C(0x82257A1B),
8809           UINT32_C(0x8BB0AAB0), UINT32_C(0x73D17B31)},
8810          {UINT32_C(0xC2DFFE96), UINT32_C(0xBBD4522A), UINT32_C(0xE6EB0501),
8811           UINT32_C(0x9C37DAA1), UINT32_C(0x453DB6BE), UINT32_C(0xF4D4D568),
8812           UINT32_C(0x642AD2E4), UINT32_C(0x2868CBF5)}},
8813         {{UINT32_C(0xABE30C59), UINT32_C(0x40A988E6), UINT32_C(0x93057DEC),
8814           UINT32_C(0x5ADED929), UINT32_C(0xDACD37B0), UINT32_C(0x18FD7E04),
8815           UINT32_C(0x8228ACA5), UINT32_C(0x6E3FB81E)},
8816          {UINT32_C(0x4104B0C9), UINT32_C(0xFF3EEFE6), UINT32_C(0x31CA120A),
8817           UINT32_C(0xD7DD05E7), UINT32_C(0xD01C1CF8), UINT32_C(0xAFD3CF1C),
8818           UINT32_C(0x831BC4E9), UINT32_C(0x4D0CD264)}},
8819         {{UINT32_C(0x82CAC14A), UINT32_C(0x2641B321), UINT32_C(0x70990E6C),
8820           UINT32_C(0x34EB1495), UINT32_C(0xA1C74CA6), UINT32_C(0x3E5AF58F),
8821           UINT32_C(0x616B7A2D), UINT32_C(0x11B50821)},
8822          {UINT32_C(0xC4FA9719), UINT32_C(0x891636E3), UINT32_C(0x107DD719),
8823           UINT32_C(0xAEE84C27), UINT32_C(0xC1872E75), UINT32_C(0xA2B0D83E),
8824           UINT32_C(0x7383069E), UINT32_C(0x7DD62CBC)}},
8825         {{UINT32_C(0xC81B7E15), UINT32_C(0xEBA4A024), UINT32_C(0x04516070),
8826           UINT32_C(0x1CC37E08), UINT32_C(0xF90CE59D), UINT32_C(0xEF1F0401),
8827           UINT32_C(0xE062E133), UINT32_C(0x3B4259D5)},
8828          {UINT32_C(0xCF2CA1DD), UINT32_C(0x87A1DBFA), UINT32_C(0x61FD1AFB),
8829           UINT32_C(0xCFBFB15F), UINT32_C(0xECF4C7BA), UINT32_C(0xFBFD9899),
8830           UINT32_C(0x2725FA50), UINT32_C(0x57C84CEE)}},
8831         {{UINT32_C(0xEFA6E3D0), UINT32_C(0x8B0B7414), UINT32_C(0xB3D04224),
8832           UINT32_C(0xD9725C5E), UINT32_C(0x8A91371E), UINT32_C(0x670E6C50),
8833           UINT32_C(0x9B25BD3B), UINT32_C(0x4D130467)},
8834          {UINT32_C(0x5CF18D4F), UINT32_C(0x18D77D15), UINT32_C(0x1CA09677),
8835           UINT32_C(0xEF80DC41), UINT32_C(0xB9A05CF9), UINT32_C(0x6F3A961B),
8836           UINT32_C(0x7C1433A4), UINT32_C(0x0BB8A518)}},
8837         {{UINT32_C(0xB33FCF05), UINT32_C(0xAC0CF52A), UINT32_C(0x1CDC7782),
8838           UINT32_C(0xAD03692F), UINT32_C(0xAA02B77E), UINT32_C(0xB345BAE6),
8839           UINT32_C(0x456FCFA9), UINT32_C(0x05096694)},
8840          {UINT32_C(0x25D4CF32), UINT32_C(0xA8984448), UINT32_C(0x15184188),
8841           UINT32_C(0xD76393E3), UINT32_C(0xEA069BED), UINT32_C(0x7D4A8C0C),
8842           UINT32_C(0x11E18347), UINT32_C(0x4D22268D)}},
8843         {{UINT32_C(0x3CB3C0F1), UINT32_C(0xC2A0BB75), UINT32_C(0x8EBA58C6),
8844           UINT32_C(0x61F4EC4C), UINT32_C(0xDFC4A903), UINT32_C(0x5D3F0D44),
8845           UINT32_C(0xF9B6F79A), UINT32_C(0x0B6CE81B)},
8846          {UINT32_C(0x94E49623), UINT32_C(0xF694A44A), UINT32_C(0x1BDF75E0),
8847           UINT32_C(0xCFCBB7E1), UINT32_C(0xE0337E13), UINT32_C(0x20CEE1BD),
8848           UINT32_C(0xDFF02E18), UINT32_C(0x694EA40B)}},
8849         {{UINT32_C(0x78D1DC2E), UINT32_C(0xC21BE0FA), UINT32_C(0xED0E49E0),
8850           UINT32_C(0x08B4D9A5), UINT32_C(0x827F0B4C), UINT32_C(0x676731AB),
8851           UINT32_C(0xEBAB5894), UINT32_C(0x674ECC79)},
8852          {UINT32_C(0x39ABB148), UINT32_C(0xB29BD0D4), UINT32_C(0x2378A63A),
8853           UINT32_C(0x8207A8F8), UINT32_C(0x1E4C29C2), UINT32_C(0xE36A549D),
8854           UINT32_C(0x3F1C255B), UINT32_C(0x380D48DE)}},
8855         {{UINT32_C(0xE5F2C87E), UINT32_C(0x6AB6F887), UINT32_C(0xA01AEC86),
8856           UINT32_C(0xE92C7345), UINT32_C(0x8660C26F), UINT32_C(0x697F4520),
8857           UINT32_C(0x9B58015B), UINT32_C(0x4F2488E0)},
8858          {UINT32_C(0xBB41900C), UINT32_C(0xB2410B3E), UINT32_C(0xBE1A8A39),
8859           UINT32_C(0x31267500), UINT32_C(0xB9140554), UINT32_C(0xA7C9997C),
8860           UINT32_C(0x1CD41524), UINT32_C(0x335B1806)}},
8861         {{UINT32_C(0x14873270), UINT32_C(0xB836FD9F), UINT32_C(0xE3243EC5),
8862           UINT32_C(0x1AE0F512), UINT32_C(0x83B9AB74), UINT32_C(0xA743E304),
8863           UINT32_C(0x3A5758C7), UINT32_C(0x1569C30D)},
8864          {UINT32_C(0x9E8F9E52), UINT32_C(0x003CEF9A), UINT32_C(0x8C22119E),
8865           UINT32_C(0x557AFB4A), UINT32_C(0xF223A966), UINT32_C(0x66F2487E),
8866           UINT32_C(0xA519378F), UINT32_C(0x7FA00273)}},
8867     },
8868     {
8869         {{UINT32_C(0x7B08C1C4), UINT32_C(0x812C024F), UINT32_C(0xADBA8AD9),
8870           UINT32_C(0xC6017986), UINT32_C(0x0601BD82), UINT32_C(0x59C7B16C),
8871           UINT32_C(0x0CFA5622), UINT32_C(0x41B6A45C)},
8872          {UINT32_C(0x83C1E3E8), UINT32_C(0x353A67D5), UINT32_C(0xC65F5059),
8873           UINT32_C(0x9A83438E), UINT32_C(0x86EEA346), UINT32_C(0x99950377),
8874           UINT32_C(0x330D2570), UINT32_C(0x74E2F4BD)}},
8875         {{UINT32_C(0xB4A8BDA8), UINT32_C(0xDB8E53C1), UINT32_C(0x2C003C77),
8876           UINT32_C(0xA850047E), UINT32_C(0x1B018831), UINT32_C(0xFFD48A73),
8877           UINT32_C(0x8B325062), UINT32_C(0x24F96CB6)},
8878          {UINT32_C(0xCD2B821B), UINT32_C(0x3779CA4D), UINT32_C(0xC3159CE7),
8879           UINT32_C(0xC2AFBF6E), UINT32_C(0x10F18DE9), UINT32_C(0x8A580B1A),
8880           UINT32_C(0x8CF75334), UINT32_C(0x37043D0D)}},
8881         {{UINT32_C(0xECCCF2E8), UINT32_C(0x0451DCDA), UINT32_C(0x752A134F),
8882           UINT32_C(0xCF7A3AD9), UINT32_C(0xFBDAE56C), UINT32_C(0xD5754596),
8883           UINT32_C(0xF4CDCF6A), UINT32_C(0x15237D73)},
8884          {UINT32_C(0xECA37967), UINT32_C(0x1DF5912C), UINT32_C(0x336CD97E),
8885           UINT32_C(0x60934339), UINT32_C(0x434DDC01), UINT32_C(0xA4E523FE),
8886           UINT32_C(0x79DBE24C), UINT32_C(0x24E81DC6)}},
8887         {{UINT32_C(0xC83B2B7C), UINT32_C(0x28F0D73B), UINT32_C(0x7B5DE1AA),
8888           UINT32_C(0x45BE220F), UINT32_C(0xB136A877), UINT32_C(0x1B785230),
8889           UINT32_C(0xAEFF115B), UINT32_C(0x5A94122A)},
8890          {UINT32_C(0x8E598998), UINT32_C(0xEF895F0C), UINT32_C(0xF4C622C3),
8891           UINT32_C(0xCEE32B3E), UINT32_C(0xB256CFD0), UINT32_C(0x2D080B1D),
8892           UINT32_C(0x21075E15), UINT32_C(0x672686D6)}},
8893         {{UINT32_C(0x9F9F26FE), UINT32_C(0xE85FB575), UINT32_C(0x93A7966E),
8894           UINT32_C(0x1DE57B83), UINT32_C(0xDD8CB696), UINT32_C(0xA9948DE8),
8895           UINT32_C(0x758E685D), UINT32_C(0x226C95A6)},
8896          {UINT32_C(0x3729C663), UINT32_C(0x38B0753B), UINT32_C(0x410E4884),
8897           UINT32_C(0xD46CA4D9), UINT32_C(0x77516FA4), UINT32_C(0x1D6FA5F9),
8898           UINT32_C(0x696CFAFC), UINT32_C(0x09A0FDB8)}},
8899         {{UINT32_C(0xCC7F6FD8), UINT32_C(0xD1DAD8E9), UINT32_C(0x022195A2),
8900           UINT32_C(0x7BB9F606), UINT32_C(0x223A9346), UINT32_C(0x1B997396),
8901           UINT32_C(0x88DCFB04), UINT32_C(0x6ACD6F7C)},
8902          {UINT32_C(0x3AC52F65), UINT32_C(0x9029E5EB), UINT32_C(0x935A39DE),
8903           UINT32_C(0xED1D7A0F), UINT32_C(0x538D8914), UINT32_C(0xF1D58C3A),
8904           UINT32_C(0xB36B8342), UINT32_C(0x19153569)}},
8905         {{UINT32_C(0xE2502156), UINT32_C(0xFF600354), UINT32_C(0x733DA5EC),
8906           UINT32_C(0xE386A20F), UINT32_C(0x9D24D11D), UINT32_C(0xD6FBCBBB),
8907           UINT32_C(0x0B06C843), UINT32_C(0x0B57498C)},
8908          {UINT32_C(0x7A834667), UINT32_C(0x98F1FFF8), UINT32_C(0xC7DF05F5),
8909           UINT32_C(0x4AEB8788), UINT32_C(0xC2681DA4), UINT32_C(0x8CFA3B01),
8910           UINT32_C(0x2FA2FAEA), UINT32_C(0x1AECC0E8)}},
8911         {{UINT32_C(0x94C5CBC5), UINT32_C(0x38278865), UINT32_C(0x041A755A),
8912           UINT32_C(0x9ADA7CAB), UINT32_C(0x8D891640), UINT32_C(0xB38F762A),
8913           UINT32_C(0x00AD88F0), UINT32_C(0x28F6FBB2)},
8914          {UINT32_C(0x3709CD6D), UINT32_C(0x3F9629E3), UINT32_C(0x4912F483),
8915           UINT32_C(0xD2435A55), UINT32_C(0xDFF5AB69), UINT32_C(0x305BEA64),
8916           UINT32_C(0x663BB0D9), UINT32_C(0x4D29041A)}},
8917         {{UINT32_C(0xE2FD9338), UINT32_C(0xDC4BC9D4), UINT32_C(0xBA7938FC),
8918           UINT32_C(0x5389390D), UINT32_C(0xF329B218), UINT32_C(0xC42B812D),
8919           UINT32_C(0xFA9F1956), UINT32_C(0x5E809B5E)},
8920          {UINT32_C(0x523D74C3), UINT32_C(0xE2A89BAA), UINT32_C(0x78CBA7B5),
8921           UINT32_C(0x97CD9FFB), UINT32_C(0x5B07BCD2), UINT32_C(0x25F95301),
8922           UINT32_C(0x2064BB3A), UINT32_C(0x4042C705)}},
8923         {{UINT32_C(0x28D53BF9), UINT32_C(0xD8B6ADA4), UINT32_C(0xA4210F2D),
8924           UINT32_C(0x5E922CA5), UINT32_C(0xF05A1629), UINT32_C(0x9501F46A),
8925           UINT32_C(0xC6CD71CD), UINT32_C(0x28094E54)},
8926          {UINT32_C(0x811285AD), UINT32_C(0x8D5484D5), UINT32_C(0x1593EE86),
8927           UINT32_C(0xFB2168F4), UINT32_C(0xAC54A41D), UINT32_C(0x693D3B32),
8928           UINT32_C(0x28A5425C), UINT32_C(0x3DAFEC07)}},
8929         {{UINT32_C(0xD12837A8), UINT32_C(0x0E4CF0D0), UINT32_C(0xCF5273BB),
8930           UINT32_C(0x19FA2CC9), UINT32_C(0x116A20C4), UINT32_C(0x56346BAE),
8931           UINT32_C(0x0E436A36), UINT32_C(0x4F3597FE)},
8932          {UINT32_C(0xE8EB1B85), UINT32_C(0x459D3FFB), UINT32_C(0x5AE04130),
8933           UINT32_C(0x7C718672), UINT32_C(0x60302740), UINT32_C(0xA37C2586),
8934           UINT32_C(0x913072D8), UINT32_C(0x2871AF37)}},
8935         {{UINT32_C(0x8590319D), UINT32_C(0xD77249B7), UINT32_C(0xEB06B813),
8936           UINT32_C(0x73F7A684), UINT32_C(0x71D1D580), UINT32_C(0x4C9DC5B9),
8937           UINT32_C(0x5A50A95B), UINT32_C(0x7C91A9F5)},
8938          {UINT32_C(0x0475F161), UINT32_C(0x4F8F2E89), UINT32_C(0x538B7F94),
8939           UINT32_C(0xF34EC1DD), UINT32_C(0xD46F2575), UINT32_C(0xB8FF6C65),
8940           UINT32_C(0x64433C80), UINT32_C(0x79A2CE2C)}},
8941         {{UINT32_C(0x1AEB7039), UINT32_C(0x38448A53), UINT32_C(0x417189EC),
8942           UINT32_C(0xF5EC03F7), UINT32_C(0xEB92FF2B), UINT32_C(0xFA095CA1),
8943           UINT32_C(0xE4FCAEDB), UINT32_C(0x4612F720)},
8944          {UINT32_C(0xF30AAE0E), UINT32_C(0xC945E966), UINT32_C(0x340A7A1D),
8945           UINT32_C(0xF61CFE85), UINT32_C(0xE42D7920), UINT32_C(0xA2560BC6),
8946           UINT32_C(0xA692E9C7), UINT32_C(0x07D7B321)}},
8947         {{UINT32_C(0x592C60C5), UINT32_C(0xB9C26307), UINT32_C(0x0F59D966),
8948           UINT32_C(0xCECBC6C3), UINT32_C(0x5459D89E), UINT32_C(0x8BA31FD6),
8949           UINT32_C(0x47C7FAE8), UINT32_C(0x1A4AF6B1)},
8950          {UINT32_C(0xB431D720), UINT32_C(0x66487766), UINT32_C(0x5108B845),
8951           UINT32_C(0x5D597309), UINT32_C(0xCA8E6E0D), UINT32_C(0xA3B94FD7),
8952           UINT32_C(0x55C6A48D), UINT32_C(0x639519E3)}},
8953         {{UINT32_C(0x052DC195), UINT32_C(0xAD3EE167), UINT32_C(0x0947816B),
8954           UINT32_C(0x4DF2BFC7), UINT32_C(0xABADBB3C), UINT32_C(0x5D463469),
8955           UINT32_C(0xC33D4F96), UINT32_C(0x6F7AA885)},
8956          {UINT32_C(0xFE06133C), UINT32_C(0x3DD27536), UINT32_C(0x2796E7ED),
8957           UINT32_C(0x27A557B2), UINT32_C(0x3D314A4F), UINT32_C(0x1117CCB7),
8958           UINT32_C(0x23968946), UINT32_C(0x6F0C0AE0)}},
8959         {{UINT32_C(0xE2110C00), UINT32_C(0x0A3D4DAE), UINT32_C(0x4C633A23),
8960           UINT32_C(0x0389D3A5), UINT32_C(0x83AEC172), UINT32_C(0xE167BDFA),
8961           UINT32_C(0xFB38E8F1), UINT32_C(0x067070CE)},
8962          {UINT32_C(0x4DF220C5), UINT32_C(0x41137367), UINT32_C(0x59C39F05),
8963           UINT32_C(0xB255E5D3), UINT32_C(0x043C75B3), UINT32_C(0xE437984E),
8964           UINT32_C(0x6A22994A), UINT32_C(0x01DCD771)}},
8965     },
8966     {
8967         {{UINT32_C(0x4C6FDDCF), UINT32_C(0xD2880DF2), UINT32_C(0x8A00D80F),
8968           UINT32_C(0x76A28FF2), UINT32_C(0x0792F82C), UINT32_C(0x257CB1F8),
8969           UINT32_C(0x605703EA), UINT32_C(0x07938ABC)},
8970          {UINT32_C(0x5F61B0FE), UINT32_C(0xD99F0AC9), UINT32_C(0x8EC15433),
8971           UINT32_C(0x440DC63C), UINT32_C(0x86AB5DDB), UINT32_C(0xD9BDDFF1),
8972           UINT32_C(0x744755EA), UINT32_C(0x3B8875DC)}},
8973         {{UINT32_C(0x4938C9FB), UINT32_C(0x01D90440), UINT32_C(0x8DB6A890),
8974           UINT32_C(0x900657FD), UINT32_C(0xF60A173A), UINT32_C(0xDCC5068A),
8975           UINT32_C(0x857C7B2A), UINT32_C(0x5F3EB242)},
8976          {UINT32_C(0xA4F0EB9E), UINT32_C(0x634240BD), UINT32_C(0x44E85C70),
8977           UINT32_C(0xACDDA6C4), UINT32_C(0x0AABE4C5), UINT32_C(0x753F02AB),
8978           UINT32_C(0xC1D034E1), UINT32_C(0x33D89D21)}},
8979         {{UINT32_C(0x1279B25B), UINT32_C(0x4596B52D), UINT32_C(0xA48014AE),
8980           UINT32_C(0x494669D9), UINT32_C(0x4FD22150), UINT32_C(0x9A26B6FC),
8981           UINT32_C(0xF07D5A3F), UINT32_C(0x394DE0BB)},
8982          {UINT32_C(0x634C1733), UINT32_C(0x12DFE5A6), UINT32_C(0x1EBC5177),
8983           UINT32_C(0x33EC21D2), UINT32_C(0x527514CC), UINT32_C(0x454B4930),
8984           UINT32_C(0x41405532), UINT32_C(0x7F23BD0F)}},
8985         {{UINT32_C(0xBAC9DD30), UINT32_C(0xB2879E7F), UINT32_C(0x06CE7672),
8986           UINT32_C(0x259BB1CB), UINT32_C(0xBB97BE10), UINT32_C(0x201DB42E),
8987           UINT32_C(0x2EA35A8E), UINT32_C(0x112D6079)},
8988          {UINT32_C(0x6B3B9933), UINT32_C(0x7CC756D4), UINT32_C(0x781CE4DD),
8989           UINT32_C(0x4BD24810), UINT32_C(0x8733247E), UINT32_C(0x53CB4E38),
8990           UINT32_C(0x9DA66787), UINT32_C(0x47BD6A30)}},
8991         {{UINT32_C(0xBA600C8E), UINT32_C(0x8A700953), UINT32_C(0xCF388C0D),
8992           UINT32_C(0xD466F11D), UINT32_C(0xE4A17A8E), UINT32_C(0xD485F341),
8993           UINT32_C(0x234FC16D), UINT32_C(0x63278918)},
8994          {UINT32_C(0xBB82046D), UINT32_C(0xF4DDA875), UINT32_C(0x2945470A),
8995           UINT32_C(0xD61E4E58), UINT32_C(0x6D0F8976), UINT32_C(0xCDB6C5BD),
8996           UINT32_C(0x10A004A2), UINT32_C(0x44CD9E4D)}},
8997         {{UINT32_C(0x49C4AA6E), UINT32_C(0x595CD942), UINT32_C(0x3DE400C8),
8998           UINT32_C(0xE5A90136), UINT32_C(0x9DD12D9E), UINT32_C(0x4BCED3BD),
8999           UINT32_C(0x78E3D5E4), UINT32_C(0x3700CF92)},
9000          {UINT32_C(0x75A32D1A), UINT32_C(0xECFFF498), UINT32_C(0x3C4A54B2),
9001           UINT32_C(0xC28DDE37), UINT32_C(0x993CAE6D), UINT32_C(0x8DC22352),
9002           UINT32_C(0x52ED7019), UINT32_C(0x46CB5408)}},
9003         {{UINT32_C(0xEA94E7BF), UINT32_C(0x71FFAED0), UINT32_C(0xD5AE6185),
9004           UINT32_C(0xC0817D2C), UINT32_C(0x5CF23687), UINT32_C(0x7B72B8B9),
9005           UINT32_C(0x60A450E1), UINT32_C(0x61DDE599)},
9006          {UINT32_C(0xD13870E6), UINT32_C(0x17CF0B10), UINT32_C(0x5F2930BB),
9007           UINT32_C(0x7D08E1FB), UINT32_C(0x83807C14), UINT32_C(0x8D0F4F55),
9008           UINT32_C(0x6E6DB701), UINT32_C(0x61EBFC1A)}},
9009         {{UINT32_C(0x0FCAFE68), UINT32_C(0x247A3F65), UINT32_C(0x7AC2A25E),
9010           UINT32_C(0x57548035), UINT32_C(0x3CD0FE06), UINT32_C(0xB7466CA5),
9011           UINT32_C(0xBCC31AB3), UINT32_C(0x7B0D8B36)},
9012          {UINT32_C(0xA6D4358C), UINT32_C(0x2FAAF49C), UINT32_C(0x3E9B4E31),
9013           UINT32_C(0xD9E5E2FE), UINT32_C(0xF6086336), UINT32_C(0xA6A859A0),
9014           UINT32_C(0xA9C19F84), UINT32_C(0x0C2A442A)}},
9015         {{UINT32_C(0x3BC0AD7D), UINT32_C(0x66FEA841), UINT32_C(0x32C9158E),
9016           UINT32_C(0xCD3A546C), UINT32_C(0x8FE1DF7F), UINT32_C(0xACD2EE7F),
9017           UINT32_C(0xEBE9621E), UINT32_C(0x10F58C0A)},
9018          {UINT32_C(0x478B667D), UINT32_C(0x80047C54), UINT32_C(0x89870DCE),
9019           UINT32_C(0x9EAE5FAA), UINT32_C(0x0520A005), UINT32_C(0xC05BEB33),
9020           UINT32_C(0x352AC891), UINT32_C(0x2CFBC921)}},
9021         {{UINT32_C(0x632F6D73), UINT32_C(0x6842E6B8), UINT32_C(0x2B9FFAEA),
9022           UINT32_C(0x6F2B5724), UINT32_C(0x9341D2FA), UINT32_C(0x7ACCC982),
9023           UINT32_C(0x88809B65), UINT32_C(0x6DAD9A11)},
9024          {UINT32_C(0xB6CC2240), UINT32_C(0x3411850C), UINT32_C(0xB64937E1),
9025           UINT32_C(0x8547BCAF), UINT32_C(0x6978F636), UINT32_C(0x49AEDD5F),
9026           UINT32_C(0x85A53D2A), UINT32_C(0x38F59752)}},
9027         {{UINT32_C(0xF5F5A2D0), UINT32_C(0x5C38EB49), UINT32_C(0xE3BF779C),
9028           UINT32_C(0xE028121B), UINT32_C(0xA783D5E3), UINT32_C(0x649997C8),
9029           UINT32_C(0x2C06CC0F), UINT32_C(0x04DE984A)},
9030          {UINT32_C(0xA49D6239), UINT32_C(0x52C834B0), UINT32_C(0x628413AC),
9031           UINT32_C(0x070A1B09), UINT32_C(0xA8624A1E), UINT32_C(0x2FBE0CA5),
9032           UINT32_C(0x268D930A), UINT32_C(0x687D93C3)}},
9033         {{UINT32_C(0x314C47A4), UINT32_C(0xC7CD6805), UINT32_C(0xCE7A9A6D),
9034           UINT32_C(0x8BD0C630), UINT32_C(0x34F727BA), UINT32_C(0xCDB2DAD5),
9035           UINT32_C(0x25DB0189), UINT32_C(0x7814C414)},
9036          {UINT32_C(0x7DD9CAEE), UINT32_C(0xD7F9C5DC), UINT32_C(0x798690E4),
9037           UINT32_C(0xDA6EACC8), UINT32_C(0x6B675E01), UINT32_C(0x705794E3),
9038           UINT32_C(0x75C5EC38), UINT32_C(0x4A31D714)}},
9039         {{UINT32_C(0x0519D5F2), UINT32_C(0xC162A3EA), UINT32_C(0x2958FABF),
9040           UINT32_C(0x92146A78), UINT32_C(0x6CB31EB0), UINT32_C(0x1E63CBE4),
9041           UINT32_C(0xFBC5AD0F), UINT32_C(0x77CE5AAD)},
9042          {UINT32_C(0x32605DC6), UINT32_C(0x3631E470), UINT32_C(0x43413DD3),
9043           UINT32_C(0xC7D1C72F), UINT32_C(0x0DF6B7C9), UINT32_C(0x171A3794),
9044           UINT32_C(0x2B5A08BC), UINT32_C(0x6D711743)}},
9045         {{UINT32_C(0x509EF0F2), UINT32_C(0xDDC8057D), UINT32_C(0x6CABB486),
9046           UINT32_C(0x05C0B92B), UINT32_C(0x4244D919), UINT32_C(0xD49692B6),
9047           UINT32_C(0xD297F56E), UINT32_C(0x4E181744)},
9048          {UINT32_C(0xF8CBB897), UINT32_C(0x902F6E73), UINT32_C(0x56D01382),
9049           UINT32_C(0xC3B21FE1), UINT32_C(0x46890F6D), UINT32_C(0xA858ABE1),
9050           UINT32_C(0x506858AF), UINT32_C(0x46B5E2C9)}},
9051         {{UINT32_C(0xF4DEDE56), UINT32_C(0x30441281), UINT32_C(0xA195AEDE),
9052           UINT32_C(0x13F06FBB), UINT32_C(0x2FDD3BFF), UINT32_C(0xAD5F575B),
9053           UINT32_C(0x32ACB590), UINT32_C(0x680F656D)},
9054          {UINT32_C(0xE3FAABA7), UINT32_C(0xFB60A8E1), UINT32_C(0x89A14827),
9055           UINT32_C(0xC8FBC1E4), UINT32_C(0xA8616136), UINT32_C(0x5835453F),
9056           UINT32_C(0xE6F4926F), UINT32_C(0x02826A47)}},
9057         {{UINT32_C(0x74F32180), UINT32_C(0xAF4319A1), UINT32_C(0x6C2C1712),
9058           UINT32_C(0x4C9FDD16), UINT32_C(0xAC7E14A7), UINT32_C(0x59CA4FD4),
9059           UINT32_C(0xABBD4EA4), UINT32_C(0x07AA6E2F)},
9060          {UINT32_C(0xFE9F121F), UINT32_C(0xB4BD441C), UINT32_C(0xCDA452C5),
9061           UINT32_C(0xDEBB4356), UINT32_C(0x51C9F451), UINT32_C(0xC29F1CFA),
9062           UINT32_C(0x83F598D8), UINT32_C(0x7E1EEF4C)}},
9063     },
9064     {
9065         {{UINT32_C(0x5014135F), UINT32_C(0xFC41A321), UINT32_C(0x3EEADF3F),
9066           UINT32_C(0xBE95F9BA), UINT32_C(0x3203A540), UINT32_C(0x054B1212),
9067           UINT32_C(0x3721C745), UINT32_C(0x6DD2FD17)},
9068          {UINT32_C(0x5A682B59), UINT32_C(0xF86B8578), UINT32_C(0xBE801F7D),
9069           UINT32_C(0x872AA481), UINT32_C(0x14F865F2), UINT32_C(0x64C1600C),
9070           UINT32_C(0x25365449), UINT32_C(0x4BDD47AA)}},
9071         {{UINT32_C(0xF3A3469F), UINT32_C(0xC96A964C), UINT32_C(0x9F7DA0E3),
9072           UINT32_C(0x273C5C85), UINT32_C(0x4C1A9DCD), UINT32_C(0x88EDC4AC),
9073           UINT32_C(0xB48E4CAA), UINT32_C(0x77623444)},
9074          {UINT32_C(0x31581FF7), UINT32_C(0x7AF34A9C), UINT32_C(0xBB57F7CC),
9075           UINT32_C(0x23328C37), UINT32_C(0x8B7C86AB), UINT32_C(0xE920D8E9),
9076           UINT32_C(0x9DE6D64C), UINT32_C(0x1C7A7A40)}},
9077         {{UINT32_C(0x79B9451C), UINT32_C(0x0BCDCD22), UINT32_C(0x58F5241B),
9078           UINT32_C(0x2920B435), UINT32_C(0x9B33EF3D), UINT32_C(0xC24DF715),
9079           UINT32_C(0xF2600224), UINT32_C(0x15252C5B)},
9080          {UINT32_C(0x9A9160B6), UINT32_C(0xF9C8D8A6), UINT32_C(0xA6B9A6B8),
9081           UINT32_C(0x3186F2F9), UINT32_C(0xA377E98A), UINT32_C(0xC37267DC),
9082           UINT32_C(0x37957189), UINT32_C(0x71319A0A)}},
9083         {{UINT32_C(0x6BAF6AE5), UINT32_C(0x48E5033F), UINT32_C(0xA460FCE9),
9084           UINT32_C(0x72379B2E), UINT32_C(0xF3D2FA46), UINT32_C(0xFC753D47),
9085           UINT32_C(0xED9EDF72), UINT32_C(0x3B67685A)},
9086          {UINT32_C(0xF712500F), UINT32_C(0x1608E304), UINT32_C(0x9EE1B42A),
9087           UINT32_C(0xDFA358A4), UINT32_C(0x34B8345C), UINT32_C(0xE7A4B376),
9088           UINT32_C(0x06753C17), UINT32_C(0x7D0E0BF3)}},
9089         {{UINT32_C(0x8FA62042), UINT32_C(0xA88526A6), UINT32_C(0x393006BD),
9090           UINT32_C(0xD6F32BB5), UINT32_C(0xA5DD5045), UINT32_C(0x14804978),
9091           UINT32_C(0xBF0C5E13), UINT32_C(0x34C02662)},
9092          {UINT32_C(0x376E3E3D), UINT32_C(0xF9BEEBF9), UINT32_C(0x5923DC61),
9093           UINT32_C(0xFD774041), UINT32_C(0xF9735CF5), UINT32_C(0xFE77BDFA),
9094           UINT32_C(0x4077CFCC), UINT32_C(0x2E476E22)}},
9095         {{UINT32_C(0x9BA457EF), UINT32_C(0xAB8E52EB), UINT32_C(0x0ABED212),
9096           UINT32_C(0x95F6C5FE), UINT32_C(0x386620FF), UINT32_C(0x7204B1A6),
9097           UINT32_C(0xDD180719), UINT32_C(0x463B7474)},
9098          {UINT32_C(0xF991D8EE), UINT32_C(0x7F7D27AA), UINT32_C(0x8F67722D),
9099           UINT32_C(0xA7EB1085), UINT32_C(0xE331480A), UINT32_C(0x78D7095B),
9100           UINT32_C(0x66A1C8FA), UINT32_C(0x1DCC8C12)}},
9101         {{UINT32_C(0x3E6A04C1), UINT32_C(0xD4C39C18), UINT32_C(0xB598ABEE),
9102           UINT32_C(0x73DB1C4D), UINT32_C(0xDF4A7D42), UINT32_C(0x381F9780),
9103           UINT32_C(0x52F860CD), UINT32_C(0x3C19A231)},
9104          {UINT32_C(0x3EF00740), UINT32_C(0x7EC89934), UINT32_C(0xF37FE0D5),
9105           UINT32_C(0x50867788), UINT32_C(0x43E84D4A), UINT32_C(0x502D870B),
9106           UINT32_C(0x8F744749), UINT32_C(0x5F8A8413)}},
9107         {{UINT32_C(0xFAECCFE4), UINT32_C(0x1C41AAAD), UINT32_C(0x21461F41),
9108           UINT32_C(0xC324F3B9), UINT32_C(0x4E90C0AB), UINT32_C(0x165ABA3F),
9109           UINT32_C(0x5F88E7D3), UINT32_C(0x2F96CED5)},
9110          {UINT32_C(0xC0E52768), UINT32_C(0x8CA366FC), UINT32_C(0xA55249A7),
9111           UINT32_C(0x6CCA017C), UINT32_C(0x0F7EBCA2), UINT32_C(0x41ED002F),
9112           UINT32_C(0xA2BAF655), UINT32_C(0x0C33B371)}},
9113         {{UINT32_C(0x62B928CE), UINT32_C(0x3B94CD9C), UINT32_C(0x39729345),
9114           UINT32_C(0x5BC43A6A), UINT32_C(0xC47D223C), UINT32_C(0x044D0C0F),
9115           UINT32_C(0xB0493367), UINT32_C(0x3B64B38D)},
9116          {UINT32_C(0xEB74A6C2), UINT32_C(0x82AFB645), UINT32_C(0xD876D71C),
9117           UINT32_C(0x0CB01E22), UINT32_C(0x29C6BCD0), UINT32_C(0xCE2A7DCC),
9118           UINT32_C(0xDFD644EC), UINT32_C(0x4753DE1C)}},
9119         {{UINT32_C(0x62188792), UINT32_C(0xE69FC903), UINT32_C(0x4914328B),
9120           UINT32_C(0xD91DB9BC), UINT32_C(0x3B68F8D0), UINT32_C(0x44953F4D),
9121           UINT32_C(0x0654B283), UINT32_C(0x2950435D)},
9122          {UINT32_C(0xBE88F609), UINT32_C(0xE599A4AE), UINT32_C(0x90F5D10E),
9123           UINT32_C(0xF801CD90), UINT32_C(0xD4F1D3D9), UINT32_C(0x0AB78DB1),
9124           UINT32_C(0xC0F71ECB), UINT32_C(0x3ED9666A)}},
9125         {{UINT32_C(0xE1E73E59), UINT32_C(0x6046A505), UINT32_C(0xF3B5C2E0),
9126           UINT32_C(0x8723A3EC), UINT32_C(0xE22C1555), UINT32_C(0x4BD95BF6),
9127           UINT32_C(0x6DA421E9), UINT32_C(0x50DC33DB)},
9128          {UINT32_C(0xF1B01327), UINT32_C(0xCFB51E95), UINT32_C(0x199A8765),
9129           UINT32_C(0xE7013F2A), UINT32_C(0x77504B0B), UINT32_C(0xF486FEA7),
9130           UINT32_C(0xF9BA61C6), UINT32_C(0x2AF0F7E9)}},
9131         {{UINT32_C(0xBE00B841), UINT32_C(0x9DBA1A02), UINT32_C(0x8BED5F08),
9132           UINT32_C(0x488BA455), UINT32_C(0x67F1040E), UINT32_C(0xF6814A64),
9133           UINT32_C(0xDC252336), UINT32_C(0x23AC4762)},
9134          {UINT32_C(0xF0ED0577), UINT32_C(0x25040F02), UINT32_C(0xC6FFAE9C),
9135           UINT32_C(0x65209B22), UINT32_C(0x485AA0AC), UINT32_C(0xCC441A8C),
9136           UINT32_C(0x59D63A8A), UINT32_C(0x10DFACB6)}},
9137         {{UINT32_C(0xC7D86B28), UINT32_C(0xBF4A0569), UINT32_C(0xDBDA9DA4),
9138           UINT32_C(0x5CDA94C4), UINT32_C(0x69058335), UINT32_C(0x2235C4CE),
9139           UINT32_C(0xD30C89E2), UINT32_C(0x68FA5E7C)},
9140          {UINT32_C(0x59097B5B), UINT32_C(0xBB286D39), UINT32_C(0x9A20BA7E),
9141           UINT32_C(0x87DA80BB), UINT32_C(0x56F47E54), UINT32_C(0x85EF865E),
9142           UINT32_C(0x74ABFA5B), UINT32_C(0x5BB87867)}},
9143         {{UINT32_C(0xDE2FA36E), UINT32_C(0x5DB14FAB), UINT32_C(0x77775F09),
9144           UINT32_C(0x84E3B546), UINT32_C(0xDA951D99), UINT32_C(0xDA734523),
9145           UINT32_C(0x3975026E), UINT32_C(0x04A89097)},
9146          {UINT32_C(0xC0D12BE1), UINT32_C(0xB5753599), UINT32_C(0xFB864D61),
9147           UINT32_C(0x05670CE9), UINT32_C(0x305BF3CF), UINT32_C(0xB7153502),
9148           UINT32_C(0x2E60AF62), UINT32_C(0x7A9BB357)}},
9149         {{UINT32_C(0xC7566DA5), UINT32_C(0xF43CDA07), UINT32_C(0x53FA4196),
9150           UINT32_C(0x7FC4C7FC), UINT32_C(0x88DCC9F3), UINT32_C(0x1E20E0ED),
9151           UINT32_C(0xFEE23DDA), UINT32_C(0x7317C7E5)},
9152          {UINT32_C(0x43017070), UINT32_C(0x0305E13F), UINT32_C(0x6B1CA7C0),
9153           UINT32_C(0x5568410C), UINT32_C(0x104BA029), UINT32_C(0x0E5D55BA),
9154           UINT32_C(0x90FD49F8), UINT32_C(0x118B284E)}},
9155         {{UINT32_C(0x8F3C6D8A), UINT32_C(0xCA0F7B5B), UINT32_C(0xAF7ECBF6),
9156           UINT32_C(0xAF72DEE0), UINT32_C(0xBB0EC4F1), UINT32_C(0x21C86D85),
9157           UINT32_C(0xF0525D17), UINT32_C(0x0303BC47)},
9158          {UINT32_C(0x896FFCC0), UINT32_C(0x6ADCAB9F), UINT32_C(0x24E970CA),
9159           UINT32_C(0x65764C45), UINT32_C(0x1C3CA718), UINT32_C(0x0000F14C),
9160           UINT32_C(0xD0292587), UINT32_C(0x01CF1DDB)}},
9161     },
9162     {
9163         {{UINT32_C(0x86111EBA), UINT32_C(0xEC4FABCC), UINT32_C(0xBBBB793F),
9164           UINT32_C(0x599C20B6), UINT32_C(0x5657668F), UINT32_C(0xF74AE747),
9165           UINT32_C(0x77BAE892), UINT32_C(0x24AF29B2)},
9166          {UINT32_C(0xCFAC9D5E), UINT32_C(0x47D6876B), UINT32_C(0x24369E14),
9167           UINT32_C(0xCACF9F50), UINT32_C(0x6F9CAFEF), UINT32_C(0x8A231D74),
9168           UINT32_C(0xB69AAE58), UINT32_C(0x57645A4E)}},
9169         {{UINT32_C(0x489900F6), UINT32_C(0x440A3B15), UINT32_C(0x961AC3C2),
9170           UINT32_C(0x4B642FD3), UINT32_C(0xC265B973), UINT32_C(0x3D668599),
9171           UINT32_C(0x1139CE78), UINT32_C(0x5FA0E65D)},
9172          {UINT32_C(0x1FAA710E), UINT32_C(0x3FF15AF4), UINT32_C(0xA9422FC0),
9173           UINT32_C(0xE45D35CE), UINT32_C(0xBD7BB349), UINT32_C(0x56904C06),
9174           UINT32_C(0xE529989D), UINT32_C(0x40C5BEE0)}},
9175         {{UINT32_C(0x70B20298), UINT32_C(0x8FA46861), UINT32_C(0x4838A136),
9176           UINT32_C(0xEC629538), UINT32_C(0x137F66D6), UINT32_C(0x23ADE0F6),
9177           UINT32_C(0x8EA53E76), UINT32_C(0x1A92E05C)},
9178          {UINT32_C(0x9D51EB7A), UINT32_C(0x51728E27), UINT32_C(0xC4352E35),
9179           UINT32_C(0xA6B0B758), UINT32_C(0x37A11B35), UINT32_C(0x84C59331),
9180           UINT32_C(0xF66B75C7), UINT32_C(0x3933EFC1)}},
9181         {{UINT32_C(0x66916D0A), UINT32_C(0x7FB68D62), UINT32_C(0xF28A9B14),
9182           UINT32_C(0x3325D42E), UINT32_C(0x8592B544), UINT32_C(0x75E83A65),
9183           UINT32_C(0x2718628F), UINT32_C(0x524D1CE0)},
9184          {UINT32_C(0x3C584D76), UINT32_C(0x88A110EA), UINT32_C(0x4AC09AAC),
9185           UINT32_C(0x6B034AC4), UINT32_C(0x84FD3A36), UINT32_C(0x06488635),
9186           UINT32_C(0x87D944E1), UINT32_C(0x516F0EB0)}},
9187         {{UINT32_C(0xDF11D0BB), UINT32_C(0xE2016DA0), UINT32_C(0xB01F6540),
9188           UINT32_C(0xB34EB471), UINT32_C(0x165CBB24), UINT32_C(0x13E3D330),
9189           UINT32_C(0x7CF7F676), UINT32_C(0x3E755D11)},
9190          {UINT32_C(0x4FEA9A69), UINT32_C(0xD70CF4F8), UINT32_C(0xD18F4337),
9191           UINT32_C(0x98F59E0A), UINT32_C(0x826344BA), UINT32_C(0x7CCE7CE6),
9192           UINT32_C(0xF4004BBE), UINT32_C(0x30D129D7)}},
9193         {{UINT32_C(0xBA9CB975), UINT32_C(0x016EF317), UINT32_C(0xE4B3AB4D),
9194           UINT32_C(0x8EEBED19), UINT32_C(0x170A2570), UINT32_C(0x8C597DF0),
9195           UINT32_C(0x5BE6DE70), UINT32_C(0x451538D8)},
9196          {UINT32_C(0x7A64792F), UINT32_C(0x6C711DAC), UINT32_C(0x217EC8FB),
9197           UINT32_C(0x8F1896EB), UINT32_C(0x7FE18DED), UINT32_C(0x82E9C20B),
9198           UINT32_C(0xB0C5F622), UINT32_C(0x6CEBF4A7)}},
9199         {{UINT32_C(0x49CCC64F), UINT32_C(0xD9403EB5), UINT32_C(0x28B8A3FD),
9200           UINT32_C(0x807EBD56), UINT32_C(0x0F291E12), UINT32_C(0xF08BB659),
9201           UINT32_C(0x9C3F4432), UINT32_C(0x020D13E3)},
9202          {UINT32_C(0x752BB92E), UINT32_C(0xDA247896), UINT32_C(0x86EAFA7A),
9203           UINT32_C(0x99541794), UINT32_C(0x274E36AD), UINT32_C(0x213E94BA),
9204           UINT32_C(0x61A71333), UINT32_C(0x4CC0F1FB)}},
9205         {{UINT32_C(0x06478801), UINT32_C(0x19CC11BD), UINT32_C(0x6D18216A),
9206           UINT32_C(0x1251562A), UINT32_C(0xCDD307FC), UINT32_C(0x7A5F06BB),
9207           UINT32_C(0xFAA9CA2A), UINT32_C(0x4285F6AB)},
9208          {UINT32_C(0x81258996), UINT32_C(0x5A922831), UINT32_C(0x27B8B018),
9209           UINT32_C(0x8F7CF8EE), UINT32_C(0x7F81A62D), UINT32_C(0xF030BEF3),
9210           UINT32_C(0xCD4FD4E7), UINT32_C(0x417ACBC1)}},
9211         {{UINT32_C(0xEC64412F), UINT32_C(0xCFB0EA58), UINT32_C(0x6091E621),
9212           UINT32_C(0x9547B64A), UINT32_C(0xFD0C9815), UINT32_C(0x5EA49C7E),
9213           UINT32_C(0xE78B355C), UINT32_C(0x6789055A)},
9214          {UINT32_C(0x77E9A73A), UINT32_C(0x8D743E98), UINT32_C(0x2EA3FA49),
9215           UINT32_C(0xB032EA6A), UINT32_C(0xCEAAA33A), UINT32_C(0x52EA3801),
9216           UINT32_C(0xF2C3E22B), UINT32_C(0x73B3BB8D)}},
9217         {{UINT32_C(0x7DB9E301), UINT32_C(0xAA2A1291), UINT32_C(0xA1293DD7),
9218           UINT32_C(0x7F29770F), UINT32_C(0x59683DEC), UINT32_C(0x3135BB21),
9219           UINT32_C(0x7785B505), UINT32_C(0x070F8DF7)},
9220          {UINT32_C(0x37F53677), UINT32_C(0x8F2158EA), UINT32_C(0xABE1AF1C),
9221           UINT32_C(0x96CC7B9D), UINT32_C(0x6D6477D6), UINT32_C(0x7F977915),
9222           UINT32_C(0xDF370EAF), UINT32_C(0x55DB3922)}},
9223         {{UINT32_C(0xA9DAC7AE), UINT32_C(0x3028C03A), UINT32_C(0xBAE06BE0),
9224           UINT32_C(0x16F7DF0D), UINT32_C(0x410D57D9), UINT32_C(0x09548398),
9225           UINT32_C(0x1510D51F), UINT32_C(0x5E9C7F43)},
9226          {UINT32_C(0xD07717B3), UINT32_C(0x033B9BE2), UINT32_C(0xEF08AB91),
9227           UINT32_C(0x0D5D8116), UINT32_C(0xEEEFE88F), UINT32_C(0xD5A172B1),
9228           UINT32_C(0x0996294E), UINT32_C(0x72B1D29F)}},
9229         {{UINT32_C(0xE4D0965C), UINT32_C(0x9E2B79FB), UINT32_C(0xF49D8B8E),
9230           UINT32_C(0x01F403EE), UINT32_C(0xCEB12D6A), UINT32_C(0xBD4D2D48),
9231           UINT32_C(0x11FB24FB), UINT32_C(0x4D04DD9A)},
9232          {UINT32_C(0xE5C8D24C), UINT32_C(0x7E613EC5), UINT32_C(0xB918E543),
9233           UINT32_C(0x568BEFE8), UINT32_C(0xE966DF28), UINT32_C(0xD6456D1E),
9234           UINT32_C(0xBAFC71E2), UINT32_C(0x2DDEAD63)}},
9235         {{UINT32_C(0x448D72E9), UINT32_C(0x1D794F92), UINT32_C(0xE7E62BF2),
9236           UINT32_C(0x3978052E), UINT32_C(0xE2B92538), UINT32_C(0xF6C7A72E),
9237           UINT32_C(0x6EF321F0), UINT32_C(0x43879A88)},
9238          {UINT32_C(0x34F6FFBC), UINT32_C(0x2A823140), UINT32_C(0x35F4C485),
9239           UINT32_C(0x26F84E51), UINT32_C(0x028BFA7E), UINT32_C(0xDEE65540),
9240           UINT32_C(0x5F033058), UINT32_C(0x56216E9D)}},
9241         {{UINT32_C(0xCBC772EE), UINT32_C(0x31CA5470), UINT32_C(0x811BB5D0),
9242           UINT32_C(0xD3621E11), UINT32_C(0x70863D71), UINT32_C(0x501C4C47),
9243           UINT32_C(0xD28D6BDD), UINT32_C(0x0564518E)},
9244          {UINT32_C(0xD35B64B9), UINT32_C(0x60E3B89B), UINT32_C(0x6621A688),
9245           UINT32_C(0xB4F2599A), UINT32_C(0x3B5E116D), UINT32_C(0x1A8C4508),
9246           UINT32_C(0xFABF3125), UINT32_C(0x633EF5CC)}},
9247         {{UINT32_C(0x5D4FF62A), UINT32_C(0x0DB1D251), UINT32_C(0x4B17D658),
9248           UINT32_C(0x6CBD00EB), UINT32_C(0xFA1DB737), UINT32_C(0x2FA38212),
9249           UINT32_C(0x93A7FA03), UINT32_C(0x07B18CB8)},
9250          {UINT32_C(0x548E5F82), UINT32_C(0x531E47EF), UINT32_C(0x8276963C),
9251           UINT32_C(0xAE7B94FD), UINT32_C(0x6181A13A), UINT32_C(0x8055D82A),
9252           UINT32_C(0x23B6E361), UINT32_C(0x5725B512)}},
9253         {{UINT32_C(0x6D8B1FFE), UINT32_C(0xD84C7041), UINT32_C(0x5D994200),
9254           UINT32_C(0xF68ACA0B), UINT32_C(0x6BB908E2), UINT32_C(0x32BF9944),
9255           UINT32_C(0x1AD88DB1), UINT32_C(0x1240A3E6)},
9256          {UINT32_C(0xA92B6472), UINT32_C(0xB0BE96AA), UINT32_C(0xA1B7726C),
9257           UINT32_C(0xEF88A155), UINT32_C(0x9349F496), UINT32_C(0x000FD9ED),
9258           UINT32_C(0x454A05D9), UINT32_C(0x377DCBAD)}},
9259     },
9260     {
9261         {{UINT32_C(0xC04111D2), UINT32_C(0xD0A092CD), UINT32_C(0x338F06D6),
9262           UINT32_C(0x5C43A94C), UINT32_C(0x25E964F3), UINT32_C(0x697B4C26),
9263           UINT32_C(0x7572CCFD), UINT32_C(0x2CD5A059)},
9264          {UINT32_C(0xB5B523E4), UINT32_C(0xA09FC4D4), UINT32_C(0x4E1E9042),
9265           UINT32_C(0x7D8141E8), UINT32_C(0xD637409E), UINT32_C(0x2462512B),
9266           UINT32_C(0x7CB2CE75), UINT32_C(0x503F032F)}},
9267         {{UINT32_C(0xBCBF1450), UINT32_C(0xC56F38E3), UINT32_C(0xCF2E5594),
9268           UINT32_C(0x09F4FC77), UINT32_C(0x0FCB653A), UINT32_C(0xF449C3E6),
9269           UINT32_C(0x64A53C65), UINT32_C(0x6A1FE752)},
9270          {UINT32_C(0x7C039488), UINT32_C(0xFF366FED), UINT32_C(0x8C99A6CB),
9271           UINT32_C(0x23F58BA5), UINT32_C(0x8D67F6D6), UINT32_C(0x4B5546C6),
9272           UINT32_C(0x178B1668), UINT32_C(0x03405C85)}},
9273         {{UINT32_C(0xC0C86696), UINT32_C(0x969F1B33), UINT32_C(0x13746468),
9274           UINT32_C(0x9346D06C), UINT32_C(0xAE0C6D62), UINT32_C(0x68AED3C8),
9275           UINT32_C(0x74FE63D5), UINT32_C(0x7B3D5361)},
9276          {UINT32_C(0xC4F4B65D), UINT32_C(0xFEE8416B), UINT32_C(0x554C6D0A),
9277           UINT32_C(0xC79BF488), UINT32_C(0xDC402BB0), UINT32_C(0x191D5D27),
9278           UINT32_C(0xE087EB9F), UINT32_C(0x31B00167)}},
9279         {{UINT32_C(0xE05D281F), UINT32_C(0xD5FE0979), UINT32_C(0x3485446B),
9280           UINT32_C(0x8373AB50), UINT32_C(0x9223681F), UINT32_C(0xCE5258BA),
9281           UINT32_C(0xA37BF244), UINT32_C(0x5F82843E)},
9282          {UINT32_C(0xCFC16536), UINT32_C(0x94ED780B), UINT32_C(0xBD477733),
9283           UINT32_C(0x6A9739B3), UINT32_C(0xA04A4195), UINT32_C(0x137D68F2),
9284           UINT32_C(0x0032BFCE), UINT32_C(0x3A0F27E8)}},
9285         {{UINT32_C(0x358382F9), UINT32_C(0x7EADE421), UINT32_C(0x92E3D912),
9286           UINT32_C(0x490B9CA6), UINT32_C(0xF1AFBC2A), UINT32_C(0x040CE73E),
9287           UINT32_C(0x11AE91BA), UINT32_C(0x5745D473)},
9288          {UINT32_C(0xCE303B77), UINT32_C(0x625BED61), UINT32_C(0x85B03A1D),
9289           UINT32_C(0x85B2A1EB), UINT32_C(0x3D7C02E0), UINT32_C(0x764F62E4),
9290           UINT32_C(0xA7AF6DDE), UINT32_C(0x22C2D16F)}},
9291         {{UINT32_C(0xD19377BE), UINT32_C(0x5B985DE6), UINT32_C(0xD8E43A10),
9292           UINT32_C(0x0AF85A06), UINT32_C(0x0519F4C6), UINT32_C(0x1465E504),
9293           UINT32_C(0xE3E20BA3), UINT32_C(0x5DA01665)},
9294          {UINT32_C(0x675D9E2A), UINT32_C(0xCD9B8E9B), UINT32_C(0x6448A2CD),
9295           UINT32_C(0x4C77E1AD), UINT32_C(0x1E5D4465), UINT32_C(0xD6094BAD),
9296           UINT32_C(0xC50DB788), UINT32_C(0x4C352951)}},
9297         {{UINT32_C(0xEE5AB903), UINT32_C(0x42581152), UINT32_C(0x63311418),
9298           UINT32_C(0xDAD2DBC9), UINT32_C(0xB885E56A), UINT32_C(0xBCA4F70B),
9299           UINT32_C(0xB94E0876), UINT32_C(0x1F5DD363)},
9300          {UINT32_C(0x3FFF479E), UINT32_C(0xF9AD5D04), UINT32_C(0xFE06AD2B),
9301           UINT32_C(0xEF1176E5), UINT32_C(0x216F77AF), UINT32_C(0x46ACB00A),
9302           UINT32_C(0x857C4F78), UINT32_C(0x709CF4EB)}},
9303         {{UINT32_C(0xD0D2FF1C), UINT32_C(0x70CD666E), UINT32_C(0xE7EFE4AD),
9304           UINT32_C(0x4BAD4A6A), UINT32_C(0x0FA72024), UINT32_C(0xB43F6C2D),
9305           UINT32_C(0xE90C0617), UINT32_C(0x0D78F8E2)},
9306          {UINT32_C(0xF80DCAA7), UINT32_C(0x543B9662), UINT32_C(0xF28ADFAF),
9307           UINT32_C(0xB02FB3BC), UINT32_C(0xC51C54C3), UINT32_C(0x26C17651),
9308           UINT32_C(0x3D648D88), UINT32_C(0x0815F637)}},
9309         {{UINT32_C(0xAEA98FA6), UINT32_C(0xAC4F43C1), UINT32_C(0xAC4398C6),
9310           UINT32_C(0x2D223416), UINT32_C(0xDA5C5070), UINT32_C(0x48B2EEAD),
9311           UINT32_C(0xBE666F70), UINT32_C(0x632B65F1)},
9312          {UINT32_C(0x952021BE), UINT32_C(0x971D3BC0), UINT32_C(0x23B2C578),
9313           UINT32_C(0x9FDCB7E0), UINT32_C(0x3CC21796), UINT32_C(0x476D4715),
9314           UINT32_C(0x95832A94), UINT32_C(0x4015565F)}},
9315         {{UINT32_C(0x13CA725C), UINT32_C(0x8913AFAC), UINT32_C(0xDC18F0D9),
9316           UINT32_C(0xA56DC461), UINT32_C(0x10F3AAFE), UINT32_C(0xAC3AC720),
9317           UINT32_C(0xC628D69C), UINT32_C(0x5D75567E)},
9318          {UINT32_C(0xEEEA4BF7), UINT32_C(0xC11BE9DC), UINT32_C(0x1C193BD5),
9319           UINT32_C(0xAD97FBCA), UINT32_C(0xC58123E8), UINT32_C(0xD1EC5BCE),
9320           UINT32_C(0x9C73D4E5), UINT32_C(0x0F6DF930)}},
9321         {{UINT32_C(0xFD759FFD), UINT32_C(0xE80A0ADA), UINT32_C(0x239CAFC0),
9322           UINT32_C(0xE52DF94B), UINT32_C(0xFE7A43E9), UINT32_C(0x59640161),
9323           UINT32_C(0xDB1A38F0), UINT32_C(0x7A96995C)},
9324          {UINT32_C(0x7CD5011B), UINT32_C(0xA46A1503), UINT32_C(0xAC0E9689),
9325           UINT32_C(0x75CFB637), UINT32_C(0x97AAD2BA), UINT32_C(0x27B740CA),
9326           UINT32_C(0xEAD2F776), UINT32_C(0x64A0748B)}},
9327         {{UINT32_C(0x0625B3B1), UINT32_C(0xB67E5BB5), UINT32_C(0xC66D2832),
9328           UINT32_C(0x2FE19FFB), UINT32_C(0xF70C07CF), UINT32_C(0x47815666),
9329           UINT32_C(0xA43E52AB), UINT32_C(0x5A1AA24A)},
9330          {UINT32_C(0x4CAC0E66), UINT32_C(0x04EE11F8), UINT32_C(0x3A3A4836),
9331           UINT32_C(0x51E51583), UINT32_C(0xB44F6DEC), UINT32_C(0x46755F49),
9332           UINT32_C(0xC1E9B282), UINT32_C(0x6388408B)}},
9333         {{UINT32_C(0x9DE7A6A7), UINT32_C(0xD47AA9A6), UINT32_C(0x189BC9D2),
9334           UINT32_C(0xEC94AD9B), UINT32_C(0x8EC0E950), UINT32_C(0xFA89099D),
9335           UINT32_C(0x9F64D27F), UINT32_C(0x1B9FC206)},
9336          {UINT32_C(0x0B729DE1), UINT32_C(0x76572484), UINT32_C(0x4BE22EB8),
9337           UINT32_C(0xFE9E8E71), UINT32_C(0xF9DB5942), UINT32_C(0x910F0456),
9338           UINT32_C(0xC617D82B), UINT32_C(0x4D018459)}},
9339         {{UINT32_C(0xF5516C6F), UINT32_C(0xB082B58A), UINT32_C(0x567A8CF5),
9340           UINT32_C(0xFFBA0E73), UINT32_C(0x8A6DD4A0), UINT32_C(0x08FF64CE),
9341           UINT32_C(0x69A9F66A), UINT32_C(0x6CF3C89C)},
9342          {UINT32_C(0x62FEB0A7), UINT32_C(0x356782BA), UINT32_C(0x3E2907F9),
9343           UINT32_C(0x1A18720D), UINT32_C(0x0BBD9D92), UINT32_C(0xF840FFA3),
9344           UINT32_C(0x20926421), UINT32_C(0x41D9EECA)}},
9345         {{UINT32_C(0xB6B08321), UINT32_C(0xCF2E8AAC), UINT32_C(0x010D91C0),
9346           UINT32_C(0xC76FBE12), UINT32_C(0x68E35E02), UINT32_C(0x54924750),
9347           UINT32_C(0x9AEE00F8), UINT32_C(0x74DBA2E1)},
9348          {UINT32_C(0xC5504E82), UINT32_C(0x94C70D6D), UINT32_C(0xEA1770F7),
9349           UINT32_C(0x0BDF415F), UINT32_C(0x3CA6DB0A), UINT32_C(0xDA45B700),
9350           UINT32_C(0xE133A980), UINT32_C(0x473C6A04)}},
9351         {{UINT32_C(0x1E188071), UINT32_C(0xD1FF6C1E), UINT32_C(0xEA3F16F8),
9352           UINT32_C(0x621A7D3C), UINT32_C(0x6A160F47), UINT32_C(0x60467307),
9353           UINT32_C(0x32DC84EE), UINT32_C(0x37CA7D3D)},
9354          {UINT32_C(0x67DDFDB5), UINT32_C(0x54F5F7F6), UINT32_C(0x921BA04B),
9355           UINT32_C(0x3A8482F9), UINT32_C(0x1A28E238), UINT32_C(0x842F4950),
9356           UINT32_C(0x7214FAFD), UINT32_C(0x3A4DC917)}},
9357     },
9358     {
9359         {{UINT32_C(0xEEA25E82), UINT32_C(0xEDD8360C), UINT32_C(0xFB7B7ED0),
9360           UINT32_C(0x3DB6D933), UINT32_C(0xABF15199), UINT32_C(0x882F3C0B),
9361           UINT32_C(0x516E349D), UINT32_C(0x228664A2)},
9362          {UINT32_C(0xE88173DF), UINT32_C(0x96E6DCF7), UINT32_C(0xD7EC0BC3),
9363           UINT32_C(0x382C8D3B), UINT32_C(0x6FA5FA58), UINT32_C(0xFBFF6D21),
9364           UINT32_C(0x2F41C959), UINT32_C(0x78003980)}},
9365         {{UINT32_C(0x9D9ACF9C), UINT32_C(0x713BA43B), UINT32_C(0x94876559),
9366           UINT32_C(0xF59A252D), UINT32_C(0x437B8ED5), UINT32_C(0x8B310954),
9367           UINT32_C(0xE474E98E), UINT32_C(0x76A83790)},
9368          {UINT32_C(0xF6040B05), UINT32_C(0x84C1386A), UINT32_C(0xBF3D8189),
9369           UINT32_C(0x69FA9F43), UINT32_C(0xA98D4866), UINT32_C(0x5584164C),
9370           UINT32_C(0x3B9045D0), UINT32_C(0x6C89CE1D)}},
9371         {{UINT32_C(0xB522FB28), UINT32_C(0xD6EF7540), UINT32_C(0xBB28D745),
9372           UINT32_C(0xDB561B56), UINT32_C(0xEFA58B87), UINT32_C(0xC9F7543E),
9373           UINT32_C(0xE9062979), UINT32_C(0x5F02A23B)},
9374          {UINT32_C(0x6809D624), UINT32_C(0xFD3C0C19), UINT32_C(0xA92EB229),
9375           UINT32_C(0x94481554), UINT32_C(0xF5147EFB), UINT32_C(0x72D8EC53),
9376           UINT32_C(0x0D1BA626), UINT32_C(0x14302661)}},
9377         {{UINT32_C(0x89020800), UINT32_C(0x0B35BD59), UINT32_C(0x430D7DEB),
9378           UINT32_C(0x3C6F1527), UINT32_C(0x2FFFA0E0), UINT32_C(0x9BEB3C8E),
9379           UINT32_C(0xAFD09A19), UINT32_C(0x7E181B78)},
9380          {UINT32_C(0x3B2F0B49), UINT32_C(0xE82FD957), UINT32_C(0x0BC0F9DA),
9381           UINT32_C(0x4C9461B1), UINT32_C(0x2B1C8B85), UINT32_C(0x87D78C41),
9382           UINT32_C(0xC1F5BDA1), UINT32_C(0x775BED20)}},
9383         {{UINT32_C(0x16350593), UINT32_C(0x883AE89B), UINT32_C(0x0C19FEC8),
9384           UINT32_C(0x85D429CB), UINT32_C(0x5742C36D), UINT32_C(0x5938BDEC),
9385           UINT32_C(0xDA8A21B7), UINT32_C(0x2DDBC7EB)},
9386          {UINT32_C(0x07A2E700), UINT32_C(0xA249BDE4), UINT32_C(0xE8BD6215),
9387           UINT32_C(0x42A3897C), UINT32_C(0x732FF181), UINT32_C(0x87F30BA7),
9388           UINT32_C(0x1B912C57), UINT32_C(0x5385D709)}},
9389         {{UINT32_C(0x288041F5), UINT32_C(0x2B5C555B), UINT32_C(0x1F425866),
9390           UINT32_C(0xD3D90040), UINT32_C(0x02E0FA71), UINT32_C(0x37E40CD2),
9391           UINT32_C(0x3A386038), UINT32_C(0x08B37F26)},
9392          {UINT32_C(0x5DE1ED78), UINT32_C(0x165BD7FB), UINT32_C(0x0829ECC9),
9393           UINT32_C(0x22949E81), UINT32_C(0xBCE3D01F), UINT32_C(0xBB8705CC),
9394           UINT32_C(0x1D233CDF), UINT32_C(0x7961BE85)}},
9395         {{UINT32_C(0x7659B477), UINT32_C(0x5D3DBC6B), UINT32_C(0x50EF08EB),
9396           UINT32_C(0xFD865779), UINT32_C(0xF34EA1A5), UINT32_C(0x502729E8),
9397           UINT32_C(0xD2B64602), UINT32_C(0x1548526E)},
9398          {UINT32_C(0xB91D2675), UINT32_C(0xB13632FD), UINT32_C(0xF7B37397),
9399           UINT32_C(0x09A42003), UINT32_C(0xCCFC4532), UINT32_C(0x37D18F37),
9400           UINT32_C(0x73C7082C), UINT32_C(0x3FAEF63B)}},
9401         {{UINT32_C(0xE666DB6D), UINT32_C(0x3365445F), UINT32_C(0x339A0076),
9402           UINT32_C(0x9051FFF5), UINT32_C(0x9BD6D01D), UINT32_C(0x6167FB76),
9403           UINT32_C(0xCA087B41), UINT32_C(0x09737137)},
9404          {UINT32_C(0xB3270BA7), UINT32_C(0xCA2193AE), UINT32_C(0x8F2217B3),
9405           UINT32_C(0xEF0744C2), UINT32_C(0xF0DD10D8), UINT32_C(0x3E030D58),
9406           UINT32_C(0xCCB4F2F9), UINT32_C(0x667246DB)}},
9407         {{UINT32_C(0x3773EC8C), UINT32_C(0x31F3030E), UINT32_C(0x5AD56010),
9408           UINT32_C(0xAF2B3123), UINT32_C(0xB37E9062), UINT32_C(0xFC118587),
9409           UINT32_C(0x9C2D5406), UINT32_C(0x52840C2C)},
9410          {UINT32_C(0x6670ACBB), UINT32_C(0xA96D3DFF), UINT32_C(0x772EC6D3),
9411           UINT32_C(0xF469982F), UINT32_C(0xA9DF4C88), UINT32_C(0x5BE20628),
9412           UINT32_C(0x673633BC), UINT32_C(0x59D01479)}},
9413         {{UINT32_C(0xAFB5083B), UINT32_C(0xC9223750), UINT32_C(0x191C2160),
9414           UINT32_C(0xF1EB451E), UINT32_C(0xA38EC005), UINT32_C(0x0D913794),
9415           UINT32_C(0x83FD1D18), UINT32_C(0x31062E9E)},
9416          {UINT32_C(0x5F4816AD), UINT32_C(0x070538F5), UINT32_C(0x925F5DA1),
9417           UINT32_C(0x90D4855D), UINT32_C(0x22F455B6), UINT32_C(0xC0BBA87B),
9418           UINT32_C(0xF48D2AE5), UINT32_C(0x517B5F80)}},
9419         {{UINT32_C(0x3F4FA7CA), UINT32_C(0x0D8B670A), UINT32_C(0x3D114EB2),
9420           UINT32_C(0xE29C8849), UINT32_C(0x916A187E), UINT32_C(0x1823780D),
9421           UINT32_C(0x65EE66A0), UINT32_C(0x6961C483)},
9422          {UINT32_C(0x62FDC12C), UINT32_C(0x2F6FB20A), UINT32_C(0x0CFDDE0C),
9423           UINT32_C(0x51414E5F), UINT32_C(0xDCA39073), UINT32_C(0x16BD56A7),
9424           UINT32_C(0x648FFD43), UINT32_C(0x0CFE6DAF)}},
9425         {{UINT32_C(0xAEBA9241), UINT32_C(0x3789F4CA), UINT32_C(0x107777C6),
9426           UINT32_C(0xE8056BC6), UINT32_C(0x3CB20826), UINT32_C(0x6EE564C3),
9427           UINT32_C(0x45448C69), UINT32_C(0x5DF36347)},
9428          {UINT32_C(0xB22CE624), UINT32_C(0xFD0FA84B), UINT32_C(0xAC753D50),
9429           UINT32_C(0x2AA19672), UINT32_C(0x677CC0D0), UINT32_C(0x29A1464F),
9430           UINT32_C(0x3CEF5493), UINT32_C(0x7C2237B1)}},
9431         {{UINT32_C(0x24255918), UINT32_C(0x87C2587C), UINT32_C(0x90B35A37),
9432           UINT32_C(0x9AA89A0B), UINT32_C(0x10E7CAEF), UINT32_C(0x9932EB78),
9433           UINT32_C(0xCDE31568), UINT32_C(0x49278F16)},
9434          {UINT32_C(0x41188ED9), UINT32_C(0xA4D33C61), UINT32_C(0x05AC3A1D),
9435           UINT32_C(0xC587BDE0), UINT32_C(0x7248B5E0), UINT32_C(0x2A5C5ACC),
9436           UINT32_C(0x8510D2CB), UINT32_C(0x60026A1D)}},
9437         {{UINT32_C(0x6BAF603C), UINT32_C(0xE57CB0C9), UINT32_C(0xAB770AF0),
9438           UINT32_C(0x527F28A6), UINT32_C(0x016F2BC1), UINT32_C(0x2850D8E6),
9439           UINT32_C(0x936DC2EC), UINT32_C(0x0EC2A46C)},
9440          {UINT32_C(0xD4F23FC2), UINT32_C(0xA0BC5306), UINT32_C(0x53A0130F),
9441           UINT32_C(0x6DBEDA26), UINT32_C(0xEE3314B7), UINT32_C(0xB1D52F87),
9442           UINT32_C(0x6C234CF5), UINT32_C(0x17168B12)}},
9443         {{UINT32_C(0xDADF17D5), UINT32_C(0x8B8BC181), UINT32_C(0xFAFFA918),
9444           UINT32_C(0x31EC3CAD), UINT32_C(0x274E4658), UINT32_C(0x4611A482),
9445           UINT32_C(0x73D35EAD), UINT32_C(0x5A9E3652)},
9446          {UINT32_C(0xF4028FC7), UINT32_C(0xBA68825B), UINT32_C(0x62E203F5),
9447           UINT32_C(0x142859D5), UINT32_C(0x1C817A9E), UINT32_C(0xCE516AC4),
9448           UINT32_C(0x57223F8D), UINT32_C(0x42014682)}},
9449         {{UINT32_C(0xB4B66798), UINT32_C(0x51FBFB2E), UINT32_C(0x0EA9C4EF),
9450           UINT32_C(0x3A3F1591), UINT32_C(0xE8814805), UINT32_C(0x3FD3D026),
9451           UINT32_C(0xB0C8DFD0), UINT32_C(0x3CA531E4)},
9452          {UINT32_C(0xE585A960), UINT32_C(0x69A6B3F8), UINT32_C(0xBD3F567D),
9453           UINT32_C(0x1627CC77), UINT32_C(0x5DB9CFD0), UINT32_C(0x6F4EF430),
9454           UINT32_C(0x8D02278A), UINT32_C(0x05B56707)}},
9455     },
9456     {
9457         {{UINT32_C(0x10B96338), UINT32_C(0x6663F2F3), UINT32_C(0xCE8CA31C),
9458           UINT32_C(0x69373D1F), UINT32_C(0xD67AEC10), UINT32_C(0x3D31C5CF),
9459           UINT32_C(0x16F2547E), UINT32_C(0x2FAF5545)},
9460          {UINT32_C(0x1EA2EA64), UINT32_C(0xF6E397D5), UINT32_C(0xEEAEBE7A),
9461           UINT32_C(0x2281A0DF), UINT32_C(0xFA2527EC), UINT32_C(0x72E53254),
9462           UINT32_C(0x76432155), UINT32_C(0x660D059A)}},
9463         {{UINT32_C(0x2C66D937), UINT32_C(0xD3CA8B13), UINT32_C(0xCD2DF849),
9464           UINT32_C(0xC6F34B08), UINT32_C(0xA23A9F73), UINT32_C(0x9AF2C9E3),
9465           UINT32_C(0x702388E9), UINT32_C(0x24D44BD9)},
9466          {UINT32_C(0xD1B3DA10), UINT32_C(0x8DA4D6A4), UINT32_C(0x40B93B10),
9467           UINT32_C(0xB9FAFBF4), UINT32_C(0xEFCFD2A3), UINT32_C(0xBBE51BB3),
9468           UINT32_C(0x1844581D), UINT32_C(0x68BE0395)}},
9469         {{UINT32_C(0x0EA1FAE1), UINT32_C(0xDECABD8C), UINT32_C(0xFDFED7C2),
9470           UINT32_C(0xA7499225), UINT32_C(0xFB468B83), UINT32_C(0x08489E35),
9471           UINT32_C(0x43D95F9C), UINT32_C(0x5B689344)},
9472          {UINT32_C(0x9D2F522E), UINT32_C(0x9FC8364A), UINT32_C(0x3A5D27A4),
9473           UINT32_C(0x114DB31A), UINT32_C(0xE33A9EC8), UINT32_C(0xC6A35992),
9474           UINT32_C(0xDC9ACAF6), UINT32_C(0x6FE9EC3B)}},
9475         {{UINT32_C(0xDEAFC64C), UINT32_C(0x98AE2D66), UINT32_C(0xABE706B7),
9476           UINT32_C(0x95AAC8EF), UINT32_C(0x223DFA3B), UINT32_C(0xB15A6604),
9477           UINT32_C(0xE24B43CB), UINT32_C(0x77DBC24A)},
9478          {UINT32_C(0x8542FA2A), UINT32_C(0x65D6F871), UINT32_C(0x5D326A1A),
9479           UINT32_C(0x1093B273), UINT32_C(0xF137AFEF), UINT32_C(0xBA82D607),
9480           UINT32_C(0xB9DEA6A7), UINT32_C(0x502B32E3)}},
9481         {{UINT32_C(0x885CA6CE), UINT32_C(0x88906BD6), UINT32_C(0x1D36BFEE),
9482           UINT32_C(0x136ADF9A), UINT32_C(0x09AA61E3), UINT32_C(0xF844088C),
9483           UINT32_C(0x51BAC299), UINT32_C(0x4E508EA3)},
9484          {UINT32_C(0xEB821936), UINT32_C(0x251ACD26), UINT32_C(0x43D90E10),
9485           UINT32_C(0xDF6AD7D5), UINT32_C(0xDE7F14B9), UINT32_C(0xEBCD7046),
9486           UINT32_C(0xAB503259), UINT32_C(0x1DB258B1)}},
9487         {{UINT32_C(0x90AD5D55), UINT32_C(0x348E3018), UINT32_C(0x7067806A),
9488           UINT32_C(0x0EF6BE73), UINT32_C(0x41627FCC), UINT32_C(0x072C1134),
9489           UINT32_C(0xE904F823), UINT32_C(0x48EE7606)},
9490          {UINT32_C(0xD9FD5EF3), UINT32_C(0xEE6AB582), UINT32_C(0x17AB50BC),
9491           UINT32_C(0x57765D03), UINT32_C(0xFB7DEC68), UINT32_C(0x1CCFB407),
9492           UINT32_C(0x141DF51D), UINT32_C(0x2E1771C7)}},
9493         {{UINT32_C(0xA013284B), UINT32_C(0xCBDD6235), UINT32_C(0x20D07125),
9494           UINT32_C(0x4D93FD87), UINT32_C(0xD485418E), UINT32_C(0xB3D055B3),
9495           UINT32_C(0xC67ADD2D), UINT32_C(0x4EFB8763)},
9496          {UINT32_C(0x1B2DF427), UINT32_C(0xEC369382), UINT32_C(0x64D0DDF4),
9497           UINT32_C(0x25009791), UINT32_C(0x163056C8), UINT32_C(0x9BD42FFC),
9498           UINT32_C(0x5B88BEBA), UINT32_C(0x60527792)}},
9499         {{UINT32_C(0x9D82DADF), UINT32_C(0x6D5D6A86), UINT32_C(0x7C24A1CA),
9500           UINT32_C(0xC3BA9A16), UINT32_C(0x2E6981CC), UINT32_C(0x838167EC),
9501           UINT32_C(0x7E1E4237), UINT32_C(0x7FB5D857)},
9502          {UINT32_C(0x86A40BC7), UINT32_C(0x83B2C2FC), UINT32_C(0x6F9AC4FB),
9503           UINT32_C(0x679D2DFC), UINT32_C(0xE45455EF), UINT32_C(0x0B3714CD),
9504           UINT32_C(0x394A7797), UINT32_C(0x1C8D833D)}},
9505         {{UINT32_C(0x4E641C9D), UINT32_C(0x1FBF8961), UINT32_C(0xD951DFC8),
9506           UINT32_C(0x3330DAB0), UINT32_C(0x051D96DB), UINT32_C(0x9D4EBA4D),
9507           UINT32_C(0x23066924), UINT32_C(0x27C6DBF0)},
9508          {UINT32_C(0xDA5D1D79), UINT32_C(0xB950C648), UINT32_C(0x5E9CD783),
9509           UINT32_C(0x544D46BA), UINT32_C(0xE69BA3EF), UINT32_C(0xFA77226F),
9510           UINT32_C(0xE4DA8423), UINT32_C(0x0A93D219)}},
9511         {{UINT32_C(0x5BDCA76B), UINT32_C(0x7C377CC6), UINT32_C(0xDC58D194),
9512           UINT32_C(0x7DF505D7), UINT32_C(0x13E389E1), UINT32_C(0x18A24C0B),
9513           UINT32_C(0x6C3972FD), UINT32_C(0x5E0782DD)},
9514          {UINT32_C(0x6680FCE1), UINT32_C(0x97AD477E), UINT32_C(0x3CBAB792),
9515           UINT32_C(0x6B07BF22), UINT32_C(0xDC68C9E2), UINT32_C(0xB8DF3C73),
9516           UINT32_C(0xC04B2749), UINT32_C(0x33AB5A4C)}},
9517         {{UINT32_C(0x7E79B5A7), UINT32_C(0xD151C762), UINT32_C(0xC82C7B8A),
9518           UINT32_C(0xA4356B79), UINT32_C(0x96E0A2E2), UINT32_C(0x931DDDE8),
9519           UINT32_C(0x52C54FDC), UINT32_C(0x40378EB2)},
9520          {UINT32_C(0x40C24003), UINT32_C(0xA6BBD5E3), UINT32_C(0x65C34FEA),
9521           UINT32_C(0xB4F3246E), UINT32_C(0x9C767A23), UINT32_C(0x780B21ED),
9522           UINT32_C(0x52BD7E83), UINT32_C(0x5F1E95FE)}},
9523         {{UINT32_C(0xCF39F9C4), UINT32_C(0x4F3453DF), UINT32_C(0xB8CC2CA6),
9524           UINT32_C(0xA3E1CFD1), UINT32_C(0x4B898859), UINT32_C(0xE49BC49C),
9525           UINT32_C(0x6C0BF055), UINT32_C(0x4FFD7BD6)},
9526          {UINT32_C(0xD139AD1B), UINT32_C(0x7DE7604C), UINT32_C(0x2A3CE8FE),
9527           UINT32_C(0x6973F5EB), UINT32_C(0xF9501ECC), UINT32_C(0xAC66FF97),
9528           UINT32_C(0xA97D46CD), UINT32_C(0x3D96F1E2)}},
9529         {{UINT32_C(0x6106EB96), UINT32_C(0x70D5A0D0), UINT32_C(0x398C1FD9),
9530           UINT32_C(0x938E038F), UINT32_C(0x1F3A1AA9), UINT32_C(0xE66B7007),
9531           UINT32_C(0xF5BD9308), UINT32_C(0x42BDB264)},
9532          {UINT32_C(0x5AF84957), UINT32_C(0x4B3FD754), UINT32_C(0x4E27DC6B),
9533           UINT32_C(0x9E3E17FA), UINT32_C(0x51D8560B), UINT32_C(0x384FCACD),
9534           UINT32_C(0xF8068C09), UINT32_C(0x42F00D11)}},
9535         {{UINT32_C(0x7D5897D5), UINT32_C(0x794C1E6A), UINT32_C(0xDF72DCA0),
9536           UINT32_C(0x4901097F), UINT32_C(0x0B01E4C4), UINT32_C(0xDED5B192),
9537           UINT32_C(0x26DD41E9), UINT32_C(0x364FF582)},
9538          {UINT32_C(0x32FCA925), UINT32_C(0xA3F92DCC), UINT32_C(0x207AA09A),
9539           UINT32_C(0x8A1FB329), UINT32_C(0xF512AE3A), UINT32_C(0xA9274BD3),
9540           UINT32_C(0xC47B9007), UINT32_C(0x161C82BC)}},
9541         {{UINT32_C(0x7AE1175F), UINT32_C(0x482ECE3B), UINT32_C(0xBDD5DC6C),
9542           UINT32_C(0x97CAC7E8), UINT32_C(0x9FDA910D), UINT32_C(0x56225309),
9543           UINT32_C(0x9FC206B9), UINT32_C(0x52A9893B)},
9544          {UINT32_C(0x05BB5ACA), UINT32_C(0xAD9F2A92), UINT32_C(0xA3B65716),
9545           UINT32_C(0xB9EEFB5B), UINT32_C(0x8DB5A8D4), UINT32_C(0xE7BC173B),
9546           UINT32_C(0x399DAE9E), UINT32_C(0x6715EC64)}},
9547         {{UINT32_C(0x5E41AC75), UINT32_C(0x780796D1), UINT32_C(0x4FB3A0B4),
9548           UINT32_C(0x3E165C78), UINT32_C(0x237103E9), UINT32_C(0x198599BA),
9549           UINT32_C(0xFA7ED86B), UINT32_C(0x2C04C3F5)},
9550          {UINT32_C(0xAC9356F0), UINT32_C(0x29547DA8), UINT32_C(0x79EADA37),
9551           UINT32_C(0xCB345AB4), UINT32_C(0xA295BF2D), UINT32_C(0x1D15D377),
9552           UINT32_C(0x2FDC8131), UINT32_C(0x10292C9D)}},
9553     },
9554     {
9555         {{UINT32_C(0x40E1DC7E), UINT32_C(0xADF3B547), UINT32_C(0x1C345D14),
9556           UINT32_C(0x420CE2DD), UINT32_C(0x21DC5C2D), UINT32_C(0xC08E3CBE),
9557           UINT32_C(0x6F8FCE80), UINT32_C(0x79FDC000)},
9558          {UINT32_C(0xCB105CE7), UINT32_C(0x23EBDF7F), UINT32_C(0x7C6794A8),
9559           UINT32_C(0x793FC99D), UINT32_C(0x293E3575), UINT32_C(0x4CA3FB21),
9560           UINT32_C(0x7BF73CC8), UINT32_C(0x7FB2ACB9)}},
9561         {{UINT32_C(0x0FC8FCD4), UINT32_C(0x67DB6C90), UINT32_C(0x7EE3B705),
9562           UINT32_C(0x22A3DF5F), UINT32_C(0xC7B2EDFF), UINT32_C(0xD50EBF8B),
9563           UINT32_C(0x99522FB7), UINT32_C(0x0C701045)},
9564          {UINT32_C(0xAD4F9044), UINT32_C(0x1420CF02), UINT32_C(0xE5B59451),
9565           UINT32_C(0xD78DBA23), UINT32_C(0x6AEFD853), UINT32_C(0xDFDC1C7F),
9566           UINT32_C(0xDEA1DAAB), UINT32_C(0x560DEE94)}},
9567         {{UINT32_C(0x2167A78B), UINT32_C(0x0F235513), UINT32_C(0x9F441927),
9568           UINT32_C(0xCF463702), UINT32_C(0xA3D1505C), UINT32_C(0xD0AE2723),
9569           UINT32_C(0xCD9FBFF4), UINT32_C(0x3149D858)},
9570          {UINT32_C(0xF79240FA), UINT32_C(0x2A73913A), UINT32_C(0x252A958B),
9571           UINT32_C(0xC904A575), UINT32_C(0x78473D97), UINT32_C(0x10D18190),
9572           UINT32_C(0x203BC8C4), UINT32_C(0x42CE7A38)}},
9573         {{UINT32_C(0xFA59BB8B), UINT32_C(0x1D2AD4F2), UINT32_C(0x79F137DD),
9574           UINT32_C(0x8234964C), UINT32_C(0x5D02679E), UINT32_C(0x00B63A30),
9575           UINT32_C(0x5DD7543D), UINT32_C(0x506C45BE)},
9576          {UINT32_C(0x776BF80C), UINT32_C(0x4378F900), UINT32_C(0xB312F2BB),
9577           UINT32_C(0x179558B2), UINT32_C(0xEA37C183), UINT32_C(0x5B15368C),
9578           UINT32_C(0xB198E42D), UINT32_C(0x7593B19F)}},
9579         {{UINT32_C(0xDEFA1F48), UINT32_C(0xED723535), UINT32_C(0x87F96EE5),
9580           UINT32_C(0x0DAFC48B), UINT32_C(0x91B1B52C), UINT32_C(0x0AEFA3BA),
9581           UINT32_C(0xA1ADBEA4), UINT32_C(0x56BA1B33)},
9582          {UINT32_C(0x30A6C905), UINT32_C(0x8A0B6170), UINT32_C(0xB272D12E),
9583           UINT32_C(0xC5BA3518), UINT32_C(0x4B6643A9), UINT32_C(0x782100CF),
9584           UINT32_C(0x85C5BD2B), UINT32_C(0x12DEE803)}},
9585         {{UINT32_C(0x78FCADD6), UINT32_C(0xDD07D2D5), UINT32_C(0x3B25C523),
9586           UINT32_C(0x8CB8E8A8), UINT32_C(0x530919CF), UINT32_C(0x25063508),
9587           UINT32_C(0x1E24F7A1), UINT32_C(0x45D3DD54)},
9588          {UINT32_C(0x49DDAF96), UINT32_C(0x296AE893), UINT32_C(0xACE559F5),
9589           UINT32_C(0x7EF3CDE0), UINT32_C(0x0D36F87B), UINT32_C(0x9CDF22E4),
9590           UINT32_C(0x4AC9A845), UINT32_C(0x19684765)}},
9591         {{UINT32_C(0xC597B7AE), UINT32_C(0x3955B5AB), UINT32_C(0x3AB49731),
9592           UINT32_C(0x59F3BA05), UINT32_C(0xF525C6C8), UINT32_C(0xBCA5B117),
9593           UINT32_C(0x32050B8D), UINT32_C(0x4969C134)},
9594          {UINT32_C(0x970E8E49), UINT32_C(0x353183D9), UINT32_C(0xE95300CF),
9595           UINT32_C(0x3D005213), UINT32_C(0x09022378), UINT32_C(0x595F9C8E),
9596           UINT32_C(0x1A445C28), UINT32_C(0x70FA8B47)}},
9597         {{UINT32_C(0xBADB79EA), UINT32_C(0xECC88EE3), UINT32_C(0xFBD8464E),
9598           UINT32_C(0x5BDAF68C), UINT32_C(0xB4280334), UINT32_C(0x24AF6A4C),
9599           UINT32_C(0x398E5BBE), UINT32_C(0x17A5DE8B)},
9600          {UINT32_C(0x92999E18), UINT32_C(0x300B6DEB), UINT32_C(0x67DEFC2F),
9601           UINT32_C(0xA0766918), UINT32_C(0xB19F87FF), UINT32_C(0x4E904450),
9602           UINT32_C(0xC2871056), UINT32_C(0x3010AD94)}},
9603         {{UINT32_C(0x461EFCC3), UINT32_C(0x72E747A1), UINT32_C(0x562F923E),
9604           UINT32_C(0x329EDF18), UINT32_C(0xD081A4E7), UINT32_C(0x65E021D4),
9605           UINT32_C(0xB727B6F4), UINT32_C(0x4B2DBFFF)},
9606          {UINT32_C(0x9C8505AC), UINT32_C(0x5A597A80), UINT32_C(0x562B82D2),
9607           UINT32_C(0x13486480), UINT32_C(0xCC8234C3), UINT32_C(0x477FD480),
9608           UINT32_C(0x04800C00), UINT32_C(0x6045ABA4)}},
9609         {{UINT32_C(0x9C541035), UINT32_C(0x3E087439), UINT32_C(0x6D9D8B6A),
9610           UINT32_C(0x389AA76C), UINT32_C(0x36A21299), UINT32_C(0x68FE5E83),
9611           UINT32_C(0x402A32CF), UINT32_C(0x67AC313D)},
9612          {UINT32_C(0x25501A53), UINT32_C(0x996131D2), UINT32_C(0xA77A85F4),
9613           UINT32_C(0x5C1B89DE), UINT32_C(0xED6702AD), UINT32_C(0xA9822C84),
9614           UINT32_C(0x56609EA0), UINT32_C(0x50F014A4)}},
9615         {{UINT32_C(0xE5A8E91E), UINT32_C(0xF0F8B4E6), UINT32_C(0x1A2FFEFD),
9616           UINT32_C(0x734CFF08), UINT32_C(0x27BCB163), UINT32_C(0x9724EE0B),
9617           UINT32_C(0x30B8EF68), UINT32_C(0x6AF3808B)},
9618          {UINT32_C(0x126E88FC), UINT32_C(0xE5B3829F), UINT32_C(0x4EE5FD4B),
9619           UINT32_C(0x0F441EE3), UINT32_C(0xBFEC4D34), UINT32_C(0x534D2F8C),
9620           UINT32_C(0x076E6737), UINT32_C(0x3E1F16DE)}},
9621         {{UINT32_C(0x4ED36E6A), UINT32_C(0x4DB53E8A), UINT32_C(0x4352B22F),
9622           UINT32_C(0x49A9EFE9), UINT32_C(0x39CF005C), UINT32_C(0x7829605C),
9623           UINT32_C(0xD85DB959), UINT32_C(0x190A8E16)},
9624          {UINT32_C(0x9B073AB3), UINT32_C(0x69981069), UINT32_C(0x8C141AA1),
9625           UINT32_C(0x8C264B87), UINT32_C(0x603ED47C), UINT32_C(0x7F614282),
9626           UINT32_C(0x9F9B0940), UINT32_C(0x21FD2E7A)}},
9627         {{UINT32_C(0x1EC6BB3D), UINT32_C(0xC5CA10A0), UINT32_C(0x27A9B02B),
9628           UINT32_C(0x9403E3F5), UINT32_C(0xFB43F790), UINT32_C(0x9D3D186D),
9629           UINT32_C(0x67DC0C00), UINT32_C(0x7855276E)},
9630          {UINT32_C(0xFFFFB14C), UINT32_C(0x053DBB2A), UINT32_C(0x43ACC0A6),
9631           UINT32_C(0x26746663), UINT32_C(0x7FFC1C68), UINT32_C(0x1EE7A946),
9632           UINT32_C(0x56DBB0DE), UINT32_C(0x14BFAF01)}},
9633         {{UINT32_C(0x849EA674), UINT32_C(0x11C89A47), UINT32_C(0x94A540E6),
9634           UINT32_C(0x194FAAF0), UINT32_C(0x6050E4C0), UINT32_C(0xE61163F8),
9635           UINT32_C(0xB1A07B76), UINT32_C(0x6939A166)},
9636          {UINT32_C(0x2EF18325), UINT32_C(0x8166CA8E), UINT32_C(0x30C042E2),
9637           UINT32_C(0x96112E65), UINT32_C(0x5A394C25), UINT32_C(0xA805CAE0),
9638           UINT32_C(0x0392E6BB), UINT32_C(0x45A0DE01)}},
9639         {{UINT32_C(0xB4FAAA56), UINT32_C(0xB89CEE96), UINT32_C(0x529736DE),
9640           UINT32_C(0x7A7DC8AE), UINT32_C(0xA727FCF7), UINT32_C(0x9158AA49),
9641           UINT32_C(0x1896B9DA), UINT32_C(0x621B8B31)},
9642          {UINT32_C(0x03BEC74B), UINT32_C(0x875930D6), UINT32_C(0xA7A50309),
9643           UINT32_C(0x1056DB45), UINT32_C(0xB5657B0E), UINT32_C(0xEE713E04),
9644           UINT32_C(0x6FCAD967), UINT32_C(0x2D68155E)}},
9645         {{UINT32_C(0x65B1E2B3), UINT32_C(0x3BB1E9E3), UINT32_C(0x88425BAB),
9646           UINT32_C(0x2A615670), UINT32_C(0x62F1BA4A), UINT32_C(0x22F4F32F),
9647           UINT32_C(0x88A59642), UINT32_C(0x7B5EC250)},
9648          {UINT32_C(0x42D30049), UINT32_C(0x7B5BA12A), UINT32_C(0x86995BE6),
9649           UINT32_C(0x4E6AC055), UINT32_C(0x45EC87AC), UINT32_C(0x04431A04),
9650           UINT32_C(0xED94823D), UINT32_C(0x28974ED7)}},
9651     },
9652     {
9653         {{UINT32_C(0x12BB5555), UINT32_C(0x59258057), UINT32_C(0xBB7608EE),
9654           UINT32_C(0x03141CD8), UINT32_C(0xEF77714B), UINT32_C(0x84EBDC49),
9655           UINT32_C(0xB5DC1A5F), UINT32_C(0x6A45FC3A)},
9656          {UINT32_C(0x2FBEEC76), UINT32_C(0x1F6DC205), UINT32_C(0xA920C554),
9657           UINT32_C(0x17EB733B), UINT32_C(0x7A28ACDF), UINT32_C(0xDB022C21),
9658           UINT32_C(0xA9B62BF1), UINT32_C(0x6AF16156)}},
9659         {{UINT32_C(0x80B472CC), UINT32_C(0x9379D6A8), UINT32_C(0x7BD92F27),
9660           UINT32_C(0x6CB08CB0), UINT32_C(0x147E6E12), UINT32_C(0x19B3C353),
9661           UINT32_C(0x26827839), UINT32_C(0x3C26CB2F)},
9662          {UINT32_C(0x0CC571E4), UINT32_C(0x98AAC9A7), UINT32_C(0xC3C8FC04),
9663           UINT32_C(0x075D05F2), UINT32_C(0xD79621AC), UINT32_C(0x718B55A0),
9664           UINT32_C(0x5B94B41B), UINT32_C(0x149FEECF)}},
9665         {{UINT32_C(0x783F9C81), UINT32_C(0x6A150A64), UINT32_C(0x0FB18827),
9666           UINT32_C(0x5950C2DF), UINT32_C(0xF15E3A89), UINT32_C(0xF5D75504),
9667           UINT32_C(0xFCB4406B), UINT32_C(0x5F92F2F7)},
9668          {UINT32_C(0x6123E858), UINT32_C(0x665F31E7), UINT32_C(0xA95184A3),
9669           UINT32_C(0x4E568EA9), UINT32_C(0x505FF0AD), UINT32_C(0x851EEADC),
9670           UINT32_C(0x542C3EF8), UINT32_C(0x62AD5BA6)}},
9671         {{UINT32_C(0xC55C23FD), UINT32_C(0x1103859D), UINT32_C(0x695E4E9B),
9672           UINT32_C(0x06AB0BD6), UINT32_C(0xDD734990), UINT32_C(0x2CD00D76),
9673           UINT32_C(0xB06460E4), UINT32_C(0x5D59C693)},
9674          {UINT32_C(0x1F9C76DA), UINT32_C(0x3BA8F2F0), UINT32_C(0x960F5C0E),
9675           UINT32_C(0x08E4A7EC), UINT32_C(0xE4AAB060), UINT32_C(0x79C82AD9),
9676           UINT32_C(0x0DF95C43), UINT32_C(0x093D322C)}},
9677         {{UINT32_C(0x0C627547), UINT32_C(0x88AF1258), UINT32_C(0x889A5E12),
9678           UINT32_C(0x81E5F197), UINT32_C(0x7CBD84FD), UINT32_C(0x99E0E191),
9679           UINT32_C(0xDB0B9711), UINT32_C(0x3024BCE8)},
9680          {UINT32_C(0xDB93B1A2), UINT32_C(0x04075C80), UINT32_C(0x628B0E63),
9681           UINT32_C(0x12F30AF8), UINT32_C(0xEB25A4ED), UINT32_C(0xA3514F26),
9682           UINT32_C(0x7BCD0873), UINT32_C(0x3D42E489)}},
9683         {{UINT32_C(0x754B236F), UINT32_C(0x0F1C16C6), UINT32_C(0x594F5D3D),
9684           UINT32_C(0x717CE487), UINT32_C(0xAFAD77B1), UINT32_C(0x7679C7DA),
9685           UINT32_C(0x6F3E724C), UINT32_C(0x51AFD014)},
9686          {UINT32_C(0x3AF6938F), UINT32_C(0xAFC9745C), UINT32_C(0xC4E61CB4),
9687           UINT32_C(0xCA12BFA9), UINT32_C(0x9425CCA7), UINT32_C(0x943B5696),
9688           UINT32_C(0xB6E48A69), UINT32_C(0x5BD3E65E)}},
9689         {{UINT32_C(0xDEAE74B1), UINT32_C(0x2D23CF78), UINT32_C(0x043BF2F1),
9690           UINT32_C(0xA686767E), UINT32_C(0xE464ADE9), UINT32_C(0x3AFED34D),
9691           UINT32_C(0x5A6AE80B), UINT32_C(0x1E462073)},
9692          {UINT32_C(0x737F7B66), UINT32_C(0xA86AA408), UINT32_C(0xEAB3B6CE),
9693           UINT32_C(0xD67A0B49), UINT32_C(0x275355F3), UINT32_C(0x6FF3CA4F),
9694           UINT32_C(0x688F99AB), UINT32_C(0x6F385576)}},
9695         {{UINT32_C(0xFD2F9A72), UINT32_C(0xC9B63343), UINT32_C(0xAC267E8A),
9696           UINT32_C(0xBD0A126D), UINT32_C(0x5D2839B5), UINT32_C(0x818BD5D8),
9697           UINT32_C(0x0BF5AFCE), UINT32_C(0x1BBAB4CE)},
9698          {UINT32_C(0x4D8B67DE), UINT32_C(0x2827B24A), UINT32_C(0xC34E6642),
9699           UINT32_C(0x841F6BD3), UINT32_C(0x5E4A34D4), UINT32_C(0xE9F5C1C2),
9700           UINT32_C(0xFDA4177C), UINT32_C(0x4E98795C)}},
9701         {{UINT32_C(0x0763AB04), UINT32_C(0x3C9FF1C2), UINT32_C(0x9832FCFD),
9702           UINT32_C(0x4FC1BE61), UINT32_C(0x8BD0363A), UINT32_C(0x5FA50C38),
9703           UINT32_C(0xF26206BE), UINT32_C(0x14C9BB2F)},
9704          {UINT32_C(0x1D31880C), UINT32_C(0xAD1A96EB), UINT32_C(0x65DFCF8A),
9705           UINT32_C(0xF0A37BC4), UINT32_C(0x3D048FE4), UINT32_C(0x38962729),
9706           UINT32_C(0x6480B254), UINT32_C(0x017125C0)}},
9707         {{UINT32_C(0x98D4BAC6), UINT32_C(0x01E819F5), UINT32_C(0x36B99D30),
9708           UINT32_C(0xD3686E04), UINT32_C(0x200A4A9D), UINT32_C(0x0C2876FB),
9709           UINT32_C(0xE65782D5), UINT32_C(0x45D50C2F)},
9710          {UINT32_C(0x865B7A21), UINT32_C(0xB8316ECE), UINT32_C(0xCC875503),
9711           UINT32_C(0xA3ADB90F), UINT32_C(0x98468FB4), UINT32_C(0xD72E864E),
9712           UINT32_C(0xDED21F40), UINT32_C(0x13BB23FD)}},
9713         {{UINT32_C(0xC6B96368), UINT32_C(0x653C3C15), UINT32_C(0x2B9C381F),
9714           UINT32_C(0x9A42FC2C), UINT32_C(0x69534D92), UINT32_C(0xF06B41B9),
9715           UINT32_C(0x3FB7BED2), UINT32_C(0x46F7292E)},
9716          {UINT32_C(0x97D1875E), UINT32_C(0x14A2C420), UINT32_C(0xD3B2DF55),
9717           UINT32_C(0x45DFA824), UINT32_C(0x3F2BA72D), UINT32_C(0x59CB7E59),
9718           UINT32_C(0xD7D96C98), UINT32_C(0x2EEC65C9)}},
9719         {{UINT32_C(0x49650405), UINT32_C(0x907CD4C8), UINT32_C(0x37E05E06),
9720           UINT32_C(0xFC29320A), UINT32_C(0x09E29619), UINT32_C(0x99B4C1DF),
9721           UINT32_C(0x34DE993F), UINT32_C(0x74E69BF8)},
9722          {UINT32_C(0x509D9797), UINT32_C(0x62C0F296), UINT32_C(0x5F1EF554),
9723           UINT32_C(0x2E6BD4E6), UINT32_C(0x0D0B71B8), UINT32_C(0xE3050641),
9724           UINT32_C(0x235DDE6C), UINT32_C(0x29DA0C9D)}},
9725         {{UINT32_C(0x689398C1), UINT32_C(0x3CFBCA4B), UINT32_C(0x40C9DF13),
9726           UINT32_C(0x11E58804), UINT32_C(0xBCDF2489), UINT32_C(0x3923A39B),
9727           UINT32_C(0x387C8089), UINT32_C(0x3805CCC7)},
9728          {UINT32_C(0x70319AFA), UINT32_C(0xC1B4EB48), UINT32_C(0xCA089604),
9729           UINT32_C(0x0A6A5FA4), UINT32_C(0x73139A20), UINT32_C(0x16ABDE54),
9730           UINT32_C(0x94BD61B5), UINT32_C(0x7C0055E0)}},
9731         {{UINT32_C(0xCB05A02A), UINT32_C(0xA5AB5CEF), UINT32_C(0x0BFE903B),
9732           UINT32_C(0xC0B4E1B4), UINT32_C(0xEAC9E7E8), UINT32_C(0xBA528329),
9733           UINT32_C(0x0A2456B6), UINT32_C(0x0266C5A7)},
9734          {UINT32_C(0x5E216EEC), UINT32_C(0x507E9A41), UINT32_C(0xD0F1E440),
9735           UINT32_C(0xFCC06B0A), UINT32_C(0xE5C7B26F), UINT32_C(0x6FAEFC8E),
9736           UINT32_C(0xB02F85C1), UINT32_C(0x4744CF2E)}},
9737         {{UINT32_C(0x1C291BFC), UINT32_C(0xF5E2B812), UINT32_C(0x2CDCBF7A),
9738           UINT32_C(0xC18E791D), UINT32_C(0x46554345), UINT32_C(0xC386B962),
9739           UINT32_C(0x067518CD), UINT32_C(0x373E00FB)},
9740          {UINT32_C(0xE950051B), UINT32_C(0xC9BA9DF9), UINT32_C(0xDD6133EE),
9741           UINT32_C(0x182CB132), UINT32_C(0x70A3C71C), UINT32_C(0xD6D7F815),
9742           UINT32_C(0x7FAFE307), UINT32_C(0x44C5AEBC)}},
9743         {{UINT32_C(0xA9D16080), UINT32_C(0x6C7CE359), UINT32_C(0x1E8B643E),
9744           UINT32_C(0xA874386D), UINT32_C(0x07F48E10), UINT32_C(0xA0648129),
9745           UINT32_C(0x93E4D619), UINT32_C(0x2A402201)},
9746          {UINT32_C(0xBD383EA6), UINT32_C(0x8B429545), UINT32_C(0xF2880536),
9747           UINT32_C(0xC096D593), UINT32_C(0x20E299B9), UINT32_C(0xB4057D6C),
9748           UINT32_C(0x38A825FA), UINT32_C(0x303962CE)}},
9749     },
9750     {
9751         {{UINT32_C(0x1E1D70D0), UINT32_C(0x9E426EBF), UINT32_C(0xB83529CA),
9752           UINT32_C(0x6AEA4DDC), UINT32_C(0x7CC9A07C), UINT32_C(0xF3ECD462),
9753           UINT32_C(0xC364772E), UINT32_C(0x7F255C86)},
9754          {UINT32_C(0x5613BEF0), UINT32_C(0x0DF212CF), UINT32_C(0x1309F9D0),
9755           UINT32_C(0x771F02A9), UINT32_C(0x805FE1F5), UINT32_C(0xE97BEE39),
9756           UINT32_C(0xD93522B9), UINT32_C(0x54A43430)}},
9757         {{UINT32_C(0xCDE4EBBE), UINT32_C(0xC01553BD), UINT32_C(0xA02E56C1),
9758           UINT32_C(0xB1928DDC), UINT32_C(0x94A1A417), UINT32_C(0xB91004BA),
9759           UINT32_C(0x56CB9C88), UINT32_C(0x44F74BE6)},
9760          {UINT32_C(0x921B62E5), UINT32_C(0x6A7E3E9B), UINT32_C(0x5FBF13C4),
9761           UINT32_C(0xF2BF553B), UINT32_C(0x86D55641), UINT32_C(0x51CB776D),
9762           UINT32_C(0x6425A3AD), UINT32_C(0x71826BC5)}},
9763         {{UINT32_C(0xC6D70EF9), UINT32_C(0xD6D49F90), UINT32_C(0x29EBA0DD),
9764           UINT32_C(0x5BD0DA69), UINT32_C(0x803233EF), UINT32_C(0x0BBA7571),
9765           UINT32_C(0x679A17D5), UINT32_C(0x0EB0959E)},
9766          {UINT32_C(0xB8A3D6EC), UINT32_C(0x97818DC2), UINT32_C(0xC687EAA2),
9767           UINT32_C(0x09497FB0), UINT32_C(0xA65FA4C0), UINT32_C(0x2E2707EA),
9768           UINT32_C(0x7542F472), UINT32_C(0x6A74D4C6)}},
9769         {{UINT32_C(0x1EE0BC40), UINT32_C(0x0D193006), UINT32_C(0x6DC98BA8),
9770           UINT32_C(0x7D7BEE19), UINT32_C(0x447C38D2), UINT32_C(0x1AD37C98),
9771           UINT32_C(0xB6B4550A), UINT32_C(0x3E163AE1)},
9772          {UINT32_C(0x5BC93243), UINT32_C(0x734E36C9), UINT32_C(0x986C35A8),
9773           UINT32_C(0x54E217FD), UINT32_C(0x9E3285E3), UINT32_C(0xF0576FF0),
9774           UINT32_C(0x186EE7EB), UINT32_C(0x65C950C8)}},
9775         {{UINT32_C(0x2012D277), UINT32_C(0x1AB12C04), UINT32_C(0x83872384),
9776           UINT32_C(0x97CAB84B), UINT32_C(0x1C66FCFD), UINT32_C(0x479C9CF5),
9777           UINT32_C(0xF276933E), UINT32_C(0x70ABC8B4)},
9778          {UINT32_C(0xBA4D14F0), UINT32_C(0xE6B15BF7), UINT32_C(0x22E2F5D5),
9779           UINT32_C(0xF4060ED3), UINT32_C(0xCDC5462C), UINT32_C(0xA53F3CA0),
9780           UINT32_C(0xC6FC3854), UINT32_C(0x593219D4)}},
9781         {{UINT32_C(0x72B6F8A1), UINT32_C(0x9DE69934), UINT32_C(0x19E16B3F),
9782           UINT32_C(0xECABAEEE), UINT32_C(0xEDA68D7B), UINT32_C(0x0B537CA5),
9783           UINT32_C(0xD3CE55B7), UINT32_C(0x744628BD)},
9784          {UINT32_C(0x98A95308), UINT32_C(0x3A5B2D8E), UINT32_C(0x6758C6C8),
9785           UINT32_C(0x74D0CEF1), UINT32_C(0xDA204834), UINT32_C(0x7538198A),
9786           UINT32_C(0xA644E880), UINT32_C(0x1E166AAA)}},
9787         {{UINT32_C(0x4674ACF0), UINT32_C(0xE76EE712), UINT32_C(0xDF9DFB4C),
9788           UINT32_C(0x40A6F6DE), UINT32_C(0x40C65721), UINT32_C(0x91B0034C),
9789           UINT32_C(0xF8E0F5E5), UINT32_C(0x54FE8B8B)},
9790          {UINT32_C(0x75891895), UINT32_C(0x6322CA0F), UINT32_C(0x7D20C522),
9791           UINT32_C(0x3D1C821E), UINT32_C(0x08043786), UINT32_C(0x1691407F),
9792           UINT32_C(0x14847D58), UINT32_C(0x02C30838)}},
9793         {{UINT32_C(0xB8F0C372), UINT32_C(0x57DEF069), UINT32_C(0x0D5ABF2C),
9794           UINT32_C(0x50375DC3), UINT32_C(0x75EDFBC9), UINT32_C(0x22903814),
9795           UINT32_C(0xAE37695A), UINT32_C(0x56E39BD7)},
9796          {UINT32_C(0x463D13F2), UINT32_C(0xAB74B187), UINT32_C(0x3CDE8886),
9797           UINT32_C(0xC50CB8A2), UINT32_C(0xB35F7D59), UINT32_C(0x1EFBD1CF),
9798           UINT32_C(0x1057AE42), UINT32_C(0x1296C482)}},
9799         {{UINT32_C(0xC347E3FB), UINT32_C(0xA350B57B), UINT32_C(0xADF65129),
9800           UINT32_C(0x4312EB75), UINT32_C(0x7F9A6C9E), UINT32_C(0xD9A7E2F4),
9801           UINT32_C(0x9BFDCB4D), UINT32_C(0x5493AF7B)},
9802          {UINT32_C(0x9AC0E58E), UINT32_C(0x90A443DD), UINT32_C(0xC6F3BEEF),
9803           UINT32_C(0x9777D58A), UINT32_C(0x965EC900), UINT32_C(0x12F00913),
9804           UINT32_C(0x480126DA), UINT32_C(0x2F6C5B59)}},
9805         {{UINT32_C(0xBAD8C051), UINT32_C(0x70B907FC), UINT32_C(0xD3B4F608),
9806           UINT32_C(0x54492D6A), UINT32_C(0x2E096D9F), UINT32_C(0xE3B46F1B),
9807           UINT32_C(0x747D472A), UINT32_C(0x522AD6D1)},
9808          {UINT32_C(0x02DAB5E5), UINT32_C(0x8FCD1616), UINT32_C(0x357B1C85),
9809           UINT32_C(0xD3BA292F), UINT32_C(0x2704F072), UINT32_C(0xA6DB50CD),
9810           UINT32_C(0x8341AA73), UINT32_C(0x63488DDF)}},
9811         {{UINT32_C(0x0FE2AAAB), UINT32_C(0x99100A3D), UINT32_C(0x8EA44560),
9812           UINT32_C(0x7D30C4E9), UINT32_C(0x2B4C776D), UINT32_C(0xBA458C67),
9813           UINT32_C(0xBBA4D85E), UINT32_C(0x2EC11420)},
9814          {UINT32_C(0x7A7AEC55), UINT32_C(0xB1D9FBA2), UINT32_C(0x7665AAE5),
9815           UINT32_C(0x432AB2AA), UINT32_C(0xF3BC7043), UINT32_C(0xD2755948),
9816           UINT32_C(0x82510EAD), UINT32_C(0x2FC331BB)}},
9817         {{UINT32_C(0x46253DB1), UINT32_C(0xAAF11CF9), UINT32_C(0xB0DF307C),
9818           UINT32_C(0xEB025AED), UINT32_C(0x7A82ADEE), UINT32_C(0xCB7C22A5),
9819           UINT32_C(0x9C5FA97B), UINT32_C(0x7316C390)},
9820          {UINT32_C(0xF518067C), UINT32_C(0x91620554), UINT32_C(0x3C96A804),
9821           UINT32_C(0x20A438AE), UINT32_C(0x5B0C090C), UINT32_C(0xC4F9DCDF),
9822           UINT32_C(0x6E5C1B45), UINT32_C(0x77C512DB)}},
9823         {{UINT32_C(0xFDD09EDE), UINT32_C(0xC981E682), UINT32_C(0xBBB3F57D),
9824           UINT32_C(0xC3EB36B7), UINT32_C(0xD12BF450), UINT32_C(0xA07369C6),
9825           UINT32_C(0xCE017845), UINT32_C(0x16627566)},
9826          {UINT32_C(0x9494AF62), UINT32_C(0xFD8DEC90), UINT32_C(0x53FD4B22),
9827           UINT32_C(0x7E793096), UINT32_C(0xC8AAEAE9), UINT32_C(0x21B8E665),
9828           UINT32_C(0x18BC33C0), UINT32_C(0x526FA318)}},
9829         {{UINT32_C(0x853A2647), UINT32_C(0xF55D32BF), UINT32_C(0xCDAEE8FE),
9830           UINT32_C(0xD873ED6C), UINT32_C(0x80E52622), UINT32_C(0xA3579E2B),
9831           UINT32_C(0x33D16FE8), UINT32_C(0x03871ABA)},
9832          {UINT32_C(0x69925EDF), UINT32_C(0x714804AC), UINT32_C(0xF2B964FF),
9833           UINT32_C(0x0340755F), UINT32_C(0xDA0D1A07), UINT32_C(0x93830F98),
9834           UINT32_C(0xF7FB1E16), UINT32_C(0x2CAB201E)}},
9835         {{UINT32_C(0x22A8AF77), UINT32_C(0x26DE3A3A), UINT32_C(0xB45BA630),
9836           UINT32_C(0x0E77C3DC), UINT32_C(0xFC86E7D1), UINT32_C(0x34F00017),
9837           UINT32_C(0x1B62F7F2), UINT32_C(0x796ABE2F)},
9838          {UINT32_C(0x1663B5B1), UINT32_C(0x9FA09277), UINT32_C(0x9B2FB9AC),
9839           UINT32_C(0xFFFDC93F), UINT32_C(0x6B340D75), UINT32_C(0x03AECD1A),
9840           UINT32_C(0x314DCCEA), UINT32_C(0x5D55A168)}},
9841         {{UINT32_C(0x747DBD0C), UINT32_C(0x678AEF02), UINT32_C(0xD47A6C09),
9842           UINT32_C(0xF0D47C1C), UINT32_C(0x3FDD1681), UINT32_C(0x6C2AC72F),
9843           UINT32_C(0x6D789D3A), UINT32_C(0x750E7064)},
9844          {UINT32_C(0xAEBEDD58), UINT32_C(0x3F970AFE), UINT32_C(0xE3540951),
9845           UINT32_C(0x6BBA7956), UINT32_C(0x3E71F6AF), UINT32_C(0x7CC461B2),
9846           UINT32_C(0xC45FED28), UINT32_C(0x7E51E548)}},
9847     },
9848     {
9849         {{UINT32_C(0x2CE2CBE5), UINT32_C(0x4A598EFB), UINT32_C(0x89C9A51B),
9850           UINT32_C(0x774CDE0A), UINT32_C(0xCA907F34), UINT32_C(0x2D003680),
9851           UINT32_C(0x9D3C7D97), UINT32_C(0x62C32DCA)},
9852          {UINT32_C(0xB3054D17), UINT32_C(0x37B3A90F), UINT32_C(0x67E58A5A),
9853           UINT32_C(0x1423574C), UINT32_C(0x4859FA49), UINT32_C(0xF1D3BB1A),
9854           UINT32_C(0x3F5AFA63), UINT32_C(0x25F0AF1C)}},
9855         {{UINT32_C(0x1FE53AC9), UINT32_C(0xD3BF7F62), UINT32_C(0xCBCE6164),
9856           UINT32_C(0xCE2B67C3), UINT32_C(0x95341024), UINT32_C(0xE081C576),
9857           UINT32_C(0x9A70ECAB), UINT32_C(0x32B0EF5D)},
9858          {UINT32_C(0x3BE1E5CE), UINT32_C(0x3EC93C85), UINT32_C(0xA0CB7DCD),
9859           UINT32_C(0xE25F54ED), UINT32_C(0x517965B2), UINT32_C(0x9D6B57D7),
9860           UINT32_C(0x129B0B27), UINT32_C(0x159F7AB0)}},
9861         {{UINT32_C(0xEEFB67F3), UINT32_C(0xAEF88E95), UINT32_C(0xE0316AB2),
9862           UINT32_C(0xEAEB2889), UINT32_C(0xC2CB6753), UINT32_C(0x1491881F),
9863           UINT32_C(0x702789D0), UINT32_C(0x67DCDF28)},
9864          {UINT32_C(0x11C0F3FD), UINT32_C(0x8282E0A7), UINT32_C(0x01BA273D),
9865           UINT32_C(0x9CDCFDB8), UINT32_C(0x26279B95), UINT32_C(0x6BF1E043),
9866           UINT32_C(0x85852777), UINT32_C(0x0D42AAC6)}},
9867         {{UINT32_C(0x608981AB), UINT32_C(0xC4CE393E), UINT32_C(0x52141CB0),
9868           UINT32_C(0x210E20F8), UINT32_C(0x6B9234B5), UINT32_C(0x22C2586D),
9869           UINT32_C(0x4366750E), UINT32_C(0x52F1B366)},
9870          {UINT32_C(0x760AFA55), UINT32_C(0xE38ED0D9), UINT32_C(0xB5D61A08),
9871           UINT32_C(0xA43FF25A), UINT32_C(0xB5E21691), UINT32_C(0x0BE3A406),
9872           UINT32_C(0xFD4E17B0), UINT32_C(0x37B47A28)}},
9873         {{UINT32_C(0x4C2C65C2), UINT32_C(0xC46DC6D4), UINT32_C(0xC54BE778),
9874           UINT32_C(0x2A0B452C), UINT32_C(0xF727070E), UINT32_C(0xAF113693),
9875           UINT32_C(0xC68D13A3), UINT32_C(0x7B229CD8)},
9876          {UINT32_C(0x02D43E4B), UINT32_C(0x0F63097E), UINT32_C(0x55627FD8),
9877           UINT32_C(0x912F8D33), UINT32_C(0x2A0DD9AE), UINT32_C(0x1EBF3961),
9878           UINT32_C(0xF0294B2D), UINT32_C(0x7FD33FDE)}},
9879         {{UINT32_C(0xD0CC6D9F), UINT32_C(0xC72411F5), UINT32_C(0x9B92FF84),
9880           UINT32_C(0x66E04C90), UINT32_C(0xE1C033B6), UINT32_C(0x0678B4F8),
9881           UINT32_C(0xE49A972A), UINT32_C(0x5A99F270)},
9882          {UINT32_C(0xD265A4DF), UINT32_C(0x3743BCD8), UINT32_C(0xCE0404C3),
9883           UINT32_C(0x7BD6DDF4), UINT32_C(0x131750A5), UINT32_C(0x4043767F),
9884           UINT32_C(0x9DD65652), UINT32_C(0x4A7D8983)}},
9885         {{UINT32_C(0x12B7822D), UINT32_C(0x535BC784), UINT32_C(0xF1F9B703),
9886           UINT32_C(0xDD32DD67), UINT32_C(0x2EAA2A1C), UINT32_C(0xFFDBF0EB),
9887           UINT32_C(0xF64E9822), UINT32_C(0x497C09FA)},
9888          {UINT32_C(0x32EE2A36), UINT32_C(0x18E717E9), UINT32_C(0x583949B1),
9889           UINT32_C(0xF01CC4F5), UINT32_C(0x0A168755), UINT32_C(0x222EE974),
9890           UINT32_C(0x00C81EC9), UINT32_C(0x0CD14CD5)}},
9891         {{UINT32_C(0x14C79CDC), UINT32_C(0x7AE0BD11), UINT32_C(0x6DC08C80),
9892           UINT32_C(0x67323D1A), UINT32_C(0x0EF32432), UINT32_C(0x2FD1ABC7),
9893           UINT32_C(0xB0E08EBF), UINT32_C(0x65923246)},
9894          {UINT32_C(0xC0754ECE), UINT32_C(0x0A9FD3D7), UINT32_C(0x5F8644FA),
9895           UINT32_C(0xE76B2624), UINT32_C(0x0F8BB385), UINT32_C(0xF1F0BEBA),
9896           UINT32_C(0xFC96778F), UINT32_C(0x73251F03)}},
9897         {{UINT32_C(0xD08795A9), UINT32_C(0x197150DE), UINT32_C(0xFBB8B9CF),
9898           UINT32_C(0xAD6935AE), UINT32_C(0x3B2B9EFB), UINT32_C(0x72118682),
9899           UINT32_C(0xBC2B7240), UINT32_C(0x265B288D)},
9900          {UINT32_C(0x2F78C431), UINT32_C(0x7BF2EB36), UINT32_C(0xF2A6E469),
9901           UINT32_C(0xF03B83CA), UINT32_C(0x4740E74B), UINT32_C(0x21159256),
9902           UINT32_C(0x0490F0B9), UINT32_C(0x35BE5735)}},
9903         {{UINT32_C(0x806C1CAE), UINT32_C(0x207F33B2), UINT32_C(0xDAC5ADE0),
9904           UINT32_C(0x04249127), UINT32_C(0x1CC59DE7), UINT32_C(0xC4CCF33E),
9905           UINT32_C(0x272BD6D7), UINT32_C(0x2A17B520)},
9906          {UINT32_C(0xB48F6585), UINT32_C(0xC36F6B3C), UINT32_C(0x0861ACF5),
9907           UINT32_C(0xD32A7379), UINT32_C(0x2C3291C6), UINT32_C(0x28A12ECB),
9908           UINT32_C(0xF02A88D0), UINT32_C(0x0E945F95)}},
9909         {{UINT32_C(0xD3B3117B), UINT32_C(0x4836EC01), UINT32_C(0xA4C2FD72),
9910           UINT32_C(0x4C197454), UINT32_C(0xF9897721), UINT32_C(0x96FCED51),
9911           UINT32_C(0x5828C97D), UINT32_C(0x14202858)},
9912          {UINT32_C(0x774755B9), UINT32_C(0xCA7ACED8), UINT32_C(0x97252559),
9913           UINT32_C(0x460FF582), UINT32_C(0x5796DD63), UINT32_C(0xAAE45776),
9914           UINT32_C(0x346DDBF5), UINT32_C(0x711C916E)}},
9915         {{UINT32_C(0x5E203692), UINT32_C(0xA60E2E7B), UINT32_C(0xF3BF2A45),
9916           UINT32_C(0xCFC72FEA), UINT32_C(0x72AC0436), UINT32_C(0x78729D28),
9917           UINT32_C(0x29ABF199), UINT32_C(0x3E16DD8B)},
9918          {UINT32_C(0x15A41F3D), UINT32_C(0xB1705AA6), UINT32_C(0x308AB87C),
9919           UINT32_C(0x8C7512FE), UINT32_C(0x03995381), UINT32_C(0xA27411C5),
9920           UINT32_C(0xA780CED3), UINT32_C(0x3142403C)}},
9921         {{UINT32_C(0xF1718C7F), UINT32_C(0xE4473E94), UINT32_C(0xA3CAB6CB),
9922           UINT32_C(0x601BC194), UINT32_C(0x581D491D), UINT32_C(0x8F3540F8),
9923           UINT32_C(0x43C15321), UINT32_C(0x456A9B7C)},
9924          {UINT32_C(0x593BB7ED), UINT32_C(0x6F335A2D), UINT32_C(0x7D791514),
9925           UINT32_C(0xB6D5A23F), UINT32_C(0x79235EAD), UINT32_C(0x976D2F83),
9926           UINT32_C(0x44775C97), UINT32_C(0x7D02EA0F)}},
9927         {{UINT32_C(0xE5EC268E), UINT32_C(0x322DBC8C), UINT32_C(0xBE14BF5C),
9928           UINT32_C(0x1F2F6050), UINT32_C(0xEACF6A50), UINT32_C(0x58AC6397),
9929           UINT32_C(0xA5401081), UINT32_C(0x4167CBD5)},
9930          {UINT32_C(0xEE5B4BF5), UINT32_C(0x8E6F06A1), UINT32_C(0x6B2F790F),
9931           UINT32_C(0x1A6073D5), UINT32_C(0x4F901250), UINT32_C(0x1C09FF3D),
9932           UINT32_C(0xE6B40DF4), UINT32_C(0x286AF8D7)}},
9933         {{UINT32_C(0x06BD53FF), UINT32_C(0xF74C8057), UINT32_C(0xE5788F0D),
9934           UINT32_C(0x4FCE7281), UINT32_C(0x3D015E6B), UINT32_C(0xD6A867AC),
9935           UINT32_C(0x6E185A42), UINT32_C(0x04AEC38D)},
9936          {UINT32_C(0x083D65CB), UINT32_C(0x8DC12B74), UINT32_C(0x82966668),
9937           UINT32_C(0xDB1AA8AC), UINT32_C(0x28AF1B90), UINT32_C(0xBD2233BF),
9938           UINT32_C(0x172CCA11), UINT32_C(0x544569A7)}},
9939         {{UINT32_C(0x149BD0BD), UINT32_C(0x9C56FCA8), UINT32_C(0xA05F8E44),
9940           UINT32_C(0x2B4EC788), UINT32_C(0x92478943), UINT32_C(0x1569CF6D),
9941           UINT32_C(0x57380986), UINT32_C(0x67E373E8)},
9942          {UINT32_C(0xED3C14DB), UINT32_C(0xF5CC8232), UINT32_C(0xF52EAF83),
9943           UINT32_C(0xE3D184B0), UINT32_C(0x0BC64038), UINT32_C(0x195D4137),
9944           UINT32_C(0x778C3C20), UINT32_C(0x77994388)}},
9945     },
9946     {
9947         {{UINT32_C(0xA0CC77AA), UINT32_C(0x3DAA0C47), UINT32_C(0x7C69CDF0),
9948           UINT32_C(0xB9794E74), UINT32_C(0x4549F5D4), UINT32_C(0x3610E50B),
9949           UINT32_C(0xB8A112CA), UINT32_C(0x262CA564)},
9950          {UINT32_C(0x554E8714), UINT32_C(0xD5EC795E), UINT32_C(0x717EBEF3),
9951           UINT32_C(0x73EE5502), UINT32_C(0x1947A478), UINT32_C(0xE36E8A1A),
9952           UINT32_C(0x42ADC59D), UINT32_C(0x3FBE43A3)}},
9953         {{UINT32_C(0x021FBCBE), UINT32_C(0x4DE78909), UINT32_C(0x0BBBB324),
9954           UINT32_C(0xA76A5EE2), UINT32_C(0xCD67810B), UINT32_C(0x5B86519A),
9955           UINT32_C(0x3710A4EE), UINT32_C(0x4CCA44A2)},
9956          {UINT32_C(0xCD1F8BEC), UINT32_C(0xD79A121D), UINT32_C(0xDC9CA10E),
9957           UINT32_C(0x2E12A772), UINT32_C(0x8C9E9640), UINT32_C(0xE301CA3B),
9958           UINT32_C(0xB731A957), UINT32_C(0x4B25FE18)}},
9959         {{UINT32_C(0xF4AD7264), UINT32_C(0xA05DA2CD), UINT32_C(0x076977A5),
9960           UINT32_C(0x31336489), UINT32_C(0xF2E576A8), UINT32_C(0xC1D269BE),
9961           UINT32_C(0x7532203F), UINT32_C(0x1E877ADC)},
9962          {UINT32_C(0x8B92972C), UINT32_C(0x9C9961BC), UINT32_C(0x6A14D810),
9963           UINT32_C(0x7BA07272), UINT32_C(0x06913136), UINT32_C(0xE51095A9),
9964           UINT32_C(0x30E0EA8C), UINT32_C(0x46748969)}},
9965         {{UINT32_C(0x3C73BA49), UINT32_C(0xDB8EF346), UINT32_C(0x3720570D),
9966           UINT32_C(0xBF221312), UINT32_C(0x605DB0D6), UINT32_C(0xC07B3639),
9967           UINT32_C(0x300336A3), UINT32_C(0x44FCEFA6)},
9968          {UINT32_C(0x2D234592), UINT32_C(0x121FAC5C), UINT32_C(0x44E367D7),
9969           UINT32_C(0x901DEE88), UINT32_C(0x1CAA6A3A), UINT32_C(0x5B5F3DD6),
9970           UINT32_C(0xAC2F6E64), UINT32_C(0x72E474EC)}},
9971         {{UINT32_C(0xF55BE61C), UINT32_C(0x15690BEE), UINT32_C(0xDF2678A2),
9972           UINT32_C(0xE42B945E), UINT32_C(0x3B7B1776), UINT32_C(0x60A5C8AA),
9973           UINT32_C(0xEB9AB938), UINT32_C(0x16103FBC)},
9974          {UINT32_C(0x87AD06AB), UINT32_C(0x79722A1E), UINT32_C(0xD6B632A2),
9975           UINT32_C(0xD7B509F6), UINT32_C(0x3B69EB40), UINT32_C(0x8C4E8B2E),
9976           UINT32_C(0x14DB2225), UINT32_C(0x6A509583)}},
9977         {{UINT32_C(0x93B78659), UINT32_C(0x169F35D8), UINT32_C(0x8EFF83AD),
9978           UINT32_C(0x989B04D2), UINT32_C(0xA6AE4806), UINT32_C(0x72CF7338),
9979           UINT32_C(0xF4AAA524), UINT32_C(0x6E156C84)},
9980          {UINT32_C(0xA1ED5CB2), UINT32_C(0x33A608ED), UINT32_C(0xC3D28716),
9981           UINT32_C(0xCE274A64), UINT32_C(0x45F0435F), UINT32_C(0xFCF1B170),
9982           UINT32_C(0x1653D6F6), UINT32_C(0x101D1BDB)}},
9983         {{UINT32_C(0x2E5A67D9), UINT32_C(0x45BC931D), UINT32_C(0x697DA479),
9984           UINT32_C(0xAFF02C11), UINT32_C(0x2EA3E6E1), UINT32_C(0x7C7972A3),
9985           UINT32_C(0x5E97BB90), UINT32_C(0x71A17D50)},
9986          {UINT32_C(0x19AD4C5E), UINT32_C(0x962E84F2), UINT32_C(0x692020BE),
9987           UINT32_C(0xBB8C9FC7), UINT32_C(0xE7B36665), UINT32_C(0xA78FDF2C),
9988           UINT32_C(0x26F92E33), UINT32_C(0x7AC84ED4)}},
9989         {{UINT32_C(0xC3C9E5C1), UINT32_C(0xBD85A9EE), UINT32_C(0x6ED2FD6A),
9990           UINT32_C(0x72030BAA), UINT32_C(0x39CFFB89), UINT32_C(0xB67185AB),
9991           UINT32_C(0x833BF770), UINT32_C(0x3E2E51A4)},
9992          {UINT32_C(0x5E27D5BB), UINT32_C(0x248FA348), UINT32_C(0x2E6D3DCF),
9993           UINT32_C(0xF8D43596), UINT32_C(0x0C8DAF81), UINT32_C(0x07F5B93C),
9994           UINT32_C(0xAD2FC97D), UINT32_C(0x6A7FFA1D)}},
9995         {{UINT32_C(0xFAEA33F1), UINT32_C(0xFF308FAE), UINT32_C(0x3CC4C7CF),
9996           UINT32_C(0x5F29DFFB), UINT32_C(0xECC5A2B9), UINT32_C(0xB9AD4527),
9997           UINT32_C(0x048D4B38), UINT32_C(0x08B95AF6)},
9998          {UINT32_C(0xDEC152BB), UINT32_C(0x56BC43A8), UINT32_C(0x3849D869),
9999           UINT32_C(0xD1147B9A), UINT32_C(0xD02AF3B7), UINT32_C(0xFE5020C2),
10000           UINT32_C(0xB918496E), UINT32_C(0x54C02B44)}},
10001         {{UINT32_C(0x0B27468D), UINT32_C(0x1611ECFD), UINT32_C(0x0513A562),
10002           UINT32_C(0x4AFCE329), UINT32_C(0x2FE74EED), UINT32_C(0x982782FD),
10003           UINT32_C(0x17ADD2EA), UINT32_C(0x66AC58BF)},
10004          {UINT32_C(0x613581D4), UINT32_C(0x8277BC2D), UINT32_C(0x988D1498),
10005           UINT32_C(0x0BF5BF0C), UINT32_C(0x55C984CB), UINT32_C(0x8A37134D),
10006           UINT32_C(0x92211390), UINT32_C(0x409A79CC)}},
10007         {{UINT32_C(0x816F0462), UINT32_C(0x8C0081AE), UINT32_C(0x5A68BFC2),
10008           UINT32_C(0xB431DC24), UINT32_C(0x5F78C8A1), UINT32_C(0x25C769C6),
10009           UINT32_C(0xB382AF14), UINT32_C(0x3BE0458D)},
10010          {UINT32_C(0xA171ADF2), UINT32_C(0x10583083), UINT32_C(0x37F7C39F),
10011           UINT32_C(0xBA5D5325), UINT32_C(0x5EAC7585), UINT32_C(0x76B03B94),
10012           UINT32_C(0x9C2DF2C6), UINT32_C(0x76159AAC)}},
10013         {{UINT32_C(0x918E0332), UINT32_C(0x886C73BA), UINT32_C(0xD24B5B52),
10014           UINT32_C(0xF6FEC62A), UINT32_C(0x36B4D23A), UINT32_C(0xB98759B4),
10015           UINT32_C(0x5480ACF3), UINT32_C(0x5EC5B3FE)},
10016          {UINT32_C(0x6DD175BF), UINT32_C(0x30FF297D), UINT32_C(0x75F2B9C3),
10017           UINT32_C(0x501DE744), UINT32_C(0xF19230C5), UINT32_C(0xDEBE47CA),
10018           UINT32_C(0x32BBBB62), UINT32_C(0x7401F209)}},
10019         {{UINT32_C(0x22496D1E), UINT32_C(0x80712E47), UINT32_C(0xDA80AF1D),
10020           UINT32_C(0x36A0EF37), UINT32_C(0x940E5E9F), UINT32_C(0xAF6CA51C),
10021           UINT32_C(0x722D9D22), UINT32_C(0x74E17B6F)},
10022          {UINT32_C(0xB8B3AE1B), UINT32_C(0xCB70B878), UINT32_C(0x07DF974C),
10023           UINT32_C(0xBF8B9A0B), UINT32_C(0xF68A4BF4), UINT32_C(0x89FCC996),
10024           UINT32_C(0x6EB0FB2E), UINT32_C(0x46F581E8)}},
10025         {{UINT32_C(0x67137153), UINT32_C(0xBCE0BD6C), UINT32_C(0x75F64B78),
10026           UINT32_C(0xAD3E92B3), UINT32_C(0xFD047DD9), UINT32_C(0x6454CD1D),
10027           UINT32_C(0x612AE472), UINT32_C(0x181C93EB)},
10028          {UINT32_C(0x23A529C3), UINT32_C(0xE575307E), UINT32_C(0x59C09EB5),
10029           UINT32_C(0xB9C43A0B), UINT32_C(0xAA805840), UINT32_C(0xFD233A68),
10030           UINT32_C(0xA122FFB9), UINT32_C(0x067C442E)}},
10031         {{UINT32_C(0x2CD6762E), UINT32_C(0xE1F3F76F), UINT32_C(0x9764B53A),
10032           UINT32_C(0xFB68650F), UINT32_C(0xF1224580), UINT32_C(0x4E90AC72),
10033           UINT32_C(0x127EED48), UINT32_C(0x2BF68F01)},
10034          {UINT32_C(0x94D389A0), UINT32_C(0xE6B4B409), UINT32_C(0xD44593D6),
10035           UINT32_C(0xD7BC8108), UINT32_C(0x48A86677), UINT32_C(0xDCF03991),
10036           UINT32_C(0xCEBCE3C7), UINT32_C(0x4A52D961)}},
10037         {{UINT32_C(0xBAA873EA), UINT32_C(0x55734AB5), UINT32_C(0x7871F323),
10038           UINT32_C(0x506DE4CF), UINT32_C(0x578612C0), UINT32_C(0x7C3F8B00),
10039           UINT32_C(0x9243C9E8), UINT32_C(0x730D4B8A)},
10040          {UINT32_C(0xD385F6BD), UINT32_C(0xA3290689), UINT32_C(0x913596F5),
10041           UINT32_C(0xAF688C6A), UINT32_C(0xB646BE23), UINT32_C(0x0A2D89B5),
10042           UINT32_C(0xF63A6029), UINT32_C(0x31891165)}},
10043     },
10044     {
10045         {{UINT32_C(0x579583C0), UINT32_C(0x331F9E57), UINT32_C(0x69C65DA2),
10046           UINT32_C(0xE92ABADF), UINT32_C(0xA5B8B057), UINT32_C(0xC796FBEC),
10047           UINT32_C(0x312D1E89), UINT32_C(0x52E6F9C9)},
10048          {UINT32_C(0xDA68DFD3), UINT32_C(0x0318B1DF), UINT32_C(0xA1CAC4F1),
10049           UINT32_C(0x8BAA2EB3), UINT32_C(0xBEE7D6E1), UINT32_C(0x0CDC89A2),
10050           UINT32_C(0x22AB50F4), UINT32_C(0x6102DE7A)}},
10051         {{UINT32_C(0xE20C707A), UINT32_C(0x02003D83), UINT32_C(0x28289D89),
10052           UINT32_C(0xD819249C), UINT32_C(0x72053FF8), UINT32_C(0x3FBC00B1),
10053           UINT32_C(0xDF40D261), UINT32_C(0x0249C43C)},
10054          {UINT32_C(0xD8F064AF), UINT32_C(0x8794EEAC), UINT32_C(0xDC9F0631),
10055           UINT32_C(0xE2359E70), UINT32_C(0xADA310D0), UINT32_C(0xD1603647),
10056           UINT32_C(0xEDC888EC), UINT32_C(0x6A9E3785)}},
10057         {{UINT32_C(0xEC41908E), UINT32_C(0xF332B384), UINT32_C(0xBDE4760B),
10058           UINT32_C(0xF3274472), UINT32_C(0x140D0EF4), UINT32_C(0x96185E89),
10059           UINT32_C(0x90E698E7), UINT32_C(0x56462089)},
10060          {UINT32_C(0xF2E64396), UINT32_C(0x841A31C5), UINT32_C(0x03C4118F),
10061           UINT32_C(0x8F494CA5), UINT32_C(0x1A188305), UINT32_C(0x0C98A4C3),
10062           UINT32_C(0x98AAB1AB), UINT32_C(0x1C4B5F62)}},
10063         {{UINT32_C(0x5D0D8381), UINT32_C(0xDDEEEBF8), UINT32_C(0x89044363),
10064           UINT32_C(0xD1616F48), UINT32_C(0x21616A13), UINT32_C(0x2EE41D47),
10065           UINT32_C(0x4BC769FC), UINT32_C(0x2DCE6110)},
10066          {UINT32_C(0x16C1C468), UINT32_C(0xE3707A01), UINT32_C(0x969AF612),
10067           UINT32_C(0x3B674187), UINT32_C(0x1E0671CC), UINT32_C(0xB64BD4D7),
10068           UINT32_C(0xB98C297C), UINT32_C(0x7EF01DBA)}},
10069         {{UINT32_C(0x815381AC), UINT32_C(0x91DCBF99), UINT32_C(0x38B67B97),
10070           UINT32_C(0x8D711F58), UINT32_C(0x9C6E322C), UINT32_C(0x9C11F595),
10071           UINT32_C(0xE31A782F), UINT32_C(0x4A688D0B)},
10072          {UINT32_C(0xDCE93F5B), UINT32_C(0x1297D9F3), UINT32_C(0x7C1DC62A),
10073           UINT32_C(0xA7956194), UINT32_C(0x5F718F63), UINT32_C(0x340F217A),
10074           UINT32_C(0xFCC0EF6A), UINT32_C(0x71F84529)}},
10075         {{UINT32_C(0x3DD00963), UINT32_C(0x0D968E50), UINT32_C(0xD7FF66C3),
10076           UINT32_C(0x5E696D79), UINT32_C(0x499A9BE2), UINT32_C(0xAA52D60D),
10077           UINT32_C(0xCDC289DE), UINT32_C(0x72482C45)},
10078          {UINT32_C(0x7FFAAD3A), UINT32_C(0xC84968F5), UINT32_C(0xF7CD5BED),
10079           UINT32_C(0xEE91304C), UINT32_C(0x0A7CC7C0), UINT32_C(0x68493676),
10080           UINT32_C(0x80023968), UINT32_C(0x3411AFA7)}},
10081         {{UINT32_C(0x6E3294C0), UINT32_C(0xA0AEBC70), UINT32_C(0xDC385E50),
10082           UINT32_C(0x93263942), UINT32_C(0x8467FB06), UINT32_C(0x7B90C002),
10083           UINT32_C(0x38CFD0FF), UINT32_C(0x29477CA4)},
10084          {UINT32_C(0x92A748D5), UINT32_C(0xADC04D81), UINT32_C(0x76CF3AE5),
10085           UINT32_C(0xAE4F309D), UINT32_C(0x4BB2C2FF), UINT32_C(0xBDA34BF0),
10086           UINT32_C(0x368536E4), UINT32_C(0x65138897)}},
10087         {{UINT32_C(0x6FE6D4D6), UINT32_C(0x9CB8F7D6), UINT32_C(0xAF246792),
10088           UINT32_C(0x6C2FFBF5), UINT32_C(0x81524707), UINT32_C(0xD5A4F349),
10089           UINT32_C(0x36766D5E), UINT32_C(0x3AFE45CE)},
10090          {UINT32_C(0x513BA267), UINT32_C(0x41991B49), UINT32_C(0x6C18AA5E),
10091           UINT32_C(0x06EF1EEA), UINT32_C(0x88EA2099), UINT32_C(0x0A517635),
10092           UINT32_C(0xD245B88B), UINT32_C(0x32D2B5E2)}},
10093         {{UINT32_C(0x3F517C5B), UINT32_C(0xAE38CDD5), UINT32_C(0xD878FEEE),
10094           UINT32_C(0x1C94FDC5), UINT32_C(0xBEFCE107), UINT32_C(0xABF7A41D),
10095           UINT32_C(0xD408DFE8), UINT32_C(0x33BF3FE9)},
10096          {UINT32_C(0x947CB8C4), UINT32_C(0x4F2E6FF0), UINT32_C(0xF998C5A0),
10097           UINT32_C(0x3A8E86AB), UINT32_C(0xE359209F), UINT32_C(0x3ADC6ABA),
10098           UINT32_C(0xD9A50051), UINT32_C(0x37A2DE1B)}},
10099         {{UINT32_C(0xE718F6B9), UINT32_C(0x424F4E34), UINT32_C(0x75C58EB6),
10100           UINT32_C(0x50B1A03B), UINT32_C(0x91390E27), UINT32_C(0xB9495314),
10101           UINT32_C(0x880E78D8), UINT32_C(0x4AE0CC3A)},
10102          {UINT32_C(0xF1E4413C), UINT32_C(0x10331AFA), UINT32_C(0xDDFCD2F0),
10103           UINT32_C(0xE7A3E554), UINT32_C(0x0EBF484B), UINT32_C(0x44F6DE85),
10104           UINT32_C(0x895D0F54), UINT32_C(0x6A762A7E)}},
10105         {{UINT32_C(0x8D0558F6), UINT32_C(0x8E606B0A), UINT32_C(0x5C4DD930),
10106           UINT32_C(0xAADA7604), UINT32_C(0xEF4ACAD0), UINT32_C(0x5B2FC7AD),
10107           UINT32_C(0x87F5B6E2), UINT32_C(0x0D969AD0)},
10108          {UINT32_C(0x5974E67B), UINT32_C(0xF9A182B2), UINT32_C(0x23B4009A),
10109           UINT32_C(0xCD8232E7), UINT32_C(0x285BCC3F), UINT32_C(0x3D8F5DDD),
10110           UINT32_C(0xEEE1B9BF), UINT32_C(0x114AC56F)}},
10111         {{UINT32_C(0xAA45085A), UINT32_C(0xD3EA1B56), UINT32_C(0xD314CEDF),
10112           UINT32_C(0x5DE7BB70), UINT32_C(0x7BCCDCFD), UINT32_C(0x8A74384C),
10113           UINT32_C(0x8E0E0367), UINT32_C(0x64B80F8A)},
10114          {UINT32_C(0x48884ED1), UINT32_C(0xA9EA432B), UINT32_C(0x8C0BA810),
10115           UINT32_C(0x51957A8F), UINT32_C(0x39E810E3), UINT32_C(0x9E883400),
10116           UINT32_C(0x28B2051C), UINT32_C(0x0A73ED5A)}},
10117         {{UINT32_C(0x13C30826), UINT32_C(0x655212A3), UINT32_C(0xB73E8660),
10118           UINT32_C(0xAE53668E), UINT32_C(0xFF108CCE), UINT32_C(0x6C33B649),
10119           UINT32_C(0x21D49681), UINT32_C(0x39E0B118)},
10120          {UINT32_C(0x70525312), UINT32_C(0xFE4D2152), UINT32_C(0xFFD18749),
10121           UINT32_C(0x2EDCE32B), UINT32_C(0xB04D3FB8), UINT32_C(0xFED19B1C),
10122           UINT32_C(0x2B225A9D), UINT32_C(0x4DFE216B)}},
10123         {{UINT32_C(0x4C70F8A8), UINT32_C(0x583E8A6C), UINT32_C(0x954A9AE1),
10124           UINT32_C(0xC8206231), UINT32_C(0xB76517B1), UINT32_C(0x9360B592),
10125           UINT32_C(0xEED10CCA), UINT32_C(0x362C5C5C)},
10126          {UINT32_C(0x3D607921), UINT32_C(0x3DBA9595), UINT32_C(0x5A6ECC40),
10127           UINT32_C(0x0188A5D6), UINT32_C(0x6CFF4ADE), UINT32_C(0x0EAB43C1),
10128           UINT32_C(0xDE3347E0), UINT32_C(0x1F3673AE)}},
10129         {{UINT32_C(0x796593EE), UINT32_C(0x7300C4B3), UINT32_C(0xD8D926C3),
10130           UINT32_C(0x607E7E76), UINT32_C(0x77F9FD06), UINT32_C(0x1762CE26),
10131           UINT32_C(0xCEA891EB), UINT32_C(0x0D0478B3)},
10132          {UINT32_C(0x2618B09E), UINT32_C(0xB1129791), UINT32_C(0x33F928C9),
10133           UINT32_C(0x5F9D290D), UINT32_C(0xE6178DB0), UINT32_C(0xE3192631),
10134           UINT32_C(0x08576D3F), UINT32_C(0x21260AC8)}},
10135         {{UINT32_C(0x76968E1C), UINT32_C(0x899DAF2A), UINT32_C(0xF9C2B3E7),
10136           UINT32_C(0x0519DEA9), UINT32_C(0x93D0BD4E), UINT32_C(0x5FDADC38),
10137           UINT32_C(0x43B4D98F), UINT32_C(0x0467BFF7)},
10138          {UINT32_C(0x6F3936C9), UINT32_C(0x651C316C), UINT32_C(0xAF27DF8B),
10139           UINT32_C(0xE757689A), UINT32_C(0xA0FA9188), UINT32_C(0x3AB037EA),
10140           UINT32_C(0xD927B60A), UINT32_C(0x2F8B039B)}},
10141     },
10142     {
10143         {{UINT32_C(0xDE876A70), UINT32_C(0x72211BF5), UINT32_C(0x73D121CE),
10144           UINT32_C(0xA8361631), UINT32_C(0x23D419E4), UINT32_C(0x23852721),
10145           UINT32_C(0xDBD03345), UINT32_C(0x3F56D47E)},
10146          {UINT32_C(0xD6F05BAC), UINT32_C(0xFB0E91A5), UINT32_C(0xAC9D0F46),
10147           UINT32_C(0xA0E02BF6), UINT32_C(0x97F1812F), UINT32_C(0x5ED9EA2C),
10148           UINT32_C(0xEBD5DB5A), UINT32_C(0x172F564F)}},
10149         {{UINT32_C(0x81F11E58), UINT32_C(0xC790E912), UINT32_C(0x99A5DFF7),
10150           UINT32_C(0x14A17630), UINT32_C(0x1627516D), UINT32_C(0xF6F30F2F),
10151           UINT32_C(0xEFCF43B7), UINT32_C(0x522CAD8F)},
10152          {UINT32_C(0x6EA01128), UINT32_C(0xFFADD45E), UINT32_C(0xD61D1964),
10153           UINT32_C(0x5D23234C), UINT32_C(0x2802DF86), UINT32_C(0xE9212C85),
10154           UINT32_C(0x92AA8DA3), UINT32_C(0x0A3D237B)}},
10155         {{UINT32_C(0xE50ED356), UINT32_C(0x2CED05F4), UINT32_C(0xBFFEEF3A),
10156           UINT32_C(0x1CBC7FB1), UINT32_C(0xBE19F0F0), UINT32_C(0x885991B1),
10157           UINT32_C(0xDE44A492), UINT32_C(0x6DED0794)},
10158          {UINT32_C(0x44CBECFC), UINT32_C(0x9967E834), UINT32_C(0x6A792ED1),
10159           UINT32_C(0xB0674A8D), UINT32_C(0xB7DDD557), UINT32_C(0x360E2DE4),
10160           UINT32_C(0x70E95D26), UINT32_C(0x26852A74)}},
10161         {{UINT32_C(0x3A6E2116), UINT32_C(0x8CBC1520), UINT32_C(0xBF285BBE),
10162           UINT32_C(0xF09327DF), UINT32_C(0x4A54D3C5), UINT32_C(0x8C7D9AD5),
10163           UINT32_C(0x6BD2768F), UINT32_C(0x778F54E6)},
10164          {UINT32_C(0x8FF3DBC0), UINT32_C(0x09B489F8), UINT32_C(0xD2871932),
10165           UINT32_C(0x0A0FA7FB), UINT32_C(0xE0A8CEC4), UINT32_C(0xABB9DC38),
10166           UINT32_C(0x21E37A50), UINT32_C(0x2EE092D8)}},
10167         {{UINT32_C(0xAF6D88D8), UINT32_C(0xBB9256E7), UINT32_C(0x0A218927),
10168           UINT32_C(0x3CDCB1CB), UINT32_C(0xF216D6E6), UINT32_C(0x8E5B744A),
10169           UINT32_C(0xBC885AFD), UINT32_C(0x6F0617F2)},
10170          {UINT32_C(0x268397D5), UINT32_C(0xFBA9CDA7), UINT32_C(0x5D4C75D8),
10171           UINT32_C(0xC6154716), UINT32_C(0x43FB2CD2), UINT32_C(0x9ED8D17B),
10172           UINT32_C(0xBE45BC5C), UINT32_C(0x4D0CE3FB)}},
10173         {{UINT32_C(0xA38472F5), UINT32_C(0x4259BB02), UINT32_C(0x15107D0E),
10174           UINT32_C(0xFAFAAE03), UINT32_C(0xCF0CF2B6), UINT32_C(0x2B8E450E),
10175           UINT32_C(0xED887C3A), UINT32_C(0x788674C3)},
10176          {UINT32_C(0x4B3D2EAC), UINT32_C(0x1F3EBD59), UINT32_C(0x75E41B55),
10177           UINT32_C(0x82CB5684), UINT32_C(0xC02BE49A), UINT32_C(0x005AB76B),
10178           UINT32_C(0xF5F90FEE), UINT32_C(0x6F13ADD2)}},
10179         {{UINT32_C(0x7AFA7161), UINT32_C(0x0116374A), UINT32_C(0x2DB7F824),
10180           UINT32_C(0x8A1AE448), UINT32_C(0xDB656A22), UINT32_C(0xD3C0DA12),
10181           UINT32_C(0xB989204D), UINT32_C(0x7B095B95)},
10182          {UINT32_C(0xEF8F21CA), UINT32_C(0x24C35202), UINT32_C(0x2DA5A5A1),
10183           UINT32_C(0x91088DA7), UINT32_C(0xE3F97D68), UINT32_C(0xAAF1944B),
10184           UINT32_C(0x7C884134), UINT32_C(0x245D2848)}},
10185         {{UINT32_C(0x68F5C702), UINT32_C(0xD80C65D6), UINT32_C(0x021A2974),
10186           UINT32_C(0xE2FE245F), UINT32_C(0x3A11899C), UINT32_C(0xFB8520E0),
10187           UINT32_C(0x2BE6BF88), UINT32_C(0x4806D1FA)},
10188          {UINT32_C(0x20ED235F), UINT32_C(0xF6F8C11A), UINT32_C(0x7F0D651E),
10189           UINT32_C(0x52AC1424), UINT32_C(0xDB9CF6D6), UINT32_C(0x44C3C89F),
10190           UINT32_C(0xB2E2E41F), UINT32_C(0x6762516D)}},
10191         {{UINT32_C(0xFDE91600), UINT32_C(0x2743D874), UINT32_C(0xCDF00100),
10192           UINT32_C(0x60975FD5), UINT32_C(0x2D2954F4), UINT32_C(0x78ACC864),
10193           UINT32_C(0x56373454), UINT32_C(0x46B9E602)},
10194          {UINT32_C(0x6F0FB867), UINT32_C(0x7586A970), UINT32_C(0x242DF35A),
10195           UINT32_C(0x888E3677), UINT32_C(0xF1460F62), UINT32_C(0x5A639E79),
10196           UINT32_C(0x55297DBC), UINT32_C(0x1256517E)}},
10197         {{UINT32_C(0x7B9294C3), UINT32_C(0x3F78339B), UINT32_C(0xBCE77012),
10198           UINT32_C(0x5BA765D1), UINT32_C(0x512E39E2), UINT32_C(0xA88E0CD8),
10199           UINT32_C(0xF6BA6A6A), UINT32_C(0x2D63E14B)},
10200          {UINT32_C(0xEA29071B), UINT32_C(0xF849A163), UINT32_C(0x4C0A2E22),
10201           UINT32_C(0xF32519B7), UINT32_C(0x561C35F5), UINT32_C(0xEA5D1315),
10202           UINT32_C(0xD9267DCA), UINT32_C(0x7041F515)}},
10203         {{UINT32_C(0x1FE56E6B), UINT32_C(0xE01E839F), UINT32_C(0x4A93CE88),
10204           UINT32_C(0x3E473D8C), UINT32_C(0x89AAFDAE), UINT32_C(0xC4846ECF),
10205           UINT32_C(0x07D946EA), UINT32_C(0x4111D97A)},
10206          {UINT32_C(0x51A45F02), UINT32_C(0xC20881F6), UINT32_C(0xB9CD841A),
10207           UINT32_C(0x14C2AC95), UINT32_C(0xF2CBD929), UINT32_C(0x2FBE8329),
10208           UINT32_C(0xC812608B), UINT32_C(0x1E8B7469)}},
10209         {{UINT32_C(0x007F0A5D), UINT32_C(0xB36A5D03), UINT32_C(0x5DCF7AF4),
10210           UINT32_C(0xA7E7A1A8), UINT32_C(0xBEB12AFB), UINT32_C(0x7227F4C5),
10211           UINT32_C(0x4D276783), UINT32_C(0x46227792)},
10212          {UINT32_C(0x48403B93), UINT32_C(0x9EA64D4C), UINT32_C(0x0B333ED5),
10213           UINT32_C(0x58EA31BC), UINT32_C(0xC5C93119), UINT32_C(0x2D6DD219),
10214           UINT32_C(0x45069280), UINT32_C(0x385023A7)}},
10215         {{UINT32_C(0xF60C46AF), UINT32_C(0x8AB9B9EA), UINT32_C(0xE8B827C2),
10216           UINT32_C(0xFA1D3F08), UINT32_C(0x1BAD41DB), UINT32_C(0x78C6BFBC),
10217           UINT32_C(0x23BE0C1E), UINT32_C(0x527A0BED)},
10218          {UINT32_C(0x6ACCE641), UINT32_C(0x66212FD2), UINT32_C(0xEE6F78E7),
10219           UINT32_C(0x86125B0D), UINT32_C(0x58552A8C), UINT32_C(0xA2A02718),
10220           UINT32_C(0x7E9605C5), UINT32_C(0x594F2B77)}},
10221         {{UINT32_C(0x88A27989), UINT32_C(0x3FB1F6CF), UINT32_C(0xD96268B8),
10222           UINT32_C(0xBC4962F7), UINT32_C(0xB95E2A36), UINT32_C(0xBD8761E9),
10223           UINT32_C(0x046DEC63), UINT32_C(0x64AB934A)},
10224          {UINT32_C(0x2E53CF1A), UINT32_C(0xC64D1C59), UINT32_C(0x578C5E8C),
10225           UINT32_C(0xC9865A9B), UINT32_C(0x7A0359DE), UINT32_C(0x5ECA6232),
10226           UINT32_C(0xFB4685E5), UINT32_C(0x127DD136)}},
10227         {{UINT32_C(0x1AE320C9), UINT32_C(0xB0F7B071), UINT32_C(0x52525203),
10228           UINT32_C(0x09BF89BB), UINT32_C(0x709C5692), UINT32_C(0x97B20027),
10229           UINT32_C(0xEDBF6175), UINT32_C(0x16A62485)},
10230          {UINT32_C(0x394C50F9), UINT32_C(0x32C18836), UINT32_C(0xD3B98C19),
10231           UINT32_C(0x7D99468F), UINT32_C(0x2E8D2729), UINT32_C(0x8EBE5096),
10232           UINT32_C(0xE655F093), UINT32_C(0x4E75B3CC)}},
10233         {{UINT32_C(0x9EAE827E), UINT32_C(0xCBEFD1A2), UINT32_C(0xFBF4630D),
10234           UINT32_C(0xDE2D1234), UINT32_C(0x96086CDA), UINT32_C(0x1B3ADCF8),
10235           UINT32_C(0x2EA6CBA7), UINT32_C(0x43D3960E)},
10236          {UINT32_C(0x1CB5A0F7), UINT32_C(0x18321D1D), UINT32_C(0x47BEABB4),
10237           UINT32_C(0xDC94C6F9), UINT32_C(0x75AF6AB7), UINT32_C(0xFBACC6D5),
10238           UINT32_C(0x89B98E86), UINT32_C(0x0EE5D357)}},
10239     },
10240     {
10241         {{UINT32_C(0x062E0994), UINT32_C(0x3F01B4AA), UINT32_C(0x5C952259),
10242           UINT32_C(0x994B28B0), UINT32_C(0x0CDEEC70), UINT32_C(0x2678F8B8),
10243           UINT32_C(0x212436F3), UINT32_C(0x4D06AF84)},
10244          {UINT32_C(0x1CF27A98), UINT32_C(0xE9DF52FD), UINT32_C(0x0B7718F7),
10245           UINT32_C(0xD56B9FD1), UINT32_C(0xD9AEDA0D), UINT32_C(0x728BE624),
10246           UINT32_C(0x1A646888), UINT32_C(0x09871088)}},
10247         {{UINT32_C(0x9B586B13), UINT32_C(0xB1BC922D), UINT32_C(0x3CA3B1BA),
10248           UINT32_C(0x6C084C54), UINT32_C(0xCF322698), UINT32_C(0x54D196C7),
10249           UINT32_C(0x85D527E1), UINT32_C(0x06EC3A55)},
10250          {UINT32_C(0x2A57CAA1), UINT32_C(0x06918710), UINT32_C(0x65FD0F6B),
10251           UINT32_C(0x6AEAC07D), UINT32_C(0x0F512F84), UINT32_C(0xB66A34D7),
10252           UINT32_C(0xA44E6452), UINT32_C(0x3860C002)}},
10253         {{UINT32_C(0x0881608A), UINT32_C(0x17263B26), UINT32_C(0x56C18A7A),
10254           UINT32_C(0x78D556AA), UINT32_C(0xAC3A47AB), UINT32_C(0xA0826A1C),
10255           UINT32_C(0xB6933FF5), UINT32_C(0x61686A58)},
10256          {UINT32_C(0xDBCF2C4F), UINT32_C(0xEA9D8771), UINT32_C(0x6AB00426),
10257           UINT32_C(0x1C66EB02), UINT32_C(0x401C466A), UINT32_C(0xF8DAED2B),
10258           UINT32_C(0xDAAE8040), UINT32_C(0x1ED0A99A)}},
10259         {{UINT32_C(0x7208E58A), UINT32_C(0x31EFFC4B), UINT32_C(0xB4E4319E),
10260           UINT32_C(0x28868456), UINT32_C(0xD46AC4DA), UINT32_C(0x1059C249),
10261           UINT32_C(0x2279B362), UINT32_C(0x3589D212)},
10262          {UINT32_C(0x45552E92), UINT32_C(0xB28B8FAD), UINT32_C(0xC3AB8098),
10263           UINT32_C(0xC9E32541), UINT32_C(0xF14B35A1), UINT32_C(0x82604904),
10264           UINT32_C(0xDB68C214), UINT32_C(0x1E64A89F)}},
10265         {{UINT32_C(0xAB6947AF), UINT32_C(0xDF0E223D), UINT32_C(0x771670D0),
10266           UINT32_C(0xE74EF1D6), UINT32_C(0xF429F03B), UINT32_C(0x70A9AD21),
10267           UINT32_C(0x1385B8DC), UINT32_C(0x7CB1FA1F)},
10268          {UINT32_C(0x69053D24), UINT32_C(0x25ABC0A7), UINT32_C(0x6369D02E),
10269           UINT32_C(0x207FE30A), UINT32_C(0xC6E4EC2C), UINT32_C(0x57B76E3C),
10270           UINT32_C(0xB927CAB2), UINT32_C(0x2E03D2E3)}},
10271         {{UINT32_C(0x622D57AE), UINT32_C(0xEFA377FF), UINT32_C(0xA885951A),
10272           UINT32_C(0x41532F56), UINT32_C(0xCC69B9A8), UINT32_C(0x5ED89AA7),
10273           UINT32_C(0x295F5E84), UINT32_C(0x60BFF2EC)},
10274          {UINT32_C(0x1E5C3041), UINT32_C(0x411D65C3), UINT32_C(0x4B7772F8),
10275           UINT32_C(0xDB533F8B), UINT32_C(0x3BDD4AEA), UINT32_C(0x72CADEB6),
10276           UINT32_C(0x7C49E454), UINT32_C(0x0EC79DF2)}},
10277         {{UINT32_C(0x81D0B84B), UINT32_C(0x0C39332C), UINT32_C(0x95FF472B),
10278           UINT32_C(0xA76A9A3A), UINT32_C(0x31DB2BA6), UINT32_C(0xD12FEB99),
10279           UINT32_C(0x3683E53A), UINT32_C(0x4AAB9222)},
10280          {UINT32_C(0x24FC6271), UINT32_C(0x56CB18AF), UINT32_C(0x2544C72D),
10281           UINT32_C(0x671581D6), UINT32_C(0xFBD6F4D1), UINT32_C(0xCD136492),
10282           UINT32_C(0x3579EE09), UINT32_C(0x6C202318)}},
10283         {{UINT32_C(0xC103C348), UINT32_C(0xEDC5AF02), UINT32_C(0x155A103D),
10284           UINT32_C(0xDA32344E), UINT32_C(0xB0D1377E), UINT32_C(0xFF3A7679),
10285           UINT32_C(0x68F02750), UINT32_C(0x16091972)},
10286          {UINT32_C(0xD9E9C143), UINT32_C(0xD4C6360D), UINT32_C(0x968EE990),
10287           UINT32_C(0xE0ABA0EF), UINT32_C(0x97E4C9AE), UINT32_C(0x57816878),
10288           UINT32_C(0x9D63E32D), UINT32_C(0x5A4D167B)}},
10289         {{UINT32_C(0x50E25802), UINT32_C(0xB04BA525), UINT32_C(0x66912F15),
10290           UINT32_C(0x011DA36E), UINT32_C(0x19E0A182), UINT32_C(0x08D8B680),
10291           UINT32_C(0x2E462B0F), UINT32_C(0x66AA4AE8)},
10292          {UINT32_C(0xE0B9D283), UINT32_C(0x3227C3A6), UINT32_C(0xF2B2B096),
10293           UINT32_C(0x9BF8C4D0), UINT32_C(0xBA809EB7), UINT32_C(0x1E51416C),
10294           UINT32_C(0x2A67D346), UINT32_C(0x68411B75)}},
10295         {{UINT32_C(0x37A67F3B), UINT32_C(0xE55B1348), UINT32_C(0x96484391),
10296           UINT32_C(0x5E32D73C), UINT32_C(0x6256B91E), UINT32_C(0xC3F804D5),
10297           UINT32_C(0x03B0783B), UINT32_C(0x67F17A47)},
10298          {UINT32_C(0xDD2334AD), UINT32_C(0x2010EFEB), UINT32_C(0xB10FF052),
10299           UINT32_C(0xBD9965B5), UINT32_C(0xF58ACA52), UINT32_C(0x519CDA6D),
10300           UINT32_C(0x2FD3D394), UINT32_C(0x045BEEBE)}},
10301         {{UINT32_C(0xEA271BCD), UINT32_C(0x81722E2C), UINT32_C(0x0A4F1342),
10302           UINT32_C(0x393C082E), UINT32_C(0x53B345CE), UINT32_C(0x573F7CD5),
10303           UINT32_C(0x3D7B4292), UINT32_C(0x7AD71FE2)},
10304          {UINT32_C(0xDA8BECB8), UINT32_C(0xDA406D0A), UINT32_C(0x82FE66BC),
10305           UINT32_C(0x14FD41CA), UINT32_C(0x0A91DFFC), UINT32_C(0x80A41062),
10306           UINT32_C(0xF4F0CDEB), UINT32_C(0x33E38E10)}},
10307         {{UINT32_C(0x2529532C), UINT32_C(0x0234BF38), UINT32_C(0xA76CAE3B),
10308           UINT32_C(0x9F5D6342), UINT32_C(0xB3C50442), UINT32_C(0xC9944CB3),
10309           UINT32_C(0x8ABFAF17), UINT32_C(0x51752DF0)},
10310          {UINT32_C(0xA37B13FB), UINT32_C(0x2BFA58C4), UINT32_C(0xDDB14951),
10311           UINT32_C(0x19F80FDE), UINT32_C(0x7DCB927B), UINT32_C(0xDC7026AA),
10312           UINT32_C(0xAAB9FCBA), UINT32_C(0x57907272)}},
10313         {{UINT32_C(0xF3C046C2), UINT32_C(0xCE38712D), UINT32_C(0x47B29D0E),
10314           UINT32_C(0x21D1FDB0), UINT32_C(0xCD96D414), UINT32_C(0x7F746E0E),
10315           UINT32_C(0x636CFEA4), UINT32_C(0x72F07B52)},
10316          {UINT32_C(0xECE6382D), UINT32_C(0x0D8FE94F), UINT32_C(0x24229CA4),
10317           UINT32_C(0x9BFB4CBA), UINT32_C(0xE54388B0), UINT32_C(0xFAE55B77),
10318           UINT32_C(0xA188299F), UINT32_C(0x074EBC32)}},
10319         {{UINT32_C(0xE21DCCA2), UINT32_C(0x8AF2EBCD), UINT32_C(0x377487F2),
10320           UINT32_C(0x9916A6B6), UINT32_C(0xD8051D40), UINT32_C(0x607DC19A),
10321           UINT32_C(0x419DDE12), UINT32_C(0x7DFD53F4)},
10322          {UINT32_C(0x9AD07924), UINT32_C(0xD17D0D61), UINT32_C(0x173E266B),
10323           UINT32_C(0x14F7CE0F), UINT32_C(0x0281C9EB), UINT32_C(0x687FB853),
10324           UINT32_C(0x3361B273), UINT32_C(0x6B35CC1A)}},
10325         {{UINT32_C(0x16E02DE3), UINT32_C(0x7CD6369E), UINT32_C(0x1F35DFBC),
10326           UINT32_C(0x118EE0B1), UINT32_C(0x98B3EE60), UINT32_C(0x7D8C8DBD),
10327           UINT32_C(0x8D29EA17), UINT32_C(0x039806FC)},
10328          {UINT32_C(0xEC2C2597), UINT32_C(0x3C473872), UINT32_C(0x5E4EF521),
10329           UINT32_C(0x81294AF4), UINT32_C(0xC22A9D7C), UINT32_C(0x5ED048DB),
10330           UINT32_C(0x0A08C4D4), UINT32_C(0x3879E95B)}},
10331         {{UINT32_C(0x96A864FE), UINT32_C(0x0206E47F), UINT32_C(0xA55D0631),
10332           UINT32_C(0xC94F137A), UINT32_C(0x8E8408F8), UINT32_C(0x9C1B3D29),
10333           UINT32_C(0xB9193A5E), UINT32_C(0x150A4046)},
10334          {UINT32_C(0xCB1ADF21), UINT32_C(0x4E8F9345), UINT32_C(0x7BD5E1F9),
10335           UINT32_C(0x6ED14D8A), UINT32_C(0x60809F68), UINT32_C(0x70825329),
10336           UINT32_C(0xFA85A06C), UINT32_C(0x0D2F1C3B)}},
10337     },
10338     {
10339         {{UINT32_C(0xB5C810C3), UINT32_C(0x3C5ABE75), UINT32_C(0xE28F1E26),
10340           UINT32_C(0xEA2C3EF9), UINT32_C(0x8BF68280), UINT32_C(0xEEB1C568),
10341           UINT32_C(0x7AE69110), UINT32_C(0x5A165CEB)},
10342          {UINT32_C(0x44550DF1), UINT32_C(0xE36C6460), UINT32_C(0xDB909258),
10343           UINT32_C(0x6FB4B108), UINT32_C(0x17D4D8C5), UINT32_C(0xBFA14277),
10344           UINT32_C(0x927976D8), UINT32_C(0x744CAF23)}},
10345         {{UINT32_C(0x47EA55C7), UINT32_C(0xCBE70DF9), UINT32_C(0x535457AE),
10346           UINT32_C(0x8F8119AE), UINT32_C(0x7DAFD732), UINT32_C(0x1E3C69EC),
10347           UINT32_C(0x39D409A2), UINT32_C(0x1A2E162D)},
10348          {UINT32_C(0x5F81C227), UINT32_C(0xBD7576A1), UINT32_C(0xC86AC2C3),
10349           UINT32_C(0xA040AF9E), UINT32_C(0xC10FC749), UINT32_C(0x5690C059),
10350           UINT32_C(0x49CFAEC6), UINT32_C(0x20B26E88)}},
10351         {{UINT32_C(0xE3EF781E), UINT32_C(0x87AEBD1E), UINT32_C(0x1609A1F0),
10352           UINT32_C(0xBC794A62), UINT32_C(0x26E7F61B), UINT32_C(0x96D83142),
10353           UINT32_C(0xFC51D17D), UINT32_C(0x5198577F)},
10354          {UINT32_C(0x8E6D0124), UINT32_C(0xBFB5FAE2), UINT32_C(0xFFD5BD72),
10355           UINT32_C(0x91A7172B), UINT32_C(0x02832847), UINT32_C(0x474B0154),
10356           UINT32_C(0x59827FEB), UINT32_C(0x4BAF0B4C)}},
10357         {{UINT32_C(0xBA090294), UINT32_C(0x5EADAA8E), UINT32_C(0x11A6E9FA),
10358           UINT32_C(0x51401BC9), UINT32_C(0x1D2594CD), UINT32_C(0x78F11758),
10359           UINT32_C(0x82D203C2), UINT32_C(0x1811AD30)},
10360          {UINT32_C(0x53FD07CC), UINT32_C(0x554CC39A), UINT32_C(0xC7A05601),
10361           UINT32_C(0x055FC983), UINT32_C(0xD5A80B4B), UINT32_C(0xB3B34E95),
10362           UINT32_C(0x1819BC16), UINT32_C(0x72B4CF94)}},
10363         {{UINT32_C(0x514FAFD0), UINT32_C(0x0750E4F0), UINT32_C(0xAD61C7B1),
10364           UINT32_C(0x297D27E6), UINT32_C(0xA2D5D410), UINT32_C(0x701D743F),
10365           UINT32_C(0xC83B55C9), UINT32_C(0x535DD97B)},
10366          {UINT32_C(0x1CB11BB0), UINT32_C(0x2EE96DDE), UINT32_C(0x0914450F),
10367           UINT32_C(0xECEA32EA), UINT32_C(0x4CDBDA6A), UINT32_C(0x4FB81236),
10368           UINT32_C(0x233C8063), UINT32_C(0x5B75B6B2)}},
10369         {{UINT32_C(0xD69D6C6A), UINT32_C(0xF0A934A6), UINT32_C(0x3CC80AC9),
10370           UINT32_C(0x313E8977), UINT32_C(0x1E428B71), UINT32_C(0x74692B17),
10371           UINT32_C(0xE1BE662D), UINT32_C(0x0474FEFC)},
10372          {UINT32_C(0xAFFBF61B), UINT32_C(0xAA2FF6DB), UINT32_C(0x776983AF),
10373           UINT32_C(0xCE1594E1), UINT32_C(0x4D5A2596), UINT32_C(0xF00C665B),
10374           UINT32_C(0x7D414B9A), UINT32_C(0x30DD2449)}},
10375         {{UINT32_C(0xACC44AB3), UINT32_C(0xEF862DA2), UINT32_C(0x6EE7A44A),
10376           UINT32_C(0xBAD6857F), UINT32_C(0xD2F9027E), UINT32_C(0x57674BF9),
10377           UINT32_C(0x2ABF816E), UINT32_C(0x4D771CC3)},
10378          {UINT32_C(0xAC0F1348), UINT32_C(0x27BEFC18), UINT32_C(0x5E4F1202),
10379           UINT32_C(0xD83112EF), UINT32_C(0x8E9AAAE5), UINT32_C(0x3571BDE3),
10380           UINT32_C(0xC1379B13), UINT32_C(0x07284830)}},
10381         {{UINT32_C(0x72A8890C), UINT32_C(0xA4C2F36F), UINT32_C(0x5824B392),
10382           UINT32_C(0x22DF0E81), UINT32_C(0x5E720240), UINT32_C(0x50FAD77F),
10383           UINT32_C(0x03278F96), UINT32_C(0x1D152A69)},
10384          {UINT32_C(0xA7D80F17), UINT32_C(0x25A3E92E), UINT32_C(0x7EF32666),
10385           UINT32_C(0xBBF85B32), UINT32_C(0x27222E52), UINT32_C(0xBBB55687),
10386           UINT32_C(0x7582FE42), UINT32_C(0x756D22A6)}},
10387         {{UINT32_C(0x9BC9EAED), UINT32_C(0x0AE7493A), UINT32_C(0x0DDBB275),
10388           UINT32_C(0x9185F53F), UINT32_C(0xC3DFDBA7), UINT32_C(0x1585D068),
10389           UINT32_C(0x562E2455), UINT32_C(0x543208A1)},
10390          {UINT32_C(0xCBCF9535), UINT32_C(0x4C417D81), UINT32_C(0xE35DD6ED),
10391           UINT32_C(0xD2DC38D3), UINT32_C(0x346F03A4), UINT32_C(0x9DF1E014),
10392           UINT32_C(0xF0E772A6), UINT32_C(0x65736E3F)}},
10393         {{UINT32_C(0xCFB7FF06), UINT32_C(0x58684A7B), UINT32_C(0xC58E6316),
10394           UINT32_C(0x72CC4AFE), UINT32_C(0xA8BB508A), UINT32_C(0x2CA9BF30),
10395           UINT32_C(0xE2044C8C), UINT32_C(0x61576519)},
10396          {UINT32_C(0x8FF6D2B5), UINT32_C(0xE78FAD3D), UINT32_C(0xA934C7B2),
10397           UINT32_C(0x6E5B839F), UINT32_C(0xFAFA9F9B), UINT32_C(0xC1F3D367),
10398           UINT32_C(0xF8B2AFA4), UINT32_C(0x637CC398)}},
10399         {{UINT32_C(0xFE2B2639), UINT32_C(0xD6FC1806), UINT32_C(0x9E98A7F2),
10400           UINT32_C(0x1DB199B4), UINT32_C(0xC794F900), UINT32_C(0x0508763D),
10401           UINT32_C(0x3232E5AC), UINT32_C(0x363F1F7D)},
10402          {UINT32_C(0xBBDBB351), UINT32_C(0xDCF2AD74), UINT32_C(0x5A506BC6),
10403           UINT32_C(0x91F2EAF1), UINT32_C(0xB850088B), UINT32_C(0xBDE8459E),
10404           UINT32_C(0x3E1135AF), UINT32_C(0x52DF883B)}},
10405         {{UINT32_C(0xF93779DC), UINT32_C(0x12FD053A), UINT32_C(0x9E319E46),
10406           UINT32_C(0x3E3D8728), UINT32_C(0xE5E360AE), UINT32_C(0x4D631005),
10407           UINT32_C(0xB1B29A30), UINT32_C(0x4A8B5683)},
10408          {UINT32_C(0xA8CA45EF), UINT32_C(0x305E5E53), UINT32_C(0xC2914843),
10409           UINT32_C(0x59EACB45), UINT32_C(0x1988ECEA), UINT32_C(0x83677B7A),
10410           UINT32_C(0xD6FD53E8), UINT32_C(0x63D9CD36)}},
10411         {{UINT32_C(0xB77EB45F), UINT32_C(0xDF2DACF2), UINT32_C(0x55BBA70E),
10412           UINT32_C(0x3C1303E3), UINT32_C(0x4526A06C), UINT32_C(0x5AB8EB42),
10413           UINT32_C(0x7FE06BBC), UINT32_C(0x4D4FD216)},
10414          {UINT32_C(0xE1486ABC), UINT32_C(0x98C5ADCF), UINT32_C(0x07F86F3A),
10415           UINT32_C(0x9A503BFF), UINT32_C(0x56282E44), UINT32_C(0x7CEBAECB),
10416           UINT32_C(0x1F230DA0), UINT32_C(0x4FB09037)}},
10417         {{UINT32_C(0x27210752), UINT32_C(0xD1A37384), UINT32_C(0x02CF1C74),
10418           UINT32_C(0xD10794D6), UINT32_C(0x820CC08C), UINT32_C(0x48A2095A),
10419           UINT32_C(0xE3284B9D), UINT32_C(0x6DCDDE2E)},
10420          {UINT32_C(0x5D40510D), UINT32_C(0xB8C7203E), UINT32_C(0x5385E3A7),
10421           UINT32_C(0x957E8982), UINT32_C(0xE27D7C13), UINT32_C(0xD220BE2F),
10422           UINT32_C(0x7B471B5B), UINT32_C(0x2D104AC5)}},
10423         {{UINT32_C(0xBA0AFA8D), UINT32_C(0x3B31D52B), UINT32_C(0xDCC85F88),
10424           UINT32_C(0xFA9639F5), UINT32_C(0x8861DDD7), UINT32_C(0x15014637),
10425           UINT32_C(0x7B5443B0), UINT32_C(0x31C222DB)},
10426          {UINT32_C(0xC3CDD689), UINT32_C(0xE2618546), UINT32_C(0xD528A130),
10427           UINT32_C(0x7F3FB754), UINT32_C(0xAC5FAF99), UINT32_C(0xA0915810),
10428           UINT32_C(0xE9899CE5), UINT32_C(0x3863B890)}},
10429         {{UINT32_C(0x579C4353), UINT32_C(0xBDD42CA3), UINT32_C(0x4D65CB5B),
10430           UINT32_C(0xAD30567D), UINT32_C(0x6D91810B), UINT32_C(0x0E343F21),
10431           UINT32_C(0x42E19816), UINT32_C(0x65E0092D)},
10432          {UINT32_C(0xF84E8C8E), UINT32_C(0x76154DCC), UINT32_C(0x0BA4AE59),
10433           UINT32_C(0xBA147CA8), UINT32_C(0x56A1A71E), UINT32_C(0xCA8085E7),
10434           UINT32_C(0x1A158536), UINT32_C(0x1D90B4B0)}},
10435     },
10436     {
10437         {{UINT32_C(0xF8B6C26A), UINT32_C(0x5C4B7438), UINT32_C(0x645BBE80),
10438           UINT32_C(0x0C17A41B), UINT32_C(0x40CF3D85), UINT32_C(0xA386062D),
10439           UINT32_C(0xE78F776D), UINT32_C(0x563E42D2)},
10440          {UINT32_C(0x1F07459B), UINT32_C(0x4BB8E356), UINT32_C(0x75D222CD),
10441           UINT32_C(0xF01A24B7), UINT32_C(0x24CF3F61), UINT32_C(0xBE3D032B),
10442           UINT32_C(0x0AD5F3A3), UINT32_C(0x759B0167)}},
10443         {{UINT32_C(0x7D201AAB), UINT32_C(0x2F5AEBD1), UINT32_C(0xC0AE02AD),
10444           UINT32_C(0x7B14CBEE), UINT32_C(0xEDC6388B), UINT32_C(0xB9B54430),
10445           UINT32_C(0xB622E01F), UINT32_C(0x69E713FB)},
10446          {UINT32_C(0xC5361565), UINT32_C(0x4630EE8E), UINT32_C(0x5C8FB479),
10447           UINT32_C(0x6705961E), UINT32_C(0x07C2AA45), UINT32_C(0x125CC97E),
10448           UINT32_C(0x25AE3B12), UINT32_C(0x4BC459F4)}},
10449         {{UINT32_C(0x28CF94E4), UINT32_C(0xEF025496), UINT32_C(0x9DB24DE6),
10450           UINT32_C(0x04CFAB25), UINT32_C(0xC62254EF), UINT32_C(0x52B8C734),
10451           UINT32_C(0x568AB164), UINT32_C(0x0F2FE922)},
10452          {UINT32_C(0xE3F39B40), UINT32_C(0x48551A05), UINT32_C(0x31A7C7F6),
10453           UINT32_C(0x4A36865F), UINT32_C(0x840441AE), UINT32_C(0x4486512C),
10454           UINT32_C(0x8C7C4B4D), UINT32_C(0x559C6CAF)}},
10455         {{UINT32_C(0x0F103030), UINT32_C(0xFCC0D1DA), UINT32_C(0x39CD584E),
10456           UINT32_C(0x7A9F1D55), UINT32_C(0x681D0D37), UINT32_C(0x3EFB9B94),
10457           UINT32_C(0x4D842332), UINT32_C(0x3AE97CCD)},
10458          {UINT32_C(0x3C03676B), UINT32_C(0x85A8ECE1), UINT32_C(0x3AD435A1),
10459           UINT32_C(0x030F8775), UINT32_C(0x7F2D73B5), UINT32_C(0xF6019B4D),
10460           UINT32_C(0x2F14F911), UINT32_C(0x6B77E31A)}},
10461         {{UINT32_C(0x9186C671), UINT32_C(0x65C8161B), UINT32_C(0xCDFF2F8C),
10462           UINT32_C(0x412C3CC7), UINT32_C(0x2C2FEA33), UINT32_C(0xBFFC1719),
10463           UINT32_C(0xC3675845), UINT32_C(0x75DCF68B)},
10464          {UINT32_C(0x3B23D576), UINT32_C(0x0476AFBF), UINT32_C(0x19315F79),
10465           UINT32_C(0xB20CAEE2), UINT32_C(0x0885471A), UINT32_C(0x1BC2A859),
10466           UINT32_C(0xC328279C), UINT32_C(0x410FF6CF)}},
10467         {{UINT32_C(0x60569D94), UINT32_C(0x327394D9), UINT32_C(0x6EA39D95),
10468           UINT32_C(0xFF2AEB6A), UINT32_C(0xEA0CA3AE), UINT32_C(0x1BED71E8),
10469           UINT32_C(0x21072A94), UINT32_C(0x1000A81E)},
10470          {UINT32_C(0x73C02416), UINT32_C(0x368EA229), UINT32_C(0x0A4941BC),
10471           UINT32_C(0xDF5B2A42), UINT32_C(0xD0D40B3A), UINT32_C(0x4FFDC7B8),
10472           UINT32_C(0x48ABAB4E), UINT32_C(0x7B2C73F1)}},
10473         {{UINT32_C(0x81EE1072), UINT32_C(0x90FE34E4), UINT32_C(0x310E13D8),
10474           UINT32_C(0xAE7A2FF4), UINT32_C(0xCAB3927C), UINT32_C(0x6213D3B1),
10475           UINT32_C(0x7DC7E9EF), UINT32_C(0x44936FBD)},
10476          {UINT32_C(0x23A1BDBE), UINT32_C(0x3B898EF3), UINT32_C(0x54CC7B1D),
10477           UINT32_C(0x3FA6C6A0), UINT32_C(0xC6AC54F2), UINT32_C(0x41BCC3B5),
10478           UINT32_C(0xDC10AE39), UINT32_C(0x1AB5D168)}},
10479         {{UINT32_C(0xFEAF67A6), UINT32_C(0x1AED113C), UINT32_C(0x342AC459),
10480           UINT32_C(0x04E3C7A1), UINT32_C(0x7A99DFBC), UINT32_C(0x65A39278),
10481           UINT32_C(0x642329FF), UINT32_C(0x03ECBC6B)},
10482          {UINT32_C(0xA6A4421A), UINT32_C(0x799F4EC5), UINT32_C(0xBEE18B3C),
10483           UINT32_C(0x44522C26), UINT32_C(0x1975C4BB), UINT32_C(0x1C7BFF15),
10484           UINT32_C(0xE6A27857), UINT32_C(0x0FAA03BE)}},
10485         {{UINT32_C(0x0743FF7B), UINT32_C(0x173AB9E0), UINT32_C(0x2CFC95AE),
10486           UINT32_C(0xB11187AE), UINT32_C(0x9C112049), UINT32_C(0xCA81BB2E),
10487           UINT32_C(0xC03555D5), UINT32_C(0x6B811DB6)},
10488          {UINT32_C(0x4FE32256), UINT32_C(0x76C1FC14), UINT32_C(0xD0E47C4E),
10489           UINT32_C(0xDA8C5A96), UINT32_C(0x29FDB01C), UINT32_C(0xB645D413),
10490           UINT32_C(0xAC39502A), UINT32_C(0x78898447)}},
10491         {{UINT32_C(0x9BF44B35), UINT32_C(0x4285FF32), UINT32_C(0xE3358C7F),
10492           UINT32_C(0x207F9029), UINT32_C(0x63BAF4CE), UINT32_C(0x0FE8F032),
10493           UINT32_C(0xFF15E1F7), UINT32_C(0x698A0398)},
10494          {UINT32_C(0x7E572DF6), UINT32_C(0x54874843), UINT32_C(0x9F43C07B),
10495           UINT32_C(0x74683519), UINT32_C(0x0A433D6A), UINT32_C(0x47BAB49E),
10496           UINT32_C(0xFAB5C858), UINT32_C(0x09ED8740)}},
10497         {{UINT32_C(0x1F6CA820), UINT32_C(0x8AA5E5C9), UINT32_C(0xD3C25BEC),
10498           UINT32_C(0xAD290A94), UINT32_C(0x3BA255F0), UINT32_C(0xDC4C67BF),
10499           UINT32_C(0x1DEDD8A9), UINT32_C(0x0D7EF7D9)},
10500          {UINT32_C(0x5EEFD1C3), UINT32_C(0x0831A26F), UINT32_C(0x04483E0C),
10501           UINT32_C(0x78CA66F5), UINT32_C(0x2FAAC15A), UINT32_C(0x9D5A5612),
10502           UINT32_C(0x5D6FACDB), UINT32_C(0x43B0C7E7)}},
10503         {{UINT32_C(0x4503899D), UINT32_C(0x34BA537C), UINT32_C(0x2AF8ED3B),
10504           UINT32_C(0x9DEBC8F5), UINT32_C(0x84F416E6), UINT32_C(0x396995E9),
10505           UINT32_C(0xC7BCE392), UINT32_C(0x77F10FED)},
10506          {UINT32_C(0x1F8AF262), UINT32_C(0x065CCB72), UINT32_C(0xD2F00FC4),
10507           UINT32_C(0xE220ED60), UINT32_C(0x5EE25B46), UINT32_C(0x41A5FB06),
10508           UINT32_C(0xDD9070B1), UINT32_C(0x22505574)}},
10509         {{UINT32_C(0x44BFC5C0), UINT32_C(0x571FF151), UINT32_C(0x3138363C),
10510           UINT32_C(0xBE2558B8), UINT32_C(0x605E356C), UINT32_C(0xB2211ABD),
10511           UINT32_C(0x176C5F53), UINT32_C(0x0B6435DA)},
10512          {UINT32_C(0x8DCF484E), UINT32_C(0xF18C917C), UINT32_C(0xCD93D65F),
10513           UINT32_C(0x45D4120C), UINT32_C(0x190AE7F8), UINT32_C(0xEBB0BF9C),
10514           UINT32_C(0x8D8C8D5A), UINT32_C(0x3D403DE2)}},
10515         {{UINT32_C(0xBE656644), UINT32_C(0xCDE760B4), UINT32_C(0x2D21DBC5),
10516           UINT32_C(0x99DC5E6D), UINT32_C(0xB6232D08), UINT32_C(0x644FCAF3),
10517           UINT32_C(0x859341E3), UINT32_C(0x52955488)},
10518          {UINT32_C(0x25763919), UINT32_C(0x3AB4580D), UINT32_C(0x4EF66999),
10519           UINT32_C(0x82AB0C53), UINT32_C(0x0180663E), UINT32_C(0xBD395C74),
10520           UINT32_C(0xB4756474), UINT32_C(0x07974F1A)}},
10521         {{UINT32_C(0x31588EA6), UINT32_C(0x8C15CFE7), UINT32_C(0xF36C882D),
10522           UINT32_C(0x9629060E), UINT32_C(0x862B080D), UINT32_C(0xDF8E8E9E),
10523           UINT32_C(0xD7A0C5BE), UINT32_C(0x0BD36B48)},
10524          {UINT32_C(0x76DA047B), UINT32_C(0xEBD0C6C9), UINT32_C(0xBB94FD5A),
10525           UINT32_C(0x4F0F08AB), UINT32_C(0x74910D9F), UINT32_C(0x33D41A4E),
10526           UINT32_C(0xA9583754), UINT32_C(0x3D6F8D0B)}},
10527         {{UINT32_C(0x4E4FC72E), UINT32_C(0xEC4C896E), UINT32_C(0x002ECE31),
10528           UINT32_C(0xB111210C), UINT32_C(0x2AF11E21), UINT32_C(0x7204D937),
10529           UINT32_C(0x5D0509E9), UINT32_C(0x59B9C1EC)},
10530          {UINT32_C(0xF9D5BBC0), UINT32_C(0xBC97644C), UINT32_C(0x31B4E869),
10531           UINT32_C(0x25B123AF), UINT32_C(0x5A6CAAB0), UINT32_C(0x091D7AEC),
10532           UINT32_C(0xECC911C4), UINT32_C(0x340B9E80)}},
10533     },
10534     {
10535         {{UINT32_C(0xEC208406), UINT32_C(0xE8036B20), UINT32_C(0x214CEB5A),
10536           UINT32_C(0xAF46A05A), UINT32_C(0x46CC8379), UINT32_C(0x8672084A),
10537           UINT32_C(0x04BA7885), UINT32_C(0x7DE0A42F)},
10538          {UINT32_C(0xC9D3F32A), UINT32_C(0xB772BEDC), UINT32_C(0x534B1520),
10539           UINT32_C(0x7DAE3680), UINT32_C(0xEC7120CC), UINT32_C(0x04CD6203),
10540           UINT32_C(0xB4E99780), UINT32_C(0x032F88E3)}},
10541         {{UINT32_C(0xE4A0897E), UINT32_C(0xB34BDA5C), UINT32_C(0x379B2480),
10542           UINT32_C(0xF7748B26), UINT32_C(0xB2D97522), UINT32_C(0xF47F6646),
10543           UINT32_C(0xF9641DB9), UINT32_C(0x66AD8DE1)},
10544          {UINT32_C(0xD1BF09C0), UINT32_C(0x0F8EB919), UINT32_C(0xB95DC052),
10545           UINT32_C(0x7853BB4E), UINT32_C(0x62B1FD4A), UINT32_C(0xBE7EE13D),
10546           UINT32_C(0xDC7CE53E), UINT32_C(0x2FF7EDC5)}},
10547         {{UINT32_C(0xEE81DF35), UINT32_C(0xE1009AA0), UINT32_C(0x61D0798B),
10548           UINT32_C(0x14972F02), UINT32_C(0xF1EA1A6A), UINT32_C(0x5A6831A0),
10549           UINT32_C(0x0CAB301A), UINT32_C(0x1DBABA3D)},
10550          {UINT32_C(0x157D5213), UINT32_C(0x421270E2), UINT32_C(0x6407B790),
10551           UINT32_C(0xA37BEA95), UINT32_C(0x103A6073), UINT32_C(0xEAD56B1F),
10552           UINT32_C(0xBAD909F1), UINT32_C(0x27534624)}},
10553         {{UINT32_C(0xC2621EF1), UINT32_C(0xC92D2209), UINT32_C(0x1D3AD3F3),
10554           UINT32_C(0x450710C3), UINT32_C(0x19E481AD), UINT32_C(0x8CFB8D6C),
10555           UINT32_C(0xE6DB01BD), UINT32_C(0x35CACDAE)},
10556          {UINT32_C(0x7CDD5B01), UINT32_C(0x2DA4A1D8), UINT32_C(0x0F55BA11),
10557           UINT32_C(0x3E40C751), UINT32_C(0xB15C162D), UINT32_C(0xA91D9EE7),
10558           UINT32_C(0x11DBA157), UINT32_C(0x13AD3BE5)}},
10559         {{UINT32_C(0xE72F64F5), UINT32_C(0xAE417DB0), UINT32_C(0xF13352BA),
10560           UINT32_C(0x40822279), UINT32_C(0x1F2B75B9), UINT32_C(0xEC43AFD9),
10561           UINT32_C(0xC9CF2972), UINT32_C(0x14D4BB2B)},
10562          {UINT32_C(0x0761B2F1), UINT32_C(0x4A55718A), UINT32_C(0xD81A9307),
10563           UINT32_C(0xDAFBF756), UINT32_C(0x5D3E5A07), UINT32_C(0x2DCDFC1C),
10564           UINT32_C(0x2EBBDF28), UINT32_C(0x696E42ED)}},
10565         {{UINT32_C(0x68705410), UINT32_C(0xF4739399), UINT32_C(0xAF5FFC88),
10566           UINT32_C(0xFD581005), UINT32_C(0x90A9F517), UINT32_C(0x5490A694),
10567           UINT32_C(0x8CF8327E), UINT32_C(0x4A5C8C2E)},
10568          {UINT32_C(0xF7D83DA6), UINT32_C(0xC203CD35), UINT32_C(0x7282368D),
10569           UINT32_C(0xECAA6B90), UINT32_C(0x2AF7EC42), UINT32_C(0x365BB571),
10570           UINT32_C(0xD4099316), UINT32_C(0x112E7ACD)}},
10571         {{UINT32_C(0x3AE3C25C), UINT32_C(0x9ABDE060), UINT32_C(0xEB9925B2),
10572           UINT32_C(0xE4C03DAD), UINT32_C(0x9E03388B), UINT32_C(0x3C28DCB1),
10573           UINT32_C(0x52B63C06), UINT32_C(0x2337A7CF)},
10574          {UINT32_C(0x4E1AF2EA), UINT32_C(0x74DC0F13), UINT32_C(0xCD0D59AA),
10575           UINT32_C(0xA010E4E3), UINT32_C(0x9FA14C96), UINT32_C(0x6E4DB7BA),
10576           UINT32_C(0x557F7CDE), UINT32_C(0x5B2C3862)}},
10577         {{UINT32_C(0xC8C79CA9), UINT32_C(0xC826E567), UINT32_C(0xE851BE0C),
10578           UINT32_C(0xE7D110CA), UINT32_C(0xA3606499), UINT32_C(0xFFD57057),
10579           UINT32_C(0xC6482504), UINT32_C(0x2E9DBC40)},
10580          {UINT32_C(0xF784D9AF), UINT32_C(0xC9F0C3C2), UINT32_C(0xB755172E),
10581           UINT32_C(0xDD982A05), UINT32_C(0xA023997F), UINT32_C(0x6BC6C19D),
10582           UINT32_C(0xE34493C6), UINT32_C(0x4AC177BE)}},
10583         {{UINT32_C(0x4FA4F134), UINT32_C(0x21C3E087), UINT32_C(0x86F9722F),
10584           UINT32_C(0x66E10C34), UINT32_C(0x7398579A), UINT32_C(0xD2927B01),
10585           UINT32_C(0x0352C3D3), UINT32_C(0x7135B638)},
10586          {UINT32_C(0x3BB5EE11), UINT32_C(0x2DA62007), UINT32_C(0x3A946236),
10587           UINT32_C(0x8B64F13C), UINT32_C(0x30EAE6DF), UINT32_C(0x3A83C854),
10588           UINT32_C(0x0EB6F749), UINT32_C(0x31114E2A)}},
10589         {{UINT32_C(0x35BFC72B), UINT32_C(0x2C7B52E7), UINT32_C(0x2B0D4C2C),
10590           UINT32_C(0x6DD29EBD), UINT32_C(0x6C92E82D), UINT32_C(0xE90D3988),
10591           UINT32_C(0x3864D94D), UINT32_C(0x0A924901)},
10592          {UINT32_C(0x9BEE9E78), UINT32_C(0x63050824), UINT32_C(0x003DD5CF),
10593           UINT32_C(0x7929FD62), UINT32_C(0xE57507D1), UINT32_C(0xD04F832C),
10594           UINT32_C(0x37D2C32E), UINT32_C(0x61078BDC)}},
10595         {{UINT32_C(0x2E75264A), UINT32_C(0xB118AFDD), UINT32_C(0xEFD65114),
10596           UINT32_C(0x3AB692EA), UINT32_C(0x8B0A2128), UINT32_C(0x58D2CE24),
10597           UINT32_C(0x82ED6D5F), UINT32_C(0x4316E6C2)},
10598          {UINT32_C(0x46345BE4), UINT32_C(0x97766FFF), UINT32_C(0x0A7451AA),
10599           UINT32_C(0xD7FF3014), UINT32_C(0xAACE2E37), UINT32_C(0x078A423F),
10600           UINT32_C(0xA6A78919), UINT32_C(0x7F1F90C2)}},
10601         {{UINT32_C(0x8E9E3D4D), UINT32_C(0x988FCCB0), UINT32_C(0xB95C9731),
10602           UINT32_C(0xBD003FC0), UINT32_C(0xB0A84E58), UINT32_C(0x74E40076),
10603           UINT32_C(0x1DF7FDD0), UINT32_C(0x5FD1DBE6)},
10604          {UINT32_C(0x4E6CE2FA), UINT32_C(0xD2C700C7), UINT32_C(0x903C5AE7),
10605           UINT32_C(0xA6E042E2), UINT32_C(0x3C73822E), UINT32_C(0x561CC25F),
10606           UINT32_C(0x2A6A0C0C), UINT32_C(0x651A7939)}},
10607         {{UINT32_C(0x88CD7642), UINT32_C(0x103E9EC6), UINT32_C(0x3C3C86CE),
10608           UINT32_C(0x65ED5218), UINT32_C(0x82785C8B), UINT32_C(0x16BAB002),
10609           UINT32_C(0xF34723C5), UINT32_C(0x0B5C18BB)},
10610          {UINT32_C(0xE724D144), UINT32_C(0x528B0546), UINT32_C(0x780EEF9E),
10611           UINT32_C(0x5E582A6B), UINT32_C(0x122F17AD), UINT32_C(0xC08283B8),
10612           UINT32_C(0x1C22F32D), UINT32_C(0x0300EDCD)}},
10613         {{UINT32_C(0x38DCFD39), UINT32_C(0x03AC716A), UINT32_C(0x94F12C74),
10614           UINT32_C(0xCD88474C), UINT32_C(0xE9042CA8), UINT32_C(0xB5E8641E),
10615           UINT32_C(0x40D10558), UINT32_C(0x1D5746CC)},
10616          {UINT32_C(0xCB4BB408), UINT32_C(0x7869F45E), UINT32_C(0x569489C3),
10617           UINT32_C(0x28FB091D), UINT32_C(0x50A46306), UINT32_C(0xEA371EEC),
10618           UINT32_C(0x75AA224C), UINT32_C(0x28025796)}},
10619         {{UINT32_C(0xF7A5923A), UINT32_C(0x4EAFA44E), UINT32_C(0x6B69FD8B),
10620           UINT32_C(0xD2427C30), UINT32_C(0x393D83F9), UINT32_C(0x4C4E884A),
10621           UINT32_C(0x6236AB65), UINT32_C(0x2D34890A)},
10622          {UINT32_C(0x35CC97F5), UINT32_C(0x80038D40), UINT32_C(0x97897472),
10623           UINT32_C(0x4FE43C84), UINT32_C(0xBEF161AF), UINT32_C(0xE5F56243),
10624           UINT32_C(0x9372E631), UINT32_C(0x3E1BDD6F)}},
10625         {{UINT32_C(0x5732669F), UINT32_C(0x06A2B287), UINT32_C(0xCDF4D2C0),
10626           UINT32_C(0x92D00397), UINT32_C(0x454A57F5), UINT32_C(0xCD9A25F0),
10627           UINT32_C(0x2F0CDB0B), UINT32_C(0x23ADB724)},
10628          {UINT32_C(0xFF0F8CB0), UINT32_C(0x504DA603), UINT32_C(0xD3E24181),
10629           UINT32_C(0x14EF9D30), UINT32_C(0x47FC1E66), UINT32_C(0xB1B1328E),
10630           UINT32_C(0x6C60354D), UINT32_C(0x319B2A84)}},
10631     },
10632     {
10633         {{UINT32_C(0xF1D56038), UINT32_C(0xBBF5542E), UINT32_C(0xDD71CFC3),
10634           UINT32_C(0xEDE3E637), UINT32_C(0x2E9F6C8B), UINT32_C(0xFAA81D21),
10635           UINT32_C(0x69FBD060), UINT32_C(0x4DD2D44B)},
10636          {UINT32_C(0x14366A20), UINT32_C(0x71FB6233), UINT32_C(0x9575451D),
10637           UINT32_C(0x155E486F), UINT32_C(0xEC7807D9), UINT32_C(0x001106F0),
10638           UINT32_C(0xC617034C), UINT32_C(0x1C80E5AB)}},
10639         {{UINT32_C(0x8619F5F4), UINT32_C(0xD3E478DB), UINT32_C(0xF68170C2),
10640           UINT32_C(0x1DF5C367), UINT32_C(0x3430DE1D), UINT32_C(0xEAB09524),
10641           UINT32_C(0xC3CD4C24), UINT32_C(0x48F09361)},
10642          {UINT32_C(0x60644FED), UINT32_C(0xE49DEA4B), UINT32_C(0x758C3679),
10643           UINT32_C(0x47170F1C), UINT32_C(0xB0382A84), UINT32_C(0x4CC1E6E8),
10644           UINT32_C(0x10A4465E), UINT32_C(0x2DBDB9DA)}},
10645         {{UINT32_C(0xC8400A4C), UINT32_C(0x67BAA79A), UINT32_C(0x01D28ECE),
10646           UINT32_C(0xFA306753), UINT32_C(0x6F33289C), UINT32_C(0x29DB5B1C),
10647           UINT32_C(0x26A8FCB4), UINT32_C(0x44757573)},
10648          {UINT32_C(0xE1B0A795), UINT32_C(0x59616219), UINT32_C(0xC5B32FA0),
10649           UINT32_C(0x3032D939), UINT32_C(0x7C3CEA2C), UINT32_C(0x3010C917),
10650           UINT32_C(0x9892BDF4), UINT32_C(0x5CF83EF1)}},
10651         {{UINT32_C(0x3C7E83E6), UINT32_C(0x55DE1141), UINT32_C(0x74EA0366),
10652           UINT32_C(0x9D03929C), UINT32_C(0x83BAF3FE), UINT32_C(0x5CA60C50),
10653           UINT32_C(0x7F70E905), UINT32_C(0x3D9BCA58)},
10654          {UINT32_C(0xFCC5AB59), UINT32_C(0xDB79DF5A), UINT32_C(0x53F68D30),
10655           UINT32_C(0x03CFCF06), UINT32_C(0x4FCFA5F1), UINT32_C(0xBE101A78),
10656           UINT32_C(0xB49E493C), UINT32_C(0x115D7078)}},
10657         {{UINT32_C(0x76A0CCBD), UINT32_C(0xF14023AA), UINT32_C(0x086F2E50),
10658           UINT32_C(0x4287F0BC), UINT32_C(0xF79A37E7), UINT32_C(0xC5EAA559),
10659           UINT32_C(0x04E4F2A2), UINT32_C(0x5D527C09)},
10660          {UINT32_C(0x51DAA504), UINT32_C(0xEC914616), UINT32_C(0xEEF1DC95),
10661           UINT32_C(0x250D90C6), UINT32_C(0xA50330B2), UINT32_C(0x1B0AA868),
10662           UINT32_C(0x54189BBE), UINT32_C(0x7B45A783)}},
10663         {{UINT32_C(0xF019D6FF), UINT32_C(0x0D602E05), UINT32_C(0xDD1800BA),
10664           UINT32_C(0x563E3893), UINT32_C(0xF3C7F7E5), UINT32_C(0x7146727E),
10665           UINT32_C(0x4B026635), UINT32_C(0x59641D98)},
10666          {UINT32_C(0xE91DDBB8), UINT32_C(0x50BCF90F), UINT32_C(0x7F8397A6),
10667           UINT32_C(0x5D43E78E), UINT32_C(0xEB15896E), UINT32_C(0x8734A261),
10668           UINT32_C(0x9FF6B361), UINT32_C(0x4AD1E864)}},
10669         {{UINT32_C(0x320322F1), UINT32_C(0x1A9B601F), UINT32_C(0x91F611C4),
10670           UINT32_C(0x606D40B3), UINT32_C(0xA19C918F), UINT32_C(0xB984958B),
10671           UINT32_C(0x776F834E), UINT32_C(0x67BFB045)},
10672          {UINT32_C(0x68DD85F0), UINT32_C(0xC59E5569), UINT32_C(0xD4067875),
10673           UINT32_C(0xB5642834), UINT32_C(0xCB138DF3), UINT32_C(0x247E7D65),
10674           UINT32_C(0x5CB9281D), UINT32_C(0x73640A03)}},
10675         {{UINT32_C(0x88639889), UINT32_C(0xC7C34CCC), UINT32_C(0xA785C707),
10676           UINT32_C(0xD9E44E07), UINT32_C(0x32F83073), UINT32_C(0x1BE68EFE),
10677           UINT32_C(0xAE5317CE), UINT32_C(0x249902DA)},
10678          {UINT32_C(0x76CA92FF), UINT32_C(0xF1F0B86A), UINT32_C(0xC01CB06B),
10679           UINT32_C(0xA7F502CF), UINT32_C(0x595AA185), UINT32_C(0x0A8B4766),
10680           UINT32_C(0xB792DE49), UINT32_C(0x614135AA)}},
10681         {{UINT32_C(0x564F2BC8), UINT32_C(0x5392CAA7), UINT32_C(0xCC894FCD),
10682           UINT32_C(0x1CDDA684), UINT32_C(0xA4EBF82F), UINT32_C(0x10AC2378),
10683           UINT32_C(0x5051BFF9), UINT32_C(0x6211EA46)},
10684          {UINT32_C(0x30E8E210), UINT32_C(0xE53B0174), UINT32_C(0x02C0E381),
10685           UINT32_C(0x2374FEC3), UINT32_C(0x4DA07224), UINT32_C(0xF8B1506B),
10686           UINT32_C(0x54DA7A08), UINT32_C(0x4E451E01)}},
10687         {{UINT32_C(0x241FC7FB), UINT32_C(0xA8404D9C), UINT32_C(0xC4406332),
10688           UINT32_C(0x1D6DBF6E), UINT32_C(0x30162118), UINT32_C(0xFE142319),
10689           UINT32_C(0xA7EF5EF5), UINT32_C(0x69DE75CC)},
10690          {UINT32_C(0x856E26A5), UINT32_C(0x008D4D09), UINT32_C(0xC588ECF6),
10691           UINT32_C(0x2BC64B65), UINT32_C(0xAA01EE19), UINT32_C(0x7A523D0B),
10692           UINT32_C(0x932F0B95), UINT32_C(0x213EF390)}},
10693         {{UINT32_C(0x1CD716FA), UINT32_C(0xA42FE513), UINT32_C(0x0E8001B6),
10694           UINT32_C(0xFB13B3C6), UINT32_C(0xD8F530CB), UINT32_C(0xBFDC7998),
10695           UINT32_C(0xF1C61761), UINT32_C(0x04F9C05B)},
10696          {UINT32_C(0xAFED9D64), UINT32_C(0xFB57396F), UINT32_C(0x421AC123),
10697           UINT32_C(0x28CCEE3A), UINT32_C(0xF6C21ACC), UINT32_C(0x32590C9B),
10698           UINT32_C(0xBCA75AE3), UINT32_C(0x503B97CB)}},
10699         {{UINT32_C(0x366946ED), UINT32_C(0x745208BC), UINT32_C(0x4C906596),
10700           UINT32_C(0xA75D88E9), UINT32_C(0xEE043530), UINT32_C(0x03A30C7E),
10701           UINT32_C(0xD11BF4D5), UINT32_C(0x5C67C151)},
10702          {UINT32_C(0xE7AE4BB3), UINT32_C(0x04F75DFA), UINT32_C(0x7F8D7404),
10703           UINT32_C(0xA0813606), UINT32_C(0x19D68F64), UINT32_C(0x8B9F9210),
10704           UINT32_C(0x06F73B55), UINT32_C(0x5AB67971)}},
10705         {{UINT32_C(0xB0687095), UINT32_C(0x08064C4A), UINT32_C(0xB0106DF4),
10706           UINT32_C(0x27E30DDD), UINT32_C(0x8482524A), UINT32_C(0x31D29C70),
10707           UINT32_C(0xD86FDACD), UINT32_C(0x65DD5896)},
10708          {UINT32_C(0xC647197E), UINT32_C(0x081C013D), UINT32_C(0xD7A53A45),
10709           UINT32_C(0x51C10B9E), UINT32_C(0x0DD7FC53), UINT32_C(0xACB9A4DE),
10710           UINT32_C(0xF646220B), UINT32_C(0x639997A2)}},
10711         {{UINT32_C(0x1FB93B43), UINT32_C(0x97CCF825), UINT32_C(0xE488D786),
10712           UINT32_C(0xB7D7713D), UINT32_C(0x3E4DBB33), UINT32_C(0x4F759566),
10713           UINT32_C(0xE0F09964), UINT32_C(0x13B5D8A1)},
10714          {UINT32_C(0x316CDD97), UINT32_C(0xFFDDAD74), UINT32_C(0x52C92EE9),
10715           UINT32_C(0x67C55782), UINT32_C(0x0AC5D6FD), UINT32_C(0x03B50F94),
10716           UINT32_C(0x1484DF88), UINT32_C(0x56C5C009)}},
10717         {{UINT32_C(0x1778D303), UINT32_C(0xDCE199E3), UINT32_C(0x0F1DD4EC),
10718           UINT32_C(0x53A2A4C6), UINT32_C(0x370A7B99), UINT32_C(0x7CC5EE9E),
10719           UINT32_C(0x2598744E), UINT32_C(0x4403202B)},
10720          {UINT32_C(0x228247B6), UINT32_C(0xCCFAA978), UINT32_C(0x4A1D0E27),
10721           UINT32_C(0xF50D14BD), UINT32_C(0x80723ABC), UINT32_C(0x66695061),
10722           UINT32_C(0x742C0015), UINT32_C(0x750CCB6A)}},
10723         {{UINT32_C(0x81A109F1), UINT32_C(0x7B046936), UINT32_C(0xD4C1AFE5),
10724           UINT32_C(0x6414D9A3), UINT32_C(0xDD14AC1F), UINT32_C(0x35070548),
10725           UINT32_C(0xDEC0D3F0), UINT32_C(0x27172F39)},
10726          {UINT32_C(0xF2E273F0), UINT32_C(0x4EE0A7BF), UINT32_C(0xEC82B8E6),
10727           UINT32_C(0x028C7813), UINT32_C(0x2081EAE2), UINT32_C(0x907BF09F),
10728           UINT32_C(0x414D6421), UINT32_C(0x72E4C3D3)}},
10729     },
10730     {
10731         {{UINT32_C(0xA073711C), UINT32_C(0x2064097E), UINT32_C(0x5A65EC25),
10732           UINT32_C(0x980D830A), UINT32_C(0xF0877567), UINT32_C(0x7906A87C),
10733           UINT32_C(0xF1980A3A), UINT32_C(0x3E5EAE10)},
10734          {UINT32_C(0x9272CE32), UINT32_C(0x5F51023A), UINT32_C(0xA437C974),
10735           UINT32_C(0x71D69E68), UINT32_C(0xD0B579FF), UINT32_C(0x32006EA1),
10736           UINT32_C(0xA436E129), UINT32_C(0x191935FF)}},
10737         {{UINT32_C(0x91C1474C), UINT32_C(0xE5FE2909), UINT32_C(0x1F0B10F5),
10738           UINT32_C(0x7350B9FA), UINT32_C(0x6B4AB128), UINT32_C(0x2006F41D),
10739           UINT32_C(0xCD95FA42), UINT32_C(0x4EBDA6CF)},
10740          {UINT32_C(0x5DA9A7F4), UINT32_C(0x45028938), UINT32_C(0x57FB462B),
10741           UINT32_C(0xD8129DE4), UINT32_C(0xE592EF90), UINT32_C(0x4F2BF2C9),
10742           UINT32_C(0xD6751DCC), UINT32_C(0x14A1A16B)}},
10743         {{UINT32_C(0xDE0CD47A), UINT32_C(0x7460BB84), UINT32_C(0x468CBA3D),
10744           UINT32_C(0x261F24D6), UINT32_C(0x1E3C2D8A), UINT32_C(0x229D3181),
10745           UINT32_C(0x1D19E059), UINT32_C(0x4AE520C9)},
10746          {UINT32_C(0xDF8DC66E), UINT32_C(0x5AC3AEE7), UINT32_C(0x299697EE),
10747           UINT32_C(0xCB417060), UINT32_C(0xCE97514F), UINT32_C(0x227C1497),
10748           UINT32_C(0x2E991FDE), UINT32_C(0x2589B803)}},
10749         {{UINT32_C(0xA97A5D03), UINT32_C(0x7FE9D585), UINT32_C(0x10D58157),
10750           UINT32_C(0x7333A1EF), UINT32_C(0xC94C3DF6), UINT32_C(0x54C1CCD2),
10751           UINT32_C(0x28073B4E), UINT32_C(0x25C1B252)},
10752          {UINT32_C(0x0635AD79), UINT32_C(0xEEB29AF9), UINT32_C(0x9AA38848),
10753           UINT32_C(0x880019C1), UINT32_C(0x30A9A497), UINT32_C(0x1A859942),
10754           UINT32_C(0x92B25ABA), UINT32_C(0x57EDCC2D)}},
10755         {{UINT32_C(0x65E19DE6), UINT32_C(0xA98DAE7D), UINT32_C(0x46AD8696),
10756           UINT32_C(0x8007DD17), UINT32_C(0xA7F3BBAD), UINT32_C(0x61F2E2CF),
10757           UINT32_C(0x54193858), UINT32_C(0x1EFCD387)},
10758          {UINT32_C(0x11666ECF), UINT32_C(0xFB54FD60), UINT32_C(0x36E7D371),
10759           UINT32_C(0xD97EA5DF), UINT32_C(0x3B9371FF), UINT32_C(0x944CA170),
10760           UINT32_C(0x05DE7FB0), UINT32_C(0x32A52CAC)}},
10761         {{UINT32_C(0x19ED8B5E), UINT32_C(0xB960FFF6), UINT32_C(0x660354BB),
10762           UINT32_C(0xFD6B4C3E), UINT32_C(0x1C9E95F0), UINT32_C(0xF8ECAADA),
10763           UINT32_C(0xA8E08CC7), UINT32_C(0x687A6D29)},
10764          {UINT32_C(0xC6A83D12), UINT32_C(0xD38B7670), UINT32_C(0x1265BF30),
10765           UINT32_C(0x1646064C), UINT32_C(0x2464892D), UINT32_C(0x7DE19FFE),
10766           UINT32_C(0x1BDBB729), UINT32_C(0x05B57E08)}},
10767         {{UINT32_C(0xFFB7A98A), UINT32_C(0xF3586B04), UINT32_C(0xCB072826),
10768           UINT32_C(0xF1850CDC), UINT32_C(0xCF53BFB0), UINT32_C(0xFA3E66A4),
10769           UINT32_C(0x06E07221), UINT32_C(0x7C78E567)},
10770          {UINT32_C(0x3B4E72AE), UINT32_C(0x21E6F245), UINT32_C(0xC6A3DBE8),
10771           UINT32_C(0x10A0D78B), UINT32_C(0xD618DDAB), UINT32_C(0xB9FC6D77),
10772           UINT32_C(0x76951DE5), UINT32_C(0x33092D13)}},
10773         {{UINT32_C(0x5A0257CB), UINT32_C(0xCAA1BF9D), UINT32_C(0x866C505F),
10774           UINT32_C(0x1044E224), UINT32_C(0x81482E7D), UINT32_C(0x9B514107),
10775           UINT32_C(0x88940BFB), UINT32_C(0x538CB867)},
10776          {UINT32_C(0xAC21DCC1), UINT32_C(0xACE68B78), UINT32_C(0x1609BF8C),
10777           UINT32_C(0x57942F3C), UINT32_C(0x66E48C7A), UINT32_C(0x30A47F32),
10778           UINT32_C(0xB0DA341F), UINT32_C(0x170D301D)}},
10779         {{UINT32_C(0x18ED9863), UINT32_C(0x19643EB2), UINT32_C(0xD9104F33),
10780           UINT32_C(0xBBE55BCC), UINT32_C(0xA15B283C), UINT32_C(0x77008B6C),
10781           UINT32_C(0x873A6A02), UINT32_C(0x2A6E0B41)},
10782          {UINT32_C(0x3CB9A225), UINT32_C(0x517410DF), UINT32_C(0xF538730A),
10783           UINT32_C(0x20D76E38), UINT32_C(0x9F8724F0), UINT32_C(0x76C9CAD6),
10784           UINT32_C(0x6BE9A035), UINT32_C(0x588BA106)}},
10785         {{UINT32_C(0xF842F66C), UINT32_C(0xA059DBEC), UINT32_C(0xB3ED0481),
10786           UINT32_C(0x59CA186D), UINT32_C(0xD454490F), UINT32_C(0xA5B2ABCB),
10787           UINT32_C(0x02624902), UINT32_C(0x4A0F6004)},
10788          {UINT32_C(0x4D2F605F), UINT32_C(0x45AF7B51), UINT32_C(0xC368030F),
10789           UINT32_C(0x57E8FE0F), UINT32_C(0x0C0727AE), UINT32_C(0x23B74557),
10790           UINT32_C(0x2B603EC4), UINT32_C(0x7E91EC77)}},
10791         {{UINT32_C(0xFD582BE8), UINT32_C(0xEDD284CF), UINT32_C(0x81093CDA),
10792           UINT32_C(0x3077CB23), UINT32_C(0xFDEA4FCE), UINT32_C(0xB1934840),
10793           UINT32_C(0xD7F01C9A), UINT32_C(0x00F9B9D1)},
10794          {UINT32_C(0x0A1C707B), UINT32_C(0xA55E5C5B), UINT32_C(0x2F8618A5),
10795           UINT32_C(0x05CD73CB), UINT32_C(0x512EEA05), UINT32_C(0x7327CECB),
10796           UINT32_C(0x8BF2A4D5), UINT32_C(0x5130A099)}},
10797         {{UINT32_C(0xFA7A1C7B), UINT32_C(0x34D18880), UINT32_C(0xFD4E043F),
10798           UINT32_C(0x5E0D6C53), UINT32_C(0x1B4442AE), UINT32_C(0xB4DD8010),
10799           UINT32_C(0x78ED7563), UINT32_C(0x59D9183E)},
10800          {UINT32_C(0xF1FAE158), UINT32_C(0x624DDAFC), UINT32_C(0x5C4C1E92),
10801           UINT32_C(0xC08C3653), UINT32_C(0xCE3E42EF), UINT32_C(0x452FD71F),
10802           UINT32_C(0x20B902EC), UINT32_C(0x175B4908)}},
10803         {{UINT32_C(0x18F4CE34), UINT32_C(0x5F0FDF24), UINT32_C(0x9B7E61B8),
10804           UINT32_C(0xA64A3011), UINT32_C(0x663362E2), UINT32_C(0x8109ACD5),
10805           UINT32_C(0x97F3DF44), UINT32_C(0x4D02F824)},
10806          {UINT32_C(0x3A4F916A), UINT32_C(0x2CE27CCE), UINT32_C(0x3B85B146),
10807           UINT32_C(0x4A4E6CBB), UINT32_C(0xDB8C9E5E), UINT32_C(0xFE7A6199),
10808           UINT32_C(0xD94B8D23), UINT32_C(0x53F5D620)}},
10809         {{UINT32_C(0xE77610A9), UINT32_C(0x37FEBEC3), UINT32_C(0x92245CB0),
10810           UINT32_C(0xE82D8EAC), UINT32_C(0xF79A31BC), UINT32_C(0x3FD2CEEA),
10811           UINT32_C(0xB446850C), UINT32_C(0x277ACF32)},
10812          {UINT32_C(0xCE1A2786), UINT32_C(0xD89FF4C7), UINT32_C(0xFFD3A23C),
10813           UINT32_C(0x441781E5), UINT32_C(0x07E85496), UINT32_C(0x7876EFC5),
10814           UINT32_C(0xE6F41B30), UINT32_C(0x0F306C7B)}},
10815         {{UINT32_C(0x5AB1B92B), UINT32_C(0x3BF2BFD1), UINT32_C(0xF373FCF2),
10816           UINT32_C(0xDCC3F5A6), UINT32_C(0xDA53C229), UINT32_C(0x27CFC4A6),
10817           UINT32_C(0x508E677F), UINT32_C(0x5885737C)},
10818          {UINT32_C(0x7B829F24), UINT32_C(0x1275D0F1), UINT32_C(0x4991B75B),
10819           UINT32_C(0xBD3C0B02), UINT32_C(0xE581C569), UINT32_C(0x3F82ACDF),
10820           UINT32_C(0x3F28904E), UINT32_C(0x12329435)}},
10821         {{UINT32_C(0x99C3A09B), UINT32_C(0xCF7BDCCC), UINT32_C(0x5F7D601A),
10822           UINT32_C(0x19191107), UINT32_C(0x39FBAA22), UINT32_C(0xA82F7460),
10823           UINT32_C(0xD75B5786), UINT32_C(0x3105A6FC)},
10824          {UINT32_C(0x932F69A6), UINT32_C(0x9673DAC4), UINT32_C(0xB57D6EE6),
10825           UINT32_C(0xF5664B25), UINT32_C(0x0A3CDD3E), UINT32_C(0x1EDAC112),
10826           UINT32_C(0x42778563), UINT32_C(0x3CF84F8C)}},
10827     },
10828     {
10829         {{UINT32_C(0x65DE3040), UINT32_C(0xE36FD1B7), UINT32_C(0x8AA0D3FE),
10830           UINT32_C(0x240EADEA), UINT32_C(0x7F77F804), UINT32_C(0x76971431),
10831           UINT32_C(0x591E9694), UINT32_C(0x6FCC933E)},
10832          {UINT32_C(0x18F48742), UINT32_C(0x3218D92B), UINT32_C(0x5E1B4001),
10833           UINT32_C(0x215F13E9), UINT32_C(0x7A8D69B9), UINT32_C(0xCDF333CD),
10834           UINT32_C(0xD2FD134F), UINT32_C(0x14F159B1)}},
10835         {{UINT32_C(0x07A50C16), UINT32_C(0x2D1228D6), UINT32_C(0x29AE42FD),
10836           UINT32_C(0x0DFD80F6), UINT32_C(0xBB8F3512), UINT32_C(0x6C18B122),
10837           UINT32_C(0x303F3DCA), UINT32_C(0x0FE61243)},
10838          {UINT32_C(0xDA50709B), UINT32_C(0x43A29F4D), UINT32_C(0x4B92BF7B),
10839           UINT32_C(0x3FF58C08), UINT32_C(0xDFCEF797), UINT32_C(0x62DC6B41),
10840           UINT32_C(0xC7B83F32), UINT32_C(0x43F9525A)}},
10841         {{UINT32_C(0x15F08F5B), UINT32_C(0x17EBBC9A), UINT32_C(0x8BB3E932),
10842           UINT32_C(0xBCD3B640), UINT32_C(0x510BBD36), UINT32_C(0xD46FBB9F),
10843           UINT32_C(0xCF65442B), UINT32_C(0x389ABBA8)},
10844          {UINT32_C(0xB575545C), UINT32_C(0x3A3DAFE4), UINT32_C(0xE1D0994D),
10845           UINT32_C(0x6AB985EC), UINT32_C(0x69E1DB27), UINT32_C(0xCC2A697B),
10846           UINT32_C(0x271581DC), UINT32_C(0x0D483E18)}},
10847         {{UINT32_C(0xC046D968), UINT32_C(0x380D4095), UINT32_C(0x55D3318B),
10848           UINT32_C(0x53039755), UINT32_C(0x91CE6FFC), UINT32_C(0x57FA7629),
10849           UINT32_C(0xA4ADB641), UINT32_C(0x0A0F2885)},
10850          {UINT32_C(0x6E5C2909), UINT32_C(0x8B99AF1B), UINT32_C(0xB8794175),
10851           UINT32_C(0xBDFE7FFD), UINT32_C(0x795ED786), UINT32_C(0x2CFB948A),
10852           UINT32_C(0x0FD0DF66), UINT32_C(0x11FE7465)}},
10853         {{UINT32_C(0x22E152E2), UINT32_C(0xFC2CC2BD), UINT32_C(0xE30BCEB3),
10854           UINT32_C(0xCF6AB96B), UINT32_C(0xBC89B689), UINT32_C(0xAE89C041),
10855           UINT32_C(0xE7523AB6), UINT32_C(0x6813430C)},
10856          {UINT32_C(0x40A4FA33), UINT32_C(0x3F49E728), UINT32_C(0x857CB0C9),
10857           UINT32_C(0x025DE1B7), UINT32_C(0x11EA5EA5), UINT32_C(0x6D71465A),
10858           UINT32_C(0x46C8D7CB), UINT32_C(0x6651F7B9)}},
10859         {{UINT32_C(0x5268098F), UINT32_C(0xD05F1DCE), UINT32_C(0x0DC75030),
10860           UINT32_C(0x891DBB68), UINT32_C(0xEA916291), UINT32_C(0xD939E428),
10861           UINT32_C(0xEA37D060), UINT32_C(0x5F8EECCC)},
10862          {UINT32_C(0x8DC5D544), UINT32_C(0x885F1EA8), UINT32_C(0x57E7448F),
10863           UINT32_C(0xFD3B3D17), UINT32_C(0x79531DE0), UINT32_C(0x5FC791A8),
10864           UINT32_C(0x42E66DAA), UINT32_C(0x780C1AAF)}},
10865         {{UINT32_C(0x397BB28F), UINT32_C(0x19697778), UINT32_C(0xAAA9069D),
10866           UINT32_C(0x5EC31D44), UINT32_C(0x3CA24A6F), UINT32_C(0xDC2DFEAA),
10867           UINT32_C(0x80BED770), UINT32_C(0x3F66CFCA)},
10868          {UINT32_C(0x1A102662), UINT32_C(0x2B6B8215), UINT32_C(0xC5D34CEB),
10869           UINT32_C(0x44B4D7A4), UINT32_C(0x88AFECF2), UINT32_C(0x17E0FDE6),
10870           UINT32_C(0xCFF8D214), UINT32_C(0x0DEFA14B)}},
10871         {{UINT32_C(0x8365CA84), UINT32_C(0x14035AA4), UINT32_C(0x197CE2B7),
10872           UINT32_C(0x309CEEF0), UINT32_C(0xED39AF37), UINT32_C(0x21305426),
10873           UINT32_C(0xD2EA583A), UINT32_C(0x10D01D11)},
10874          {UINT32_C(0x9FA5C766), UINT32_C(0x3F2E9749), UINT32_C(0xD70549D4),
10875           UINT32_C(0x98357584), UINT32_C(0xD279946D), UINT32_C(0x8FF80803),
10876           UINT32_C(0x99DF1253), UINT32_C(0x53DBC433)}},
10877         {{UINT32_C(0x5329F12F), UINT32_C(0x1D0D9EFA), UINT32_C(0xBE1F007F),
10878           UINT32_C(0xBC9F74CF), UINT32_C(0x18EE4DBC), UINT32_C(0xD7F2AA9A),
10879           UINT32_C(0x3A792753), UINT32_C(0x634BF4CF)},
10880          {UINT32_C(0x2FA6255A), UINT32_C(0xD5DC72AD), UINT32_C(0xF3BC00C5),
10881           UINT32_C(0xEE69EA43), UINT32_C(0xD8147A1A), UINT32_C(0xEA930F61),
10882           UINT32_C(0xF4E9AD37), UINT32_C(0x25E1368D)}},
10883         {{UINT32_C(0xB7C955EC), UINT32_C(0x9422AAF7), UINT32_C(0x6A74D634),
10884           UINT32_C(0x7C710761), UINT32_C(0x305EE420), UINT32_C(0x4ED89932),
10885           UINT32_C(0x2E937289), UINT32_C(0x07E42212)},
10886          {UINT32_C(0x28566C88), UINT32_C(0x7EBB2313), UINT32_C(0xC27ED656),
10887           UINT32_C(0xC7ED9C7A), UINT32_C(0xBF14FB3B), UINT32_C(0xF77F3873),
10888           UINT32_C(0xEB957520), UINT32_C(0x447AA1E5)}},
10889         {{UINT32_C(0xB5C5E016), UINT32_C(0x3E3CEC7E), UINT32_C(0xBDE44D26),
10890           UINT32_C(0xB33DDFF7), UINT32_C(0x66E820DD), UINT32_C(0x2056E9C7),
10891           UINT32_C(0xF8196FE2), UINT32_C(0x21A9E5D4)},
10892          {UINT32_C(0x88040C97), UINT32_C(0x86CB0A17), UINT32_C(0xFF515D49),
10893           UINT32_C(0x18AD8AE7), UINT32_C(0x226A400A), UINT32_C(0xCB8A564A),
10894           UINT32_C(0x8B72A0D2), UINT32_C(0x6DB48979)}},
10895         {{UINT32_C(0x6324DED2), UINT32_C(0x4365074B), UINT32_C(0xAEDAF0F8),
10896           UINT32_C(0x9EFB5CC6), UINT32_C(0xC0792B14), UINT32_C(0xCF952C3C),
10897           UINT32_C(0x97ED965E), UINT32_C(0x70B82AB9)},
10898          {UINT32_C(0x3ACEBCE7), UINT32_C(0x931B9886), UINT32_C(0x18C2425A),
10899           UINT32_C(0xDA850491), UINT32_C(0xE499F7FB), UINT32_C(0xD88E1E27),
10900           UINT32_C(0x960981DE), UINT32_C(0x61D3F246)}},
10901         {{UINT32_C(0x8393EB0A), UINT32_C(0x1D8EA227), UINT32_C(0x7863FB53),
10902           UINT32_C(0x9DCC23D2), UINT32_C(0xD5EBD297), UINT32_C(0x961B2337),
10903           UINT32_C(0x5BFED1E9), UINT32_C(0x0A96F8B2)},
10904          {UINT32_C(0xFE7DD2B7), UINT32_C(0x39EA1803), UINT32_C(0xE5F7772A),
10905           UINT32_C(0x7E4817BB), UINT32_C(0xD44A41EF), UINT32_C(0x3668C5FF),
10906           UINT32_C(0xE11F8E11), UINT32_C(0x78227653)}},
10907         {{UINT32_C(0xD024880B), UINT32_C(0x272D6933), UINT32_C(0xF236FD8A),
10908           UINT32_C(0x733C029F), UINT32_C(0x604868F0), UINT32_C(0xBA5C20BD),
10909           UINT32_C(0x321175C2), UINT32_C(0x33F211AE)},
10910          {UINT32_C(0x9FD79FE3), UINT32_C(0xE40010FB), UINT32_C(0xA685A59F),
10911           UINT32_C(0x9C6EA1DC), UINT32_C(0x8EB9889D), UINT32_C(0x79963FFC),
10912           UINT32_C(0x5F67108D), UINT32_C(0x15434E7D)}},
10913         {{UINT32_C(0xD68B670F), UINT32_C(0x42C14BBF), UINT32_C(0x23F1AA69),
10914           UINT32_C(0x2021AC9D), UINT32_C(0xAEA04636), UINT32_C(0xBF4C6D74),
10915           UINT32_C(0xBD1FB11D), UINT32_C(0x1E4D2F8E)},
10916          {UINT32_C(0x37911AA6), UINT32_C(0x4B0CF0E3), UINT32_C(0x2C484507),
10917           UINT32_C(0x7542D928), UINT32_C(0x889542DC), UINT32_C(0x68836751),
10918           UINT32_C(0xFE2282A0), UINT32_C(0x05F229F7)}},
10919         {{UINT32_C(0x409B2067), UINT32_C(0xAF269E8B), UINT32_C(0xA860F075),
10920           UINT32_C(0x6C749952), UINT32_C(0x5DF7C7F6), UINT32_C(0xCB7492DA),
10921           UINT32_C(0xE8E591E1), UINT32_C(0x2B010A7F)},
10922          {UINT32_C(0x04D9E871), UINT32_C(0xF7446577), UINT32_C(0x5E68408E),
10923           UINT32_C(0xC2E0A2A3), UINT32_C(0xD0F0BAAD), UINT32_C(0xD512E9A6),
10924           UINT32_C(0xC6BE34A3), UINT32_C(0x3E2F73E1)}},
10925     },
10926     {
10927         {{UINT32_C(0x2EC65BB4), UINT32_C(0x6C466C8E), UINT32_C(0xB1FC8F92),
10928           UINT32_C(0x912FFAE5), UINT32_C(0xB50A522D), UINT32_C(0x7587BE5D),
10929           UINT32_C(0x649847CF), UINT32_C(0x15939FF7)},
10930          {UINT32_C(0xF464794E), UINT32_C(0x69E81D63), UINT32_C(0x6D3F858E),
10931           UINT32_C(0x7BB6EEE3), UINT32_C(0x10813BBB), UINT32_C(0x24FE5C01),
10932           UINT32_C(0x6D80756C), UINT32_C(0x0C491F97)}},
10933         {{UINT32_C(0xA5FF3510), UINT32_C(0xBAD1C256), UINT32_C(0x99C1B7B2),
10934           UINT32_C(0xF06F38A2), UINT32_C(0x049312D6), UINT32_C(0xF7C0F164),
10935           UINT32_C(0x5749B3E4), UINT32_C(0x073C5374)},
10936          {UINT32_C(0x55211A81), UINT32_C(0xD6761480), UINT32_C(0xDFA98F45),
10937           UINT32_C(0xF34CB5DB), UINT32_C(0xB4AA4967), UINT32_C(0xAF59FA47),
10938           UINT32_C(0x8214BE48), UINT32_C(0x116935B9)}},
10939         {{UINT32_C(0x9FE10E46), UINT32_C(0x1D86FA00), UINT32_C(0x0B5B8494),
10940           UINT32_C(0x73B8099C), UINT32_C(0xA1102BE7), UINT32_C(0x9A6EA98D),
10941           UINT32_C(0x5514CA21), UINT32_C(0x3DE1948B)},
10942          {UINT32_C(0xD0AAAA53), UINT32_C(0x5D18ED69), UINT32_C(0x3C952B98),
10943           UINT32_C(0x17BF7DFF), UINT32_C(0x7DDBD937), UINT32_C(0xC60143FE),
10944           UINT32_C(0x6F2F10C4), UINT32_C(0x214F2F55)}},
10945         {{UINT32_C(0x02F047D0), UINT32_C(0xB2F28695), UINT32_C(0x923F52BF),
10946           UINT32_C(0x80952DFE), UINT32_C(0xA5017C3E), UINT32_C(0x56F3306B),
10947           UINT32_C(0x052DADFB), UINT32_C(0x5DD62F07)},
10948          {UINT32_C(0xD5274F90), UINT32_C(0xDD11592D), UINT32_C(0xE471965B),
10949           UINT32_C(0x40632FF3), UINT32_C(0x7E618430), UINT32_C(0xAD1939A8),
10950           UINT32_C(0x33F19556), UINT32_C(0x5DD9CAD2)}},
10951         {{UINT32_C(0xC1094747), UINT32_C(0x7B0AA88C), UINT32_C(0xF6753A0C),
10952           UINT32_C(0xCFA6B95D), UINT32_C(0x2A252A4D), UINT32_C(0xE81AFADA),
10953           UINT32_C(0xD3770570), UINT32_C(0x364CAB7C)},
10954          {UINT32_C(0xB4610A19), UINT32_C(0xE99D8252), UINT32_C(0x55ED9AD3),
10955           UINT32_C(0xB22B2FEC), UINT32_C(0xBEBE7FED), UINT32_C(0x328ACBDD),
10956           UINT32_C(0xFBEDFE84), UINT32_C(0x1D379D61)}},
10957         {{UINT32_C(0x5EDF8C9C), UINT32_C(0xD9EFFFFA), UINT32_C(0x0CE548EC),
10958           UINT32_C(0x9BAA7181), UINT32_C(0x5FA8FEEB), UINT32_C(0xEB458AEB),
10959           UINT32_C(0x0904D841), UINT32_C(0x18C5E691)},
10960          {UINT32_C(0x8F33D2E5), UINT32_C(0xFCEFAE28), UINT32_C(0x6FAFDA18),
10961           UINT32_C(0xB3CF853E), UINT32_C(0x427D6218), UINT32_C(0x05DE94BA),
10962           UINT32_C(0x3731D3E9), UINT32_C(0x021D8AED)}},
10963         {{UINT32_C(0xE92719DA), UINT32_C(0x06C8C318), UINT32_C(0x1A65DFDB),
10964           UINT32_C(0x1F7CDE12), UINT32_C(0x4B672A2D), UINT32_C(0x9B4D531E),
10965           UINT32_C(0x115FAF11), UINT32_C(0x3E39CC63)},
10966          {UINT32_C(0x0037AF60), UINT32_C(0xC9C3F339), UINT32_C(0x02B43D27),
10967           UINT32_C(0xC1C67587), UINT32_C(0xC42DF26B), UINT32_C(0x46B77CDD),
10968           UINT32_C(0xEBFA97A7), UINT32_C(0x7235F2B0)}},
10969         {{UINT32_C(0xE898094E), UINT32_C(0xAF7FFC9A), UINT32_C(0x146A27E3),
10970           UINT32_C(0x8D18AB93), UINT32_C(0x8AEC0416), UINT32_C(0x1376B797),
10971           UINT32_C(0x8D91C25E), UINT32_C(0x746A1B1C)},
10972          {UINT32_C(0x0EBDE2E3), UINT32_C(0x16DCCCC1), UINT32_C(0x8CE7D61E),
10973           UINT32_C(0xFE4ABD41), UINT32_C(0xE25F1551), UINT32_C(0xB9830395),
10974           UINT32_C(0xB885A943), UINT32_C(0x543493D7)}},
10975         {{UINT32_C(0x24EBCFC0), UINT32_C(0x52C659E6), UINT32_C(0xD38367A4),
10976           UINT32_C(0x72E3CA91), UINT32_C(0x4D168F4F), UINT32_C(0xA3086AAC),
10977           UINT32_C(0x5D64207B), UINT32_C(0x656ACFEE)},
10978          {UINT32_C(0xBA196A9E), UINT32_C(0xBE697CBA), UINT32_C(0x97DFFEC2),
10979           UINT32_C(0x6A737ACC), UINT32_C(0x54F04DBD), UINT32_C(0x393E2661),
10980           UINT32_C(0x4B0E92BD), UINT32_C(0x4FFF7C24)}},
10981         {{UINT32_C(0x828EC659), UINT32_C(0xC709CC59), UINT32_C(0xCBDEACB3),
10982           UINT32_C(0xB275AC8C), UINT32_C(0xF7922523), UINT32_C(0xA8D08921),
10983           UINT32_C(0x400A6459), UINT32_C(0x68B92F96)},
10984          {UINT32_C(0xDFBECB97), UINT32_C(0x45803EC2), UINT32_C(0x7515D696),
10985           UINT32_C(0x49464E05), UINT32_C(0x8F03E969), UINT32_C(0xF39CA961),
10986           UINT32_C(0x1CD7C79F), UINT32_C(0x605065A1)}},
10987         {{UINT32_C(0x97F1A97A), UINT32_C(0xB91C03DC), UINT32_C(0x201FFB53),
10988           UINT32_C(0x2F6D50BB), UINT32_C(0x46241856), UINT32_C(0x39D67D40),
10989           UINT32_C(0x74D04805), UINT32_C(0x0A2C0256)},
10990          {UINT32_C(0x28374A6D), UINT32_C(0xD289B94C), UINT32_C(0x10EDD6FC),
10991           UINT32_C(0x1176C73A), UINT32_C(0x56AE631E), UINT32_C(0x890E9C39),
10992           UINT32_C(0x6027F549), UINT32_C(0x30451CF1)}},
10993         {{UINT32_C(0xDF8F4DDB), UINT32_C(0x0CB33FDC), UINT32_C(0x87FF6E63),
10994           UINT32_C(0xD9C540DE), UINT32_C(0x55A1D8E4), UINT32_C(0xD8445732),
10995           UINT32_C(0x8AC403A6), UINT32_C(0x1497403D)},
10996          {UINT32_C(0x6A4BAAC6), UINT32_C(0xA2591C40), UINT32_C(0x48DD3E5D),
10997           UINT32_C(0xF493CF1F), UINT32_C(0xB69AF047), UINT32_C(0x7B9AE39F),
10998           UINT32_C(0x3782B110), UINT32_C(0x293123C0)}},
10999         {{UINT32_C(0xB7A36B62), UINT32_C(0x14921836), UINT32_C(0x4CA3AA39),
11000           UINT32_C(0x5AC82430), UINT32_C(0x52F601CA), UINT32_C(0x01303AA6),
11001           UINT32_C(0x2B43BB72), UINT32_C(0x7EE1E6C7)},
11002          {UINT32_C(0x64D44957), UINT32_C(0x7F82B37B), UINT32_C(0xDA4A6FEC),
11003           UINT32_C(0x840D0654), UINT32_C(0x0290F75D), UINT32_C(0xFC806FA1),
11004           UINT32_C(0x4C62F0E8), UINT32_C(0x3027FE4A)}},
11005         {{UINT32_C(0xCD0D3AC0), UINT32_C(0x34E68AB5), UINT32_C(0xE9BC85BD),
11006           UINT32_C(0xE6B0B8C1), UINT32_C(0x99533831), UINT32_C(0xE00F5052),
11007           UINT32_C(0xCDC83750), UINT32_C(0x11327DA7)},
11008          {UINT32_C(0x4656A428), UINT32_C(0x6D991DF0), UINT32_C(0x86228F26),
11009           UINT32_C(0x6A7BE349), UINT32_C(0x3019CDC5), UINT32_C(0x6BF85E3D),
11010           UINT32_C(0x576913A4), UINT32_C(0x42200D2F)}},
11011         {{UINT32_C(0x707B940F), UINT32_C(0x420D9259), UINT32_C(0x3C5E39BB),
11012           UINT32_C(0x1BB1FFE1), UINT32_C(0xE40D018E), UINT32_C(0x83D6BA36),
11013           UINT32_C(0x044EC576), UINT32_C(0x139BD842)},
11014          {UINT32_C(0xC6DE63E8), UINT32_C(0x3C79F8D2), UINT32_C(0x96F1FB0B),
11015           UINT32_C(0x49150B1D), UINT32_C(0x1358A13B), UINT32_C(0x66616053),
11016           UINT32_C(0xD5DDFD9F), UINT32_C(0x187CA3CF)}},
11017         {{UINT32_C(0x8D5AEE84), UINT32_C(0x0675370F), UINT32_C(0xDC269114),
11018           UINT32_C(0x30AA7D65), UINT32_C(0x5AFC6DC1), UINT32_C(0x295F7FE8),
11019           UINT32_C(0x55674339), UINT32_C(0x49452029)},
11020          {UINT32_C(0xA6F209EC), UINT32_C(0x7EB1926B), UINT32_C(0xDC72C3E3),
11021           UINT32_C(0x5232B9D1), UINT32_C(0xAB52141B), UINT32_C(0xCD788D79),
11022           UINT32_C(0xFDD9611F), UINT32_C(0x3EB561BE)}},
11023     },
11024     {
11025         {{UINT32_C(0xE22241AD), UINT32_C(0x09DB342C), UINT32_C(0x2A566653),
11026           UINT32_C(0x2EAB852F), UINT32_C(0xCA6E59F3), UINT32_C(0x970843ED),
11027           UINT32_C(0xA18C2D89), UINT32_C(0x6490013E)},
11028          {UINT32_C(0xC7A691CC), UINT32_C(0x52293350), UINT32_C(0xB2079F14),
11029           UINT32_C(0x6544B49D), UINT32_C(0x52DCF090), UINT32_C(0xC49C5598),
11030           UINT32_C(0x8817A2C7), UINT32_C(0x4069B6FC)}},
11031         {{UINT32_C(0xC86B40F4), UINT32_C(0x0E4A4B0C), UINT32_C(0x51F6F853),
11032           UINT32_C(0x2B5350E1), UINT32_C(0x1033BEC4), UINT32_C(0xDE26FDE2),
11033           UINT32_C(0xC0E9B971), UINT32_C(0x4DE9D2E7)},
11034          {UINT32_C(0xD315AD57), UINT32_C(0x716605FD), UINT32_C(0x392B101A),
11035           UINT32_C(0x5627D732), UINT32_C(0x81A9F40A), UINT32_C(0x628EDFC6),
11036           UINT32_C(0x5AB9C99D), UINT32_C(0x4BD2A96C)}},
11037         {{UINT32_C(0xBFBD288A), UINT32_C(0x2C8DF2A1), UINT32_C(0xF4CF7C09),
11038           UINT32_C(0x260C4F1E), UINT32_C(0x90E796CB), UINT32_C(0x88A26186),
11039           UINT32_C(0x323E0702), UINT32_C(0x105ACC3A)},
11040          {UINT32_C(0x667664CF), UINT32_C(0xA8ADA467), UINT32_C(0x3B518622),
11041           UINT32_C(0x41144C1B), UINT32_C(0xD8B99FE1), UINT32_C(0x4A532B87),
11042           UINT32_C(0x2289C308), UINT32_C(0x4A51C289)}},
11043         {{UINT32_C(0x1D6F6880), UINT32_C(0x201DDA61), UINT32_C(0x62029898),
11044           UINT32_C(0x47A964D4), UINT32_C(0x426C8CA5), UINT32_C(0xE44E2EEE),
11045           UINT32_C(0x09625DBA), UINT32_C(0x02A51821)},
11046          {UINT32_C(0xB45B3DFB), UINT32_C(0x170C626E), UINT32_C(0x5C8343A9),
11047           UINT32_C(0xFC7F1F71), UINT32_C(0xE549F040), UINT32_C(0xE6CF246F),
11048           UINT32_C(0x2F903ACE), UINT32_C(0x4ACF60AE)}},
11049         {{UINT32_C(0x81C807EC), UINT32_C(0x91715352), UINT32_C(0x47174A58),
11050           UINT32_C(0x72AC60C3), UINT32_C(0xA0F12F61), UINT32_C(0xAD62D06F),
11051           UINT32_C(0xAA899C0D), UINT32_C(0x325C2792)},
11052          {UINT32_C(0x9D8BA267), UINT32_C(0x53A1E392), UINT32_C(0xCDACCB05),
11053           UINT32_C(0x5DC088A5), UINT32_C(0x5025CB69), UINT32_C(0x5BB9127F),
11054           UINT32_C(0x69214616), UINT32_C(0x25D2B42E)}},
11055         {{UINT32_C(0xDDB55121), UINT32_C(0x4DE5D58A), UINT32_C(0x84DE0677),
11056           UINT32_C(0x688AA2F5), UINT32_C(0x63AA25E0), UINT32_C(0xF7925A39),
11057           UINT32_C(0x85D4DEA5), UINT32_C(0x4FB42FC7)},
11058          {UINT32_C(0x8F134390), UINT32_C(0x957B933B), UINT32_C(0x4B9BF8C2),
11059           UINT32_C(0xB360DD2C), UINT32_C(0xFFFF96CD), UINT32_C(0x45E6767F),
11060           UINT32_C(0x1E01D5C3), UINT32_C(0x26D0A6A9)}},
11061         {{UINT32_C(0x5A0A98EA), UINT32_C(0xC7FC5714), UINT32_C(0xE7535AF6),
11062           UINT32_C(0xDBB06F30), UINT32_C(0xDF4ACD0D), UINT32_C(0x555B22E3),
11063           UINT32_C(0x2EFD2FBE), UINT32_C(0x3A011AAF)},
11064          {UINT32_C(0xE9166B20), UINT32_C(0x341C7733), UINT32_C(0xFB19590A),
11065           UINT32_C(0x84619E8E), UINT32_C(0x10574C96), UINT32_C(0x8EF989FD),
11066           UINT32_C(0x0F55F9A2), UINT32_C(0x61ACFAAE)}},
11067         {{UINT32_C(0x6DEAB094), UINT32_C(0x8C8A33F2), UINT32_C(0x96022EBC),
11068           UINT32_C(0x4A8E5D9F), UINT32_C(0x7DDA92E8), UINT32_C(0xA10DF82C),
11069           UINT32_C(0xD1CF3815), UINT32_C(0x33A19462)},
11070          {UINT32_C(0xA489D67F), UINT32_C(0xE3FF8E43), UINT32_C(0x225064AA),
11071           UINT32_C(0xD4B6136F), UINT32_C(0x92F5E662), UINT32_C(0xE1721D2A),
11072           UINT32_C(0xA90A33C6), UINT32_C(0x4C4F03D7)}},
11073         {{UINT32_C(0xA3463B4A), UINT32_C(0x70885B35), UINT32_C(0xDF9D0194),
11074           UINT32_C(0x974BC40E), UINT32_C(0x273957F4), UINT32_C(0x1AF71E18),
11075           UINT32_C(0x9900CB0D), UINT32_C(0x58EF684B)},
11076          {UINT32_C(0x20A49A4A), UINT32_C(0xB09970C8), UINT32_C(0x42067458),
11077           UINT32_C(0x3F28403F), UINT32_C(0xBD7D1AD5), UINT32_C(0x153FF2C4),
11078           UINT32_C(0xE97A90F7), UINT32_C(0x7912CC2E)}},
11079         {{UINT32_C(0x8F034D9F), UINT32_C(0xF653DF59), UINT32_C(0x1C409CCF),
11080           UINT32_C(0xCA167177), UINT32_C(0x175F3583), UINT32_C(0x21F47005),
11081           UINT32_C(0xFAAFB66F), UINT32_C(0x13B8A94B)},
11082          {UINT32_C(0x96052C8D), UINT32_C(0x64534EE3), UINT32_C(0x8D674024),
11083           UINT32_C(0x09304DD1), UINT32_C(0x0D7A7E2A), UINT32_C(0xEB468AC3),
11084           UINT32_C(0xCD62052C), UINT32_C(0x40347256)}},
11085         {{UINT32_C(0xFFF11C0E), UINT32_C(0x0F089165), UINT32_C(0x8D69A45C),
11086           UINT32_C(0x383562C9), UINT32_C(0x3125FE61), UINT32_C(0x7AB3EF9D),
11087           UINT32_C(0xE0735F3A), UINT32_C(0x32C042BC)},
11088          {UINT32_C(0x4E268D91), UINT32_C(0x420077C8), UINT32_C(0x44695B4F),
11089           UINT32_C(0x7FB42082), UINT32_C(0x448A133E), UINT32_C(0xFA83216F),
11090           UINT32_C(0x93062EB3), UINT32_C(0x1C660607)}},
11091         {{UINT32_C(0xEF9E04DE), UINT32_C(0xA0FCBACA), UINT32_C(0x5B86F69A),
11092           UINT32_C(0xAEF9EECB), UINT32_C(0xC39D4C99), UINT32_C(0x73D2E95F),
11093           UINT32_C(0x923A5BA8), UINT32_C(0x098C74F7)},
11094          {UINT32_C(0x4F68DECF), UINT32_C(0x5B8C95C8), UINT32_C(0x58976551),
11095           UINT32_C(0xCFF2E101), UINT32_C(0xBE5CAF91), UINT32_C(0x5032AE48),
11096           UINT32_C(0xE09BC8AE), UINT32_C(0x5CCB9008)}},
11097         {{UINT32_C(0x3714D3BF), UINT32_C(0x41A38F20), UINT32_C(0x17366520),
11098           UINT32_C(0x24136533), UINT32_C(0xFAE17B01), UINT32_C(0xF12F314C),
11099           UINT32_C(0xFC9AD43B), UINT32_C(0x4AA0C969)},
11100          {UINT32_C(0x8BBAC026), UINT32_C(0xD8AB5F72), UINT32_C(0x526992DC),
11101           UINT32_C(0x35128269), UINT32_C(0xD19880AA), UINT32_C(0xA2EF6E44),
11102           UINT32_C(0xDBF47628), UINT32_C(0x28BB3623)}},
11103         {{UINT32_C(0x3BA25C35), UINT32_C(0x294742BA), UINT32_C(0x061555B7),
11104           UINT32_C(0x39D3BC9B), UINT32_C(0xDE6EA1A0), UINT32_C(0x944E3ABC),
11105           UINT32_C(0x57EBD394), UINT32_C(0x4FDC6415)},
11106          {UINT32_C(0xE981E649), UINT32_C(0xB615C1DA), UINT32_C(0x8BE3C95F),
11107           UINT32_C(0xAF7EDB34), UINT32_C(0x71F7221F), UINT32_C(0x38573AE8),
11108           UINT32_C(0x668CF414), UINT32_C(0x1B30FF04)}},
11109         {{UINT32_C(0xA57A9A4E), UINT32_C(0x48EFF6A2), UINT32_C(0x74A59C19),
11110           UINT32_C(0x04BA2F73), UINT32_C(0x6779C5DA), UINT32_C(0x5FDE389D),
11111           UINT32_C(0x6612F160), UINT32_C(0x258E2B24)},
11112          {UINT32_C(0x6D116D41), UINT32_C(0xCE8D7A0B), UINT32_C(0xEE2706C8),
11113           UINT32_C(0xAF660436), UINT32_C(0xF81D6398), UINT32_C(0xFFAD6FE9),
11114           UINT32_C(0x14BA128A), UINT32_C(0x4FE5EC54)}},
11115         {{UINT32_C(0xBD4B886C), UINT32_C(0x7D5E8299), UINT32_C(0xDB0DB148),
11116           UINT32_C(0x5403A46E), UINT32_C(0x76A808D7), UINT32_C(0x32F49FC0),
11117           UINT32_C(0xD3B9A641), UINT32_C(0x6D483FD7)},
11118          {UINT32_C(0x3952C70F), UINT32_C(0x731DF122), UINT32_C(0xCB5E6081),
11119           UINT32_C(0xB5CABAC1), UINT32_C(0x7AFA8F59), UINT32_C(0x12FA297D),
11120           UINT32_C(0x6AC91952), UINT32_C(0x3272360A)}},
11121     }};
11122
11123 /*-
11124  * Q := 2P, both projective, Q and P same pointers OK
11125  * Autogenerated: op3/dbl_proj.op3
11126  * https://eprint.iacr.org/2015/1060 Alg 6
11127  * ASSERT: a = -3
11128  */
11129 static void point_double(pt_prj_t *Q, const pt_prj_t *P) {
11130     /* temporary variables */
11131     fe_t t0, t1, t2, t3, t4;
11132     /* constants */
11133     const limb_t *b = const_b;
11134     /* set pointers for legacy curve arith */
11135     const limb_t *X = P->X;
11136     const limb_t *Y = P->Y;
11137     const limb_t *Z = P->Z;
11138     limb_t *X3 = Q->X;
11139     limb_t *Y3 = Q->Y;
11140     limb_t *Z3 = Q->Z;
11141
11142     /* the curve arith formula */
11143     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(t0, X);
11144     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(t1, Y);
11145     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(t2, Z);
11146     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t3, X, Y);
11147     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, t3, t3);
11148     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t4, Y, Z);
11149     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, X, Z);
11150     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, Z3);
11151     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, b, t2);
11152     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, Z3);
11153     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, Y3, Y3);
11154     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, X3, Y3);
11155     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, t1, Y3);
11156     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t1, Y3);
11157     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X3, Y3);
11158     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, X3, t3);
11159     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, t2, t2);
11160     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t2, t2, t3);
11161     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, b, Z3);
11162     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, Z3, t2);
11163     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, Z3, t0);
11164     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, Z3, Z3);
11165     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, t3);
11166     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, t0, t0);
11167     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t3, t0);
11168     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t0, t0, t2);
11169     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t0, t0, Z3);
11170     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, t0);
11171     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t4, t4);
11172     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t0, Z3);
11173     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, X3, Z3);
11174     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t0, t1);
11175     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, Z3);
11176     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, Z3);
11177 }
11178
11179 /*-
11180  * R := Q + P where R and Q are projective, P affine.
11181  * R and Q same pointers OK
11182  * R and P same pointers not OK
11183  * Autogenerated: op3/add_mixed.op3
11184  * https://eprint.iacr.org/2015/1060 Alg 5
11185  * ASSERT: a = -3
11186  */
11187 static void point_add_mixed(pt_prj_t *R, const pt_prj_t *Q, const pt_aff_t *P) {
11188     /* temporary variables */
11189     fe_t t0, t1, t2, t3, t4;
11190     /* constants */
11191     const limb_t *b = const_b;
11192     /* set pointers for legacy curve arith */
11193     const limb_t *X1 = Q->X;
11194     const limb_t *Y1 = Q->Y;
11195     const limb_t *Z1 = Q->Z;
11196     const limb_t *X2 = P->X;
11197     const limb_t *Y2 = P->Y;
11198     fe_t X3;
11199     fe_t Y3;
11200     fe_t Z3;
11201     limb_t nz;
11202
11203     /* check P for affine inf */
11204     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_nonzero(&nz, P->Y);
11205
11206     /* the curve arith formula */
11207     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t0, X1, X2);
11208     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, Y1, Y2);
11209     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, X2, Y2);
11210     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, X1, Y1);
11211     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t3, t3, t4);
11212     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, t0, t1);
11213     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t3, t3, t4);
11214     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t4, Y2, Z1);
11215     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, t4, Y1);
11216     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X2, Z1);
11217     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, X1);
11218     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, b, Z1);
11219     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, Y3, Z3);
11220     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, X3, X3);
11221     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, X3, Z3);
11222     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, t1, X3);
11223     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, t1, X3);
11224     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, b, Y3);
11225     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, Z1, Z1);
11226     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t2, t1, Z1);
11227     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t2);
11228     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t0);
11229     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, Y3, Y3);
11230     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t1, Y3);
11231     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, t0, t0);
11232     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t1, t0);
11233     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t0, t0, t2);
11234     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t4, Y3);
11235     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t2, t0, Y3);
11236     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X3, Z3);
11237     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, t2);
11238     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, t3, X3);
11239     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, X3, t1);
11240     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t4, Z3);
11241     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t3, t0);
11242     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, t1);
11243
11244     /* if P is inf, throw all that away and take Q */
11245     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(R->X, nz, Q->X, X3);
11246     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(R->Y, nz, Q->Y, Y3);
11247     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(R->Z, nz, Q->Z, Z3);
11248 }
11249
11250 /*-
11251  * R := Q + P all projective.
11252  * R and Q same pointers OK
11253  * R and P same pointers not OK
11254  * Autogenerated: op3/add_proj.op3
11255  * https://eprint.iacr.org/2015/1060 Alg 4
11256  * ASSERT: a = -3
11257  */
11258 static void point_add_proj(pt_prj_t *R, const pt_prj_t *Q, const pt_prj_t *P) {
11259     /* temporary variables */
11260     fe_t t0, t1, t2, t3, t4, t5;
11261     /* constants */
11262     const limb_t *b = const_b;
11263     /* set pointers for legacy curve arith */
11264     const limb_t *X1 = Q->X;
11265     const limb_t *Y1 = Q->Y;
11266     const limb_t *Z1 = Q->Z;
11267     const limb_t *X2 = P->X;
11268     const limb_t *Y2 = P->Y;
11269     const limb_t *Z2 = P->Z;
11270     limb_t *X3 = R->X;
11271     limb_t *Y3 = R->Y;
11272     limb_t *Z3 = R->Z;
11273
11274     /* the curve arith formula */
11275     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t0, X1, X2);
11276     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, Y1, Y2);
11277     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t2, Z1, Z2);
11278     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, X1, Y1);
11279     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, X2, Y2);
11280     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t3, t3, t4);
11281     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, t0, t1);
11282     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t3, t3, t4);
11283     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, Y1, Z1);
11284     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t5, Y2, Z2);
11285     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t4, t4, t5);
11286     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t5, t1, t2);
11287     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t4, t4, t5);
11288     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, X1, Z1);
11289     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, X2, Z2);
11290     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, X3, Y3);
11291     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t0, t2);
11292     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, X3, Y3);
11293     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, b, t2);
11294     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, Y3, Z3);
11295     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, X3, X3);
11296     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, X3, Z3);
11297     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, t1, X3);
11298     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, t1, X3);
11299     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, b, Y3);
11300     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, t2, t2);
11301     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t2, t1, t2);
11302     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t2);
11303     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t0);
11304     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, Y3, Y3);
11305     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t1, Y3);
11306     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, t0, t0);
11307     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t1, t0);
11308     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t0, t0, t2);
11309     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t4, Y3);
11310     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t2, t0, Y3);
11311     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X3, Z3);
11312     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, t2);
11313     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, t3, X3);
11314     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, X3, t1);
11315     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t4, Z3);
11316     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t3, t0);
11317     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, t1);
11318 }
11319
11320 /* constants */
11321 #define RADIX 5
11322 #define DRADIX (1 << RADIX)
11323 #define DRADIX_WNAF ((DRADIX) << 1)
11324
11325 /*-
11326  * precomp for wnaf scalar multiplication:
11327  * precomp[0] = 1P
11328  * precomp[1] = 3P
11329  * precomp[2] = 5P
11330  * precomp[3] = 7P
11331  * precomp[4] = 9P
11332  * ...
11333  */
11334 static void precomp_wnaf(pt_prj_t precomp[DRADIX / 2], const pt_aff_t *P) {
11335     int i;
11336
11337     fe_copy(precomp[0].X, P->X);
11338     fe_copy(precomp[0].Y, P->Y);
11339     fe_copy(precomp[0].Z, const_one);
11340     point_double(&precomp[DRADIX / 2 - 1], &precomp[0]);
11341
11342     for (i = 1; i < DRADIX / 2; i++)
11343         point_add_proj(&precomp[i], &precomp[DRADIX / 2 - 1], &precomp[i - 1]);
11344 }
11345
11346 /* fetch a scalar bit */
11347 static int scalar_get_bit(const unsigned char in[32], int idx) {
11348     int widx, rshift;
11349
11350     widx = idx >> 3;
11351     rshift = idx & 0x7;
11352
11353     if (idx < 0 || widx >= 32) return 0;
11354
11355     return (in[widx] >> rshift) & 0x1;
11356 }
11357
11358 /*-
11359  * Compute "regular" wnaf representation of a scalar.
11360  * See "Exponent Recoding and Regular Exponentiation Algorithms",
11361  * Tunstall et al., AfricaCrypt 2009, Alg 6.
11362  * It forces an odd scalar and outputs digits in
11363  * {\pm 1, \pm 3, \pm 5, \pm 7, \pm 9, ...}
11364  * i.e. signed odd digits with _no zeroes_ -- that makes it "regular".
11365  */
11366 static void scalar_rwnaf(int8_t out[52], const unsigned char in[32]) {
11367     int i;
11368     int8_t window, d;
11369
11370     window = (in[0] & (DRADIX_WNAF - 1)) | 1;
11371     for (i = 0; i < 51; i++) {
11372         d = (window & (DRADIX_WNAF - 1)) - DRADIX;
11373         out[i] = d;
11374         window = (window - d) >> RADIX;
11375         window += scalar_get_bit(in, (i + 1) * RADIX + 1) << 1;
11376         window += scalar_get_bit(in, (i + 1) * RADIX + 2) << 2;
11377         window += scalar_get_bit(in, (i + 1) * RADIX + 3) << 3;
11378         window += scalar_get_bit(in, (i + 1) * RADIX + 4) << 4;
11379         window += scalar_get_bit(in, (i + 1) * RADIX + 5) << 5;
11380     }
11381     out[i] = window;
11382 }
11383
11384 /*-
11385  * Compute "textbook" wnaf representation of a scalar.
11386  * NB: not constant time
11387  */
11388 static void scalar_wnaf(int8_t out[257], const unsigned char in[32]) {
11389     int i;
11390     int8_t window, d;
11391
11392     window = in[0] & (DRADIX_WNAF - 1);
11393     for (i = 0; i < 257; i++) {
11394         d = 0;
11395         if ((window & 1) && ((d = window & (DRADIX_WNAF - 1)) & DRADIX))
11396             d -= DRADIX_WNAF;
11397         out[i] = d;
11398         window = (window - d) >> 1;
11399         window += scalar_get_bit(in, i + 1 + RADIX) << RADIX;
11400     }
11401 }
11402
11403 /*-
11404  * Simulateous scalar multiplication: interleaved "textbook" wnaf.
11405  * NB: not constant time
11406  */
11407 static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[32],
11408                               const unsigned char b[32], const pt_aff_t *P) {
11409     int i, d, is_neg, is_inf = 1, flipped = 0;
11410     int8_t anaf[257] = {0};
11411     int8_t bnaf[257] = {0};
11412     pt_prj_t Q;
11413     pt_prj_t precomp[DRADIX / 2];
11414
11415     precomp_wnaf(precomp, P);
11416     scalar_wnaf(anaf, a);
11417     scalar_wnaf(bnaf, b);
11418
11419     for (i = 256; i >= 0; i--) {
11420         if (!is_inf) point_double(&Q, &Q);
11421         if ((d = bnaf[i])) {
11422             if ((is_neg = d < 0) != flipped) {
11423                 fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(Q.Y, Q.Y);
11424                 flipped ^= 1;
11425             }
11426             d = (is_neg) ? (-d - 1) >> 1 : (d - 1) >> 1;
11427             if (is_inf) {
11428                 /* initialize accumulator */
11429                 fe_copy(Q.X, &precomp[d].X);
11430                 fe_copy(Q.Y, &precomp[d].Y);
11431                 fe_copy(Q.Z, &precomp[d].Z);
11432                 is_inf = 0;
11433             } else
11434                 point_add_proj(&Q, &Q, &precomp[d]);
11435         }
11436         if ((d = anaf[i])) {
11437             if ((is_neg = d < 0) != flipped) {
11438                 fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(Q.Y, Q.Y);
11439                 flipped ^= 1;
11440             }
11441             d = (is_neg) ? (-d - 1) >> 1 : (d - 1) >> 1;
11442             if (is_inf) {
11443                 /* initialize accumulator */
11444                 fe_copy(Q.X, &lut_cmb[0][d].X);
11445                 fe_copy(Q.Y, &lut_cmb[0][d].Y);
11446                 fe_copy(Q.Z, const_one);
11447                 is_inf = 0;
11448             } else
11449                 point_add_mixed(&Q, &Q, &lut_cmb[0][d]);
11450         }
11451     }
11452
11453     if (is_inf) {
11454         /* initialize accumulator to inf: all-zero scalars */
11455         fe_set_zero(Q.X);
11456         fe_copy(Q.Y, const_one);
11457         fe_set_zero(Q.Z);
11458     }
11459
11460     if (flipped) {
11461         /* correct sign */
11462         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(Q.Y, Q.Y);
11463     }
11464
11465     /* convert to affine -- NB depends on coordinate system */
11466     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(Q.Z, Q.Z);
11467     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->X, Q.X, Q.Z);
11468     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->Y, Q.Y, Q.Z);
11469 }
11470
11471 /*-
11472  * Variable point scalar multiplication with "regular" wnaf.
11473  */
11474 static void var_smul_rwnaf(pt_aff_t *out, const unsigned char scalar[32],
11475                            const pt_aff_t *P) {
11476     int i, j, d, diff, is_neg;
11477     int8_t rnaf[52] = {0};
11478     pt_prj_t Q, lut;
11479     pt_prj_t precomp[DRADIX / 2];
11480
11481     precomp_wnaf(precomp, P);
11482     scalar_rwnaf(rnaf, scalar);
11483
11484 #if defined(_MSC_VER)
11485     /* result still unsigned: yes we know */
11486 #pragma warning(push)
11487 #pragma warning(disable : 4146)
11488 #endif
11489
11490     /* initialize accumulator to high digit */
11491     d = (rnaf[51] - 1) >> 1;
11492     for (j = 0; j < DRADIX / 2; j++) {
11493         diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1;
11494         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.X, diff, Q.X,
11495                                                               precomp[j].X);
11496         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Y, diff, Q.Y,
11497                                                               precomp[j].Y);
11498         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Z, diff, Q.Z,
11499                                                               precomp[j].Z);
11500     }
11501
11502     for (i = 50; i >= 0; i--) {
11503         for (j = 0; j < RADIX; j++) point_double(&Q, &Q);
11504         d = rnaf[i];
11505         /* is_neg = (d < 0) ? 1 : 0 */
11506         is_neg = (d >> (8 * sizeof(int) - 1)) & 1;
11507         /* d = abs(d) */
11508         d = (d ^ -is_neg) + is_neg;
11509         d = (d - 1) >> 1;
11510         for (j = 0; j < DRADIX / 2; j++) {
11511             diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1;
11512             fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(
11513                 lut.X, diff, lut.X, precomp[j].X);
11514             fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(
11515                 lut.Y, diff, lut.Y, precomp[j].Y);
11516             fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(
11517                 lut.Z, diff, lut.Z, precomp[j].Z);
11518         }
11519         /* negate lut point if digit is negative */
11520         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(out->Y, lut.Y);
11521         fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(lut.Y, is_neg,
11522                                                               lut.Y, out->Y);
11523         point_add_proj(&Q, &Q, &lut);
11524     }
11525
11526 #if defined(_MSC_VER)
11527 #pragma warning(pop)
11528 #endif
11529
11530     /* conditionally subtract P if the scalar was even */
11531     fe_copy(lut.X, precomp[0].X);
11532     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(lut.Y, precomp[0].Y);
11533     fe_copy(lut.Z, precomp[0].Z);
11534     point_add_proj(&lut, &lut, &Q);
11535     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.X, scalar[0] & 1,
11536                                                           lut.X, Q.X);
11537     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Y, scalar[0] & 1,
11538                                                           lut.Y, Q.Y);
11539     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Z, scalar[0] & 1,
11540                                                           lut.Z, Q.Z);
11541
11542     /* convert to affine -- NB depends on coordinate system */
11543     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(Q.Z, Q.Z);
11544     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->X, Q.X, Q.Z);
11545     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->Y, Q.Y, Q.Z);
11546 }
11547
11548 /*-
11549  * Fixed scalar multiplication: comb with interleaving.
11550  */
11551 static void fixed_smul_cmb(pt_aff_t *out, const unsigned char scalar[32]) {
11552     int i, j, k, d, diff, is_neg = 0;
11553     int8_t rnaf[52] = {0};
11554     pt_prj_t Q, R;
11555     pt_aff_t lut;
11556
11557     scalar_rwnaf(rnaf, scalar);
11558
11559     /* initalize accumulator to inf */
11560     fe_set_zero(Q.X);
11561     fe_copy(Q.Y, const_one);
11562     fe_set_zero(Q.Z);
11563
11564 #if defined(_MSC_VER)
11565     /* result still unsigned: yes we know */
11566 #pragma warning(push)
11567 #pragma warning(disable : 4146)
11568 #endif
11569
11570     for (i = 1; i >= 0; i--) {
11571         for (j = 0; i != 1 && j < RADIX; j++) point_double(&Q, &Q);
11572         for (j = 0; j < 27; j++) {
11573             if (j * 2 + i > 51) continue;
11574             d = rnaf[j * 2 + i];
11575             /* is_neg = (d < 0) ? 1 : 0 */
11576             is_neg = (d >> (8 * sizeof(int) - 1)) & 1;
11577             /* d = abs(d) */
11578             d = (d ^ -is_neg) + is_neg;
11579             d = (d - 1) >> 1;
11580             for (k = 0; k < DRADIX / 2; k++) {
11581                 diff = (1 - (-(d ^ k) >> (8 * sizeof(int) - 1))) & 1;
11582                 fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(
11583                     lut.X, diff, lut.X, lut_cmb[j][k].X);
11584                 fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(
11585                     lut.Y, diff, lut.Y, lut_cmb[j][k].Y);
11586             }
11587             /* negate lut point if digit is negative */
11588             fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(out->Y, lut.Y);
11589             fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(
11590                 lut.Y, is_neg, lut.Y, out->Y);
11591             point_add_mixed(&Q, &Q, &lut);
11592         }
11593     }
11594
11595 #if defined(_MSC_VER)
11596 #pragma warning(pop)
11597 #endif
11598
11599     /* conditionally subtract P if the scalar was even */
11600     fe_copy(lut.X, lut_cmb[0][0].X);
11601     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(lut.Y, lut_cmb[0][0].Y);
11602     point_add_mixed(&R, &Q, &lut);
11603     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.X, scalar[0] & 1,
11604                                                           R.X, Q.X);
11605     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Y, scalar[0] & 1,
11606                                                           R.Y, Q.Y);
11607     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Z, scalar[0] & 1,
11608                                                           R.Z, Q.Z);
11609
11610     /* convert to affine -- NB depends on coordinate system */
11611     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(Q.Z, Q.Z);
11612     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->X, Q.X, Q.Z);
11613     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->Y, Q.Y, Q.Z);
11614 }
11615
11616 static void point_mul_two(unsigned char outx[32], unsigned char outy[32],
11617                           const unsigned char a[32], const unsigned char b[32],
11618                           const unsigned char inx[32],
11619                           const unsigned char iny[32]) {
11620     pt_aff_t P;
11621
11622     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.X, inx);
11623     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.Y, iny);
11624     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.X, P.X);
11625     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.Y, P.Y);
11626     /* simultaneous scalar multiplication */
11627     var_smul_wnaf_two(&P, a, b, &P);
11628
11629     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.X, P.X);
11630     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.Y, P.Y);
11631     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outx, P.X);
11632     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outy, P.Y);
11633 }
11634
11635 static void point_mul_g(unsigned char outx[32], unsigned char outy[32],
11636                         const unsigned char scalar[32]) {
11637     pt_aff_t P;
11638
11639     /* fixed scmul function */
11640     fixed_smul_cmb(&P, scalar);
11641     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.X, P.X);
11642     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.Y, P.Y);
11643     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outx, P.X);
11644     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outy, P.Y);
11645 }
11646
11647 static void point_mul(unsigned char outx[32], unsigned char outy[32],
11648                       const unsigned char scalar[32],
11649                       const unsigned char inx[32],
11650                       const unsigned char iny[32]) {
11651     pt_aff_t P;
11652
11653     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.X, inx);
11654     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.Y, iny);
11655     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.X, P.X);
11656     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.Y, P.Y);
11657     /* var scmul function */
11658     var_smul_rwnaf(&P, scalar, &P);
11659     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.X, P.X);
11660     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.Y, P.Y);
11661     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outx, P.X);
11662     fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outy, P.Y);
11663 }
11664
11665
11666 #include <openssl/ec.h>
11667
11668 static const unsigned char const_zb[32] = {0};
11669
11670     int
11671     point_mul_two_id_GostR3410_2001_CryptoPro_B_ParamSet(
11672         const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q,
11673         const BIGNUM *m, BN_CTX *ctx) {
11674     int ret = 0;
11675     unsigned char b_x[32];
11676     unsigned char b_y[32];
11677     unsigned char b_n[32];
11678     unsigned char b_m[32];
11679     BIGNUM *x = NULL, *y = NULL;
11680
11681     BN_CTX_start(ctx);
11682     x = BN_CTX_get(ctx);
11683     if ((y = BN_CTX_get(ctx)) == NULL
11684         /* pull out coords as bytes */
11685         || !EC_POINT_get_affine_coordinates(group, q, x, y, ctx) ||
11686         BN_bn2lebinpad(x, b_x, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 ||
11687         BN_bn2lebinpad(n, b_n, 32) != 32 || BN_bn2lebinpad(m, b_m, 32) != 32)
11688         goto err;
11689     /* do the simultaneous scalar multiplication */
11690     point_mul_two(b_x, b_y, b_n, b_m, b_x, b_y);
11691     /* check for infinity */
11692     if (CRYPTO_memcmp(const_zb, b_x, 32) == 0 &&
11693         CRYPTO_memcmp(const_zb, b_y, 32) == 0) {
11694         if (!EC_POINT_set_to_infinity(group, r)) goto err;
11695     } else {
11696         /* otherwise, pack the bytes into the result */
11697         if (BN_lebin2bn(b_x, 32, x) == NULL ||
11698             BN_lebin2bn(b_y, 32, y) == NULL ||
11699             !EC_POINT_set_affine_coordinates(group, r, x, y, ctx))
11700             goto err;
11701     }
11702     ret = 1;
11703 err:
11704     BN_CTX_end(ctx);
11705     return ret;
11706 }
11707
11708     int
11709     point_mul_id_GostR3410_2001_CryptoPro_B_ParamSet(const EC_GROUP *group,
11710                                                      EC_POINT *r,
11711                                                      const EC_POINT *q,
11712                                                      const BIGNUM *m,
11713                                                      BN_CTX *ctx) {
11714     int ret = 0;
11715     unsigned char b_x[32];
11716     unsigned char b_y[32];
11717     unsigned char b_m[32];
11718     BIGNUM *x = NULL, *y = NULL;
11719
11720     BN_CTX_start(ctx);
11721     x = BN_CTX_get(ctx);
11722     if ((y = BN_CTX_get(ctx)) == NULL
11723         /* pull out coords as bytes */
11724         || !EC_POINT_get_affine_coordinates(group, q, x, y, ctx) ||
11725         BN_bn2lebinpad(x, b_x, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 ||
11726         BN_bn2lebinpad(m, b_m, 32) != 32)
11727         goto err;
11728     /* do the variable scalar multiplication */
11729     point_mul(b_x, b_y, b_m, b_x, b_y);
11730     /* check for infinity */
11731     if (CRYPTO_memcmp(const_zb, b_x, 32) == 0 &&
11732         CRYPTO_memcmp(const_zb, b_y, 32) == 0) {
11733         if (!EC_POINT_set_to_infinity(group, r)) goto err;
11734     } else {
11735         /* otherwise, pack the bytes into the result */
11736         if (BN_lebin2bn(b_x, 32, x) == NULL ||
11737             BN_lebin2bn(b_y, 32, y) == NULL ||
11738             !EC_POINT_set_affine_coordinates(group, r, x, y, ctx))
11739             goto err;
11740     }
11741     ret = 1;
11742 err:
11743     BN_CTX_end(ctx);
11744     return ret;
11745 }
11746
11747     int
11748     point_mul_g_id_GostR3410_2001_CryptoPro_B_ParamSet(const EC_GROUP *group,
11749                                                        EC_POINT *r,
11750                                                        const BIGNUM *n,
11751                                                        BN_CTX *ctx) {
11752     int ret = 0;
11753     unsigned char b_x[32];
11754     unsigned char b_y[32];
11755     unsigned char b_n[32];
11756     BIGNUM *x = NULL, *y = NULL;
11757
11758     BN_CTX_start(ctx);
11759     x = BN_CTX_get(ctx);
11760     if ((y = BN_CTX_get(ctx)) == NULL || BN_bn2lebinpad(n, b_n, 32) != 32)
11761         goto err;
11762     /* do the fixed scalar multiplication */
11763     point_mul_g(b_x, b_y, b_n);
11764     /* check for infinity */
11765     if (CRYPTO_memcmp(const_zb, b_x, 32) == 0 &&
11766         CRYPTO_memcmp(const_zb, b_y, 32) == 0) {
11767         if (!EC_POINT_set_to_infinity(group, r)) goto err;
11768     } else {
11769         /* otherwise, pack the bytes into the result */
11770         if (BN_lebin2bn(b_x, 32, x) == NULL ||
11771             BN_lebin2bn(b_y, 32, y) == NULL ||
11772             !EC_POINT_set_affine_coordinates(group, r, x, y, ctx))
11773             goto err;
11774     }
11775     ret = 1;
11776 err:
11777     BN_CTX_end(ctx);
11778     return ret;
11779 }
11780
11781
11782
11783 #endif /* __SIZEOF_INT128__ */