iPXE
bigint_test.c
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012 Michael Brown <mbrown@fensystems.co.uk>.
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License as
6  * published by the Free Software Foundation; either version 2 of the
7  * License, or any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17  * 02110-1301, USA.
18  *
19  * You can also choose to distribute this program under the terms of
20  * the Unmodified Binary Distribution Licence (as given in the file
21  * COPYING.UBDL), provided that you have satisfied its requirements.
22  */
23 
24 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
25 
26 /** @file
27  *
28  * Big integer self-tests
29  *
30  */
31 
32 /* Forcibly enable assertions */
33 #undef NDEBUG
34 
35 #include <assert.h>
36 #include <string.h>
37 #include <ipxe/bigint.h>
38 #include <ipxe/test.h>
39 
40 /** Define inline big integer */
41 #define BIGINT(...) { __VA_ARGS__ }
42 
43 /* Provide global functions to allow inspection of generated assembly code */
44 
46  const void *data, size_t len ) {
47  bigint_t ( size ) *value __attribute__ (( may_alias ))
48  = ( ( void * ) value0 );
49 
50  bigint_init ( value, data, len );
51 }
52 
53 void bigint_done_sample ( const bigint_element_t *value0, unsigned int size,
54  void *out, size_t len ) {
55  const bigint_t ( size ) *value __attribute__ (( may_alias ))
56  = ( ( const void * ) value0 );
57 
58  bigint_done ( value, out, len );
59 }
60 
61 void bigint_add_sample ( const bigint_element_t *addend0,
62  bigint_element_t *value0, unsigned int size ) {
63  const bigint_t ( size ) *addend __attribute__ (( may_alias ))
64  = ( ( const void * ) addend0 );
65  bigint_t ( size ) *value __attribute__ (( may_alias ))
66  = ( ( void * ) value0 );
67 
68  bigint_add ( addend, value );
69 }
70 
71 void bigint_subtract_sample ( const bigint_element_t *subtrahend0,
72  bigint_element_t *value0, unsigned int size ) {
73  const bigint_t ( size ) *subtrahend __attribute__ (( may_alias ))
74  = ( ( const void * ) subtrahend0 );
75  bigint_t ( size ) *value __attribute__ (( may_alias ))
76  = ( ( void * ) value0 );
77 
79 }
80 
81 void bigint_rol_sample ( bigint_element_t *value0, unsigned int size ) {
82  bigint_t ( size ) *value __attribute__ (( may_alias ))
83  = ( ( void * ) value0 );
84 
85  bigint_rol ( value );
86 }
87 
88 void bigint_ror_sample ( bigint_element_t *value0, unsigned int size ) {
89  bigint_t ( size ) *value __attribute__ (( may_alias ))
90  = ( ( void * ) value0 );
91 
92  bigint_ror ( value );
93 }
94 
96  unsigned int size ) {
97  const bigint_t ( size ) *value __attribute__ (( may_alias ))
98  = ( ( const void * ) value0 );
99 
100  return bigint_is_zero ( value );
101 }
102 
105  unsigned int size ) {
106  const bigint_t ( size ) *value __attribute__ (( may_alias ))
107  = ( ( const void * ) value0 );
108  const bigint_t ( size ) *reference __attribute__ (( may_alias ))
109  = ( ( const void * ) reference0 );
110 
111  return bigint_is_geq ( value, reference );
112 }
113 
115  unsigned int size, unsigned int bit ) {
116  const bigint_t ( size ) *value __attribute__ (( may_alias ))
117  = ( ( const void * ) value0 );
118 
119  return bigint_bit_is_set ( value, bit );
120 }
121 
123  unsigned int size ) {
124  const bigint_t ( size ) *value __attribute__ (( may_alias ))
125  = ( ( const void * ) value0 );
126 
127  return bigint_max_set_bit ( value );
128 }
129 
130 void bigint_grow_sample ( const bigint_element_t *source0,
131  unsigned int source_size, bigint_element_t *dest0,
132  unsigned int dest_size ) {
133  const bigint_t ( source_size ) *source __attribute__ (( may_alias ))
134  = ( ( const void * ) source0 );
135  bigint_t ( dest_size ) *dest __attribute__ (( may_alias ))
136  = ( ( void * ) dest0 );
137 
138  bigint_grow ( source, dest );
139 }
140 
142  unsigned int source_size, bigint_element_t *dest0,
143  unsigned int dest_size ) {
144  const bigint_t ( source_size ) *source __attribute__ (( may_alias ))
145  = ( ( const void * ) source0 );
146  bigint_t ( dest_size ) *dest __attribute__ (( may_alias ))
147  = ( ( void * ) dest0 );
148 
149  bigint_shrink ( source, dest );
150 }
151 
152 void bigint_multiply_sample ( const bigint_element_t *multiplicand0,
153  const bigint_element_t *multiplier0,
154  bigint_element_t *result0,
155  unsigned int size ) {
156  const bigint_t ( size ) *multiplicand __attribute__ (( may_alias ))
157  = ( ( const void * ) multiplicand0 );
158  const bigint_t ( size ) *multiplier __attribute__ (( may_alias ))
159  = ( ( const void * ) multiplier0 );
160  bigint_t ( size * 2 ) *result __attribute__ (( may_alias ))
161  = ( ( void * ) result0 );
162 
163  bigint_multiply ( multiplicand, multiplier, result );
164 }
165 
166 void bigint_mod_multiply_sample ( const bigint_element_t *multiplicand0,
167  const bigint_element_t *multiplier0,
168  const bigint_element_t *modulus0,
169  bigint_element_t *result0,
170  unsigned int size,
171  void *tmp ) {
172  const bigint_t ( size ) *multiplicand __attribute__ (( may_alias ))
173  = ( ( const void * ) multiplicand0 );
174  const bigint_t ( size ) *multiplier __attribute__ (( may_alias ))
175  = ( ( const void * ) multiplier0 );
176  const bigint_t ( size ) *modulus __attribute__ (( may_alias ))
177  = ( ( const void * ) modulus0 );
178  bigint_t ( size ) *result __attribute__ (( may_alias ))
179  = ( ( void * ) result0 );
180 
181  bigint_mod_multiply ( multiplicand, multiplier, modulus, result, tmp );
182 }
183 
185  const bigint_element_t *modulus0,
186  const bigint_element_t *exponent0,
187  bigint_element_t *result0,
188  unsigned int size, unsigned int exponent_size,
189  void *tmp ) {
190  const bigint_t ( size ) *base __attribute__ (( may_alias ))
191  = ( ( const void * ) base0 );
192  const bigint_t ( size ) *modulus __attribute__ (( may_alias ))
193  = ( ( const void * ) modulus0 );
194  const bigint_t ( exponent_size ) *exponent __attribute__ (( may_alias ))
195  = ( ( const void * ) exponent0 );
196  bigint_t ( size ) *result __attribute__ (( may_alias ))
197  = ( ( void * ) result0 );
198 
199  bigint_mod_exp ( base, modulus, exponent, result, tmp );
200 }
201 
202 /**
203  * Report result of big integer addition test
204  *
205  * @v addend Big integer to add
206  * @v value Big integer to be added to
207  * @v expected Big integer expected result
208  */
209 #define bigint_add_ok( addend, value, expected ) do { \
210  static const uint8_t addend_raw[] = addend; \
211  static const uint8_t value_raw[] = value; \
212  static const uint8_t expected_raw[] = expected; \
213  uint8_t result_raw[ sizeof ( expected_raw ) ]; \
214  unsigned int size = \
215  bigint_required_size ( sizeof ( value_raw ) ); \
216  bigint_t ( size ) addend_temp; \
217  bigint_t ( size ) value_temp; \
218  {} /* Fix emacs alignment */ \
219  \
220  assert ( bigint_size ( &addend_temp ) == \
221  bigint_size ( &value_temp ) ); \
222  bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
223  bigint_init ( &addend_temp, addend_raw, \
224  sizeof ( addend_raw ) ); \
225  DBG ( "Add:\n" ); \
226  DBG_HDA ( 0, &addend_temp, sizeof ( addend_temp ) ); \
227  DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
228  bigint_add ( &addend_temp, &value_temp ); \
229  DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
230  bigint_done ( &value_temp, result_raw, sizeof ( result_raw ) ); \
231  \
232  ok ( memcmp ( result_raw, expected_raw, \
233  sizeof ( result_raw ) ) == 0 ); \
234  } while ( 0 )
235 
236 /**
237  * Report result of big integer subtraction test
238  *
239  * @v subtrahend Big integer to subtract
240  * @v value Big integer to be subtracted from
241  * @v expected Big integer expected result
242  */
243 #define bigint_subtract_ok( subtrahend, value, expected ) do { \
244  static const uint8_t subtrahend_raw[] = subtrahend; \
245  static const uint8_t value_raw[] = value; \
246  static const uint8_t expected_raw[] = expected; \
247  uint8_t result_raw[ sizeof ( expected_raw ) ]; \
248  unsigned int size = \
249  bigint_required_size ( sizeof ( value_raw ) ); \
250  bigint_t ( size ) subtrahend_temp; \
251  bigint_t ( size ) value_temp; \
252  {} /* Fix emacs alignment */ \
253  \
254  assert ( bigint_size ( &subtrahend_temp ) == \
255  bigint_size ( &value_temp ) ); \
256  bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
257  bigint_init ( &subtrahend_temp, subtrahend_raw, \
258  sizeof ( subtrahend_raw ) ); \
259  DBG ( "Subtract:\n" ); \
260  DBG_HDA ( 0, &subtrahend_temp, sizeof ( subtrahend_temp ) ); \
261  DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
262  bigint_subtract ( &subtrahend_temp, &value_temp ); \
263  DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
264  bigint_done ( &value_temp, result_raw, sizeof ( result_raw ) ); \
265  \
266  ok ( memcmp ( result_raw, expected_raw, \
267  sizeof ( result_raw ) ) == 0 ); \
268  } while ( 0 )
269 
270 /**
271  * Report result of big integer left rotation test
272  *
273  * @v value Big integer
274  * @v expected Big integer expected result
275  */
276 #define bigint_rol_ok( value, expected ) do { \
277  static const uint8_t value_raw[] = value; \
278  static const uint8_t expected_raw[] = expected; \
279  uint8_t result_raw[ sizeof ( expected_raw ) ]; \
280  unsigned int size = \
281  bigint_required_size ( sizeof ( value_raw ) ); \
282  bigint_t ( size ) value_temp; \
283  {} /* Fix emacs alignment */ \
284  \
285  bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
286  DBG ( "Rotate left:\n" ); \
287  DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
288  bigint_rol ( &value_temp ); \
289  DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
290  bigint_done ( &value_temp, result_raw, sizeof ( result_raw ) ); \
291  \
292  ok ( memcmp ( result_raw, expected_raw, \
293  sizeof ( result_raw ) ) == 0 ); \
294  } while ( 0 )
295 
296 /**
297  * Report result of big integer right rotation test
298  *
299  * @v value Big integer
300  * @v expected Big integer expected result
301  */
302 #define bigint_ror_ok( value, expected ) do { \
303  static const uint8_t value_raw[] = value; \
304  static const uint8_t expected_raw[] = expected; \
305  uint8_t result_raw[ sizeof ( expected_raw ) ]; \
306  unsigned int size = \
307  bigint_required_size ( sizeof ( value_raw ) ); \
308  bigint_t ( size ) value_temp; \
309  {} /* Fix emacs alignment */ \
310  \
311  bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
312  DBG ( "Rotate right:\n" ); \
313  DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
314  bigint_ror ( &value_temp ); \
315  DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
316  bigint_done ( &value_temp, result_raw, sizeof ( result_raw ) ); \
317  \
318  ok ( memcmp ( result_raw, expected_raw, \
319  sizeof ( result_raw ) ) == 0 ); \
320  } while ( 0 )
321 
322 /**
323  * Report result of big integer zero comparison test
324  *
325  * @v value Big integer
326  * @v expected Expected result
327  */
328 #define bigint_is_zero_ok( value, expected ) do { \
329  static const uint8_t value_raw[] = value; \
330  unsigned int size = \
331  bigint_required_size ( sizeof ( value_raw ) ); \
332  bigint_t ( size ) value_temp; \
333  int is_zero; \
334  {} /* Fix emacs alignment */ \
335  \
336  bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
337  DBG ( "Zero comparison:\n" ); \
338  DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
339  is_zero = bigint_is_zero ( &value_temp ); \
340  DBG ( "...is %szero\n", ( is_zero ? "" : "not " ) ); \
341  ok ( ( !! is_zero ) == ( !! (expected) ) ); \
342  } while ( 0 )
343 
344 /**
345  * Report result of big integer greater-than-or-equal comparison test
346  *
347  * @v value Big integer
348  * @v reference Reference big integer
349  * @v expected Expected result
350  */
351 #define bigint_is_geq_ok( value, reference, expected ) do { \
352  static const uint8_t value_raw[] = value; \
353  static const uint8_t reference_raw[] = reference; \
354  unsigned int size = \
355  bigint_required_size ( sizeof ( value_raw ) ); \
356  bigint_t ( size ) value_temp; \
357  bigint_t ( size ) reference_temp; \
358  int is_geq; \
359  {} /* Fix emacs alignment */ \
360  \
361  assert ( bigint_size ( &reference_temp ) == \
362  bigint_size ( &value_temp ) ); \
363  bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
364  bigint_init ( &reference_temp, reference_raw, \
365  sizeof ( reference_raw ) ); \
366  DBG ( "Greater-than-or-equal comparison:\n" ); \
367  DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
368  DBG_HDA ( 0, &reference_temp, sizeof ( reference_temp ) ); \
369  is_geq = bigint_is_geq ( &value_temp, &reference_temp ); \
370  DBG ( "...is %sgreater than or equal\n", \
371  ( is_geq ? "" : "not " ) ); \
372  ok ( ( !! is_geq ) == ( !! (expected) ) ); \
373  } while ( 0 )
374 
375 /**
376  * Report result of big integer bit-set test
377  *
378  * @v value Big integer
379  * @v bit Bit to test
380  * @v expected Expected result
381  */
382 #define bigint_bit_is_set_ok( value, bit, expected ) do { \
383  static const uint8_t value_raw[] = value; \
384  unsigned int size = \
385  bigint_required_size ( sizeof ( value_raw ) ); \
386  bigint_t ( size ) value_temp; \
387  int bit_is_set; \
388  {} /* Fix emacs alignment */ \
389  \
390  bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
391  DBG ( "Bit set:\n" ); \
392  DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
393  bit_is_set = bigint_bit_is_set ( &value_temp, bit ); \
394  DBG ( "...bit %d is %sset\n", bit, \
395  ( bit_is_set ? "" : "not " ) ); \
396  ok ( ( !! bit_is_set ) == ( !! (expected) ) ); \
397  } while ( 0 )
398 
399 /**
400  * Report result of big integer maximum set bit test
401  *
402  * @v value Big integer
403  * @v expected Expected result
404  */
405 #define bigint_max_set_bit_ok( value, expected ) do { \
406  static const uint8_t value_raw[] = value; \
407  unsigned int size = \
408  bigint_required_size ( sizeof ( value_raw ) ); \
409  bigint_t ( size ) value_temp; \
410  int max_set_bit; \
411  {} /* Fix emacs alignment */ \
412  \
413  bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
414  DBG ( "Maximum set bit:\n" ); \
415  DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
416  max_set_bit = bigint_max_set_bit ( &value_temp ); \
417  DBG ( "...maximum set bit is bit %d\n", ( max_set_bit - 1 ) ); \
418  ok ( max_set_bit == (expected) ); \
419  } while ( 0 )
420 
421 /**
422  * Report result of big integer multiplication test
423  *
424  * @v multiplicand Big integer to be multiplied
425  * @v multiplier Big integer to be multiplied
426  * @v expected Big integer expected result
427  */
428 #define bigint_multiply_ok( multiplicand, multiplier, expected ) do { \
429  static const uint8_t multiplicand_raw[] = multiplicand; \
430  static const uint8_t multiplier_raw[] = multiplier; \
431  static const uint8_t expected_raw[] = expected; \
432  uint8_t result_raw[ sizeof ( expected_raw ) ]; \
433  unsigned int size = \
434  bigint_required_size ( sizeof ( multiplicand_raw ) ); \
435  bigint_t ( size ) multiplicand_temp; \
436  bigint_t ( size ) multiplier_temp; \
437  bigint_t ( size * 2 ) result_temp; \
438  {} /* Fix emacs alignment */ \
439  \
440  assert ( bigint_size ( &multiplier_temp ) == \
441  bigint_size ( &multiplicand_temp ) ); \
442  assert ( bigint_size ( &result_temp ) == \
443  ( 2 * bigint_size ( &multiplicand_temp ) ) ); \
444  bigint_init ( &multiplicand_temp, multiplicand_raw, \
445  sizeof ( multiplicand_raw ) ); \
446  bigint_init ( &multiplier_temp, multiplier_raw, \
447  sizeof ( multiplier_raw ) ); \
448  DBG ( "Multiply:\n" ); \
449  DBG_HDA ( 0, &multiplicand_temp, sizeof ( multiplicand_temp ) );\
450  DBG_HDA ( 0, &multiplier_temp, sizeof ( multiplier_temp ) ); \
451  bigint_multiply ( &multiplicand_temp, &multiplier_temp, \
452  &result_temp ); \
453  DBG_HDA ( 0, &result_temp, sizeof ( result_temp ) ); \
454  bigint_done ( &result_temp, result_raw, sizeof ( result_raw ) );\
455  \
456  ok ( memcmp ( result_raw, expected_raw, \
457  sizeof ( result_raw ) ) == 0 ); \
458  } while ( 0 )
459 
460 /**
461  * Report result of big integer modular multiplication test
462  *
463  * @v multiplicand Big integer to be multiplied
464  * @v multiplier Big integer to be multiplied
465  * @v modulus Big integer modulus
466  * @v expected Big integer expected result
467  */
468 #define bigint_mod_multiply_ok( multiplicand, multiplier, modulus, \
469  expected ) do { \
470  static const uint8_t multiplicand_raw[] = multiplicand; \
471  static const uint8_t multiplier_raw[] = multiplier; \
472  static const uint8_t modulus_raw[] = modulus; \
473  static const uint8_t expected_raw[] = expected; \
474  uint8_t result_raw[ sizeof ( expected_raw ) ]; \
475  unsigned int size = \
476  bigint_required_size ( sizeof ( multiplicand_raw ) ); \
477  bigint_t ( size ) multiplicand_temp; \
478  bigint_t ( size ) multiplier_temp; \
479  bigint_t ( size ) modulus_temp; \
480  bigint_t ( size ) result_temp; \
481  size_t tmp_len = bigint_mod_multiply_tmp_len ( &modulus_temp ); \
482  uint8_t tmp[tmp_len]; \
483  {} /* Fix emacs alignment */ \
484  \
485  assert ( bigint_size ( &multiplier_temp ) == \
486  bigint_size ( &multiplicand_temp ) ); \
487  assert ( bigint_size ( &multiplier_temp ) == \
488  bigint_size ( &modulus_temp ) ); \
489  assert ( bigint_size ( &multiplier_temp ) == \
490  bigint_size ( &result_temp ) ); \
491  bigint_init ( &multiplicand_temp, multiplicand_raw, \
492  sizeof ( multiplicand_raw ) ); \
493  bigint_init ( &multiplier_temp, multiplier_raw, \
494  sizeof ( multiplier_raw ) ); \
495  bigint_init ( &modulus_temp, modulus_raw, \
496  sizeof ( modulus_raw ) ); \
497  DBG ( "Modular multiply:\n" ); \
498  DBG_HDA ( 0, &multiplicand_temp, sizeof ( multiplicand_temp ) );\
499  DBG_HDA ( 0, &multiplier_temp, sizeof ( multiplier_temp ) ); \
500  DBG_HDA ( 0, &modulus_temp, sizeof ( modulus_temp ) ); \
501  bigint_mod_multiply ( &multiplicand_temp, &multiplier_temp, \
502  &modulus_temp, &result_temp, tmp ); \
503  DBG_HDA ( 0, &result_temp, sizeof ( result_temp ) ); \
504  bigint_done ( &result_temp, result_raw, sizeof ( result_raw ) );\
505  \
506  ok ( memcmp ( result_raw, expected_raw, \
507  sizeof ( result_raw ) ) == 0 ); \
508  } while ( 0 )
509 
510 /**
511  * Report result of big integer modular exponentiation test
512  *
513  * @v base Big integer base
514  * @v modulus Big integer modulus
515  * @v exponent Big integer exponent
516  * @v expected Big integer expected result
517  */
518 #define bigint_mod_exp_ok( base, modulus, exponent, expected ) do { \
519  static const uint8_t base_raw[] = base; \
520  static const uint8_t modulus_raw[] = modulus; \
521  static const uint8_t exponent_raw[] = exponent; \
522  static const uint8_t expected_raw[] = expected; \
523  uint8_t result_raw[ sizeof ( expected_raw ) ]; \
524  unsigned int size = \
525  bigint_required_size ( sizeof ( base_raw ) ); \
526  unsigned int exponent_size = \
527  bigint_required_size ( sizeof ( exponent_raw ) ); \
528  bigint_t ( size ) base_temp; \
529  bigint_t ( size ) modulus_temp; \
530  bigint_t ( exponent_size ) exponent_temp; \
531  bigint_t ( size ) result_temp; \
532  size_t tmp_len = bigint_mod_exp_tmp_len ( &modulus_temp, \
533  &exponent_temp ); \
534  uint8_t tmp[tmp_len]; \
535  {} /* Fix emacs alignment */ \
536  \
537  assert ( bigint_size ( &modulus_temp ) == \
538  bigint_size ( &base_temp ) ); \
539  assert ( bigint_size ( &modulus_temp ) == \
540  bigint_size ( &result_temp ) ); \
541  bigint_init ( &base_temp, base_raw, sizeof ( base_raw ) ); \
542  bigint_init ( &modulus_temp, modulus_raw, \
543  sizeof ( modulus_raw ) ); \
544  bigint_init ( &exponent_temp, exponent_raw, \
545  sizeof ( exponent_raw ) ); \
546  DBG ( "Modular exponentiation:\n" ); \
547  DBG_HDA ( 0, &base_temp, sizeof ( base_temp ) ); \
548  DBG_HDA ( 0, &modulus_temp, sizeof ( modulus_temp ) ); \
549  DBG_HDA ( 0, &exponent_temp, sizeof ( exponent_temp ) ); \
550  bigint_mod_exp ( &base_temp, &modulus_temp, &exponent_temp, \
551  &result_temp, tmp ); \
552  DBG_HDA ( 0, &result_temp, sizeof ( result_temp ) ); \
553  bigint_done ( &result_temp, result_raw, sizeof ( result_raw ) );\
554  \
555  ok ( memcmp ( result_raw, expected_raw, \
556  sizeof ( result_raw ) ) == 0 ); \
557  } while ( 0 )
558 
559 /**
560  * Perform big integer self-tests
561  *
562  */
563 static void bigint_test_exec ( void ) {
564 
565  bigint_add_ok ( BIGINT ( 0x8a ),
566  BIGINT ( 0x43 ),
567  BIGINT ( 0xcd ) );
568  bigint_add_ok ( BIGINT ( 0xc5, 0x7b ),
569  BIGINT ( 0xd6, 0xb1 ),
570  BIGINT ( 0x9c, 0x2c ) );
571  bigint_add_ok ( BIGINT ( 0xf9, 0xd9, 0xdc ),
572  BIGINT ( 0x6d, 0x4b, 0xca ),
573  BIGINT ( 0x67, 0x25, 0xa6 ) );
574  bigint_add_ok ( BIGINT ( 0xdd, 0xc2, 0x20, 0x5f ),
575  BIGINT ( 0x80, 0x32, 0xc4, 0xb0 ),
576  BIGINT ( 0x5d, 0xf4, 0xe5, 0x0f ) );
577  bigint_add_ok ( BIGINT ( 0x01, 0xed, 0x45, 0x4b, 0x41, 0xeb, 0x4c,
578  0x2e, 0x53, 0x07, 0x15, 0x51, 0x56, 0x47,
579  0x29, 0xfc, 0x9c, 0xbd, 0xbd, 0xfb, 0x1b,
580  0xd1, 0x1d ),
581  BIGINT ( 0x73, 0xed, 0xfc, 0x35, 0x31, 0x22, 0xd7,
582  0xb1, 0xea, 0x91, 0x5a, 0xe4, 0xba, 0xbc,
583  0xa1, 0x38, 0x72, 0xae, 0x4b, 0x1c, 0xc1,
584  0x05, 0xb3 ),
585  BIGINT ( 0x75, 0xdb, 0x41, 0x80, 0x73, 0x0e, 0x23,
586  0xe0, 0x3d, 0x98, 0x70, 0x36, 0x11, 0x03,
587  0xcb, 0x35, 0x0f, 0x6c, 0x09, 0x17, 0xdc,
588  0xd6, 0xd0 ) );
589  bigint_add_ok ( BIGINT ( 0x06, 0x8e, 0xd6, 0x18, 0xbb, 0x4b, 0x0c,
590  0xc5, 0x85, 0xde, 0xee, 0x9b, 0x3f, 0x65,
591  0x63, 0x86, 0xf5, 0x5a, 0x9f, 0xa2, 0xd7,
592  0xb2, 0xc7, 0xb6, 0x1d, 0x28, 0x6c, 0x50,
593  0x47, 0x10, 0x0a, 0x0e, 0x86, 0xcd, 0x2a,
594  0x64, 0xdc, 0xe6, 0x9d, 0x96, 0xd8, 0xf4,
595  0x56, 0x46, 0x6f, 0xbb, 0x7b, 0x64, 0x6f,
596  0xdc, 0x2a, 0xd1, 0x3b, 0xcc, 0x03, 0x85,
597  0x95, 0xf4, 0xe9, 0x68, 0x1f, 0x5c, 0xc5,
598  0xbf, 0x97, 0x19, 0x12, 0x88, 0x2e, 0x88,
599  0xb9, 0x34, 0xac, 0x74, 0x83, 0x2d, 0x8f,
600  0xb3, 0x97, 0x53, 0x99, 0xf3, 0xb4, 0x8b,
601  0x2d, 0x98, 0x69, 0x8d, 0x19, 0xf0, 0x40,
602  0x66, 0x3f, 0x60, 0x78, 0x34, 0x7f, 0x9b,
603  0xf7, 0x01, 0x74, 0x55, 0xca, 0x63, 0x25,
604  0x7b, 0x86, 0xe9, 0x73, 0xfd, 0x5d, 0x77,
605  0x32, 0x5e, 0x9e, 0x42, 0x53, 0xb6, 0x35,
606  0x92, 0xb9, 0xd7, 0x1b, 0xf7, 0x16, 0x55,
607  0xf6, 0xe2 ),
608  BIGINT ( 0x3f, 0x8f, 0x62, 0x21, 0x4a, 0x7a, 0xa2,
609  0xef, 0xa8, 0x79, 0x9b, 0x73, 0xac, 0xde,
610  0x72, 0xe4, 0xfc, 0x3c, 0xd3, 0xa9, 0x44,
611  0x1a, 0x6a, 0x02, 0x76, 0xe3, 0x78, 0x4d,
612  0x2e, 0x07, 0x9b, 0xb6, 0x3d, 0x5d, 0xc5,
613  0xcd, 0x68, 0x23, 0x4b, 0x5f, 0x89, 0x0e,
614  0xd7, 0xa7, 0xff, 0x18, 0x80, 0xdc, 0xfb,
615  0x34, 0x45, 0xca, 0x4b, 0xdb, 0x8a, 0x19,
616  0xcb, 0xc9, 0xe5, 0xa1, 0x63, 0xa2, 0x0d,
617  0x56, 0xc4, 0xf9, 0x51, 0x1b, 0x88, 0x4e,
618  0x36, 0xab, 0x15, 0x4d, 0x8f, 0xdc, 0x08,
619  0xc4, 0x4d, 0x43, 0xc7, 0x2b, 0xc9, 0x5c,
620  0x05, 0x26, 0xe3, 0x46, 0xf0, 0x64, 0xaa,
621  0x02, 0xa4, 0xbe, 0x3a, 0xd1, 0xca, 0x07,
622  0x6a, 0x6e, 0x62, 0xf4, 0x57, 0x71, 0x96,
623  0xec, 0xf0, 0x0b, 0xac, 0xa4, 0x4a, 0xa3,
624  0x6d, 0x01, 0xba, 0xbd, 0x62, 0xc0, 0x10,
625  0x54, 0x33, 0x8a, 0x71, 0xef, 0xaa, 0x1c,
626  0x25, 0x25 ),
627  BIGINT ( 0x46, 0x1e, 0x38, 0x3a, 0x05, 0xc5, 0xaf,
628  0xb5, 0x2e, 0x58, 0x8a, 0x0e, 0xec, 0x43,
629  0xd6, 0x6b, 0xf1, 0x97, 0x73, 0x4c, 0x1b,
630  0xcd, 0x31, 0xb8, 0x94, 0x0b, 0xe4, 0x9d,
631  0x75, 0x17, 0xa5, 0xc4, 0xc4, 0x2a, 0xf0,
632  0x32, 0x45, 0x09, 0xe8, 0xf6, 0x62, 0x03,
633  0x2d, 0xee, 0x6e, 0xd3, 0xfc, 0x41, 0x6b,
634  0x10, 0x70, 0x9b, 0x87, 0xa7, 0x8d, 0x9f,
635  0x61, 0xbe, 0xcf, 0x09, 0x82, 0xfe, 0xd3,
636  0x16, 0x5c, 0x12, 0x63, 0xa3, 0xb6, 0xd6,
637  0xef, 0xdf, 0xc1, 0xc2, 0x13, 0x09, 0x98,
638  0x77, 0xe4, 0x97, 0x61, 0x1f, 0x7d, 0xe7,
639  0x32, 0xbf, 0x4c, 0xd4, 0x0a, 0x54, 0xea,
640  0x68, 0xe4, 0x1e, 0xb3, 0x06, 0x49, 0xa3,
641  0x61, 0x6f, 0xd7, 0x4a, 0x21, 0xd4, 0xbc,
642  0x68, 0x76, 0xf5, 0x20, 0xa1, 0xa8, 0x1a,
643  0x9f, 0x60, 0x58, 0xff, 0xb6, 0x76, 0x45,
644  0xe6, 0xed, 0x61, 0x8d, 0xe6, 0xc0, 0x72,
645  0x1c, 0x07 ) );
646  bigint_subtract_ok ( BIGINT ( 0x83 ),
647  BIGINT ( 0x50 ),
648  BIGINT ( 0xcd ) );
649  bigint_subtract_ok ( BIGINT ( 0x2c, 0x7c ),
650  BIGINT ( 0x49, 0x0e ),
651  BIGINT ( 0x1c, 0x92 ) );
652  bigint_subtract_ok ( BIGINT ( 0x9c, 0x30, 0xbf ),
653  BIGINT ( 0xde, 0x4e, 0x07 ),
654  BIGINT ( 0x42, 0x1d, 0x48 ) );
655  bigint_subtract_ok ( BIGINT ( 0xbb, 0x77, 0x32, 0x5a ),
656  BIGINT ( 0x5a, 0xd5, 0xfe, 0x28 ),
657  BIGINT ( 0x9f, 0x5e, 0xcb, 0xce ) );
658  bigint_subtract_ok ( BIGINT ( 0x7b, 0xaa, 0x16, 0xcf, 0x15, 0x87,
659  0xe0, 0x4f, 0x2c, 0xa3, 0xec, 0x2f,
660  0x46, 0xfb, 0x83, 0xc6, 0xe0, 0xee,
661  0x57, 0xfa, 0x04, 0xce, 0xa6 ),
662  BIGINT ( 0x46, 0x55, 0xb6, 0x23, 0x63, 0xd0,
663  0x55, 0xdb, 0x8f, 0xcc, 0x55, 0xa8,
664  0x2f, 0x85, 0xc1, 0x9f, 0x2c, 0x13,
665  0x10, 0x9e, 0x76, 0x3c, 0x11 ),
666  BIGINT ( 0xca, 0xab, 0x9f, 0x54, 0x4e, 0x48,
667  0x75, 0x8c, 0x63, 0x28, 0x69, 0x78,
668  0xe8, 0x8a, 0x3d, 0xd8, 0x4b, 0x24,
669  0xb8, 0xa4, 0x71, 0x6d, 0x6b ) );
670  bigint_subtract_ok ( BIGINT ( 0x5b, 0x06, 0x77, 0x7b, 0xfd, 0x34,
671  0x5f, 0x0f, 0xd9, 0xbd, 0x8e, 0x5d,
672  0xc8, 0x4a, 0x70, 0x95, 0x1b, 0xb6,
673  0x48, 0xfb, 0x0e, 0x40, 0xce, 0x06,
674  0x66, 0xcc, 0x29, 0xe9, 0x51, 0x59,
675  0x59, 0xc9, 0x65, 0x07, 0x75, 0xb8,
676  0xd4, 0xcb, 0x07, 0x68, 0x14, 0x48,
677  0xc7, 0x1e, 0xfe, 0xb3, 0x4c, 0xf1,
678  0x10, 0xf0, 0xc7, 0x82, 0x38, 0x4c,
679  0xaf, 0x05, 0x6d, 0x91, 0xc5, 0x18,
680  0xfd, 0x1e, 0x26, 0x1b, 0xef, 0x71,
681  0x70, 0x2e, 0x06, 0x70, 0x8e, 0x54,
682  0xfa, 0x2b, 0x4d, 0x96, 0x85, 0x10,
683  0x03, 0x76, 0xe7, 0x17, 0x59, 0x86,
684  0x6c, 0x8b, 0x24, 0x6e, 0xd9, 0x30,
685  0xf3, 0xd2, 0x9b, 0x62, 0xdc, 0x23,
686  0x54, 0x06, 0x51, 0xb1, 0x95, 0x58,
687  0xec, 0x27, 0xf6, 0x19, 0xae, 0xf4,
688  0x31, 0xec, 0x72, 0x53, 0xcd, 0x32,
689  0xed, 0xf4, 0x25, 0x4a, 0x5b, 0x36,
690  0xa2, 0xb4, 0xa0, 0x29, 0x0c, 0x6b,
691  0x3f, 0xc2 ),
692  BIGINT ( 0x7a, 0xd4, 0x25, 0xf1, 0xb5, 0xf5,
693  0x00, 0x96, 0x47, 0x5b, 0x4f, 0x9f,
694  0x1f, 0x61, 0x69, 0xd9, 0x72, 0x47,
695  0xde, 0xbd, 0x87, 0x5d, 0x50, 0x91,
696  0x69, 0xd8, 0x35, 0xe0, 0x43, 0xd8,
697  0xd5, 0x15, 0xf2, 0xcd, 0x01, 0x73,
698  0x0d, 0x34, 0xf0, 0x34, 0x46, 0x76,
699  0xc0, 0x55, 0x7b, 0x27, 0xf5, 0x7b,
700  0x55, 0xe9, 0xd0, 0x29, 0x0b, 0x4b,
701  0x9f, 0x07, 0xbf, 0x2c, 0x3f, 0xef,
702  0x36, 0x34, 0xde, 0x29, 0x1d, 0x5d,
703  0x84, 0x5a, 0x5d, 0xc1, 0x02, 0x4d,
704  0x56, 0xf1, 0x47, 0x39, 0x37, 0xc9,
705  0xb5, 0x5f, 0x73, 0xec, 0x7c, 0x3d,
706  0xbd, 0xc0, 0xfd, 0x38, 0x6c, 0x91,
707  0x88, 0x4a, 0x0f, 0xee, 0xa1, 0x80,
708  0xf5, 0x6a, 0x7c, 0x8c, 0x02, 0xc3,
709  0x5a, 0xb2, 0x15, 0xa6, 0x2f, 0x6b,
710  0x5b, 0x78, 0xb5, 0xf3, 0xbd, 0xd0,
711  0xc8, 0xbc, 0xb1, 0xbb, 0xe1, 0xce,
712  0x22, 0x80, 0x34, 0x5a, 0x2a, 0x27,
713  0x83, 0xdc ),
714  BIGINT ( 0x1f, 0xcd, 0xae, 0x75, 0xb8, 0xc0,
715  0xa1, 0x86, 0x6d, 0x9d, 0xc1, 0x41,
716  0x57, 0x16, 0xf9, 0x44, 0x56, 0x91,
717  0x95, 0xc2, 0x79, 0x1c, 0x82, 0x8b,
718  0x03, 0x0c, 0x0b, 0xf6, 0xf2, 0x7f,
719  0x7b, 0x4c, 0x8d, 0xc5, 0x8b, 0xba,
720  0x38, 0x69, 0xe8, 0xcc, 0x32, 0x2d,
721  0xf9, 0x36, 0x7c, 0x74, 0xa8, 0x8a,
722  0x44, 0xf9, 0x08, 0xa6, 0xd2, 0xfe,
723  0xf0, 0x02, 0x51, 0x9a, 0x7a, 0xd6,
724  0x39, 0x16, 0xb8, 0x0d, 0x2d, 0xec,
725  0x14, 0x2c, 0x57, 0x50, 0x73, 0xf8,
726  0x5c, 0xc5, 0xf9, 0xa2, 0xb2, 0xb9,
727  0xb1, 0xe8, 0x8c, 0xd5, 0x22, 0xb7,
728  0x51, 0x35, 0xd8, 0xc9, 0x93, 0x60,
729  0x94, 0x77, 0x74, 0x8b, 0xc5, 0x5d,
730  0xa1, 0x64, 0x2a, 0xda, 0x6d, 0x6a,
731  0x6e, 0x8a, 0x1f, 0x8c, 0x80, 0x77,
732  0x29, 0x8c, 0x43, 0x9f, 0xf0, 0x9d,
733  0xda, 0xc8, 0x8c, 0x71, 0x86, 0x97,
734  0x7f, 0xcb, 0x94, 0x31, 0x1d, 0xbc,
735  0x44, 0x1a ) );
736  bigint_rol_ok ( BIGINT ( 0xe0 ),
737  BIGINT ( 0xc0 ) );
738  bigint_rol_ok ( BIGINT ( 0x43, 0x1d ),
739  BIGINT ( 0x86, 0x3a ) );
740  bigint_rol_ok ( BIGINT ( 0xac, 0xed, 0x9b ),
741  BIGINT ( 0x59, 0xdb, 0x36 ) );
742  bigint_rol_ok ( BIGINT ( 0x2c, 0xe8, 0x3a, 0x22 ),
743  BIGINT ( 0x59, 0xd0, 0x74, 0x44 ) );
744  bigint_rol_ok ( BIGINT ( 0x4e, 0x88, 0x4a, 0x05, 0x5e, 0x10, 0xee,
745  0x5b, 0xc6, 0x40, 0x0e, 0x03, 0xd7, 0x0d,
746  0x28, 0xa5, 0x55, 0xb2, 0x50, 0xef, 0x69,
747  0xd1, 0x1d ),
748  BIGINT ( 0x9d, 0x10, 0x94, 0x0a, 0xbc, 0x21, 0xdc,
749  0xb7, 0x8c, 0x80, 0x1c, 0x07, 0xae, 0x1a,
750  0x51, 0x4a, 0xab, 0x64, 0xa1, 0xde, 0xd3,
751  0xa2, 0x3a ) );
752  bigint_rol_ok ( BIGINT ( 0x07, 0x62, 0x78, 0x70, 0x2e, 0xd4, 0x41,
753  0xaa, 0x9b, 0x50, 0xb1, 0x9a, 0x71, 0xf5,
754  0x1c, 0x2f, 0xe7, 0x0d, 0xf1, 0x46, 0x57,
755  0x04, 0x99, 0x78, 0x4e, 0x84, 0x78, 0xba,
756  0x57, 0xea, 0xa5, 0x43, 0xf7, 0x02, 0xf0,
757  0x7a, 0x22, 0x60, 0x65, 0x42, 0xf2, 0x33,
758  0x7d, 0xe3, 0xa8, 0x1b, 0xc4, 0x14, 0xdb,
759  0xee, 0x4a, 0xf1, 0xe1, 0x52, 0xd4, 0xda,
760  0x23, 0xed, 0x13, 0x5d, 0xea, 0xcf, 0xf6,
761  0x5e, 0x39, 0x84, 0xe2, 0xb3, 0xa2, 0x05,
762  0xba, 0xd9, 0x49, 0x8e, 0x75, 0x1d, 0xdb,
763  0xe6, 0xb1, 0x6e, 0xda, 0x0a, 0x83, 0xd0,
764  0x6e, 0xcf, 0x7a, 0x66, 0xb7, 0x64, 0x84,
765  0xf5, 0x09, 0x5a, 0xa8, 0x11, 0x93, 0xf3,
766  0x4f, 0x02, 0x28, 0x00, 0x3a, 0xf0, 0xa9,
767  0x08, 0x77, 0x04, 0xf5, 0x04, 0xcd, 0x6b,
768  0x24, 0xbe, 0x0f, 0x6d, 0xe3, 0xb2, 0xd3,
769  0x07, 0x68, 0xe9, 0x00, 0x59, 0xa0, 0xe4,
770  0x9e, 0x5e ),
771  BIGINT ( 0x0e, 0xc4, 0xf0, 0xe0, 0x5d, 0xa8, 0x83,
772  0x55, 0x36, 0xa1, 0x63, 0x34, 0xe3, 0xea,
773  0x38, 0x5f, 0xce, 0x1b, 0xe2, 0x8c, 0xae,
774  0x09, 0x32, 0xf0, 0x9d, 0x08, 0xf1, 0x74,
775  0xaf, 0xd5, 0x4a, 0x87, 0xee, 0x05, 0xe0,
776  0xf4, 0x44, 0xc0, 0xca, 0x85, 0xe4, 0x66,
777  0xfb, 0xc7, 0x50, 0x37, 0x88, 0x29, 0xb7,
778  0xdc, 0x95, 0xe3, 0xc2, 0xa5, 0xa9, 0xb4,
779  0x47, 0xda, 0x26, 0xbb, 0xd5, 0x9f, 0xec,
780  0xbc, 0x73, 0x09, 0xc5, 0x67, 0x44, 0x0b,
781  0x75, 0xb2, 0x93, 0x1c, 0xea, 0x3b, 0xb7,
782  0xcd, 0x62, 0xdd, 0xb4, 0x15, 0x07, 0xa0,
783  0xdd, 0x9e, 0xf4, 0xcd, 0x6e, 0xc9, 0x09,
784  0xea, 0x12, 0xb5, 0x50, 0x23, 0x27, 0xe6,
785  0x9e, 0x04, 0x50, 0x00, 0x75, 0xe1, 0x52,
786  0x10, 0xee, 0x09, 0xea, 0x09, 0x9a, 0xd6,
787  0x49, 0x7c, 0x1e, 0xdb, 0xc7, 0x65, 0xa6,
788  0x0e, 0xd1, 0xd2, 0x00, 0xb3, 0x41, 0xc9,
789  0x3c, 0xbc ) );
790  bigint_ror_ok ( BIGINT ( 0x8f ),
791  BIGINT ( 0x47 ) );
792  bigint_ror_ok ( BIGINT ( 0xaa, 0x1d ),
793  BIGINT ( 0x55, 0x0e ) );
794  bigint_ror_ok ( BIGINT ( 0xf0, 0xbd, 0x68 ),
795  BIGINT ( 0x78, 0x5e, 0xb4 ) );
796  bigint_ror_ok ( BIGINT ( 0x33, 0xa0, 0x3d, 0x95 ),
797  BIGINT ( 0x19, 0xd0, 0x1e, 0xca ) );
798  bigint_ror_ok ( BIGINT ( 0xa1, 0xf4, 0xb9, 0x64, 0x91, 0x99, 0xa1,
799  0xf4, 0xae, 0xeb, 0x71, 0x97, 0x1b, 0x71,
800  0x09, 0x38, 0x3f, 0x8f, 0xc5, 0x3a, 0xb9,
801  0x75, 0x94 ),
802  BIGINT ( 0x50, 0xfa, 0x5c, 0xb2, 0x48, 0xcc, 0xd0,
803  0xfa, 0x57, 0x75, 0xb8, 0xcb, 0x8d, 0xb8,
804  0x84, 0x9c, 0x1f, 0xc7, 0xe2, 0x9d, 0x5c,
805  0xba, 0xca ) );
806  bigint_ror_ok ( BIGINT ( 0xc0, 0xb3, 0x78, 0x46, 0x69, 0x6e, 0x35,
807  0x94, 0xed, 0x28, 0xdc, 0xfd, 0xf6, 0xdb,
808  0x2d, 0x24, 0xcb, 0xa4, 0x6f, 0x0e, 0x58,
809  0x89, 0x04, 0xec, 0xc8, 0x0c, 0x2d, 0xb3,
810  0x58, 0xa7, 0x22, 0x6d, 0x93, 0xe0, 0xb8,
811  0x48, 0x6a, 0x3f, 0x04, 0x7e, 0xbe, 0xb8,
812  0xa7, 0x84, 0xf5, 0xc9, 0x2f, 0x60, 0x9e,
813  0x7c, 0xbc, 0xaf, 0x28, 0x89, 0x2f, 0xaa,
814  0xd1, 0x82, 0x77, 0xa4, 0xdf, 0xf3, 0x4a,
815  0xc6, 0xed, 0xa3, 0x07, 0xb4, 0xa9, 0xfd,
816  0xef, 0xf8, 0x20, 0xb9, 0xb3, 0xff, 0x35,
817  0x27, 0xed, 0x02, 0xea, 0xec, 0x63, 0xc0,
818  0x46, 0x97, 0xc0, 0x4c, 0xca, 0x89, 0xca,
819  0x14, 0xe8, 0xe0, 0x02, 0x14, 0x44, 0x46,
820  0xf3, 0x2f, 0xbc, 0x6a, 0x28, 0xa2, 0xbe,
821  0x20, 0xc8, 0xaa, 0x0f, 0xd9, 0x51, 0x8e,
822  0x8d, 0x51, 0x29, 0x61, 0xef, 0x48, 0xae,
823  0x3e, 0xe5, 0x10, 0xbf, 0xda, 0x9b, 0x92,
824  0xb3, 0x77 ),
825  BIGINT ( 0x60, 0x59, 0xbc, 0x23, 0x34, 0xb7, 0x1a,
826  0xca, 0x76, 0x94, 0x6e, 0x7e, 0xfb, 0x6d,
827  0x96, 0x92, 0x65, 0xd2, 0x37, 0x87, 0x2c,
828  0x44, 0x82, 0x76, 0x64, 0x06, 0x16, 0xd9,
829  0xac, 0x53, 0x91, 0x36, 0xc9, 0xf0, 0x5c,
830  0x24, 0x35, 0x1f, 0x82, 0x3f, 0x5f, 0x5c,
831  0x53, 0xc2, 0x7a, 0xe4, 0x97, 0xb0, 0x4f,
832  0x3e, 0x5e, 0x57, 0x94, 0x44, 0x97, 0xd5,
833  0x68, 0xc1, 0x3b, 0xd2, 0x6f, 0xf9, 0xa5,
834  0x63, 0x76, 0xd1, 0x83, 0xda, 0x54, 0xfe,
835  0xf7, 0xfc, 0x10, 0x5c, 0xd9, 0xff, 0x9a,
836  0x93, 0xf6, 0x81, 0x75, 0x76, 0x31, 0xe0,
837  0x23, 0x4b, 0xe0, 0x26, 0x65, 0x44, 0xe5,
838  0x0a, 0x74, 0x70, 0x01, 0x0a, 0x22, 0x23,
839  0x79, 0x97, 0xde, 0x35, 0x14, 0x51, 0x5f,
840  0x10, 0x64, 0x55, 0x07, 0xec, 0xa8, 0xc7,
841  0x46, 0xa8, 0x94, 0xb0, 0xf7, 0xa4, 0x57,
842  0x1f, 0x72, 0x88, 0x5f, 0xed, 0x4d, 0xc9,
843  0x59, 0xbb ) );
844  bigint_is_zero_ok ( BIGINT ( 0x9b ),
845  0 );
846  bigint_is_zero_ok ( BIGINT ( 0x5a, 0x9d ),
847  0 );
848  bigint_is_zero_ok ( BIGINT ( 0x5f, 0x80, 0x78 ),
849  0 );
850  bigint_is_zero_ok ( BIGINT ( 0xa0, 0x52, 0x47, 0x2e ),
851  0 );
852  bigint_is_zero_ok ( BIGINT ( 0x18, 0x08, 0x49, 0xdb, 0x7b, 0x5c,
853  0xe7, 0x41, 0x07, 0xdf, 0xed, 0xf9,
854  0xd3, 0x92, 0x0d, 0x75, 0xa6, 0xb0,
855  0x14, 0xfa, 0xdd, 0xfd, 0x82 ),
856  0 );
857  bigint_is_zero_ok ( BIGINT ( 0x04, 0x04, 0xb5, 0xf5, 0x01, 0xae,
858  0x2b, 0x91, 0xa7, 0xc1, 0x49, 0x97,
859  0x3f, 0x45, 0x53, 0x52, 0xb8, 0x52,
860  0xf1, 0x62, 0xa5, 0x21, 0x18, 0xd4,
861  0xb0, 0xb4, 0x8a, 0x17, 0x0e, 0xe8,
862  0xeb, 0xaa, 0x28, 0xae, 0x3d, 0x8e,
863  0xe3, 0x6c, 0xd0, 0x01, 0x0c, 0x54,
864  0xca, 0x23, 0xbb, 0x06, 0xcd, 0x7a,
865  0x61, 0x89, 0x38, 0x34, 0x6e, 0xc7,
866  0xc2, 0xee, 0xb1, 0x80, 0x61, 0x0e,
867  0xc6, 0x8d, 0x65, 0xa0, 0xeb, 0x34,
868  0xe9, 0x63, 0x09, 0x4c, 0x20, 0xac,
869  0x42, 0xe3, 0x35, 0xa2, 0x3e, 0x3b,
870  0x2e, 0x18, 0x70, 0x45, 0x7c, 0xab,
871  0x42, 0xcc, 0xe0, 0x9e, 0x7c, 0x42,
872  0xd1, 0xda, 0x6c, 0x51, 0x10, 0x1e,
873  0x0e, 0x3f, 0xe5, 0xd6, 0xd8, 0x56,
874  0x08, 0xb2, 0x3b, 0x15, 0xc4, 0x7c,
875  0x0c, 0x7e, 0xaf, 0x7b, 0x9d, 0xd6,
876  0x2b, 0xc0, 0x2f, 0xa2, 0xa3, 0xa3,
877  0x77, 0x58, 0x1b, 0xe9, 0xa8, 0x9a,
878  0x23, 0x7f ),
879  0 );
880  bigint_is_zero_ok ( BIGINT ( 0x00 ),
881  1 );
882  bigint_is_zero_ok ( BIGINT ( 0x00, 0x00 ),
883  1 );
884  bigint_is_zero_ok ( BIGINT ( 0x00, 0x00, 0x00 ),
885  1 );
886  bigint_is_zero_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00 ),
887  1 );
888  bigint_is_zero_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
889  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
890  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
891  0x00, 0x00, 0x00, 0x00, 0x00 ),
892  1 );
893  bigint_is_zero_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
894  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
895  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
896  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
897  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
898  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
899  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
900  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
901  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
902  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
903  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
904  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
905  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
906  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
907  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
908  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
909  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
910  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
911  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
912  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
913  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
914  0x00, 0x00 ),
915  1 );
916  bigint_is_zero_ok ( BIGINT ( 0xff ),
917  0 );
918  bigint_is_zero_ok ( BIGINT ( 0xff, 0xff ),
919  0 );
920  bigint_is_zero_ok ( BIGINT ( 0xff, 0xff, 0xff ),
921  0 );
922  bigint_is_zero_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff ),
923  0 );
924  bigint_is_zero_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
925  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
926  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
927  0xff, 0xff, 0xff, 0xff, 0xff ),
928  0 );
929  bigint_is_zero_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
930  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
931  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
932  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
933  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
934  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
935  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
936  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
937  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
938  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
939  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
940  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
941  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
942  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
943  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
944  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
945  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
946  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
947  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
948  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
949  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
950  0xff, 0xff ),
951  0 );
952  bigint_is_geq_ok ( BIGINT ( 0xa2 ),
953  BIGINT ( 0x58 ),
954  1 );
955  bigint_is_geq_ok ( BIGINT ( 0x58 ),
956  BIGINT ( 0xa2 ),
957  0 );
958  bigint_is_geq_ok ( BIGINT ( 0xa2 ),
959  BIGINT ( 0xa2 ),
960  1 );
961  bigint_is_geq_ok ( BIGINT ( 0x61, 0x29 ),
962  BIGINT ( 0x87, 0xac ),
963  0 );
964  bigint_is_geq_ok ( BIGINT ( 0x87, 0xac ),
965  BIGINT ( 0x61, 0x29 ),
966  1 );
967  bigint_is_geq_ok ( BIGINT ( 0x61, 0x29 ),
968  BIGINT ( 0x61, 0x29 ),
969  1 );
970  bigint_is_geq_ok ( BIGINT ( 0xe6, 0x63, 0x14 ),
971  BIGINT ( 0xb7, 0x2b, 0x76 ),
972  1 );
973  bigint_is_geq_ok ( BIGINT ( 0xb7, 0x2b, 0x76 ),
974  BIGINT ( 0xe6, 0x63, 0x14 ),
975  0 );
976  bigint_is_geq_ok ( BIGINT ( 0xe6, 0x63, 0x14 ),
977  BIGINT ( 0xe6, 0x63, 0x14 ),
978  1 );
979  bigint_is_geq_ok ( BIGINT ( 0xe7, 0x4f, 0xd4, 0x80 ),
980  BIGINT ( 0xb5, 0xf9, 0x9b, 0x90 ),
981  1 );
982  bigint_is_geq_ok ( BIGINT ( 0xb5, 0xf9, 0x9b, 0x90 ),
983  BIGINT ( 0xe7, 0x4f, 0xd4, 0x80 ),
984  0 );
985  bigint_is_geq_ok ( BIGINT ( 0xe7, 0x4f, 0xd4, 0x80 ),
986  BIGINT ( 0xe7, 0x4f, 0xd4, 0x80 ),
987  1 );
988  bigint_is_geq_ok ( BIGINT ( 0xe6, 0x2c, 0x7c, 0x24, 0x78, 0x8f, 0x12,
989  0x20, 0xde, 0xd3, 0x6b, 0xc9, 0x97, 0x2d,
990  0x66, 0x74, 0xe5, 0xb6, 0xf7, 0x8f, 0x2b,
991  0x60, 0x98 ),
992  BIGINT ( 0x77, 0xbc, 0x3b, 0x1b, 0x57, 0x43, 0x3b,
993  0x8c, 0x82, 0xda, 0xb5, 0xc7, 0x18, 0x09,
994  0xb3, 0x59, 0x0e, 0x53, 0x2a, 0xb9, 0xd8,
995  0xa2, 0xb4 ),
996  1 );
997  bigint_is_geq_ok ( BIGINT ( 0x77, 0xbc, 0x3b, 0x1b, 0x57, 0x43, 0x3b,
998  0x8c, 0x82, 0xda, 0xb5, 0xc7, 0x18, 0x09,
999  0xb3, 0x59, 0x0e, 0x53, 0x2a, 0xb9, 0xd8,
1000  0xa2, 0xb4 ),
1001  BIGINT ( 0xe6, 0x2c, 0x7c, 0x24, 0x78, 0x8f, 0x12,
1002  0x20, 0xde, 0xd3, 0x6b, 0xc9, 0x97, 0x2d,
1003  0x66, 0x74, 0xe5, 0xb6, 0xf7, 0x8f, 0x2b,
1004  0x60, 0x98 ),
1005  0 );
1006  bigint_is_geq_ok ( BIGINT ( 0xe6, 0x2c, 0x7c, 0x24, 0x78, 0x8f, 0x12,
1007  0x20, 0xde, 0xd3, 0x6b, 0xc9, 0x97, 0x2d,
1008  0x66, 0x74, 0xe5, 0xb6, 0xf7, 0x8f, 0x2b,
1009  0x60, 0x98 ),
1010  BIGINT ( 0xe6, 0x2c, 0x7c, 0x24, 0x78, 0x8f, 0x12,
1011  0x20, 0xde, 0xd3, 0x6b, 0xc9, 0x97, 0x2d,
1012  0x66, 0x74, 0xe5, 0xb6, 0xf7, 0x8f, 0x2b,
1013  0x60, 0x98 ),
1014  1 );
1015  bigint_is_geq_ok ( BIGINT ( 0x2a, 0x98, 0xfd, 0x87, 0x5d, 0x9f, 0xb4,
1016  0x8b, 0x5c, 0xcd, 0x5f, 0xcd, 0x53, 0xb3,
1017  0xd1, 0x81, 0x6a, 0x9c, 0x93, 0x66, 0x40,
1018  0xa7, 0x64, 0xe0, 0x8c, 0xec, 0x96, 0x63,
1019  0x4d, 0x29, 0xfa, 0xb1, 0x5d, 0x93, 0x2f,
1020  0xf9, 0x36, 0xea, 0x3b, 0xc1, 0xaf, 0x85,
1021  0xcb, 0xde, 0x2d, 0xc8, 0x48, 0x33, 0xce,
1022  0x7b, 0xa4, 0xa4, 0xda, 0x0f, 0xaa, 0x1b,
1023  0xcb, 0xed, 0xbe, 0x3a, 0xa5, 0xbb, 0x73,
1024  0x28, 0x04, 0xc6, 0x2a, 0xfb, 0x3a, 0xc3,
1025  0xae, 0x42, 0x1f, 0x53, 0x6c, 0xb2, 0x76,
1026  0xb7, 0xe2, 0x88, 0xcb, 0x88, 0xcf, 0xf0,
1027  0x52, 0x81, 0xd3, 0xb2, 0x1f, 0x56, 0xe1,
1028  0xe1, 0x47, 0x93, 0x6f, 0x2b, 0x49, 0xaa,
1029  0x50, 0x99, 0x7a, 0xc4, 0x56, 0xb7, 0x13,
1030  0x80, 0xf4, 0x73, 0x88, 0xc7, 0x39, 0x83,
1031  0x67, 0xc7, 0xcc, 0xb2, 0x28, 0x7a, 0xd3,
1032  0xdc, 0x48, 0xea, 0x62, 0x0d, 0xf5, 0x5a,
1033  0x27, 0x96 ),
1034  BIGINT ( 0xd4, 0x6b, 0x0a, 0x2e, 0x9f, 0xde, 0x4b,
1035  0x64, 0xfa, 0x6b, 0x37, 0x73, 0x66, 0x06,
1036  0xee, 0x04, 0xef, 0xe6, 0x3c, 0x7d, 0x57,
1037  0x22, 0x7f, 0x1f, 0x62, 0x1c, 0x7e, 0x20,
1038  0xda, 0x97, 0xd0, 0x27, 0x23, 0xf6, 0x77,
1039  0x5b, 0x49, 0x97, 0xe1, 0x65, 0x91, 0x13,
1040  0x93, 0xd6, 0x12, 0xc3, 0x66, 0x91, 0x76,
1041  0xe8, 0x47, 0x4c, 0x6a, 0x1b, 0xa2, 0x02,
1042  0xf8, 0x94, 0xaa, 0xe0, 0x1b, 0x0b, 0x17,
1043  0x86, 0x5e, 0xf5, 0x17, 0x23, 0xf5, 0x17,
1044  0x91, 0x6b, 0xd7, 0x2f, 0x5a, 0xfe, 0x8a,
1045  0x63, 0x28, 0x31, 0x1e, 0x09, 0x60, 0x29,
1046  0x5d, 0x55, 0xd8, 0x79, 0xeb, 0x78, 0x36,
1047  0x44, 0x69, 0xa4, 0x76, 0xa5, 0x35, 0x30,
1048  0xca, 0xc9, 0xf9, 0x62, 0xd7, 0x82, 0x13,
1049  0x56, 0xd0, 0x58, 0xfe, 0x16, 0x4b, 0xfb,
1050  0xa8, 0x4c, 0xb3, 0xd7, 0xcf, 0x5f, 0x93,
1051  0x9d, 0xc4, 0x11, 0xb4, 0xdd, 0xf8, 0x8f,
1052  0xe1, 0x11 ),
1053  0 );
1054  bigint_is_geq_ok ( BIGINT ( 0xd4, 0x6b, 0x0a, 0x2e, 0x9f, 0xde, 0x4b,
1055  0x64, 0xfa, 0x6b, 0x37, 0x73, 0x66, 0x06,
1056  0xee, 0x04, 0xef, 0xe6, 0x3c, 0x7d, 0x57,
1057  0x22, 0x7f, 0x1f, 0x62, 0x1c, 0x7e, 0x20,
1058  0xda, 0x97, 0xd0, 0x27, 0x23, 0xf6, 0x77,
1059  0x5b, 0x49, 0x97, 0xe1, 0x65, 0x91, 0x13,
1060  0x93, 0xd6, 0x12, 0xc3, 0x66, 0x91, 0x76,
1061  0xe8, 0x47, 0x4c, 0x6a, 0x1b, 0xa2, 0x02,
1062  0xf8, 0x94, 0xaa, 0xe0, 0x1b, 0x0b, 0x17,
1063  0x86, 0x5e, 0xf5, 0x17, 0x23, 0xf5, 0x17,
1064  0x91, 0x6b, 0xd7, 0x2f, 0x5a, 0xfe, 0x8a,
1065  0x63, 0x28, 0x31, 0x1e, 0x09, 0x60, 0x29,
1066  0x5d, 0x55, 0xd8, 0x79, 0xeb, 0x78, 0x36,
1067  0x44, 0x69, 0xa4, 0x76, 0xa5, 0x35, 0x30,
1068  0xca, 0xc9, 0xf9, 0x62, 0xd7, 0x82, 0x13,
1069  0x56, 0xd0, 0x58, 0xfe, 0x16, 0x4b, 0xfb,
1070  0xa8, 0x4c, 0xb3, 0xd7, 0xcf, 0x5f, 0x93,
1071  0x9d, 0xc4, 0x11, 0xb4, 0xdd, 0xf8, 0x8f,
1072  0xe1, 0x11 ),
1073  BIGINT ( 0x2a, 0x98, 0xfd, 0x87, 0x5d, 0x9f, 0xb4,
1074  0x8b, 0x5c, 0xcd, 0x5f, 0xcd, 0x53, 0xb3,
1075  0xd1, 0x81, 0x6a, 0x9c, 0x93, 0x66, 0x40,
1076  0xa7, 0x64, 0xe0, 0x8c, 0xec, 0x96, 0x63,
1077  0x4d, 0x29, 0xfa, 0xb1, 0x5d, 0x93, 0x2f,
1078  0xf9, 0x36, 0xea, 0x3b, 0xc1, 0xaf, 0x85,
1079  0xcb, 0xde, 0x2d, 0xc8, 0x48, 0x33, 0xce,
1080  0x7b, 0xa4, 0xa4, 0xda, 0x0f, 0xaa, 0x1b,
1081  0xcb, 0xed, 0xbe, 0x3a, 0xa5, 0xbb, 0x73,
1082  0x28, 0x04, 0xc6, 0x2a, 0xfb, 0x3a, 0xc3,
1083  0xae, 0x42, 0x1f, 0x53, 0x6c, 0xb2, 0x76,
1084  0xb7, 0xe2, 0x88, 0xcb, 0x88, 0xcf, 0xf0,
1085  0x52, 0x81, 0xd3, 0xb2, 0x1f, 0x56, 0xe1,
1086  0xe1, 0x47, 0x93, 0x6f, 0x2b, 0x49, 0xaa,
1087  0x50, 0x99, 0x7a, 0xc4, 0x56, 0xb7, 0x13,
1088  0x80, 0xf4, 0x73, 0x88, 0xc7, 0x39, 0x83,
1089  0x67, 0xc7, 0xcc, 0xb2, 0x28, 0x7a, 0xd3,
1090  0xdc, 0x48, 0xea, 0x62, 0x0d, 0xf5, 0x5a,
1091  0x27, 0x96 ),
1092  1 );
1093  bigint_is_geq_ok ( BIGINT ( 0x2a, 0x98, 0xfd, 0x87, 0x5d, 0x9f, 0xb4,
1094  0x8b, 0x5c, 0xcd, 0x5f, 0xcd, 0x53, 0xb3,
1095  0xd1, 0x81, 0x6a, 0x9c, 0x93, 0x66, 0x40,
1096  0xa7, 0x64, 0xe0, 0x8c, 0xec, 0x96, 0x63,
1097  0x4d, 0x29, 0xfa, 0xb1, 0x5d, 0x93, 0x2f,
1098  0xf9, 0x36, 0xea, 0x3b, 0xc1, 0xaf, 0x85,
1099  0xcb, 0xde, 0x2d, 0xc8, 0x48, 0x33, 0xce,
1100  0x7b, 0xa4, 0xa4, 0xda, 0x0f, 0xaa, 0x1b,
1101  0xcb, 0xed, 0xbe, 0x3a, 0xa5, 0xbb, 0x73,
1102  0x28, 0x04, 0xc6, 0x2a, 0xfb, 0x3a, 0xc3,
1103  0xae, 0x42, 0x1f, 0x53, 0x6c, 0xb2, 0x76,
1104  0xb7, 0xe2, 0x88, 0xcb, 0x88, 0xcf, 0xf0,
1105  0x52, 0x81, 0xd3, 0xb2, 0x1f, 0x56, 0xe1,
1106  0xe1, 0x47, 0x93, 0x6f, 0x2b, 0x49, 0xaa,
1107  0x50, 0x99, 0x7a, 0xc4, 0x56, 0xb7, 0x13,
1108  0x80, 0xf4, 0x73, 0x88, 0xc7, 0x39, 0x83,
1109  0x67, 0xc7, 0xcc, 0xb2, 0x28, 0x7a, 0xd3,
1110  0xdc, 0x48, 0xea, 0x62, 0x0d, 0xf5, 0x5a,
1111  0x27, 0x96 ),
1112  BIGINT ( 0x2a, 0x98, 0xfd, 0x87, 0x5d, 0x9f, 0xb4,
1113  0x8b, 0x5c, 0xcd, 0x5f, 0xcd, 0x53, 0xb3,
1114  0xd1, 0x81, 0x6a, 0x9c, 0x93, 0x66, 0x40,
1115  0xa7, 0x64, 0xe0, 0x8c, 0xec, 0x96, 0x63,
1116  0x4d, 0x29, 0xfa, 0xb1, 0x5d, 0x93, 0x2f,
1117  0xf9, 0x36, 0xea, 0x3b, 0xc1, 0xaf, 0x85,
1118  0xcb, 0xde, 0x2d, 0xc8, 0x48, 0x33, 0xce,
1119  0x7b, 0xa4, 0xa4, 0xda, 0x0f, 0xaa, 0x1b,
1120  0xcb, 0xed, 0xbe, 0x3a, 0xa5, 0xbb, 0x73,
1121  0x28, 0x04, 0xc6, 0x2a, 0xfb, 0x3a, 0xc3,
1122  0xae, 0x42, 0x1f, 0x53, 0x6c, 0xb2, 0x76,
1123  0xb7, 0xe2, 0x88, 0xcb, 0x88, 0xcf, 0xf0,
1124  0x52, 0x81, 0xd3, 0xb2, 0x1f, 0x56, 0xe1,
1125  0xe1, 0x47, 0x93, 0x6f, 0x2b, 0x49, 0xaa,
1126  0x50, 0x99, 0x7a, 0xc4, 0x56, 0xb7, 0x13,
1127  0x80, 0xf4, 0x73, 0x88, 0xc7, 0x39, 0x83,
1128  0x67, 0xc7, 0xcc, 0xb2, 0x28, 0x7a, 0xd3,
1129  0xdc, 0x48, 0xea, 0x62, 0x0d, 0xf5, 0x5a,
1130  0x27, 0x96 ),
1131  1 );
1132  bigint_bit_is_set_ok ( BIGINT ( 0x37 ),
1133  0, 1 );
1134  bigint_bit_is_set_ok ( BIGINT ( 0xe6, 0xcb ),
1135  0, 1 );
1136  bigint_bit_is_set_ok ( BIGINT ( 0xd9, 0x0c, 0x5b ),
1137  0, 1 );
1138  bigint_bit_is_set_ok ( BIGINT ( 0x8b, 0x56, 0x89, 0xaf ),
1139  0, 1 );
1140  bigint_bit_is_set_ok ( BIGINT ( 0x25, 0xfc, 0xaf, 0xeb, 0x81, 0xc3,
1141  0xb8, 0x2f, 0xbb, 0xe3, 0x07, 0xb2,
1142  0xe2, 0x2a, 0xe2, 0x2d, 0xb4, 0x4d,
1143  0x6d, 0xec, 0x51, 0xa0, 0x2f ),
1144  0, 1 );
1145  bigint_bit_is_set_ok ( BIGINT ( 0x25, 0xfc, 0xaf, 0xeb, 0x81, 0xc3,
1146  0xb8, 0x2f, 0xbb, 0xe3, 0x07, 0xb2,
1147  0xe2, 0x2a, 0xe2, 0x2d, 0xb4, 0x4d,
1148  0x6d, 0xec, 0x51, 0xa0, 0x2f ),
1149  45, 0 );
1150  bigint_bit_is_set_ok ( BIGINT ( 0x88, 0x04, 0xec, 0xe6, 0xfb, 0x31,
1151  0x87, 0x43, 0xb2, 0x04, 0x9e, 0x09,
1152  0xba, 0x3e, 0x6d, 0x64, 0x1a, 0x85,
1153  0xb6, 0x46, 0x7d, 0x71, 0x3c, 0x06,
1154  0xd6, 0x40, 0x52, 0x39, 0x95, 0xa1,
1155  0x06, 0xff, 0x6a, 0x5c, 0xa3, 0x6d,
1156  0x4a, 0xc9, 0x77, 0x87, 0x75, 0x25,
1157  0x57, 0x65, 0x72, 0x73, 0x64, 0x7e,
1158  0xe9, 0x16, 0x17, 0xf3, 0x65, 0x3f,
1159  0xd5, 0xcc, 0xd7, 0xa2, 0xee, 0xe7,
1160  0x8d, 0x48, 0xd5, 0x7e, 0xdd, 0x59,
1161  0x4b, 0xf0, 0x96, 0x8b, 0x21, 0x65,
1162  0x04, 0x66, 0xc5, 0xff, 0x3e, 0x60,
1163  0xba, 0x28, 0x38, 0x7d, 0x9c, 0x09,
1164  0xd1, 0x8e, 0xac, 0x73, 0x8e, 0xf2,
1165  0x1e, 0xdf, 0x83, 0x6e, 0x54, 0xd5,
1166  0x34, 0xc1, 0xc6, 0xf9, 0x62, 0x2a,
1167  0x7d, 0xec, 0x47, 0xf2, 0xfc, 0xa2,
1168  0x10, 0x0a, 0x67, 0x1b, 0xc6, 0x11,
1169  0x9d, 0x68, 0x25, 0x8b, 0xb5, 0x9b,
1170  0x83, 0xf8, 0xa2, 0x11, 0xf5, 0xd4,
1171  0xcb, 0xe0 ),
1172  0, 0 );
1173  bigint_bit_is_set_ok ( BIGINT ( 0x88, 0x04, 0xec, 0xe6, 0xfb, 0x31,
1174  0x87, 0x43, 0xb2, 0x04, 0x9e, 0x09,
1175  0xba, 0x3e, 0x6d, 0x64, 0x1a, 0x85,
1176  0xb6, 0x46, 0x7d, 0x71, 0x3c, 0x06,
1177  0xd6, 0x40, 0x52, 0x39, 0x95, 0xa1,
1178  0x06, 0xff, 0x6a, 0x5c, 0xa3, 0x6d,
1179  0x4a, 0xc9, 0x77, 0x87, 0x75, 0x25,
1180  0x57, 0x65, 0x72, 0x73, 0x64, 0x7e,
1181  0xe9, 0x16, 0x17, 0xf3, 0x65, 0x3f,
1182  0xd5, 0xcc, 0xd7, 0xa2, 0xee, 0xe7,
1183  0x8d, 0x48, 0xd5, 0x7e, 0xdd, 0x59,
1184  0x4b, 0xf0, 0x96, 0x8b, 0x21, 0x65,
1185  0x04, 0x66, 0xc5, 0xff, 0x3e, 0x60,
1186  0xba, 0x28, 0x38, 0x7d, 0x9c, 0x09,
1187  0xd1, 0x8e, 0xac, 0x73, 0x8e, 0xf2,
1188  0x1e, 0xdf, 0x83, 0x6e, 0x54, 0xd5,
1189  0x34, 0xc1, 0xc6, 0xf9, 0x62, 0x2a,
1190  0x7d, 0xec, 0x47, 0xf2, 0xfc, 0xa2,
1191  0x10, 0x0a, 0x67, 0x1b, 0xc6, 0x11,
1192  0x9d, 0x68, 0x25, 0x8b, 0xb5, 0x9b,
1193  0x83, 0xf8, 0xa2, 0x11, 0xf5, 0xd4,
1194  0xcb, 0xe0 ),
1195  45, 1 );
1196  bigint_bit_is_set_ok ( BIGINT ( 0x88, 0x04, 0xec, 0xe6, 0xfb, 0x31,
1197  0x87, 0x43, 0xb2, 0x04, 0x9e, 0x09,
1198  0xba, 0x3e, 0x6d, 0x64, 0x1a, 0x85,
1199  0xb6, 0x46, 0x7d, 0x71, 0x3c, 0x06,
1200  0xd6, 0x40, 0x52, 0x39, 0x95, 0xa1,
1201  0x06, 0xff, 0x6a, 0x5c, 0xa3, 0x6d,
1202  0x4a, 0xc9, 0x77, 0x87, 0x75, 0x25,
1203  0x57, 0x65, 0x72, 0x73, 0x64, 0x7e,
1204  0xe9, 0x16, 0x17, 0xf3, 0x65, 0x3f,
1205  0xd5, 0xcc, 0xd7, 0xa2, 0xee, 0xe7,
1206  0x8d, 0x48, 0xd5, 0x7e, 0xdd, 0x59,
1207  0x4b, 0xf0, 0x96, 0x8b, 0x21, 0x65,
1208  0x04, 0x66, 0xc5, 0xff, 0x3e, 0x60,
1209  0xba, 0x28, 0x38, 0x7d, 0x9c, 0x09,
1210  0xd1, 0x8e, 0xac, 0x73, 0x8e, 0xf2,
1211  0x1e, 0xdf, 0x83, 0x6e, 0x54, 0xd5,
1212  0x34, 0xc1, 0xc6, 0xf9, 0x62, 0x2a,
1213  0x7d, 0xec, 0x47, 0xf2, 0xfc, 0xa2,
1214  0x10, 0x0a, 0x67, 0x1b, 0xc6, 0x11,
1215  0x9d, 0x68, 0x25, 0x8b, 0xb5, 0x9b,
1216  0x83, 0xf8, 0xa2, 0x11, 0xf5, 0xd4,
1217  0xcb, 0xe0 ),
1218  1013, 0 );
1219  bigint_max_set_bit_ok ( BIGINT ( 0x3a ),
1220  6 );
1221  bigint_max_set_bit_ok ( BIGINT ( 0x03 ),
1222  2 );
1223  bigint_max_set_bit_ok ( BIGINT ( 0x00 ),
1224  0 );
1225  bigint_max_set_bit_ok ( BIGINT ( 0xff ),
1226  8 );
1227  bigint_max_set_bit_ok ( BIGINT ( 0x20, 0x30 ),
1228  14 );
1229  bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x10 ),
1230  5 );
1231  bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00 ),
1232  0 );
1233  bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff ),
1234  16 );
1235  bigint_max_set_bit_ok ( BIGINT ( 0x06, 0xdb, 0x7a ),
1236  19 );
1237  bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00 ),
1238  0 );
1239  bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00 ),
1240  0 );
1241  bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff, 0xff ),
1242  24 );
1243  bigint_max_set_bit_ok ( BIGINT ( 0xee, 0xcb, 0x7b, 0xfd ),
1244  32 );
1245  bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x01, 0xdd ),
1246  9 );
1247  bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00 ),
1248  0 );
1249  bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff ),
1250  32 );
1251  bigint_max_set_bit_ok ( BIGINT ( 0x32, 0x39, 0x96, 0x52, 0x10, 0x67,
1252  0x7e, 0x32, 0xfc, 0x4e, 0x56, 0xc3,
1253  0x68, 0x18, 0x76, 0x1a, 0xac, 0x0e,
1254  0x93, 0xee, 0x55, 0xc5, 0x6e ),
1255  182 );
1256  bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1257  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1258  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1259  0x00, 0x00, 0xc8, 0xe6, 0x59 ),
1260  24 );
1261  bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1262  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1263  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1264  0x00, 0x00, 0x00, 0x00, 0x00 ),
1265  0 );
1266  bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1267  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1268  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1269  0xff, 0xff, 0xff, 0xff, 0xff ),
1270  184 );
1271  bigint_max_set_bit_ok ( BIGINT ( 0xcd, 0xb3, 0x22, 0x30, 0xdd, 0xa7,
1272  0xff, 0x37, 0xbf, 0xe3, 0x38, 0xf7,
1273  0xe1, 0x41, 0x73, 0xea, 0x3a, 0xfc,
1274  0x78, 0x9e, 0xfb, 0x4f, 0x85, 0xdc,
1275  0x1c, 0x40, 0x89, 0x6e, 0xda, 0xf9,
1276  0x9d, 0x6d, 0x12, 0x97, 0xb1, 0x80,
1277  0x2a, 0xeb, 0x91, 0xce, 0x3b, 0x83,
1278  0xb8, 0xa5, 0x3d, 0xce, 0x46, 0x56,
1279  0xb7, 0xd1, 0x28, 0xbc, 0x93, 0x4e,
1280  0x8c, 0x29, 0x6d, 0x2c, 0xcc, 0x58,
1281  0x49, 0x2f, 0x37, 0xa0, 0x08, 0x37,
1282  0x86, 0xdd, 0x38, 0x21, 0xa7, 0x57,
1283  0x37, 0xe3, 0xc5, 0xcc, 0x50, 0x11,
1284  0x1a, 0xe4, 0xea, 0xe7, 0x4d, 0x3c,
1285  0x37, 0x65, 0x78, 0xd1, 0xf6, 0xc3,
1286  0x94, 0x46, 0xd4, 0x0e, 0xd3, 0x9a,
1287  0x21, 0x8b, 0xa6, 0x54, 0xc0, 0xd2,
1288  0x88, 0x07, 0x24, 0xbf, 0x7d, 0x31,
1289  0xfd, 0x15, 0xa8, 0x92, 0x65, 0xe1,
1290  0x8d, 0xed, 0x70, 0x7b, 0x68, 0x0f,
1291  0xcc, 0x13, 0xb9, 0xb2, 0xdd, 0x3c,
1292  0x6a, 0x52 ),
1293  1024 );
1294  bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1295  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1296  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1297  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1298  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1299  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1300  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1301  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1302  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1303  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1304  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1305  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1306  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1307  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1308  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1309  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1310  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1311  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1312  0x00, 0x00, 0x00, 0x00, 0x66, 0xd9,
1313  0x91, 0x18, 0x6e, 0xd3, 0xff, 0x9b,
1314  0xdf, 0xf1, 0x9c, 0x7b, 0xf0, 0xa0,
1315  0xb9, 0xf5 ),
1316  127 );
1317  bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1318  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1319  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1320  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1321  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1322  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1323  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1324  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1325  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1326  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1327  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1328  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1329  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1330  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1331  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1332  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1333  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1334  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1335  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1336  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1337  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1338  0x00, 0x00 ),
1339  0 );
1340  bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1341  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1342  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1343  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1344  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1345  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1346  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1347  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1348  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1349  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1350  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1351  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1352  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1353  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1354  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1355  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1356  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1357  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1358  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1359  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1360  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1361  0xff, 0xff ),
1362  1024 );
1363  bigint_multiply_ok ( BIGINT ( 0xf0 ),
1364  BIGINT ( 0xeb ),
1365  BIGINT ( 0xdc, 0x50 ) );
1366  bigint_multiply_ok ( BIGINT ( 0xd7, 0x16 ),
1367  BIGINT ( 0x88, 0xfb ),
1368  BIGINT ( 0x73, 0x16, 0x92, 0x92 ) );
1369  bigint_multiply_ok ( BIGINT ( 0xfe, 0xed, 0x1d ),
1370  BIGINT ( 0x69, 0x9c, 0x03 ),
1371  BIGINT ( 0x69, 0x2a, 0x9c, 0x5f, 0x73, 0x57 ) );
1372  bigint_multiply_ok ( BIGINT ( 0x96, 0xe9, 0x6f, 0x81 ),
1373  BIGINT ( 0x67, 0x3c, 0x5a, 0x16 ),
1374  BIGINT ( 0x3c, 0xdb, 0x7f, 0xae, 0x12, 0x7e,
1375  0xef, 0x16 ) );
1376  bigint_multiply_ok ( BIGINT ( 0xe8, 0x08, 0x0b, 0xe9, 0x29, 0x36,
1377  0xea, 0x51, 0x1d, 0x75, 0x1a, 0xd5,
1378  0xba, 0xc6, 0xa0, 0xf3, 0x48, 0x5c,
1379  0xdf, 0x42, 0xdf, 0x28, 0x38 ),
1380  BIGINT ( 0x22, 0x07, 0x41, 0x54, 0x4e, 0xf9,
1381  0x90, 0xa8, 0xaf, 0xba, 0xf6, 0xb0,
1382  0x35, 0x7e, 0x98, 0xef, 0x2c, 0x31,
1383  0xc9, 0xa7, 0x25, 0x74, 0x8d ),
1384  BIGINT ( 0x1e, 0xd7, 0xa5, 0x03, 0xc0, 0x18,
1385  0x2e, 0x29, 0xb1, 0x3e, 0x96, 0x71,
1386  0x90, 0xa5, 0x6d, 0x43, 0x58, 0xf7,
1387  0x22, 0x80, 0x0b, 0x21, 0xc6, 0x70,
1388  0x90, 0x1c, 0xa8, 0x85, 0x87, 0xaf,
1389  0xd7, 0xdd, 0x27, 0x69, 0xaf, 0x20,
1390  0xa0, 0x2d, 0x43, 0x5d, 0xda, 0xba,
1391  0x4b, 0x3a, 0x86, 0xd8 ) );
1392  bigint_multiply_ok ( BIGINT ( 0xa2, 0x0f, 0xc6, 0x08, 0x0a, 0x01,
1393  0x19, 0x42, 0x0e, 0xaa, 0x5c, 0xae,
1394  0x4f, 0x4e, 0xb0, 0xad, 0xb2, 0xe8,
1395  0xee, 0xd5, 0x65, 0xec, 0x5a, 0xda,
1396  0xc0, 0xba, 0x78, 0xa8, 0x0f, 0x15,
1397  0x39, 0xd7, 0x7a, 0x10, 0xc2, 0xa7,
1398  0xec, 0x44, 0xac, 0xad, 0x39, 0x04,
1399  0x2e, 0x66, 0x54, 0x70, 0x57, 0xee,
1400  0xf6, 0x97, 0x19, 0x71, 0x16, 0xf9,
1401  0xbb, 0x2e, 0x84, 0x09, 0x6e, 0x9a,
1402  0x3b, 0x16, 0xb2, 0x65, 0x74, 0x50,
1403  0x19, 0xd1, 0xe9, 0x95, 0xa0, 0x7b,
1404  0x33, 0xb5, 0xac, 0x7c, 0x9e, 0xd4,
1405  0x68, 0x0d, 0xc9, 0xe4, 0x03, 0x86,
1406  0x1a, 0xa3, 0x42, 0x33, 0x28, 0x14,
1407  0x12, 0x7d, 0x5a, 0xd9, 0x30, 0x18,
1408  0x0a, 0xf4, 0x0c, 0x96, 0x58, 0xc9,
1409  0xb5, 0x37, 0xdb, 0x49, 0xdc, 0x01,
1410  0x4a, 0xcb, 0x6d, 0x87, 0x52, 0xf6,
1411  0xae, 0xa7, 0x71, 0x31, 0x9a, 0x1a,
1412  0xe2, 0x1c, 0x87, 0x51, 0xc9, 0xeb,
1413  0x70, 0x71 ),
1414  BIGINT ( 0x7c, 0xdd, 0x2f, 0x5d, 0x27, 0xfe,
1415  0xca, 0x70, 0x96, 0xc3, 0xb1, 0x1f,
1416  0xac, 0xa9, 0x3a, 0xdc, 0xcd, 0xbc,
1417  0x58, 0xb4, 0xde, 0xe7, 0xe5, 0x34,
1418  0x1a, 0xc0, 0xb9, 0x46, 0xf7, 0x52,
1419  0x76, 0x23, 0xe8, 0xe9, 0x92, 0xa1,
1420  0x86, 0x3c, 0x6f, 0xf1, 0x22, 0xf4,
1421  0x72, 0xb1, 0xde, 0xd3, 0x8f, 0x11,
1422  0x9e, 0x52, 0xe5, 0x81, 0x54, 0xe9,
1423  0xa7, 0x72, 0x3f, 0x3e, 0xa0, 0x80,
1424  0xbb, 0xae, 0x0e, 0x30, 0x6a, 0x11,
1425  0x91, 0x11, 0x3b, 0x3f, 0x44, 0x1f,
1426  0x8d, 0x4d, 0xea, 0xdd, 0x09, 0x95,
1427  0x9d, 0x02, 0xa6, 0x6d, 0x3b, 0x08,
1428  0x40, 0x8d, 0xb4, 0x4b, 0x05, 0x74,
1429  0x8c, 0x1f, 0xaa, 0x61, 0x6f, 0x0e,
1430  0xcc, 0xcf, 0xe0, 0x81, 0x03, 0xe4,
1431  0x9b, 0x11, 0xd9, 0xab, 0xf3, 0x24,
1432  0xe2, 0x3b, 0xe0, 0x05, 0x60, 0x65,
1433  0x16, 0xc6, 0x2e, 0x83, 0xa0, 0x98,
1434  0x8e, 0x11, 0x05, 0x00, 0xe4, 0x3f,
1435  0x7e, 0x65 ),
1436  BIGINT ( 0x4f, 0x0b, 0xa9, 0x85, 0xb8, 0x31,
1437  0x48, 0xea, 0x11, 0x44, 0xaf, 0x2d,
1438  0xed, 0x1a, 0x76, 0x45, 0xac, 0x87,
1439  0x0c, 0xf3, 0xd7, 0xc4, 0x8e, 0x5c,
1440  0xd7, 0xdf, 0x28, 0x74, 0xa6, 0x40,
1441  0xe4, 0x6b, 0x5b, 0x19, 0x36, 0x37,
1442  0x9c, 0xcd, 0x43, 0x76, 0x15, 0x00,
1443  0x5d, 0x23, 0xa2, 0x8a, 0x53, 0x25,
1444  0xbf, 0x18, 0xda, 0xe6, 0x09, 0xdf,
1445  0xaa, 0xeb, 0x9a, 0x82, 0x01, 0x14,
1446  0x2b, 0x20, 0x2b, 0xb6, 0x22, 0x62,
1447  0x6b, 0xcc, 0xd4, 0xc9, 0x02, 0x67,
1448  0x95, 0x43, 0x75, 0x4e, 0x97, 0x4e,
1449  0xec, 0x04, 0xde, 0x29, 0x0a, 0xef,
1450  0xf7, 0xc1, 0x72, 0x8c, 0x64, 0x38,
1451  0x16, 0x47, 0x9f, 0x16, 0x0c, 0xa5,
1452  0x79, 0x6b, 0xea, 0x2e, 0x4c, 0x3d,
1453  0x0c, 0xe6, 0x57, 0x51, 0x65, 0xa5,
1454  0x3b, 0xca, 0xae, 0x54, 0x0c, 0x67,
1455  0xf8, 0x23, 0x00, 0xc9, 0x8d, 0xe6,
1456  0x16, 0x91, 0x19, 0xb3, 0x5b, 0x68,
1457  0x7b, 0xf2, 0xe2, 0x5d, 0x69, 0x48,
1458  0x3f, 0x2b, 0xa0, 0x4f, 0x7c, 0x3c,
1459  0x26, 0xf9, 0xd9, 0xfd, 0x3d, 0x5d,
1460  0xd6, 0x05, 0x00, 0xd8, 0xdf, 0x5a,
1461  0x56, 0x8f, 0x16, 0x68, 0x4f, 0x15,
1462  0x19, 0x9d, 0xd7, 0x11, 0x51, 0x7d,
1463  0x73, 0x5c, 0xd4, 0xd5, 0xb4, 0xc7,
1464  0x42, 0xe3, 0xee, 0xf1, 0x67, 0xd6,
1465  0x69, 0x72, 0x04, 0x4b, 0x88, 0x3d,
1466  0x05, 0xd8, 0x1e, 0x50, 0xcb, 0xce,
1467  0x39, 0x19, 0x42, 0xb6, 0xa7, 0xf3,
1468  0xba, 0x78, 0x90, 0xd2, 0x09, 0x05,
1469  0x87, 0xf8, 0xc0, 0x9c, 0x47, 0xff,
1470  0xbf, 0xaa, 0x21, 0x8d, 0x81, 0x86,
1471  0xcd, 0x58, 0xdf, 0x30, 0xf1, 0xd1,
1472  0x60, 0x53, 0x85, 0x40, 0xbf, 0x14,
1473  0x3e, 0xdc, 0x9e, 0x9e, 0xc4, 0xc7,
1474  0x48, 0xa0, 0x83, 0xe0, 0x99, 0x8b,
1475  0x43, 0xf8, 0x52, 0x8a, 0x15, 0x88,
1476  0x89, 0x83, 0x7d, 0x71, 0xbb, 0x62,
1477  0x12, 0x7a, 0x23, 0x85, 0x3a, 0xbb,
1478  0xdb, 0x09, 0xfa, 0x95 ) );
1479  bigint_multiply_ok ( BIGINT ( 0xff ),
1480  BIGINT ( 0xff ),
1481  BIGINT ( 0xfe, 0x01 ) );
1482  bigint_multiply_ok ( BIGINT ( 0xff, 0xff ),
1483  BIGINT ( 0xff, 0xff ),
1484  BIGINT ( 0xff, 0xfe, 0x00, 0x01 ) );
1485  bigint_multiply_ok ( BIGINT ( 0xff, 0xff, 0xff ),
1486  BIGINT ( 0xff, 0xff, 0xff ),
1487  BIGINT ( 0xff, 0xff, 0xfe, 0x00, 0x00, 0x01 ) );
1488  bigint_multiply_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff ),
1489  BIGINT ( 0xff, 0xff, 0xff, 0xff ),
1490  BIGINT ( 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
1491  0x00, 0x01 ) );
1492  bigint_multiply_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1493  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1494  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1495  0xff, 0xff, 0xff, 0xff, 0xff ),
1496  BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1497  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1498  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1499  0xff, 0xff, 0xff, 0xff, 0xff ),
1500  BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1501  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1502  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1503  0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
1504  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1505  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1506  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1507  0x00, 0x00, 0x00, 0x01 ) );
1508  bigint_multiply_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1509  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1510  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1511  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1512  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1513  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1514  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1515  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1516  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1517  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1518  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1519  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1520  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1521  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1522  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1523  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1524  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1525  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1526  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1527  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1528  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1529  0xff, 0xff ),
1530  BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1531  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1532  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1533  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1534  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1535  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1536  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1537  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1538  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1539  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1540  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1541  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1542  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1543  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1544  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1545  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1546  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1547  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1548  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1549  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1550  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1551  0xff, 0xff ),
1552  BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1553  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1554  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1555  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1556  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1557  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1558  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1559  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1560  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1561  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1562  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1563  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1564  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1565  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1566  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1567  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1568  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1569  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1570  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1571  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1572  0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1573  0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
1574  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1575  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1576  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1577  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1578  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1579  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1580  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1581  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1582  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1583  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1584  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1585  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1586  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1587  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1588  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1589  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1590  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1591  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1592  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1593  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1594  0x00, 0x00, 0x00, 0x01 ) );
1595  bigint_mod_multiply_ok ( BIGINT ( 0x37 ),
1596  BIGINT ( 0x67 ),
1597  BIGINT ( 0x3f ),
1598  BIGINT ( 0x3a ) );
1599  bigint_mod_multiply_ok ( BIGINT ( 0x45, 0x94 ),
1600  BIGINT ( 0xbd, 0xd2 ),
1601  BIGINT ( 0xca, 0xc7 ),
1602  BIGINT ( 0xac, 0xc1 ) );
1603  bigint_mod_multiply_ok ( BIGINT ( 0x8e, 0xcd, 0x74 ),
1604  BIGINT ( 0xe2, 0xf1, 0xea ),
1605  BIGINT ( 0x59, 0x51, 0x53 ),
1606  BIGINT ( 0x22, 0xdd, 0x1c ) );
1607  bigint_mod_multiply_ok ( BIGINT ( 0xc2, 0xa8, 0x40, 0x6f ),
1608  BIGINT ( 0x29, 0xd7, 0xf4, 0x77 ),
1609  BIGINT ( 0xbb, 0xbd, 0xdb, 0x3d ),
1610  BIGINT ( 0x8f, 0x39, 0xd0, 0x47 ) );
1611  bigint_mod_multiply_ok ( BIGINT ( 0x2e, 0xcb, 0x74, 0x7c, 0x64, 0x60,
1612  0xb3, 0x44, 0xf3, 0x23, 0x49, 0x4a,
1613  0xc6, 0xb6, 0xbf, 0xea, 0x80, 0xd8,
1614  0x34, 0xc5, 0x54, 0x22, 0x09 ),
1615  BIGINT ( 0x61, 0x2c, 0x5a, 0xc5, 0xde, 0x07,
1616  0x65, 0x8e, 0xab, 0x88, 0x1a, 0x2e,
1617  0x7a, 0x95, 0x17, 0xe3, 0x3b, 0x17,
1618  0xe4, 0x21, 0xb0, 0xb4, 0x57 ),
1619  BIGINT ( 0x8e, 0x46, 0xa5, 0x87, 0x7b, 0x7f,
1620  0xc4, 0xd7, 0x31, 0xb1, 0x94, 0xe7,
1621  0xe7, 0x1c, 0x7e, 0x7a, 0xc2, 0x6c,
1622  0xce, 0xcb, 0xc8, 0x5d, 0x70 ),
1623  BIGINT ( 0x1e, 0xd1, 0x5b, 0x3d, 0x1d, 0x17,
1624  0x7c, 0x31, 0x95, 0x13, 0x1b, 0xd8,
1625  0xee, 0x0a, 0xb0, 0xe1, 0x5b, 0x13,
1626  0xad, 0x83, 0xe9, 0xf8, 0x7f ) );
1627  bigint_mod_multiply_ok ( BIGINT ( 0x56, 0x37, 0xab, 0x07, 0x8b, 0x25,
1628  0xa7, 0xc2, 0x50, 0x30, 0x43, 0xfc,
1629  0x63, 0x8b, 0xdf, 0x84, 0x68, 0x85,
1630  0xca, 0xce, 0x44, 0x5c, 0xb1, 0x14,
1631  0xa4, 0xb5, 0xba, 0x43, 0xe0, 0x31,
1632  0x45, 0x6b, 0x82, 0xa9, 0x0b, 0x9e,
1633  0x3a, 0xb0, 0x39, 0x09, 0x2a, 0x68,
1634  0x2e, 0x0f, 0x09, 0x54, 0x47, 0x04,
1635  0xdb, 0xcf, 0x4a, 0x3a, 0x2d, 0x7b,
1636  0x7d, 0x50, 0xa4, 0xc5, 0xeb, 0x13,
1637  0xdd, 0x49, 0x61, 0x7d, 0x18, 0xa1,
1638  0x0d, 0x6b, 0x58, 0xba, 0x9f, 0x7c,
1639  0x81, 0x34, 0x9e, 0xf9, 0x9c, 0x9e,
1640  0x28, 0xa8, 0x1c, 0x15, 0x16, 0x20,
1641  0x3c, 0x0a, 0xb1, 0x11, 0x06, 0x93,
1642  0xbc, 0xd8, 0x4e, 0x49, 0xae, 0x7b,
1643  0xb4, 0x02, 0x8b, 0x1c, 0x5b, 0x18,
1644  0xb4, 0xac, 0x7f, 0xdd, 0x70, 0xef,
1645  0x87, 0xac, 0x1b, 0xac, 0x25, 0xa3,
1646  0xc9, 0xa7, 0x3a, 0xc5, 0x76, 0x68,
1647  0x09, 0x1f, 0xa1, 0x48, 0x53, 0xb6,
1648  0x13, 0xac ),
1649  BIGINT ( 0xef, 0x5c, 0x1f, 0x1a, 0x44, 0x64,
1650  0x66, 0xcf, 0xdd, 0x3f, 0x0b, 0x27,
1651  0x81, 0xa7, 0x91, 0x7a, 0x35, 0x7b,
1652  0x0f, 0x46, 0x5e, 0xca, 0xbf, 0xf8,
1653  0x50, 0x5e, 0x99, 0x7c, 0xc6, 0x64,
1654  0x43, 0x00, 0x9f, 0xb2, 0xda, 0xfa,
1655  0x42, 0x15, 0x9c, 0xa3, 0xd6, 0xc8,
1656  0x64, 0xa7, 0x65, 0x4a, 0x98, 0xf7,
1657  0xb3, 0x96, 0x5f, 0x42, 0xf9, 0x73,
1658  0xe1, 0x75, 0xc3, 0xc4, 0x0b, 0x5d,
1659  0x5f, 0xf3, 0x04, 0x8a, 0xee, 0x59,
1660  0xa6, 0x1b, 0x06, 0x38, 0x0b, 0xa2,
1661  0x9f, 0xb4, 0x4f, 0x6d, 0x50, 0x5e,
1662  0x37, 0x37, 0x21, 0x83, 0x9d, 0xa3,
1663  0x12, 0x16, 0x4d, 0xab, 0x36, 0x51,
1664  0x21, 0xb1, 0x74, 0x66, 0x40, 0x9a,
1665  0xd3, 0x72, 0xcc, 0x18, 0x40, 0x53,
1666  0x89, 0xff, 0xd7, 0x00, 0x8d, 0x7e,
1667  0x93, 0x81, 0xdb, 0x29, 0xb6, 0xd7,
1668  0x23, 0x2b, 0x67, 0x2f, 0x11, 0x98,
1669  0x49, 0x87, 0x2f, 0x46, 0xb7, 0x33,
1670  0x6d, 0x12 ),
1671  BIGINT ( 0x67, 0x7a, 0x17, 0x6a, 0xd2, 0xf8,
1672  0x49, 0xfb, 0x7c, 0x95, 0x25, 0x54,
1673  0xf0, 0xab, 0x5b, 0xb3, 0x0e, 0x01,
1674  0xab, 0xd3, 0x65, 0x6f, 0x7e, 0x18,
1675  0x05, 0xed, 0x9b, 0xc4, 0x90, 0x6c,
1676  0xd0, 0x6d, 0x94, 0x79, 0x28, 0xd6,
1677  0x24, 0x77, 0x9a, 0x08, 0xd2, 0x2f,
1678  0x7c, 0x2d, 0xa0, 0x0c, 0x14, 0xbe,
1679  0x7b, 0xee, 0x9e, 0x48, 0x88, 0x3c,
1680  0x8f, 0x9f, 0xb9, 0x7a, 0xcb, 0x98,
1681  0x76, 0x61, 0x0d, 0xee, 0xa2, 0x42,
1682  0x67, 0x1b, 0x2c, 0x42, 0x8f, 0x41,
1683  0xcc, 0x78, 0xba, 0xba, 0xaa, 0xa2,
1684  0x92, 0xb0, 0x6e, 0x0c, 0x4e, 0xe1,
1685  0xa5, 0x13, 0x7d, 0x8a, 0x8f, 0x81,
1686  0x95, 0x8a, 0xdf, 0x57, 0x93, 0x88,
1687  0x27, 0x4f, 0x1a, 0x59, 0xa4, 0x74,
1688  0x22, 0xa9, 0x78, 0xe5, 0xed, 0xb1,
1689  0x09, 0x26, 0x59, 0xde, 0x88, 0x21,
1690  0x8d, 0xa2, 0xa8, 0x58, 0x10, 0x7b,
1691  0x65, 0x96, 0xbf, 0x69, 0x3b, 0xc5,
1692  0x55, 0xf8 ),
1693  BIGINT ( 0x15, 0xf7, 0x00, 0xeb, 0xc7, 0x5a,
1694  0x6f, 0xf0, 0x50, 0xf3, 0x21, 0x8a,
1695  0x8e, 0xa6, 0xf6, 0x67, 0x56, 0x7d,
1696  0x07, 0x45, 0x89, 0xdb, 0xd7, 0x7e,
1697  0x9e, 0x28, 0x7f, 0xfb, 0xed, 0xca,
1698  0x2c, 0xbf, 0x47, 0x77, 0x99, 0x95,
1699  0xf3, 0xd6, 0x9d, 0xc5, 0x57, 0x81,
1700  0x7f, 0x97, 0xf2, 0x6b, 0x24, 0xee,
1701  0xce, 0xc5, 0x9b, 0xe6, 0x42, 0x2d,
1702  0x37, 0xb7, 0xeb, 0x3d, 0xb5, 0xf7,
1703  0x1e, 0x86, 0xc2, 0x40, 0x44, 0xc9,
1704  0x85, 0x5a, 0x1a, 0xc0, 0xac, 0x9e,
1705  0x78, 0x69, 0x00, 0x7b, 0x93, 0x65,
1706  0xd7, 0x7f, 0x0c, 0xd6, 0xba, 0x4f,
1707  0x06, 0x00, 0x61, 0x05, 0xb2, 0x44,
1708  0xb4, 0xe7, 0xbb, 0x3b, 0x96, 0xb0,
1709  0x6d, 0xe8, 0x43, 0xd2, 0x03, 0xb7,
1710  0x0a, 0xc4, 0x6d, 0x30, 0xd8, 0xd5,
1711  0xe6, 0x54, 0x65, 0xdd, 0xa9, 0x1b,
1712  0x50, 0xc0, 0xb9, 0x95, 0xb0, 0x7d,
1713  0x7c, 0xca, 0x63, 0xf8, 0x72, 0xbe,
1714  0x3b, 0x00 ) );
1715  bigint_mod_exp_ok ( BIGINT ( 0xcd ),
1716  BIGINT ( 0xbb ),
1717  BIGINT ( 0x25 ),
1718  BIGINT ( 0xab ) );
1719  bigint_mod_exp_ok ( BIGINT ( 0xc4 ),
1720  BIGINT ( 0xe9 ),
1721  BIGINT ( 0x02, 0x4c ),
1722  BIGINT ( 0x7e ) );
1723  bigint_mod_exp_ok ( BIGINT ( 0xcb ),
1724  BIGINT ( 0xde ),
1725  BIGINT ( 0xbd, 0x73, 0xbf ),
1726  BIGINT ( 0x17 ) );
1727  bigint_mod_exp_ok ( BIGINT ( 0x17 ),
1728  BIGINT ( 0xb9 ),
1729  BIGINT ( 0x39, 0x68, 0xba, 0x7d ),
1730  BIGINT ( 0x17 ) );
1731  bigint_mod_exp_ok ( BIGINT ( 0x2e ),
1732  BIGINT ( 0xb7 ),
1733  BIGINT ( 0x39, 0x07, 0x1b, 0x49, 0x5b, 0xea,
1734  0xf2, 0x61, 0x75, 0x94, 0x60, 0x86,
1735  0x73, 0xd0, 0xeb, 0x11, 0x08, 0x19,
1736  0x90, 0x19, 0xe0, 0xed, 0x2a ),
1737  BIGINT ( 0x19 ) );
1738  bigint_mod_exp_ok ( BIGINT ( 0x59 ),
1739  BIGINT ( 0xce ),
1740  BIGINT ( 0xdf, 0xbc, 0x0d, 0x0c, 0x09, 0xeb,
1741  0xf8, 0xcf, 0xdb, 0xb6, 0x00, 0xa3,
1742  0x9e, 0xc3, 0x6c, 0x8d, 0xf1, 0xc3,
1743  0x03, 0x36, 0xaa, 0xd4, 0x22, 0x7c,
1744  0x20, 0x7b, 0xa9, 0x9a, 0x01, 0xe4,
1745  0xf2, 0x50, 0x42, 0x29, 0x68, 0x7a,
1746  0xa6, 0x2c, 0xdf, 0xb6, 0x51, 0xa9,
1747  0x73, 0x10, 0x98, 0x37, 0x69, 0xb3,
1748  0x21, 0x49, 0x6d, 0xcc, 0x80, 0xfa,
1749  0x7e, 0x12, 0xe4, 0x9c, 0xc2, 0xbb,
1750  0xe3, 0xa3, 0x10, 0x3f, 0xba, 0x99,
1751  0x22, 0x79, 0x71, 0x39, 0x96, 0x7b,
1752  0x1a, 0x89, 0xdc, 0xda, 0x43, 0x52,
1753  0x50, 0x7b, 0xe3, 0x8c, 0xd3, 0xc0,
1754  0xf5, 0x7d, 0xfc, 0x80, 0x71, 0x6e,
1755  0xaf, 0x5c, 0xd0, 0x14, 0xc0, 0x60,
1756  0x24, 0xa8, 0x9a, 0x8a, 0x54, 0x4a,
1757  0x6f, 0x42, 0x7a, 0x14, 0x14, 0x25,
1758  0xd5, 0x22, 0x08, 0x8f, 0xd9, 0xdb,
1759  0xd4, 0x0f, 0x14, 0xf4, 0x3b, 0x26,
1760  0x0e, 0xb6, 0x72, 0xd7, 0x03, 0xd5,
1761  0xf0, 0x0e ),
1762  BIGINT ( 0xa9 ) );
1763  bigint_mod_exp_ok ( BIGINT ( 0x7f, 0x30 ),
1764  BIGINT ( 0x73, 0x74 ),
1765  BIGINT ( 0x75 ),
1766  BIGINT ( 0x4b, 0xe8 ) );
1767  bigint_mod_exp_ok ( BIGINT ( 0x04, 0x6c ),
1768  BIGINT ( 0x99, 0x04 ),
1769  BIGINT ( 0x33, 0xd2 ),
1770  BIGINT ( 0x86, 0x74 ) );
1771  bigint_mod_exp_ok ( BIGINT ( 0xca, 0x88 ),
1772  BIGINT ( 0xdc, 0x60 ),
1773  BIGINT ( 0x7e, 0x76, 0x79 ),
1774  BIGINT ( 0x42, 0x40 ) );
1775  bigint_mod_exp_ok ( BIGINT ( 0x68, 0x97 ),
1776  BIGINT ( 0x52, 0x8b ),
1777  BIGINT ( 0x4f, 0x7f, 0xe7, 0xda ),
1778  BIGINT ( 0x22, 0x77 ) );
1779  bigint_mod_exp_ok ( BIGINT ( 0xbd, 0x14 ),
1780  BIGINT ( 0x9e, 0xfc ),
1781  BIGINT ( 0x23, 0xf7, 0xd0, 0xa1, 0x9e, 0x9b,
1782  0x05, 0xd2, 0x44, 0x24, 0x4f, 0x3f,
1783  0x83, 0xcc, 0x49, 0x70, 0xa5, 0x0d,
1784  0xfc, 0xa7, 0x43, 0xf3, 0x3e ),
1785  BIGINT ( 0x1a, 0xc8 ) );
1786  bigint_mod_exp_ok ( BIGINT ( 0x46, 0x3e ),
1787  BIGINT ( 0xb8, 0xde ),
1788  BIGINT ( 0xa9, 0xc0, 0xdc, 0x45, 0x65, 0x0d,
1789  0xa5, 0x56, 0x70, 0x4c, 0xf1, 0xda,
1790  0xab, 0x64, 0xc2, 0x04, 0xf6, 0x32,
1791  0x20, 0x68, 0x31, 0x5f, 0x9a, 0x00,
1792  0x0f, 0x7b, 0x24, 0x33, 0xdf, 0xaf,
1793  0xfe, 0x03, 0x1e, 0x4a, 0xa1, 0xf8,
1794  0x45, 0x8d, 0x5a, 0x7d, 0x12, 0x58,
1795  0x00, 0x6d, 0xba, 0x79, 0x9f, 0xe1,
1796  0xa1, 0xfc, 0x1f, 0xb9, 0xf3, 0xa7,
1797  0x07, 0xf5, 0xfe, 0xd6, 0xa1, 0xba,
1798  0xda, 0x63, 0xef, 0x39, 0x8e, 0xb7,
1799  0x48, 0xa8, 0x81, 0x86, 0xb1, 0x22,
1800  0x14, 0x9f, 0x9e, 0xac, 0x69, 0xf7,
1801  0xae, 0x1f, 0xf2, 0x99, 0x41, 0xb7,
1802  0x37, 0xa7, 0xbc, 0x42, 0xf2, 0x45,
1803  0x43, 0xf2, 0x2a, 0xef, 0xc2, 0x83,
1804  0xd5, 0x32, 0x6e, 0xfa, 0x49, 0x1c,
1805  0x94, 0x9c, 0xc2, 0xc5, 0xad, 0x28,
1806  0x53, 0x1c, 0x11, 0xc4, 0x1c, 0x78,
1807  0x8f, 0x13, 0xdc, 0xb3, 0x2a, 0x63,
1808  0xfd, 0x1f, 0x89, 0x9b, 0x0c, 0x31,
1809  0x92, 0x73 ),
1810  BIGINT ( 0x7b, 0x8a ) );
1811  bigint_mod_exp_ok ( BIGINT ( 0xf3, 0xc3, 0xab ),
1812  BIGINT ( 0xd0, 0x7e, 0xd0 ),
1813  BIGINT ( 0xf6 ),
1814  BIGINT ( 0x1f, 0xb3, 0x09 ) );
1815  bigint_mod_exp_ok ( BIGINT ( 0x13, 0xec, 0xf6 ),
1816  BIGINT ( 0x87, 0x1a, 0x9a ),
1817  BIGINT ( 0x03, 0xf3 ),
1818  BIGINT ( 0x15, 0xe9, 0x8e ) );
1819  bigint_mod_exp_ok ( BIGINT ( 0x5a, 0x96, 0xe5 ),
1820  BIGINT ( 0x56, 0x4a, 0xd1 ),
1821  BIGINT ( 0x89, 0x62, 0x8e ),
1822  BIGINT ( 0x34, 0xb8, 0xaa ) );
1823  bigint_mod_exp_ok ( BIGINT ( 0x84, 0x7c, 0xbd ),
1824  BIGINT ( 0x3c, 0x80, 0x0a ),
1825  BIGINT ( 0x5e, 0x52, 0x9d, 0xba ),
1826  BIGINT ( 0x04, 0xcb, 0x4f ) );
1827  bigint_mod_exp_ok ( BIGINT ( 0x50, 0x01, 0x51 ),
1828  BIGINT ( 0x02, 0xe6, 0x96 ),
1829  BIGINT ( 0x34, 0x0c, 0x7e, 0xbf, 0x27, 0x23,
1830  0x46, 0x92, 0x1c, 0xca, 0x91, 0xab,
1831  0x50, 0x2c, 0x3a, 0x64, 0xc8, 0x4a,
1832  0x75, 0xd6, 0xe2, 0xde, 0x31 ),
1833  BIGINT ( 0x02, 0x16, 0x05 ) );
1834  bigint_mod_exp_ok ( BIGINT ( 0x5e, 0x47, 0xd8 ),
1835  BIGINT ( 0x26, 0xd1, 0xb6 ),
1836  BIGINT ( 0x49, 0x61, 0x84, 0x7a, 0xa9, 0xfb,
1837  0x93, 0x45, 0xe4, 0xfa, 0x53, 0x60,
1838  0x73, 0x98, 0x5a, 0x17, 0xe7, 0x77,
1839  0x2d, 0xcd, 0x97, 0xf4, 0xc0, 0x34,
1840  0x46, 0xfa, 0xbd, 0x21, 0xdf, 0xa5,
1841  0xa0, 0x12, 0x38, 0x7c, 0xbd, 0xd9,
1842  0xcd, 0xbc, 0xde, 0x29, 0xa5, 0x13,
1843  0xa8, 0xf0, 0xf6, 0x88, 0xc6, 0x31,
1844  0xed, 0x90, 0x19, 0x11, 0x7d, 0xe1,
1845  0x0e, 0x81, 0x98, 0x8e, 0x98, 0x86,
1846  0xde, 0x2a, 0x4c, 0xad, 0xff, 0x57,
1847  0x12, 0xbc, 0x4b, 0xaf, 0x21, 0xde,
1848  0xca, 0x3a, 0x25, 0xd7, 0x98, 0xe3,
1849  0x25, 0xbc, 0x17, 0x74, 0x0b, 0x9c,
1850  0x53, 0xe1, 0x1a, 0xec, 0x9a, 0x5a,
1851  0xdc, 0x68, 0xdf, 0xad, 0xd6, 0x71,
1852  0x6b, 0x5b, 0x8b, 0x85, 0xbb, 0xe5,
1853  0xd5, 0x14, 0x4c, 0x30, 0x27, 0x68,
1854  0xd1, 0xf7, 0x58, 0x34, 0x4c, 0xe1,
1855  0x71, 0xde, 0x7b, 0x8d, 0xa2, 0xe6,
1856  0x0a, 0x44, 0x22, 0x26, 0x5a, 0x70,
1857  0xbb, 0x68 ),
1858  BIGINT ( 0x18, 0x36, 0x96 ) );
1859  bigint_mod_exp_ok ( BIGINT ( 0xc7, 0x4a, 0xf0, 0x48 ),
1860  BIGINT ( 0x5d, 0x27, 0x07, 0x54 ),
1861  BIGINT ( 0x4a ),
1862  BIGINT ( 0x48, 0x68, 0x7b, 0xe0 ) );
1863  bigint_mod_exp_ok ( BIGINT ( 0xb4, 0x89, 0xc9, 0x5b ),
1864  BIGINT ( 0x7c, 0xd7, 0xc7, 0xff ),
1865  BIGINT ( 0xc6, 0x9c ),
1866  BIGINT ( 0x0b, 0x2d, 0xf8, 0xf7 ) );
1867  bigint_mod_exp_ok ( BIGINT ( 0xea, 0x72, 0x43, 0xfe ),
1868  BIGINT ( 0xfc, 0x57, 0x2d, 0x47 ),
1869  BIGINT ( 0x60, 0x01, 0x2c ),
1870  BIGINT ( 0x12, 0x01, 0xe3, 0xf5 ) );
1871  bigint_mod_exp_ok ( BIGINT ( 0x81, 0x7f, 0x27, 0x94 ),
1872  BIGINT ( 0x17, 0x21, 0x67, 0xab ),
1873  BIGINT ( 0x50, 0x19, 0x12, 0x52 ),
1874  BIGINT ( 0x05, 0x17, 0x6b, 0x13 ) );
1875  bigint_mod_exp_ok ( BIGINT ( 0x38, 0xab, 0xd4, 0xec ),
1876  BIGINT ( 0x0c, 0x2a, 0x56, 0x38 ),
1877  BIGINT ( 0x2f, 0x85, 0x85, 0x57, 0xf6, 0xde,
1878  0x24, 0xb4, 0x28, 0x3c, 0x5a, 0x3c,
1879  0x0b, 0x12, 0x85, 0x85, 0x85, 0x98,
1880  0x46, 0x5b, 0x9c, 0x52, 0x3a ),
1881  BIGINT ( 0x02, 0xe6, 0x6a, 0x70 ) );
1882  bigint_mod_exp_ok ( BIGINT ( 0xa6, 0x35, 0xc0, 0x6f ),
1883  BIGINT ( 0x23, 0xac, 0x78, 0x72 ),
1884  BIGINT ( 0x6a, 0x07, 0x80, 0xbf, 0x1b, 0xa5,
1885  0xf8, 0x0b, 0x90, 0x06, 0xa4, 0xa5,
1886  0x44, 0x13, 0xba, 0x4b, 0xb3, 0xce,
1887  0x9f, 0x55, 0x42, 0x56, 0xc3, 0x30,
1888  0x82, 0x85, 0x5a, 0x3b, 0xae, 0x88,
1889  0x92, 0x4e, 0x3c, 0x37, 0xf6, 0x80,
1890  0x4c, 0x03, 0x3c, 0x1e, 0x2c, 0x17,
1891  0xef, 0x9d, 0xd7, 0x6f, 0xdc, 0xbb,
1892  0x42, 0x42, 0xa1, 0x7f, 0x97, 0x66,
1893  0xcd, 0xc8, 0x8a, 0x7c, 0xc6, 0x70,
1894  0x61, 0x54, 0x82, 0xd0, 0xd0, 0x8b,
1895  0xd5, 0x4f, 0x57, 0x7b, 0x8e, 0xab,
1896  0xdc, 0xbf, 0x8e, 0x85, 0x94, 0x83,
1897  0x8a, 0xb3, 0x72, 0x69, 0x2d, 0x51,
1898  0xdd, 0x86, 0x1e, 0x58, 0xb8, 0x00,
1899  0xe2, 0x5e, 0xa7, 0xef, 0x6a, 0x6a,
1900  0xb0, 0x10, 0x3d, 0x53, 0xfe, 0x23,
1901  0x51, 0xc0, 0x51, 0xed, 0x1f, 0x02,
1902  0x4b, 0x73, 0x17, 0x59, 0xfa, 0xb9,
1903  0xa8, 0x05, 0xa7, 0x79, 0xc3, 0xc9,
1904  0x4c, 0x2d, 0x58, 0x59, 0x10, 0x99,
1905  0x71, 0xe6 ),
1906  BIGINT ( 0x01, 0x63, 0xd0, 0x07 ) );
1907  bigint_mod_exp_ok ( BIGINT ( 0xff, 0x2a, 0x37, 0x04, 0xd4, 0x08,
1908  0x9f, 0xf5, 0xac, 0x29, 0x7f, 0x4b,
1909  0x93, 0x86, 0x02, 0x26, 0xac, 0x29,
1910  0xa8, 0xf9, 0x77, 0x91, 0x20 ),
1911  BIGINT ( 0x2c, 0xb2, 0xe2, 0x1f, 0x4b, 0x97,
1912  0xaa, 0x3b, 0xd1, 0x36, 0xb0, 0x40,
1913  0x8b, 0x1c, 0x19, 0xa2, 0xea, 0xc8,
1914  0xc6, 0x4e, 0x2a, 0x66, 0x50 ),
1915  BIGINT ( 0x97 ),
1916  BIGINT ( 0x04, 0x22, 0x44, 0xe2, 0x14, 0x54,
1917  0x6c, 0x5a, 0xba, 0x1b, 0x39, 0xb7,
1918  0xaa, 0x06, 0xcf, 0x2b, 0xc8, 0x7e,
1919  0xc0, 0xe0, 0x70, 0xf2, 0x90 ) );
1920  bigint_mod_exp_ok ( BIGINT ( 0xcd, 0xf3, 0xf7, 0x50, 0x13, 0x39,
1921  0x13, 0x4a, 0x56, 0xc5, 0xb8, 0xa6,
1922  0x42, 0x2d, 0x40, 0x5e, 0x07, 0xf2,
1923  0x92, 0x2a, 0x51, 0x87, 0x20 ),
1924  BIGINT ( 0x93, 0x1a, 0x28, 0xbb, 0x69, 0x4f,
1925  0x31, 0x01, 0xe0, 0x88, 0x8a, 0x4c,
1926  0x4f, 0x9b, 0xda, 0xf6, 0x4e, 0xf3,
1927  0x11, 0xe7, 0x35, 0xa1, 0xfb ),
1928  BIGINT ( 0x66, 0x69 ),
1929  BIGINT ( 0x7a, 0x5a, 0x9b, 0x84, 0x72, 0x8f,
1930  0x57, 0x31, 0xb4, 0x34, 0x70, 0x18,
1931  0x77, 0xa6, 0x43, 0xa9, 0x51, 0x69,
1932  0x07, 0x3e, 0xf6, 0x68, 0x82 ) );
1933  bigint_mod_exp_ok ( BIGINT ( 0xdd, 0x4c, 0x85, 0xcb, 0x3f, 0x45,
1934  0x61, 0xe0, 0x58, 0x1e, 0xad, 0xd3,
1935  0x6b, 0xef, 0x82, 0x53, 0x4a, 0x16,
1936  0x1a, 0xf0, 0x09, 0x82, 0x74 ),
1937  BIGINT ( 0xd2, 0xa2, 0x73, 0x89, 0x0c, 0x56,
1938  0xe4, 0x31, 0xdf, 0x70, 0x3c, 0x40,
1939  0x0d, 0x36, 0xfc, 0x4a, 0xf3, 0xa2,
1940  0x8f, 0x9a, 0x9d, 0xaa, 0xb0 ),
1941  BIGINT ( 0xbc, 0xca, 0x45 ),
1942  BIGINT ( 0x9f, 0x5f, 0x7c, 0xac, 0x5e, 0xc7,
1943  0xf2, 0xc5, 0x72, 0x3d, 0xff, 0x29,
1944  0xd2, 0x25, 0xa9, 0x64, 0x5b, 0xbe,
1945  0x63, 0x63, 0xc6, 0x84, 0x20 ) );
1946  bigint_mod_exp_ok ( BIGINT ( 0xf8, 0xc9, 0xb9, 0x3d, 0xe1, 0xff,
1947  0xa6, 0x8e, 0xb0, 0xd2, 0xa9, 0xa9,
1948  0xc1, 0x5c, 0xc5, 0x94, 0x90, 0xb9,
1949  0xca, 0x2f, 0x1a, 0xbd, 0x21 ),
1950  BIGINT ( 0xa7, 0xf4, 0xb0, 0x3c, 0xf4, 0x2b,
1951  0x9d, 0x40, 0x5f, 0xfd, 0x2e, 0x28,
1952  0xa9, 0x23, 0x01, 0xaf, 0x0b, 0x73,
1953  0xaa, 0xcf, 0x14, 0xdc, 0xd8 ),
1954  BIGINT ( 0x31, 0xe2, 0xe8, 0xf0 ),
1955  BIGINT ( 0x53, 0x30, 0xc6, 0x10, 0x12, 0x7c,
1956  0xb3, 0x91, 0x15, 0x5f, 0x01, 0x62,
1957  0xec, 0x1f, 0x15, 0x61, 0x3b, 0x9a,
1958  0x76, 0x22, 0xf8, 0x31, 0xb1 ) );
1959  bigint_mod_exp_ok ( BIGINT ( 0xff, 0x8c, 0x04, 0x74, 0x3e, 0x93,
1960  0xfd, 0xce, 0xd5, 0x7f, 0xc5, 0x58,
1961  0xce, 0x00, 0x53, 0x44, 0x02, 0xf4,
1962  0xfd, 0x01, 0xc3, 0xb0, 0x3c ),
1963  BIGINT ( 0x2f, 0xbe, 0xb3, 0x2d, 0xd6, 0x59,
1964  0x69, 0x44, 0xc0, 0xd4, 0x27, 0x9c,
1965  0xff, 0x53, 0x9e, 0x66, 0x2c, 0x01,
1966  0x3a, 0x96, 0x5d, 0x75, 0xc1 ),
1967  BIGINT ( 0x47, 0x3e, 0xb2, 0x81, 0x51, 0x9a,
1968  0xdf, 0x75, 0xba, 0xa5, 0x19, 0xc1,
1969  0xc7, 0xcc, 0xae, 0x82, 0x9c, 0x3e,
1970  0xfd, 0x7f, 0xb0, 0xd7, 0x00 ),
1971  BIGINT ( 0x09, 0x9c, 0xd0, 0x49, 0x1d, 0x88,
1972  0xd8, 0x08, 0x45, 0x61, 0x71, 0xa1,
1973  0xb5, 0xab, 0xa9, 0x5b, 0xa8, 0xf1,
1974  0xc6, 0x53, 0x68, 0x8f, 0x3e ) );
1975  bigint_mod_exp_ok ( BIGINT ( 0xd8, 0x78, 0xad, 0x80, 0x81, 0xf1,
1976  0x84, 0x23, 0x82, 0x5d, 0x49, 0x46,
1977  0x75, 0xfd, 0xd1, 0x49, 0x53, 0x10,
1978  0x4d, 0x10, 0xab, 0x0f, 0xf0 ),
1979  BIGINT ( 0x78, 0x3d, 0x09, 0x1b, 0xea, 0xa4,
1980  0xb9, 0x13, 0xf8, 0xb5, 0xb5, 0x5e,
1981  0x69, 0xa4, 0xe1, 0xfd, 0x88, 0x58,
1982  0x26, 0xb3, 0x76, 0xa2, 0x38 ),
1983  BIGINT ( 0x3b, 0x12, 0xe0, 0x8e, 0xa2, 0x2f,
1984  0x2a, 0x2b, 0xb1, 0x78, 0xf9, 0xf6,
1985  0x93, 0x4d, 0x52, 0x82, 0x29, 0x2d,
1986  0xe4, 0x36, 0x92, 0x49, 0xc1, 0x25,
1987  0x6e, 0x26, 0xe6, 0x6e, 0xc2, 0x4d,
1988  0xea, 0x13, 0x86, 0x85, 0x71, 0x4d,
1989  0x85, 0x70, 0xf9, 0x2b, 0xa0, 0x0f,
1990  0x96, 0xe5, 0x63, 0x7a, 0xb4, 0x25,
1991  0x53, 0x1a, 0xd8, 0x30, 0x36, 0xba,
1992  0x6e, 0x2e, 0xce, 0x2d, 0x8f, 0x32,
1993  0xe9, 0xdc, 0x91, 0x9e, 0xd4, 0xf1,
1994  0x3b, 0x40, 0xc9, 0xf4, 0x97, 0x74,
1995  0x5e, 0x69, 0xcd, 0x34, 0x4a, 0x18,
1996  0x65, 0xe5, 0x07, 0xb5, 0x9e, 0x2a,
1997  0xc4, 0xeb, 0xb6, 0x96, 0x7b, 0x99,
1998  0x0c, 0xe4, 0xb3, 0x85, 0xff, 0x17,
1999  0x72, 0x5d, 0xf6, 0x30, 0xb4, 0xff,
2000  0x98, 0xe6, 0xf6, 0x31, 0x24, 0x82,
2001  0x91, 0xa6, 0x18, 0x6d, 0x0b, 0x84,
2002  0x6f, 0x5f, 0x64, 0xa3, 0xdf, 0x92,
2003  0x06, 0x16, 0xe3, 0x7c, 0x08, 0x61,
2004  0x77, 0xce ),
2005  BIGINT ( 0x17, 0xc9, 0xc5, 0x38, 0x4c, 0x15,
2006  0x0f, 0x4e, 0xc2, 0x90, 0x3b, 0x46,
2007  0x7b, 0x2f, 0x95, 0x82, 0xfe, 0x51,
2008  0x95, 0x2b, 0xff, 0xd5, 0x28 ) );
2009  bigint_mod_exp_ok ( BIGINT ( 0x69, 0xa3, 0x7e, 0x24, 0xdf, 0x9e,
2010  0x0b, 0x3e, 0x3f, 0x43, 0x06, 0x0e,
2011  0x1d, 0x57, 0x74, 0xe0, 0xa0, 0x5b,
2012  0x82, 0xca, 0xb0, 0x33, 0x8b, 0xe4,
2013  0x39, 0x27, 0x41, 0xd4, 0x2e, 0x30,
2014  0x3a, 0x0e, 0x62, 0x6f, 0xfa, 0xb4,
2015  0x02, 0x88, 0x70, 0x35, 0xa6, 0xea,
2016  0x7d, 0xb2, 0x87, 0xc3, 0xa5, 0x50,
2017  0x49, 0x38, 0xa4, 0x68, 0xa9, 0xe4,
2018  0xa6, 0xcc, 0xd7, 0x13, 0xb1, 0xd9,
2019  0x1c, 0x6a, 0x9a, 0xb8, 0x6c, 0x9b,
2020  0xff, 0xcd, 0x2c, 0xb3, 0xbd, 0xe2,
2021  0xfd, 0x1f, 0x08, 0xdd, 0xc6, 0xee,
2022  0x18, 0x0c, 0xa5, 0xcd, 0x09, 0x19,
2023  0x51, 0x51, 0xa5, 0x6f, 0x93, 0x1b,
2024  0x34, 0xfd, 0x8f, 0xd9, 0x87, 0xed,
2025  0x15, 0x7e, 0x36, 0x60, 0xdd, 0x1b,
2026  0xf4, 0xcc, 0xc4, 0x4c, 0x19, 0x2b,
2027  0xd6, 0x1e, 0xec, 0x51, 0xe9, 0x27,
2028  0xe9, 0xbd, 0x6a, 0x3f, 0x91, 0x45,
2029  0xc3, 0x6d, 0x40, 0x7e, 0x6c, 0x56,
2030  0x05, 0x5a ),
2031  BIGINT ( 0x5c, 0x96, 0x05, 0x81, 0x94, 0x45,
2032  0xcf, 0x47, 0x5f, 0x1b, 0xb0, 0xf9,
2033  0xef, 0x13, 0x8f, 0xcc, 0x71, 0xfd,
2034  0x50, 0xf1, 0xe7, 0x62, 0x6e, 0xfa,
2035  0x48, 0x66, 0x1c, 0xf7, 0xef, 0x09,
2036  0x12, 0xa2, 0xfd, 0x17, 0xb7, 0x6a,
2037  0x3b, 0xed, 0xf7, 0x86, 0xd2, 0xbe,
2038  0x95, 0x90, 0xc6, 0x00, 0x14, 0x8d,
2039  0xe3, 0x27, 0xbe, 0x03, 0x7c, 0x9e,
2040  0x6b, 0x51, 0x31, 0x8d, 0x18, 0xc4,
2041  0x16, 0xd2, 0x84, 0x63, 0x9b, 0xe9,
2042  0xa4, 0xf8, 0xff, 0x70, 0x4d, 0xeb,
2043  0x6f, 0x4a, 0xb7, 0x5b, 0x54, 0xf1,
2044  0xb5, 0xbe, 0x78, 0xb6, 0xfd, 0x8b,
2045  0xe1, 0x39, 0x62, 0x85, 0x9b, 0xde,
2046  0x30, 0xa8, 0xe4, 0x37, 0x52, 0x57,
2047  0x39, 0x79, 0xdb, 0x0b, 0x19, 0x6b,
2048  0xc9, 0x17, 0xfd, 0x8c, 0x2c, 0xaa,
2049  0xa4, 0xf1, 0x04, 0xd1, 0xd3, 0x2f,
2050  0xbb, 0x3a, 0x36, 0x82, 0x31, 0xa4,
2051  0x40, 0xd4, 0x87, 0x46, 0xe3, 0x6e,
2052  0xd0, 0x17 ),
2053  BIGINT ( 0x93 ),
2054  BIGINT ( 0x0d, 0x39, 0x92, 0x57, 0xaa, 0x6d,
2055  0xfc, 0x3b, 0x10, 0x18, 0x6d, 0x59,
2056  0xbe, 0x31, 0x8f, 0xee, 0xf9, 0x82,
2057  0x84, 0xe0, 0xdf, 0xa5, 0x00, 0x28,
2058  0xd1, 0x64, 0x6b, 0x4b, 0x43, 0x3b,
2059  0x76, 0x3e, 0x6b, 0xc4, 0xe4, 0xf5,
2060  0x0b, 0x59, 0x5a, 0xe4, 0x53, 0x5e,
2061  0x02, 0xd4, 0xde, 0x72, 0xd3, 0xa3,
2062  0x58, 0x66, 0xa7, 0xdd, 0x2b, 0x0b,
2063  0xa4, 0x83, 0xd0, 0xd9, 0xef, 0x29,
2064  0x3d, 0x2f, 0x97, 0xff, 0x9a, 0xc7,
2065  0xf6, 0x8a, 0x8d, 0x59, 0xef, 0x87,
2066  0xd1, 0xe6, 0xba, 0x4d, 0x99, 0xd9,
2067  0x5f, 0x5e, 0x7a, 0x7e, 0x67, 0x22,
2068  0x5b, 0x77, 0x83, 0xa2, 0x02, 0xfd,
2069  0xb2, 0xe4, 0xf6, 0x20, 0x4c, 0x12,
2070  0x20, 0xa7, 0xda, 0x5b, 0x3b, 0x8c,
2071  0xa2, 0xca, 0xda, 0x20, 0xaa, 0x27,
2072  0xe6, 0x54, 0x3e, 0xa8, 0x6f, 0x64,
2073  0x9d, 0xa7, 0x0d, 0x57, 0x1b, 0x21,
2074  0xff, 0xd2, 0xe2, 0xb2, 0x0a, 0x4f,
2075  0xb7, 0x0e ) );
2076  bigint_mod_exp_ok ( BIGINT ( 0x06, 0xcf, 0x54, 0xf2, 0x0d, 0x62,
2077  0x33, 0xdd, 0xe7, 0x4d, 0x7f, 0x2f,
2078  0x8e, 0x52, 0x73, 0xf4, 0x73, 0x68,
2079  0x4b, 0x13, 0x6e, 0x58, 0x6b, 0x4a,
2080  0xb8, 0x4c, 0xef, 0x73, 0xfe, 0x5f,
2081  0xf6, 0xd0, 0xbb, 0x82, 0x17, 0x3f,
2082  0x9d, 0x91, 0xf8, 0xa3, 0xb8, 0x79,
2083  0xef, 0x41, 0x38, 0xc1, 0xef, 0xc9,
2084  0xc6, 0xcf, 0x2a, 0xc3, 0xaa, 0x75,
2085  0x17, 0xda, 0xbc, 0x76, 0x29, 0x61,
2086  0x6d, 0x05, 0x79, 0x0b, 0x44, 0xb1,
2087  0x54, 0x75, 0xb7, 0xd9, 0xf6, 0xa8,
2088  0xbd, 0xf7, 0x85, 0xe0, 0xe7, 0x90,
2089  0x62, 0xce, 0x79, 0xfb, 0xc5, 0x23,
2090  0xa5, 0x09, 0xc0, 0xc4, 0x4d, 0xe7,
2091  0x9c, 0x49, 0x8f, 0x82, 0xf1, 0x31,
2092  0x34, 0x85, 0xdd, 0x3b, 0xbe, 0xe9,
2093  0x93, 0x19, 0x03, 0x75, 0x3f, 0xc4,
2094  0xa4, 0x0f, 0x52, 0x53, 0xc1, 0xcd,
2095  0x08, 0xb0, 0x05, 0x0c, 0xa2, 0x0c,
2096  0x3a, 0x72, 0xb2, 0x3c, 0xdb, 0x4f,
2097  0xac, 0xc6 ),
2098  BIGINT ( 0xe4, 0x40, 0xd8, 0x30, 0x00, 0xcf,
2099  0x4c, 0xfd, 0xda, 0xae, 0x90, 0xd3,
2100  0x5b, 0xc7, 0x20, 0xcc, 0x2b, 0xe2,
2101  0x0a, 0x39, 0x1e, 0xde, 0xef, 0x98,
2102  0x16, 0x3b, 0x9d, 0x36, 0x63, 0x0d,
2103  0x46, 0xed, 0x23, 0x6e, 0x38, 0xa8,
2104  0x15, 0xb5, 0xb1, 0xaf, 0x47, 0xb1,
2105  0xec, 0xaa, 0x8b, 0x57, 0xd6, 0xca,
2106  0x39, 0x2f, 0x62, 0xbd, 0xd5, 0xf8,
2107  0x98, 0x98, 0x5d, 0xfe, 0x14, 0xd6,
2108  0xdc, 0xe5, 0x98, 0x60, 0x5b, 0x16,
2109  0x92, 0xcb, 0xed, 0xb6, 0x9c, 0x5c,
2110  0x82, 0x40, 0x6b, 0xaa, 0x48, 0x7a,
2111  0xd4, 0xfe, 0xa3, 0xe7, 0x30, 0xf1,
2112  0x7c, 0xfb, 0x94, 0x2e, 0xeb, 0xb6,
2113  0x71, 0xe4, 0x33, 0x63, 0xc3, 0xb0,
2114  0x94, 0x6d, 0xee, 0xa5, 0x15, 0x3f,
2115  0x28, 0xf1, 0xfa, 0xdc, 0xf2, 0x13,
2116  0x0f, 0xc7, 0xd9, 0xe0, 0xbf, 0x1b,
2117  0x49, 0xee, 0x21, 0x8e, 0x26, 0xc9,
2118  0x28, 0x21, 0x86, 0x1d, 0x46, 0x33,
2119  0xd4, 0x69 ),
2120  BIGINT ( 0xd9, 0x87 ),
2121  BIGINT ( 0xdf, 0xff, 0xcc, 0xb7, 0xfe, 0x19,
2122  0x02, 0x92, 0x9d, 0xab, 0x33, 0xd2,
2123  0x21, 0xbc, 0xd3, 0xc4, 0x31, 0xad,
2124  0x4b, 0xb3, 0x16, 0x50, 0x96, 0xd9,
2125  0xdc, 0x88, 0x74, 0x60, 0xde, 0xdf,
2126  0xb7, 0x83, 0xdb, 0x22, 0xef, 0xcb,
2127  0xcb, 0xdb, 0x4c, 0xfb, 0x94, 0x4c,
2128  0x3f, 0xf5, 0xf5, 0x99, 0x85, 0x21,
2129  0x1a, 0x2b, 0xec, 0x90, 0x2d, 0xb4,
2130  0x20, 0x3c, 0x27, 0x9f, 0xe5, 0xb1,
2131  0x5c, 0x92, 0xfa, 0xb0, 0xa9, 0x8e,
2132  0x2c, 0x21, 0x8e, 0x8d, 0xe5, 0x55,
2133  0x84, 0x02, 0xa5, 0x15, 0x5c, 0x53,
2134  0x1f, 0x40, 0x81, 0x0a, 0x10, 0xde,
2135  0x21, 0x41, 0xa9, 0x97, 0xf8, 0x6f,
2136  0xbf, 0x42, 0x58, 0x9e, 0xc6, 0xdd,
2137  0x10, 0x33, 0x3f, 0xad, 0xe6, 0x8e,
2138  0x57, 0x27, 0x37, 0x20, 0xa4, 0x86,
2139  0xef, 0x39, 0x7b, 0x6f, 0x78, 0x77,
2140  0xab, 0xa0, 0x62, 0xe1, 0xfd, 0x9c,
2141  0xbe, 0xfa, 0x98, 0x2e, 0x29, 0xe3,
2142  0xeb, 0x52 ) );
2143  bigint_mod_exp_ok ( BIGINT ( 0x00, 0x91, 0xb3, 0x87, 0xe6, 0x01,
2144  0x57, 0xe9, 0x68, 0xa4, 0xf4, 0x9b,
2145  0xea, 0x6a, 0x8a, 0x9e, 0x1a, 0x8b,
2146  0xd3, 0x85, 0x9d, 0xba, 0x85, 0xab,
2147  0xd8, 0xcd, 0x25, 0x56, 0x8e, 0x85,
2148  0x8a, 0x8e, 0x48, 0x9e, 0xb4, 0x90,
2149  0xc8, 0x2e, 0x07, 0x78, 0x80, 0x49,
2150  0xa0, 0xb7, 0x95, 0x6a, 0xd8, 0xad,
2151  0xb5, 0xda, 0x5d, 0xe6, 0x11, 0x87,
2152  0xb8, 0x33, 0x8f, 0xa8, 0x6f, 0x4e,
2153  0xc6, 0xc3, 0x0d, 0xf5, 0xa9, 0x4e,
2154  0xb2, 0x42, 0x53, 0x81, 0xcd, 0x33,
2155  0x83, 0x49, 0xab, 0x0d, 0x0e, 0xf5,
2156  0x2c, 0xcd, 0x84, 0x58, 0xf3, 0x30,
2157  0xa3, 0x6e, 0x3c, 0x3a, 0xc6, 0x77,
2158  0x43, 0xb0, 0xe7, 0x4b, 0x66, 0x30,
2159  0xe9, 0x48, 0x0b, 0x0d, 0x86, 0x3f,
2160  0xd8, 0xe2, 0xb5, 0x88, 0xc1, 0x44,
2161  0xb2, 0x6b, 0xb0, 0x7a, 0x35, 0x3b,
2162  0x56, 0x83, 0xb1, 0xac, 0x9e, 0xeb,
2163  0x9b, 0x08, 0x43, 0xac, 0x0a, 0x3a,
2164  0x31, 0x69 ),
2165  BIGINT ( 0x96, 0x6f, 0xb0, 0xa7, 0x02, 0xb5,
2166  0xd9, 0x19, 0xbe, 0x4b, 0x27, 0x65,
2167  0x5b, 0x96, 0xd4, 0x0b, 0x49, 0x70,
2168  0xf0, 0x09, 0x8e, 0xf2, 0x04, 0x85,
2169  0x93, 0xe9, 0x2e, 0x09, 0x31, 0x76,
2170  0x8b, 0xbb, 0xe9, 0xe1, 0x2b, 0x4f,
2171  0xed, 0x83, 0xa6, 0x87, 0xa3, 0x07,
2172  0x0a, 0x3d, 0x1c, 0x65, 0x14, 0x5a,
2173  0xd5, 0xc0, 0x5d, 0x3c, 0x31, 0x9a,
2174  0x83, 0xad, 0xca, 0x6a, 0x93, 0x0d,
2175  0x1a, 0x67, 0x4e, 0x68, 0x06, 0x64,
2176  0x53, 0x2e, 0x15, 0xd9, 0xdd, 0x5e,
2177  0xcb, 0xb7, 0x2e, 0xef, 0xd3, 0xbb,
2178  0x5f, 0xaf, 0xef, 0x9e, 0xf2, 0x7b,
2179  0x69, 0x15, 0xb0, 0x18, 0x6c, 0x67,
2180  0x10, 0xda, 0x33, 0x07, 0x48, 0x97,
2181  0x31, 0xb3, 0x3d, 0x3d, 0xc9, 0x2e,
2182  0x0b, 0x68, 0x91, 0x3f, 0x6a, 0x3b,
2183  0x1a, 0xdf, 0xa8, 0x69, 0x46, 0x1c,
2184  0xb2, 0x69, 0x08, 0x0b, 0x02, 0x1b,
2185  0x03, 0x64, 0xae, 0xb6, 0x2d, 0xc6,
2186  0xc4, 0x0a ),
2187  BIGINT ( 0x6d, 0x3f, 0xdd ),
2188  BIGINT ( 0x40, 0x6e, 0x9d, 0x3e, 0xeb, 0xa4,
2189  0xb1, 0x8d, 0xb7, 0xb4, 0x0f, 0x5b,
2190  0x12, 0xad, 0x27, 0x9e, 0xbd, 0xe7,
2191  0xe5, 0x9d, 0xec, 0xb4, 0xac, 0x23,
2192  0x5f, 0xa9, 0xec, 0x9c, 0xd1, 0x6a,
2193  0xbe, 0x99, 0xba, 0xb3, 0x66, 0x0e,
2194  0x17, 0xaa, 0x13, 0xa2, 0x2e, 0x01,
2195  0x28, 0xb1, 0x6c, 0xba, 0xad, 0x68,
2196  0x48, 0xf0, 0xf3, 0x4c, 0x08, 0x9f,
2197  0xd1, 0x9c, 0xb7, 0x75, 0xc5, 0xb6,
2198  0x5a, 0x05, 0xb0, 0x14, 0xd4, 0x61,
2199  0xea, 0x18, 0x9f, 0xe6, 0xe5, 0xe3,
2200  0xd4, 0xff, 0x35, 0x43, 0x0b, 0xb8,
2201  0xf6, 0xe9, 0x19, 0x7a, 0x88, 0xa7,
2202  0x4d, 0x01, 0x92, 0x05, 0xd2, 0x6e,
2203  0xa3, 0xc1, 0xb6, 0x66, 0x75, 0xb1,
2204  0x00, 0x0d, 0x42, 0x37, 0xcc, 0xca,
2205  0xc0, 0x8d, 0xc8, 0x7e, 0x5c, 0xc9,
2206  0x53, 0x81, 0x2f, 0xc4, 0x61, 0xb6,
2207  0x96, 0x3b, 0xa5, 0x04, 0x14, 0x1b,
2208  0xa7, 0x77, 0xa1, 0xbc, 0x73, 0x1d,
2209  0xad, 0xed ) );
2210  bigint_mod_exp_ok ( BIGINT ( 0x45, 0xfb, 0xf3, 0xdc, 0x31, 0xe5,
2211  0x56, 0x7a, 0xee, 0x15, 0xfb, 0x16,
2212  0xee, 0x6e, 0x90, 0x3e, 0xa3, 0x89,
2213  0xc2, 0x6d, 0x9b, 0x06, 0x65, 0xd0,
2214  0xcd, 0xa2, 0xcc, 0x01, 0x60, 0x0d,
2215  0xd1, 0xdd, 0x68, 0x14, 0xc2, 0xcd,
2216  0xd8, 0x79, 0x75, 0xad, 0x0a, 0x9f,
2217  0x39, 0x5f, 0x52, 0x4b, 0x58, 0x31,
2218  0x48, 0xbb, 0x2a, 0xcc, 0xe0, 0x42,
2219  0x18, 0x32, 0xdc, 0x63, 0x14, 0x11,
2220  0x4e, 0xab, 0x96, 0x29, 0xc5, 0x06,
2221  0x79, 0xe5, 0x06, 0xf7, 0x59, 0xdb,
2222  0x1e, 0x51, 0xfd, 0xc4, 0x48, 0x3a,
2223  0x4c, 0x7f, 0xd0, 0xe2, 0x36, 0x86,
2224  0xc1, 0x8b, 0xc5, 0x86, 0x52, 0xe0,
2225  0xdb, 0x92, 0x5f, 0x0e, 0x19, 0xb1,
2226  0xa3, 0x23, 0xdd, 0xf0, 0x78, 0xcc,
2227  0x81, 0x3f, 0x4a, 0xe6, 0xb0, 0x32,
2228  0xd1, 0x5c, 0x5e, 0x3a, 0xb0, 0xd8,
2229  0xe2, 0x04, 0xc0, 0x30, 0x85, 0x1d,
2230  0x5e, 0x28, 0xee, 0xd9, 0xb3, 0x83,
2231  0x9f, 0xe2 ),
2232  BIGINT ( 0xb3, 0x2c, 0x2e, 0xc5, 0xba, 0xf8,
2233  0x41, 0x98, 0x79, 0x7e, 0xaa, 0x0c,
2234  0x2a, 0x8f, 0xd9, 0x56, 0x55, 0xaa,
2235  0x74, 0x60, 0x74, 0xd1, 0x49, 0x2c,
2236  0x6f, 0x0a, 0x4e, 0xf8, 0x3f, 0x1b,
2237  0x73, 0x4c, 0xe0, 0x17, 0x37, 0x06,
2238  0x76, 0x73, 0xd5, 0x2d, 0x4d, 0x3f,
2239  0xb0, 0x15, 0x7e, 0x98, 0xd0, 0xdf,
2240  0xf0, 0x33, 0x78, 0xe2, 0xe6, 0xec,
2241  0x21, 0x22, 0xad, 0xd5, 0xab, 0x2d,
2242  0x0d, 0x59, 0x95, 0x05, 0x34, 0x1f,
2243  0x51, 0xf5, 0xec, 0x93, 0x05, 0x15,
2244  0x37, 0xcf, 0x93, 0x03, 0xd7, 0xf6,
2245  0x35, 0x23, 0x8f, 0x33, 0xf6, 0xba,
2246  0x42, 0xc8, 0x52, 0x94, 0xd3, 0x33,
2247  0x3e, 0x39, 0x01, 0xd1, 0x55, 0x3f,
2248  0x48, 0x84, 0xe9, 0xbc, 0x0b, 0x0f,
2249  0xc9, 0x69, 0x41, 0x2c, 0x5f, 0x34,
2250  0xd0, 0xe6, 0x15, 0x50, 0x06, 0x64,
2251  0x5b, 0x8b, 0x71, 0x22, 0xb3, 0x3e,
2252  0x09, 0x9c, 0x76, 0x13, 0x9b, 0x29,
2253  0x57, 0x94 ),
2254  BIGINT ( 0xca, 0x94, 0xf7, 0xca ),
2255  BIGINT ( 0x83, 0x68, 0xb9, 0xe7, 0x91, 0xf3,
2256  0x3b, 0x5a, 0x0b, 0xb6, 0x1e, 0x2f,
2257  0x3f, 0x5f, 0xdc, 0x96, 0x5b, 0x7f,
2258  0x8d, 0xc5, 0x8e, 0xda, 0x6e, 0x21,
2259  0xe3, 0x20, 0xea, 0x37, 0x39, 0x3b,
2260  0xb4, 0xd7, 0xf6, 0xba, 0x61, 0xfe,
2261  0xdc, 0x7e, 0x82, 0x9a, 0x38, 0x7b,
2262  0xd5, 0xb1, 0x11, 0x98, 0xc4, 0x88,
2263  0x0b, 0x01, 0x7d, 0x81, 0xc9, 0x64,
2264  0x23, 0xc3, 0x3e, 0xf3, 0x67, 0x95,
2265  0x78, 0xca, 0xda, 0x52, 0xaf, 0x72,
2266  0x25, 0xd9, 0xf0, 0x27, 0xd3, 0x1c,
2267  0xfb, 0xad, 0xa1, 0xa7, 0x06, 0x2f,
2268  0xaa, 0x2f, 0x86, 0x5c, 0x8b, 0x30,
2269  0xe1, 0xda, 0x5a, 0x36, 0xf9, 0xfd,
2270  0xbf, 0xfe, 0x0d, 0x03, 0xf8, 0x9c,
2271  0x6b, 0x9b, 0xe5, 0x70, 0x6d, 0x75,
2272  0xd7, 0x54, 0x28, 0x43, 0x34, 0x69,
2273  0x98, 0x11, 0x29, 0xee, 0x50, 0x06,
2274  0xa4, 0xc4, 0x11, 0x6d, 0x60, 0x8c,
2275  0xcd, 0xd1, 0x88, 0xe9, 0x6b, 0xbb,
2276  0xc1, 0xd4 ) );
2277  bigint_mod_exp_ok ( BIGINT ( 0xa1, 0x01, 0x7e, 0xb4, 0x0e, 0x66,
2278  0xa5, 0x07, 0x8b, 0x10, 0x84, 0x0d,
2279  0x30, 0x0a, 0xa4, 0x2d, 0x10, 0x2c,
2280  0xd4, 0x9a, 0x27, 0xf1, 0x02, 0x8c,
2281  0x38, 0x18, 0x7f, 0x7f, 0x95, 0x65,
2282  0xf1, 0xa9, 0x3b, 0x7d, 0x1f, 0x4f,
2283  0x88, 0xb0, 0x65, 0x62, 0x63, 0x63,
2284  0xaa, 0x82, 0xfc, 0x83, 0x3a, 0x3a,
2285  0x46, 0x59, 0x6a, 0x89, 0xec, 0xa9,
2286  0xb0, 0x4c, 0x5e, 0xbe, 0x46, 0x98,
2287  0xd0, 0xd4, 0xb7, 0xe3, 0x1b, 0x30,
2288  0x0b, 0xfb, 0xbb, 0x4f, 0x0b, 0xd3,
2289  0xe4, 0xa0, 0x80, 0x54, 0xcb, 0x52,
2290  0x0a, 0xe8, 0x03, 0x75, 0x8e, 0x96,
2291  0xa4, 0x21, 0xaa, 0xbd, 0x7a, 0xfd,
2292  0xfa, 0xf8, 0xaf, 0x42, 0xf6, 0x61,
2293  0xd2, 0x93, 0xce, 0x66, 0x67, 0xe9,
2294  0x02, 0xda, 0x81, 0x0b, 0xb0, 0x1e,
2295  0x9e, 0x27, 0x57, 0x98, 0x18, 0x88,
2296  0x35, 0x49, 0xc0, 0x88, 0x88, 0x59,
2297  0xae, 0x2f, 0x66, 0x59, 0x31, 0x87,
2298  0x88, 0xda ),
2299  BIGINT ( 0xfe, 0x21, 0x7c, 0xf4, 0xbe, 0xae,
2300  0x65, 0xda, 0x89, 0xd2, 0x26, 0xd6,
2301  0x9c, 0x65, 0xc6, 0xb6, 0xb4, 0x0a,
2302  0x84, 0x11, 0xe1, 0xe8, 0xba, 0xd8,
2303  0x16, 0xcf, 0x60, 0x6c, 0x83, 0xa5,
2304  0x4a, 0xbf, 0xa2, 0x24, 0x0b, 0x66,
2305  0xda, 0xe2, 0x4e, 0x2d, 0xe5, 0x9e,
2306  0xbf, 0xad, 0x5c, 0xa3, 0x1e, 0x5c,
2307  0xbd, 0xe2, 0x5b, 0x46, 0xcf, 0xcc,
2308  0xd5, 0xc9, 0x13, 0x95, 0xc3, 0xdb,
2309  0x64, 0xbf, 0xeb, 0x31, 0xa9, 0x8a,
2310  0x3b, 0xd2, 0x5d, 0x3b, 0x2e, 0xdc,
2311  0x0c, 0xca, 0xab, 0xde, 0x92, 0xae,
2312  0x45, 0x35, 0x96, 0xb0, 0xb7, 0xb9,
2313  0xe6, 0xfe, 0x28, 0x0d, 0x10, 0x72,
2314  0x53, 0x8e, 0x21, 0xc0, 0x33, 0x79,
2315  0x01, 0x43, 0x8d, 0x77, 0xc4, 0xaa,
2316  0xcf, 0x7f, 0xc3, 0xd1, 0xf5, 0xfd,
2317  0x79, 0x81, 0xf6, 0x2e, 0xb7, 0xeb,
2318  0x55, 0x5f, 0x74, 0xf0, 0x3a, 0xb9,
2319  0x57, 0x07, 0x09, 0x97, 0xa5, 0x4c,
2320  0x4a, 0x85 ),
2321  BIGINT ( 0xd9, 0xb7, 0xb2, 0xd6, 0xeb, 0xf3,
2322  0x66, 0xbe, 0x15, 0x64, 0xad, 0x2e,
2323  0x9e, 0xc6, 0xaf, 0x5e, 0xaf, 0x40,
2324  0x1e, 0x90, 0x82, 0x2f, 0x98 ),
2325  BIGINT ( 0x12, 0x48, 0x31, 0x7f, 0x09, 0xbb,
2326  0x8f, 0xd9, 0x02, 0x7e, 0x4a, 0xd0,
2327  0x2f, 0x42, 0x7c, 0x17, 0x6e, 0x83,
2328  0x74, 0x21, 0x95, 0x47, 0x7d, 0x93,
2329  0x4a, 0xce, 0x34, 0x7c, 0xde, 0xc7,
2330  0x8f, 0xf6, 0x28, 0x97, 0xba, 0x81,
2331  0x9b, 0xcc, 0x54, 0x14, 0x7f, 0xd3,
2332  0x93, 0x66, 0x41, 0x8c, 0x0e, 0x47,
2333  0xee, 0xc5, 0x5e, 0xd6, 0x5f, 0x01,
2334  0x62, 0x97, 0xf1, 0x2b, 0xee, 0x60,
2335  0x5e, 0x82, 0x2c, 0x7b, 0x0a, 0xf2,
2336  0xc3, 0x23, 0xbf, 0xb9, 0x83, 0xf7,
2337  0x97, 0xf5, 0xca, 0x58, 0xd7, 0xf0,
2338  0x87, 0x7b, 0xcb, 0x87, 0x69, 0x42,
2339  0xbc, 0x05, 0xc4, 0xad, 0xbd, 0x82,
2340  0xcf, 0x44, 0x16, 0x4f, 0x46, 0xe0,
2341  0xde, 0x2f, 0xfa, 0x77, 0xec, 0xa4,
2342  0x23, 0x7d, 0x47, 0x3e, 0x94, 0x19,
2343  0x8b, 0xb8, 0x84, 0x81, 0x80, 0x6c,
2344  0x1e, 0x31, 0xa3, 0x6d, 0x14, 0x94,
2345  0x57, 0x28, 0x99, 0x08, 0x0a, 0xa7,
2346  0x98, 0x4b ) );
2347  bigint_mod_exp_ok ( BIGINT ( 0xda, 0x52, 0xfd, 0x44, 0x5d, 0x11,
2348  0x60, 0x6c, 0xec, 0x87, 0xbf, 0x19,
2349  0xb8, 0x46, 0xaa, 0x41, 0xfc, 0x10,
2350  0xae, 0x47, 0xd6, 0x72, 0x42, 0x57,
2351  0xc3, 0x05, 0xca, 0xe3, 0x59, 0x94,
2352  0x82, 0x7c, 0xa1, 0xe0, 0xd2, 0x6b,
2353  0x77, 0x71, 0x42, 0xa1, 0xf7, 0x84,
2354  0xae, 0xf4, 0x6f, 0x44, 0x0d, 0x88,
2355  0xa2, 0xc5, 0x45, 0x9b, 0x49, 0x36,
2356  0xd4, 0x20, 0x3a, 0x7c, 0x92, 0xdb,
2357  0x65, 0xd9, 0x20, 0xd6, 0x71, 0x22,
2358  0x90, 0x70, 0xbf, 0xf3, 0x17, 0xe8,
2359  0x2c, 0x10, 0xe9, 0x4c, 0x02, 0x69,
2360  0x37, 0xa2, 0x91, 0x04, 0x46, 0x11,
2361  0xdc, 0xab, 0x5b, 0x1e, 0x3e, 0x31,
2362  0xd8, 0x69, 0xf8, 0x48, 0x84, 0x1f,
2363  0x56, 0x46, 0xf1, 0xc0, 0x14, 0x3f,
2364  0xcc, 0x5d, 0xe2, 0xf7, 0x8b, 0xa4,
2365  0x9e, 0x94, 0x32, 0xaa, 0x3c, 0x5e,
2366  0x21, 0x70, 0x00, 0x24, 0x2a, 0x1b,
2367  0xec, 0x25, 0xb1, 0xb6, 0x83, 0x36,
2368  0x5a, 0x95 ),
2369  BIGINT ( 0x5e, 0xdc, 0x71, 0x1f, 0x5b, 0x55,
2370  0xaa, 0xda, 0x56, 0xf5, 0x93, 0x9b,
2371  0xe8, 0xfc, 0x6a, 0x80, 0xe1, 0xe3,
2372  0x93, 0xe4, 0xc0, 0x58, 0x6f, 0x22,
2373  0xce, 0x9d, 0x6f, 0x84, 0x4c, 0xd4,
2374  0x12, 0x44, 0x57, 0x25, 0xca, 0xe5,
2375  0x2b, 0x7c, 0x35, 0x88, 0xc7, 0x38,
2376  0x25, 0x20, 0x9b, 0x57, 0xf2, 0xf2,
2377  0x6c, 0x28, 0x47, 0x9c, 0x3f, 0x91,
2378  0x1e, 0x3f, 0xe9, 0xeb, 0x50, 0xd6,
2379  0xa7, 0x22, 0x88, 0x6c, 0x71, 0xe5,
2380  0x62, 0x2a, 0xb7, 0xce, 0xbe, 0xf7,
2381  0x1a, 0x8c, 0x52, 0xa6, 0xff, 0xb8,
2382  0x34, 0x83, 0x7e, 0x04, 0xa8, 0x9c,
2383  0xa8, 0xa7, 0xd1, 0x05, 0x8e, 0x13,
2384  0x03, 0xe0, 0x49, 0xd8, 0x4a, 0xc4,
2385  0x4d, 0x38, 0x21, 0x5b, 0x62, 0xc2,
2386  0x38, 0x23, 0x7c, 0x9e, 0xf1, 0xe9,
2387  0xb6, 0x9a, 0x75, 0x42, 0x14, 0x99,
2388  0x63, 0x36, 0x13, 0x4c, 0x2d, 0x3a,
2389  0x77, 0xd4, 0x74, 0xb7, 0x30, 0xb2,
2390  0x00, 0x0f ),
2391  BIGINT ( 0xe3, 0xe5, 0x3b, 0xb5, 0x92, 0x5a,
2392  0xc6, 0xfa, 0x8f, 0xe8, 0x00, 0xb9,
2393  0x5c, 0xa0, 0xb6, 0x3e, 0x5e, 0x14,
2394  0x12, 0xa9, 0xdd, 0x2a, 0x3d, 0x4d,
2395  0xa3, 0x91, 0x6a, 0x56, 0x99, 0xc2,
2396  0x6c, 0x8e, 0xda, 0xb0, 0x5a, 0x2a,
2397  0x37, 0x55, 0x8b, 0xd3, 0x9b, 0xb6,
2398  0x1d, 0x49, 0x7d, 0x81, 0x76, 0x1c,
2399  0x2e, 0xb9, 0x92, 0x6d, 0xfa, 0x54,
2400  0x53, 0xfc, 0x74, 0x9b, 0x6b, 0x63,
2401  0x95, 0x1a, 0x89, 0xcc, 0xbd, 0x36,
2402  0xc5, 0x31, 0x7f, 0xf5, 0x31, 0x69,
2403  0x40, 0xd5, 0x7b, 0x94, 0x5d, 0xa9,
2404  0xd1, 0x34, 0x95, 0xa1, 0x8b, 0xa5,
2405  0xb5, 0x83, 0xda, 0xb5, 0x9d, 0x5b,
2406  0x74, 0x41, 0xad, 0x81, 0x45, 0x40,
2407  0x9b, 0xc3, 0xe8, 0xfe, 0x47, 0xdc,
2408  0xb0, 0xc3, 0x34, 0x5d, 0xf6, 0x3c,
2409  0x1d, 0x07, 0x76, 0xd9, 0x25, 0xca,
2410  0xa2, 0x39, 0x6c, 0xa8, 0xae, 0x30,
2411  0x4a, 0xde, 0xfb, 0xeb, 0x19, 0x80,
2412  0x5e, 0x49 ),
2413  BIGINT ( 0x4b, 0x0e, 0x74, 0xb8, 0xa7, 0x92,
2414  0x74, 0xd9, 0x50, 0xf6, 0x1b, 0x67,
2415  0x76, 0x76, 0x56, 0x6c, 0x09, 0x9c,
2416  0x01, 0xda, 0xaf, 0xa3, 0xca, 0xb2,
2417  0x12, 0x85, 0x52, 0x24, 0xe9, 0x7e,
2418  0x2b, 0xf2, 0x6e, 0xe9, 0x1a, 0x10,
2419  0x5d, 0xa0, 0x25, 0x46, 0x8f, 0x2a,
2420  0x95, 0x62, 0x50, 0xb6, 0x66, 0x43,
2421  0x37, 0x8b, 0xcb, 0x05, 0xf8, 0x61,
2422  0x59, 0xf9, 0xdd, 0xd2, 0x68, 0x72,
2423  0xfa, 0x88, 0x13, 0x36, 0xd8, 0x24,
2424  0x73, 0xec, 0x47, 0x44, 0xdd, 0x45,
2425  0x8a, 0x59, 0xd2, 0xbd, 0x43, 0xe3,
2426  0x05, 0x16, 0xd5, 0x9b, 0x1c, 0x8a,
2427  0x4b, 0x07, 0xda, 0x58, 0x0d, 0x4a,
2428  0x4e, 0xe7, 0x15, 0xfc, 0xbd, 0x95,
2429  0xf7, 0x18, 0xa5, 0xa7, 0x93, 0xff,
2430  0xf8, 0x1f, 0xd4, 0x6b, 0x07, 0xc6,
2431  0x5d, 0x90, 0x73, 0x57, 0x57, 0x37,
2432  0xfa, 0x83, 0xd4, 0x7c, 0xe9, 0x77,
2433  0x46, 0x91, 0x3a, 0x50, 0x0d, 0x6a,
2434  0x25, 0xd0 ) );
2435 }
2436 
2437 /** Big integer self-test */
2438 struct self_test bigint_test __self_test = {
2439  .name = "bigint",
2440  .exec = bigint_test_exec,
2441 };
#define __attribute__(x)
Definition: compiler.h:10
void bigint_mod_exp_sample(const bigint_element_t *base0, const bigint_element_t *modulus0, const bigint_element_t *exponent0, bigint_element_t *result0, unsigned int size, unsigned int exponent_size, void *tmp)
Definition: bigint_test.c:184
int bigint_max_set_bit_sample(const bigint_element_t *value0, unsigned int size)
Definition: bigint_test.c:122
#define bigint_mod_exp(base, modulus, exponent, result, tmp)
Perform modular exponentiation of big integers.
Definition: bigint.h:233
#define BIGINT(...)
Define inline big integer.
Definition: bigint_test.c:41
static const uint32_t * reference0
Definition: bigint.h:168
#define bigint_max_set_bit(value)
Find highest bit set in big integer.
Definition: bigint.h:149
#define bigint_is_zero_ok(value, expected)
Report result of big integer zero comparison test.
Definition: bigint_test.c:328
static unsigned int unsigned int bit
Definition: bigint.h:205
#define bigint_ror(value)
Rotate big integer right.
Definition: bigint.h:104
#define bigint_is_geq_ok(value, reference, expected)
Report result of big integer greater-than-or-equal comparison test.
Definition: bigint_test.c:351
void bigint_ror_sample(bigint_element_t *value0, unsigned int size)
Definition: bigint_test.c:88
#define bigint_grow(source, dest)
Grow big integer.
Definition: bigint.h:159
void bigint_rol_sample(bigint_element_t *value0, unsigned int size)
Definition: bigint_test.c:81
static void bigint_test_exec(void)
Perform big integer self-tests.
Definition: bigint_test.c:563
#define bigint_init(value, data, len)
Initialise big integer.
Definition: bigint.h:48
Self-test infrastructure.
const char * name
Test set name.
Definition: test.h:17
#define bigint_add_ok(addend, value, expected)
Report result of big integer addition test.
Definition: bigint_test.c:209
#define bigint_is_zero(value)
Test if big integer is equal to zero.
Definition: bigint.h:116
A self-test set.
Definition: test.h:15
uint8_t multiplier
Port multiplier number.
Definition: edd.h:32
static uint32_t * value0
Definition: bigint.h:54
void bigint_init_sample(bigint_element_t *value0, unsigned int size, const void *data, size_t len)
Definition: bigint_test.c:45
Big integer support.
void bigint_shrink_sample(const bigint_element_t *source0, unsigned int source_size, bigint_element_t *dest0, unsigned int dest_size)
Definition: bigint_test.c:141
static __always_inline off_t userptr_t subtrahend
Definition: efi_uaccess.h:61
#define bigint_is_geq(value, reference)
Compare big integers.
Definition: bigint.h:127
int result
Definition: bigint.h:148
Assertions.
#define bigint_rol_ok(value, expected)
Report result of big integer left rotation test.
Definition: bigint_test.c:276
#define bigint_shrink(source, dest)
Shrink big integer.
Definition: bigint.h:172
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
uint32_t bigint_element_t
Element of a big integer.
Definition: bigint.h:15
#define bigint_ror_ok(value, expected)
Report result of big integer right rotation test.
Definition: bigint_test.c:302
#define bigint_mod_multiply_ok(multiplicand, multiplier, modulus, expected)
Report result of big integer modular multiplication test.
Definition: bigint_test.c:468
static unsigned int uint32_t unsigned int dest_size
Definition: bigint.h:250
void bigint_add_sample(const bigint_element_t *addend0, bigint_element_t *value0, unsigned int size)
Definition: bigint_test.c:61
__be32 out[4]
Definition: CIB_PRM.h:36
#define bigint_done(value, out, len)
Finalise big integer.
Definition: bigint.h:61
static void * dest
Definition: strings.h:176
pseudo_bit_t value[0x00020]
Definition: arbel.h:13
#define bigint_max_set_bit_ok(value, expected)
Report result of big integer maximum set bit test.
Definition: bigint_test.c:405
void bigint_multiply_sample(const bigint_element_t *multiplicand0, const bigint_element_t *multiplier0, bigint_element_t *result0, unsigned int size)
Definition: bigint_test.c:152
const bigint_t(size) __attribute__((may_alias)) *reference
#define bigint_rol(value)
Rotate big integer left.
Definition: bigint.h:94
uint8_t * tmp
Definition: entropy.h:156
#define bigint_bit_is_set_ok(value, bit, expected)
Report result of big integer bit-set test.
Definition: bigint_test.c:382
void bigint_subtract_sample(const bigint_element_t *subtrahend0, bigint_element_t *value0, unsigned int size)
Definition: bigint_test.c:71
#define bigint_multiply_ok(multiplicand, multiplier, expected)
Report result of big integer multiplication test.
Definition: bigint_test.c:428
uint16_t base
Base address.
Definition: edd.h:14
static unsigned int source_size
Definition: bigint.h:249
#define bigint_subtract_ok(subtrahend, value, expected)
Report result of big integer subtraction test.
Definition: bigint_test.c:243
uint32_t len
Length.
Definition: ena.h:14
struct self_test bigint_test __self_test
Big integer self-test.
Definition: bigint_test.c:2438
int bigint_is_geq_sample(const bigint_element_t *value0, const bigint_element_t *reference0, unsigned int size)
Definition: bigint_test.c:103
#define bigint_mod_multiply(multiplicand, multiplier, modulus, result, tmp)
Perform modular multiplication of big integers.
Definition: bigint.h:202
#define bigint_mod_exp_ok(base, modulus, exponent, expected)
Report result of big integer modular exponentiation test.
Definition: bigint_test.c:518
void bigint_done_sample(const bigint_element_t *value0, unsigned int size, void *out, size_t len)
Definition: bigint_test.c:53
int bigint_bit_is_set_sample(const bigint_element_t *value0, unsigned int size, unsigned int bit)
Definition: bigint_test.c:114
#define bigint_multiply(multiplicand, multiplier, result)
Multiply big integers.
Definition: bigint.h:186
uint8_t size
Entry size (in 32-bit words)
Definition: ena.h:16
void bigint_mod_multiply_sample(const bigint_element_t *multiplicand0, const bigint_element_t *multiplier0, const bigint_element_t *modulus0, bigint_element_t *result0, unsigned int size, void *tmp)
Definition: bigint_test.c:166
#define bigint_bit_is_set(value, bit)
Test if bit is set in big integer.
Definition: bigint.h:139
int bigint_is_zero_sample(const bigint_element_t *value0, unsigned int size)
Definition: bigint_test.c:95
struct arbelprm_port_state_change_st data
Message.
Definition: arbel.h:12
#define bigint_subtract(subtrahend, value)
Subtract big integers.
Definition: bigint.h:83
#define bigint_add(addend, value)
Add big integers.
Definition: bigint.h:72
String functions.
static unsigned int uint32_t * dest0
Definition: bigint.h:249
void bigint_grow_sample(const bigint_element_t *source0, unsigned int source_size, bigint_element_t *dest0, unsigned int dest_size)
Definition: bigint_test.c:130