OSDN Git Service

libgcc/
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 27 Sep 2007 17:47:23 +0000 (17:47 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 27 Sep 2007 17:47:23 +0000 (17:47 +0000)
2007-09-27  H.J. Lu  <hongjiu.lu@intel.com>

* Makefile.in (dfp-filenames): Replace decimal_globals,
decimal_data, binarydecimal and convert_data with
bid_decimal_globals, bid_decimal_data, bid_binarydecimal
and bid_convert_data, respectively.

libgcc/config/libbid/

2007-09-27  H.J. Lu  <hongjiu.lu@intel.com>

* bid128_fromstring.c: Removed.

* bid_dpd.c: New from libbid 2007-09-26.
* bid128_to_int16.c: Likewise.
* bid128_to_int8.c: Likewise.
* bid128_to_uint8.c: Likewise.
* bid128_to_uint16.c: Likewise.
* bid64_to_int16.c: Likewise.
* bid64_to_int8.c: Likewise.
* bid64_to_uint16.c: Likewise.
* bid64_to_uint8.c: Likewise.

* bid128_2_str.h: Updated from libbid 2007-09-26.
* bid128_2_str_macros.h: Likewise.
* bid128_2_str_tables.c: Likewise.
* bid128_add.c: Likewise.
* bid128.c: Likewise.
* bid128_compare.c: Likewise.
* bid128_div.c: Likewise.
* bid128_fma.c: Likewise.
* bid128_logb.c: Likewise.
* bid128_minmax.c: Likewise.
* bid128_mul.c: Likewise.
* bid128_next.c: Likewise.
* bid128_noncomp.c: Likewise.
* bid128_quantize.c: Likewise.
* bid128_rem.c: Likewise.
* bid128_round_integral.c: Likewise.
* bid128_scalb.c: Likewise.
* bid128_sqrt.c: Likewise.
* bid128_string.c: Likewise.
* bid128_to_int32.c: Likewise.
* bid128_to_int64.c: Likewise.
* bid128_to_uint32.c: Likewise.
* bid128_to_uint64.c: Likewise.
* bid32_to_bid128.c: Likewise.
* bid32_to_bid64.c: Likewise.
* bid64_add.c: Likewise.
* bid64_compare.c: Likewise.
* bid64_div.c: Likewise.
* bid64_fma.c: Likewise.
* bid64_logb.c: Likewise.
* bid64_minmax.c: Likewise.
* bid64_mul.c: Likewise.
* bid64_next.c: Likewise.
* bid64_noncomp.c: Likewise.
* bid64_quantize.c: Likewise.
* bid64_rem.c: Likewise.
* bid64_round_integral.c: Likewise.
* bid64_scalb.c: Likewise.
* bid64_sqrt.c: Likewise.
* bid64_string.c: Likewise.
* bid64_to_bid128.c: Likewise.
* bid64_to_int32.c: Likewise.
* bid64_to_int64.c: Likewise.
* bid64_to_uint32.c: Likewise.
* bid64_to_uint64.c: Likewise.
* bid_b2d.h: Likewise.
* bid_binarydecimal.c: Likewise.
* bid_conf.h: Likewise.
* bid_convert_data.c: Likewise.
* bid_decimal_data.c: Likewise.
* bid_decimal_globals.c: Likewise.
* bid_div_macros.h: Likewise.
* bid_flag_operations.c: Likewise.
* bid_from_int.c: Likewise.
* bid_functions.h: Likewise.
* bid_gcc_intrinsics.h: Likewise.
* bid_inline_add.h: Likewise.
* bid_internal.h: Likewise.
* bid_round.c: Likewise.
* bid_sqrt_macros.h: Likewise.
* _addsub_dd.c: Likewise.
* _addsub_sd.c: Likewise.
* _addsub_td.c: Likewise.
* _dd_to_df.c: Likewise.
* _dd_to_di.c: Likewise.
* _dd_to_sd.c: Likewise.
* _dd_to_sf.c: Likewise.
* _dd_to_si.c: Likewise.
* _dd_to_td.c: Likewise.
* _dd_to_tf.c: Likewise.
* _dd_to_udi.c: Likewise.
* _dd_to_usi.c: Likewise.
* _dd_to_xf.c: Likewise.
* _df_to_dd.c: Likewise.
* _df_to_sd.c: Likewise.
* _df_to_td.c: Likewise.
* _di_to_dd.c: Likewise.
* _di_to_sd.c: Likewise.
* _di_to_td.c: Likewise.
* _div_dd.c: Likewise.
* _div_sd.c: Likewise.
* _div_td.c: Likewise.
* _eq_dd.c: Likewise.
* _eq_sd.c: Likewise.
* _eq_td.c: Likewise.
* _ge_dd.c: Likewise.
* _ge_sd.c: Likewise.
* _ge_td.c: Likewise.
* _gt_dd.c: Likewise.
* _gt_sd.c: Likewise.
* _gt_td.c: Likewise.
* _isinfd128.c: Likewise.
* _isinfd32.c: Likewise.
* _isinfd64.c: Likewise.
* _le_dd.c: Likewise.
* _le_sd.c: Likewise.
* _le_td.c: Likewise.
* _lt_dd.c: Likewise.
* _lt_sd.c: Likewise.
* _lt_td.c: Likewise.
* _mul_dd.c: Likewise.
* _mul_sd.c: Likewise.
* _mul_td.c: Likewise.
* _ne_dd.c: Likewise.
* _ne_sd.c: Likewise.
* _ne_td.c: Likewise.
* _sd_to_dd.c: Likewise.
* _sd_to_df.c: Likewise.
* _sd_to_di.c: Likewise.
* _sd_to_sf.c: Likewise.
* _sd_to_si.c: Likewise.
* _sd_to_td.c: Likewise.
* _sd_to_tf.c: Likewise.
* _sd_to_udi.c: Likewise.
* _sd_to_usi.c: Likewise.
* _sd_to_xf.c: Likewise.
* _sf_to_dd.c: Likewise.
* _sf_to_sd.c: Likewise.
* _sf_to_td.c: Likewise.
* _si_to_dd.c: Likewise.
* _si_to_sd.c: Likewise.
* _si_to_td.c: Likewise.
* _td_to_dd.c: Likewise.
* _td_to_df.c: Likewise.
* _td_to_di.c: Likewise.
* _td_to_sd.c: Likewise.
* _td_to_sf.c: Likewise.
* _td_to_si.c: Likewise.
* _td_to_tf.c: Likewise.
* _td_to_udi.c: Likewise.
* _td_to_usi.c: Likewise.
* _td_to_xf.c: Likewise.
* _tf_to_dd.c: Likewise.
* _tf_to_sd.c: Likewise.
* _tf_to_td.c: Likewise.
* _udi_to_dd.c: Likewise.
* _udi_to_sd.c: Likewise.
* _udi_to_td.c: Likewise.
* _unord_dd.c: Likewise.
* _unord_sd.c: Likewise.
* _unord_td.c: Likewise.
* _usi_to_dd.c: Likewise.
* _usi_to_sd.c: Likewise.
* _usi_to_td.c: Likewise.
* _xf_to_dd.c: Likewise.
* _xf_to_sd.c: Likewise.
* _xf_to_td.c: Likewise.

2007-09-27  H.J. Lu  <hongjiu.lu@intel.com>

* b2d.h: Renamed to ...
* bid_b2d.h: This.

* bid128_to_string.c: Renamed to ...
* bid128_string.c: This.

* bid_intrinsics.h: Renamed to ...
* bid_gcc_intrinsics.h: This.

* bid_string.c: Renamed to ...
* bid64_string.c: This.

* binarydecimal.c: Renamed to ...
* bid_decimal_globals.c: This.

* convert_data.c: Renamed to ...
* bid_convert_data.c: This.

* decimal_data.c: Renamed to ...
* bid_decimal_data.c: This.

* decimal_globals.c: Renamed to ...
* bid_decimal_globals.c: This.

* div_macros.h: Renamed to ...
* bid_div_macros.h: This.

* inline_bid_add.h: Renamed to ...
* bid_inline_add.h: This.

* sqrt_macros.h: Renamed to ...
* bid_sqrt_macros.h: This.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128841 138bc75d-0d04-0410-961f-82ee72b054a4

162 files changed:
libgcc/ChangeLog
libgcc/Makefile.in
libgcc/config/libbid/ChangeLog
libgcc/config/libbid/_addsub_dd.c
libgcc/config/libbid/_addsub_sd.c
libgcc/config/libbid/_addsub_td.c
libgcc/config/libbid/_dd_to_df.c
libgcc/config/libbid/_dd_to_di.c
libgcc/config/libbid/_dd_to_sd.c
libgcc/config/libbid/_dd_to_sf.c
libgcc/config/libbid/_dd_to_si.c
libgcc/config/libbid/_dd_to_td.c
libgcc/config/libbid/_dd_to_tf.c
libgcc/config/libbid/_dd_to_udi.c
libgcc/config/libbid/_dd_to_usi.c
libgcc/config/libbid/_dd_to_xf.c
libgcc/config/libbid/_df_to_dd.c
libgcc/config/libbid/_df_to_sd.c
libgcc/config/libbid/_df_to_td.c
libgcc/config/libbid/_di_to_dd.c
libgcc/config/libbid/_di_to_sd.c
libgcc/config/libbid/_di_to_td.c
libgcc/config/libbid/_div_dd.c
libgcc/config/libbid/_div_sd.c
libgcc/config/libbid/_div_td.c
libgcc/config/libbid/_eq_dd.c
libgcc/config/libbid/_eq_sd.c
libgcc/config/libbid/_eq_td.c
libgcc/config/libbid/_ge_dd.c
libgcc/config/libbid/_ge_sd.c
libgcc/config/libbid/_ge_td.c
libgcc/config/libbid/_gt_dd.c
libgcc/config/libbid/_gt_sd.c
libgcc/config/libbid/_gt_td.c
libgcc/config/libbid/_isinfd128.c
libgcc/config/libbid/_isinfd32.c
libgcc/config/libbid/_isinfd64.c
libgcc/config/libbid/_le_dd.c
libgcc/config/libbid/_le_sd.c
libgcc/config/libbid/_le_td.c
libgcc/config/libbid/_lt_dd.c
libgcc/config/libbid/_lt_sd.c
libgcc/config/libbid/_lt_td.c
libgcc/config/libbid/_mul_dd.c
libgcc/config/libbid/_mul_sd.c
libgcc/config/libbid/_mul_td.c
libgcc/config/libbid/_ne_dd.c
libgcc/config/libbid/_ne_sd.c
libgcc/config/libbid/_ne_td.c
libgcc/config/libbid/_sd_to_dd.c
libgcc/config/libbid/_sd_to_df.c
libgcc/config/libbid/_sd_to_di.c
libgcc/config/libbid/_sd_to_sf.c
libgcc/config/libbid/_sd_to_si.c
libgcc/config/libbid/_sd_to_td.c
libgcc/config/libbid/_sd_to_tf.c
libgcc/config/libbid/_sd_to_udi.c
libgcc/config/libbid/_sd_to_usi.c
libgcc/config/libbid/_sd_to_xf.c
libgcc/config/libbid/_sf_to_dd.c
libgcc/config/libbid/_sf_to_sd.c
libgcc/config/libbid/_sf_to_td.c
libgcc/config/libbid/_si_to_dd.c
libgcc/config/libbid/_si_to_sd.c
libgcc/config/libbid/_si_to_td.c
libgcc/config/libbid/_td_to_dd.c
libgcc/config/libbid/_td_to_df.c
libgcc/config/libbid/_td_to_di.c
libgcc/config/libbid/_td_to_sd.c
libgcc/config/libbid/_td_to_sf.c
libgcc/config/libbid/_td_to_si.c
libgcc/config/libbid/_td_to_tf.c
libgcc/config/libbid/_td_to_udi.c
libgcc/config/libbid/_td_to_usi.c
libgcc/config/libbid/_td_to_xf.c
libgcc/config/libbid/_tf_to_dd.c
libgcc/config/libbid/_tf_to_sd.c
libgcc/config/libbid/_tf_to_td.c
libgcc/config/libbid/_udi_to_dd.c
libgcc/config/libbid/_udi_to_sd.c
libgcc/config/libbid/_udi_to_td.c
libgcc/config/libbid/_unord_dd.c
libgcc/config/libbid/_unord_sd.c
libgcc/config/libbid/_unord_td.c
libgcc/config/libbid/_usi_to_dd.c
libgcc/config/libbid/_usi_to_sd.c
libgcc/config/libbid/_usi_to_td.c
libgcc/config/libbid/_xf_to_dd.c
libgcc/config/libbid/_xf_to_sd.c
libgcc/config/libbid/_xf_to_td.c
libgcc/config/libbid/b2d.h [deleted file]
libgcc/config/libbid/bid128.c
libgcc/config/libbid/bid128_2_str.h
libgcc/config/libbid/bid128_2_str_macros.h
libgcc/config/libbid/bid128_2_str_tables.c
libgcc/config/libbid/bid128_add.c
libgcc/config/libbid/bid128_compare.c
libgcc/config/libbid/bid128_div.c
libgcc/config/libbid/bid128_fma.c
libgcc/config/libbid/bid128_logb.c
libgcc/config/libbid/bid128_minmax.c
libgcc/config/libbid/bid128_mul.c
libgcc/config/libbid/bid128_next.c
libgcc/config/libbid/bid128_noncomp.c
libgcc/config/libbid/bid128_quantize.c
libgcc/config/libbid/bid128_rem.c
libgcc/config/libbid/bid128_round_integral.c
libgcc/config/libbid/bid128_scalb.c
libgcc/config/libbid/bid128_sqrt.c
libgcc/config/libbid/bid128_string.c [moved from libgcc/config/libbid/bid128_fromstring.c with 56% similarity]
libgcc/config/libbid/bid128_to_int16.c [new file with mode: 0644]
libgcc/config/libbid/bid128_to_int32.c
libgcc/config/libbid/bid128_to_int64.c
libgcc/config/libbid/bid128_to_int8.c [new file with mode: 0644]
libgcc/config/libbid/bid128_to_string.c [deleted file]
libgcc/config/libbid/bid128_to_uint16.c [new file with mode: 0644]
libgcc/config/libbid/bid128_to_uint32.c
libgcc/config/libbid/bid128_to_uint64.c
libgcc/config/libbid/bid128_to_uint8.c [new file with mode: 0644]
libgcc/config/libbid/bid32_to_bid128.c
libgcc/config/libbid/bid32_to_bid64.c
libgcc/config/libbid/bid64_add.c
libgcc/config/libbid/bid64_compare.c
libgcc/config/libbid/bid64_div.c
libgcc/config/libbid/bid64_fma.c
libgcc/config/libbid/bid64_logb.c
libgcc/config/libbid/bid64_minmax.c
libgcc/config/libbid/bid64_mul.c
libgcc/config/libbid/bid64_next.c
libgcc/config/libbid/bid64_noncomp.c
libgcc/config/libbid/bid64_quantize.c
libgcc/config/libbid/bid64_rem.c
libgcc/config/libbid/bid64_round_integral.c
libgcc/config/libbid/bid64_scalb.c
libgcc/config/libbid/bid64_sqrt.c
libgcc/config/libbid/bid64_string.c [moved from libgcc/config/libbid/bid_string.c with 90% similarity]
libgcc/config/libbid/bid64_to_bid128.c
libgcc/config/libbid/bid64_to_int16.c [new file with mode: 0644]
libgcc/config/libbid/bid64_to_int32.c
libgcc/config/libbid/bid64_to_int64.c
libgcc/config/libbid/bid64_to_int8.c [new file with mode: 0644]
libgcc/config/libbid/bid64_to_uint16.c [new file with mode: 0644]
libgcc/config/libbid/bid64_to_uint32.c
libgcc/config/libbid/bid64_to_uint64.c
libgcc/config/libbid/bid64_to_uint8.c [new file with mode: 0644]
libgcc/config/libbid/bid_b2d.h [new file with mode: 0644]
libgcc/config/libbid/bid_binarydecimal.c [new file with mode: 0644]
libgcc/config/libbid/bid_conf.h
libgcc/config/libbid/bid_convert_data.c [moved from libgcc/config/libbid/convert_data.c with 94% similarity]
libgcc/config/libbid/bid_decimal_data.c [moved from libgcc/config/libbid/decimal_data.c with 75% similarity]
libgcc/config/libbid/bid_decimal_globals.c [moved from libgcc/config/libbid/decimal_globals.c with 66% similarity]
libgcc/config/libbid/bid_div_macros.h [moved from libgcc/config/libbid/div_macros.h with 92% similarity]
libgcc/config/libbid/bid_dpd.c [new file with mode: 0644]
libgcc/config/libbid/bid_flag_operations.c
libgcc/config/libbid/bid_from_int.c
libgcc/config/libbid/bid_functions.h
libgcc/config/libbid/bid_gcc_intrinsics.h [moved from libgcc/config/libbid/bid_intrinsics.h with 90% similarity]
libgcc/config/libbid/bid_inline_add.h [moved from libgcc/config/libbid/inline_bid_add.h with 78% similarity]
libgcc/config/libbid/bid_internal.h
libgcc/config/libbid/bid_round.c
libgcc/config/libbid/bid_sqrt_macros.h [moved from libgcc/config/libbid/sqrt_macros.h with 91% similarity]
libgcc/config/libbid/binarydecimal.c [deleted file]

index 59ccf6a..9cc057f 100644 (file)
@@ -1,3 +1,10 @@
+2007-09-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * Makefile.in (dfp-filenames): Replace decimal_globals,
+       decimal_data, binarydecimal and convert_data with
+       bid_decimal_globals, bid_decimal_data, bid_binarydecimal
+       and bid_convert_data, respectively.
+
 2007-09-17  Chao-ying Fu  <fu@mips.com>
            Nigel Stephens  <nigel@mips.com>
 
index 77c5f1e..60feaff 100644 (file)
@@ -478,9 +478,10 @@ endif
 dfp-filenames =
 ifneq ($(D32PBIT)$(D64PBIT)$(D128PBIT),)
 ifeq ($(enable_decimal_float),bid)
-dfp-filenames += decimal_globals decimal_data binarydecimal \
-                _isinfd32 _isinfd64 _isinfd128 bid64_noncomp bid128_noncomp \
-                bid128_fma bid_round bid_from_int convert_data \
+dfp-filenames += bid_decimal_globals bid_decimal_data \
+                bid_binarydecimal bid_convert_data \
+                _isinfd32 _isinfd64 _isinfd128 bid64_noncomp \
+                bid128_noncomp bid128_fma bid_round bid_from_int \
                 bid64_add bid128_add bid64_div bid128_div \
                 bid64_mul bid128_mul bid64_compare bid128_compare \
                 bid128 bid32_to_bid64 bid32_to_bid128 bid64_to_bid128 \
index a660fcb..d7f5279 100644 (file)
@@ -1,3 +1,200 @@
+2007-09-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * bid128_fromstring.c: Removed.
+
+       * bid_dpd.c: New from libbid 2007-09-26.
+       * bid128_to_int16.c: Likewise.
+       * bid128_to_int8.c: Likewise.
+       * bid128_to_uint8.c: Likewise.
+       * bid128_to_uint16.c: Likewise.
+       * bid64_to_int16.c: Likewise.
+       * bid64_to_int8.c: Likewise.
+       * bid64_to_uint16.c: Likewise.
+       * bid64_to_uint8.c: Likewise.
+
+       * bid128_2_str.h: Updated from libbid 2007-09-26.
+       * bid128_2_str_macros.h: Likewise.
+       * bid128_2_str_tables.c: Likewise.
+       * bid128_add.c: Likewise.
+       * bid128.c: Likewise.
+       * bid128_compare.c: Likewise.
+       * bid128_div.c: Likewise.
+       * bid128_fma.c: Likewise.
+       * bid128_logb.c: Likewise.
+       * bid128_minmax.c: Likewise.
+       * bid128_mul.c: Likewise.
+       * bid128_next.c: Likewise.
+       * bid128_noncomp.c: Likewise.
+       * bid128_quantize.c: Likewise.
+       * bid128_rem.c: Likewise.
+       * bid128_round_integral.c: Likewise.
+       * bid128_scalb.c: Likewise.
+       * bid128_sqrt.c: Likewise.
+       * bid128_string.c: Likewise.
+       * bid128_to_int32.c: Likewise.
+       * bid128_to_int64.c: Likewise.
+       * bid128_to_uint32.c: Likewise.
+       * bid128_to_uint64.c: Likewise.
+       * bid32_to_bid128.c: Likewise.
+       * bid32_to_bid64.c: Likewise.
+       * bid64_add.c: Likewise.
+       * bid64_compare.c: Likewise.
+       * bid64_div.c: Likewise.
+       * bid64_fma.c: Likewise.
+       * bid64_logb.c: Likewise.
+       * bid64_minmax.c: Likewise.
+       * bid64_mul.c: Likewise.
+       * bid64_next.c: Likewise.
+       * bid64_noncomp.c: Likewise.
+       * bid64_quantize.c: Likewise.
+       * bid64_rem.c: Likewise.
+       * bid64_round_integral.c: Likewise.
+       * bid64_scalb.c: Likewise.
+       * bid64_sqrt.c: Likewise.
+       * bid64_string.c: Likewise.
+       * bid64_to_bid128.c: Likewise.
+       * bid64_to_int32.c: Likewise.
+       * bid64_to_int64.c: Likewise.
+       * bid64_to_uint32.c: Likewise.
+       * bid64_to_uint64.c: Likewise.
+       * bid_b2d.h: Likewise.
+       * bid_binarydecimal.c: Likewise.
+       * bid_conf.h: Likewise.
+       * bid_convert_data.c: Likewise.
+       * bid_decimal_data.c: Likewise.
+       * bid_decimal_globals.c: Likewise.
+       * bid_div_macros.h: Likewise.
+       * bid_flag_operations.c: Likewise.
+       * bid_from_int.c: Likewise.
+       * bid_functions.h: Likewise.
+       * bid_gcc_intrinsics.h: Likewise.
+       * bid_inline_add.h: Likewise.
+       * bid_internal.h: Likewise.
+       * bid_round.c: Likewise.
+       * bid_sqrt_macros.h: Likewise.
+       * _addsub_dd.c: Likewise.
+       * _addsub_sd.c: Likewise.
+       * _addsub_td.c: Likewise.
+       * _dd_to_df.c: Likewise.
+       * _dd_to_di.c: Likewise.
+       * _dd_to_sd.c: Likewise.
+       * _dd_to_sf.c: Likewise.
+       * _dd_to_si.c: Likewise.
+       * _dd_to_td.c: Likewise.
+       * _dd_to_tf.c: Likewise.
+       * _dd_to_udi.c: Likewise.
+       * _dd_to_usi.c: Likewise.
+       * _dd_to_xf.c: Likewise.
+       * _df_to_dd.c: Likewise.
+       * _df_to_sd.c: Likewise.
+       * _df_to_td.c: Likewise.
+       * _di_to_dd.c: Likewise.
+       * _di_to_sd.c: Likewise.
+       * _di_to_td.c: Likewise.
+       * _div_dd.c: Likewise.
+       * _div_sd.c: Likewise.
+       * _div_td.c: Likewise.
+       * _eq_dd.c: Likewise.
+       * _eq_sd.c: Likewise.
+       * _eq_td.c: Likewise.
+       * _ge_dd.c: Likewise.
+       * _ge_sd.c: Likewise.
+       * _ge_td.c: Likewise.
+       * _gt_dd.c: Likewise.
+       * _gt_sd.c: Likewise.
+       * _gt_td.c: Likewise.
+       * _isinfd128.c: Likewise.
+       * _isinfd32.c: Likewise.
+       * _isinfd64.c: Likewise.
+       * _le_dd.c: Likewise.
+       * _le_sd.c: Likewise.
+       * _le_td.c: Likewise.
+       * _lt_dd.c: Likewise.
+       * _lt_sd.c: Likewise.
+       * _lt_td.c: Likewise.
+       * _mul_dd.c: Likewise.
+       * _mul_sd.c: Likewise.
+       * _mul_td.c: Likewise.
+       * _ne_dd.c: Likewise.
+       * _ne_sd.c: Likewise.
+       * _ne_td.c: Likewise.
+       * _sd_to_dd.c: Likewise.
+       * _sd_to_df.c: Likewise.
+       * _sd_to_di.c: Likewise.
+       * _sd_to_sf.c: Likewise.
+       * _sd_to_si.c: Likewise.
+       * _sd_to_td.c: Likewise.
+       * _sd_to_tf.c: Likewise.
+       * _sd_to_udi.c: Likewise.
+       * _sd_to_usi.c: Likewise.
+       * _sd_to_xf.c: Likewise.
+       * _sf_to_dd.c: Likewise.
+       * _sf_to_sd.c: Likewise.
+       * _sf_to_td.c: Likewise.
+       * _si_to_dd.c: Likewise.
+       * _si_to_sd.c: Likewise.
+       * _si_to_td.c: Likewise.
+       * _td_to_dd.c: Likewise.
+       * _td_to_df.c: Likewise.
+       * _td_to_di.c: Likewise.
+       * _td_to_sd.c: Likewise.
+       * _td_to_sf.c: Likewise.
+       * _td_to_si.c: Likewise.
+       * _td_to_tf.c: Likewise.
+       * _td_to_udi.c: Likewise.
+       * _td_to_usi.c: Likewise.
+       * _td_to_xf.c: Likewise.
+       * _tf_to_dd.c: Likewise.
+       * _tf_to_sd.c: Likewise.
+       * _tf_to_td.c: Likewise.
+       * _udi_to_dd.c: Likewise.
+       * _udi_to_sd.c: Likewise.
+       * _udi_to_td.c: Likewise.
+       * _unord_dd.c: Likewise.
+       * _unord_sd.c: Likewise.
+       * _unord_td.c: Likewise.
+       * _usi_to_dd.c: Likewise.
+       * _usi_to_sd.c: Likewise.
+       * _usi_to_td.c: Likewise.
+       * _xf_to_dd.c: Likewise.
+       * _xf_to_sd.c: Likewise.
+       * _xf_to_td.c: Likewise.
+
+2007-09-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * b2d.h: Renamed to ...
+       * bid_b2d.h: This.
+
+       * bid128_to_string.c: Renamed to ...
+       * bid128_string.c: This.
+
+       * bid_intrinsics.h: Renamed to ...
+       * bid_gcc_intrinsics.h: This.
+
+       * bid_string.c: Renamed to ...
+       * bid64_string.c: This.
+
+       * binarydecimal.c: Renamed to ...
+       * bid_decimal_globals.c: This.
+
+       * convert_data.c: Renamed to ...
+       * bid_convert_data.c: This.
+
+       * decimal_data.c: Renamed to ...
+       * bid_decimal_data.c: This.
+
+       * decimal_globals.c: Renamed to ...
+       * bid_decimal_globals.c: This.
+
+       * div_macros.h: Renamed to ...
+       * bid_div_macros.h: This.
+
+       * inline_bid_add.h: Renamed to ...
+       * bid_inline_add.h: This.
+
+       * sqrt_macros.h: Renamed to ...
+       * bid_sqrt_macros.h: This.
+
 2007-07-06  H.J. Lu  <hongjiu.lu@intel.com>
 
        Updated from Intel BID library:
index 5c1a6ea..91ae58e 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal64
 __bid_adddd3 (_Decimal64 x, _Decimal64 y) {
index f67d06d..758c903 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal32
 __bid_addsd3 (_Decimal32 x, _Decimal32 y) {
index 2b25b4e..bed0fb1 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h" 
 
 _Decimal128
 __bid_addtd3 (_Decimal128 x, _Decimal128 y) {
index 97deaed..339c4cb 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 DFtype
 __bid_truncdddf (_Decimal64 x) {
index a86a2fa..847138f 100644 (file)
@@ -28,14 +28,16 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 DItype
 __bid_fixdddi (_Decimal64 x) {
-  DItype res;
+  DItype res = 0xbaddbaddbaddbaddull;
   union decimal64 ux;
 
   ux.d = x;
   res = __bid64_to_int64_xint (ux.i);
+
   return (res);
 }
 
index 236d623..75a66ad 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
  
 _Decimal32
 __bid_truncddsd2 (_Decimal64 x) {
index 9850c16..5f7f89d 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 SFtype
 __bid_truncddsf (_Decimal64 x) {
index c4733d5..4be5123 100644 (file)
@@ -28,14 +28,16 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 SItype
 __bid_fixddsi (_Decimal64 x) {
-  SItype res;
+  SItype res = 0xbaddbadd;
   union decimal64 ux;
 
   ux.d = x;
   res = __bid64_to_int32_xint (ux.i);
+
   return (res);
 }
 
index da9a56a..918374a 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
  
 _Decimal128
 __bid_extendddtd2 (_Decimal64 x) {
index a9bb8bd..bb58f04 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 #if LIBGCC2_HAS_TF_MODE || BID_HAS_TF_MODE
 TFtype
index fce0bfa..4f784cc 100644 (file)
@@ -28,14 +28,16 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 UDItype
 __bid_fixunsdddi (_Decimal64 x) {
-  UDItype res;
+  UDItype res = 0xbaddbaddbaddbaddull;
   union decimal64 ux;
 
   ux.d = x;
   res = __bid64_to_uint64_xint (ux.i);
+
   if (res == 0x8000000000000000ull) res = 0; // for NaNs too
   return (res);
 }
index da57b20..721a3af 100644 (file)
@@ -28,14 +28,16 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 USItype
 __bid_fixunsddsi (_Decimal64 x) {
-  USItype res;
+  USItype res = 0xbaddbadd;
   union decimal64 ux;
 
   ux.d = x;
   res = __bid64_to_uint32_xint (ux.i);
+
   if (res == 0x80000000) res = 0; // for NaNs too
   return (res);
 }
index e798330..a8a9311 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 XFtype
 __bid_extendddxf (_Decimal64 x) {
index 8e94212..e717752 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal64
 __bid_extenddfdd (DFtype x) {
index f0b0207..9ac9948 100644 (file)
@@ -28,10 +28,12 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal32
 __bid_truncdfsd (DFtype x) {
   union decimal32 res;
+
   res.i = __binary64_to_bid32 (x);
   return (res.d);
 }
index 94761e9..f8d57f5 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal128
 __bid_extenddftd (DFtype x) {
index 177291c..03c8694 100644 (file)
@@ -28,10 +28,13 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal64
 __bid_floatdidd (DItype x) {
   union decimal64 res;
+
   res.i = __bid64_from_int64 (x);
   return (res.d);
 }
+
index 5d074c3..29565e2 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal32
 __bid_floatdisd (DItype x) {
index 206b5cd..b71f351 100644 (file)
@@ -28,10 +28,13 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal128
 __bid_floatditd (DItype x) {
   union decimal128 res;
+
   res.i = __bid128_from_int64 (x);
   return (res.d);
 }
+
index 4b3ab33..27e53b7 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal64
 __bid_divdd3 (_Decimal64 x, _Decimal64 y) {
index 930ef39..9041b66 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal32
 __bid_divsd3 (_Decimal32 x, _Decimal32 y) {
index 207f7a2..5fe25b3 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal128
 __bid_divtd3 (_Decimal128 x, _Decimal128 y) {
index bb7ef4a..d3dd96a 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_eqdd2 (_Decimal64 x, _Decimal64 y) {
index f9ae000..fdfa1ec 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_eqsd2 (_Decimal32 x, _Decimal32 y) {
index ff8dfd5..ed2d548 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_eqtd2 (_Decimal128 x, _Decimal128 y) {
index c198d69..c24fc9b 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_gedd2 (_Decimal64 x, _Decimal64 y) {
index a242079..1bac3a5 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_gesd2 (_Decimal32 x, _Decimal32 y) {
index 41b886f..0f3a1b2 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_getd2 (_Decimal128 x, _Decimal128 y) {
index d95b727..936543a 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_gtdd2 (_Decimal64 x, _Decimal64 y) {
index a755f9e..c778a07 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_gtsd2 (_Decimal32 x, _Decimal32 y) {
index 783594e..7de7767 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_gttd2 (_Decimal128 x, _Decimal128 y) {
index 77c38ec..9e48de6 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 int
 isinfd128 (_Decimal128 x) {
index 74327d7..6c012b0 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 int
 isinfd32 (_Decimal32 x) {
index 579e107..8748a3f 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 int
 isinfd64 (_Decimal64 x) {
index e928c4a..202c1b5 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_ledd2 (_Decimal64 x, _Decimal64 y) {
index 460fc65..c3f74a9 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_lesd2 (_Decimal32 x, _Decimal32 y) {
index 41e9aa5..0cf48f6 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_letd2 (_Decimal128 x, _Decimal128 y) {
index 2fe4371..2318fda 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_ltdd2 (_Decimal64 x, _Decimal64 y) {
index 6473710..881123c 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_ltsd2 (_Decimal32 x, _Decimal32 y) {
index 573a328..77bd173 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_lttd2 (_Decimal128 x, _Decimal128 y) {
index 79d70eb..c45f097 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal64
 __bid_muldd3 (_Decimal64 x, _Decimal64 y) {
index 194b5f2..b2e80a2 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal32
 __bid_mulsd3 (_Decimal32 x, _Decimal32 y) {
index 12a0ecd..ce1b2a7 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal128
 __bid_multd3 (_Decimal128 x, _Decimal128 y) {
index d89f2cb..db331a1 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_nedd2 (_Decimal64 x, _Decimal64 y) {
index a541c9c..e598f06 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_nesd2 (_Decimal32 x, _Decimal32 y) {
index 8b6fbda..d592d28 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_netd2 (_Decimal128 x, _Decimal128 y) {
index 8991cda..9eb099a 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
  
 _Decimal64
 __bid_extendsddd2 (_Decimal32 x) {
index 5ccb67a..b8a7d00 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 DFtype
 __bid_extendsddf (_Decimal32 x) {
index 8f4894c..1777d77 100644 (file)
@@ -28,16 +28,18 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 DItype
 __bid_fixsddi (_Decimal32 x) {
-  DItype res;
+  DItype res = 0xbaddbaddbaddbaddull;
   UINT64 x64;
   union decimal32 ux;
 
   ux.d = x;
   x64 = __bid32_to_bid64 (ux.i);
   res = __bid64_to_int64_xint (x64);
+
   return (res);
 }
 
index ea78ff8..bd7ed1e 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 SFtype
 __bid_truncsdsf (_Decimal32 x) {
index d187717..2cbb77b 100644 (file)
@@ -28,16 +28,18 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 SItype
 __bid_fixsdsi (_Decimal32 x) {
-  SItype res;
+  SItype res = 0xbaddbadd;
   UINT64 x64;
   union decimal32 ux;
 
   ux.d = x;
   x64 = __bid32_to_bid64 (ux.i);
   res = __bid64_to_int32_xint (x64);
+
   return (res);
 }
 
index 5d965d5..a5c794c 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
  
 _Decimal128
 __bid_extendsdtd2 (_Decimal32 x) {
index 16c84f8..6514e74 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 #if LIBGCC2_HAS_TF_MODE || BID_HAS_TF_MODE
 TFtype
index f6e035d..40785bd 100644 (file)
@@ -28,16 +28,18 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 UDItype
 __bid_fixunssddi (_Decimal32 x) {
-  UDItype res;
+  UDItype res = 0xbaddbaddbaddbaddull;
   UINT64 x64;
   union decimal32 ux;
 
   ux.d = x;
   x64 = __bid32_to_bid64 (ux.i);
   res = __bid64_to_uint64_xint (x64);
+
   if (res == 0x8000000000000000ull) res = 0; // for NaNs too
   return (res);
 }
index 1cd3294..9b3d9f3 100644 (file)
@@ -28,16 +28,18 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 USItype
 __bid_fixunssdsi (_Decimal32 x) {
-  USItype res;
+  USItype res = 0xbaddbadd;
   UINT64 x64;
   union decimal32 ux;
 
   ux.d = x;
   x64 = __bid32_to_bid64 (ux.i);
   res = __bid64_to_uint32_xint (x64);
+
   if (res == 0x80000000) res = 0; // for NaNs too
   return (res);
 }
index 46b1490..a73d451 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 XFtype
 __bid_extendsdxf (_Decimal32 x) {
index e8a6ccf..d9e4c0e 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal64
 __bid_extendsfdd (SFtype x) {
index 638a88c..0b9397d 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal32
 __bid_extendsfsd (SFtype x) {
index 9d55bbe..127460a 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal128
 __bid_extendsftd (SFtype x) {
index c702efe..b0847d9 100644 (file)
@@ -28,10 +28,12 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal64
 __bid_floatsidd (SItype x) {
   union decimal64 res;
+
   res.i = __bid64_from_int32 (x);
   return (res.d);
 }
index 2f7a7e9..fc4efa0 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal32
 __bid_floatsisd (SItype x) {
index 93a91b0..737663b 100644 (file)
@@ -28,10 +28,12 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal128
 __bid_floatsitd (SItype x) {
   union decimal128 res;
+
   res.i = __bid128_from_int32 (x);
   return (res.d);
 }
index d4c2be9..7d909cb 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
  
 _Decimal64
 __bid_trunctddd2 (_Decimal128 x) {
index 48bf092..219e256 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 DFtype
 __bid_trunctddf (_Decimal128 x) {
index fcdc853..261222a 100644 (file)
@@ -28,14 +28,16 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 DItype
 __bid_fixtddi (_Decimal128 x) {
-  DItype res;
+  DItype res = 0xbaddbaddbaddbaddull;
   union decimal128 ux;
 
   ux.d = x;
   res = __bid128_to_int64_xint (ux.i);
+
   return (res);
 }
 
index d2a64fc..f269c65 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
  
 _Decimal32
 __bid_trunctdsd2 (_Decimal128 x) {
index 8f77518..4542ae9 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 SFtype
 __bid_trunctdsf (_Decimal128 x) {
index e92b3fd..b16c66e 100644 (file)
@@ -28,14 +28,16 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 SItype
 __bid_fixtdsi (_Decimal128 x) {
-  SItype res;
   union decimal128 ux;
+  SItype res = 0xbaddbadd;
 
   ux.d = x;
   res = __bid128_to_int32_xint (ux.i);
+
   return (res);
 }
 
index 0e99199..9f6c241 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 #if LIBGCC2_HAS_TF_MODE || BID_HAS_TF_MODE
 TFtype
index 92251f7..47262a8 100644 (file)
@@ -28,14 +28,17 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 UDItype
 __bid_fixunstddi (_Decimal128 x) {
-  UDItype res;
+  UDItype res = 0xbaddbaddbaddbaddull;
   union decimal128 ux;
 
   ux.d = x;
+
   res = __bid128_to_uint64_xint (ux.i);
+
   if (res == 0x8000000000000000ull) res = 0; // for NaNs too
   return (res);
 }
index ee75535..d489b08 100644 (file)
@@ -28,14 +28,16 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 USItype
 __bid_fixunstdsi (_Decimal128 x) {
-  USItype res;
+  USItype res = 0xbaddbadd;
   union decimal128 ux;
 
   ux.d = x;
   res = __bid128_to_uint32_xint (ux.i);
+
   if (res == 0x80000000) res = 0; // for NaNs too
   return (res);
 }
index 92eecca..7dffbaa 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 XFtype
 __bid_trunctdxf (_Decimal128 x) {
index 5ae3aef..94d2f36 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 #if LIBGCC2_HAS_TF_MODE || BID_HAS_TF_MODE
 _Decimal64
index 4aa4f15..b5c4989 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 #if LIBGCC2_HAS_TF_MODE || BID_HAS_TF_MODE
 _Decimal32
index 090ed43..b6eb6a0 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 #if LIBGCC2_HAS_TF_MODE || BID_HAS_TF_MODE
 _Decimal128
index 8bf196c..3c42434 100644 (file)
@@ -28,10 +28,13 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal64
 __bid_floatunsdidd (UDItype x) {
   union decimal64 res;
+
   res.i = __bid64_from_uint64 (x);
   return (res.d);
 }
+
index b8533ea..2f38180 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal32
 __bid_floatunsdisd (UDItype x) {
index 53aa20b..591b71e 100644 (file)
@@ -28,10 +28,13 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal128
 __bid_floatunsditd (UDItype x) {
   union decimal128 res;
+
   res.i = __bid128_from_uint64 (x);
   return (res.d);
 }
+
index fc81ca1..da81488 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_unorddd2 (_Decimal64 x, _Decimal64 y) {
index 753a67f..0a1a3f3 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_unordsd2 (_Decimal32 x, _Decimal32 y) {
index 73dd974..038fd63 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 CMPtype
 __bid_unordtd2 (_Decimal128 x, _Decimal128 y) {
index db398a6..6feb39e 100644 (file)
@@ -28,10 +28,13 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal64
 __bid_floatunssidd (USItype x) {
   union decimal64 res;
+
   res.i = __bid64_from_uint32 (x);
   return (res.d);
 }
+
index 3c8fa21..907de0f 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal32
 __bid_floatunssisd (USItype x) {
index 8cdc6e2..31416f6 100644 (file)
@@ -28,10 +28,13 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal128
 __bid_floatunssitd (USItype x) {
   union decimal128 res;
+
   res.i = __bid128_from_uint32 (x);
   return (res.d);
 }
+
index 27e418f..314aa52 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal64
 __bid_truncxfdd (XFtype x) {
index 3c83e58..6a8d4eb 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal32
 __bid_truncxfsd (XFtype x) {
index 48015eb..b688638 100644 (file)
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_conf.h"
 #include "bid_functions.h"
+#include "bid_gcc_intrinsics.h"
 
 _Decimal128
 __bid_extendxftd (XFtype x) {
diff --git a/libgcc/config/libbid/b2d.h b/libgcc/config/libbid/b2d.h
deleted file mode 100644 (file)
index 41b5935..0000000
+++ /dev/null
@@ -1,3050 +0,0 @@
-/* Copyright (C) 2007  Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
-
-In addition to the permissions in the GNU General Public License, the
-Free Software Foundation gives you unlimited permission to link the
-compiled version of this file into combinations with other programs,
-and to distribute those combinations without any restriction coming
-from the use of this file.  (The General Public License restrictions
-do apply in other respects; for example, they cover modification of
-the file, and distribution when not linked into a combine
-executable.)
-
-GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301, USA.  */
-
-UINT64 d2b[] =
-  { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 80, 81, 800, 801, 880, 881,
-  10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 90, 91, 810, 811, 890, 891,
-  20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 82, 83, 820, 821, 808, 809,
-  30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 92, 93, 830, 831, 818, 819,
-  40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 84, 85, 840, 841, 88, 89,
-  50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 94, 95, 850, 851, 98, 99,
-  60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 86, 87, 860, 861, 888, 889,
-  70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 96, 97, 870, 871, 898, 899,
-  100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 180, 181, 900, 901,
-    980, 981,
-  110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 190, 191, 910, 911,
-    990, 991,
-  120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 182, 183, 920, 921,
-    908, 909,
-  130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 192, 193, 930, 931,
-    918, 919,
-  140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 184, 185, 940, 941,
-    188, 189,
-  150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 194, 195, 950, 951,
-    198, 199,
-  160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 186, 187, 960, 961,
-    988, 989,
-  170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 196, 197, 970, 971,
-    998, 999,
-  200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 280, 281, 802, 803,
-    882, 883,
-  210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 290, 291, 812, 813,
-    892, 893,
-  220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 282, 283, 822, 823,
-    828, 829,
-  230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 292, 293, 832, 833,
-    838, 839,
-  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 284, 285, 842, 843,
-    288, 289,
-  250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 294, 295, 852, 853,
-    298, 299,
-  260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 286, 287, 862, 863,
-    888, 889,
-  270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 296, 297, 872, 873,
-    898, 899,
-  300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 380, 381, 902, 903,
-    982, 983,
-  310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 390, 391, 912, 913,
-    992, 993,
-  320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 382, 383, 922, 923,
-    928, 929,
-  330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 392, 393, 932, 933,
-    938, 939,
-  340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 384, 385, 942, 943,
-    388, 389,
-  350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 394, 395, 952, 953,
-    398, 399,
-  360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 386, 387, 962, 963,
-    988, 989,
-  370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 396, 397, 972, 973,
-    998, 999,
-  400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 480, 481, 804, 805,
-    884, 885,
-  410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 490, 491, 814, 815,
-    894, 895,
-  420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 482, 483, 824, 825,
-    848, 849,
-  430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 492, 493, 834, 835,
-    858, 859,
-  440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 484, 485, 844, 845,
-    488, 489,
-  450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 494, 495, 854, 855,
-    498, 499,
-  460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 486, 487, 864, 865,
-    888, 889,
-  470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 496, 497, 874, 875,
-    898, 899,
-  500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 580, 581, 904, 905,
-    984, 985,
-  510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 590, 591, 914, 915,
-    994, 995,
-  520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 582, 583, 924, 925,
-    948, 949,
-  530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 592, 593, 934, 935,
-    958, 959,
-  540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 584, 585, 944, 945,
-    588, 589,
-  550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 594, 595, 954, 955,
-    598, 599,
-  560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 586, 587, 964, 965,
-    988, 989,
-  570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 596, 597, 974, 975,
-    998, 999,
-  600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 680, 681, 806, 807,
-    886, 887,
-  610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 690, 691, 816, 817,
-    896, 897,
-  620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 682, 683, 826, 827,
-    868, 869,
-  630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 692, 693, 836, 837,
-    878, 879,
-  640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 684, 685, 846, 847,
-    688, 689,
-  650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 694, 695, 856, 857,
-    698, 699,
-  660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 686, 687, 866, 867,
-    888, 889,
-  670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 696, 697, 876, 877,
-    898, 899,
-  700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 780, 781, 906, 907,
-    986, 987,
-  710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 790, 791, 916, 917,
-    996, 997,
-  720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 782, 783, 926, 927,
-    968, 969,
-  730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 792, 793, 936, 937,
-    978, 979,
-  740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 784, 785, 946, 947,
-    788, 789,
-  750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 794, 795, 956, 957,
-    798, 799,
-  760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 786, 787, 966, 967,
-    988, 989,
-  770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 796, 797, 976, 977,
-    998, 999
-};
-
-UINT64 d2b2[] =
-  { 0000ull, 1000ull, 2000ull, 3000ull, 4000ull, 5000ull, 6000ull,
-7000ull, 8000ull, 9000ull, 80000ull, 81000ull, 800000ull, 801000ull, 880000ull,
-881000ull,
-  10000ull, 11000ull, 12000ull, 13000ull, 14000ull, 15000ull, 16000ull,
-    17000ull, 18000ull, 19000ull, 90000ull, 91000ull, 810000ull,
-    811000ull, 890000ull, 891000ull,
-  20000ull, 21000ull, 22000ull, 23000ull, 24000ull, 25000ull, 26000ull,
-    27000ull, 28000ull, 29000ull, 82000ull, 83000ull, 820000ull,
-    821000ull, 808000ull, 809000ull,
-  30000ull, 31000ull, 32000ull, 33000ull, 34000ull, 35000ull, 36000ull,
-    37000ull, 38000ull, 39000ull, 92000ull, 93000ull, 830000ull,
-    831000ull, 818000ull, 819000ull,
-  40000ull, 41000ull, 42000ull, 43000ull, 44000ull, 45000ull, 46000ull,
-    47000ull, 48000ull, 49000ull, 84000ull, 85000ull, 840000ull,
-    841000ull, 88000ull, 89000ull,
-  50000ull, 51000ull, 52000ull, 53000ull, 54000ull, 55000ull, 56000ull,
-    57000ull, 58000ull, 59000ull, 94000ull, 95000ull, 850000ull,
-    851000ull, 98000ull, 99000ull,
-  60000ull, 61000ull, 62000ull, 63000ull, 64000ull, 65000ull, 66000ull,
-    67000ull, 68000ull, 69000ull, 86000ull, 87000ull, 860000ull,
-    861000ull, 888000ull, 889000ull,
-  70000ull, 71000ull, 72000ull, 73000ull, 74000ull, 75000ull, 76000ull,
-    77000ull, 78000ull, 79000ull, 96000ull, 97000ull, 870000ull,
-    871000ull, 898000ull, 899000ull,
-  100000ull, 101000ull, 102000ull, 103000ull, 104000ull, 105000ull,
-    106000ull, 107000ull, 108000ull, 109000ull, 180000ull, 181000ull,
-    900000ull, 901000ull, 980000ull, 981000ull,
-  110000ull, 111000ull, 112000ull, 113000ull, 114000ull, 115000ull,
-    116000ull, 117000ull, 118000ull, 119000ull, 190000ull, 191000ull,
-    910000ull, 911000ull, 990000ull, 991000ull,
-  120000ull, 121000ull, 122000ull, 123000ull, 124000ull, 125000ull,
-    126000ull, 127000ull, 128000ull, 129000ull, 182000ull, 183000ull,
-    920000ull, 921000ull, 908000ull, 909000ull,
-  130000ull, 131000ull, 132000ull, 133000ull, 134000ull, 135000ull,
-    136000ull, 137000ull, 138000ull, 139000ull, 192000ull, 193000ull,
-    930000ull, 931000ull, 918000ull, 919000ull,
-  140000ull, 141000ull, 142000ull, 143000ull, 144000ull, 145000ull,
-    146000ull, 147000ull, 148000ull, 149000ull, 184000ull, 185000ull,
-    940000ull, 941000ull, 188000ull, 189000ull,
-  150000ull, 151000ull, 152000ull, 153000ull, 154000ull, 155000ull,
-    156000ull, 157000ull, 158000ull, 159000ull, 194000ull, 195000ull,
-    950000ull, 951000ull, 198000ull, 199000ull,
-  160000ull, 161000ull, 162000ull, 163000ull, 164000ull, 165000ull,
-    166000ull, 167000ull, 168000ull, 169000ull, 186000ull, 187000ull,
-    960000ull, 961000ull, 988000ull, 989000ull,
-  170000ull, 171000ull, 172000ull, 173000ull, 174000ull, 175000ull,
-    176000ull, 177000ull, 178000ull, 179000ull, 196000ull, 197000ull,
-    970000ull, 971000ull, 998000ull, 999000ull,
-  200000ull, 201000ull, 202000ull, 203000ull, 204000ull, 205000ull,
-    206000ull, 207000ull, 208000ull, 209000ull, 280000ull, 281000ull,
-    802000ull, 803000ull, 882000ull, 883000ull,
-  210000ull, 211000ull, 212000ull, 213000ull, 214000ull, 215000ull,
-    216000ull, 217000ull, 218000ull, 219000ull, 290000ull, 291000ull,
-    812000ull, 813000ull, 892000ull, 893000ull,
-  220000ull, 221000ull, 222000ull, 223000ull, 224000ull, 225000ull,
-    226000ull, 227000ull, 228000ull, 229000ull, 282000ull, 283000ull,
-    822000ull, 823000ull, 828000ull, 829000ull,
-  230000ull, 231000ull, 232000ull, 233000ull, 234000ull, 235000ull,
-    236000ull, 237000ull, 238000ull, 239000ull, 292000ull, 293000ull,
-    832000ull, 833000ull, 838000ull, 839000ull,
-  240000ull, 241000ull, 242000ull, 243000ull, 244000ull, 245000ull,
-    246000ull, 247000ull, 248000ull, 249000ull, 284000ull, 285000ull,
-    842000ull, 843000ull, 288000ull, 289000ull,
-  250000ull, 251000ull, 252000ull, 253000ull, 254000ull, 255000ull,
-    256000ull, 257000ull, 258000ull, 259000ull, 294000ull, 295000ull,
-    852000ull, 853000ull, 298000ull, 299000ull,
-  260000ull, 261000ull, 262000ull, 263000ull, 264000ull, 265000ull,
-    266000ull, 267000ull, 268000ull, 269000ull, 286000ull, 287000ull,
-    862000ull, 863000ull, 888000ull, 889000ull,
-  270000ull, 271000ull, 272000ull, 273000ull, 274000ull, 275000ull,
-    276000ull, 277000ull, 278000ull, 279000ull, 296000ull, 297000ull,
-    872000ull, 873000ull, 898000ull, 899000ull,
-  300000ull, 301000ull, 302000ull, 303000ull, 304000ull, 305000ull,
-    306000ull, 307000ull, 308000ull, 309000ull, 380000ull, 381000ull,
-    902000ull, 903000ull, 982000ull, 983000ull,
-  310000ull, 311000ull, 312000ull, 313000ull, 314000ull, 315000ull,
-    316000ull, 317000ull, 318000ull, 319000ull, 390000ull, 391000ull,
-    912000ull, 913000ull, 992000ull, 993000ull,
-  320000ull, 321000ull, 322000ull, 323000ull, 324000ull, 325000ull,
-    326000ull, 327000ull, 328000ull, 329000ull, 382000ull, 383000ull,
-    922000ull, 923000ull, 928000ull, 929000ull,
-  330000ull, 331000ull, 332000ull, 333000ull, 334000ull, 335000ull,
-    336000ull, 337000ull, 338000ull, 339000ull, 392000ull, 393000ull,
-    932000ull, 933000ull, 938000ull, 939000ull,
-  340000ull, 341000ull, 342000ull, 343000ull, 344000ull, 345000ull,
-    346000ull, 347000ull, 348000ull, 349000ull, 384000ull, 385000ull,
-    942000ull, 943000ull, 388000ull, 389000ull,
-  350000ull, 351000ull, 352000ull, 353000ull, 354000ull, 355000ull,
-    356000ull, 357000ull, 358000ull, 359000ull, 394000ull, 395000ull,
-    952000ull, 953000ull, 398000ull, 399000ull,
-  360000ull, 361000ull, 362000ull, 363000ull, 364000ull, 365000ull,
-    366000ull, 367000ull, 368000ull, 369000ull, 386000ull, 387000ull,
-    962000ull, 963000ull, 988000ull, 989000ull,
-  370000ull, 371000ull, 372000ull, 373000ull, 374000ull, 375000ull,
-    376000ull, 377000ull, 378000ull, 379000ull, 396000ull, 397000ull,
-    972000ull, 973000ull, 998000ull, 999000ull,
-  400000ull, 401000ull, 402000ull, 403000ull, 404000ull, 405000ull,
-    406000ull, 407000ull, 408000ull, 409000ull, 480000ull, 481000ull,
-    804000ull, 805000ull, 884000ull, 885000ull,
-  410000ull, 411000ull, 412000ull, 413000ull, 414000ull, 415000ull,
-    416000ull, 417000ull, 418000ull, 419000ull, 490000ull, 491000ull,
-    814000ull, 815000ull, 894000ull, 895000ull,
-  420000ull, 421000ull, 422000ull, 423000ull, 424000ull, 425000ull,
-    426000ull, 427000ull, 428000ull, 429000ull, 482000ull, 483000ull,
-    824000ull, 825000ull, 848000ull, 849000ull,
-  430000ull, 431000ull, 432000ull, 433000ull, 434000ull, 435000ull,
-    436000ull, 437000ull, 438000ull, 439000ull, 492000ull, 493000ull,
-    834000ull, 835000ull, 858000ull, 859000ull,
-  440000ull, 441000ull, 442000ull, 443000ull, 444000ull, 445000ull,
-    446000ull, 447000ull, 448000ull, 449000ull, 484000ull, 485000ull,
-    844000ull, 845000ull, 488000ull, 489000ull,
-  450000ull, 451000ull, 452000ull, 453000ull, 454000ull, 455000ull,
-    456000ull, 457000ull, 458000ull, 459000ull, 494000ull, 495000ull,
-    854000ull, 855000ull, 498000ull, 499000ull,
-  460000ull, 461000ull, 462000ull, 463000ull, 464000ull, 465000ull,
-    466000ull, 467000ull, 468000ull, 469000ull, 486000ull, 487000ull,
-    864000ull, 865000ull, 888000ull, 889000ull,
-  470000ull, 471000ull, 472000ull, 473000ull, 474000ull, 475000ull,
-    476000ull, 477000ull, 478000ull, 479000ull, 496000ull, 497000ull,
-    874000ull, 875000ull, 898000ull, 899000ull,
-  500000ull, 501000ull, 502000ull, 503000ull, 504000ull, 505000ull,
-    506000ull, 507000ull, 508000ull, 509000ull, 580000ull, 581000ull,
-    904000ull, 905000ull, 984000ull, 985000ull,
-  510000ull, 511000ull, 512000ull, 513000ull, 514000ull, 515000ull,
-    516000ull, 517000ull, 518000ull, 519000ull, 590000ull, 591000ull,
-    914000ull, 915000ull, 994000ull, 995000ull,
-  520000ull, 521000ull, 522000ull, 523000ull, 524000ull, 525000ull,
-    526000ull, 527000ull, 528000ull, 529000ull, 582000ull, 583000ull,
-    924000ull, 925000ull, 948000ull, 949000ull,
-  530000ull, 531000ull, 532000ull, 533000ull, 534000ull, 535000ull,
-    536000ull, 537000ull, 538000ull, 539000ull, 592000ull, 593000ull,
-    934000ull, 935000ull, 958000ull, 959000ull,
-  540000ull, 541000ull, 542000ull, 543000ull, 544000ull, 545000ull,
-    546000ull, 547000ull, 548000ull, 549000ull, 584000ull, 585000ull,
-    944000ull, 945000ull, 588000ull, 589000ull,
-  550000ull, 551000ull, 552000ull, 553000ull, 554000ull, 555000ull,
-    556000ull, 557000ull, 558000ull, 559000ull, 594000ull, 595000ull,
-    954000ull, 955000ull, 598000ull, 599000ull,
-  560000ull, 561000ull, 562000ull, 563000ull, 564000ull, 565000ull,
-    566000ull, 567000ull, 568000ull, 569000ull, 586000ull, 587000ull,
-    964000ull, 965000ull, 988000ull, 989000ull,
-  570000ull, 571000ull, 572000ull, 573000ull, 574000ull, 575000ull,
-    576000ull, 577000ull, 578000ull, 579000ull, 596000ull, 597000ull,
-    974000ull, 975000ull, 998000ull, 999000ull,
-  600000ull, 601000ull, 602000ull, 603000ull, 604000ull, 605000ull,
-    606000ull, 607000ull, 608000ull, 609000ull, 680000ull, 681000ull,
-    806000ull, 807000ull, 886000ull, 887000ull,
-  610000ull, 611000ull, 612000ull, 613000ull, 614000ull, 615000ull,
-    616000ull, 617000ull, 618000ull, 619000ull, 690000ull, 691000ull,
-    816000ull, 817000ull, 896000ull, 897000ull,
-  620000ull, 621000ull, 622000ull, 623000ull, 624000ull, 625000ull,
-    626000ull, 627000ull, 628000ull, 629000ull, 682000ull, 683000ull,
-    826000ull, 827000ull, 868000ull, 869000ull,
-  630000ull, 631000ull, 632000ull, 633000ull, 634000ull, 635000ull,
-    636000ull, 637000ull, 638000ull, 639000ull, 692000ull, 693000ull,
-    836000ull, 837000ull, 878000ull, 879000ull,
-  640000ull, 641000ull, 642000ull, 643000ull, 644000ull, 645000ull,
-    646000ull, 647000ull, 648000ull, 649000ull, 684000ull, 685000ull,
-    846000ull, 847000ull, 688000ull, 689000ull,
-  650000ull, 651000ull, 652000ull, 653000ull, 654000ull, 655000ull,
-    656000ull, 657000ull, 658000ull, 659000ull, 694000ull, 695000ull,
-    856000ull, 857000ull, 698000ull, 699000ull,
-  660000ull, 661000ull, 662000ull, 663000ull, 664000ull, 665000ull,
-    666000ull, 667000ull, 668000ull, 669000ull, 686000ull, 687000ull,
-    866000ull, 867000ull, 888000ull, 889000ull,
-  670000ull, 671000ull, 672000ull, 673000ull, 674000ull, 675000ull,
-    676000ull, 677000ull, 678000ull, 679000ull, 696000ull, 697000ull,
-    876000ull, 877000ull, 898000ull, 899000ull,
-  700000ull, 701000ull, 702000ull, 703000ull, 704000ull, 705000ull,
-    706000ull, 707000ull, 708000ull, 709000ull, 780000ull, 781000ull,
-    906000ull, 907000ull, 986000ull, 987000ull,
-  710000ull, 711000ull, 712000ull, 713000ull, 714000ull, 715000ull,
-    716000ull, 717000ull, 718000ull, 719000ull, 790000ull, 791000ull,
-    916000ull, 917000ull, 996000ull, 997000ull,
-  720000ull, 721000ull, 722000ull, 723000ull, 724000ull, 725000ull,
-    726000ull, 727000ull, 728000ull, 729000ull, 782000ull, 783000ull,
-    926000ull, 927000ull, 968000ull, 969000ull,
-  730000ull, 731000ull, 732000ull, 733000ull, 734000ull, 735000ull,
-    736000ull, 737000ull, 738000ull, 739000ull, 792000ull, 793000ull,
-    936000ull, 937000ull, 978000ull, 979000ull,
-  740000ull, 741000ull, 742000ull, 743000ull, 744000ull, 745000ull,
-    746000ull, 747000ull, 748000ull, 749000ull, 784000ull, 785000ull,
-    946000ull, 947000ull, 788000ull, 789000ull,
-  750000ull, 751000ull, 752000ull, 753000ull, 754000ull, 755000ull,
-    756000ull, 757000ull, 758000ull, 759000ull, 794000ull, 795000ull,
-    956000ull, 957000ull, 798000ull, 799000ull,
-  760000ull, 761000ull, 762000ull, 763000ull, 764000ull, 765000ull,
-    766000ull, 767000ull, 768000ull, 769000ull, 786000ull, 787000ull,
-    966000ull, 967000ull, 988000ull, 989000ull,
-  770000ull, 771000ull, 772000ull, 773000ull, 774000ull, 775000ull,
-    776000ull, 777000ull, 778000ull, 779000ull, 796000ull, 797000ull,
-    976000ull, 977000ull, 998000ull, 999000ull
-};
-
-UINT64 d2b3[] =
-  { 0000000ull, 1000000ull, 2000000ull, 3000000ull, 4000000ull,
-5000000ull, 6000000ull, 7000000ull, 8000000ull, 9000000ull, 80000000ull,
-81000000ull, 800000000ull, 801000000ull, 880000000ull, 881000000ull,
-  10000000ull, 11000000ull, 12000000ull, 13000000ull, 14000000ull,
-    15000000ull, 16000000ull, 17000000ull, 18000000ull, 19000000ull,
-    90000000ull, 91000000ull, 810000000ull, 811000000ull, 890000000ull,
-    891000000ull,
-  20000000ull, 21000000ull, 22000000ull, 23000000ull, 24000000ull,
-    25000000ull, 26000000ull, 27000000ull, 28000000ull, 29000000ull,
-    82000000ull, 83000000ull, 820000000ull, 821000000ull, 808000000ull,
-    809000000ull,
-  30000000ull, 31000000ull, 32000000ull, 33000000ull, 34000000ull,
-    35000000ull, 36000000ull, 37000000ull, 38000000ull, 39000000ull,
-    92000000ull, 93000000ull, 830000000ull, 831000000ull, 818000000ull,
-    819000000ull,
-  40000000ull, 41000000ull, 42000000ull, 43000000ull, 44000000ull,
-    45000000ull, 46000000ull, 47000000ull, 48000000ull, 49000000ull,
-    84000000ull, 85000000ull, 840000000ull, 841000000ull, 88000000ull,
-    89000000ull,
-  50000000ull, 51000000ull, 52000000ull, 53000000ull, 54000000ull,
-    55000000ull, 56000000ull, 57000000ull, 58000000ull, 59000000ull,
-    94000000ull, 95000000ull, 850000000ull, 851000000ull, 98000000ull,
-    99000000ull,
-  60000000ull, 61000000ull, 62000000ull, 63000000ull, 64000000ull,
-    65000000ull, 66000000ull, 67000000ull, 68000000ull, 69000000ull,
-    86000000ull, 87000000ull, 860000000ull, 861000000ull, 888000000ull,
-    889000000ull,
-  70000000ull, 71000000ull, 72000000ull, 73000000ull, 74000000ull,
-    75000000ull, 76000000ull, 77000000ull, 78000000ull, 79000000ull,
-    96000000ull, 97000000ull, 870000000ull, 871000000ull, 898000000ull,
-    899000000ull,
-  100000000ull, 101000000ull, 102000000ull, 103000000ull, 104000000ull,
-    105000000ull, 106000000ull, 107000000ull, 108000000ull,
-    109000000ull, 180000000ull, 181000000ull, 900000000ull,
-    901000000ull, 980000000ull, 981000000ull,
-  110000000ull, 111000000ull, 112000000ull, 113000000ull, 114000000ull,
-    115000000ull, 116000000ull, 117000000ull, 118000000ull,
-    119000000ull, 190000000ull, 191000000ull, 910000000ull,
-    911000000ull, 990000000ull, 991000000ull,
-  120000000ull, 121000000ull, 122000000ull, 123000000ull, 124000000ull,
-    125000000ull, 126000000ull, 127000000ull, 128000000ull,
-    129000000ull, 182000000ull, 183000000ull, 920000000ull,
-    921000000ull, 908000000ull, 909000000ull,
-  130000000ull, 131000000ull, 132000000ull, 133000000ull, 134000000ull,
-    135000000ull, 136000000ull, 137000000ull, 138000000ull,
-    139000000ull, 192000000ull, 193000000ull, 930000000ull,
-    931000000ull, 918000000ull, 919000000ull,
-  140000000ull, 141000000ull, 142000000ull, 143000000ull, 144000000ull,
-    145000000ull, 146000000ull, 147000000ull, 148000000ull,
-    149000000ull, 184000000ull, 185000000ull, 940000000ull,
-    941000000ull, 188000000ull, 189000000ull,
-  150000000ull, 151000000ull, 152000000ull, 153000000ull, 154000000ull,
-    155000000ull, 156000000ull, 157000000ull, 158000000ull,
-    159000000ull, 194000000ull, 195000000ull, 950000000ull,
-    951000000ull, 198000000ull, 199000000ull,
-  160000000ull, 161000000ull, 162000000ull, 163000000ull, 164000000ull,
-    165000000ull, 166000000ull, 167000000ull, 168000000ull,
-    169000000ull, 186000000ull, 187000000ull, 960000000ull,
-    961000000ull, 988000000ull, 989000000ull,
-  170000000ull, 171000000ull, 172000000ull, 173000000ull, 174000000ull,
-    175000000ull, 176000000ull, 177000000ull, 178000000ull,
-    179000000ull, 196000000ull, 197000000ull, 970000000ull,
-    971000000ull, 998000000ull, 999000000ull,
-  200000000ull, 201000000ull, 202000000ull, 203000000ull, 204000000ull,
-    205000000ull, 206000000ull, 207000000ull, 208000000ull,
-    209000000ull, 280000000ull, 281000000ull, 802000000ull,
-    803000000ull, 882000000ull, 883000000ull,
-  210000000ull, 211000000ull, 212000000ull, 213000000ull, 214000000ull,
-    215000000ull, 216000000ull, 217000000ull, 218000000ull,
-    219000000ull, 290000000ull, 291000000ull, 812000000ull,
-    813000000ull, 892000000ull, 893000000ull,
-  220000000ull, 221000000ull, 222000000ull, 223000000ull, 224000000ull,
-    225000000ull, 226000000ull, 227000000ull, 228000000ull,
-    229000000ull, 282000000ull, 283000000ull, 822000000ull,
-    823000000ull, 828000000ull, 829000000ull,
-  230000000ull, 231000000ull, 232000000ull, 233000000ull, 234000000ull,
-    235000000ull, 236000000ull, 237000000ull, 238000000ull,
-    239000000ull, 292000000ull, 293000000ull, 832000000ull,
-    833000000ull, 838000000ull, 839000000ull,
-  240000000ull, 241000000ull, 242000000ull, 243000000ull, 244000000ull,
-    245000000ull, 246000000ull, 247000000ull, 248000000ull,
-    249000000ull, 284000000ull, 285000000ull, 842000000ull,
-    843000000ull, 288000000ull, 289000000ull,
-  250000000ull, 251000000ull, 252000000ull, 253000000ull, 254000000ull,
-    255000000ull, 256000000ull, 257000000ull, 258000000ull,
-    259000000ull, 294000000ull, 295000000ull, 852000000ull,
-    853000000ull, 298000000ull, 299000000ull,
-  260000000ull, 261000000ull, 262000000ull, 263000000ull, 264000000ull,
-    265000000ull, 266000000ull, 267000000ull, 268000000ull,
-    269000000ull, 286000000ull, 287000000ull, 862000000ull,
-    863000000ull, 888000000ull, 889000000ull,
-  270000000ull, 271000000ull, 272000000ull, 273000000ull, 274000000ull,
-    275000000ull, 276000000ull, 277000000ull, 278000000ull,
-    279000000ull, 296000000ull, 297000000ull, 872000000ull,
-    873000000ull, 898000000ull, 899000000ull,
-  300000000ull, 301000000ull, 302000000ull, 303000000ull, 304000000ull,
-    305000000ull, 306000000ull, 307000000ull, 308000000ull,
-    309000000ull, 380000000ull, 381000000ull, 902000000ull,
-    903000000ull, 982000000ull, 983000000ull,
-  310000000ull, 311000000ull, 312000000ull, 313000000ull, 314000000ull,
-    315000000ull, 316000000ull, 317000000ull, 318000000ull,
-    319000000ull, 390000000ull, 391000000ull, 912000000ull,
-    913000000ull, 992000000ull, 993000000ull,
-  320000000ull, 321000000ull, 322000000ull, 323000000ull, 324000000ull,
-    325000000ull, 326000000ull, 327000000ull, 328000000ull,
-    329000000ull, 382000000ull, 383000000ull, 922000000ull,
-    923000000ull, 928000000ull, 929000000ull,
-  330000000ull, 331000000ull, 332000000ull, 333000000ull, 334000000ull,
-    335000000ull, 336000000ull, 337000000ull, 338000000ull,
-    339000000ull, 392000000ull, 393000000ull, 932000000ull,
-    933000000ull, 938000000ull, 939000000ull,
-  340000000ull, 341000000ull, 342000000ull, 343000000ull, 344000000ull,
-    345000000ull, 346000000ull, 347000000ull, 348000000ull,
-    349000000ull, 384000000ull, 385000000ull, 942000000ull,
-    943000000ull, 388000000ull, 389000000ull,
-  350000000ull, 351000000ull, 352000000ull, 353000000ull, 354000000ull,
-    355000000ull, 356000000ull, 357000000ull, 358000000ull,
-    359000000ull, 394000000ull, 395000000ull, 952000000ull,
-    953000000ull, 398000000ull, 399000000ull,
-  360000000ull, 361000000ull, 362000000ull, 363000000ull, 364000000ull,
-    365000000ull, 366000000ull, 367000000ull, 368000000ull,
-    369000000ull, 386000000ull, 387000000ull, 962000000ull,
-    963000000ull, 988000000ull, 989000000ull,
-  370000000ull, 371000000ull, 372000000ull, 373000000ull, 374000000ull,
-    375000000ull, 376000000ull, 377000000ull, 378000000ull,
-    379000000ull, 396000000ull, 397000000ull, 972000000ull,
-    973000000ull, 998000000ull, 999000000ull,
-  400000000ull, 401000000ull, 402000000ull, 403000000ull, 404000000ull,
-    405000000ull, 406000000ull, 407000000ull, 408000000ull,
-    409000000ull, 480000000ull, 481000000ull, 804000000ull,
-    805000000ull, 884000000ull, 885000000ull,
-  410000000ull, 411000000ull, 412000000ull, 413000000ull, 414000000ull,
-    415000000ull, 416000000ull, 417000000ull, 418000000ull,
-    419000000ull, 490000000ull, 491000000ull, 814000000ull,
-    815000000ull, 894000000ull, 895000000ull,
-  420000000ull, 421000000ull, 422000000ull, 423000000ull, 424000000ull,
-    425000000ull, 426000000ull, 427000000ull, 428000000ull,
-    429000000ull, 482000000ull, 483000000ull, 824000000ull,
-    825000000ull, 848000000ull, 849000000ull,
-  430000000ull, 431000000ull, 432000000ull, 433000000ull, 434000000ull,
-    435000000ull, 436000000ull, 437000000ull, 438000000ull,
-    439000000ull, 492000000ull, 493000000ull, 834000000ull,
-    835000000ull, 858000000ull, 859000000ull,
-  440000000ull, 441000000ull, 442000000ull, 443000000ull, 444000000ull,
-    445000000ull, 446000000ull, 447000000ull, 448000000ull,
-    449000000ull, 484000000ull, 485000000ull, 844000000ull,
-    845000000ull, 488000000ull, 489000000ull,
-  450000000ull, 451000000ull, 452000000ull, 453000000ull, 454000000ull,
-    455000000ull, 456000000ull, 457000000ull, 458000000ull,
-    459000000ull, 494000000ull, 495000000ull, 854000000ull,
-    855000000ull, 498000000ull, 499000000ull,
-  460000000ull, 461000000ull, 462000000ull, 463000000ull, 464000000ull,
-    465000000ull, 466000000ull, 467000000ull, 468000000ull,
-    469000000ull, 486000000ull, 487000000ull, 864000000ull,
-    865000000ull, 888000000ull, 889000000ull,
-  470000000ull, 471000000ull, 472000000ull, 473000000ull, 474000000ull,
-    475000000ull, 476000000ull, 477000000ull, 478000000ull,
-    479000000ull, 496000000ull, 497000000ull, 874000000ull,
-    875000000ull, 898000000ull, 899000000ull,
-  500000000ull, 501000000ull, 502000000ull, 503000000ull, 504000000ull,
-    505000000ull, 506000000ull, 507000000ull, 508000000ull,
-    509000000ull, 580000000ull, 581000000ull, 904000000ull,
-    905000000ull, 984000000ull, 985000000ull,
-  510000000ull, 511000000ull, 512000000ull, 513000000ull, 514000000ull,
-    515000000ull, 516000000ull, 517000000ull, 518000000ull,
-    519000000ull, 590000000ull, 591000000ull, 914000000ull,
-    915000000ull, 994000000ull, 995000000ull,
-  520000000ull, 521000000ull, 522000000ull, 523000000ull, 524000000ull,
-    525000000ull, 526000000ull, 527000000ull, 528000000ull,
-    529000000ull, 582000000ull, 583000000ull, 924000000ull,
-    925000000ull, 948000000ull, 949000000ull,
-  530000000ull, 531000000ull, 532000000ull, 533000000ull, 534000000ull,
-    535000000ull, 536000000ull, 537000000ull, 538000000ull,
-    539000000ull, 592000000ull, 593000000ull, 934000000ull,
-    935000000ull, 958000000ull, 959000000ull,
-  540000000ull, 541000000ull, 542000000ull, 543000000ull, 544000000ull,
-    545000000ull, 546000000ull, 547000000ull, 548000000ull,
-    549000000ull, 584000000ull, 585000000ull, 944000000ull,
-    945000000ull, 588000000ull, 589000000ull,
-  550000000ull, 551000000ull, 552000000ull, 553000000ull, 554000000ull,
-    555000000ull, 556000000ull, 557000000ull, 558000000ull,
-    559000000ull, 594000000ull, 595000000ull, 954000000ull,
-    955000000ull, 598000000ull, 599000000ull,
-  560000000ull, 561000000ull, 562000000ull, 563000000ull, 564000000ull,
-    565000000ull, 566000000ull, 567000000ull, 568000000ull,
-    569000000ull, 586000000ull, 587000000ull, 964000000ull,
-    965000000ull, 988000000ull, 989000000ull,
-  570000000ull, 571000000ull, 572000000ull, 573000000ull, 574000000ull,
-    575000000ull, 576000000ull, 577000000ull, 578000000ull,
-    579000000ull, 596000000ull, 597000000ull, 974000000ull,
-    975000000ull, 998000000ull, 999000000ull,
-  600000000ull, 601000000ull, 602000000ull, 603000000ull, 604000000ull,
-    605000000ull, 606000000ull, 607000000ull, 608000000ull,
-    609000000ull, 680000000ull, 681000000ull, 806000000ull,
-    807000000ull, 886000000ull, 887000000ull,
-  610000000ull, 611000000ull, 612000000ull, 613000000ull, 614000000ull,
-    615000000ull, 616000000ull, 617000000ull, 618000000ull,
-    619000000ull, 690000000ull, 691000000ull, 816000000ull,
-    817000000ull, 896000000ull, 897000000ull,
-  620000000ull, 621000000ull, 622000000ull, 623000000ull, 624000000ull,
-    625000000ull, 626000000ull, 627000000ull, 628000000ull,
-    629000000ull, 682000000ull, 683000000ull, 826000000ull,
-    827000000ull, 868000000ull, 869000000ull,
-  630000000ull, 631000000ull, 632000000ull, 633000000ull, 634000000ull,
-    635000000ull, 636000000ull, 637000000ull, 638000000ull,
-    639000000ull, 692000000ull, 693000000ull, 836000000ull,
-    837000000ull, 878000000ull, 879000000ull,
-  640000000ull, 641000000ull, 642000000ull, 643000000ull, 644000000ull,
-    645000000ull, 646000000ull, 647000000ull, 648000000ull,
-    649000000ull, 684000000ull, 685000000ull, 846000000ull,
-    847000000ull, 688000000ull, 689000000ull,
-  650000000ull, 651000000ull, 652000000ull, 653000000ull, 654000000ull,
-    655000000ull, 656000000ull, 657000000ull, 658000000ull,
-    659000000ull, 694000000ull, 695000000ull, 856000000ull,
-    857000000ull, 698000000ull, 699000000ull,
-  660000000ull, 661000000ull, 662000000ull, 663000000ull, 664000000ull,
-    665000000ull, 666000000ull, 667000000ull, 668000000ull,
-    669000000ull, 686000000ull, 687000000ull, 866000000ull,
-    867000000ull, 888000000ull, 889000000ull,
-  670000000ull, 671000000ull, 672000000ull, 673000000ull, 674000000ull,
-    675000000ull, 676000000ull, 677000000ull, 678000000ull,
-    679000000ull, 696000000ull, 697000000ull, 876000000ull,
-    877000000ull, 898000000ull, 899000000ull,
-  700000000ull, 701000000ull, 702000000ull, 703000000ull, 704000000ull,
-    705000000ull, 706000000ull, 707000000ull, 708000000ull,
-    709000000ull, 780000000ull, 781000000ull, 906000000ull,
-    907000000ull, 986000000ull, 987000000ull,
-  710000000ull, 711000000ull, 712000000ull, 713000000ull, 714000000ull,
-    715000000ull, 716000000ull, 717000000ull, 718000000ull,
-    719000000ull, 790000000ull, 791000000ull, 916000000ull,
-    917000000ull, 996000000ull, 997000000ull,
-  720000000ull, 721000000ull, 722000000ull, 723000000ull, 724000000ull,
-    725000000ull, 726000000ull, 727000000ull, 728000000ull,
-    729000000ull, 782000000ull, 783000000ull, 926000000ull,
-    927000000ull, 968000000ull, 969000000ull,
-  730000000ull, 731000000ull, 732000000ull, 733000000ull, 734000000ull,
-    735000000ull, 736000000ull, 737000000ull, 738000000ull,
-    739000000ull, 792000000ull, 793000000ull, 936000000ull,
-    937000000ull, 978000000ull, 979000000ull,
-  740000000ull, 741000000ull, 742000000ull, 743000000ull, 744000000ull,
-    745000000ull, 746000000ull, 747000000ull, 748000000ull,
-    749000000ull, 784000000ull, 785000000ull, 946000000ull,
-    947000000ull, 788000000ull, 789000000ull,
-  750000000ull, 751000000ull, 752000000ull, 753000000ull, 754000000ull,
-    755000000ull, 756000000ull, 757000000ull, 758000000ull,
-    759000000ull, 794000000ull, 795000000ull, 956000000ull,
-    957000000ull, 798000000ull, 799000000ull,
-  760000000ull, 761000000ull, 762000000ull, 763000000ull, 764000000ull,
-    765000000ull, 766000000ull, 767000000ull, 768000000ull,
-    769000000ull, 786000000ull, 787000000ull, 966000000ull,
-    967000000ull, 988000000ull, 989000000ull,
-  770000000ull, 771000000ull, 772000000ull, 773000000ull, 774000000ull,
-    775000000ull, 776000000ull, 777000000ull, 778000000ull,
-    779000000ull, 796000000ull, 797000000ull, 976000000ull,
-    977000000ull, 998000000ull, 999000000ull
-};
-
-UINT64 d2b4[] =
-  { 0000000000ull, 1000000000ull, 2000000000ull, 3000000000ull,
-4000000000ull, 5000000000ull, 6000000000ull, 7000000000ull, 8000000000ull,
-9000000000ull, 80000000000ull, 81000000000ull, 800000000000ull, 801000000000ull,
-880000000000ull, 881000000000ull,
-  10000000000ull, 11000000000ull, 12000000000ull, 13000000000ull,
-    14000000000ull, 15000000000ull, 16000000000ull, 17000000000ull,
-    18000000000ull, 19000000000ull, 90000000000ull, 91000000000ull,
-    810000000000ull, 811000000000ull, 890000000000ull, 891000000000ull,
-  20000000000ull, 21000000000ull, 22000000000ull, 23000000000ull,
-    24000000000ull, 25000000000ull, 26000000000ull, 27000000000ull,
-    28000000000ull, 29000000000ull, 82000000000ull, 83000000000ull,
-    820000000000ull, 821000000000ull, 808000000000ull, 809000000000ull,
-  30000000000ull, 31000000000ull, 32000000000ull, 33000000000ull,
-    34000000000ull, 35000000000ull, 36000000000ull, 37000000000ull,
-    38000000000ull, 39000000000ull, 92000000000ull, 93000000000ull,
-    830000000000ull, 831000000000ull, 818000000000ull, 819000000000ull,
-  40000000000ull, 41000000000ull, 42000000000ull, 43000000000ull,
-    44000000000ull, 45000000000ull, 46000000000ull, 47000000000ull,
-    48000000000ull, 49000000000ull, 84000000000ull, 85000000000ull,
-    840000000000ull, 841000000000ull, 88000000000ull, 89000000000ull,
-  50000000000ull, 51000000000ull, 52000000000ull, 53000000000ull,
-    54000000000ull, 55000000000ull, 56000000000ull, 57000000000ull,
-    58000000000ull, 59000000000ull, 94000000000ull, 95000000000ull,
-    850000000000ull, 851000000000ull, 98000000000ull, 99000000000ull,
-  60000000000ull, 61000000000ull, 62000000000ull, 63000000000ull,
-    64000000000ull, 65000000000ull, 66000000000ull, 67000000000ull,
-    68000000000ull, 69000000000ull, 86000000000ull, 87000000000ull,
-    860000000000ull, 861000000000ull, 888000000000ull, 889000000000ull,
-  70000000000ull, 71000000000ull, 72000000000ull, 73000000000ull,
-    74000000000ull, 75000000000ull, 76000000000ull, 77000000000ull,
-    78000000000ull, 79000000000ull, 96000000000ull, 97000000000ull,
-    870000000000ull, 871000000000ull, 898000000000ull, 899000000000ull,
-  100000000000ull, 101000000000ull, 102000000000ull, 103000000000ull,
-    104000000000ull, 105000000000ull, 106000000000ull, 107000000000ull,
-    108000000000ull, 109000000000ull, 180000000000ull, 181000000000ull,
-    900000000000ull, 901000000000ull, 980000000000ull, 981000000000ull,
-  110000000000ull, 111000000000ull, 112000000000ull, 113000000000ull,
-    114000000000ull, 115000000000ull, 116000000000ull, 117000000000ull,
-    118000000000ull, 119000000000ull, 190000000000ull, 191000000000ull,
-    910000000000ull, 911000000000ull, 990000000000ull, 991000000000ull,
-  120000000000ull, 121000000000ull, 122000000000ull, 123000000000ull,
-    124000000000ull, 125000000000ull, 126000000000ull, 127000000000ull,
-    128000000000ull, 129000000000ull, 182000000000ull, 183000000000ull,
-    920000000000ull, 921000000000ull, 908000000000ull, 909000000000ull,
-  130000000000ull, 131000000000ull, 132000000000ull, 133000000000ull,
-    134000000000ull, 135000000000ull, 136000000000ull, 137000000000ull,
-    138000000000ull, 139000000000ull, 192000000000ull, 193000000000ull,
-    930000000000ull, 931000000000ull, 918000000000ull, 919000000000ull,
-  140000000000ull, 141000000000ull, 142000000000ull, 143000000000ull,
-    144000000000ull, 145000000000ull, 146000000000ull, 147000000000ull,
-    148000000000ull, 149000000000ull, 184000000000ull, 185000000000ull,
-    940000000000ull, 941000000000ull, 188000000000ull, 189000000000ull,
-  150000000000ull, 151000000000ull, 152000000000ull, 153000000000ull,
-    154000000000ull, 155000000000ull, 156000000000ull, 157000000000ull,
-    158000000000ull, 159000000000ull, 194000000000ull, 195000000000ull,
-    950000000000ull, 951000000000ull, 198000000000ull, 199000000000ull,
-  160000000000ull, 161000000000ull, 162000000000ull, 163000000000ull,
-    164000000000ull, 165000000000ull, 166000000000ull, 167000000000ull,
-    168000000000ull, 169000000000ull, 186000000000ull, 187000000000ull,
-    960000000000ull, 961000000000ull, 988000000000ull, 989000000000ull,
-  170000000000ull, 171000000000ull, 172000000000ull, 173000000000ull,
-    174000000000ull, 175000000000ull, 176000000000ull, 177000000000ull,
-    178000000000ull, 179000000000ull, 196000000000ull, 197000000000ull,
-    970000000000ull, 971000000000ull, 998000000000ull, 999000000000ull,
-  200000000000ull, 201000000000ull, 202000000000ull, 203000000000ull,
-    204000000000ull, 205000000000ull, 206000000000ull, 207000000000ull,
-    208000000000ull, 209000000000ull, 280000000000ull, 281000000000ull,
-    802000000000ull, 803000000000ull, 882000000000ull, 883000000000ull,
-  210000000000ull, 211000000000ull, 212000000000ull, 213000000000ull,
-    214000000000ull, 215000000000ull, 216000000000ull, 217000000000ull,
-    218000000000ull, 219000000000ull, 290000000000ull, 291000000000ull,
-    812000000000ull, 813000000000ull, 892000000000ull, 893000000000ull,
-  220000000000ull, 221000000000ull, 222000000000ull, 223000000000ull,
-    224000000000ull, 225000000000ull, 226000000000ull, 227000000000ull,
-    228000000000ull, 229000000000ull, 282000000000ull, 283000000000ull,
-    822000000000ull, 823000000000ull, 828000000000ull, 829000000000ull,
-  230000000000ull, 231000000000ull, 232000000000ull, 233000000000ull,
-    234000000000ull, 235000000000ull, 236000000000ull, 237000000000ull,
-    238000000000ull, 239000000000ull, 292000000000ull, 293000000000ull,
-    832000000000ull, 833000000000ull, 838000000000ull, 839000000000ull,
-  240000000000ull, 241000000000ull, 242000000000ull, 243000000000ull,
-    244000000000ull, 245000000000ull, 246000000000ull, 247000000000ull,
-    248000000000ull, 249000000000ull, 284000000000ull, 285000000000ull,
-    842000000000ull, 843000000000ull, 288000000000ull, 289000000000ull,
-  250000000000ull, 251000000000ull, 252000000000ull, 253000000000ull,
-    254000000000ull, 255000000000ull, 256000000000ull, 257000000000ull,
-    258000000000ull, 259000000000ull, 294000000000ull, 295000000000ull,
-    852000000000ull, 853000000000ull, 298000000000ull, 299000000000ull,
-  260000000000ull, 261000000000ull, 262000000000ull, 263000000000ull,
-    264000000000ull, 265000000000ull, 266000000000ull, 267000000000ull,
-    268000000000ull, 269000000000ull, 286000000000ull, 287000000000ull,
-    862000000000ull, 863000000000ull, 888000000000ull, 889000000000ull,
-  270000000000ull, 271000000000ull, 272000000000ull, 273000000000ull,
-    274000000000ull, 275000000000ull, 276000000000ull, 277000000000ull,
-    278000000000ull, 279000000000ull, 296000000000ull, 297000000000ull,
-    872000000000ull, 873000000000ull, 898000000000ull, 899000000000ull,
-  300000000000ull, 301000000000ull, 302000000000ull, 303000000000ull,
-    304000000000ull, 305000000000ull, 306000000000ull, 307000000000ull,
-    308000000000ull, 309000000000ull, 380000000000ull, 381000000000ull,
-    902000000000ull, 903000000000ull, 982000000000ull, 983000000000ull,
-  310000000000ull, 311000000000ull, 312000000000ull, 313000000000ull,
-    314000000000ull, 315000000000ull, 316000000000ull, 317000000000ull,
-    318000000000ull, 319000000000ull, 390000000000ull, 391000000000ull,
-    912000000000ull, 913000000000ull, 992000000000ull, 993000000000ull,
-  320000000000ull, 321000000000ull, 322000000000ull, 323000000000ull,
-    324000000000ull, 325000000000ull, 326000000000ull, 327000000000ull,
-    328000000000ull, 329000000000ull, 382000000000ull, 383000000000ull,
-    922000000000ull, 923000000000ull, 928000000000ull, 929000000000ull,
-  330000000000ull, 331000000000ull, 332000000000ull, 333000000000ull,
-    334000000000ull, 335000000000ull, 336000000000ull, 337000000000ull,
-    338000000000ull, 339000000000ull, 392000000000ull, 393000000000ull,
-    932000000000ull, 933000000000ull, 938000000000ull, 939000000000ull,
-  340000000000ull, 341000000000ull, 342000000000ull, 343000000000ull,
-    344000000000ull, 345000000000ull, 346000000000ull, 347000000000ull,
-    348000000000ull, 349000000000ull, 384000000000ull, 385000000000ull,
-    942000000000ull, 943000000000ull, 388000000000ull, 389000000000ull,
-  350000000000ull, 351000000000ull, 352000000000ull, 353000000000ull,
-    354000000000ull, 355000000000ull, 356000000000ull, 357000000000ull,
-    358000000000ull, 359000000000ull, 394000000000ull, 395000000000ull,
-    952000000000ull, 953000000000ull, 398000000000ull, 399000000000ull,
-  360000000000ull, 361000000000ull, 362000000000ull, 363000000000ull,
-    364000000000ull, 365000000000ull, 366000000000ull, 367000000000ull,
-    368000000000ull, 369000000000ull, 386000000000ull, 387000000000ull,
-    962000000000ull, 963000000000ull, 988000000000ull, 989000000000ull,
-  370000000000ull, 371000000000ull, 372000000000ull, 373000000000ull,
-    374000000000ull, 375000000000ull, 376000000000ull, 377000000000ull,
-    378000000000ull, 379000000000ull, 396000000000ull, 397000000000ull,
-    972000000000ull, 973000000000ull, 998000000000ull, 999000000000ull,
-  400000000000ull, 401000000000ull, 402000000000ull, 403000000000ull,
-    404000000000ull, 405000000000ull, 406000000000ull, 407000000000ull,
-    408000000000ull, 409000000000ull, 480000000000ull, 481000000000ull,
-    804000000000ull, 805000000000ull, 884000000000ull, 885000000000ull,
-  410000000000ull, 411000000000ull, 412000000000ull, 413000000000ull,
-    414000000000ull, 415000000000ull, 416000000000ull, 417000000000ull,
-    418000000000ull, 419000000000ull, 490000000000ull, 491000000000ull,
-    814000000000ull, 815000000000ull, 894000000000ull, 895000000000ull,
-  420000000000ull, 421000000000ull, 422000000000ull, 423000000000ull,
-    424000000000ull, 425000000000ull, 426000000000ull, 427000000000ull,
-    428000000000ull, 429000000000ull, 482000000000ull, 483000000000ull,
-    824000000000ull, 825000000000ull, 848000000000ull, 849000000000ull,
-  430000000000ull, 431000000000ull, 432000000000ull, 433000000000ull,
-    434000000000ull, 435000000000ull, 436000000000ull, 437000000000ull,
-    438000000000ull, 439000000000ull, 492000000000ull, 493000000000ull,
-    834000000000ull, 835000000000ull, 858000000000ull, 859000000000ull,
-  440000000000ull, 441000000000ull, 442000000000ull, 443000000000ull,
-    444000000000ull, 445000000000ull, 446000000000ull, 447000000000ull,
-    448000000000ull, 449000000000ull, 484000000000ull, 485000000000ull,
-    844000000000ull, 845000000000ull, 488000000000ull, 489000000000ull,
-  450000000000ull, 451000000000ull, 452000000000ull, 453000000000ull,
-    454000000000ull, 455000000000ull, 456000000000ull, 457000000000ull,
-    458000000000ull, 459000000000ull, 494000000000ull, 495000000000ull,
-    854000000000ull, 855000000000ull, 498000000000ull, 499000000000ull,
-  460000000000ull, 461000000000ull, 462000000000ull, 463000000000ull,
-    464000000000ull, 465000000000ull, 466000000000ull, 467000000000ull,
-    468000000000ull, 469000000000ull, 486000000000ull, 487000000000ull,
-    864000000000ull, 865000000000ull, 888000000000ull, 889000000000ull,
-  470000000000ull, 471000000000ull, 472000000000ull, 473000000000ull,
-    474000000000ull, 475000000000ull, 476000000000ull, 477000000000ull,
-    478000000000ull, 479000000000ull, 496000000000ull, 497000000000ull,
-    874000000000ull, 875000000000ull, 898000000000ull, 899000000000ull,
-  500000000000ull, 501000000000ull, 502000000000ull, 503000000000ull,
-    504000000000ull, 505000000000ull, 506000000000ull, 507000000000ull,
-    508000000000ull, 509000000000ull, 580000000000ull, 581000000000ull,
-    904000000000ull, 905000000000ull, 984000000000ull, 985000000000ull,
-  510000000000ull, 511000000000ull, 512000000000ull, 513000000000ull,
-    514000000000ull, 515000000000ull, 516000000000ull, 517000000000ull,
-    518000000000ull, 519000000000ull, 590000000000ull, 591000000000ull,
-    914000000000ull, 915000000000ull, 994000000000ull, 995000000000ull,
-  520000000000ull, 521000000000ull, 522000000000ull, 523000000000ull,
-    524000000000ull, 525000000000ull, 526000000000ull, 527000000000ull,
-    528000000000ull, 529000000000ull, 582000000000ull, 583000000000ull,
-    924000000000ull, 925000000000ull, 948000000000ull, 949000000000ull,
-  530000000000ull, 531000000000ull, 532000000000ull, 533000000000ull,
-    534000000000ull, 535000000000ull, 536000000000ull, 537000000000ull,
-    538000000000ull, 539000000000ull, 592000000000ull, 593000000000ull,
-    934000000000ull, 935000000000ull, 958000000000ull, 959000000000ull,
-  540000000000ull, 541000000000ull, 542000000000ull, 543000000000ull,
-    544000000000ull, 545000000000ull, 546000000000ull, 547000000000ull,
-    548000000000ull, 549000000000ull, 584000000000ull, 585000000000ull,
-    944000000000ull, 945000000000ull, 588000000000ull, 589000000000ull,
-  550000000000ull, 551000000000ull, 552000000000ull, 553000000000ull,
-    554000000000ull, 555000000000ull, 556000000000ull, 557000000000ull,
-    558000000000ull, 559000000000ull, 594000000000ull, 595000000000ull,
-    954000000000ull, 955000000000ull, 598000000000ull, 599000000000ull,
-  560000000000ull, 561000000000ull, 562000000000ull, 563000000000ull,
-    564000000000ull, 565000000000ull, 566000000000ull, 567000000000ull,
-    568000000000ull, 569000000000ull, 586000000000ull, 587000000000ull,
-    964000000000ull, 965000000000ull, 988000000000ull, 989000000000ull,
-  570000000000ull, 571000000000ull, 572000000000ull, 573000000000ull,
-    574000000000ull, 575000000000ull, 576000000000ull, 577000000000ull,
-    578000000000ull, 579000000000ull, 596000000000ull, 597000000000ull,
-    974000000000ull, 975000000000ull, 998000000000ull, 999000000000ull,
-  600000000000ull, 601000000000ull, 602000000000ull, 603000000000ull,
-    604000000000ull, 605000000000ull, 606000000000ull, 607000000000ull,
-    608000000000ull, 609000000000ull, 680000000000ull, 681000000000ull,
-    806000000000ull, 807000000000ull, 886000000000ull, 887000000000ull,
-  610000000000ull, 611000000000ull, 612000000000ull, 613000000000ull,
-    614000000000ull, 615000000000ull, 616000000000ull, 617000000000ull,
-    618000000000ull, 619000000000ull, 690000000000ull, 691000000000ull,
-    816000000000ull, 817000000000ull, 896000000000ull, 897000000000ull,
-  620000000000ull, 621000000000ull, 622000000000ull, 623000000000ull,
-    624000000000ull, 625000000000ull, 626000000000ull, 627000000000ull,
-    628000000000ull, 629000000000ull, 682000000000ull, 683000000000ull,
-    826000000000ull, 827000000000ull, 868000000000ull, 869000000000ull,
-  630000000000ull, 631000000000ull, 632000000000ull, 633000000000ull,
-    634000000000ull, 635000000000ull, 636000000000ull, 637000000000ull,
-    638000000000ull, 639000000000ull, 692000000000ull, 693000000000ull,
-    836000000000ull, 837000000000ull, 878000000000ull, 879000000000ull,
-  640000000000ull, 641000000000ull, 642000000000ull, 643000000000ull,
-    644000000000ull, 645000000000ull, 646000000000ull, 647000000000ull,
-    648000000000ull, 649000000000ull, 684000000000ull, 685000000000ull,
-    846000000000ull, 847000000000ull, 688000000000ull, 689000000000ull,
-  650000000000ull, 651000000000ull, 652000000000ull, 653000000000ull,
-    654000000000ull, 655000000000ull, 656000000000ull, 657000000000ull,
-    658000000000ull, 659000000000ull, 694000000000ull, 695000000000ull,
-    856000000000ull, 857000000000ull, 698000000000ull, 699000000000ull,
-  660000000000ull, 661000000000ull, 662000000000ull, 663000000000ull,
-    664000000000ull, 665000000000ull, 666000000000ull, 667000000000ull,
-    668000000000ull, 669000000000ull, 686000000000ull, 687000000000ull,
-    866000000000ull, 867000000000ull, 888000000000ull, 889000000000ull,
-  670000000000ull, 671000000000ull, 672000000000ull, 673000000000ull,
-    674000000000ull, 675000000000ull, 676000000000ull, 677000000000ull,
-    678000000000ull, 679000000000ull, 696000000000ull, 697000000000ull,
-    876000000000ull, 877000000000ull, 898000000000ull, 899000000000ull,
-  700000000000ull, 701000000000ull, 702000000000ull, 703000000000ull,
-    704000000000ull, 705000000000ull, 706000000000ull, 707000000000ull,
-    708000000000ull, 709000000000ull, 780000000000ull, 781000000000ull,
-    906000000000ull, 907000000000ull, 986000000000ull, 987000000000ull,
-  710000000000ull, 711000000000ull, 712000000000ull, 713000000000ull,
-    714000000000ull, 715000000000ull, 716000000000ull, 717000000000ull,
-    718000000000ull, 719000000000ull, 790000000000ull, 791000000000ull,
-    916000000000ull, 917000000000ull, 996000000000ull, 997000000000ull,
-  720000000000ull, 721000000000ull, 722000000000ull, 723000000000ull,
-    724000000000ull, 725000000000ull, 726000000000ull, 727000000000ull,
-    728000000000ull, 729000000000ull, 782000000000ull, 783000000000ull,
-    926000000000ull, 927000000000ull, 968000000000ull, 969000000000ull,
-  730000000000ull, 731000000000ull, 732000000000ull, 733000000000ull,
-    734000000000ull, 735000000000ull, 736000000000ull, 737000000000ull,
-    738000000000ull, 739000000000ull, 792000000000ull, 793000000000ull,
-    936000000000ull, 937000000000ull, 978000000000ull, 979000000000ull,
-  740000000000ull, 741000000000ull, 742000000000ull, 743000000000ull,
-    744000000000ull, 745000000000ull, 746000000000ull, 747000000000ull,
-    748000000000ull, 749000000000ull, 784000000000ull, 785000000000ull,
-    946000000000ull, 947000000000ull, 788000000000ull, 789000000000ull,
-  750000000000ull, 751000000000ull, 752000000000ull, 753000000000ull,
-    754000000000ull, 755000000000ull, 756000000000ull, 757000000000ull,
-    758000000000ull, 759000000000ull, 794000000000ull, 795000000000ull,
-    956000000000ull, 957000000000ull, 798000000000ull, 799000000000ull,
-  760000000000ull, 761000000000ull, 762000000000ull, 763000000000ull,
-    764000000000ull, 765000000000ull, 766000000000ull, 767000000000ull,
-    768000000000ull, 769000000000ull, 786000000000ull, 787000000000ull,
-    966000000000ull, 967000000000ull, 988000000000ull, 989000000000ull,
-  770000000000ull, 771000000000ull, 772000000000ull, 773000000000ull,
-    774000000000ull, 775000000000ull, 776000000000ull, 777000000000ull,
-    778000000000ull, 779000000000ull, 796000000000ull, 797000000000ull,
-    976000000000ull, 977000000000ull, 998000000000ull, 999000000000ull
-};
-
-UINT64 d2b5[] =
-  { 0000000000000ull, 1000000000000ull, 2000000000000ull,
-3000000000000ull, 4000000000000ull, 5000000000000ull, 6000000000000ull,
-7000000000000ull, 8000000000000ull, 9000000000000ull, 80000000000000ull,
-81000000000000ull, 800000000000000ull, 801000000000000ull, 880000000000000ull,
-881000000000000ull,
-  10000000000000ull, 11000000000000ull, 12000000000000ull,
-    13000000000000ull, 14000000000000ull, 15000000000000ull,
-    16000000000000ull, 17000000000000ull, 18000000000000ull,
-    19000000000000ull, 90000000000000ull, 91000000000000ull,
-    810000000000000ull, 811000000000000ull, 890000000000000ull,
-    891000000000000ull,
-  20000000000000ull, 21000000000000ull, 22000000000000ull,
-    23000000000000ull, 24000000000000ull, 25000000000000ull,
-    26000000000000ull, 27000000000000ull, 28000000000000ull,
-    29000000000000ull, 82000000000000ull, 83000000000000ull,
-    820000000000000ull, 821000000000000ull, 808000000000000ull,
-    809000000000000ull,
-  30000000000000ull, 31000000000000ull, 32000000000000ull,
-    33000000000000ull, 34000000000000ull, 35000000000000ull,
-    36000000000000ull, 37000000000000ull, 38000000000000ull,
-    39000000000000ull, 92000000000000ull, 93000000000000ull,
-    830000000000000ull, 831000000000000ull, 818000000000000ull,
-    819000000000000ull,
-  40000000000000ull, 41000000000000ull, 42000000000000ull,
-    43000000000000ull, 44000000000000ull, 45000000000000ull,
-    46000000000000ull, 47000000000000ull, 48000000000000ull,
-    49000000000000ull, 84000000000000ull, 85000000000000ull,
-    840000000000000ull, 841000000000000ull, 88000000000000ull,
-    89000000000000ull,
-  50000000000000ull, 51000000000000ull, 52000000000000ull,
-    53000000000000ull, 54000000000000ull, 55000000000000ull,
-    56000000000000ull, 57000000000000ull, 58000000000000ull,
-    59000000000000ull, 94000000000000ull, 95000000000000ull,
-    850000000000000ull, 851000000000000ull, 98000000000000ull,
-    99000000000000ull,
-  60000000000000ull, 61000000000000ull, 62000000000000ull,
-    63000000000000ull, 64000000000000ull, 65000000000000ull,
-    66000000000000ull, 67000000000000ull, 68000000000000ull,
-    69000000000000ull, 86000000000000ull, 87000000000000ull,
-    860000000000000ull, 861000000000000ull, 888000000000000ull,
-    889000000000000ull,
-  70000000000000ull, 71000000000000ull, 72000000000000ull,
-    73000000000000ull, 74000000000000ull, 75000000000000ull,
-    76000000000000ull, 77000000000000ull, 78000000000000ull,
-    79000000000000ull, 96000000000000ull, 97000000000000ull,
-    870000000000000ull, 871000000000000ull, 898000000000000ull,
-    899000000000000ull,
-  100000000000000ull, 101000000000000ull, 102000000000000ull,
-    103000000000000ull, 104000000000000ull, 105000000000000ull,
-    106000000000000ull, 107000000000000ull, 108000000000000ull,
-    109000000000000ull, 180000000000000ull, 181000000000000ull,
-    900000000000000ull, 901000000000000ull, 980000000000000ull,
-    981000000000000ull,
-  110000000000000ull, 111000000000000ull, 112000000000000ull,
-    113000000000000ull, 114000000000000ull, 115000000000000ull,
-    116000000000000ull, 117000000000000ull, 118000000000000ull,
-    119000000000000ull, 190000000000000ull, 191000000000000ull,
-    910000000000000ull, 911000000000000ull, 990000000000000ull,
-    991000000000000ull,
-  120000000000000ull, 121000000000000ull, 122000000000000ull,
-    123000000000000ull, 124000000000000ull, 125000000000000ull,
-    126000000000000ull, 127000000000000ull, 128000000000000ull,
-    129000000000000ull, 182000000000000ull, 183000000000000ull,
-    920000000000000ull, 921000000000000ull, 908000000000000ull,
-    909000000000000ull,
-  130000000000000ull, 131000000000000ull, 132000000000000ull,
-    133000000000000ull, 134000000000000ull, 135000000000000ull,
-    136000000000000ull, 137000000000000ull, 138000000000000ull,
-    139000000000000ull, 192000000000000ull, 193000000000000ull,
-    930000000000000ull, 931000000000000ull, 918000000000000ull,
-    919000000000000ull,
-  140000000000000ull, 141000000000000ull, 142000000000000ull,
-    143000000000000ull, 144000000000000ull, 145000000000000ull,
-    146000000000000ull, 147000000000000ull, 148000000000000ull,
-    149000000000000ull, 184000000000000ull, 185000000000000ull,
-    940000000000000ull, 941000000000000ull, 188000000000000ull,
-    189000000000000ull,
-  150000000000000ull, 151000000000000ull, 152000000000000ull,
-    153000000000000ull, 154000000000000ull, 155000000000000ull,
-    156000000000000ull, 157000000000000ull, 158000000000000ull,
-    159000000000000ull, 194000000000000ull, 195000000000000ull,
-    950000000000000ull, 951000000000000ull, 198000000000000ull,
-    199000000000000ull,
-  160000000000000ull, 161000000000000ull, 162000000000000ull,
-    163000000000000ull, 164000000000000ull, 165000000000000ull,
-    166000000000000ull, 167000000000000ull, 168000000000000ull,
-    169000000000000ull, 186000000000000ull, 187000000000000ull,
-    960000000000000ull, 961000000000000ull, 988000000000000ull,
-    989000000000000ull,
-  170000000000000ull, 171000000000000ull, 172000000000000ull,
-    173000000000000ull, 174000000000000ull, 175000000000000ull,
-    176000000000000ull, 177000000000000ull, 178000000000000ull,
-    179000000000000ull, 196000000000000ull, 197000000000000ull,
-    970000000000000ull, 971000000000000ull, 998000000000000ull,
-    999000000000000ull,
-  200000000000000ull, 201000000000000ull, 202000000000000ull,
-    203000000000000ull, 204000000000000ull, 205000000000000ull,
-    206000000000000ull, 207000000000000ull, 208000000000000ull,
-    209000000000000ull, 280000000000000ull, 281000000000000ull,
-    802000000000000ull, 803000000000000ull, 882000000000000ull,
-    883000000000000ull,
-  210000000000000ull, 211000000000000ull, 212000000000000ull,
-    213000000000000ull, 214000000000000ull, 215000000000000ull,
-    216000000000000ull, 217000000000000ull, 218000000000000ull,
-    219000000000000ull, 290000000000000ull, 291000000000000ull,
-    812000000000000ull, 813000000000000ull, 892000000000000ull,
-    893000000000000ull,
-  220000000000000ull, 221000000000000ull, 222000000000000ull,
-    223000000000000ull, 224000000000000ull, 225000000000000ull,
-    226000000000000ull, 227000000000000ull, 228000000000000ull,
-    229000000000000ull, 282000000000000ull, 283000000000000ull,
-    822000000000000ull, 823000000000000ull, 828000000000000ull,
-    829000000000000ull,
-  230000000000000ull, 231000000000000ull, 232000000000000ull,
-    233000000000000ull, 234000000000000ull, 235000000000000ull,
-    236000000000000ull, 237000000000000ull, 238000000000000ull,
-    239000000000000ull, 292000000000000ull, 293000000000000ull,
-    832000000000000ull, 833000000000000ull, 838000000000000ull,
-    839000000000000ull,
-  240000000000000ull, 241000000000000ull, 242000000000000ull,
-    243000000000000ull, 244000000000000ull, 245000000000000ull,
-    246000000000000ull, 247000000000000ull, 248000000000000ull,
-    249000000000000ull, 284000000000000ull, 285000000000000ull,
-    842000000000000ull, 843000000000000ull, 288000000000000ull,
-    289000000000000ull,
-  250000000000000ull, 251000000000000ull, 252000000000000ull,
-    253000000000000ull, 254000000000000ull, 255000000000000ull,
-    256000000000000ull, 257000000000000ull, 258000000000000ull,
-    259000000000000ull, 294000000000000ull, 295000000000000ull,
-    852000000000000ull, 853000000000000ull, 298000000000000ull,
-    299000000000000ull,
-  260000000000000ull, 261000000000000ull, 262000000000000ull,
-    263000000000000ull, 264000000000000ull, 265000000000000ull,
-    266000000000000ull, 267000000000000ull, 268000000000000ull,
-    269000000000000ull, 286000000000000ull, 287000000000000ull,
-    862000000000000ull, 863000000000000ull, 888000000000000ull,
-    889000000000000ull,
-  270000000000000ull, 271000000000000ull, 272000000000000ull,
-    273000000000000ull, 274000000000000ull, 275000000000000ull,
-    276000000000000ull, 277000000000000ull, 278000000000000ull,
-    279000000000000ull, 296000000000000ull, 297000000000000ull,
-    872000000000000ull, 873000000000000ull, 898000000000000ull,
-    899000000000000ull,
-  300000000000000ull, 301000000000000ull, 302000000000000ull,
-    303000000000000ull, 304000000000000ull, 305000000000000ull,
-    306000000000000ull, 307000000000000ull, 308000000000000ull,
-    309000000000000ull, 380000000000000ull, 381000000000000ull,
-    902000000000000ull, 903000000000000ull, 982000000000000ull,
-    983000000000000ull,
-  310000000000000ull, 311000000000000ull, 312000000000000ull,
-    313000000000000ull, 314000000000000ull, 315000000000000ull,
-    316000000000000ull, 317000000000000ull, 318000000000000ull,
-    319000000000000ull, 390000000000000ull, 391000000000000ull,
-    912000000000000ull, 913000000000000ull, 992000000000000ull,
-    993000000000000ull,
-  320000000000000ull, 321000000000000ull, 322000000000000ull,
-    323000000000000ull, 324000000000000ull, 325000000000000ull,
-    326000000000000ull, 327000000000000ull, 328000000000000ull,
-    329000000000000ull, 382000000000000ull, 383000000000000ull,
-    922000000000000ull, 923000000000000ull, 928000000000000ull,
-    929000000000000ull,
-  330000000000000ull, 331000000000000ull, 332000000000000ull,
-    333000000000000ull, 334000000000000ull, 335000000000000ull,
-    336000000000000ull, 337000000000000ull, 338000000000000ull,
-    339000000000000ull, 392000000000000ull, 393000000000000ull,
-    932000000000000ull, 933000000000000ull, 938000000000000ull,
-    939000000000000ull,
-  340000000000000ull, 341000000000000ull, 342000000000000ull,
-    343000000000000ull, 344000000000000ull, 345000000000000ull,
-    346000000000000ull, 347000000000000ull, 348000000000000ull,
-    349000000000000ull, 384000000000000ull, 385000000000000ull,
-    942000000000000ull, 943000000000000ull, 388000000000000ull,
-    389000000000000ull,
-  350000000000000ull, 351000000000000ull, 352000000000000ull,
-    353000000000000ull, 354000000000000ull, 355000000000000ull,
-    356000000000000ull, 357000000000000ull, 358000000000000ull,
-    359000000000000ull, 394000000000000ull, 395000000000000ull,
-    952000000000000ull, 953000000000000ull, 398000000000000ull,
-    399000000000000ull,
-  360000000000000ull, 361000000000000ull, 362000000000000ull,
-    363000000000000ull, 364000000000000ull, 365000000000000ull,
-    366000000000000ull, 367000000000000ull, 368000000000000ull,
-    369000000000000ull, 386000000000000ull, 387000000000000ull,
-    962000000000000ull, 963000000000000ull, 988000000000000ull,
-    989000000000000ull,
-  370000000000000ull, 371000000000000ull, 372000000000000ull,
-    373000000000000ull, 374000000000000ull, 375000000000000ull,
-    376000000000000ull, 377000000000000ull, 378000000000000ull,
-    379000000000000ull, 396000000000000ull, 397000000000000ull,
-    972000000000000ull, 973000000000000ull, 998000000000000ull,
-    999000000000000ull,
-  400000000000000ull, 401000000000000ull, 402000000000000ull,
-    403000000000000ull, 404000000000000ull, 405000000000000ull,
-    406000000000000ull, 407000000000000ull, 408000000000000ull,
-    409000000000000ull, 480000000000000ull, 481000000000000ull,
-    804000000000000ull, 805000000000000ull, 884000000000000ull,
-    885000000000000ull,
-  410000000000000ull, 411000000000000ull, 412000000000000ull,
-    413000000000000ull, 414000000000000ull, 415000000000000ull,
-    416000000000000ull, 417000000000000ull, 418000000000000ull,
-    419000000000000ull, 490000000000000ull, 491000000000000ull,
-    814000000000000ull, 815000000000000ull, 894000000000000ull,
-    895000000000000ull,
-  420000000000000ull, 421000000000000ull, 422000000000000ull,
-    423000000000000ull, 424000000000000ull, 425000000000000ull,
-    426000000000000ull, 427000000000000ull, 428000000000000ull,
-    429000000000000ull, 482000000000000ull, 483000000000000ull,
-    824000000000000ull, 825000000000000ull, 848000000000000ull,
-    849000000000000ull,
-  430000000000000ull, 431000000000000ull, 432000000000000ull,
-    433000000000000ull, 434000000000000ull, 435000000000000ull,
-    436000000000000ull, 437000000000000ull, 438000000000000ull,
-    439000000000000ull, 492000000000000ull, 493000000000000ull,
-    834000000000000ull, 835000000000000ull, 858000000000000ull,
-    859000000000000ull,
-  440000000000000ull, 441000000000000ull, 442000000000000ull,
-    443000000000000ull, 444000000000000ull, 445000000000000ull,
-    446000000000000ull, 447000000000000ull, 448000000000000ull,
-    449000000000000ull, 484000000000000ull, 485000000000000ull,
-    844000000000000ull, 845000000000000ull, 488000000000000ull,
-    489000000000000ull,
-  450000000000000ull, 451000000000000ull, 452000000000000ull,
-    453000000000000ull, 454000000000000ull, 455000000000000ull,
-    456000000000000ull, 457000000000000ull, 458000000000000ull,
-    459000000000000ull, 494000000000000ull, 495000000000000ull,
-    854000000000000ull, 855000000000000ull, 498000000000000ull,
-    499000000000000ull,
-  460000000000000ull, 461000000000000ull, 462000000000000ull,
-    463000000000000ull, 464000000000000ull, 465000000000000ull,
-    466000000000000ull, 467000000000000ull, 468000000000000ull,
-    469000000000000ull, 486000000000000ull, 487000000000000ull,
-    864000000000000ull, 865000000000000ull, 888000000000000ull,
-    889000000000000ull,
-  470000000000000ull, 471000000000000ull, 472000000000000ull,
-    473000000000000ull, 474000000000000ull, 475000000000000ull,
-    476000000000000ull, 477000000000000ull, 478000000000000ull,
-    479000000000000ull, 496000000000000ull, 497000000000000ull,
-    874000000000000ull, 875000000000000ull, 898000000000000ull,
-    899000000000000ull,
-  500000000000000ull, 501000000000000ull, 502000000000000ull,
-    503000000000000ull, 504000000000000ull, 505000000000000ull,
-    506000000000000ull, 507000000000000ull, 508000000000000ull,
-    509000000000000ull, 580000000000000ull, 581000000000000ull,
-    904000000000000ull, 905000000000000ull, 984000000000000ull,
-    985000000000000ull,
-  510000000000000ull, 511000000000000ull, 512000000000000ull,
-    513000000000000ull, 514000000000000ull, 515000000000000ull,
-    516000000000000ull, 517000000000000ull, 518000000000000ull,
-    519000000000000ull, 590000000000000ull, 591000000000000ull,
-    914000000000000ull, 915000000000000ull, 994000000000000ull,
-    995000000000000ull,
-  520000000000000ull, 521000000000000ull, 522000000000000ull,
-    523000000000000ull, 524000000000000ull, 525000000000000ull,
-    526000000000000ull, 527000000000000ull, 528000000000000ull,
-    529000000000000ull, 582000000000000ull, 583000000000000ull,
-    924000000000000ull, 925000000000000ull, 948000000000000ull,
-    949000000000000ull,
-  530000000000000ull, 531000000000000ull, 532000000000000ull,
-    533000000000000ull, 534000000000000ull, 535000000000000ull,
-    536000000000000ull, 537000000000000ull, 538000000000000ull,
-    539000000000000ull, 592000000000000ull, 593000000000000ull,
-    934000000000000ull, 935000000000000ull, 958000000000000ull,
-    959000000000000ull,
-  540000000000000ull, 541000000000000ull, 542000000000000ull,
-    543000000000000ull, 544000000000000ull, 545000000000000ull,
-    546000000000000ull, 547000000000000ull, 548000000000000ull,
-    549000000000000ull, 584000000000000ull, 585000000000000ull,
-    944000000000000ull, 945000000000000ull, 588000000000000ull,
-    589000000000000ull,
-  550000000000000ull, 551000000000000ull, 552000000000000ull,
-    553000000000000ull, 554000000000000ull, 555000000000000ull,
-    556000000000000ull, 557000000000000ull, 558000000000000ull,
-    559000000000000ull, 594000000000000ull, 595000000000000ull,
-    954000000000000ull, 955000000000000ull, 598000000000000ull,
-    599000000000000ull,
-  560000000000000ull, 561000000000000ull, 562000000000000ull,
-    563000000000000ull, 564000000000000ull, 565000000000000ull,
-    566000000000000ull, 567000000000000ull, 568000000000000ull,
-    569000000000000ull, 586000000000000ull, 587000000000000ull,
-    964000000000000ull, 965000000000000ull, 988000000000000ull,
-    989000000000000ull,
-  570000000000000ull, 571000000000000ull, 572000000000000ull,
-    573000000000000ull, 574000000000000ull, 575000000000000ull,
-    576000000000000ull, 577000000000000ull, 578000000000000ull,
-    579000000000000ull, 596000000000000ull, 597000000000000ull,
-    974000000000000ull, 975000000000000ull, 998000000000000ull,
-    999000000000000ull,
-  600000000000000ull, 601000000000000ull, 602000000000000ull,
-    603000000000000ull, 604000000000000ull, 605000000000000ull,
-    606000000000000ull, 607000000000000ull, 608000000000000ull,
-    609000000000000ull, 680000000000000ull, 681000000000000ull,
-    806000000000000ull, 807000000000000ull, 886000000000000ull,
-    887000000000000ull,
-  610000000000000ull, 611000000000000ull, 612000000000000ull,
-    613000000000000ull, 614000000000000ull, 615000000000000ull,
-    616000000000000ull, 617000000000000ull, 618000000000000ull,
-    619000000000000ull, 690000000000000ull, 691000000000000ull,
-    816000000000000ull, 817000000000000ull, 896000000000000ull,
-    897000000000000ull,
-  620000000000000ull, 621000000000000ull, 622000000000000ull,
-    623000000000000ull, 624000000000000ull, 625000000000000ull,
-    626000000000000ull, 627000000000000ull, 628000000000000ull,
-    629000000000000ull, 682000000000000ull, 683000000000000ull,
-    826000000000000ull, 827000000000000ull, 868000000000000ull,
-    869000000000000ull,
-  630000000000000ull, 631000000000000ull, 632000000000000ull,
-    633000000000000ull, 634000000000000ull, 635000000000000ull,
-    636000000000000ull, 637000000000000ull, 638000000000000ull,
-    639000000000000ull, 692000000000000ull, 693000000000000ull,
-    836000000000000ull, 837000000000000ull, 878000000000000ull,
-    879000000000000ull,
-  640000000000000ull, 641000000000000ull, 642000000000000ull,
-    643000000000000ull, 644000000000000ull, 645000000000000ull,
-    646000000000000ull, 647000000000000ull, 648000000000000ull,
-    649000000000000ull, 684000000000000ull, 685000000000000ull,
-    846000000000000ull, 847000000000000ull, 688000000000000ull,
-    689000000000000ull,
-  650000000000000ull, 651000000000000ull, 652000000000000ull,
-    653000000000000ull, 654000000000000ull, 655000000000000ull,
-    656000000000000ull, 657000000000000ull, 658000000000000ull,
-    659000000000000ull, 694000000000000ull, 695000000000000ull,
-    856000000000000ull, 857000000000000ull, 698000000000000ull,
-    699000000000000ull,
-  660000000000000ull, 661000000000000ull, 662000000000000ull,
-    663000000000000ull, 664000000000000ull, 665000000000000ull,
-    666000000000000ull, 667000000000000ull, 668000000000000ull,
-    669000000000000ull, 686000000000000ull, 687000000000000ull,
-    866000000000000ull, 867000000000000ull, 888000000000000ull,
-    889000000000000ull,
-  670000000000000ull, 671000000000000ull, 672000000000000ull,
-    673000000000000ull, 674000000000000ull, 675000000000000ull,
-    676000000000000ull, 677000000000000ull, 678000000000000ull,
-    679000000000000ull, 696000000000000ull, 697000000000000ull,
-    876000000000000ull, 877000000000000ull, 898000000000000ull,
-    899000000000000ull,
-  700000000000000ull, 701000000000000ull, 702000000000000ull,
-    703000000000000ull, 704000000000000ull, 705000000000000ull,
-    706000000000000ull, 707000000000000ull, 708000000000000ull,
-    709000000000000ull, 780000000000000ull, 781000000000000ull,
-    906000000000000ull, 907000000000000ull, 986000000000000ull,
-    987000000000000ull,
-  710000000000000ull, 711000000000000ull, 712000000000000ull,
-    713000000000000ull, 714000000000000ull, 715000000000000ull,
-    716000000000000ull, 717000000000000ull, 718000000000000ull,
-    719000000000000ull, 790000000000000ull, 791000000000000ull,
-    916000000000000ull, 917000000000000ull, 996000000000000ull,
-    997000000000000ull,
-  720000000000000ull, 721000000000000ull, 722000000000000ull,
-    723000000000000ull, 724000000000000ull, 725000000000000ull,
-    726000000000000ull, 727000000000000ull, 728000000000000ull,
-    729000000000000ull, 782000000000000ull, 783000000000000ull,
-    926000000000000ull, 927000000000000ull, 968000000000000ull,
-    969000000000000ull,
-  730000000000000ull, 731000000000000ull, 732000000000000ull,
-    733000000000000ull, 734000000000000ull, 735000000000000ull,
-    736000000000000ull, 737000000000000ull, 738000000000000ull,
-    739000000000000ull, 792000000000000ull, 793000000000000ull,
-    936000000000000ull, 937000000000000ull, 978000000000000ull,
-    979000000000000ull,
-  740000000000000ull, 741000000000000ull, 742000000000000ull,
-    743000000000000ull, 744000000000000ull, 745000000000000ull,
-    746000000000000ull, 747000000000000ull, 748000000000000ull,
-    749000000000000ull, 784000000000000ull, 785000000000000ull,
-    946000000000000ull, 947000000000000ull, 788000000000000ull,
-    789000000000000ull,
-  750000000000000ull, 751000000000000ull, 752000000000000ull,
-    753000000000000ull, 754000000000000ull, 755000000000000ull,
-    756000000000000ull, 757000000000000ull, 758000000000000ull,
-    759000000000000ull, 794000000000000ull, 795000000000000ull,
-    956000000000000ull, 957000000000000ull, 798000000000000ull,
-    799000000000000ull,
-  760000000000000ull, 761000000000000ull, 762000000000000ull,
-    763000000000000ull, 764000000000000ull, 765000000000000ull,
-    766000000000000ull, 767000000000000ull, 768000000000000ull,
-    769000000000000ull, 786000000000000ull, 787000000000000ull,
-    966000000000000ull, 967000000000000ull, 988000000000000ull,
-    989000000000000ull,
-  770000000000000ull, 771000000000000ull, 772000000000000ull,
-    773000000000000ull, 774000000000000ull, 775000000000000ull,
-    776000000000000ull, 777000000000000ull, 778000000000000ull,
-    779000000000000ull, 796000000000000ull, 797000000000000ull,
-    976000000000000ull, 977000000000000ull, 998000000000000ull,
-    999000000000000ull
-};
-
-UINT64 d2b6[] =
-  { 0000000000000000ull, 1000000000000000ull, 2000000000000000ull,
-3000000000000000ull, 4000000000000000ull, 5000000000000000ull,
-6000000000000000ull, 7000000000000000ull, 8000000000000000ull,
-9000000000000000ull, 80000000000000000ull, 81000000000000000ull,
-800000000000000000ull, 801000000000000000ull, 880000000000000000ull,
-881000000000000000ull,
-  10000000000000000ull, 11000000000000000ull, 12000000000000000ull,
-    13000000000000000ull, 14000000000000000ull, 15000000000000000ull,
-    16000000000000000ull, 17000000000000000ull, 18000000000000000ull,
-    19000000000000000ull, 90000000000000000ull, 91000000000000000ull,
-    810000000000000000ull, 811000000000000000ull, 890000000000000000ull,
-    891000000000000000ull,
-  20000000000000000ull, 21000000000000000ull, 22000000000000000ull,
-    23000000000000000ull, 24000000000000000ull, 25000000000000000ull,
-    26000000000000000ull, 27000000000000000ull, 28000000000000000ull,
-    29000000000000000ull, 82000000000000000ull, 83000000000000000ull,
-    820000000000000000ull, 821000000000000000ull, 808000000000000000ull,
-    809000000000000000ull,
-  30000000000000000ull, 31000000000000000ull, 32000000000000000ull,
-    33000000000000000ull, 34000000000000000ull, 35000000000000000ull,
-    36000000000000000ull, 37000000000000000ull, 38000000000000000ull,
-    39000000000000000ull, 92000000000000000ull, 93000000000000000ull,
-    830000000000000000ull, 831000000000000000ull, 818000000000000000ull,
-    819000000000000000ull,
-  40000000000000000ull, 41000000000000000ull, 42000000000000000ull,
-    43000000000000000ull, 44000000000000000ull, 45000000000000000ull,
-    46000000000000000ull, 47000000000000000ull, 48000000000000000ull,
-    49000000000000000ull, 84000000000000000ull, 85000000000000000ull,
-    840000000000000000ull, 841000000000000000ull, 88000000000000000ull,
-    89000000000000000ull,
-  50000000000000000ull, 51000000000000000ull, 52000000000000000ull,
-    53000000000000000ull, 54000000000000000ull, 55000000000000000ull,
-    56000000000000000ull, 57000000000000000ull, 58000000000000000ull,
-    59000000000000000ull, 94000000000000000ull, 95000000000000000ull,
-    850000000000000000ull, 851000000000000000ull, 98000000000000000ull,
-    99000000000000000ull,
-  60000000000000000ull, 61000000000000000ull, 62000000000000000ull,
-    63000000000000000ull, 64000000000000000ull, 65000000000000000ull,
-    66000000000000000ull, 67000000000000000ull, 68000000000000000ull,
-    69000000000000000ull, 86000000000000000ull, 87000000000000000ull,
-    860000000000000000ull, 861000000000000000ull, 888000000000000000ull,
-    889000000000000000ull,
-  70000000000000000ull, 71000000000000000ull, 72000000000000000ull,
-    73000000000000000ull, 74000000000000000ull, 75000000000000000ull,
-    76000000000000000ull, 77000000000000000ull, 78000000000000000ull,
-    79000000000000000ull, 96000000000000000ull, 97000000000000000ull,
-    870000000000000000ull, 871000000000000000ull, 898000000000000000ull,
-    899000000000000000ull,
-  100000000000000000ull, 101000000000000000ull, 102000000000000000ull,
-    103000000000000000ull, 104000000000000000ull, 105000000000000000ull,
-    106000000000000000ull, 107000000000000000ull, 108000000000000000ull,
-    109000000000000000ull, 180000000000000000ull, 181000000000000000ull,
-    900000000000000000ull, 901000000000000000ull, 980000000000000000ull,
-    981000000000000000ull,
-  110000000000000000ull, 111000000000000000ull, 112000000000000000ull,
-    113000000000000000ull, 114000000000000000ull, 115000000000000000ull,
-    116000000000000000ull, 117000000000000000ull, 118000000000000000ull,
-    119000000000000000ull, 190000000000000000ull, 191000000000000000ull,
-    910000000000000000ull, 911000000000000000ull, 990000000000000000ull,
-    991000000000000000ull,
-  120000000000000000ull, 121000000000000000ull, 122000000000000000ull,
-    123000000000000000ull, 124000000000000000ull, 125000000000000000ull,
-    126000000000000000ull, 127000000000000000ull, 128000000000000000ull,
-    129000000000000000ull, 182000000000000000ull, 183000000000000000ull,
-    920000000000000000ull, 921000000000000000ull, 908000000000000000ull,
-    909000000000000000ull,
-  130000000000000000ull, 131000000000000000ull, 132000000000000000ull,
-    133000000000000000ull, 134000000000000000ull, 135000000000000000ull,
-    136000000000000000ull, 137000000000000000ull, 138000000000000000ull,
-    139000000000000000ull, 192000000000000000ull, 193000000000000000ull,
-    930000000000000000ull, 931000000000000000ull, 918000000000000000ull,
-    919000000000000000ull,
-  140000000000000000ull, 141000000000000000ull, 142000000000000000ull,
-    143000000000000000ull, 144000000000000000ull, 145000000000000000ull,
-    146000000000000000ull, 147000000000000000ull, 148000000000000000ull,
-    149000000000000000ull, 184000000000000000ull, 185000000000000000ull,
-    940000000000000000ull, 941000000000000000ull, 188000000000000000ull,
-    189000000000000000ull,
-  150000000000000000ull, 151000000000000000ull, 152000000000000000ull,
-    153000000000000000ull, 154000000000000000ull, 155000000000000000ull,
-    156000000000000000ull, 157000000000000000ull, 158000000000000000ull,
-    159000000000000000ull, 194000000000000000ull, 195000000000000000ull,
-    950000000000000000ull, 951000000000000000ull, 198000000000000000ull,
-    199000000000000000ull,
-  160000000000000000ull, 161000000000000000ull, 162000000000000000ull,
-    163000000000000000ull, 164000000000000000ull, 165000000000000000ull,
-    166000000000000000ull, 167000000000000000ull, 168000000000000000ull,
-    169000000000000000ull, 186000000000000000ull, 187000000000000000ull,
-    960000000000000000ull, 961000000000000000ull, 988000000000000000ull,
-    989000000000000000ull,
-  170000000000000000ull, 171000000000000000ull, 172000000000000000ull,
-    173000000000000000ull, 174000000000000000ull, 175000000000000000ull,
-    176000000000000000ull, 177000000000000000ull, 178000000000000000ull,
-    179000000000000000ull, 196000000000000000ull, 197000000000000000ull,
-    970000000000000000ull, 971000000000000000ull, 998000000000000000ull,
-    999000000000000000ull,
-  200000000000000000ull, 201000000000000000ull, 202000000000000000ull,
-    203000000000000000ull, 204000000000000000ull, 205000000000000000ull,
-    206000000000000000ull, 207000000000000000ull, 208000000000000000ull,
-    209000000000000000ull, 280000000000000000ull, 281000000000000000ull,
-    802000000000000000ull, 803000000000000000ull, 882000000000000000ull,
-    883000000000000000ull,
-  210000000000000000ull, 211000000000000000ull, 212000000000000000ull,
-    213000000000000000ull, 214000000000000000ull, 215000000000000000ull,
-    216000000000000000ull, 217000000000000000ull, 218000000000000000ull,
-    219000000000000000ull, 290000000000000000ull, 291000000000000000ull,
-    812000000000000000ull, 813000000000000000ull, 892000000000000000ull,
-    893000000000000000ull,
-  220000000000000000ull, 221000000000000000ull, 222000000000000000ull,
-    223000000000000000ull, 224000000000000000ull, 225000000000000000ull,
-    226000000000000000ull, 227000000000000000ull, 228000000000000000ull,
-    229000000000000000ull, 282000000000000000ull, 283000000000000000ull,
-    822000000000000000ull, 823000000000000000ull, 828000000000000000ull,
-    829000000000000000ull,
-  230000000000000000ull, 231000000000000000ull, 232000000000000000ull,
-    233000000000000000ull, 234000000000000000ull, 235000000000000000ull,
-    236000000000000000ull, 237000000000000000ull, 238000000000000000ull,
-    239000000000000000ull, 292000000000000000ull, 293000000000000000ull,
-    832000000000000000ull, 833000000000000000ull, 838000000000000000ull,
-    839000000000000000ull,
-  240000000000000000ull, 241000000000000000ull, 242000000000000000ull,
-    243000000000000000ull, 244000000000000000ull, 245000000000000000ull,
-    246000000000000000ull, 247000000000000000ull, 248000000000000000ull,
-    249000000000000000ull, 284000000000000000ull, 285000000000000000ull,
-    842000000000000000ull, 843000000000000000ull, 288000000000000000ull,
-    289000000000000000ull,
-  250000000000000000ull, 251000000000000000ull, 252000000000000000ull,
-    253000000000000000ull, 254000000000000000ull, 255000000000000000ull,
-    256000000000000000ull, 257000000000000000ull, 258000000000000000ull,
-    259000000000000000ull, 294000000000000000ull, 295000000000000000ull,
-    852000000000000000ull, 853000000000000000ull, 298000000000000000ull,
-    299000000000000000ull,
-  260000000000000000ull, 261000000000000000ull, 262000000000000000ull,
-    263000000000000000ull, 264000000000000000ull, 265000000000000000ull,
-    266000000000000000ull, 267000000000000000ull, 268000000000000000ull,
-    269000000000000000ull, 286000000000000000ull, 287000000000000000ull,
-    862000000000000000ull, 863000000000000000ull, 888000000000000000ull,
-    889000000000000000ull,
-  270000000000000000ull, 271000000000000000ull, 272000000000000000ull,
-    273000000000000000ull, 274000000000000000ull, 275000000000000000ull,
-    276000000000000000ull, 277000000000000000ull, 278000000000000000ull,
-    279000000000000000ull, 296000000000000000ull, 297000000000000000ull,
-    872000000000000000ull, 873000000000000000ull, 898000000000000000ull,
-    899000000000000000ull,
-  300000000000000000ull, 301000000000000000ull, 302000000000000000ull,
-    303000000000000000ull, 304000000000000000ull, 305000000000000000ull,
-    306000000000000000ull, 307000000000000000ull, 308000000000000000ull,
-    309000000000000000ull, 380000000000000000ull, 381000000000000000ull,
-    902000000000000000ull, 903000000000000000ull, 982000000000000000ull,
-    983000000000000000ull,
-  310000000000000000ull, 311000000000000000ull, 312000000000000000ull,
-    313000000000000000ull, 314000000000000000ull, 315000000000000000ull,
-    316000000000000000ull, 317000000000000000ull, 318000000000000000ull,
-    319000000000000000ull, 390000000000000000ull, 391000000000000000ull,
-    912000000000000000ull, 913000000000000000ull, 992000000000000000ull,
-    993000000000000000ull,
-  320000000000000000ull, 321000000000000000ull, 322000000000000000ull,
-    323000000000000000ull, 324000000000000000ull, 325000000000000000ull,
-    326000000000000000ull, 327000000000000000ull, 328000000000000000ull,
-    329000000000000000ull, 382000000000000000ull, 383000000000000000ull,
-    922000000000000000ull, 923000000000000000ull, 928000000000000000ull,
-    929000000000000000ull,
-  330000000000000000ull, 331000000000000000ull, 332000000000000000ull,
-    333000000000000000ull, 334000000000000000ull, 335000000000000000ull,
-    336000000000000000ull, 337000000000000000ull, 338000000000000000ull,
-    339000000000000000ull, 392000000000000000ull, 393000000000000000ull,
-    932000000000000000ull, 933000000000000000ull, 938000000000000000ull,
-    939000000000000000ull,
-  340000000000000000ull, 341000000000000000ull, 342000000000000000ull,
-    343000000000000000ull, 344000000000000000ull, 345000000000000000ull,
-    346000000000000000ull, 347000000000000000ull, 348000000000000000ull,
-    349000000000000000ull, 384000000000000000ull, 385000000000000000ull,
-    942000000000000000ull, 943000000000000000ull, 388000000000000000ull,
-    389000000000000000ull,
-  350000000000000000ull, 351000000000000000ull, 352000000000000000ull,
-    353000000000000000ull, 354000000000000000ull, 355000000000000000ull,
-    356000000000000000ull, 357000000000000000ull, 358000000000000000ull,
-    359000000000000000ull, 394000000000000000ull, 395000000000000000ull,
-    952000000000000000ull, 953000000000000000ull, 398000000000000000ull,
-    399000000000000000ull,
-  360000000000000000ull, 361000000000000000ull, 362000000000000000ull,
-    363000000000000000ull, 364000000000000000ull, 365000000000000000ull,
-    366000000000000000ull, 367000000000000000ull, 368000000000000000ull,
-    369000000000000000ull, 386000000000000000ull, 387000000000000000ull,
-    962000000000000000ull, 963000000000000000ull, 988000000000000000ull,
-    989000000000000000ull,
-  370000000000000000ull, 371000000000000000ull, 372000000000000000ull,
-    373000000000000000ull, 374000000000000000ull, 375000000000000000ull,
-    376000000000000000ull, 377000000000000000ull, 378000000000000000ull,
-    379000000000000000ull, 396000000000000000ull, 397000000000000000ull,
-    972000000000000000ull, 973000000000000000ull, 998000000000000000ull,
-    999000000000000000ull,
-  400000000000000000ull, 401000000000000000ull, 402000000000000000ull,
-    403000000000000000ull, 404000000000000000ull, 405000000000000000ull,
-    406000000000000000ull, 407000000000000000ull, 408000000000000000ull,
-    409000000000000000ull, 480000000000000000ull, 481000000000000000ull,
-    804000000000000000ull, 805000000000000000ull, 884000000000000000ull,
-    885000000000000000ull,
-  410000000000000000ull, 411000000000000000ull, 412000000000000000ull,
-    413000000000000000ull, 414000000000000000ull, 415000000000000000ull,
-    416000000000000000ull, 417000000000000000ull, 418000000000000000ull,
-    419000000000000000ull, 490000000000000000ull, 491000000000000000ull,
-    814000000000000000ull, 815000000000000000ull, 894000000000000000ull,
-    895000000000000000ull,
-  420000000000000000ull, 421000000000000000ull, 422000000000000000ull,
-    423000000000000000ull, 424000000000000000ull, 425000000000000000ull,
-    426000000000000000ull, 427000000000000000ull, 428000000000000000ull,
-    429000000000000000ull, 482000000000000000ull, 483000000000000000ull,
-    824000000000000000ull, 825000000000000000ull, 848000000000000000ull,
-    849000000000000000ull,
-  430000000000000000ull, 431000000000000000ull, 432000000000000000ull,
-    433000000000000000ull, 434000000000000000ull, 435000000000000000ull,
-    436000000000000000ull, 437000000000000000ull, 438000000000000000ull,
-    439000000000000000ull, 492000000000000000ull, 493000000000000000ull,
-    834000000000000000ull, 835000000000000000ull, 858000000000000000ull,
-    859000000000000000ull,
-  440000000000000000ull, 441000000000000000ull, 442000000000000000ull,
-    443000000000000000ull, 444000000000000000ull, 445000000000000000ull,
-    446000000000000000ull, 447000000000000000ull, 448000000000000000ull,
-    449000000000000000ull, 484000000000000000ull, 485000000000000000ull,
-    844000000000000000ull, 845000000000000000ull, 488000000000000000ull,
-    489000000000000000ull,
-  450000000000000000ull, 451000000000000000ull, 452000000000000000ull,
-    453000000000000000ull, 454000000000000000ull, 455000000000000000ull,
-    456000000000000000ull, 457000000000000000ull, 458000000000000000ull,
-    459000000000000000ull, 494000000000000000ull, 495000000000000000ull,
-    854000000000000000ull, 855000000000000000ull, 498000000000000000ull,
-    499000000000000000ull,
-  460000000000000000ull, 461000000000000000ull, 462000000000000000ull,
-    463000000000000000ull, 464000000000000000ull, 465000000000000000ull,
-    466000000000000000ull, 467000000000000000ull, 468000000000000000ull,
-    469000000000000000ull, 486000000000000000ull, 487000000000000000ull,
-    864000000000000000ull, 865000000000000000ull, 888000000000000000ull,
-    889000000000000000ull,
-  470000000000000000ull, 471000000000000000ull, 472000000000000000ull,
-    473000000000000000ull, 474000000000000000ull, 475000000000000000ull,
-    476000000000000000ull, 477000000000000000ull, 478000000000000000ull,
-    479000000000000000ull, 496000000000000000ull, 497000000000000000ull,
-    874000000000000000ull, 875000000000000000ull, 898000000000000000ull,
-    899000000000000000ull,
-  500000000000000000ull, 501000000000000000ull, 502000000000000000ull,
-    503000000000000000ull, 504000000000000000ull, 505000000000000000ull,
-    506000000000000000ull, 507000000000000000ull, 508000000000000000ull,
-    509000000000000000ull, 580000000000000000ull, 581000000000000000ull,
-    904000000000000000ull, 905000000000000000ull, 984000000000000000ull,
-    985000000000000000ull,
-  510000000000000000ull, 511000000000000000ull, 512000000000000000ull,
-    513000000000000000ull, 514000000000000000ull, 515000000000000000ull,
-    516000000000000000ull, 517000000000000000ull, 518000000000000000ull,
-    519000000000000000ull, 590000000000000000ull, 591000000000000000ull,
-    914000000000000000ull, 915000000000000000ull, 994000000000000000ull,
-    995000000000000000ull,
-  520000000000000000ull, 521000000000000000ull, 522000000000000000ull,
-    523000000000000000ull, 524000000000000000ull, 525000000000000000ull,
-    526000000000000000ull, 527000000000000000ull, 528000000000000000ull,
-    529000000000000000ull, 582000000000000000ull, 583000000000000000ull,
-    924000000000000000ull, 925000000000000000ull, 948000000000000000ull,
-    949000000000000000ull,
-  530000000000000000ull, 531000000000000000ull, 532000000000000000ull,
-    533000000000000000ull, 534000000000000000ull, 535000000000000000ull,
-    536000000000000000ull, 537000000000000000ull, 538000000000000000ull,
-    539000000000000000ull, 592000000000000000ull, 593000000000000000ull,
-    934000000000000000ull, 935000000000000000ull, 958000000000000000ull,
-    959000000000000000ull,
-  540000000000000000ull, 541000000000000000ull, 542000000000000000ull,
-    543000000000000000ull, 544000000000000000ull, 545000000000000000ull,
-    546000000000000000ull, 547000000000000000ull, 548000000000000000ull,
-    549000000000000000ull, 584000000000000000ull, 585000000000000000ull,
-    944000000000000000ull, 945000000000000000ull, 588000000000000000ull,
-    589000000000000000ull,
-  550000000000000000ull, 551000000000000000ull, 552000000000000000ull,
-    553000000000000000ull, 554000000000000000ull, 555000000000000000ull,
-    556000000000000000ull, 557000000000000000ull, 558000000000000000ull,
-    559000000000000000ull, 594000000000000000ull, 595000000000000000ull,
-    954000000000000000ull, 955000000000000000ull, 598000000000000000ull,
-    599000000000000000ull,
-  560000000000000000ull, 561000000000000000ull, 562000000000000000ull,
-    563000000000000000ull, 564000000000000000ull, 565000000000000000ull,
-    566000000000000000ull, 567000000000000000ull, 568000000000000000ull,
-    569000000000000000ull, 586000000000000000ull, 587000000000000000ull,
-    964000000000000000ull, 965000000000000000ull, 988000000000000000ull,
-    989000000000000000ull,
-  570000000000000000ull, 571000000000000000ull, 572000000000000000ull,
-    573000000000000000ull, 574000000000000000ull, 575000000000000000ull,
-    576000000000000000ull, 577000000000000000ull, 578000000000000000ull,
-    579000000000000000ull, 596000000000000000ull, 597000000000000000ull,
-    974000000000000000ull, 975000000000000000ull, 998000000000000000ull,
-    999000000000000000ull,
-  600000000000000000ull, 601000000000000000ull, 602000000000000000ull,
-    603000000000000000ull, 604000000000000000ull, 605000000000000000ull,
-    606000000000000000ull, 607000000000000000ull, 608000000000000000ull,
-    609000000000000000ull, 680000000000000000ull, 681000000000000000ull,
-    806000000000000000ull, 807000000000000000ull, 886000000000000000ull,
-    887000000000000000ull,
-  610000000000000000ull, 611000000000000000ull, 612000000000000000ull,
-    613000000000000000ull, 614000000000000000ull, 615000000000000000ull,
-    616000000000000000ull, 617000000000000000ull, 618000000000000000ull,
-    619000000000000000ull, 690000000000000000ull, 691000000000000000ull,
-    816000000000000000ull, 817000000000000000ull, 896000000000000000ull,
-    897000000000000000ull,
-  620000000000000000ull, 621000000000000000ull, 622000000000000000ull,
-    623000000000000000ull, 624000000000000000ull, 625000000000000000ull,
-    626000000000000000ull, 627000000000000000ull, 628000000000000000ull,
-    629000000000000000ull, 682000000000000000ull, 683000000000000000ull,
-    826000000000000000ull, 827000000000000000ull, 868000000000000000ull,
-    869000000000000000ull,
-  630000000000000000ull, 631000000000000000ull, 632000000000000000ull,
-    633000000000000000ull, 634000000000000000ull, 635000000000000000ull,
-    636000000000000000ull, 637000000000000000ull, 638000000000000000ull,
-    639000000000000000ull, 692000000000000000ull, 693000000000000000ull,
-    836000000000000000ull, 837000000000000000ull, 878000000000000000ull,
-    879000000000000000ull,
-  640000000000000000ull, 641000000000000000ull, 642000000000000000ull,
-    643000000000000000ull, 644000000000000000ull, 645000000000000000ull,
-    646000000000000000ull, 647000000000000000ull, 648000000000000000ull,
-    649000000000000000ull, 684000000000000000ull, 685000000000000000ull,
-    846000000000000000ull, 847000000000000000ull, 688000000000000000ull,
-    689000000000000000ull,
-  650000000000000000ull, 651000000000000000ull, 652000000000000000ull,
-    653000000000000000ull, 654000000000000000ull, 655000000000000000ull,
-    656000000000000000ull, 657000000000000000ull, 658000000000000000ull,
-    659000000000000000ull, 694000000000000000ull, 695000000000000000ull,
-    856000000000000000ull, 857000000000000000ull, 698000000000000000ull,
-    699000000000000000ull,
-  660000000000000000ull, 661000000000000000ull, 662000000000000000ull,
-    663000000000000000ull, 664000000000000000ull, 665000000000000000ull,
-    666000000000000000ull, 667000000000000000ull, 668000000000000000ull,
-    669000000000000000ull, 686000000000000000ull, 687000000000000000ull,
-    866000000000000000ull, 867000000000000000ull, 888000000000000000ull,
-    889000000000000000ull,
-  670000000000000000ull, 671000000000000000ull, 672000000000000000ull,
-    673000000000000000ull, 674000000000000000ull, 675000000000000000ull,
-    676000000000000000ull, 677000000000000000ull, 678000000000000000ull,
-    679000000000000000ull, 696000000000000000ull, 697000000000000000ull,
-    876000000000000000ull, 877000000000000000ull, 898000000000000000ull,
-    899000000000000000ull,
-  700000000000000000ull, 701000000000000000ull, 702000000000000000ull,
-    703000000000000000ull, 704000000000000000ull, 705000000000000000ull,
-    706000000000000000ull, 707000000000000000ull, 708000000000000000ull,
-    709000000000000000ull, 780000000000000000ull, 781000000000000000ull,
-    906000000000000000ull, 907000000000000000ull, 986000000000000000ull,
-    987000000000000000ull,
-  710000000000000000ull, 711000000000000000ull, 712000000000000000ull,
-    713000000000000000ull, 714000000000000000ull, 715000000000000000ull,
-    716000000000000000ull, 717000000000000000ull, 718000000000000000ull,
-    719000000000000000ull, 790000000000000000ull, 791000000000000000ull,
-    916000000000000000ull, 917000000000000000ull, 996000000000000000ull,
-    997000000000000000ull,
-  720000000000000000ull, 721000000000000000ull, 722000000000000000ull,
-    723000000000000000ull, 724000000000000000ull, 725000000000000000ull,
-    726000000000000000ull, 727000000000000000ull, 728000000000000000ull,
-    729000000000000000ull, 782000000000000000ull, 783000000000000000ull,
-    926000000000000000ull, 927000000000000000ull, 968000000000000000ull,
-    969000000000000000ull,
-  730000000000000000ull, 731000000000000000ull, 732000000000000000ull,
-    733000000000000000ull, 734000000000000000ull, 735000000000000000ull,
-    736000000000000000ull, 737000000000000000ull, 738000000000000000ull,
-    739000000000000000ull, 792000000000000000ull, 793000000000000000ull,
-    936000000000000000ull, 937000000000000000ull, 978000000000000000ull,
-    979000000000000000ull,
-  740000000000000000ull, 741000000000000000ull, 742000000000000000ull,
-    743000000000000000ull, 744000000000000000ull, 745000000000000000ull,
-    746000000000000000ull, 747000000000000000ull, 748000000000000000ull,
-    749000000000000000ull, 784000000000000000ull, 785000000000000000ull,
-    946000000000000000ull, 947000000000000000ull, 788000000000000000ull,
-    789000000000000000ull,
-  750000000000000000ull, 751000000000000000ull, 752000000000000000ull,
-    753000000000000000ull, 754000000000000000ull, 755000000000000000ull,
-    756000000000000000ull, 757000000000000000ull, 758000000000000000ull,
-    759000000000000000ull, 794000000000000000ull, 795000000000000000ull,
-    956000000000000000ull, 957000000000000000ull, 798000000000000000ull,
-    799000000000000000ull,
-  760000000000000000ull, 761000000000000000ull, 762000000000000000ull,
-    763000000000000000ull, 764000000000000000ull, 765000000000000000ull,
-    766000000000000000ull, 767000000000000000ull, 768000000000000000ull,
-    769000000000000000ull, 786000000000000000ull, 787000000000000000ull,
-    966000000000000000ull, 967000000000000000ull, 988000000000000000ull,
-    989000000000000000ull,
-  770000000000000000ull, 771000000000000000ull, 772000000000000000ull,
-    773000000000000000ull, 774000000000000000ull, 775000000000000000ull,
-    776000000000000000ull, 777000000000000000ull, 778000000000000000ull,
-    779000000000000000ull, 796000000000000000ull, 797000000000000000ull,
-    976000000000000000ull, 977000000000000000ull, 998000000000000000ull,
-    999000000000000000ull
-};
-
-UINT64 b2d[] =
-  { 0x000ull, 0x001ull, 0x002ull, 0x003ull, 0x004ull, 0x005ull,
-0x006ull, 0x007ull, 0x008ull, 0x009ull,
-  0x010ull, 0x011ull, 0x012ull, 0x013ull, 0x014ull, 0x015ull, 0x016ull,
-    0x017ull, 0x018ull, 0x019ull,
-  0x020ull, 0x021ull, 0x022ull, 0x023ull, 0x024ull, 0x025ull, 0x026ull,
-    0x027ull, 0x028ull, 0x029ull,
-  0x030ull, 0x031ull, 0x032ull, 0x033ull, 0x034ull, 0x035ull, 0x036ull,
-    0x037ull, 0x038ull, 0x039ull,
-  0x040ull, 0x041ull, 0x042ull, 0x043ull, 0x044ull, 0x045ull, 0x046ull,
-    0x047ull, 0x048ull, 0x049ull,
-  0x050ull, 0x051ull, 0x052ull, 0x053ull, 0x054ull, 0x055ull, 0x056ull,
-    0x057ull, 0x058ull, 0x059ull,
-  0x060ull, 0x061ull, 0x062ull, 0x063ull, 0x064ull, 0x065ull, 0x066ull,
-    0x067ull, 0x068ull, 0x069ull,
-  0x070ull, 0x071ull, 0x072ull, 0x073ull, 0x074ull, 0x075ull, 0x076ull,
-    0x077ull, 0x078ull, 0x079ull,
-  0x00aull, 0x00bull, 0x02aull, 0x02bull, 0x04aull, 0x04bull, 0x06aull,
-    0x06bull, 0x04eull, 0x04full,
-  0x01aull, 0x01bull, 0x03aull, 0x03bull, 0x05aull, 0x05bull, 0x07aull,
-    0x07bull, 0x05eull, 0x05full,
-  0x080ull, 0x081ull, 0x082ull, 0x083ull, 0x084ull, 0x085ull, 0x086ull,
-    0x087ull, 0x088ull, 0x089ull,
-  0x090ull, 0x091ull, 0x092ull, 0x093ull, 0x094ull, 0x095ull, 0x096ull,
-    0x097ull, 0x098ull, 0x099ull,
-  0x0a0ull, 0x0a1ull, 0x0a2ull, 0x0a3ull, 0x0a4ull, 0x0a5ull, 0x0a6ull,
-    0x0a7ull, 0x0a8ull, 0x0a9ull,
-  0x0b0ull, 0x0b1ull, 0x0b2ull, 0x0b3ull, 0x0b4ull, 0x0b5ull, 0x0b6ull,
-    0x0b7ull, 0x0b8ull, 0x0b9ull,
-  0x0c0ull, 0x0c1ull, 0x0c2ull, 0x0c3ull, 0x0c4ull, 0x0c5ull, 0x0c6ull,
-    0x0c7ull, 0x0c8ull, 0x0c9ull,
-  0x0d0ull, 0x0d1ull, 0x0d2ull, 0x0d3ull, 0x0d4ull, 0x0d5ull, 0x0d6ull,
-    0x0d7ull, 0x0d8ull, 0x0d9ull,
-  0x0e0ull, 0x0e1ull, 0x0e2ull, 0x0e3ull, 0x0e4ull, 0x0e5ull, 0x0e6ull,
-    0x0e7ull, 0x0e8ull, 0x0e9ull,
-  0x0f0ull, 0x0f1ull, 0x0f2ull, 0x0f3ull, 0x0f4ull, 0x0f5ull, 0x0f6ull,
-    0x0f7ull, 0x0f8ull, 0x0f9ull,
-  0x08aull, 0x08bull, 0x0aaull, 0x0abull, 0x0caull, 0x0cbull, 0x0eaull,
-    0x0ebull, 0x0ceull, 0x0cfull,
-  0x09aull, 0x09bull, 0x0baull, 0x0bbull, 0x0daull, 0x0dbull, 0x0faull,
-    0x0fbull, 0x0deull, 0x0dfull,
-  0x100ull, 0x101ull, 0x102ull, 0x103ull, 0x104ull, 0x105ull, 0x106ull,
-    0x107ull, 0x108ull, 0x109ull,
-  0x110ull, 0x111ull, 0x112ull, 0x113ull, 0x114ull, 0x115ull, 0x116ull,
-    0x117ull, 0x118ull, 0x119ull,
-  0x120ull, 0x121ull, 0x122ull, 0x123ull, 0x124ull, 0x125ull, 0x126ull,
-    0x127ull, 0x128ull, 0x129ull,
-  0x130ull, 0x131ull, 0x132ull, 0x133ull, 0x134ull, 0x135ull, 0x136ull,
-    0x137ull, 0x138ull, 0x139ull,
-  0x140ull, 0x141ull, 0x142ull, 0x143ull, 0x144ull, 0x145ull, 0x146ull,
-    0x147ull, 0x148ull, 0x149ull,
-  0x150ull, 0x151ull, 0x152ull, 0x153ull, 0x154ull, 0x155ull, 0x156ull,
-    0x157ull, 0x158ull, 0x159ull,
-  0x160ull, 0x161ull, 0x162ull, 0x163ull, 0x164ull, 0x165ull, 0x166ull,
-    0x167ull, 0x168ull, 0x169ull,
-  0x170ull, 0x171ull, 0x172ull, 0x173ull, 0x174ull, 0x175ull, 0x176ull,
-    0x177ull, 0x178ull, 0x179ull,
-  0x10aull, 0x10bull, 0x12aull, 0x12bull, 0x14aull, 0x14bull, 0x16aull,
-    0x16bull, 0x14eull, 0x14full,
-  0x11aull, 0x11bull, 0x13aull, 0x13bull, 0x15aull, 0x15bull, 0x17aull,
-    0x17bull, 0x15eull, 0x15full,
-  0x180ull, 0x181ull, 0x182ull, 0x183ull, 0x184ull, 0x185ull, 0x186ull,
-    0x187ull, 0x188ull, 0x189ull,
-  0x190ull, 0x191ull, 0x192ull, 0x193ull, 0x194ull, 0x195ull, 0x196ull,
-    0x197ull, 0x198ull, 0x199ull,
-  0x1a0ull, 0x1a1ull, 0x1a2ull, 0x1a3ull, 0x1a4ull, 0x1a5ull, 0x1a6ull,
-    0x1a7ull, 0x1a8ull, 0x1a9ull,
-  0x1b0ull, 0x1b1ull, 0x1b2ull, 0x1b3ull, 0x1b4ull, 0x1b5ull, 0x1b6ull,
-    0x1b7ull, 0x1b8ull, 0x1b9ull,
-  0x1c0ull, 0x1c1ull, 0x1c2ull, 0x1c3ull, 0x1c4ull, 0x1c5ull, 0x1c6ull,
-    0x1c7ull, 0x1c8ull, 0x1c9ull,
-  0x1d0ull, 0x1d1ull, 0x1d2ull, 0x1d3ull, 0x1d4ull, 0x1d5ull, 0x1d6ull,
-    0x1d7ull, 0x1d8ull, 0x1d9ull,
-  0x1e0ull, 0x1e1ull, 0x1e2ull, 0x1e3ull, 0x1e4ull, 0x1e5ull, 0x1e6ull,
-    0x1e7ull, 0x1e8ull, 0x1e9ull,
-  0x1f0ull, 0x1f1ull, 0x1f2ull, 0x1f3ull, 0x1f4ull, 0x1f5ull, 0x1f6ull,
-    0x1f7ull, 0x1f8ull, 0x1f9ull,
-  0x18aull, 0x18bull, 0x1aaull, 0x1abull, 0x1caull, 0x1cbull, 0x1eaull,
-    0x1ebull, 0x1ceull, 0x1cfull,
-  0x19aull, 0x19bull, 0x1baull, 0x1bbull, 0x1daull, 0x1dbull, 0x1faull,
-    0x1fbull, 0x1deull, 0x1dfull,
-  0x200ull, 0x201ull, 0x202ull, 0x203ull, 0x204ull, 0x205ull, 0x206ull,
-    0x207ull, 0x208ull, 0x209ull,
-  0x210ull, 0x211ull, 0x212ull, 0x213ull, 0x214ull, 0x215ull, 0x216ull,
-    0x217ull, 0x218ull, 0x219ull,
-  0x220ull, 0x221ull, 0x222ull, 0x223ull, 0x224ull, 0x225ull, 0x226ull,
-    0x227ull, 0x228ull, 0x229ull,
-  0x230ull, 0x231ull, 0x232ull, 0x233ull, 0x234ull, 0x235ull, 0x236ull,
-    0x237ull, 0x238ull, 0x239ull,
-  0x240ull, 0x241ull, 0x242ull, 0x243ull, 0x244ull, 0x245ull, 0x246ull,
-    0x247ull, 0x248ull, 0x249ull,
-  0x250ull, 0x251ull, 0x252ull, 0x253ull, 0x254ull, 0x255ull, 0x256ull,
-    0x257ull, 0x258ull, 0x259ull,
-  0x260ull, 0x261ull, 0x262ull, 0x263ull, 0x264ull, 0x265ull, 0x266ull,
-    0x267ull, 0x268ull, 0x269ull,
-  0x270ull, 0x271ull, 0x272ull, 0x273ull, 0x274ull, 0x275ull, 0x276ull,
-    0x277ull, 0x278ull, 0x279ull,
-  0x20aull, 0x20bull, 0x22aull, 0x22bull, 0x24aull, 0x24bull, 0x26aull,
-    0x26bull, 0x24eull, 0x24full,
-  0x21aull, 0x21bull, 0x23aull, 0x23bull, 0x25aull, 0x25bull, 0x27aull,
-    0x27bull, 0x25eull, 0x25full,
-  0x280ull, 0x281ull, 0x282ull, 0x283ull, 0x284ull, 0x285ull, 0x286ull,
-    0x287ull, 0x288ull, 0x289ull,
-  0x290ull, 0x291ull, 0x292ull, 0x293ull, 0x294ull, 0x295ull, 0x296ull,
-    0x297ull, 0x298ull, 0x299ull,
-  0x2a0ull, 0x2a1ull, 0x2a2ull, 0x2a3ull, 0x2a4ull, 0x2a5ull, 0x2a6ull,
-    0x2a7ull, 0x2a8ull, 0x2a9ull,
-  0x2b0ull, 0x2b1ull, 0x2b2ull, 0x2b3ull, 0x2b4ull, 0x2b5ull, 0x2b6ull,
-    0x2b7ull, 0x2b8ull, 0x2b9ull,
-  0x2c0ull, 0x2c1ull, 0x2c2ull, 0x2c3ull, 0x2c4ull, 0x2c5ull, 0x2c6ull,
-    0x2c7ull, 0x2c8ull, 0x2c9ull,
-  0x2d0ull, 0x2d1ull, 0x2d2ull, 0x2d3ull, 0x2d4ull, 0x2d5ull, 0x2d6ull,
-    0x2d7ull, 0x2d8ull, 0x2d9ull,
-  0x2e0ull, 0x2e1ull, 0x2e2ull, 0x2e3ull, 0x2e4ull, 0x2e5ull, 0x2e6ull,
-    0x2e7ull, 0x2e8ull, 0x2e9ull,
-  0x2f0ull, 0x2f1ull, 0x2f2ull, 0x2f3ull, 0x2f4ull, 0x2f5ull, 0x2f6ull,
-    0x2f7ull, 0x2f8ull, 0x2f9ull,
-  0x28aull, 0x28bull, 0x2aaull, 0x2abull, 0x2caull, 0x2cbull, 0x2eaull,
-    0x2ebull, 0x2ceull, 0x2cfull,
-  0x29aull, 0x29bull, 0x2baull, 0x2bbull, 0x2daull, 0x2dbull, 0x2faull,
-    0x2fbull, 0x2deull, 0x2dfull,
-  0x300ull, 0x301ull, 0x302ull, 0x303ull, 0x304ull, 0x305ull, 0x306ull,
-    0x307ull, 0x308ull, 0x309ull,
-  0x310ull, 0x311ull, 0x312ull, 0x313ull, 0x314ull, 0x315ull, 0x316ull,
-    0x317ull, 0x318ull, 0x319ull,
-  0x320ull, 0x321ull, 0x322ull, 0x323ull, 0x324ull, 0x325ull, 0x326ull,
-    0x327ull, 0x328ull, 0x329ull,
-  0x330ull, 0x331ull, 0x332ull, 0x333ull, 0x334ull, 0x335ull, 0x336ull,
-    0x337ull, 0x338ull, 0x339ull,
-  0x340ull, 0x341ull, 0x342ull, 0x343ull, 0x344ull, 0x345ull, 0x346ull,
-    0x347ull, 0x348ull, 0x349ull,
-  0x350ull, 0x351ull, 0x352ull, 0x353ull, 0x354ull, 0x355ull, 0x356ull,
-    0x357ull, 0x358ull, 0x359ull,
-  0x360ull, 0x361ull, 0x362ull, 0x363ull, 0x364ull, 0x365ull, 0x366ull,
-    0x367ull, 0x368ull, 0x369ull,
-  0x370ull, 0x371ull, 0x372ull, 0x373ull, 0x374ull, 0x375ull, 0x376ull,
-    0x377ull, 0x378ull, 0x379ull,
-  0x30aull, 0x30bull, 0x32aull, 0x32bull, 0x34aull, 0x34bull, 0x36aull,
-    0x36bull, 0x34eull, 0x34full,
-  0x31aull, 0x31bull, 0x33aull, 0x33bull, 0x35aull, 0x35bull, 0x37aull,
-    0x37bull, 0x35eull, 0x35full,
-  0x380ull, 0x381ull, 0x382ull, 0x383ull, 0x384ull, 0x385ull, 0x386ull,
-    0x387ull, 0x388ull, 0x389ull,
-  0x390ull, 0x391ull, 0x392ull, 0x393ull, 0x394ull, 0x395ull, 0x396ull,
-    0x397ull, 0x398ull, 0x399ull,
-  0x3a0ull, 0x3a1ull, 0x3a2ull, 0x3a3ull, 0x3a4ull, 0x3a5ull, 0x3a6ull,
-    0x3a7ull, 0x3a8ull, 0x3a9ull,
-  0x3b0ull, 0x3b1ull, 0x3b2ull, 0x3b3ull, 0x3b4ull, 0x3b5ull, 0x3b6ull,
-    0x3b7ull, 0x3b8ull, 0x3b9ull,
-  0x3c0ull, 0x3c1ull, 0x3c2ull, 0x3c3ull, 0x3c4ull, 0x3c5ull, 0x3c6ull,
-    0x3c7ull, 0x3c8ull, 0x3c9ull,
-  0x3d0ull, 0x3d1ull, 0x3d2ull, 0x3d3ull, 0x3d4ull, 0x3d5ull, 0x3d6ull,
-    0x3d7ull, 0x3d8ull, 0x3d9ull,
-  0x3e0ull, 0x3e1ull, 0x3e2ull, 0x3e3ull, 0x3e4ull, 0x3e5ull, 0x3e6ull,
-    0x3e7ull, 0x3e8ull, 0x3e9ull,
-  0x3f0ull, 0x3f1ull, 0x3f2ull, 0x3f3ull, 0x3f4ull, 0x3f5ull, 0x3f6ull,
-    0x3f7ull, 0x3f8ull, 0x3f9ull,
-  0x38aull, 0x38bull, 0x3aaull, 0x3abull, 0x3caull, 0x3cbull, 0x3eaull,
-    0x3ebull, 0x3ceull, 0x3cfull,
-  0x39aull, 0x39bull, 0x3baull, 0x3bbull, 0x3daull, 0x3dbull, 0x3faull,
-    0x3fbull, 0x3deull, 0x3dfull,
-  0x00cull, 0x00dull, 0x10cull, 0x10dull, 0x20cull, 0x20dull, 0x30cull,
-    0x30dull, 0x02eull, 0x02full,
-  0x01cull, 0x01dull, 0x11cull, 0x11dull, 0x21cull, 0x21dull, 0x31cull,
-    0x31dull, 0x03eull, 0x03full,
-  0x02cull, 0x02dull, 0x12cull, 0x12dull, 0x22cull, 0x22dull, 0x32cull,
-    0x32dull, 0x12eull, 0x12full,
-  0x03cull, 0x03dull, 0x13cull, 0x13dull, 0x23cull, 0x23dull, 0x33cull,
-    0x33dull, 0x13eull, 0x13full,
-  0x04cull, 0x04dull, 0x14cull, 0x14dull, 0x24cull, 0x24dull, 0x34cull,
-    0x34dull, 0x22eull, 0x22full,
-  0x05cull, 0x05dull, 0x15cull, 0x15dull, 0x25cull, 0x25dull, 0x35cull,
-    0x35dull, 0x23eull, 0x23full,
-  0x06cull, 0x06dull, 0x16cull, 0x16dull, 0x26cull, 0x26dull, 0x36cull,
-    0x36dull, 0x32eull, 0x32full,
-  0x07cull, 0x07dull, 0x17cull, 0x17dull, 0x27cull, 0x27dull, 0x37cull,
-    0x37dull, 0x33eull, 0x33full,
-  0x00eull, 0x00full, 0x10eull, 0x10full, 0x20eull, 0x20full, 0x30eull,
-    0x30full, 0x06eull, 0x06full,
-  0x01eull, 0x01full, 0x11eull, 0x11full, 0x21eull, 0x21full, 0x31eull,
-    0x31full, 0x07eull, 0x07full,
-  0x08cull, 0x08dull, 0x18cull, 0x18dull, 0x28cull, 0x28dull, 0x38cull,
-    0x38dull, 0x0aeull, 0x0afull,
-  0x09cull, 0x09dull, 0x19cull, 0x19dull, 0x29cull, 0x29dull, 0x39cull,
-    0x39dull, 0x0beull, 0x0bfull,
-  0x0acull, 0x0adull, 0x1acull, 0x1adull, 0x2acull, 0x2adull, 0x3acull,
-    0x3adull, 0x1aeull, 0x1afull,
-  0x0bcull, 0x0bdull, 0x1bcull, 0x1bdull, 0x2bcull, 0x2bdull, 0x3bcull,
-    0x3bdull, 0x1beull, 0x1bfull,
-  0x0ccull, 0x0cdull, 0x1ccull, 0x1cdull, 0x2ccull, 0x2cdull, 0x3ccull,
-    0x3cdull, 0x2aeull, 0x2afull,
-  0x0dcull, 0x0ddull, 0x1dcull, 0x1ddull, 0x2dcull, 0x2ddull, 0x3dcull,
-    0x3ddull, 0x2beull, 0x2bfull,
-  0x0ecull, 0x0edull, 0x1ecull, 0x1edull, 0x2ecull, 0x2edull, 0x3ecull,
-    0x3edull, 0x3aeull, 0x3afull,
-  0x0fcull, 0x0fdull, 0x1fcull, 0x1fdull, 0x2fcull, 0x2fdull, 0x3fcull,
-    0x3fdull, 0x3beull, 0x3bfull,
-  0x08eull, 0x08full, 0x18eull, 0x18full, 0x28eull, 0x28full, 0x38eull,
-    0x38full, 0x0eeull, 0x0efull,
-  0x09eull, 0x09full, 0x19eull, 0x19full, 0x29eull, 0x29full, 0x39eull,
-    0x39full, 0x0feull, 0x0ffull
-};
-
-UINT64 b2d2[] =
-  { 0x000ull << 10, 0x001ull << 10, 0x002ull << 10, 0x003ull << 10,
-0x004ull << 10, 0x005ull << 10, 0x006ull << 10, 0x007ull << 10, 0x008ull << 10,
-0x009ull << 10,
-  0x010ull << 10, 0x011ull << 10, 0x012ull << 10, 0x013ull << 10,
-    0x014ull << 10, 0x015ull << 10, 0x016ull << 10, 0x017ull << 10,
-    0x018ull << 10, 0x019ull << 10,
-  0x020ull << 10, 0x021ull << 10, 0x022ull << 10, 0x023ull << 10,
-    0x024ull << 10, 0x025ull << 10, 0x026ull << 10, 0x027ull << 10,
-    0x028ull << 10, 0x029ull << 10,
-  0x030ull << 10, 0x031ull << 10, 0x032ull << 10, 0x033ull << 10,
-    0x034ull << 10, 0x035ull << 10, 0x036ull << 10, 0x037ull << 10,
-    0x038ull << 10, 0x039ull << 10,
-  0x040ull << 10, 0x041ull << 10, 0x042ull << 10, 0x043ull << 10,
-    0x044ull << 10, 0x045ull << 10, 0x046ull << 10, 0x047ull << 10,
-    0x048ull << 10, 0x049ull << 10,
-  0x050ull << 10, 0x051ull << 10, 0x052ull << 10, 0x053ull << 10,
-    0x054ull << 10, 0x055ull << 10, 0x056ull << 10, 0x057ull << 10,
-    0x058ull << 10, 0x059ull << 10,
-  0x060ull << 10, 0x061ull << 10, 0x062ull << 10, 0x063ull << 10,
-    0x064ull << 10, 0x065ull << 10, 0x066ull << 10, 0x067ull << 10,
-    0x068ull << 10, 0x069ull << 10,
-  0x070ull << 10, 0x071ull << 10, 0x072ull << 10, 0x073ull << 10,
-    0x074ull << 10, 0x075ull << 10, 0x076ull << 10, 0x077ull << 10,
-    0x078ull << 10, 0x079ull << 10,
-  0x00aull << 10, 0x00bull << 10, 0x02aull << 10, 0x02bull << 10,
-    0x04aull << 10, 0x04bull << 10, 0x06aull << 10, 0x06bull << 10,
-    0x04eull << 10, 0x04full << 10,
-  0x01aull << 10, 0x01bull << 10, 0x03aull << 10, 0x03bull << 10,
-    0x05aull << 10, 0x05bull << 10, 0x07aull << 10, 0x07bull << 10,
-    0x05eull << 10, 0x05full << 10,
-  0x080ull << 10, 0x081ull << 10, 0x082ull << 10, 0x083ull << 10,
-    0x084ull << 10, 0x085ull << 10, 0x086ull << 10, 0x087ull << 10,
-    0x088ull << 10, 0x089ull << 10,
-  0x090ull << 10, 0x091ull << 10, 0x092ull << 10, 0x093ull << 10,
-    0x094ull << 10, 0x095ull << 10, 0x096ull << 10, 0x097ull << 10,
-    0x098ull << 10, 0x099ull << 10,
-  0x0a0ull << 10, 0x0a1ull << 10, 0x0a2ull << 10, 0x0a3ull << 10,
-    0x0a4ull << 10, 0x0a5ull << 10, 0x0a6ull << 10, 0x0a7ull << 10,
-    0x0a8ull << 10, 0x0a9ull << 10,
-  0x0b0ull << 10, 0x0b1ull << 10, 0x0b2ull << 10, 0x0b3ull << 10,
-    0x0b4ull << 10, 0x0b5ull << 10, 0x0b6ull << 10, 0x0b7ull << 10,
-    0x0b8ull << 10, 0x0b9ull << 10,
-  0x0c0ull << 10, 0x0c1ull << 10, 0x0c2ull << 10, 0x0c3ull << 10,
-    0x0c4ull << 10, 0x0c5ull << 10, 0x0c6ull << 10, 0x0c7ull << 10,
-    0x0c8ull << 10, 0x0c9ull << 10,
-  0x0d0ull << 10, 0x0d1ull << 10, 0x0d2ull << 10, 0x0d3ull << 10,
-    0x0d4ull << 10, 0x0d5ull << 10, 0x0d6ull << 10, 0x0d7ull << 10,
-    0x0d8ull << 10, 0x0d9ull << 10,
-  0x0e0ull << 10, 0x0e1ull << 10, 0x0e2ull << 10, 0x0e3ull << 10,
-    0x0e4ull << 10, 0x0e5ull << 10, 0x0e6ull << 10, 0x0e7ull << 10,
-    0x0e8ull << 10, 0x0e9ull << 10,
-  0x0f0ull << 10, 0x0f1ull << 10, 0x0f2ull << 10, 0x0f3ull << 10,
-    0x0f4ull << 10, 0x0f5ull << 10, 0x0f6ull << 10, 0x0f7ull << 10,
-    0x0f8ull << 10, 0x0f9ull << 10,
-  0x08aull << 10, 0x08bull << 10, 0x0aaull << 10, 0x0abull << 10,
-    0x0caull << 10, 0x0cbull << 10, 0x0eaull << 10, 0x0ebull << 10,
-    0x0ceull << 10, 0x0cfull << 10,
-  0x09aull << 10, 0x09bull << 10, 0x0baull << 10, 0x0bbull << 10,
-    0x0daull << 10, 0x0dbull << 10, 0x0faull << 10, 0x0fbull << 10,
-    0x0deull << 10, 0x0dfull << 10,
-  0x100ull << 10, 0x101ull << 10, 0x102ull << 10, 0x103ull << 10,
-    0x104ull << 10, 0x105ull << 10, 0x106ull << 10, 0x107ull << 10,
-    0x108ull << 10, 0x109ull << 10,
-  0x110ull << 10, 0x111ull << 10, 0x112ull << 10, 0x113ull << 10,
-    0x114ull << 10, 0x115ull << 10, 0x116ull << 10, 0x117ull << 10,
-    0x118ull << 10, 0x119ull << 10,
-  0x120ull << 10, 0x121ull << 10, 0x122ull << 10, 0x123ull << 10,
-    0x124ull << 10, 0x125ull << 10, 0x126ull << 10, 0x127ull << 10,
-    0x128ull << 10, 0x129ull << 10,
-  0x130ull << 10, 0x131ull << 10, 0x132ull << 10, 0x133ull << 10,
-    0x134ull << 10, 0x135ull << 10, 0x136ull << 10, 0x137ull << 10,
-    0x138ull << 10, 0x139ull << 10,
-  0x140ull << 10, 0x141ull << 10, 0x142ull << 10, 0x143ull << 10,
-    0x144ull << 10, 0x145ull << 10, 0x146ull << 10, 0x147ull << 10,
-    0x148ull << 10, 0x149ull << 10,
-  0x150ull << 10, 0x151ull << 10, 0x152ull << 10, 0x153ull << 10,
-    0x154ull << 10, 0x155ull << 10, 0x156ull << 10, 0x157ull << 10,
-    0x158ull << 10, 0x159ull << 10,
-  0x160ull << 10, 0x161ull << 10, 0x162ull << 10, 0x163ull << 10,
-    0x164ull << 10, 0x165ull << 10, 0x166ull << 10, 0x167ull << 10,
-    0x168ull << 10, 0x169ull << 10,
-  0x170ull << 10, 0x171ull << 10, 0x172ull << 10, 0x173ull << 10,
-    0x174ull << 10, 0x175ull << 10, 0x176ull << 10, 0x177ull << 10,
-    0x178ull << 10, 0x179ull << 10,
-  0x10aull << 10, 0x10bull << 10, 0x12aull << 10, 0x12bull << 10,
-    0x14aull << 10, 0x14bull << 10, 0x16aull << 10, 0x16bull << 10,
-    0x14eull << 10, 0x14full << 10,
-  0x11aull << 10, 0x11bull << 10, 0x13aull << 10, 0x13bull << 10,
-    0x15aull << 10, 0x15bull << 10, 0x17aull << 10, 0x17bull << 10,
-    0x15eull << 10, 0x15full << 10,
-  0x180ull << 10, 0x181ull << 10, 0x182ull << 10, 0x183ull << 10,
-    0x184ull << 10, 0x185ull << 10, 0x186ull << 10, 0x187ull << 10,
-    0x188ull << 10, 0x189ull << 10,
-  0x190ull << 10, 0x191ull << 10, 0x192ull << 10, 0x193ull << 10,
-    0x194ull << 10, 0x195ull << 10, 0x196ull << 10, 0x197ull << 10,
-    0x198ull << 10, 0x199ull << 10,
-  0x1a0ull << 10, 0x1a1ull << 10, 0x1a2ull << 10, 0x1a3ull << 10,
-    0x1a4ull << 10, 0x1a5ull << 10, 0x1a6ull << 10, 0x1a7ull << 10,
-    0x1a8ull << 10, 0x1a9ull << 10,
-  0x1b0ull << 10, 0x1b1ull << 10, 0x1b2ull << 10, 0x1b3ull << 10,
-    0x1b4ull << 10, 0x1b5ull << 10, 0x1b6ull << 10, 0x1b7ull << 10,
-    0x1b8ull << 10, 0x1b9ull << 10,
-  0x1c0ull << 10, 0x1c1ull << 10, 0x1c2ull << 10, 0x1c3ull << 10,
-    0x1c4ull << 10, 0x1c5ull << 10, 0x1c6ull << 10, 0x1c7ull << 10,
-    0x1c8ull << 10, 0x1c9ull << 10,
-  0x1d0ull << 10, 0x1d1ull << 10, 0x1d2ull << 10, 0x1d3ull << 10,
-    0x1d4ull << 10, 0x1d5ull << 10, 0x1d6ull << 10, 0x1d7ull << 10,
-    0x1d8ull << 10, 0x1d9ull << 10,
-  0x1e0ull << 10, 0x1e1ull << 10, 0x1e2ull << 10, 0x1e3ull << 10,
-    0x1e4ull << 10, 0x1e5ull << 10, 0x1e6ull << 10, 0x1e7ull << 10,
-    0x1e8ull << 10, 0x1e9ull << 10,
-  0x1f0ull << 10, 0x1f1ull << 10, 0x1f2ull << 10, 0x1f3ull << 10,
-    0x1f4ull << 10, 0x1f5ull << 10, 0x1f6ull << 10, 0x1f7ull << 10,
-    0x1f8ull << 10, 0x1f9ull << 10,
-  0x18aull << 10, 0x18bull << 10, 0x1aaull << 10, 0x1abull << 10,
-    0x1caull << 10, 0x1cbull << 10, 0x1eaull << 10, 0x1ebull << 10,
-    0x1ceull << 10, 0x1cfull << 10,
-  0x19aull << 10, 0x19bull << 10, 0x1baull << 10, 0x1bbull << 10,
-    0x1daull << 10, 0x1dbull << 10, 0x1faull << 10, 0x1fbull << 10,
-    0x1deull << 10, 0x1dfull << 10,
-  0x200ull << 10, 0x201ull << 10, 0x202ull << 10, 0x203ull << 10,
-    0x204ull << 10, 0x205ull << 10, 0x206ull << 10, 0x207ull << 10,
-    0x208ull << 10, 0x209ull << 10,
-  0x210ull << 10, 0x211ull << 10, 0x212ull << 10, 0x213ull << 10,
-    0x214ull << 10, 0x215ull << 10, 0x216ull << 10, 0x217ull << 10,
-    0x218ull << 10, 0x219ull << 10,
-  0x220ull << 10, 0x221ull << 10, 0x222ull << 10, 0x223ull << 10,
-    0x224ull << 10, 0x225ull << 10, 0x226ull << 10, 0x227ull << 10,
-    0x228ull << 10, 0x229ull << 10,
-  0x230ull << 10, 0x231ull << 10, 0x232ull << 10, 0x233ull << 10,
-    0x234ull << 10, 0x235ull << 10, 0x236ull << 10, 0x237ull << 10,
-    0x238ull << 10, 0x239ull << 10,
-  0x240ull << 10, 0x241ull << 10, 0x242ull << 10, 0x243ull << 10,
-    0x244ull << 10, 0x245ull << 10, 0x246ull << 10, 0x247ull << 10,
-    0x248ull << 10, 0x249ull << 10,
-  0x250ull << 10, 0x251ull << 10, 0x252ull << 10, 0x253ull << 10,
-    0x254ull << 10, 0x255ull << 10, 0x256ull << 10, 0x257ull << 10,
-    0x258ull << 10, 0x259ull << 10,
-  0x260ull << 10, 0x261ull << 10, 0x262ull << 10, 0x263ull << 10,
-    0x264ull << 10, 0x265ull << 10, 0x266ull << 10, 0x267ull << 10,
-    0x268ull << 10, 0x269ull << 10,
-  0x270ull << 10, 0x271ull << 10, 0x272ull << 10, 0x273ull << 10,
-    0x274ull << 10, 0x275ull << 10, 0x276ull << 10, 0x277ull << 10,
-    0x278ull << 10, 0x279ull << 10,
-  0x20aull << 10, 0x20bull << 10, 0x22aull << 10, 0x22bull << 10,
-    0x24aull << 10, 0x24bull << 10, 0x26aull << 10, 0x26bull << 10,
-    0x24eull << 10, 0x24full << 10,
-  0x21aull << 10, 0x21bull << 10, 0x23aull << 10, 0x23bull << 10,
-    0x25aull << 10, 0x25bull << 10, 0x27aull << 10, 0x27bull << 10,
-    0x25eull << 10, 0x25full << 10,
-  0x280ull << 10, 0x281ull << 10, 0x282ull << 10, 0x283ull << 10,
-    0x284ull << 10, 0x285ull << 10, 0x286ull << 10, 0x287ull << 10,
-    0x288ull << 10, 0x289ull << 10,
-  0x290ull << 10, 0x291ull << 10, 0x292ull << 10, 0x293ull << 10,
-    0x294ull << 10, 0x295ull << 10, 0x296ull << 10, 0x297ull << 10,
-    0x298ull << 10, 0x299ull << 10,
-  0x2a0ull << 10, 0x2a1ull << 10, 0x2a2ull << 10, 0x2a3ull << 10,
-    0x2a4ull << 10, 0x2a5ull << 10, 0x2a6ull << 10, 0x2a7ull << 10,
-    0x2a8ull << 10, 0x2a9ull << 10,
-  0x2b0ull << 10, 0x2b1ull << 10, 0x2b2ull << 10, 0x2b3ull << 10,
-    0x2b4ull << 10, 0x2b5ull << 10, 0x2b6ull << 10, 0x2b7ull << 10,
-    0x2b8ull << 10, 0x2b9ull << 10,
-  0x2c0ull << 10, 0x2c1ull << 10, 0x2c2ull << 10, 0x2c3ull << 10,
-    0x2c4ull << 10, 0x2c5ull << 10, 0x2c6ull << 10, 0x2c7ull << 10,
-    0x2c8ull << 10, 0x2c9ull << 10,
-  0x2d0ull << 10, 0x2d1ull << 10, 0x2d2ull << 10, 0x2d3ull << 10,
-    0x2d4ull << 10, 0x2d5ull << 10, 0x2d6ull << 10, 0x2d7ull << 10,
-    0x2d8ull << 10, 0x2d9ull << 10,
-  0x2e0ull << 10, 0x2e1ull << 10, 0x2e2ull << 10, 0x2e3ull << 10,
-    0x2e4ull << 10, 0x2e5ull << 10, 0x2e6ull << 10, 0x2e7ull << 10,
-    0x2e8ull << 10, 0x2e9ull << 10,
-  0x2f0ull << 10, 0x2f1ull << 10, 0x2f2ull << 10, 0x2f3ull << 10,
-    0x2f4ull << 10, 0x2f5ull << 10, 0x2f6ull << 10, 0x2f7ull << 10,
-    0x2f8ull << 10, 0x2f9ull << 10,
-  0x28aull << 10, 0x28bull << 10, 0x2aaull << 10, 0x2abull << 10,
-    0x2caull << 10, 0x2cbull << 10, 0x2eaull << 10, 0x2ebull << 10,
-    0x2ceull << 10, 0x2cfull << 10,
-  0x29aull << 10, 0x29bull << 10, 0x2baull << 10, 0x2bbull << 10,
-    0x2daull << 10, 0x2dbull << 10, 0x2faull << 10, 0x2fbull << 10,
-    0x2deull << 10, 0x2dfull << 10,
-  0x300ull << 10, 0x301ull << 10, 0x302ull << 10, 0x303ull << 10,
-    0x304ull << 10, 0x305ull << 10, 0x306ull << 10, 0x307ull << 10,
-    0x308ull << 10, 0x309ull << 10,
-  0x310ull << 10, 0x311ull << 10, 0x312ull << 10, 0x313ull << 10,
-    0x314ull << 10, 0x315ull << 10, 0x316ull << 10, 0x317ull << 10,
-    0x318ull << 10, 0x319ull << 10,
-  0x320ull << 10, 0x321ull << 10, 0x322ull << 10, 0x323ull << 10,
-    0x324ull << 10, 0x325ull << 10, 0x326ull << 10, 0x327ull << 10,
-    0x328ull << 10, 0x329ull << 10,
-  0x330ull << 10, 0x331ull << 10, 0x332ull << 10, 0x333ull << 10,
-    0x334ull << 10, 0x335ull << 10, 0x336ull << 10, 0x337ull << 10,
-    0x338ull << 10, 0x339ull << 10,
-  0x340ull << 10, 0x341ull << 10, 0x342ull << 10, 0x343ull << 10,
-    0x344ull << 10, 0x345ull << 10, 0x346ull << 10, 0x347ull << 10,
-    0x348ull << 10, 0x349ull << 10,
-  0x350ull << 10, 0x351ull << 10, 0x352ull << 10, 0x353ull << 10,
-    0x354ull << 10, 0x355ull << 10, 0x356ull << 10, 0x357ull << 10,
-    0x358ull << 10, 0x359ull << 10,
-  0x360ull << 10, 0x361ull << 10, 0x362ull << 10, 0x363ull << 10,
-    0x364ull << 10, 0x365ull << 10, 0x366ull << 10, 0x367ull << 10,
-    0x368ull << 10, 0x369ull << 10,
-  0x370ull << 10, 0x371ull << 10, 0x372ull << 10, 0x373ull << 10,
-    0x374ull << 10, 0x375ull << 10, 0x376ull << 10, 0x377ull << 10,
-    0x378ull << 10, 0x379ull << 10,
-  0x30aull << 10, 0x30bull << 10, 0x32aull << 10, 0x32bull << 10,
-    0x34aull << 10, 0x34bull << 10, 0x36aull << 10, 0x36bull << 10,
-    0x34eull << 10, 0x34full << 10,
-  0x31aull << 10, 0x31bull << 10, 0x33aull << 10, 0x33bull << 10,
-    0x35aull << 10, 0x35bull << 10, 0x37aull << 10, 0x37bull << 10,
-    0x35eull << 10, 0x35full << 10,
-  0x380ull << 10, 0x381ull << 10, 0x382ull << 10, 0x383ull << 10,
-    0x384ull << 10, 0x385ull << 10, 0x386ull << 10, 0x387ull << 10,
-    0x388ull << 10, 0x389ull << 10,
-  0x390ull << 10, 0x391ull << 10, 0x392ull << 10, 0x393ull << 10,
-    0x394ull << 10, 0x395ull << 10, 0x396ull << 10, 0x397ull << 10,
-    0x398ull << 10, 0x399ull << 10,
-  0x3a0ull << 10, 0x3a1ull << 10, 0x3a2ull << 10, 0x3a3ull << 10,
-    0x3a4ull << 10, 0x3a5ull << 10, 0x3a6ull << 10, 0x3a7ull << 10,
-    0x3a8ull << 10, 0x3a9ull << 10,
-  0x3b0ull << 10, 0x3b1ull << 10, 0x3b2ull << 10, 0x3b3ull << 10,
-    0x3b4ull << 10, 0x3b5ull << 10, 0x3b6ull << 10, 0x3b7ull << 10,
-    0x3b8ull << 10, 0x3b9ull << 10,
-  0x3c0ull << 10, 0x3c1ull << 10, 0x3c2ull << 10, 0x3c3ull << 10,
-    0x3c4ull << 10, 0x3c5ull << 10, 0x3c6ull << 10, 0x3c7ull << 10,
-    0x3c8ull << 10, 0x3c9ull << 10,
-  0x3d0ull << 10, 0x3d1ull << 10, 0x3d2ull << 10, 0x3d3ull << 10,
-    0x3d4ull << 10, 0x3d5ull << 10, 0x3d6ull << 10, 0x3d7ull << 10,
-    0x3d8ull << 10, 0x3d9ull << 10,
-  0x3e0ull << 10, 0x3e1ull << 10, 0x3e2ull << 10, 0x3e3ull << 10,
-    0x3e4ull << 10, 0x3e5ull << 10, 0x3e6ull << 10, 0x3e7ull << 10,
-    0x3e8ull << 10, 0x3e9ull << 10,
-  0x3f0ull << 10, 0x3f1ull << 10, 0x3f2ull << 10, 0x3f3ull << 10,
-    0x3f4ull << 10, 0x3f5ull << 10, 0x3f6ull << 10, 0x3f7ull << 10,
-    0x3f8ull << 10, 0x3f9ull << 10,
-  0x38aull << 10, 0x38bull << 10, 0x3aaull << 10, 0x3abull << 10,
-    0x3caull << 10, 0x3cbull << 10, 0x3eaull << 10, 0x3ebull << 10,
-    0x3ceull << 10, 0x3cfull << 10,
-  0x39aull << 10, 0x39bull << 10, 0x3baull << 10, 0x3bbull << 10,
-    0x3daull << 10, 0x3dbull << 10, 0x3faull << 10, 0x3fbull << 10,
-    0x3deull << 10, 0x3dfull << 10,
-  0x00cull << 10, 0x00dull << 10, 0x10cull << 10, 0x10dull << 10,
-    0x20cull << 10, 0x20dull << 10, 0x30cull << 10, 0x30dull << 10,
-    0x02eull << 10, 0x02full << 10,
-  0x01cull << 10, 0x01dull << 10, 0x11cull << 10, 0x11dull << 10,
-    0x21cull << 10, 0x21dull << 10, 0x31cull << 10, 0x31dull << 10,
-    0x03eull << 10, 0x03full << 10,
-  0x02cull << 10, 0x02dull << 10, 0x12cull << 10, 0x12dull << 10,
-    0x22cull << 10, 0x22dull << 10, 0x32cull << 10, 0x32dull << 10,
-    0x12eull << 10, 0x12full << 10,
-  0x03cull << 10, 0x03dull << 10, 0x13cull << 10, 0x13dull << 10,
-    0x23cull << 10, 0x23dull << 10, 0x33cull << 10, 0x33dull << 10,
-    0x13eull << 10, 0x13full << 10,
-  0x04cull << 10, 0x04dull << 10, 0x14cull << 10, 0x14dull << 10,
-    0x24cull << 10, 0x24dull << 10, 0x34cull << 10, 0x34dull << 10,
-    0x22eull << 10, 0x22full << 10,
-  0x05cull << 10, 0x05dull << 10, 0x15cull << 10, 0x15dull << 10,
-    0x25cull << 10, 0x25dull << 10, 0x35cull << 10, 0x35dull << 10,
-    0x23eull << 10, 0x23full << 10,
-  0x06cull << 10, 0x06dull << 10, 0x16cull << 10, 0x16dull << 10,
-    0x26cull << 10, 0x26dull << 10, 0x36cull << 10, 0x36dull << 10,
-    0x32eull << 10, 0x32full << 10,
-  0x07cull << 10, 0x07dull << 10, 0x17cull << 10, 0x17dull << 10,
-    0x27cull << 10, 0x27dull << 10, 0x37cull << 10, 0x37dull << 10,
-    0x33eull << 10, 0x33full << 10,
-  0x00eull << 10, 0x00full << 10, 0x10eull << 10, 0x10full << 10,
-    0x20eull << 10, 0x20full << 10, 0x30eull << 10, 0x30full << 10,
-    0x06eull << 10, 0x06full << 10,
-  0x01eull << 10, 0x01full << 10, 0x11eull << 10, 0x11full << 10,
-    0x21eull << 10, 0x21full << 10, 0x31eull << 10, 0x31full << 10,
-    0x07eull << 10, 0x07full << 10,
-  0x08cull << 10, 0x08dull << 10, 0x18cull << 10, 0x18dull << 10,
-    0x28cull << 10, 0x28dull << 10, 0x38cull << 10, 0x38dull << 10,
-    0x0aeull << 10, 0x0afull << 10,
-  0x09cull << 10, 0x09dull << 10, 0x19cull << 10, 0x19dull << 10,
-    0x29cull << 10, 0x29dull << 10, 0x39cull << 10, 0x39dull << 10,
-    0x0beull << 10, 0x0bfull << 10,
-  0x0acull << 10, 0x0adull << 10, 0x1acull << 10, 0x1adull << 10,
-    0x2acull << 10, 0x2adull << 10, 0x3acull << 10, 0x3adull << 10,
-    0x1aeull << 10, 0x1afull << 10,
-  0x0bcull << 10, 0x0bdull << 10, 0x1bcull << 10, 0x1bdull << 10,
-    0x2bcull << 10, 0x2bdull << 10, 0x3bcull << 10, 0x3bdull << 10,
-    0x1beull << 10, 0x1bfull << 10,
-  0x0ccull << 10, 0x0cdull << 10, 0x1ccull << 10, 0x1cdull << 10,
-    0x2ccull << 10, 0x2cdull << 10, 0x3ccull << 10, 0x3cdull << 10,
-    0x2aeull << 10, 0x2afull << 10,
-  0x0dcull << 10, 0x0ddull << 10, 0x1dcull << 10, 0x1ddull << 10,
-    0x2dcull << 10, 0x2ddull << 10, 0x3dcull << 10, 0x3ddull << 10,
-    0x2beull << 10, 0x2bfull << 10,
-  0x0ecull << 10, 0x0edull << 10, 0x1ecull << 10, 0x1edull << 10,
-    0x2ecull << 10, 0x2edull << 10, 0x3ecull << 10, 0x3edull << 10,
-    0x3aeull << 10, 0x3afull << 10,
-  0x0fcull << 10, 0x0fdull << 10, 0x1fcull << 10, 0x1fdull << 10,
-    0x2fcull << 10, 0x2fdull << 10, 0x3fcull << 10, 0x3fdull << 10,
-    0x3beull << 10, 0x3bfull << 10,
-  0x08eull << 10, 0x08full << 10, 0x18eull << 10, 0x18full << 10,
-    0x28eull << 10, 0x28full << 10, 0x38eull << 10, 0x38full << 10,
-    0x0eeull << 10, 0x0efull << 10,
-  0x09eull << 10, 0x09full << 10, 0x19eull << 10, 0x19full << 10,
-    0x29eull << 10, 0x29full << 10, 0x39eull << 10, 0x39full << 10,
-    0x0feull << 10, 0x0ffull << 10
-};
-
-UINT64 b2d3[] =
-  { 0x000ull << 20, 0x001ull << 20, 0x002ull << 20, 0x003ull << 20,
-0x004ull << 20, 0x005ull << 20, 0x006ull << 20, 0x007ull << 20, 0x008ull << 20,
-0x009ull << 20,
-  0x010ull << 20, 0x011ull << 20, 0x012ull << 20, 0x013ull << 20,
-    0x014ull << 20, 0x015ull << 20, 0x016ull << 20, 0x017ull << 20,
-    0x018ull << 20, 0x019ull << 20,
-  0x020ull << 20, 0x021ull << 20, 0x022ull << 20, 0x023ull << 20,
-    0x024ull << 20, 0x025ull << 20, 0x026ull << 20, 0x027ull << 20,
-    0x028ull << 20, 0x029ull << 20,
-  0x030ull << 20, 0x031ull << 20, 0x032ull << 20, 0x033ull << 20,
-    0x034ull << 20, 0x035ull << 20, 0x036ull << 20, 0x037ull << 20,
-    0x038ull << 20, 0x039ull << 20,
-  0x040ull << 20, 0x041ull << 20, 0x042ull << 20, 0x043ull << 20,
-    0x044ull << 20, 0x045ull << 20, 0x046ull << 20, 0x047ull << 20,
-    0x048ull << 20, 0x049ull << 20,
-  0x050ull << 20, 0x051ull << 20, 0x052ull << 20, 0x053ull << 20,
-    0x054ull << 20, 0x055ull << 20, 0x056ull << 20, 0x057ull << 20,
-    0x058ull << 20, 0x059ull << 20,
-  0x060ull << 20, 0x061ull << 20, 0x062ull << 20, 0x063ull << 20,
-    0x064ull << 20, 0x065ull << 20, 0x066ull << 20, 0x067ull << 20,
-    0x068ull << 20, 0x069ull << 20,
-  0x070ull << 20, 0x071ull << 20, 0x072ull << 20, 0x073ull << 20,
-    0x074ull << 20, 0x075ull << 20, 0x076ull << 20, 0x077ull << 20,
-    0x078ull << 20, 0x079ull << 20,
-  0x00aull << 20, 0x00bull << 20, 0x02aull << 20, 0x02bull << 20,
-    0x04aull << 20, 0x04bull << 20, 0x06aull << 20, 0x06bull << 20,
-    0x04eull << 20, 0x04full << 20,
-  0x01aull << 20, 0x01bull << 20, 0x03aull << 20, 0x03bull << 20,
-    0x05aull << 20, 0x05bull << 20, 0x07aull << 20, 0x07bull << 20,
-    0x05eull << 20, 0x05full << 20,
-  0x080ull << 20, 0x081ull << 20, 0x082ull << 20, 0x083ull << 20,
-    0x084ull << 20, 0x085ull << 20, 0x086ull << 20, 0x087ull << 20,
-    0x088ull << 20, 0x089ull << 20,
-  0x090ull << 20, 0x091ull << 20, 0x092ull << 20, 0x093ull << 20,
-    0x094ull << 20, 0x095ull << 20, 0x096ull << 20, 0x097ull << 20,
-    0x098ull << 20, 0x099ull << 20,
-  0x0a0ull << 20, 0x0a1ull << 20, 0x0a2ull << 20, 0x0a3ull << 20,
-    0x0a4ull << 20, 0x0a5ull << 20, 0x0a6ull << 20, 0x0a7ull << 20,
-    0x0a8ull << 20, 0x0a9ull << 20,
-  0x0b0ull << 20, 0x0b1ull << 20, 0x0b2ull << 20, 0x0b3ull << 20,
-    0x0b4ull << 20, 0x0b5ull << 20, 0x0b6ull << 20, 0x0b7ull << 20,
-    0x0b8ull << 20, 0x0b9ull << 20,
-  0x0c0ull << 20, 0x0c1ull << 20, 0x0c2ull << 20, 0x0c3ull << 20,
-    0x0c4ull << 20, 0x0c5ull << 20, 0x0c6ull << 20, 0x0c7ull << 20,
-    0x0c8ull << 20, 0x0c9ull << 20,
-  0x0d0ull << 20, 0x0d1ull << 20, 0x0d2ull << 20, 0x0d3ull << 20,
-    0x0d4ull << 20, 0x0d5ull << 20, 0x0d6ull << 20, 0x0d7ull << 20,
-    0x0d8ull << 20, 0x0d9ull << 20,
-  0x0e0ull << 20, 0x0e1ull << 20, 0x0e2ull << 20, 0x0e3ull << 20,
-    0x0e4ull << 20, 0x0e5ull << 20, 0x0e6ull << 20, 0x0e7ull << 20,
-    0x0e8ull << 20, 0x0e9ull << 20,
-  0x0f0ull << 20, 0x0f1ull << 20, 0x0f2ull << 20, 0x0f3ull << 20,
-    0x0f4ull << 20, 0x0f5ull << 20, 0x0f6ull << 20, 0x0f7ull << 20,
-    0x0f8ull << 20, 0x0f9ull << 20,
-  0x08aull << 20, 0x08bull << 20, 0x0aaull << 20, 0x0abull << 20,
-    0x0caull << 20, 0x0cbull << 20, 0x0eaull << 20, 0x0ebull << 20,
-    0x0ceull << 20, 0x0cfull << 20,
-  0x09aull << 20, 0x09bull << 20, 0x0baull << 20, 0x0bbull << 20,
-    0x0daull << 20, 0x0dbull << 20, 0x0faull << 20, 0x0fbull << 20,
-    0x0deull << 20, 0x0dfull << 20,
-  0x100ull << 20, 0x101ull << 20, 0x102ull << 20, 0x103ull << 20,
-    0x104ull << 20, 0x105ull << 20, 0x106ull << 20, 0x107ull << 20,
-    0x108ull << 20, 0x109ull << 20,
-  0x110ull << 20, 0x111ull << 20, 0x112ull << 20, 0x113ull << 20,
-    0x114ull << 20, 0x115ull << 20, 0x116ull << 20, 0x117ull << 20,
-    0x118ull << 20, 0x119ull << 20,
-  0x120ull << 20, 0x121ull << 20, 0x122ull << 20, 0x123ull << 20,
-    0x124ull << 20, 0x125ull << 20, 0x126ull << 20, 0x127ull << 20,
-    0x128ull << 20, 0x129ull << 20,
-  0x130ull << 20, 0x131ull << 20, 0x132ull << 20, 0x133ull << 20,
-    0x134ull << 20, 0x135ull << 20, 0x136ull << 20, 0x137ull << 20,
-    0x138ull << 20, 0x139ull << 20,
-  0x140ull << 20, 0x141ull << 20, 0x142ull << 20, 0x143ull << 20,
-    0x144ull << 20, 0x145ull << 20, 0x146ull << 20, 0x147ull << 20,
-    0x148ull << 20, 0x149ull << 20,
-  0x150ull << 20, 0x151ull << 20, 0x152ull << 20, 0x153ull << 20,
-    0x154ull << 20, 0x155ull << 20, 0x156ull << 20, 0x157ull << 20,
-    0x158ull << 20, 0x159ull << 20,
-  0x160ull << 20, 0x161ull << 20, 0x162ull << 20, 0x163ull << 20,
-    0x164ull << 20, 0x165ull << 20, 0x166ull << 20, 0x167ull << 20,
-    0x168ull << 20, 0x169ull << 20,
-  0x170ull << 20, 0x171ull << 20, 0x172ull << 20, 0x173ull << 20,
-    0x174ull << 20, 0x175ull << 20, 0x176ull << 20, 0x177ull << 20,
-    0x178ull << 20, 0x179ull << 20,
-  0x10aull << 20, 0x10bull << 20, 0x12aull << 20, 0x12bull << 20,
-    0x14aull << 20, 0x14bull << 20, 0x16aull << 20, 0x16bull << 20,
-    0x14eull << 20, 0x14full << 20,
-  0x11aull << 20, 0x11bull << 20, 0x13aull << 20, 0x13bull << 20,
-    0x15aull << 20, 0x15bull << 20, 0x17aull << 20, 0x17bull << 20,
-    0x15eull << 20, 0x15full << 20,
-  0x180ull << 20, 0x181ull << 20, 0x182ull << 20, 0x183ull << 20,
-    0x184ull << 20, 0x185ull << 20, 0x186ull << 20, 0x187ull << 20,
-    0x188ull << 20, 0x189ull << 20,
-  0x190ull << 20, 0x191ull << 20, 0x192ull << 20, 0x193ull << 20,
-    0x194ull << 20, 0x195ull << 20, 0x196ull << 20, 0x197ull << 20,
-    0x198ull << 20, 0x199ull << 20,
-  0x1a0ull << 20, 0x1a1ull << 20, 0x1a2ull << 20, 0x1a3ull << 20,
-    0x1a4ull << 20, 0x1a5ull << 20, 0x1a6ull << 20, 0x1a7ull << 20,
-    0x1a8ull << 20, 0x1a9ull << 20,
-  0x1b0ull << 20, 0x1b1ull << 20, 0x1b2ull << 20, 0x1b3ull << 20,
-    0x1b4ull << 20, 0x1b5ull << 20, 0x1b6ull << 20, 0x1b7ull << 20,
-    0x1b8ull << 20, 0x1b9ull << 20,
-  0x1c0ull << 20, 0x1c1ull << 20, 0x1c2ull << 20, 0x1c3ull << 20,
-    0x1c4ull << 20, 0x1c5ull << 20, 0x1c6ull << 20, 0x1c7ull << 20,
-    0x1c8ull << 20, 0x1c9ull << 20,
-  0x1d0ull << 20, 0x1d1ull << 20, 0x1d2ull << 20, 0x1d3ull << 20,
-    0x1d4ull << 20, 0x1d5ull << 20, 0x1d6ull << 20, 0x1d7ull << 20,
-    0x1d8ull << 20, 0x1d9ull << 20,
-  0x1e0ull << 20, 0x1e1ull << 20, 0x1e2ull << 20, 0x1e3ull << 20,
-    0x1e4ull << 20, 0x1e5ull << 20, 0x1e6ull << 20, 0x1e7ull << 20,
-    0x1e8ull << 20, 0x1e9ull << 20,
-  0x1f0ull << 20, 0x1f1ull << 20, 0x1f2ull << 20, 0x1f3ull << 20,
-    0x1f4ull << 20, 0x1f5ull << 20, 0x1f6ull << 20, 0x1f7ull << 20,
-    0x1f8ull << 20, 0x1f9ull << 20,
-  0x18aull << 20, 0x18bull << 20, 0x1aaull << 20, 0x1abull << 20,
-    0x1caull << 20, 0x1cbull << 20, 0x1eaull << 20, 0x1ebull << 20,
-    0x1ceull << 20, 0x1cfull << 20,
-  0x19aull << 20, 0x19bull << 20, 0x1baull << 20, 0x1bbull << 20,
-    0x1daull << 20, 0x1dbull << 20, 0x1faull << 20, 0x1fbull << 20,
-    0x1deull << 20, 0x1dfull << 20,
-  0x200ull << 20, 0x201ull << 20, 0x202ull << 20, 0x203ull << 20,
-    0x204ull << 20, 0x205ull << 20, 0x206ull << 20, 0x207ull << 20,
-    0x208ull << 20, 0x209ull << 20,
-  0x210ull << 20, 0x211ull << 20, 0x212ull << 20, 0x213ull << 20,
-    0x214ull << 20, 0x215ull << 20, 0x216ull << 20, 0x217ull << 20,
-    0x218ull << 20, 0x219ull << 20,
-  0x220ull << 20, 0x221ull << 20, 0x222ull << 20, 0x223ull << 20,
-    0x224ull << 20, 0x225ull << 20, 0x226ull << 20, 0x227ull << 20,
-    0x228ull << 20, 0x229ull << 20,
-  0x230ull << 20, 0x231ull << 20, 0x232ull << 20, 0x233ull << 20,
-    0x234ull << 20, 0x235ull << 20, 0x236ull << 20, 0x237ull << 20,
-    0x238ull << 20, 0x239ull << 20,
-  0x240ull << 20, 0x241ull << 20, 0x242ull << 20, 0x243ull << 20,
-    0x244ull << 20, 0x245ull << 20, 0x246ull << 20, 0x247ull << 20,
-    0x248ull << 20, 0x249ull << 20,
-  0x250ull << 20, 0x251ull << 20, 0x252ull << 20, 0x253ull << 20,
-    0x254ull << 20, 0x255ull << 20, 0x256ull << 20, 0x257ull << 20,
-    0x258ull << 20, 0x259ull << 20,
-  0x260ull << 20, 0x261ull << 20, 0x262ull << 20, 0x263ull << 20,
-    0x264ull << 20, 0x265ull << 20, 0x266ull << 20, 0x267ull << 20,
-    0x268ull << 20, 0x269ull << 20,
-  0x270ull << 20, 0x271ull << 20, 0x272ull << 20, 0x273ull << 20,
-    0x274ull << 20, 0x275ull << 20, 0x276ull << 20, 0x277ull << 20,
-    0x278ull << 20, 0x279ull << 20,
-  0x20aull << 20, 0x20bull << 20, 0x22aull << 20, 0x22bull << 20,
-    0x24aull << 20, 0x24bull << 20, 0x26aull << 20, 0x26bull << 20,
-    0x24eull << 20, 0x24full << 20,
-  0x21aull << 20, 0x21bull << 20, 0x23aull << 20, 0x23bull << 20,
-    0x25aull << 20, 0x25bull << 20, 0x27aull << 20, 0x27bull << 20,
-    0x25eull << 20, 0x25full << 20,
-  0x280ull << 20, 0x281ull << 20, 0x282ull << 20, 0x283ull << 20,
-    0x284ull << 20, 0x285ull << 20, 0x286ull << 20, 0x287ull << 20,
-    0x288ull << 20, 0x289ull << 20,
-  0x290ull << 20, 0x291ull << 20, 0x292ull << 20, 0x293ull << 20,
-    0x294ull << 20, 0x295ull << 20, 0x296ull << 20, 0x297ull << 20,
-    0x298ull << 20, 0x299ull << 20,
-  0x2a0ull << 20, 0x2a1ull << 20, 0x2a2ull << 20, 0x2a3ull << 20,
-    0x2a4ull << 20, 0x2a5ull << 20, 0x2a6ull << 20, 0x2a7ull << 20,
-    0x2a8ull << 20, 0x2a9ull << 20,
-  0x2b0ull << 20, 0x2b1ull << 20, 0x2b2ull << 20, 0x2b3ull << 20,
-    0x2b4ull << 20, 0x2b5ull << 20, 0x2b6ull << 20, 0x2b7ull << 20,
-    0x2b8ull << 20, 0x2b9ull << 20,
-  0x2c0ull << 20, 0x2c1ull << 20, 0x2c2ull << 20, 0x2c3ull << 20,
-    0x2c4ull << 20, 0x2c5ull << 20, 0x2c6ull << 20, 0x2c7ull << 20,
-    0x2c8ull << 20, 0x2c9ull << 20,
-  0x2d0ull << 20, 0x2d1ull << 20, 0x2d2ull << 20, 0x2d3ull << 20,
-    0x2d4ull << 20, 0x2d5ull << 20, 0x2d6ull << 20, 0x2d7ull << 20,
-    0x2d8ull << 20, 0x2d9ull << 20,
-  0x2e0ull << 20, 0x2e1ull << 20, 0x2e2ull << 20, 0x2e3ull << 20,
-    0x2e4ull << 20, 0x2e5ull << 20, 0x2e6ull << 20, 0x2e7ull << 20,
-    0x2e8ull << 20, 0x2e9ull << 20,
-  0x2f0ull << 20, 0x2f1ull << 20, 0x2f2ull << 20, 0x2f3ull << 20,
-    0x2f4ull << 20, 0x2f5ull << 20, 0x2f6ull << 20, 0x2f7ull << 20,
-    0x2f8ull << 20, 0x2f9ull << 20,
-  0x28aull << 20, 0x28bull << 20, 0x2aaull << 20, 0x2abull << 20,
-    0x2caull << 20, 0x2cbull << 20, 0x2eaull << 20, 0x2ebull << 20,
-    0x2ceull << 20, 0x2cfull << 20,
-  0x29aull << 20, 0x29bull << 20, 0x2baull << 20, 0x2bbull << 20,
-    0x2daull << 20, 0x2dbull << 20, 0x2faull << 20, 0x2fbull << 20,
-    0x2deull << 20, 0x2dfull << 20,
-  0x300ull << 20, 0x301ull << 20, 0x302ull << 20, 0x303ull << 20,
-    0x304ull << 20, 0x305ull << 20, 0x306ull << 20, 0x307ull << 20,
-    0x308ull << 20, 0x309ull << 20,
-  0x310ull << 20, 0x311ull << 20, 0x312ull << 20, 0x313ull << 20,
-    0x314ull << 20, 0x315ull << 20, 0x316ull << 20, 0x317ull << 20,
-    0x318ull << 20, 0x319ull << 20,
-  0x320ull << 20, 0x321ull << 20, 0x322ull << 20, 0x323ull << 20,
-    0x324ull << 20, 0x325ull << 20, 0x326ull << 20, 0x327ull << 20,
-    0x328ull << 20, 0x329ull << 20,
-  0x330ull << 20, 0x331ull << 20, 0x332ull << 20, 0x333ull << 20,
-    0x334ull << 20, 0x335ull << 20, 0x336ull << 20, 0x337ull << 20,
-    0x338ull << 20, 0x339ull << 20,
-  0x340ull << 20, 0x341ull << 20, 0x342ull << 20, 0x343ull << 20,
-    0x344ull << 20, 0x345ull << 20, 0x346ull << 20, 0x347ull << 20,
-    0x348ull << 20, 0x349ull << 20,
-  0x350ull << 20, 0x351ull << 20, 0x352ull << 20, 0x353ull << 20,
-    0x354ull << 20, 0x355ull << 20, 0x356ull << 20, 0x357ull << 20,
-    0x358ull << 20, 0x359ull << 20,
-  0x360ull << 20, 0x361ull << 20, 0x362ull << 20, 0x363ull << 20,
-    0x364ull << 20, 0x365ull << 20, 0x366ull << 20, 0x367ull << 20,
-    0x368ull << 20, 0x369ull << 20,
-  0x370ull << 20, 0x371ull << 20, 0x372ull << 20, 0x373ull << 20,
-    0x374ull << 20, 0x375ull << 20, 0x376ull << 20, 0x377ull << 20,
-    0x378ull << 20, 0x379ull << 20,
-  0x30aull << 20, 0x30bull << 20, 0x32aull << 20, 0x32bull << 20,
-    0x34aull << 20, 0x34bull << 20, 0x36aull << 20, 0x36bull << 20,
-    0x34eull << 20, 0x34full << 20,
-  0x31aull << 20, 0x31bull << 20, 0x33aull << 20, 0x33bull << 20,
-    0x35aull << 20, 0x35bull << 20, 0x37aull << 20, 0x37bull << 20,
-    0x35eull << 20, 0x35full << 20,
-  0x380ull << 20, 0x381ull << 20, 0x382ull << 20, 0x383ull << 20,
-    0x384ull << 20, 0x385ull << 20, 0x386ull << 20, 0x387ull << 20,
-    0x388ull << 20, 0x389ull << 20,
-  0x390ull << 20, 0x391ull << 20, 0x392ull << 20, 0x393ull << 20,
-    0x394ull << 20, 0x395ull << 20, 0x396ull << 20, 0x397ull << 20,
-    0x398ull << 20, 0x399ull << 20,
-  0x3a0ull << 20, 0x3a1ull << 20, 0x3a2ull << 20, 0x3a3ull << 20,
-    0x3a4ull << 20, 0x3a5ull << 20, 0x3a6ull << 20, 0x3a7ull << 20,
-    0x3a8ull << 20, 0x3a9ull << 20,
-  0x3b0ull << 20, 0x3b1ull << 20, 0x3b2ull << 20, 0x3b3ull << 20,
-    0x3b4ull << 20, 0x3b5ull << 20, 0x3b6ull << 20, 0x3b7ull << 20,
-    0x3b8ull << 20, 0x3b9ull << 20,
-  0x3c0ull << 20, 0x3c1ull << 20, 0x3c2ull << 20, 0x3c3ull << 20,
-    0x3c4ull << 20, 0x3c5ull << 20, 0x3c6ull << 20, 0x3c7ull << 20,
-    0x3c8ull << 20, 0x3c9ull << 20,
-  0x3d0ull << 20, 0x3d1ull << 20, 0x3d2ull << 20, 0x3d3ull << 20,
-    0x3d4ull << 20, 0x3d5ull << 20, 0x3d6ull << 20, 0x3d7ull << 20,
-    0x3d8ull << 20, 0x3d9ull << 20,
-  0x3e0ull << 20, 0x3e1ull << 20, 0x3e2ull << 20, 0x3e3ull << 20,
-    0x3e4ull << 20, 0x3e5ull << 20, 0x3e6ull << 20, 0x3e7ull << 20,
-    0x3e8ull << 20, 0x3e9ull << 20,
-  0x3f0ull << 20, 0x3f1ull << 20, 0x3f2ull << 20, 0x3f3ull << 20,
-    0x3f4ull << 20, 0x3f5ull << 20, 0x3f6ull << 20, 0x3f7ull << 20,
-    0x3f8ull << 20, 0x3f9ull << 20,
-  0x38aull << 20, 0x38bull << 20, 0x3aaull << 20, 0x3abull << 20,
-    0x3caull << 20, 0x3cbull << 20, 0x3eaull << 20, 0x3ebull << 20,
-    0x3ceull << 20, 0x3cfull << 20,
-  0x39aull << 20, 0x39bull << 20, 0x3baull << 20, 0x3bbull << 20,
-    0x3daull << 20, 0x3dbull << 20, 0x3faull << 20, 0x3fbull << 20,
-    0x3deull << 20, 0x3dfull << 20,
-  0x00cull << 20, 0x00dull << 20, 0x10cull << 20, 0x10dull << 20,
-    0x20cull << 20, 0x20dull << 20, 0x30cull << 20, 0x30dull << 20,
-    0x02eull << 20, 0x02full << 20,
-  0x01cull << 20, 0x01dull << 20, 0x11cull << 20, 0x11dull << 20,
-    0x21cull << 20, 0x21dull << 20, 0x31cull << 20, 0x31dull << 20,
-    0x03eull << 20, 0x03full << 20,
-  0x02cull << 20, 0x02dull << 20, 0x12cull << 20, 0x12dull << 20,
-    0x22cull << 20, 0x22dull << 20, 0x32cull << 20, 0x32dull << 20,
-    0x12eull << 20, 0x12full << 20,
-  0x03cull << 20, 0x03dull << 20, 0x13cull << 20, 0x13dull << 20,
-    0x23cull << 20, 0x23dull << 20, 0x33cull << 20, 0x33dull << 20,
-    0x13eull << 20, 0x13full << 20,
-  0x04cull << 20, 0x04dull << 20, 0x14cull << 20, 0x14dull << 20,
-    0x24cull << 20, 0x24dull << 20, 0x34cull << 20, 0x34dull << 20,
-    0x22eull << 20, 0x22full << 20,
-  0x05cull << 20, 0x05dull << 20, 0x15cull << 20, 0x15dull << 20,
-    0x25cull << 20, 0x25dull << 20, 0x35cull << 20, 0x35dull << 20,
-    0x23eull << 20, 0x23full << 20,
-  0x06cull << 20, 0x06dull << 20, 0x16cull << 20, 0x16dull << 20,
-    0x26cull << 20, 0x26dull << 20, 0x36cull << 20, 0x36dull << 20,
-    0x32eull << 20, 0x32full << 20,
-  0x07cull << 20, 0x07dull << 20, 0x17cull << 20, 0x17dull << 20,
-    0x27cull << 20, 0x27dull << 20, 0x37cull << 20, 0x37dull << 20,
-    0x33eull << 20, 0x33full << 20,
-  0x00eull << 20, 0x00full << 20, 0x10eull << 20, 0x10full << 20,
-    0x20eull << 20, 0x20full << 20, 0x30eull << 20, 0x30full << 20,
-    0x06eull << 20, 0x06full << 20,
-  0x01eull << 20, 0x01full << 20, 0x11eull << 20, 0x11full << 20,
-    0x21eull << 20, 0x21full << 20, 0x31eull << 20, 0x31full << 20,
-    0x07eull << 20, 0x07full << 20,
-  0x08cull << 20, 0x08dull << 20, 0x18cull << 20, 0x18dull << 20,
-    0x28cull << 20, 0x28dull << 20, 0x38cull << 20, 0x38dull << 20,
-    0x0aeull << 20, 0x0afull << 20,
-  0x09cull << 20, 0x09dull << 20, 0x19cull << 20, 0x19dull << 20,
-    0x29cull << 20, 0x29dull << 20, 0x39cull << 20, 0x39dull << 20,
-    0x0beull << 20, 0x0bfull << 20,
-  0x0acull << 20, 0x0adull << 20, 0x1acull << 20, 0x1adull << 20,
-    0x2acull << 20, 0x2adull << 20, 0x3acull << 20, 0x3adull << 20,
-    0x1aeull << 20, 0x1afull << 20,
-  0x0bcull << 20, 0x0bdull << 20, 0x1bcull << 20, 0x1bdull << 20,
-    0x2bcull << 20, 0x2bdull << 20, 0x3bcull << 20, 0x3bdull << 20,
-    0x1beull << 20, 0x1bfull << 20,
-  0x0ccull << 20, 0x0cdull << 20, 0x1ccull << 20, 0x1cdull << 20,
-    0x2ccull << 20, 0x2cdull << 20, 0x3ccull << 20, 0x3cdull << 20,
-    0x2aeull << 20, 0x2afull << 20,
-  0x0dcull << 20, 0x0ddull << 20, 0x1dcull << 20, 0x1ddull << 20,
-    0x2dcull << 20, 0x2ddull << 20, 0x3dcull << 20, 0x3ddull << 20,
-    0x2beull << 20, 0x2bfull << 20,
-  0x0ecull << 20, 0x0edull << 20, 0x1ecull << 20, 0x1edull << 20,
-    0x2ecull << 20, 0x2edull << 20, 0x3ecull << 20, 0x3edull << 20,
-    0x3aeull << 20, 0x3afull << 20,
-  0x0fcull << 20, 0x0fdull << 20, 0x1fcull << 20, 0x1fdull << 20,
-    0x2fcull << 20, 0x2fdull << 20, 0x3fcull << 20, 0x3fdull << 20,
-    0x3beull << 20, 0x3bfull << 20,
-  0x08eull << 20, 0x08full << 20, 0x18eull << 20, 0x18full << 20,
-    0x28eull << 20, 0x28full << 20, 0x38eull << 20, 0x38full << 20,
-    0x0eeull << 20, 0x0efull << 20,
-  0x09eull << 20, 0x09full << 20, 0x19eull << 20, 0x19full << 20,
-    0x29eull << 20, 0x29full << 20, 0x39eull << 20, 0x39full << 20,
-    0x0feull << 20, 0x0ffull << 20
-};
-
-UINT64 b2d4[] =
-  { 0x000ull << 30, 0x001ull << 30, 0x002ull << 30, 0x003ull << 30,
-0x004ull << 30, 0x005ull << 30, 0x006ull << 30, 0x007ull << 30, 0x008ull << 30,
-0x009ull << 30,
-  0x010ull << 30, 0x011ull << 30, 0x012ull << 30, 0x013ull << 30,
-    0x014ull << 30, 0x015ull << 30, 0x016ull << 30, 0x017ull << 30,
-    0x018ull << 30, 0x019ull << 30,
-  0x020ull << 30, 0x021ull << 30, 0x022ull << 30, 0x023ull << 30,
-    0x024ull << 30, 0x025ull << 30, 0x026ull << 30, 0x027ull << 30,
-    0x028ull << 30, 0x029ull << 30,
-  0x030ull << 30, 0x031ull << 30, 0x032ull << 30, 0x033ull << 30,
-    0x034ull << 30, 0x035ull << 30, 0x036ull << 30, 0x037ull << 30,
-    0x038ull << 30, 0x039ull << 30,
-  0x040ull << 30, 0x041ull << 30, 0x042ull << 30, 0x043ull << 30,
-    0x044ull << 30, 0x045ull << 30, 0x046ull << 30, 0x047ull << 30,
-    0x048ull << 30, 0x049ull << 30,
-  0x050ull << 30, 0x051ull << 30, 0x052ull << 30, 0x053ull << 30,
-    0x054ull << 30, 0x055ull << 30, 0x056ull << 30, 0x057ull << 30,
-    0x058ull << 30, 0x059ull << 30,
-  0x060ull << 30, 0x061ull << 30, 0x062ull << 30, 0x063ull << 30,
-    0x064ull << 30, 0x065ull << 30, 0x066ull << 30, 0x067ull << 30,
-    0x068ull << 30, 0x069ull << 30,
-  0x070ull << 30, 0x071ull << 30, 0x072ull << 30, 0x073ull << 30,
-    0x074ull << 30, 0x075ull << 30, 0x076ull << 30, 0x077ull << 30,
-    0x078ull << 30, 0x079ull << 30,
-  0x00aull << 30, 0x00bull << 30, 0x02aull << 30, 0x02bull << 30,
-    0x04aull << 30, 0x04bull << 30, 0x06aull << 30, 0x06bull << 30,
-    0x04eull << 30, 0x04full << 30,
-  0x01aull << 30, 0x01bull << 30, 0x03aull << 30, 0x03bull << 30,
-    0x05aull << 30, 0x05bull << 30, 0x07aull << 30, 0x07bull << 30,
-    0x05eull << 30, 0x05full << 30,
-  0x080ull << 30, 0x081ull << 30, 0x082ull << 30, 0x083ull << 30,
-    0x084ull << 30, 0x085ull << 30, 0x086ull << 30, 0x087ull << 30,
-    0x088ull << 30, 0x089ull << 30,
-  0x090ull << 30, 0x091ull << 30, 0x092ull << 30, 0x093ull << 30,
-    0x094ull << 30, 0x095ull << 30, 0x096ull << 30, 0x097ull << 30,
-    0x098ull << 30, 0x099ull << 30,
-  0x0a0ull << 30, 0x0a1ull << 30, 0x0a2ull << 30, 0x0a3ull << 30,
-    0x0a4ull << 30, 0x0a5ull << 30, 0x0a6ull << 30, 0x0a7ull << 30,
-    0x0a8ull << 30, 0x0a9ull << 30,
-  0x0b0ull << 30, 0x0b1ull << 30, 0x0b2ull << 30, 0x0b3ull << 30,
-    0x0b4ull << 30, 0x0b5ull << 30, 0x0b6ull << 30, 0x0b7ull << 30,
-    0x0b8ull << 30, 0x0b9ull << 30,
-  0x0c0ull << 30, 0x0c1ull << 30, 0x0c2ull << 30, 0x0c3ull << 30,
-    0x0c4ull << 30, 0x0c5ull << 30, 0x0c6ull << 30, 0x0c7ull << 30,
-    0x0c8ull << 30, 0x0c9ull << 30,
-  0x0d0ull << 30, 0x0d1ull << 30, 0x0d2ull << 30, 0x0d3ull << 30,
-    0x0d4ull << 30, 0x0d5ull << 30, 0x0d6ull << 30, 0x0d7ull << 30,
-    0x0d8ull << 30, 0x0d9ull << 30,
-  0x0e0ull << 30, 0x0e1ull << 30, 0x0e2ull << 30, 0x0e3ull << 30,
-    0x0e4ull << 30, 0x0e5ull << 30, 0x0e6ull << 30, 0x0e7ull << 30,
-    0x0e8ull << 30, 0x0e9ull << 30,
-  0x0f0ull << 30, 0x0f1ull << 30, 0x0f2ull << 30, 0x0f3ull << 30,
-    0x0f4ull << 30, 0x0f5ull << 30, 0x0f6ull << 30, 0x0f7ull << 30,
-    0x0f8ull << 30, 0x0f9ull << 30,
-  0x08aull << 30, 0x08bull << 30, 0x0aaull << 30, 0x0abull << 30,
-    0x0caull << 30, 0x0cbull << 30, 0x0eaull << 30, 0x0ebull << 30,
-    0x0ceull << 30, 0x0cfull << 30,
-  0x09aull << 30, 0x09bull << 30, 0x0baull << 30, 0x0bbull << 30,
-    0x0daull << 30, 0x0dbull << 30, 0x0faull << 30, 0x0fbull << 30,
-    0x0deull << 30, 0x0dfull << 30,
-  0x100ull << 30, 0x101ull << 30, 0x102ull << 30, 0x103ull << 30,
-    0x104ull << 30, 0x105ull << 30, 0x106ull << 30, 0x107ull << 30,
-    0x108ull << 30, 0x109ull << 30,
-  0x110ull << 30, 0x111ull << 30, 0x112ull << 30, 0x113ull << 30,
-    0x114ull << 30, 0x115ull << 30, 0x116ull << 30, 0x117ull << 30,
-    0x118ull << 30, 0x119ull << 30,
-  0x120ull << 30, 0x121ull << 30, 0x122ull << 30, 0x123ull << 30,
-    0x124ull << 30, 0x125ull << 30, 0x126ull << 30, 0x127ull << 30,
-    0x128ull << 30, 0x129ull << 30,
-  0x130ull << 30, 0x131ull << 30, 0x132ull << 30, 0x133ull << 30,
-    0x134ull << 30, 0x135ull << 30, 0x136ull << 30, 0x137ull << 30,
-    0x138ull << 30, 0x139ull << 30,
-  0x140ull << 30, 0x141ull << 30, 0x142ull << 30, 0x143ull << 30,
-    0x144ull << 30, 0x145ull << 30, 0x146ull << 30, 0x147ull << 30,
-    0x148ull << 30, 0x149ull << 30,
-  0x150ull << 30, 0x151ull << 30, 0x152ull << 30, 0x153ull << 30,
-    0x154ull << 30, 0x155ull << 30, 0x156ull << 30, 0x157ull << 30,
-    0x158ull << 30, 0x159ull << 30,
-  0x160ull << 30, 0x161ull << 30, 0x162ull << 30, 0x163ull << 30,
-    0x164ull << 30, 0x165ull << 30, 0x166ull << 30, 0x167ull << 30,
-    0x168ull << 30, 0x169ull << 30,
-  0x170ull << 30, 0x171ull << 30, 0x172ull << 30, 0x173ull << 30,
-    0x174ull << 30, 0x175ull << 30, 0x176ull << 30, 0x177ull << 30,
-    0x178ull << 30, 0x179ull << 30,
-  0x10aull << 30, 0x10bull << 30, 0x12aull << 30, 0x12bull << 30,
-    0x14aull << 30, 0x14bull << 30, 0x16aull << 30, 0x16bull << 30,
-    0x14eull << 30, 0x14full << 30,
-  0x11aull << 30, 0x11bull << 30, 0x13aull << 30, 0x13bull << 30,
-    0x15aull << 30, 0x15bull << 30, 0x17aull << 30, 0x17bull << 30,
-    0x15eull << 30, 0x15full << 30,
-  0x180ull << 30, 0x181ull << 30, 0x182ull << 30, 0x183ull << 30,
-    0x184ull << 30, 0x185ull << 30, 0x186ull << 30, 0x187ull << 30,
-    0x188ull << 30, 0x189ull << 30,
-  0x190ull << 30, 0x191ull << 30, 0x192ull << 30, 0x193ull << 30,
-    0x194ull << 30, 0x195ull << 30, 0x196ull << 30, 0x197ull << 30,
-    0x198ull << 30, 0x199ull << 30,
-  0x1a0ull << 30, 0x1a1ull << 30, 0x1a2ull << 30, 0x1a3ull << 30,
-    0x1a4ull << 30, 0x1a5ull << 30, 0x1a6ull << 30, 0x1a7ull << 30,
-    0x1a8ull << 30, 0x1a9ull << 30,
-  0x1b0ull << 30, 0x1b1ull << 30, 0x1b2ull << 30, 0x1b3ull << 30,
-    0x1b4ull << 30, 0x1b5ull << 30, 0x1b6ull << 30, 0x1b7ull << 30,
-    0x1b8ull << 30, 0x1b9ull << 30,
-  0x1c0ull << 30, 0x1c1ull << 30, 0x1c2ull << 30, 0x1c3ull << 30,
-    0x1c4ull << 30, 0x1c5ull << 30, 0x1c6ull << 30, 0x1c7ull << 30,
-    0x1c8ull << 30, 0x1c9ull << 30,
-  0x1d0ull << 30, 0x1d1ull << 30, 0x1d2ull << 30, 0x1d3ull << 30,
-    0x1d4ull << 30, 0x1d5ull << 30, 0x1d6ull << 30, 0x1d7ull << 30,
-    0x1d8ull << 30, 0x1d9ull << 30,
-  0x1e0ull << 30, 0x1e1ull << 30, 0x1e2ull << 30, 0x1e3ull << 30,
-    0x1e4ull << 30, 0x1e5ull << 30, 0x1e6ull << 30, 0x1e7ull << 30,
-    0x1e8ull << 30, 0x1e9ull << 30,
-  0x1f0ull << 30, 0x1f1ull << 30, 0x1f2ull << 30, 0x1f3ull << 30,
-    0x1f4ull << 30, 0x1f5ull << 30, 0x1f6ull << 30, 0x1f7ull << 30,
-    0x1f8ull << 30, 0x1f9ull << 30,
-  0x18aull << 30, 0x18bull << 30, 0x1aaull << 30, 0x1abull << 30,
-    0x1caull << 30, 0x1cbull << 30, 0x1eaull << 30, 0x1ebull << 30,
-    0x1ceull << 30, 0x1cfull << 30,
-  0x19aull << 30, 0x19bull << 30, 0x1baull << 30, 0x1bbull << 30,
-    0x1daull << 30, 0x1dbull << 30, 0x1faull << 30, 0x1fbull << 30,
-    0x1deull << 30, 0x1dfull << 30,
-  0x200ull << 30, 0x201ull << 30, 0x202ull << 30, 0x203ull << 30,
-    0x204ull << 30, 0x205ull << 30, 0x206ull << 30, 0x207ull << 30,
-    0x208ull << 30, 0x209ull << 30,
-  0x210ull << 30, 0x211ull << 30, 0x212ull << 30, 0x213ull << 30,
-    0x214ull << 30, 0x215ull << 30, 0x216ull << 30, 0x217ull << 30,
-    0x218ull << 30, 0x219ull << 30,
-  0x220ull << 30, 0x221ull << 30, 0x222ull << 30, 0x223ull << 30,
-    0x224ull << 30, 0x225ull << 30, 0x226ull << 30, 0x227ull << 30,
-    0x228ull << 30, 0x229ull << 30,
-  0x230ull << 30, 0x231ull << 30, 0x232ull << 30, 0x233ull << 30,
-    0x234ull << 30, 0x235ull << 30, 0x236ull << 30, 0x237ull << 30,
-    0x238ull << 30, 0x239ull << 30,
-  0x240ull << 30, 0x241ull << 30, 0x242ull << 30, 0x243ull << 30,
-    0x244ull << 30, 0x245ull << 30, 0x246ull << 30, 0x247ull << 30,
-    0x248ull << 30, 0x249ull << 30,
-  0x250ull << 30, 0x251ull << 30, 0x252ull << 30, 0x253ull << 30,
-    0x254ull << 30, 0x255ull << 30, 0x256ull << 30, 0x257ull << 30,
-    0x258ull << 30, 0x259ull << 30,
-  0x260ull << 30, 0x261ull << 30, 0x262ull << 30, 0x263ull << 30,
-    0x264ull << 30, 0x265ull << 30, 0x266ull << 30, 0x267ull << 30,
-    0x268ull << 30, 0x269ull << 30,
-  0x270ull << 30, 0x271ull << 30, 0x272ull << 30, 0x273ull << 30,
-    0x274ull << 30, 0x275ull << 30, 0x276ull << 30, 0x277ull << 30,
-    0x278ull << 30, 0x279ull << 30,
-  0x20aull << 30, 0x20bull << 30, 0x22aull << 30, 0x22bull << 30,
-    0x24aull << 30, 0x24bull << 30, 0x26aull << 30, 0x26bull << 30,
-    0x24eull << 30, 0x24full << 30,
-  0x21aull << 30, 0x21bull << 30, 0x23aull << 30, 0x23bull << 30,
-    0x25aull << 30, 0x25bull << 30, 0x27aull << 30, 0x27bull << 30,
-    0x25eull << 30, 0x25full << 30,
-  0x280ull << 30, 0x281ull << 30, 0x282ull << 30, 0x283ull << 30,
-    0x284ull << 30, 0x285ull << 30, 0x286ull << 30, 0x287ull << 30,
-    0x288ull << 30, 0x289ull << 30,
-  0x290ull << 30, 0x291ull << 30, 0x292ull << 30, 0x293ull << 30,
-    0x294ull << 30, 0x295ull << 30, 0x296ull << 30, 0x297ull << 30,
-    0x298ull << 30, 0x299ull << 30,
-  0x2a0ull << 30, 0x2a1ull << 30, 0x2a2ull << 30, 0x2a3ull << 30,
-    0x2a4ull << 30, 0x2a5ull << 30, 0x2a6ull << 30, 0x2a7ull << 30,
-    0x2a8ull << 30, 0x2a9ull << 30,
-  0x2b0ull << 30, 0x2b1ull << 30, 0x2b2ull << 30, 0x2b3ull << 30,
-    0x2b4ull << 30, 0x2b5ull << 30, 0x2b6ull << 30, 0x2b7ull << 30,
-    0x2b8ull << 30, 0x2b9ull << 30,
-  0x2c0ull << 30, 0x2c1ull << 30, 0x2c2ull << 30, 0x2c3ull << 30,
-    0x2c4ull << 30, 0x2c5ull << 30, 0x2c6ull << 30, 0x2c7ull << 30,
-    0x2c8ull << 30, 0x2c9ull << 30,
-  0x2d0ull << 30, 0x2d1ull << 30, 0x2d2ull << 30, 0x2d3ull << 30,
-    0x2d4ull << 30, 0x2d5ull << 30, 0x2d6ull << 30, 0x2d7ull << 30,
-    0x2d8ull << 30, 0x2d9ull << 30,
-  0x2e0ull << 30, 0x2e1ull << 30, 0x2e2ull << 30, 0x2e3ull << 30,
-    0x2e4ull << 30, 0x2e5ull << 30, 0x2e6ull << 30, 0x2e7ull << 30,
-    0x2e8ull << 30, 0x2e9ull << 30,
-  0x2f0ull << 30, 0x2f1ull << 30, 0x2f2ull << 30, 0x2f3ull << 30,
-    0x2f4ull << 30, 0x2f5ull << 30, 0x2f6ull << 30, 0x2f7ull << 30,
-    0x2f8ull << 30, 0x2f9ull << 30,
-  0x28aull << 30, 0x28bull << 30, 0x2aaull << 30, 0x2abull << 30,
-    0x2caull << 30, 0x2cbull << 30, 0x2eaull << 30, 0x2ebull << 30,
-    0x2ceull << 30, 0x2cfull << 30,
-  0x29aull << 30, 0x29bull << 30, 0x2baull << 30, 0x2bbull << 30,
-    0x2daull << 30, 0x2dbull << 30, 0x2faull << 30, 0x2fbull << 30,
-    0x2deull << 30, 0x2dfull << 30,
-  0x300ull << 30, 0x301ull << 30, 0x302ull << 30, 0x303ull << 30,
-    0x304ull << 30, 0x305ull << 30, 0x306ull << 30, 0x307ull << 30,
-    0x308ull << 30, 0x309ull << 30,
-  0x310ull << 30, 0x311ull << 30, 0x312ull << 30, 0x313ull << 30,
-    0x314ull << 30, 0x315ull << 30, 0x316ull << 30, 0x317ull << 30,
-    0x318ull << 30, 0x319ull << 30,
-  0x320ull << 30, 0x321ull << 30, 0x322ull << 30, 0x323ull << 30,
-    0x324ull << 30, 0x325ull << 30, 0x326ull << 30, 0x327ull << 30,
-    0x328ull << 30, 0x329ull << 30,
-  0x330ull << 30, 0x331ull << 30, 0x332ull << 30, 0x333ull << 30,
-    0x334ull << 30, 0x335ull << 30, 0x336ull << 30, 0x337ull << 30,
-    0x338ull << 30, 0x339ull << 30,
-  0x340ull << 30, 0x341ull << 30, 0x342ull << 30, 0x343ull << 30,
-    0x344ull << 30, 0x345ull << 30, 0x346ull << 30, 0x347ull << 30,
-    0x348ull << 30, 0x349ull << 30,
-  0x350ull << 30, 0x351ull << 30, 0x352ull << 30, 0x353ull << 30,
-    0x354ull << 30, 0x355ull << 30, 0x356ull << 30, 0x357ull << 30,
-    0x358ull << 30, 0x359ull << 30,
-  0x360ull << 30, 0x361ull << 30, 0x362ull << 30, 0x363ull << 30,
-    0x364ull << 30, 0x365ull << 30, 0x366ull << 30, 0x367ull << 30,
-    0x368ull << 30, 0x369ull << 30,
-  0x370ull << 30, 0x371ull << 30, 0x372ull << 30, 0x373ull << 30,
-    0x374ull << 30, 0x375ull << 30, 0x376ull << 30, 0x377ull << 30,
-    0x378ull << 30, 0x379ull << 30,
-  0x30aull << 30, 0x30bull << 30, 0x32aull << 30, 0x32bull << 30,
-    0x34aull << 30, 0x34bull << 30, 0x36aull << 30, 0x36bull << 30,
-    0x34eull << 30, 0x34full << 30,
-  0x31aull << 30, 0x31bull << 30, 0x33aull << 30, 0x33bull << 30,
-    0x35aull << 30, 0x35bull << 30, 0x37aull << 30, 0x37bull << 30,
-    0x35eull << 30, 0x35full << 30,
-  0x380ull << 30, 0x381ull << 30, 0x382ull << 30, 0x383ull << 30,
-    0x384ull << 30, 0x385ull << 30, 0x386ull << 30, 0x387ull << 30,
-    0x388ull << 30, 0x389ull << 30,
-  0x390ull << 30, 0x391ull << 30, 0x392ull << 30, 0x393ull << 30,
-    0x394ull << 30, 0x395ull << 30, 0x396ull << 30, 0x397ull << 30,
-    0x398ull << 30, 0x399ull << 30,
-  0x3a0ull << 30, 0x3a1ull << 30, 0x3a2ull << 30, 0x3a3ull << 30,
-    0x3a4ull << 30, 0x3a5ull << 30, 0x3a6ull << 30, 0x3a7ull << 30,
-    0x3a8ull << 30, 0x3a9ull << 30,
-  0x3b0ull << 30, 0x3b1ull << 30, 0x3b2ull << 30, 0x3b3ull << 30,
-    0x3b4ull << 30, 0x3b5ull << 30, 0x3b6ull << 30, 0x3b7ull << 30,
-    0x3b8ull << 30, 0x3b9ull << 30,
-  0x3c0ull << 30, 0x3c1ull << 30, 0x3c2ull << 30, 0x3c3ull << 30,
-    0x3c4ull << 30, 0x3c5ull << 30, 0x3c6ull << 30, 0x3c7ull << 30,
-    0x3c8ull << 30, 0x3c9ull << 30,
-  0x3d0ull << 30, 0x3d1ull << 30, 0x3d2ull << 30, 0x3d3ull << 30,
-    0x3d4ull << 30, 0x3d5ull << 30, 0x3d6ull << 30, 0x3d7ull << 30,
-    0x3d8ull << 30, 0x3d9ull << 30,
-  0x3e0ull << 30, 0x3e1ull << 30, 0x3e2ull << 30, 0x3e3ull << 30,
-    0x3e4ull << 30, 0x3e5ull << 30, 0x3e6ull << 30, 0x3e7ull << 30,
-    0x3e8ull << 30, 0x3e9ull << 30,
-  0x3f0ull << 30, 0x3f1ull << 30, 0x3f2ull << 30, 0x3f3ull << 30,
-    0x3f4ull << 30, 0x3f5ull << 30, 0x3f6ull << 30, 0x3f7ull << 30,
-    0x3f8ull << 30, 0x3f9ull << 30,
-  0x38aull << 30, 0x38bull << 30, 0x3aaull << 30, 0x3abull << 30,
-    0x3caull << 30, 0x3cbull << 30, 0x3eaull << 30, 0x3ebull << 30,
-    0x3ceull << 30, 0x3cfull << 30,
-  0x39aull << 30, 0x39bull << 30, 0x3baull << 30, 0x3bbull << 30,
-    0x3daull << 30, 0x3dbull << 30, 0x3faull << 30, 0x3fbull << 30,
-    0x3deull << 30, 0x3dfull << 30,
-  0x00cull << 30, 0x00dull << 30, 0x10cull << 30, 0x10dull << 30,
-    0x20cull << 30, 0x20dull << 30, 0x30cull << 30, 0x30dull << 30,
-    0x02eull << 30, 0x02full << 30,
-  0x01cull << 30, 0x01dull << 30, 0x11cull << 30, 0x11dull << 30,
-    0x21cull << 30, 0x21dull << 30, 0x31cull << 30, 0x31dull << 30,
-    0x03eull << 30, 0x03full << 30,
-  0x02cull << 30, 0x02dull << 30, 0x12cull << 30, 0x12dull << 30,
-    0x22cull << 30, 0x22dull << 30, 0x32cull << 30, 0x32dull << 30,
-    0x12eull << 30, 0x12full << 30,
-  0x03cull << 30, 0x03dull << 30, 0x13cull << 30, 0x13dull << 30,
-    0x23cull << 30, 0x23dull << 30, 0x33cull << 30, 0x33dull << 30,
-    0x13eull << 30, 0x13full << 30,
-  0x04cull << 30, 0x04dull << 30, 0x14cull << 30, 0x14dull << 30,
-    0x24cull << 30, 0x24dull << 30, 0x34cull << 30, 0x34dull << 30,
-    0x22eull << 30, 0x22full << 30,
-  0x05cull << 30, 0x05dull << 30, 0x15cull << 30, 0x15dull << 30,
-    0x25cull << 30, 0x25dull << 30, 0x35cull << 30, 0x35dull << 30,
-    0x23eull << 30, 0x23full << 30,
-  0x06cull << 30, 0x06dull << 30, 0x16cull << 30, 0x16dull << 30,
-    0x26cull << 30, 0x26dull << 30, 0x36cull << 30, 0x36dull << 30,
-    0x32eull << 30, 0x32full << 30,
-  0x07cull << 30, 0x07dull << 30, 0x17cull << 30, 0x17dull << 30,
-    0x27cull << 30, 0x27dull << 30, 0x37cull << 30, 0x37dull << 30,
-    0x33eull << 30, 0x33full << 30,
-  0x00eull << 30, 0x00full << 30, 0x10eull << 30, 0x10full << 30,
-    0x20eull << 30, 0x20full << 30, 0x30eull << 30, 0x30full << 30,
-    0x06eull << 30, 0x06full << 30,
-  0x01eull << 30, 0x01full << 30, 0x11eull << 30, 0x11full << 30,
-    0x21eull << 30, 0x21full << 30, 0x31eull << 30, 0x31full << 30,
-    0x07eull << 30, 0x07full << 30,
-  0x08cull << 30, 0x08dull << 30, 0x18cull << 30, 0x18dull << 30,
-    0x28cull << 30, 0x28dull << 30, 0x38cull << 30, 0x38dull << 30,
-    0x0aeull << 30, 0x0afull << 30,
-  0x09cull << 30, 0x09dull << 30, 0x19cull << 30, 0x19dull << 30,
-    0x29cull << 30, 0x29dull << 30, 0x39cull << 30, 0x39dull << 30,
-    0x0beull << 30, 0x0bfull << 30,
-  0x0acull << 30, 0x0adull << 30, 0x1acull << 30, 0x1adull << 30,
-    0x2acull << 30, 0x2adull << 30, 0x3acull << 30, 0x3adull << 30,
-    0x1aeull << 30, 0x1afull << 30,
-  0x0bcull << 30, 0x0bdull << 30, 0x1bcull << 30, 0x1bdull << 30,
-    0x2bcull << 30, 0x2bdull << 30, 0x3bcull << 30, 0x3bdull << 30,
-    0x1beull << 30, 0x1bfull << 30,
-  0x0ccull << 30, 0x0cdull << 30, 0x1ccull << 30, 0x1cdull << 30,
-    0x2ccull << 30, 0x2cdull << 30, 0x3ccull << 30, 0x3cdull << 30,
-    0x2aeull << 30, 0x2afull << 30,
-  0x0dcull << 30, 0x0ddull << 30, 0x1dcull << 30, 0x1ddull << 30,
-    0x2dcull << 30, 0x2ddull << 30, 0x3dcull << 30, 0x3ddull << 30,
-    0x2beull << 30, 0x2bfull << 30,
-  0x0ecull << 30, 0x0edull << 30, 0x1ecull << 30, 0x1edull << 30,
-    0x2ecull << 30, 0x2edull << 30, 0x3ecull << 30, 0x3edull << 30,
-    0x3aeull << 30, 0x3afull << 30,
-  0x0fcull << 30, 0x0fdull << 30, 0x1fcull << 30, 0x1fdull << 30,
-    0x2fcull << 30, 0x2fdull << 30, 0x3fcull << 30, 0x3fdull << 30,
-    0x3beull << 30, 0x3bfull << 30,
-  0x08eull << 30, 0x08full << 30, 0x18eull << 30, 0x18full << 30,
-    0x28eull << 30, 0x28full << 30, 0x38eull << 30, 0x38full << 30,
-    0x0eeull << 30, 0x0efull << 30,
-  0x09eull << 30, 0x09full << 30, 0x19eull << 30, 0x19full << 30,
-    0x29eull << 30, 0x29full << 30, 0x39eull << 30, 0x39full << 30,
-    0x0feull << 30, 0x0ffull << 30
-};
-
-UINT64 b2d5[] =
-  { 0x000ull << 40, 0x001ull << 40, 0x002ull << 40, 0x003ull << 40,
-0x004ull << 40, 0x005ull << 40, 0x006ull << 40, 0x007ull << 40, 0x008ull << 40,
-0x009ull << 40,
-  0x010ull << 40, 0x011ull << 40, 0x012ull << 40, 0x013ull << 40,
-    0x014ull << 40, 0x015ull << 40, 0x016ull << 40, 0x017ull << 40,
-    0x018ull << 40, 0x019ull << 40,
-  0x020ull << 40, 0x021ull << 40, 0x022ull << 40, 0x023ull << 40,
-    0x024ull << 40, 0x025ull << 40, 0x026ull << 40, 0x027ull << 40,
-    0x028ull << 40, 0x029ull << 40,
-  0x030ull << 40, 0x031ull << 40, 0x032ull << 40, 0x033ull << 40,
-    0x034ull << 40, 0x035ull << 40, 0x036ull << 40, 0x037ull << 40,
-    0x038ull << 40, 0x039ull << 40,
-  0x040ull << 40, 0x041ull << 40, 0x042ull << 40, 0x043ull << 40,
-    0x044ull << 40, 0x045ull << 40, 0x046ull << 40, 0x047ull << 40,
-    0x048ull << 40, 0x049ull << 40,
-  0x050ull << 40, 0x051ull << 40, 0x052ull << 40, 0x053ull << 40,
-    0x054ull << 40, 0x055ull << 40, 0x056ull << 40, 0x057ull << 40,
-    0x058ull << 40, 0x059ull << 40,
-  0x060ull << 40, 0x061ull << 40, 0x062ull << 40, 0x063ull << 40,
-    0x064ull << 40, 0x065ull << 40, 0x066ull << 40, 0x067ull << 40,
-    0x068ull << 40, 0x069ull << 40,
-  0x070ull << 40, 0x071ull << 40, 0x072ull << 40, 0x073ull << 40,
-    0x074ull << 40, 0x075ull << 40, 0x076ull << 40, 0x077ull << 40,
-    0x078ull << 40, 0x079ull << 40,
-  0x00aull << 40, 0x00bull << 40, 0x02aull << 40, 0x02bull << 40,
-    0x04aull << 40, 0x04bull << 40, 0x06aull << 40, 0x06bull << 40,
-    0x04eull << 40, 0x04full << 40,
-  0x01aull << 40, 0x01bull << 40, 0x03aull << 40, 0x03bull << 40,
-    0x05aull << 40, 0x05bull << 40, 0x07aull << 40, 0x07bull << 40,
-    0x05eull << 40, 0x05full << 40,
-  0x080ull << 40, 0x081ull << 40, 0x082ull << 40, 0x083ull << 40,
-    0x084ull << 40, 0x085ull << 40, 0x086ull << 40, 0x087ull << 40,
-    0x088ull << 40, 0x089ull << 40,
-  0x090ull << 40, 0x091ull << 40, 0x092ull << 40, 0x093ull << 40,
-    0x094ull << 40, 0x095ull << 40, 0x096ull << 40, 0x097ull << 40,
-    0x098ull << 40, 0x099ull << 40,
-  0x0a0ull << 40, 0x0a1ull << 40, 0x0a2ull << 40, 0x0a3ull << 40,
-    0x0a4ull << 40, 0x0a5ull << 40, 0x0a6ull << 40, 0x0a7ull << 40,
-    0x0a8ull << 40, 0x0a9ull << 40,
-  0x0b0ull << 40, 0x0b1ull << 40, 0x0b2ull << 40, 0x0b3ull << 40,
-    0x0b4ull << 40, 0x0b5ull << 40, 0x0b6ull << 40, 0x0b7ull << 40,
-    0x0b8ull << 40, 0x0b9ull << 40,
-  0x0c0ull << 40, 0x0c1ull << 40, 0x0c2ull << 40, 0x0c3ull << 40,
-    0x0c4ull << 40, 0x0c5ull << 40, 0x0c6ull << 40, 0x0c7ull << 40,
-    0x0c8ull << 40, 0x0c9ull << 40,
-  0x0d0ull << 40, 0x0d1ull << 40, 0x0d2ull << 40, 0x0d3ull << 40,
-    0x0d4ull << 40, 0x0d5ull << 40, 0x0d6ull << 40, 0x0d7ull << 40,
-    0x0d8ull << 40, 0x0d9ull << 40,
-  0x0e0ull << 40, 0x0e1ull << 40, 0x0e2ull << 40, 0x0e3ull << 40,
-    0x0e4ull << 40, 0x0e5ull << 40, 0x0e6ull << 40, 0x0e7ull << 40,
-    0x0e8ull << 40, 0x0e9ull << 40,
-  0x0f0ull << 40, 0x0f1ull << 40, 0x0f2ull << 40, 0x0f3ull << 40,
-    0x0f4ull << 40, 0x0f5ull << 40, 0x0f6ull << 40, 0x0f7ull << 40,
-    0x0f8ull << 40, 0x0f9ull << 40,
-  0x08aull << 40, 0x08bull << 40, 0x0aaull << 40, 0x0abull << 40,
-    0x0caull << 40, 0x0cbull << 40, 0x0eaull << 40, 0x0ebull << 40,
-    0x0ceull << 40, 0x0cfull << 40,
-  0x09aull << 40, 0x09bull << 40, 0x0baull << 40, 0x0bbull << 40,
-    0x0daull << 40, 0x0dbull << 40, 0x0faull << 40, 0x0fbull << 40,
-    0x0deull << 40, 0x0dfull << 40,
-  0x100ull << 40, 0x101ull << 40, 0x102ull << 40, 0x103ull << 40,
-    0x104ull << 40, 0x105ull << 40, 0x106ull << 40, 0x107ull << 40,
-    0x108ull << 40, 0x109ull << 40,
-  0x110ull << 40, 0x111ull << 40, 0x112ull << 40, 0x113ull << 40,
-    0x114ull << 40, 0x115ull << 40, 0x116ull << 40, 0x117ull << 40,
-    0x118ull << 40, 0x119ull << 40,
-  0x120ull << 40, 0x121ull << 40, 0x122ull << 40, 0x123ull << 40,
-    0x124ull << 40, 0x125ull << 40, 0x126ull << 40, 0x127ull << 40,
-    0x128ull << 40, 0x129ull << 40,
-  0x130ull << 40, 0x131ull << 40, 0x132ull << 40, 0x133ull << 40,
-    0x134ull << 40, 0x135ull << 40, 0x136ull << 40, 0x137ull << 40,
-    0x138ull << 40, 0x139ull << 40,
-  0x140ull << 40, 0x141ull << 40, 0x142ull << 40, 0x143ull << 40,
-    0x144ull << 40, 0x145ull << 40, 0x146ull << 40, 0x147ull << 40,
-    0x148ull << 40, 0x149ull << 40,
-  0x150ull << 40, 0x151ull << 40, 0x152ull << 40, 0x153ull << 40,
-    0x154ull << 40, 0x155ull << 40, 0x156ull << 40, 0x157ull << 40,
-    0x158ull << 40, 0x159ull << 40,
-  0x160ull << 40, 0x161ull << 40, 0x162ull << 40, 0x163ull << 40,
-    0x164ull << 40, 0x165ull << 40, 0x166ull << 40, 0x167ull << 40,
-    0x168ull << 40, 0x169ull << 40,
-  0x170ull << 40, 0x171ull << 40, 0x172ull << 40, 0x173ull << 40,
-    0x174ull << 40, 0x175ull << 40, 0x176ull << 40, 0x177ull << 40,
-    0x178ull << 40, 0x179ull << 40,
-  0x10aull << 40, 0x10bull << 40, 0x12aull << 40, 0x12bull << 40,
-    0x14aull << 40, 0x14bull << 40, 0x16aull << 40, 0x16bull << 40,
-    0x14eull << 40, 0x14full << 40,
-  0x11aull << 40, 0x11bull << 40, 0x13aull << 40, 0x13bull << 40,
-    0x15aull << 40, 0x15bull << 40, 0x17aull << 40, 0x17bull << 40,
-    0x15eull << 40, 0x15full << 40,
-  0x180ull << 40, 0x181ull << 40, 0x182ull << 40, 0x183ull << 40,
-    0x184ull << 40, 0x185ull << 40, 0x186ull << 40, 0x187ull << 40,
-    0x188ull << 40, 0x189ull << 40,
-  0x190ull << 40, 0x191ull << 40, 0x192ull << 40, 0x193ull << 40,
-    0x194ull << 40, 0x195ull << 40, 0x196ull << 40, 0x197ull << 40,
-    0x198ull << 40, 0x199ull << 40,
-  0x1a0ull << 40, 0x1a1ull << 40, 0x1a2ull << 40, 0x1a3ull << 40,
-    0x1a4ull << 40, 0x1a5ull << 40, 0x1a6ull << 40, 0x1a7ull << 40,
-    0x1a8ull << 40, 0x1a9ull << 40,
-  0x1b0ull << 40, 0x1b1ull << 40, 0x1b2ull << 40, 0x1b3ull << 40,
-    0x1b4ull << 40, 0x1b5ull << 40, 0x1b6ull << 40, 0x1b7ull << 40,
-    0x1b8ull << 40, 0x1b9ull << 40,
-  0x1c0ull << 40, 0x1c1ull << 40, 0x1c2ull << 40, 0x1c3ull << 40,
-    0x1c4ull << 40, 0x1c5ull << 40, 0x1c6ull << 40, 0x1c7ull << 40,
-    0x1c8ull << 40, 0x1c9ull << 40,
-  0x1d0ull << 40, 0x1d1ull << 40, 0x1d2ull << 40, 0x1d3ull << 40,
-    0x1d4ull << 40, 0x1d5ull << 40, 0x1d6ull << 40, 0x1d7ull << 40,
-    0x1d8ull << 40, 0x1d9ull << 40,
-  0x1e0ull << 40, 0x1e1ull << 40, 0x1e2ull << 40, 0x1e3ull << 40,
-    0x1e4ull << 40, 0x1e5ull << 40, 0x1e6ull << 40, 0x1e7ull << 40,
-    0x1e8ull << 40, 0x1e9ull << 40,
-  0x1f0ull << 40, 0x1f1ull << 40, 0x1f2ull << 40, 0x1f3ull << 40,
-    0x1f4ull << 40, 0x1f5ull << 40, 0x1f6ull << 40, 0x1f7ull << 40,
-    0x1f8ull << 40, 0x1f9ull << 40,
-  0x18aull << 40, 0x18bull << 40, 0x1aaull << 40, 0x1abull << 40,
-    0x1caull << 40, 0x1cbull << 40, 0x1eaull << 40, 0x1ebull << 40,
-    0x1ceull << 40, 0x1cfull << 40,
-  0x19aull << 40, 0x19bull << 40, 0x1baull << 40, 0x1bbull << 40,
-    0x1daull << 40, 0x1dbull << 40, 0x1faull << 40, 0x1fbull << 40,
-    0x1deull << 40, 0x1dfull << 40,
-  0x200ull << 40, 0x201ull << 40, 0x202ull << 40, 0x203ull << 40,
-    0x204ull << 40, 0x205ull << 40, 0x206ull << 40, 0x207ull << 40,
-    0x208ull << 40, 0x209ull << 40,
-  0x210ull << 40, 0x211ull << 40, 0x212ull << 40, 0x213ull << 40,
-    0x214ull << 40, 0x215ull << 40, 0x216ull << 40, 0x217ull << 40,
-    0x218ull << 40, 0x219ull << 40,
-  0x220ull << 40, 0x221ull << 40, 0x222ull << 40, 0x223ull << 40,
-    0x224ull << 40, 0x225ull << 40, 0x226ull << 40, 0x227ull << 40,
-    0x228ull << 40, 0x229ull << 40,
-  0x230ull << 40, 0x231ull << 40, 0x232ull << 40, 0x233ull << 40,
-    0x234ull << 40, 0x235ull << 40, 0x236ull << 40, 0x237ull << 40,
-    0x238ull << 40, 0x239ull << 40,
-  0x240ull << 40, 0x241ull << 40, 0x242ull << 40, 0x243ull << 40,
-    0x244ull << 40, 0x245ull << 40, 0x246ull << 40, 0x247ull << 40,
-    0x248ull << 40, 0x249ull << 40,
-  0x250ull << 40, 0x251ull << 40, 0x252ull << 40, 0x253ull << 40,
-    0x254ull << 40, 0x255ull << 40, 0x256ull << 40, 0x257ull << 40,
-    0x258ull << 40, 0x259ull << 40,
-  0x260ull << 40, 0x261ull << 40, 0x262ull << 40, 0x263ull << 40,
-    0x264ull << 40, 0x265ull << 40, 0x266ull << 40, 0x267ull << 40,
-    0x268ull << 40, 0x269ull << 40,
-  0x270ull << 40, 0x271ull << 40, 0x272ull << 40, 0x273ull << 40,
-    0x274ull << 40, 0x275ull << 40, 0x276ull << 40, 0x277ull << 40,
-    0x278ull << 40, 0x279ull << 40,
-  0x20aull << 40, 0x20bull << 40, 0x22aull << 40, 0x22bull << 40,
-    0x24aull << 40, 0x24bull << 40, 0x26aull << 40, 0x26bull << 40,
-    0x24eull << 40, 0x24full << 40,
-  0x21aull << 40, 0x21bull << 40, 0x23aull << 40, 0x23bull << 40,
-    0x25aull << 40, 0x25bull << 40, 0x27aull << 40, 0x27bull << 40,
-    0x25eull << 40, 0x25full << 40,
-  0x280ull << 40, 0x281ull << 40, 0x282ull << 40, 0x283ull << 40,
-    0x284ull << 40, 0x285ull << 40, 0x286ull << 40, 0x287ull << 40,
-    0x288ull << 40, 0x289ull << 40,
-  0x290ull << 40, 0x291ull << 40, 0x292ull << 40, 0x293ull << 40,
-    0x294ull << 40, 0x295ull << 40, 0x296ull << 40, 0x297ull << 40,
-    0x298ull << 40, 0x299ull << 40,
-  0x2a0ull << 40, 0x2a1ull << 40, 0x2a2ull << 40, 0x2a3ull << 40,
-    0x2a4ull << 40, 0x2a5ull << 40, 0x2a6ull << 40, 0x2a7ull << 40,
-    0x2a8ull << 40, 0x2a9ull << 40,
-  0x2b0ull << 40, 0x2b1ull << 40, 0x2b2ull << 40, 0x2b3ull << 40,
-    0x2b4ull << 40, 0x2b5ull << 40, 0x2b6ull << 40, 0x2b7ull << 40,
-    0x2b8ull << 40, 0x2b9ull << 40,
-  0x2c0ull << 40, 0x2c1ull << 40, 0x2c2ull << 40, 0x2c3ull << 40,
-    0x2c4ull << 40, 0x2c5ull << 40, 0x2c6ull << 40, 0x2c7ull << 40,
-    0x2c8ull << 40, 0x2c9ull << 40,
-  0x2d0ull << 40, 0x2d1ull << 40, 0x2d2ull << 40, 0x2d3ull << 40,
-    0x2d4ull << 40, 0x2d5ull << 40, 0x2d6ull << 40, 0x2d7ull << 40,
-    0x2d8ull << 40, 0x2d9ull << 40,
-  0x2e0ull << 40, 0x2e1ull << 40, 0x2e2ull << 40, 0x2e3ull << 40,
-    0x2e4ull << 40, 0x2e5ull << 40, 0x2e6ull << 40, 0x2e7ull << 40,
-    0x2e8ull << 40, 0x2e9ull << 40,
-  0x2f0ull << 40, 0x2f1ull << 40, 0x2f2ull << 40, 0x2f3ull << 40,
-    0x2f4ull << 40, 0x2f5ull << 40, 0x2f6ull << 40, 0x2f7ull << 40,
-    0x2f8ull << 40, 0x2f9ull << 40,
-  0x28aull << 40, 0x28bull << 40, 0x2aaull << 40, 0x2abull << 40,
-    0x2caull << 40, 0x2cbull << 40, 0x2eaull << 40, 0x2ebull << 40,
-    0x2ceull << 40, 0x2cfull << 40,
-  0x29aull << 40, 0x29bull << 40, 0x2baull << 40, 0x2bbull << 40,
-    0x2daull << 40, 0x2dbull << 40, 0x2faull << 40, 0x2fbull << 40,
-    0x2deull << 40, 0x2dfull << 40,
-  0x300ull << 40, 0x301ull << 40, 0x302ull << 40, 0x303ull << 40,
-    0x304ull << 40, 0x305ull << 40, 0x306ull << 40, 0x307ull << 40,
-    0x308ull << 40, 0x309ull << 40,
-  0x310ull << 40, 0x311ull << 40, 0x312ull << 40, 0x313ull << 40,
-    0x314ull << 40, 0x315ull << 40, 0x316ull << 40, 0x317ull << 40,
-    0x318ull << 40, 0x319ull << 40,
-  0x320ull << 40, 0x321ull << 40, 0x322ull << 40, 0x323ull << 40,
-    0x324ull << 40, 0x325ull << 40, 0x326ull << 40, 0x327ull << 40,
-    0x328ull << 40, 0x329ull << 40,
-  0x330ull << 40, 0x331ull << 40, 0x332ull << 40, 0x333ull << 40,
-    0x334ull << 40, 0x335ull << 40, 0x336ull << 40, 0x337ull << 40,
-    0x338ull << 40, 0x339ull << 40,
-  0x340ull << 40, 0x341ull << 40, 0x342ull << 40, 0x343ull << 40,
-    0x344ull << 40, 0x345ull << 40, 0x346ull << 40, 0x347ull << 40,
-    0x348ull << 40, 0x349ull << 40,
-  0x350ull << 40, 0x351ull << 40, 0x352ull << 40, 0x353ull << 40,
-    0x354ull << 40, 0x355ull << 40, 0x356ull << 40, 0x357ull << 40,
-    0x358ull << 40, 0x359ull << 40,
-  0x360ull << 40, 0x361ull << 40, 0x362ull << 40, 0x363ull << 40,
-    0x364ull << 40, 0x365ull << 40, 0x366ull << 40, 0x367ull << 40,
-    0x368ull << 40, 0x369ull << 40,
-  0x370ull << 40, 0x371ull << 40, 0x372ull << 40, 0x373ull << 40,
-    0x374ull << 40, 0x375ull << 40, 0x376ull << 40, 0x377ull << 40,
-    0x378ull << 40, 0x379ull << 40,
-  0x30aull << 40, 0x30bull << 40, 0x32aull << 40, 0x32bull << 40,
-    0x34aull << 40, 0x34bull << 40, 0x36aull << 40, 0x36bull << 40,
-    0x34eull << 40, 0x34full << 40,
-  0x31aull << 40, 0x31bull << 40, 0x33aull << 40, 0x33bull << 40,
-    0x35aull << 40, 0x35bull << 40, 0x37aull << 40, 0x37bull << 40,
-    0x35eull << 40, 0x35full << 40,
-  0x380ull << 40, 0x381ull << 40, 0x382ull << 40, 0x383ull << 40,
-    0x384ull << 40, 0x385ull << 40, 0x386ull << 40, 0x387ull << 40,
-    0x388ull << 40, 0x389ull << 40,
-  0x390ull << 40, 0x391ull << 40, 0x392ull << 40, 0x393ull << 40,
-    0x394ull << 40, 0x395ull << 40, 0x396ull << 40, 0x397ull << 40,
-    0x398ull << 40, 0x399ull << 40,
-  0x3a0ull << 40, 0x3a1ull << 40, 0x3a2ull << 40, 0x3a3ull << 40,
-    0x3a4ull << 40, 0x3a5ull << 40, 0x3a6ull << 40, 0x3a7ull << 40,
-    0x3a8ull << 40, 0x3a9ull << 40,
-  0x3b0ull << 40, 0x3b1ull << 40, 0x3b2ull << 40, 0x3b3ull << 40,
-    0x3b4ull << 40, 0x3b5ull << 40, 0x3b6ull << 40, 0x3b7ull << 40,
-    0x3b8ull << 40, 0x3b9ull << 40,
-  0x3c0ull << 40, 0x3c1ull << 40, 0x3c2ull << 40, 0x3c3ull << 40,
-    0x3c4ull << 40, 0x3c5ull << 40, 0x3c6ull << 40, 0x3c7ull << 40,
-    0x3c8ull << 40, 0x3c9ull << 40,
-  0x3d0ull << 40, 0x3d1ull << 40, 0x3d2ull << 40, 0x3d3ull << 40,
-    0x3d4ull << 40, 0x3d5ull << 40, 0x3d6ull << 40, 0x3d7ull << 40,
-    0x3d8ull << 40, 0x3d9ull << 40,
-  0x3e0ull << 40, 0x3e1ull << 40, 0x3e2ull << 40, 0x3e3ull << 40,
-    0x3e4ull << 40, 0x3e5ull << 40, 0x3e6ull << 40, 0x3e7ull << 40,
-    0x3e8ull << 40, 0x3e9ull << 40,
-  0x3f0ull << 40, 0x3f1ull << 40, 0x3f2ull << 40, 0x3f3ull << 40,
-    0x3f4ull << 40, 0x3f5ull << 40, 0x3f6ull << 40, 0x3f7ull << 40,
-    0x3f8ull << 40, 0x3f9ull << 40,
-  0x38aull << 40, 0x38bull << 40, 0x3aaull << 40, 0x3abull << 40,
-    0x3caull << 40, 0x3cbull << 40, 0x3eaull << 40, 0x3ebull << 40,
-    0x3ceull << 40, 0x3cfull << 40,
-  0x39aull << 40, 0x39bull << 40, 0x3baull << 40, 0x3bbull << 40,
-    0x3daull << 40, 0x3dbull << 40, 0x3faull << 40, 0x3fbull << 40,
-    0x3deull << 40, 0x3dfull << 40,
-  0x00cull << 40, 0x00dull << 40, 0x10cull << 40, 0x10dull << 40,
-    0x20cull << 40, 0x20dull << 40, 0x30cull << 40, 0x30dull << 40,
-    0x02eull << 40, 0x02full << 40,
-  0x01cull << 40, 0x01dull << 40, 0x11cull << 40, 0x11dull << 40,
-    0x21cull << 40, 0x21dull << 40, 0x31cull << 40, 0x31dull << 40,
-    0x03eull << 40, 0x03full << 40,
-  0x02cull << 40, 0x02dull << 40, 0x12cull << 40, 0x12dull << 40,
-    0x22cull << 40, 0x22dull << 40, 0x32cull << 40, 0x32dull << 40,
-    0x12eull << 40, 0x12full << 40,
-  0x03cull << 40, 0x03dull << 40, 0x13cull << 40, 0x13dull << 40,
-    0x23cull << 40, 0x23dull << 40, 0x33cull << 40, 0x33dull << 40,
-    0x13eull << 40, 0x13full << 40,
-  0x04cull << 40, 0x04dull << 40, 0x14cull << 40, 0x14dull << 40,
-    0x24cull << 40, 0x24dull << 40, 0x34cull << 40, 0x34dull << 40,
-    0x22eull << 40, 0x22full << 40,
-  0x05cull << 40, 0x05dull << 40, 0x15cull << 40, 0x15dull << 40,
-    0x25cull << 40, 0x25dull << 40, 0x35cull << 40, 0x35dull << 40,
-    0x23eull << 40, 0x23full << 40,
-  0x06cull << 40, 0x06dull << 40, 0x16cull << 40, 0x16dull << 40,
-    0x26cull << 40, 0x26dull << 40, 0x36cull << 40, 0x36dull << 40,
-    0x32eull << 40, 0x32full << 40,
-  0x07cull << 40, 0x07dull << 40, 0x17cull << 40, 0x17dull << 40,
-    0x27cull << 40, 0x27dull << 40, 0x37cull << 40, 0x37dull << 40,
-    0x33eull << 40, 0x33full << 40,
-  0x00eull << 40, 0x00full << 40, 0x10eull << 40, 0x10full << 40,
-    0x20eull << 40, 0x20full << 40, 0x30eull << 40, 0x30full << 40,
-    0x06eull << 40, 0x06full << 40,
-  0x01eull << 40, 0x01full << 40, 0x11eull << 40, 0x11full << 40,
-    0x21eull << 40, 0x21full << 40, 0x31eull << 40, 0x31full << 40,
-    0x07eull << 40, 0x07full << 40,
-  0x08cull << 40, 0x08dull << 40, 0x18cull << 40, 0x18dull << 40,
-    0x28cull << 40, 0x28dull << 40, 0x38cull << 40, 0x38dull << 40,
-    0x0aeull << 40, 0x0afull << 40,
-  0x09cull << 40, 0x09dull << 40, 0x19cull << 40, 0x19dull << 40,
-    0x29cull << 40, 0x29dull << 40, 0x39cull << 40, 0x39dull << 40,
-    0x0beull << 40, 0x0bfull << 40,
-  0x0acull << 40, 0x0adull << 40, 0x1acull << 40, 0x1adull << 40,
-    0x2acull << 40, 0x2adull << 40, 0x3acull << 40, 0x3adull << 40,
-    0x1aeull << 40, 0x1afull << 40,
-  0x0bcull << 40, 0x0bdull << 40, 0x1bcull << 40, 0x1bdull << 40,
-    0x2bcull << 40, 0x2bdull << 40, 0x3bcull << 40, 0x3bdull << 40,
-    0x1beull << 40, 0x1bfull << 40,
-  0x0ccull << 40, 0x0cdull << 40, 0x1ccull << 40, 0x1cdull << 40,
-    0x2ccull << 40, 0x2cdull << 40, 0x3ccull << 40, 0x3cdull << 40,
-    0x2aeull << 40, 0x2afull << 40,
-  0x0dcull << 40, 0x0ddull << 40, 0x1dcull << 40, 0x1ddull << 40,
-    0x2dcull << 40, 0x2ddull << 40, 0x3dcull << 40, 0x3ddull << 40,
-    0x2beull << 40, 0x2bfull << 40,
-  0x0ecull << 40, 0x0edull << 40, 0x1ecull << 40, 0x1edull << 40,
-    0x2ecull << 40, 0x2edull << 40, 0x3ecull << 40, 0x3edull << 40,
-    0x3aeull << 40, 0x3afull << 40,
-  0x0fcull << 40, 0x0fdull << 40, 0x1fcull << 40, 0x1fdull << 40,
-    0x2fcull << 40, 0x2fdull << 40, 0x3fcull << 40, 0x3fdull << 40,
-    0x3beull << 40, 0x3bfull << 40,
-  0x08eull << 40, 0x08full << 40, 0x18eull << 40, 0x18full << 40,
-    0x28eull << 40, 0x28full << 40, 0x38eull << 40, 0x38full << 40,
-    0x0eeull << 40, 0x0efull << 40,
-  0x09eull << 40, 0x09full << 40, 0x19eull << 40, 0x19full << 40,
-    0x29eull << 40, 0x29full << 40, 0x39eull << 40, 0x39full << 40,
-    0x0feull << 40, 0x0ffull << 40
-};
index f667685..8f41306 100644 (file)
@@ -28,1192 +28,1378 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 
 #include "bid_internal.h"
 
-// the first entry of __bid_nr_digits[i - 1] (where 1 <= i <= 113), indicates 
+// the first entry of nr_digits[i - 1] (where 1 <= i <= 113), indicates 
 // the number of decimal digits needed to represent a binary number with i bits;
 // however, if a binary number of i bits may require either k or k + 1 decimal
-// digits, then the first entry of __bid_nr_digits[i - 1] is 0; in this case if the
+// digits, then the first entry of nr_digits[i - 1] is 0; in this case if the
 // number is less than the value represented by the second and third entries
 // concatenated, then the number of decimal digits k is the fourth entry, else
 // the number of decimal digits is the fourth entry plus 1
-DEC_DIGITS __bid_nr_digits[] = {        // only the first entry is used if it is not 0
-  { 1, 0x0000000000000000ULL, 0x000000000000000aULL, 1}
-  ,        //   1-bit n < 10^1
-  { 1, 0x0000000000000000ULL, 0x000000000000000aULL, 1}
-  ,        //   2-bit n < 10^1
-  { 1, 0x0000000000000000ULL, 0x000000000000000aULL, 1}
-  ,        //   3-bit n < 10^1
-  { 0, 0x0000000000000000ULL, 0x000000000000000aULL, 1}
-  ,        //   4-bit n ? 10^1
-  { 2, 0x0000000000000000ULL, 0x0000000000000064ULL, 2}
-  ,        //   5-bit n < 10^2
-  { 2, 0x0000000000000000ULL, 0x0000000000000064ULL, 2}
-  ,        //   6-bit n < 10^2
-  { 0, 0x0000000000000000ULL, 0x0000000000000064ULL, 2}
-  ,        //   7-bit n ? 10^2
-  { 3, 0x0000000000000000ULL, 0x00000000000003e8ULL, 3}
-  ,        //   8-bit n < 10^3
-  { 3, 0x0000000000000000ULL, 0x00000000000003e8ULL, 3}
-  ,        //   9-bit n < 10^3
-  { 0, 0x0000000000000000ULL, 0x00000000000003e8ULL, 3}
-  ,        //  10-bit n ? 10^3
-  { 4, 0x0000000000000000ULL, 0x0000000000002710ULL, 4}
-  ,        //  11-bit n < 10^4
-  { 4, 0x0000000000000000ULL, 0x0000000000002710ULL, 4}
-  ,        //  12-bit n < 10^4
-  { 4, 0x0000000000000000ULL, 0x0000000000002710ULL, 4}
-  ,        //  13-bit n < 10^4
-  { 0, 0x0000000000000000ULL, 0x0000000000002710ULL, 4}
-  ,        //  14-bit n ? 10^4
-  { 5, 0x0000000000000000ULL, 0x00000000000186a0ULL, 5}
-  ,        //  15-bit n < 10^5
-  { 5, 0x0000000000000000ULL, 0x00000000000186a0ULL, 5}
-  ,        //  16-bit n < 10^5
-  { 0, 0x0000000000000000ULL, 0x00000000000186a0ULL, 5}
-  ,        //  17-bit n ? 10^5
-  { 6, 0x0000000000000000ULL, 0x00000000000f4240ULL, 6}
-  ,        //  18-bit n < 10^6
-  { 6, 0x0000000000000000ULL, 0x00000000000f4240ULL, 6}
-  ,        //  19-bit n < 10^6
-  { 0, 0x0000000000000000ULL, 0x00000000000f4240ULL, 6}
-  ,        //  20-bit n ? 10^6
-  { 7, 0x0000000000000000ULL, 0x0000000000989680ULL, 7}
-  ,        //  21-bit n < 10^7
-  { 7, 0x0000000000000000ULL, 0x0000000000989680ULL, 7}
-  ,        //  22-bit n < 10^7
-  { 7, 0x0000000000000000ULL, 0x0000000000989680ULL, 7}
-  ,        //  23-bit n < 10^7
-  { 0, 0x0000000000000000ULL, 0x0000000000989680ULL, 7}
-  ,        //  24-bit n ? 10^7
-  { 8, 0x0000000000000000ULL, 0x0000000005f5e100ULL, 8}
-  ,        //  25-bit n < 10^8
-  { 8, 0x0000000000000000ULL, 0x0000000005f5e100ULL, 8}
-  ,        //  26-bit n < 10^8
-  { 0, 0x0000000000000000ULL, 0x0000000005f5e100ULL, 8}
-  ,        //  27-bit n ? 10^8
-  { 9, 0x0000000000000000ULL, 0x000000003b9aca00ULL, 9}
-  ,        //  28-bit n < 10^9
-  { 9, 0x0000000000000000ULL, 0x000000003b9aca00ULL, 9}
-  ,        //  29-bit n < 10^9
-  { 0, 0x0000000000000000ULL, 0x000000003b9aca00ULL, 9}
-  ,        //  30-bit n ? 10^9
-  { 10, 0x0000000000000000ULL, 0x00000002540be400ULL, 10}
-  ,        //  31-bit n < 10^10
-  { 10, 0x0000000000000000ULL, 0x00000002540be400ULL, 10}
-  ,        //  32-bit n < 10^10
-  { 10, 0x0000000000000000ULL, 0x00000002540be400ULL, 10}
-  ,        //  33-bit n < 10^10
-  { 0, 0x0000000000000000ULL, 0x00000002540be400ULL, 10}
-  ,        //  34-bit n ? 10^10
-  { 11, 0x0000000000000000ULL, 0x000000174876e800ULL, 11}
-  ,        //  35-bit n < 10^11
-  { 11, 0x0000000000000000ULL, 0x000000174876e800ULL, 11}
-  ,        //  36-bit n < 10^11
-  { 0, 0x0000000000000000ULL, 0x000000174876e800ULL, 11}
-  ,        //  37-bit n ? 10^11
-  { 12, 0x0000000000000000ULL, 0x000000e8d4a51000ULL, 12}
-  ,        //  38-bit n < 10^12
-  { 12, 0x0000000000000000ULL, 0x000000e8d4a51000ULL, 12}
-  ,        //  39-bit n < 10^12
-  { 0, 0x0000000000000000ULL, 0x000000e8d4a51000ULL, 12}
-  ,        //  40-bit n ? 10^12
-  { 13, 0x0000000000000000ULL, 0x000009184e72a000ULL, 13}
-  ,        //  41-bit n < 10^13
-  { 13, 0x0000000000000000ULL, 0x000009184e72a000ULL, 13}
-  ,        //  42-bit n < 10^13
-  { 13, 0x0000000000000000ULL, 0x000009184e72a000ULL, 13}
-  ,        //  43-bit n < 10^13
-  { 0, 0x0000000000000000ULL, 0x000009184e72a000ULL, 13}
-  ,        //  44-bit n ? 10^13
-  { 14, 0x0000000000000000ULL, 0x00005af3107a4000ULL, 14}
-  ,        //  45-bit n < 10^14
-  { 14, 0x0000000000000000ULL, 0x00005af3107a4000ULL, 14}
-  ,        //  46-bit n < 10^14
-  { 0, 0x0000000000000000ULL, 0x00005af3107a4000ULL, 14}
-  ,        //  47-bit n ? 10^14
-  { 15, 0x0000000000000000ULL, 0x00038d7ea4c68000ULL, 15}
-  ,        //  48-bit n < 10^15
-  { 15, 0x0000000000000000ULL, 0x00038d7ea4c68000ULL, 15}
-  ,        //  49-bit n < 10^15
-  { 0, 0x0000000000000000ULL, 0x00038d7ea4c68000ULL, 15}
-  ,        //  50-bit n ? 10^15
-  { 16, 0x0000000000000000ULL, 0x002386f26fc10000ULL, 16}
-  ,        //  51-bit n < 10^16
-  { 16, 0x0000000000000000ULL, 0x002386f26fc10000ULL, 16}
-  ,        //  52-bit n < 10^16
-  { 16, 0x0000000000000000ULL, 0x002386f26fc10000ULL, 16}
-  ,        //  53-bit n < 10^16
-  { 0, 0x0000000000000000ULL, 0x002386f26fc10000ULL, 16}
-  ,        //  54-bit n ? 10^16
-  { 17, 0x0000000000000000ULL, 0x016345785d8a0000ULL, 17}
-  ,        //  55-bit n < 10^17
-  { 17, 0x0000000000000000ULL, 0x016345785d8a0000ULL, 17}
-  ,        //  56-bit n < 10^17
-  { 0, 0x0000000000000000ULL, 0x016345785d8a0000ULL, 17}
-  ,        //  57-bit n ? 10^17
-  { 18, 0x0000000000000000ULL, 0x0de0b6b3a7640000ULL, 18}
-  ,        //  58-bit n < 10^18
-  { 18, 0x0000000000000000ULL, 0x0de0b6b3a7640000ULL, 18}
-  ,        //  59-bit n < 10^18
-  { 0, 0x0000000000000000ULL, 0x0de0b6b3a7640000ULL, 18}
-  ,        //  60-bit n ? 10^18
-  { 19, 0x0000000000000000ULL, 0x8ac7230489e80000ULL, 19}
-  ,        //  61-bit n < 10^19
-  { 19, 0x0000000000000000ULL, 0x8ac7230489e80000ULL, 19}
-  ,        //  62-bit n < 10^19
-  { 19, 0x0000000000000000ULL, 0x8ac7230489e80000ULL, 19}
-  ,        //  63-bit n < 10^19
-  { 0, 0x0000000000000000ULL, 0x8ac7230489e80000ULL, 19}
-  ,        //  64-bit n ? 10^19
-  { 20, 0x0000000000000005ULL, 0x6bc75e2d63100000ULL, 20}
-  ,        //  65-bit n < 10^20
-  { 20, 0x0000000000000005ULL, 0x6bc75e2d63100000ULL, 20}
-  ,        //  66-bit n < 10^20
-  { 0, 0x0000000000000005ULL, 0x6bc75e2d63100000ULL, 20}
-  ,        //  67-bit n ? 10^20
-  { 21, 0x0000000000000036ULL, 0x35c9adc5dea00000ULL, 21}
-  ,        //  68-bit n < 10^21
-  { 21, 0x0000000000000036ULL, 0x35c9adc5dea00000ULL, 21}
-  ,        //  69-bit n < 10^21
-  { 0, 0x0000000000000036ULL, 0x35c9adc5dea00000ULL, 21}
-  ,        //  70-bit n ? 10^21
-  { 22, 0x000000000000021eULL, 0x19e0c9bab2400000ULL, 22}
-  ,        //  71-bit n < 10^22
-  { 22, 0x000000000000021eULL, 0x19e0c9bab2400000ULL, 22}
-  ,        //  72-bit n < 10^22
-  { 22, 0x000000000000021eULL, 0x19e0c9bab2400000ULL, 22}
-  ,        //  73-bit n < 10^22
-  { 0, 0x000000000000021eULL, 0x19e0c9bab2400000ULL, 22}
-  ,        //  74-bit n ? 10^22
-  { 23, 0x000000000000152dULL, 0x02c7e14af6800000ULL, 23}
-  ,        //  75-bit n < 10^23
-  { 23, 0x000000000000152dULL, 0x02c7e14af6800000ULL, 23}
-  ,        //  76-bit n < 10^23
-  { 0, 0x000000000000152dULL, 0x02c7e14af6800000ULL, 23}
-  ,        //  77-bit n ? 10^23
-  { 24, 0x000000000000d3c2ULL, 0x1bcecceda1000000ULL, 24}
-  ,        //  78-bit n < 10^24
-  { 24, 0x000000000000d3c2ULL, 0x1bcecceda1000000ULL, 24}
-  ,        //  79-bit n < 10^24
-  { 0, 0x000000000000d3c2ULL, 0x1bcecceda1000000ULL, 24}
-  ,        //  80-bit n ? 10^24
-  { 25, 0x0000000000084595ULL, 0x161401484a000000ULL, 25}
-  ,        //  81-bit n < 10^25
-  { 25, 0x0000000000084595ULL, 0x161401484a000000ULL, 25}
-  ,        //  82-bit n < 10^25
-  { 25, 0x0000000000084595ULL, 0x161401484a000000ULL, 25}
-  ,        //  83-bit n < 10^25
-  { 0, 0x0000000000084595ULL, 0x161401484a000000ULL, 25}
-  ,        //  84-bit n ? 10^25
-  { 26, 0x000000000052b7d2ULL, 0xdcc80cd2e4000000ULL, 26}
-  ,        //  85-bit n < 10^26
-  { 26, 0x000000000052b7d2ULL, 0xdcc80cd2e4000000ULL, 26}
-  ,        //  86-bit n < 10^26
-  { 0, 0x000000000052b7d2ULL, 0xdcc80cd2e4000000ULL, 26}
-  ,        //  87-bit n ? 10^26
-  { 27, 0x00000000033b2e3cULL, 0x9fd0803ce8000000ULL, 27}
-  ,        //  88-bit n < 10^27
-  { 27, 0x00000000033b2e3cULL, 0x9fd0803ce8000000ULL, 27}
-  ,        //  89-bit n < 10^27
-  { 0, 0x00000000033b2e3cULL, 0x9fd0803ce8000000ULL, 27}
-  ,        //  90-bit n ? 10^27
-  { 28, 0x00000000204fce5eULL, 0x3e25026110000000ULL, 28}
-  ,        //  91-bit n < 10^28
-  { 28, 0x00000000204fce5eULL, 0x3e25026110000000ULL, 28}
-  ,        //  92-bit n < 10^28
-  { 28, 0x00000000204fce5eULL, 0x3e25026110000000ULL, 28}
-  ,        //  93-bit n < 10^28
-  { 0, 0x00000000204fce5eULL, 0x3e25026110000000ULL, 28}
-  ,        //  94-bit n ? 10^28
-  { 29, 0x00000001431e0faeULL, 0x6d7217caa0000000ULL, 29}
-  ,        //  95-bit n < 10^29
-  { 29, 0x00000001431e0faeULL, 0x6d7217caa0000000ULL, 29}
-  ,        //  96-bit n < 10^29
-  { 0, 0x00000001431e0faeULL, 0x6d7217caa0000000ULL, 29}
-  ,        //  97-bit n ? 10^29
-  { 30, 0x0000000c9f2c9cd0ULL, 0x4674edea40000000ULL, 30}
-  ,        //  98-bit n < 10^30
-  { 30, 0x0000000c9f2c9cd0ULL, 0x4674edea40000000ULL, 30}
-  ,        //  99-bit n < 10^30
-  { 0, 0x0000000c9f2c9cd0ULL, 0x4674edea40000000ULL, 30}
-  ,        // 100-bit n ? 10^30
-  { 31, 0x0000007e37be2022ULL, 0xc0914b2680000000ULL, 31}
-  ,        // 101-bit n < 10^31
-  { 31, 0x0000007e37be2022ULL, 0xc0914b2680000000ULL, 31}
-  ,        // 102-bit n < 10^31
-  { 0, 0x0000007e37be2022ULL, 0xc0914b2680000000ULL, 31}
-  ,        // 103-bit n ? 10^31
-  { 32, 0x000004ee2d6d415bULL, 0x85acef8100000000ULL, 32}
-  ,        // 104-bit n < 10^32
-  { 32, 0x000004ee2d6d415bULL, 0x85acef8100000000ULL, 32}
-  ,        // 105-bit n < 10^32
-  { 32, 0x000004ee2d6d415bULL, 0x85acef8100000000ULL, 32}
-  ,        // 106-bit n < 10^32
-  { 0, 0x000004ee2d6d415bULL, 0x85acef8100000000ULL, 32}
-  ,        // 107-bit n ? 10^32
-  { 33, 0x0000314dc6448d93ULL, 0x38c15b0a00000000ULL, 33}
-  ,        // 108-bit n < 10^33
-  { 33, 0x0000314dc6448d93ULL, 0x38c15b0a00000000ULL, 33}
-  ,        // 109-bit n < 10^33
-  { 0, 0x0000314dc6448d93ULL, 0x38c15b0a00000000ULL, 33}
-  ,        // 100-bit n ? 10^33
-  { 34, 0x0001ed09bead87c0ULL, 0x378d8e6400000000ULL, 34}
-  ,        // 111-bit n < 10^34
-  { 34, 0x0001ed09bead87c0ULL, 0x378d8e6400000000ULL, 34}
-  ,        // 112-bit n < 10^34
-  { 0, 0x0001ed09bead87c0ULL, 0x378d8e6400000000ULL, 34}        // 113-bit n ? 10^34
+DEC_DIGITS nr_digits[] = {     // only the first entry is used if it is not 0
+  {1, 0x0000000000000000ULL, 0x000000000000000aULL, 1}
+  ,    //   1-bit n < 10^1
+  {1, 0x0000000000000000ULL, 0x000000000000000aULL, 1}
+  ,    //   2-bit n < 10^1
+  {1, 0x0000000000000000ULL, 0x000000000000000aULL, 1}
+  ,    //   3-bit n < 10^1
+  {0, 0x0000000000000000ULL, 0x000000000000000aULL, 1}
+  ,    //   4-bit n ? 10^1
+  {2, 0x0000000000000000ULL, 0x0000000000000064ULL, 2}
+  ,    //   5-bit n < 10^2
+  {2, 0x0000000000000000ULL, 0x0000000000000064ULL, 2}
+  ,    //   6-bit n < 10^2
+  {0, 0x0000000000000000ULL, 0x0000000000000064ULL, 2}
+  ,    //   7-bit n ? 10^2
+  {3, 0x0000000000000000ULL, 0x00000000000003e8ULL, 3}
+  ,    //   8-bit n < 10^3
+  {3, 0x0000000000000000ULL, 0x00000000000003e8ULL, 3}
+  ,    //   9-bit n < 10^3
+  {0, 0x0000000000000000ULL, 0x00000000000003e8ULL, 3}
+  ,    //  10-bit n ? 10^3
+  {4, 0x0000000000000000ULL, 0x0000000000002710ULL, 4}
+  ,    //  11-bit n < 10^4
+  {4, 0x0000000000000000ULL, 0x0000000000002710ULL, 4}
+  ,    //  12-bit n < 10^4
+  {4, 0x0000000000000000ULL, 0x0000000000002710ULL, 4}
+  ,    //  13-bit n < 10^4
+  {0, 0x0000000000000000ULL, 0x0000000000002710ULL, 4}
+  ,    //  14-bit n ? 10^4
+  {5, 0x0000000000000000ULL, 0x00000000000186a0ULL, 5}
+  ,    //  15-bit n < 10^5
+  {5, 0x0000000000000000ULL, 0x00000000000186a0ULL, 5}
+  ,    //  16-bit n < 10^5
+  {0, 0x0000000000000000ULL, 0x00000000000186a0ULL, 5}
+  ,    //  17-bit n ? 10^5
+  {6, 0x0000000000000000ULL, 0x00000000000f4240ULL, 6}
+  ,    //  18-bit n < 10^6
+  {6, 0x0000000000000000ULL, 0x00000000000f4240ULL, 6}
+  ,    //  19-bit n < 10^6
+  {0, 0x0000000000000000ULL, 0x00000000000f4240ULL, 6}
+  ,    //  20-bit n ? 10^6
+  {7, 0x0000000000000000ULL, 0x0000000000989680ULL, 7}
+  ,    //  21-bit n < 10^7
+  {7, 0x0000000000000000ULL, 0x0000000000989680ULL, 7}
+  ,    //  22-bit n < 10^7
+  {7, 0x0000000000000000ULL, 0x0000000000989680ULL, 7}
+  ,    //  23-bit n < 10^7
+  {0, 0x0000000000000000ULL, 0x0000000000989680ULL, 7}
+  ,    //  24-bit n ? 10^7
+  {8, 0x0000000000000000ULL, 0x0000000005f5e100ULL, 8}
+  ,    //  25-bit n < 10^8
+  {8, 0x0000000000000000ULL, 0x0000000005f5e100ULL, 8}
+  ,    //  26-bit n < 10^8
+  {0, 0x0000000000000000ULL, 0x0000000005f5e100ULL, 8}
+  ,    //  27-bit n ? 10^8
+  {9, 0x0000000000000000ULL, 0x000000003b9aca00ULL, 9}
+  ,    //  28-bit n < 10^9
+  {9, 0x0000000000000000ULL, 0x000000003b9aca00ULL, 9}
+  ,    //  29-bit n < 10^9
+  {0, 0x0000000000000000ULL, 0x000000003b9aca00ULL, 9}
+  ,    //  30-bit n ? 10^9
+  {10, 0x0000000000000000ULL, 0x00000002540be400ULL, 10}
+  ,    //  31-bit n < 10^10
+  {10, 0x0000000000000000ULL, 0x00000002540be400ULL, 10}
+  ,    //  32-bit n < 10^10
+  {10, 0x0000000000000000ULL, 0x00000002540be400ULL, 10}
+  ,    //  33-bit n < 10^10
+  {0, 0x0000000000000000ULL, 0x00000002540be400ULL, 10}
+  ,    //  34-bit n ? 10^10
+  {11, 0x0000000000000000ULL, 0x000000174876e800ULL, 11}
+  ,    //  35-bit n < 10^11
+  {11, 0x0000000000000000ULL, 0x000000174876e800ULL, 11}
+  ,    //  36-bit n < 10^11
+  {0, 0x0000000000000000ULL, 0x000000174876e800ULL, 11}
+  ,    //  37-bit n ? 10^11
+  {12, 0x0000000000000000ULL, 0x000000e8d4a51000ULL, 12}
+  ,    //  38-bit n < 10^12
+  {12, 0x0000000000000000ULL, 0x000000e8d4a51000ULL, 12}
+  ,    //  39-bit n < 10^12
+  {0, 0x0000000000000000ULL, 0x000000e8d4a51000ULL, 12}
+  ,    //  40-bit n ? 10^12
+  {13, 0x0000000000000000ULL, 0x000009184e72a000ULL, 13}
+  ,    //  41-bit n < 10^13
+  {13, 0x0000000000000000ULL, 0x000009184e72a000ULL, 13}
+  ,    //  42-bit n < 10^13
+  {13, 0x0000000000000000ULL, 0x000009184e72a000ULL, 13}
+  ,    //  43-bit n < 10^13
+  {0, 0x0000000000000000ULL, 0x000009184e72a000ULL, 13}
+  ,    //  44-bit n ? 10^13
+  {14, 0x0000000000000000ULL, 0x00005af3107a4000ULL, 14}
+  ,    //  45-bit n < 10^14
+  {14, 0x0000000000000000ULL, 0x00005af3107a4000ULL, 14}
+  ,    //  46-bit n < 10^14
+  {0, 0x0000000000000000ULL, 0x00005af3107a4000ULL, 14}
+  ,    //  47-bit n ? 10^14
+  {15, 0x0000000000000000ULL, 0x00038d7ea4c68000ULL, 15}
+  ,    //  48-bit n < 10^15
+  {15, 0x0000000000000000ULL, 0x00038d7ea4c68000ULL, 15}
+  ,    //  49-bit n < 10^15
+  {0, 0x0000000000000000ULL, 0x00038d7ea4c68000ULL, 15}
+  ,    //  50-bit n ? 10^15
+  {16, 0x0000000000000000ULL, 0x002386f26fc10000ULL, 16}
+  ,    //  51-bit n < 10^16
+  {16, 0x0000000000000000ULL, 0x002386f26fc10000ULL, 16}
+  ,    //  52-bit n < 10^16
+  {16, 0x0000000000000000ULL, 0x002386f26fc10000ULL, 16}
+  ,    //  53-bit n < 10^16
+  {0, 0x0000000000000000ULL, 0x002386f26fc10000ULL, 16}
+  ,    //  54-bit n ? 10^16
+  {17, 0x0000000000000000ULL, 0x016345785d8a0000ULL, 17}
+  ,    //  55-bit n < 10^17
+  {17, 0x0000000000000000ULL, 0x016345785d8a0000ULL, 17}
+  ,    //  56-bit n < 10^17
+  {0, 0x0000000000000000ULL, 0x016345785d8a0000ULL, 17}
+  ,    //  57-bit n ? 10^17
+  {18, 0x0000000000000000ULL, 0x0de0b6b3a7640000ULL, 18}
+  ,    //  58-bit n < 10^18
+  {18, 0x0000000000000000ULL, 0x0de0b6b3a7640000ULL, 18}
+  ,    //  59-bit n < 10^18
+  {0, 0x0000000000000000ULL, 0x0de0b6b3a7640000ULL, 18}
+  ,    //  60-bit n ? 10^18
+  {19, 0x0000000000000000ULL, 0x8ac7230489e80000ULL, 19}
+  ,    //  61-bit n < 10^19
+  {19, 0x0000000000000000ULL, 0x8ac7230489e80000ULL, 19}
+  ,    //  62-bit n < 10^19
+  {19, 0x0000000000000000ULL, 0x8ac7230489e80000ULL, 19}
+  ,    //  63-bit n < 10^19
+  {0, 0x0000000000000000ULL, 0x8ac7230489e80000ULL, 19}
+  ,    //  64-bit n ? 10^19
+  {20, 0x0000000000000005ULL, 0x6bc75e2d63100000ULL, 20}
+  ,    //  65-bit n < 10^20
+  {20, 0x0000000000000005ULL, 0x6bc75e2d63100000ULL, 20}
+  ,    //  66-bit n < 10^20
+  {0, 0x0000000000000005ULL, 0x6bc75e2d63100000ULL, 20}
+  ,    //  67-bit n ? 10^20
+  {21, 0x0000000000000036ULL, 0x35c9adc5dea00000ULL, 21}
+  ,    //  68-bit n < 10^21
+  {21, 0x0000000000000036ULL, 0x35c9adc5dea00000ULL, 21}
+  ,    //  69-bit n < 10^21
+  {0, 0x0000000000000036ULL, 0x35c9adc5dea00000ULL, 21}
+  ,    //  70-bit n ? 10^21
+  {22, 0x000000000000021eULL, 0x19e0c9bab2400000ULL, 22}
+  ,    //  71-bit n < 10^22
+  {22, 0x000000000000021eULL, 0x19e0c9bab2400000ULL, 22}
+  ,    //  72-bit n < 10^22
+  {22, 0x000000000000021eULL, 0x19e0c9bab2400000ULL, 22}
+  ,    //  73-bit n < 10^22
+  {0, 0x000000000000021eULL, 0x19e0c9bab2400000ULL, 22}
+  ,    //  74-bit n ? 10^22
+  {23, 0x000000000000152dULL, 0x02c7e14af6800000ULL, 23}
+  ,    //  75-bit n < 10^23
+  {23, 0x000000000000152dULL, 0x02c7e14af6800000ULL, 23}
+  ,    //  76-bit n < 10^23
+  {0, 0x000000000000152dULL, 0x02c7e14af6800000ULL, 23}
+  ,    //  77-bit n ? 10^23
+  {24, 0x000000000000d3c2ULL, 0x1bcecceda1000000ULL, 24}
+  ,    //  78-bit n < 10^24
+  {24, 0x000000000000d3c2ULL, 0x1bcecceda1000000ULL, 24}
+  ,    //  79-bit n < 10^24
+  {0, 0x000000000000d3c2ULL, 0x1bcecceda1000000ULL, 24}
+  ,    //  80-bit n ? 10^24
+  {25, 0x0000000000084595ULL, 0x161401484a000000ULL, 25}
+  ,    //  81-bit n < 10^25
+  {25, 0x0000000000084595ULL, 0x161401484a000000ULL, 25}
+  ,    //  82-bit n < 10^25
+  {25, 0x0000000000084595ULL, 0x161401484a000000ULL, 25}
+  ,    //  83-bit n < 10^25
+  {0, 0x0000000000084595ULL, 0x161401484a000000ULL, 25}
+  ,    //  84-bit n ? 10^25
+  {26, 0x000000000052b7d2ULL, 0xdcc80cd2e4000000ULL, 26}
+  ,    //  85-bit n < 10^26
+  {26, 0x000000000052b7d2ULL, 0xdcc80cd2e4000000ULL, 26}
+  ,    //  86-bit n < 10^26
+  {0, 0x000000000052b7d2ULL, 0xdcc80cd2e4000000ULL, 26}
+  ,    //  87-bit n ? 10^26
+  {27, 0x00000000033b2e3cULL, 0x9fd0803ce8000000ULL, 27}
+  ,    //  88-bit n < 10^27
+  {27, 0x00000000033b2e3cULL, 0x9fd0803ce8000000ULL, 27}
+  ,    //  89-bit n < 10^27
+  {0, 0x00000000033b2e3cULL, 0x9fd0803ce8000000ULL, 27}
+  ,    //  90-bit n ? 10^27
+  {28, 0x00000000204fce5eULL, 0x3e25026110000000ULL, 28}
+  ,    //  91-bit n < 10^28
+  {28, 0x00000000204fce5eULL, 0x3e25026110000000ULL, 28}
+  ,    //  92-bit n < 10^28
+  {28, 0x00000000204fce5eULL, 0x3e25026110000000ULL, 28}
+  ,    //  93-bit n < 10^28
+  {0, 0x00000000204fce5eULL, 0x3e25026110000000ULL, 28}
+  ,    //  94-bit n ? 10^28
+  {29, 0x00000001431e0faeULL, 0x6d7217caa0000000ULL, 29}
+  ,    //  95-bit n < 10^29
+  {29, 0x00000001431e0faeULL, 0x6d7217caa0000000ULL, 29}
+  ,    //  96-bit n < 10^29
+  {0, 0x00000001431e0faeULL, 0x6d7217caa0000000ULL, 29}
+  ,    //  97-bit n ? 10^29
+  {30, 0x0000000c9f2c9cd0ULL, 0x4674edea40000000ULL, 30}
+  ,    //  98-bit n < 10^30
+  {30, 0x0000000c9f2c9cd0ULL, 0x4674edea40000000ULL, 30}
+  ,    //  99-bit n < 10^30
+  {0, 0x0000000c9f2c9cd0ULL, 0x4674edea40000000ULL, 30}
+  ,    // 100-bit n ? 10^30
+  {31, 0x0000007e37be2022ULL, 0xc0914b2680000000ULL, 31}
+  ,    // 101-bit n < 10^31
+  {31, 0x0000007e37be2022ULL, 0xc0914b2680000000ULL, 31}
+  ,    // 102-bit n < 10^31
+  {0, 0x0000007e37be2022ULL, 0xc0914b2680000000ULL, 31}
+  ,    // 103-bit n ? 10^31
+  {32, 0x000004ee2d6d415bULL, 0x85acef8100000000ULL, 32}
+  ,    // 104-bit n < 10^32
+  {32, 0x000004ee2d6d415bULL, 0x85acef8100000000ULL, 32}
+  ,    // 105-bit n < 10^32
+  {32, 0x000004ee2d6d415bULL, 0x85acef8100000000ULL, 32}
+  ,    // 106-bit n < 10^32
+  {0, 0x000004ee2d6d415bULL, 0x85acef8100000000ULL, 32}
+  ,    // 107-bit n ? 10^32
+  {33, 0x0000314dc6448d93ULL, 0x38c15b0a00000000ULL, 33}
+  ,    // 108-bit n < 10^33
+  {33, 0x0000314dc6448d93ULL, 0x38c15b0a00000000ULL, 33}
+  ,    // 109-bit n < 10^33
+  {0, 0x0000314dc6448d93ULL, 0x38c15b0a00000000ULL, 33}
+  ,    // 100-bit n ? 10^33
+  {34, 0x0001ed09bead87c0ULL, 0x378d8e6400000000ULL, 34}
+  ,    // 111-bit n < 10^34
+  {34, 0x0001ed09bead87c0ULL, 0x378d8e6400000000ULL, 34}
+  ,    // 112-bit n < 10^34
+  {0, 0x0001ed09bead87c0ULL, 0x378d8e6400000000ULL, 34}        // 113-bit n ? 10^34
 //{ 35, 0x0013426172c74d82ULL, 0x2b878fe800000000ULL, 35 }  // 114-bit n < 10^35
 };
 
-// __bid_midpoint64[i - 1] = 1/2 * 10^i = 5 * 10^(i-1), 1 <= i <= 19
-UINT64 __bid_midpoint64[] = {
-  0x0000000000000005ULL,        // 1/2 * 10^1 = 5 * 10^0
-  0x0000000000000032ULL,        // 1/2 * 10^2 = 5 * 10^1
-  0x00000000000001f4ULL,        // 1/2 * 10^3 = 5 * 10^2
-  0x0000000000001388ULL,        // 1/2 * 10^4 = 5 * 10^3
-  0x000000000000c350ULL,        // 1/2 * 10^5 = 5 * 10^4
-  0x000000000007a120ULL,        // 1/2 * 10^6 = 5 * 10^5
-  0x00000000004c4b40ULL,        // 1/2 * 10^7 = 5 * 10^6
-  0x0000000002faf080ULL,        // 1/2 * 10^8 = 5 * 10^7
-  0x000000001dcd6500ULL,        // 1/2 * 10^9 = 5 * 10^8
-  0x000000012a05f200ULL,        // 1/2 * 10^10 = 5 * 10^9
-  0x0000000ba43b7400ULL,        // 1/2 * 10^11 = 5 * 10^10
-  0x000000746a528800ULL,        // 1/2 * 10^12 = 5 * 10^11
-  0x0000048c27395000ULL,        // 1/2 * 10^13 = 5 * 10^12
-  0x00002d79883d2000ULL,        // 1/2 * 10^14 = 5 * 10^13
-  0x0001c6bf52634000ULL,        // 1/2 * 10^15 = 5 * 10^14
-  0x0011c37937e08000ULL,        // 1/2 * 10^16 = 5 * 10^15
-  0x00b1a2bc2ec50000ULL,        // 1/2 * 10^17 = 5 * 10^16
-  0x06f05b59d3b20000ULL,        // 1/2 * 10^18 = 5 * 10^17
-  0x4563918244f40000ULL        // 1/2 * 10^19 = 5 * 10^18
+// midpoint64[i - 1] = 1/2 * 10^i = 5 * 10^(i-1), 1 <= i <= 19
+UINT64 midpoint64[] = {
+  0x0000000000000005ULL,       // 1/2 * 10^1 = 5 * 10^0
+  0x0000000000000032ULL,       // 1/2 * 10^2 = 5 * 10^1
+  0x00000000000001f4ULL,       // 1/2 * 10^3 = 5 * 10^2
+  0x0000000000001388ULL,       // 1/2 * 10^4 = 5 * 10^3
+  0x000000000000c350ULL,       // 1/2 * 10^5 = 5 * 10^4
+  0x000000000007a120ULL,       // 1/2 * 10^6 = 5 * 10^5
+  0x00000000004c4b40ULL,       // 1/2 * 10^7 = 5 * 10^6
+  0x0000000002faf080ULL,       // 1/2 * 10^8 = 5 * 10^7
+  0x000000001dcd6500ULL,       // 1/2 * 10^9 = 5 * 10^8
+  0x000000012a05f200ULL,       // 1/2 * 10^10 = 5 * 10^9
+  0x0000000ba43b7400ULL,       // 1/2 * 10^11 = 5 * 10^10
+  0x000000746a528800ULL,       // 1/2 * 10^12 = 5 * 10^11
+  0x0000048c27395000ULL,       // 1/2 * 10^13 = 5 * 10^12
+  0x00002d79883d2000ULL,       // 1/2 * 10^14 = 5 * 10^13
+  0x0001c6bf52634000ULL,       // 1/2 * 10^15 = 5 * 10^14
+  0x0011c37937e08000ULL,       // 1/2 * 10^16 = 5 * 10^15
+  0x00b1a2bc2ec50000ULL,       // 1/2 * 10^17 = 5 * 10^16
+  0x06f05b59d3b20000ULL,       // 1/2 * 10^18 = 5 * 10^17
+  0x4563918244f40000ULL        // 1/2 * 10^19 = 5 * 10^18
 };
 
-// __bid_midpoint128[i - 20] = 1/2 * 10^i = 5 * 10^(i-1), 20 <= i <= 38
-UINT128 __bid_midpoint128[] = {        // the 64-bit word order is L, H
-  {{0xb5e3af16b1880000ULL, 0x0000000000000002ULL}}
-  ,        // 1/2 * 10^20 = 5 * 10^19
-  {{0x1ae4d6e2ef500000ULL, 0x000000000000001bULL}}
-  ,        // 1/2 * 10^21 = 5 * 10^20
-  {{0x0cf064dd59200000ULL, 0x000000000000010fULL}}
-  ,        // 1/2 * 10^22 = 5 * 10^21
-  {{0x8163f0a57b400000ULL, 0x0000000000000a96ULL}}
-  ,        // 1/2 * 10^23 = 5 * 10^22
-  {{0x0de76676d0800000ULL, 0x00000000000069e1ULL}}
-  ,        // 1/2 * 10^24 = 5 * 10^23
-  {{0x8b0a00a425000000ULL, 0x00000000000422caULL}}
-  ,        // 1/2 * 10^25 = 5 * 10^24
-  {{0x6e64066972000000ULL, 0x0000000000295be9ULL}}
-  ,        // 1/2 * 10^26 = 5 * 10^25
-  {{0x4fe8401e74000000ULL, 0x00000000019d971eULL}}
-  ,        // 1/2 * 10^27 = 5 * 10^26
-  {{0x1f12813088000000ULL, 0x000000001027e72fULL}}
-  ,        // 1/2 * 10^28 = 5 * 10^27
-  {{0x36b90be550000000ULL, 0x00000000a18f07d7ULL}}
-  ,        // 1/2 * 10^29 = 5 * 10^28
-  {{0x233a76f520000000ULL, 0x000000064f964e68ULL}}
-  ,        // 1/2 * 10^30 = 5 * 10^29
-  {{0x6048a59340000000ULL, 0x0000003f1bdf1011ULL}}
-  ,        // 1/2 * 10^31 = 5 * 10^30
-  {{0xc2d677c080000000ULL, 0x0000027716b6a0adULL}}
-  ,        // 1/2 * 10^32 = 5 * 10^31
-  {{0x9c60ad8500000000ULL, 0x000018a6e32246c9ULL}}
-  ,        // 1/2 * 10^33 = 5 * 10^32
-  {{0x1bc6c73200000000ULL, 0x0000f684df56c3e0ULL}}
-  ,        // 1/2 * 10^34 = 5 * 10^33
-  {{0x15c3c7f400000000ULL, 0x0009a130b963a6c1ULL}}
-  ,        // 1/2 * 10^35 = 5 * 10^34
-  {{0xd9a5cf8800000000ULL, 0x00604be73de4838aULL}}
-  ,        // 1/2 * 10^36 = 5 * 10^35
-  {{0x807a1b5000000000ULL, 0x03c2f7086aed236cULL}}
-  ,        // 1/2 * 10^37 = 5 * 10^36
-  {{0x04c5112000000000ULL, 0x259da6542d43623dULL}}        // 1/2 * 10^38 = 5 * 10^37
+// midpoint128[i - 20] = 1/2 * 10^i = 5 * 10^(i-1), 20 <= i <= 38
+UINT128 midpoint128[] = {      // the 64-bit word order is L, H
+  {{0xb5e3af16b1880000ULL, 0x0000000000000002ULL}
+   }
+  ,    // 1/2 * 10^20 = 5 * 10^19
+  {{0x1ae4d6e2ef500000ULL, 0x000000000000001bULL}
+   }
+  ,    // 1/2 * 10^21 = 5 * 10^20
+  {{0x0cf064dd59200000ULL, 0x000000000000010fULL}
+   }
+  ,    // 1/2 * 10^22 = 5 * 10^21
+  {{0x8163f0a57b400000ULL, 0x0000000000000a96ULL}
+   }
+  ,    // 1/2 * 10^23 = 5 * 10^22
+  {{0x0de76676d0800000ULL, 0x00000000000069e1ULL}
+   }
+  ,    // 1/2 * 10^24 = 5 * 10^23
+  {{0x8b0a00a425000000ULL, 0x00000000000422caULL}
+   }
+  ,    // 1/2 * 10^25 = 5 * 10^24
+  {{0x6e64066972000000ULL, 0x0000000000295be9ULL}
+   }
+  ,    // 1/2 * 10^26 = 5 * 10^25
+  {{0x4fe8401e74000000ULL, 0x00000000019d971eULL}
+   }
+  ,    // 1/2 * 10^27 = 5 * 10^26
+  {{0x1f12813088000000ULL, 0x000000001027e72fULL}
+   }
+  ,    // 1/2 * 10^28 = 5 * 10^27
+  {{0x36b90be550000000ULL, 0x00000000a18f07d7ULL}
+   }
+  ,    // 1/2 * 10^29 = 5 * 10^28
+  {{0x233a76f520000000ULL, 0x000000064f964e68ULL}
+   }
+  ,    // 1/2 * 10^30 = 5 * 10^29
+  {{0x6048a59340000000ULL, 0x0000003f1bdf1011ULL}
+   }
+  ,    // 1/2 * 10^31 = 5 * 10^30
+  {{0xc2d677c080000000ULL, 0x0000027716b6a0adULL}
+   }
+  ,    // 1/2 * 10^32 = 5 * 10^31
+  {{0x9c60ad8500000000ULL, 0x000018a6e32246c9ULL}
+   }
+  ,    // 1/2 * 10^33 = 5 * 10^32
+  {{0x1bc6c73200000000ULL, 0x0000f684df56c3e0ULL}
+   }
+  ,    // 1/2 * 10^34 = 5 * 10^33
+  {{0x15c3c7f400000000ULL, 0x0009a130b963a6c1ULL}
+   }
+  ,    // 1/2 * 10^35 = 5 * 10^34
+  {{0xd9a5cf8800000000ULL, 0x00604be73de4838aULL}
+   }
+  ,    // 1/2 * 10^36 = 5 * 10^35
+  {{0x807a1b5000000000ULL, 0x03c2f7086aed236cULL}
+   }
+  ,    // 1/2 * 10^37 = 5 * 10^36
+  {{0x04c5112000000000ULL, 0x259da6542d43623dULL}
+   }   // 1/2 * 10^38 = 5 * 10^37
 };
 
-// __bid_midpoint192[i - 39] = 1/2 * 10^i = 5 * 10^(i-1), 39 <= i <= 58
-UINT192 __bid_midpoint192[] = {        // the 64-bit word order is L, M, H
-  {{0x2fb2ab4000000000ULL, 0x78287f49c4a1d662ULL, 0x0000000000000001ULL}}
+// midpoint192[i - 39] = 1/2 * 10^i = 5 * 10^(i-1), 39 <= i <= 58
+UINT192 midpoint192[] = {      // the 64-bit word order is L, M, H
+  {{0x2fb2ab4000000000ULL, 0x78287f49c4a1d662ULL, 0x0000000000000001ULL}
+   }
   ,
   // 1/2 * 10^39 = 5 * 10^38
-  {{0xdcfab08000000000ULL, 0xb194f8e1ae525fd5ULL, 0x000000000000000eULL}}
+  {{0xdcfab08000000000ULL, 0xb194f8e1ae525fd5ULL, 0x000000000000000eULL}
+   }
   ,
   // 1/2 * 10^40 = 5 * 10^39
-  {{0xa1cae50000000000ULL, 0xefd1b8d0cf37be5aULL, 0x0000000000000092ULL}}
+  {{0xa1cae50000000000ULL, 0xefd1b8d0cf37be5aULL, 0x0000000000000092ULL}
+   }
   ,
   // 1/2 * 10^41 = 5 * 10^40
-  {{0x51ecf20000000000ULL, 0x5e313828182d6f8aULL, 0x00000000000005bdULL}}
+  {{0x51ecf20000000000ULL, 0x5e313828182d6f8aULL, 0x00000000000005bdULL}
+   }
   ,
   // 1/2 * 10^42 = 5 * 10^41
-  {{0x3341740000000000ULL, 0xadec3190f1c65b67ULL, 0x0000000000003965ULL}}
+  {{0x3341740000000000ULL, 0xadec3190f1c65b67ULL, 0x0000000000003965ULL}
+   }
   ,
   // 1/2 * 10^43 = 5 * 10^42
-  {{0x008e880000000000ULL, 0xcb39efa971bf9208ULL, 0x0000000000023df8ULL}}
+  {{0x008e880000000000ULL, 0xcb39efa971bf9208ULL, 0x0000000000023df8ULL}
+   }
   ,
   // 1/2 * 10^44 = 5 * 10^43
-  {{0x0591500000000000ULL, 0xf0435c9e717bb450ULL, 0x0000000000166bb7ULL}}
+  {{0x0591500000000000ULL, 0xf0435c9e717bb450ULL, 0x0000000000166bb7ULL}
+   }
   ,
   // 1/2 * 10^45 = 5 * 10^44
-  {{0x37ad200000000000ULL, 0x62a19e306ed50b20ULL, 0x0000000000e0352fULL}}
+  {{0x37ad200000000000ULL, 0x62a19e306ed50b20ULL, 0x0000000000e0352fULL}
+   }
   ,
   // 1/2 * 10^46 = 5 * 10^45
-  {{0x2cc3400000000000ULL, 0xda502de454526f42ULL, 0x0000000008c213d9ULL}}
+  {{0x2cc3400000000000ULL, 0xda502de454526f42ULL, 0x0000000008c213d9ULL}
+   }
   ,
   // 1/2 * 10^47 = 5 * 10^46
-  {{0xbfa0800000000000ULL, 0x8721caeb4b385895ULL, 0x000000005794c682ULL}}
+  {{0xbfa0800000000000ULL, 0x8721caeb4b385895ULL, 0x000000005794c682ULL}
+   }
   ,
   // 1/2 * 10^48 = 5 * 10^47
-  {{0x7c45000000000000ULL, 0x4751ed30f03375d9ULL, 0x000000036bcfc119ULL}}
+  {{0x7c45000000000000ULL, 0x4751ed30f03375d9ULL, 0x000000036bcfc119ULL}
+   }
   ,
   // 1/2 * 10^49 = 5 * 10^48
-  {{0xdab2000000000000ULL, 0xc93343e962029a7eULL, 0x00000022361d8afcULL}}
+  {{0xdab2000000000000ULL, 0xc93343e962029a7eULL, 0x00000022361d8afcULL}
+   }
   ,
   // 1/2 * 10^50 = 5 * 10^49
-  {{0x8af4000000000000ULL, 0xdc00a71dd41a08f4ULL, 0x000001561d276ddfULL}}
+  {{0x8af4000000000000ULL, 0xdc00a71dd41a08f4ULL, 0x000001561d276ddfULL}
+   }
   ,
   // 1/2 * 10^51 = 5 * 10^50
-  {{0x6d88000000000000ULL, 0x9806872a4904598dULL, 0x00000d5d238a4abeULL}}
+  {{0x6d88000000000000ULL, 0x9806872a4904598dULL, 0x00000d5d238a4abeULL}
+   }
   ,
   // 1/2 * 10^52 = 5 * 10^51
-  {{0x4750000000000000ULL, 0xf04147a6da2b7f86ULL, 0x000085a36366eb71ULL}}
+  {{0x4750000000000000ULL, 0xf04147a6da2b7f86ULL, 0x000085a36366eb71ULL}
+   }
   ,
   // 1/2 * 10^53 = 5 * 10^52
-  {{0xc920000000000000ULL, 0x628ccc8485b2fb3eULL, 0x00053861e2053273ULL}}
+  {{0xc920000000000000ULL, 0x628ccc8485b2fb3eULL, 0x00053861e2053273ULL}
+   }
   ,
   // 1/2 * 10^54 = 5 * 10^53
-  {{0xdb40000000000000ULL, 0xd97ffd2d38fdd073ULL, 0x003433d2d433f881ULL}}
+  {{0xdb40000000000000ULL, 0xd97ffd2d38fdd073ULL, 0x003433d2d433f881ULL}
+   }
   ,
   // 1/2 * 10^55 = 5 * 10^54
-  {{0x9080000000000000ULL, 0x7effe3c439ea2486ULL, 0x020a063c4a07b512ULL}}
+  {{0x9080000000000000ULL, 0x7effe3c439ea2486ULL, 0x020a063c4a07b512ULL}
+   }
   ,
   // 1/2 * 10^56 = 5 * 10^55
-  {{0xa500000000000000ULL, 0xf5fee5aa43256d41ULL, 0x14643e5ae44d12b8ULL}}
+  {{0xa500000000000000ULL, 0xf5fee5aa43256d41ULL, 0x14643e5ae44d12b8ULL}
+   }
   ,
   // 1/2 * 10^57 = 5 * 10^56
-  {{0x7200000000000000ULL, 0x9bf4f8a69f764490ULL, 0xcbea6f8ceb02bb39ULL}}
+  {{0x7200000000000000ULL, 0x9bf4f8a69f764490ULL, 0xcbea6f8ceb02bb39ULL}
+   }
   // 1/2 * 10^58 = 5 * 10^57
 };
 
-// __bid_midpoint256[i - 59] = 1/2 * 10^i = 5 * 10^(i-1), 59 <= i <= 68
-UINT256 __bid_midpoint256[] = {        // the 64-bit word order is LL, LH, HL, HH
+// midpoint256[i - 59] = 1/2 * 10^i = 5 * 10^(i-1), 59 <= i <= 68
+UINT256 midpoint256[] = {      // the 64-bit word order is LL, LH, HL, HH
   {{0x7400000000000000ULL, 0x1791b6823a9eada4ULL,
-   0xf7285b812e1b5040ULL, 0x0000000000000007ULL}}
-  ,        // 1/2 * 10^59 = 5 * 10^58
+    0xf7285b812e1b5040ULL, 0x0000000000000007ULL}
+   }
+  ,    // 1/2 * 10^59 = 5 * 10^58
   {{0x8800000000000000ULL, 0xebb121164a32c86cULL,
-   0xa793930bcd112280ULL, 0x000000000000004fULL}}
-  ,        // 1/2 * 10^60 = 5 * 10^59
+    0xa793930bcd112280ULL, 0x000000000000004fULL}
+   }
+  ,    // 1/2 * 10^60 = 5 * 10^59
   {{0x5000000000000000ULL, 0x34eb4adee5fbd43dULL,
-   0x8bc3be7602ab5909ULL, 0x000000000000031cULL}}
-  ,        // 1/2 * 10^61 = 5 * 10^60
+    0x8bc3be7602ab5909ULL, 0x000000000000031cULL}
+   }
+  ,    // 1/2 * 10^61 = 5 * 10^60
   {{0x2000000000000000ULL, 0x1130ecb4fbd64a65ULL,
-   0x75a5709c1ab17a5cULL, 0x0000000000001f1dULL}}
-  ,        // 1/2 * 10^62 = 5 * 10^61
+    0x75a5709c1ab17a5cULL, 0x0000000000001f1dULL}
+   }
+  ,    // 1/2 * 10^62 = 5 * 10^61
   {{0x4000000000000000ULL, 0xabe93f11d65ee7f3ULL,
-   0x987666190aeec798ULL, 0x0000000000013726ULL}}
-  ,        // 1/2 * 10^63 = 5 * 10^62
+    0x987666190aeec798ULL, 0x0000000000013726ULL}
+   }
+  ,    // 1/2 * 10^63 = 5 * 10^62
   {{0x8000000000000000ULL, 0xb71c76b25fb50f80ULL,
-   0xf49ffcfa6d53cbf6ULL, 0x00000000000c2781ULL}}
-  ,        // 1/2 * 10^64 = 5 * 10^63
+    0xf49ffcfa6d53cbf6ULL, 0x00000000000c2781ULL}
+   }
+  ,    // 1/2 * 10^64 = 5 * 10^63
   {{0x0000000000000000ULL, 0x271ca2f7bd129b05ULL,
-   0x8e3fe1c84545f7a3ULL, 0x0000000000798b13ULL}}
-  ,        // 1/2 * 10^65 = 5 * 10^64
+    0x8e3fe1c84545f7a3ULL, 0x0000000000798b13ULL}
+   }
+  ,    // 1/2 * 10^65 = 5 * 10^64
   {{0x0000000000000000ULL, 0x871e5dad62ba0e32ULL,
-   0x8e7ed1d2b4bbac5fULL, 0x0000000004bf6ec3ULL}}
-  ,        // 1/2 * 10^66 = 5 * 10^65
+    0x8e7ed1d2b4bbac5fULL, 0x0000000004bf6ec3ULL}
+   }
+  ,    // 1/2 * 10^66 = 5 * 10^65
   {{0x0000000000000000ULL, 0x472fa8c5db448df4ULL,
-   0x90f4323b0f54bbbbULL, 0x000000002f7a53a3ULL}}
-  ,        // 1/2 * 10^67 = 5 * 10^66
+    0x90f4323b0f54bbbbULL, 0x000000002f7a53a3ULL}
+   }
+  ,    // 1/2 * 10^67 = 5 * 10^66
   {{0x0000000000000000ULL, 0xc7dc97ba90ad8b88ULL,
-   0xa989f64e994f5550ULL, 0x00000001dac74463ULL}}
-  ,        // 1/2 * 10^68 = 5 * 10^67
+    0xa989f64e994f5550ULL, 0x00000001dac74463ULL}
+   }
+  ,    // 1/2 * 10^68 = 5 * 10^67
   {{0x0000000000000000ULL, 0xce9ded49a6c77350ULL,
-   0x9f639f11fd195527ULL, 0x000000128bc8abe4ULL}}
-  ,        // 1/2 * 10^69 = 5 * 10^68
+    0x9f639f11fd195527ULL, 0x000000128bc8abe4ULL}
+   }
+  ,    // 1/2 * 10^69 = 5 * 10^68
   {{0x0000000000000000ULL, 0x122b44e083ca8120ULL,
-   0x39e436b3e2fd538eULL, 0x000000b975d6b6eeULL}}
-  ,        // 1/2 * 10^70 = 5 * 10^69
+    0x39e436b3e2fd538eULL, 0x000000b975d6b6eeULL}
+   }
+  ,    // 1/2 * 10^70 = 5 * 10^69
   {{0x0000000000000000ULL, 0xb5b0b0c525e90b40ULL,
-   0x42ea2306dde5438cULL, 0x0000073e9a63254eULL}}
-  ,        // 1/2 * 10^71 = 5 * 10^70
+    0x42ea2306dde5438cULL, 0x0000073e9a63254eULL}
+   }
+  ,    // 1/2 * 10^71 = 5 * 10^70
   {{0x0000000000000000ULL, 0x18e6e7b37b1a7080ULL,
-   0x9d255e44aaf4a37fULL, 0x0000487207df750eULL}}
-  ,        // 1/2 * 10^72 = 5 * 10^71
+    0x9d255e44aaf4a37fULL, 0x0000487207df750eULL}
+   }
+  ,    // 1/2 * 10^72 = 5 * 10^71
   {{0x0000000000000000ULL, 0xf9050d02cf086500ULL,
-   0x2375aeaead8e62f6ULL, 0x0002d4744eba9292ULL}}
-  ,        // 1/2 * 10^73 = 5 * 10^72
+    0x2375aeaead8e62f6ULL, 0x0002d4744eba9292ULL}
+   }
+  ,    // 1/2 * 10^73 = 5 * 10^72
   {{0x0000000000000000ULL, 0xba32821c1653f200ULL,
-   0x6298d2d2c78fdda5ULL, 0x001c4c8b1349b9b5ULL}}
-  ,        // 1/2 * 10^74 = 5 * 10^73
+    0x6298d2d2c78fdda5ULL, 0x001c4c8b1349b9b5ULL}
+   }
+  ,    // 1/2 * 10^74 = 5 * 10^73
   {{0x0000000000000000ULL, 0x45f91518df477400ULL,
-   0xd9f83c3bcb9ea879ULL, 0x011afd6ec0e14115ULL}}
-  ,        // 1/2 * 10^75 = 5 * 10^74
+    0xd9f83c3bcb9ea879ULL, 0x011afd6ec0e14115ULL}
+   }
+  ,    // 1/2 * 10^75 = 5 * 10^74
   {{0x0000000000000000ULL, 0xbbbad2f8b8ca8800ULL,
-   0x83b25a55f43294bcULL, 0x0b0de65388cc8adaULL}}
-  ,        // 1/2 * 10^76 = 5 * 10^75
+    0x83b25a55f43294bcULL, 0x0b0de65388cc8adaULL}
+   }
+  ,    // 1/2 * 10^76 = 5 * 10^75
   {{0x0000000000000000ULL, 0x554c3db737e95000ULL,
-   0x24f7875b89f9cf5fULL, 0x6e8aff4357fd6c89ULL}}        // 1/2 * 10^77 = 5 * 10^76
+    0x24f7875b89f9cf5fULL, 0x6e8aff4357fd6c89ULL}
+   }   // 1/2 * 10^77 = 5 * 10^76
 };
 
-// __bid_ten2k64[i] = 10^i, 0 <= i <= 19
-UINT64 __bid_ten2k64[] = {
-  0x0000000000000001ULL,        // 10^0
-  0x000000000000000aULL,        // 10^1
-  0x0000000000000064ULL,        // 10^2
-  0x00000000000003e8ULL,        // 10^3
-  0x0000000000002710ULL,        // 10^4
-  0x00000000000186a0ULL,        // 10^5
-  0x00000000000f4240ULL,        // 10^6
-  0x0000000000989680ULL,        // 10^7
-  0x0000000005f5e100ULL,        // 10^8
-  0x000000003b9aca00ULL,        // 10^9
-  0x00000002540be400ULL,        // 10^10
-  0x000000174876e800ULL,        // 10^11
-  0x000000e8d4a51000ULL,        // 10^12
-  0x000009184e72a000ULL,        // 10^13
-  0x00005af3107a4000ULL,        // 10^14
-  0x00038d7ea4c68000ULL,        // 10^15
-  0x002386f26fc10000ULL,        // 10^16
-  0x016345785d8a0000ULL,        // 10^17
-  0x0de0b6b3a7640000ULL,        // 10^18
-  0x8ac7230489e80000ULL        // 10^19 (20 digits)
+// ten2k64[i] = 10^i, 0 <= i <= 19
+UINT64 ten2k64[] = {
+  0x0000000000000001ULL,       // 10^0
+  0x000000000000000aULL,       // 10^1
+  0x0000000000000064ULL,       // 10^2
+  0x00000000000003e8ULL,       // 10^3
+  0x0000000000002710ULL,       // 10^4
+  0x00000000000186a0ULL,       // 10^5
+  0x00000000000f4240ULL,       // 10^6
+  0x0000000000989680ULL,       // 10^7
+  0x0000000005f5e100ULL,       // 10^8
+  0x000000003b9aca00ULL,       // 10^9
+  0x00000002540be400ULL,       // 10^10
+  0x000000174876e800ULL,       // 10^11
+  0x000000e8d4a51000ULL,       // 10^12
+  0x000009184e72a000ULL,       // 10^13
+  0x00005af3107a4000ULL,       // 10^14
+  0x00038d7ea4c68000ULL,       // 10^15
+  0x002386f26fc10000ULL,       // 10^16
+  0x016345785d8a0000ULL,       // 10^17
+  0x0de0b6b3a7640000ULL,       // 10^18
+  0x8ac7230489e80000ULL        // 10^19 (20 digits)
 };
 
 
-// __bid_ten2k128[i - 20] = 10^i, 20 <= i <= 38
-UINT128 __bid_ten2k128[] = {        // the 64-bit word order is L, H
-  {{0x6bc75e2d63100000ULL, 0x0000000000000005ULL}}
-  ,        // 10^20
-  {{0x35c9adc5dea00000ULL, 0x0000000000000036ULL}}
-  ,        // 10^21
-  {{0x19e0c9bab2400000ULL, 0x000000000000021eULL}}
-  ,        // 10^22
-  {{0x02c7e14af6800000ULL, 0x000000000000152dULL}}
-  ,        // 10^23
-  {{0x1bcecceda1000000ULL, 0x000000000000d3c2ULL}}
-  ,        // 10^24
-  {{0x161401484a000000ULL, 0x0000000000084595ULL}}
-  ,        // 10^25
-  {{0xdcc80cd2e4000000ULL, 0x000000000052b7d2ULL}}
-  ,        // 10^26
-  {{0x9fd0803ce8000000ULL, 0x00000000033b2e3cULL}}
-  ,        // 10^27
-  {{0x3e25026110000000ULL, 0x00000000204fce5eULL}}
-  ,        // 10^28
-  {{0x6d7217caa0000000ULL, 0x00000001431e0faeULL}}
-  ,        // 10^29
-  {{0x4674edea40000000ULL, 0x0000000c9f2c9cd0ULL}}
-  ,        // 10^30
-  {{0xc0914b2680000000ULL, 0x0000007e37be2022ULL}}
-  ,        // 10^31
-  {{0x85acef8100000000ULL, 0x000004ee2d6d415bULL}}
-  ,        // 10^32
-  {{0x38c15b0a00000000ULL, 0x0000314dc6448d93ULL}}
-  ,        // 10^33
-  {{0x378d8e6400000000ULL, 0x0001ed09bead87c0ULL}}
-  ,        // 10^34
-  {{0x2b878fe800000000ULL, 0x0013426172c74d82ULL}}
-  ,        // 10^35
-  {{0xb34b9f1000000000ULL, 0x00c097ce7bc90715ULL}}
-  ,        // 10^36
-  {{0x00f436a000000000ULL, 0x0785ee10d5da46d9ULL}}
-  ,        // 10^37
-  {{0x098a224000000000ULL, 0x4b3b4ca85a86c47aULL}}        // 10^38 (39 digits)
+// ten2k128[i - 20] = 10^i, 20 <= i <= 38
+UINT128 ten2k128[] = { // the 64-bit word order is L, H
+  {{0x6bc75e2d63100000ULL, 0x0000000000000005ULL}
+   }
+  ,    // 10^20
+  {{0x35c9adc5dea00000ULL, 0x0000000000000036ULL}
+   }
+  ,    // 10^21
+  {{0x19e0c9bab2400000ULL, 0x000000000000021eULL}
+   }
+  ,    // 10^22
+  {{0x02c7e14af6800000ULL, 0x000000000000152dULL}
+   }
+  ,    // 10^23
+  {{0x1bcecceda1000000ULL, 0x000000000000d3c2ULL}
+   }
+  ,    // 10^24
+  {{0x161401484a000000ULL, 0x0000000000084595ULL}
+   }
+  ,    // 10^25
+  {{0xdcc80cd2e4000000ULL, 0x000000000052b7d2ULL}
+   }
+  ,    // 10^26
+  {{0x9fd0803ce8000000ULL, 0x00000000033b2e3cULL}
+   }
+  ,    // 10^27
+  {{0x3e25026110000000ULL, 0x00000000204fce5eULL}
+   }
+  ,    // 10^28
+  {{0x6d7217caa0000000ULL, 0x00000001431e0faeULL}
+   }
+  ,    // 10^29
+  {{0x4674edea40000000ULL, 0x0000000c9f2c9cd0ULL}
+   }
+  ,    // 10^30
+  {{0xc0914b2680000000ULL, 0x0000007e37be2022ULL}
+   }
+  ,    // 10^31
+  {{0x85acef8100000000ULL, 0x000004ee2d6d415bULL}
+   }
+  ,    // 10^32
+  {{0x38c15b0a00000000ULL, 0x0000314dc6448d93ULL}
+   }
+  ,    // 10^33
+  {{0x378d8e6400000000ULL, 0x0001ed09bead87c0ULL}
+   }
+  ,    // 10^34
+  {{0x2b878fe800000000ULL, 0x0013426172c74d82ULL}
+   }
+  ,    // 10^35
+  {{0xb34b9f1000000000ULL, 0x00c097ce7bc90715ULL}
+   }
+  ,    // 10^36
+  {{0x00f436a000000000ULL, 0x0785ee10d5da46d9ULL}
+   }
+  ,    // 10^37
+  {{0x098a224000000000ULL, 0x4b3b4ca85a86c47aULL}
+   }   // 10^38 (39 digits)
 };
 
-// might split into __bid_ten2k192[] and __bid_ten2k256[]
+// might split into ten2k192[] and ten2k256[]
 
-// __bid_ten2k256[i - 39] = 10^i, 39 <= i <= 68
-UINT256 __bid_ten2k256[] = {        // the 64-bit word order is LL, LH, HL, HH
+// ten2k256[i - 39] = 10^i, 39 <= i <= 68
+UINT256 ten2k256[] = { // the 64-bit word order is LL, LH, HL, HH
   {{0x5f65568000000000ULL, 0xf050fe938943acc4ULL,
-   0x0000000000000002ULL, 0x0000000000000000ULL}}
-  ,        // 10^39
+    0x0000000000000002ULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^39
   {{0xb9f5610000000000ULL, 0x6329f1c35ca4bfabULL,
-   0x000000000000001dULL, 0x0000000000000000ULL}}
-  ,        // 10^40
+    0x000000000000001dULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^40
   {{0x4395ca0000000000ULL, 0xdfa371a19e6f7cb5ULL,
-   0x0000000000000125ULL, 0x0000000000000000ULL}}
-  ,        // 10^41
+    0x0000000000000125ULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^41
   {{0xa3d9e40000000000ULL, 0xbc627050305adf14ULL,
-   0x0000000000000b7aULL, 0x0000000000000000ULL}}
-  ,        // 10^42
+    0x0000000000000b7aULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^42
   {{0x6682e80000000000ULL, 0x5bd86321e38cb6ceULL,
-   0x00000000000072cbULL, 0x0000000000000000ULL}}
-  ,        // 10^43
+    0x00000000000072cbULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^43
   {{0x011d100000000000ULL, 0x9673df52e37f2410ULL,
-   0x0000000000047bf1ULL, 0x0000000000000000ULL}}
-  ,        // 10^44
+    0x0000000000047bf1ULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^44
   {{0x0b22a00000000000ULL, 0xe086b93ce2f768a0ULL,
-   0x00000000002cd76fULL, 0x0000000000000000ULL}}
-  ,        // 10^45
+    0x00000000002cd76fULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^45
   {{0x6f5a400000000000ULL, 0xc5433c60ddaa1640ULL,
-   0x0000000001c06a5eULL, 0x0000000000000000ULL}}
-  ,        // 10^46
+    0x0000000001c06a5eULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^46
   {{0x5986800000000000ULL, 0xb4a05bc8a8a4de84ULL,
-   0x00000000118427b3ULL, 0x0000000000000000ULL}}
-  ,        // 10^47
+    0x00000000118427b3ULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^47
   {{0x7f41000000000000ULL, 0x0e4395d69670b12bULL,
-   0x00000000af298d05ULL, 0x0000000000000000ULL}}
-  ,        // 10^48
+    0x00000000af298d05ULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^48
   {{0xf88a000000000000ULL, 0x8ea3da61e066ebb2ULL,
-   0x00000006d79f8232ULL, 0x0000000000000000ULL}}
-  ,        // 10^49
+    0x00000006d79f8232ULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^49
   {{0xb564000000000000ULL, 0x926687d2c40534fdULL,
-   0x000000446c3b15f9ULL, 0x0000000000000000ULL}}
-  ,        // 10^50
+    0x000000446c3b15f9ULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^50
   {{0x15e8000000000000ULL, 0xb8014e3ba83411e9ULL,
-   0x000002ac3a4edbbfULL, 0x0000000000000000ULL}}
-  ,        // 10^51
+    0x000002ac3a4edbbfULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^51
   {{0xdb10000000000000ULL, 0x300d0e549208b31aULL,
-   0x00001aba4714957dULL, 0x0000000000000000ULL}}
-  ,        // 10^52
+    0x00001aba4714957dULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^52
   {{0x8ea0000000000000ULL, 0xe0828f4db456ff0cULL,
-   0x00010b46c6cdd6e3ULL, 0x0000000000000000ULL}}
-  ,        // 10^53
+    0x00010b46c6cdd6e3ULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^53
   {{0x9240000000000000ULL, 0xc51999090b65f67dULL,
-   0x000a70c3c40a64e6ULL, 0x0000000000000000ULL}}
-  ,        // 10^54
+    0x000a70c3c40a64e6ULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^54
   {{0xb680000000000000ULL, 0xb2fffa5a71fba0e7ULL,
-   0x006867a5a867f103ULL, 0x0000000000000000ULL}}
-  ,        // 10^55
+    0x006867a5a867f103ULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^55
   {{0x2100000000000000ULL, 0xfdffc78873d4490dULL,
-   0x04140c78940f6a24ULL, 0x0000000000000000ULL}}
-  ,        // 10^56
+    0x04140c78940f6a24ULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^56
   {{0x4a00000000000000ULL, 0xebfdcb54864ada83ULL,
-   0x28c87cb5c89a2571ULL, 0x0000000000000000ULL}}
-  ,        // 10^57 (58 digits)
+    0x28c87cb5c89a2571ULL, 0x0000000000000000ULL}
+   }
+  ,    // 10^57 (58 digits)
   {{0xe400000000000000ULL, 0x37e9f14d3eec8920ULL,
-   0x97d4df19d6057673ULL, 0x0000000000000001ULL}}
-  ,        // 10^58
+    0x97d4df19d6057673ULL, 0x0000000000000001ULL}
+   }
+  ,    // 10^58
   {{0xe800000000000000ULL, 0x2f236d04753d5b48ULL,
-   0xee50b7025c36a080ULL, 0x000000000000000fULL}}
-  ,        // 10^59
+    0xee50b7025c36a080ULL, 0x000000000000000fULL}
+   }
+  ,    // 10^59
   {{0x1000000000000000ULL, 0xd762422c946590d9ULL,
-   0x4f2726179a224501ULL, 0x000000000000009fULL}}
-  ,        // 10^60
+    0x4f2726179a224501ULL, 0x000000000000009fULL}
+   }
+  ,    // 10^60
   {{0xa000000000000000ULL, 0x69d695bdcbf7a87aULL,
-   0x17877cec0556b212ULL, 0x0000000000000639ULL}}
-  ,        // 10^61
+    0x17877cec0556b212ULL, 0x0000000000000639ULL}
+   }
+  ,    // 10^61
   {{0x4000000000000000ULL, 0x2261d969f7ac94caULL,
-   0xeb4ae1383562f4b8ULL, 0x0000000000003e3aULL}}
-  ,        // 10^62
+    0xeb4ae1383562f4b8ULL, 0x0000000000003e3aULL}
+   }
+  ,    // 10^62
   {{0x8000000000000000ULL, 0x57d27e23acbdcfe6ULL,
-   0x30eccc3215dd8f31ULL, 0x0000000000026e4dULL}}
-  ,        // 10^63
+    0x30eccc3215dd8f31ULL, 0x0000000000026e4dULL}
+   }
+  ,    // 10^63
   {{0x0000000000000000ULL, 0x6e38ed64bf6a1f01ULL,
-   0xe93ff9f4daa797edULL, 0x0000000000184f03ULL}}
-  ,        // 10^64
+    0xe93ff9f4daa797edULL, 0x0000000000184f03ULL}
+   }
+  ,    // 10^64
   {{0x0000000000000000ULL, 0x4e3945ef7a25360aULL,
-   0x1c7fc3908a8bef46ULL, 0x0000000000f31627ULL}}
-  ,        // 10^65
+    0x1c7fc3908a8bef46ULL, 0x0000000000f31627ULL}
+   }
+  ,    // 10^65
   {{0x0000000000000000ULL, 0x0e3cbb5ac5741c64ULL,
-   0x1cfda3a5697758bfULL, 0x00000000097edd87ULL}}
-  ,        // 10^66
+    0x1cfda3a5697758bfULL, 0x00000000097edd87ULL}
+   }
+  ,    // 10^66
   {{0x0000000000000000ULL, 0x8e5f518bb6891be8ULL,
-   0x21e864761ea97776ULL, 0x000000005ef4a747ULL}}
-  ,        // 10^67
+    0x21e864761ea97776ULL, 0x000000005ef4a747ULL}
+   }
+  ,    // 10^67
   {{0x0000000000000000ULL, 0x8fb92f75215b1710ULL,
-   0x5313ec9d329eaaa1ULL, 0x00000003b58e88c7ULL}}
-  ,        // 10^68
+    0x5313ec9d329eaaa1ULL, 0x00000003b58e88c7ULL}
+   }
+  ,    // 10^68
   {{0x0000000000000000ULL, 0x9d3bda934d8ee6a0ULL,
-   0x3ec73e23fa32aa4fULL, 0x00000025179157c9ULL}}
-  ,        // 10^69
+    0x3ec73e23fa32aa4fULL, 0x00000025179157c9ULL}
+   }
+  ,    // 10^69
   {{0x0000000000000000ULL, 0x245689c107950240ULL,
-   0x73c86d67c5faa71cULL, 0x00000172ebad6ddcULL}}
-  ,        // 10^70
+    0x73c86d67c5faa71cULL, 0x00000172ebad6ddcULL}
+   }
+  ,    // 10^70
   {{0x0000000000000000ULL, 0x6b61618a4bd21680ULL,
-   0x85d4460dbbca8719ULL, 0x00000e7d34c64a9cULL}}
-  ,        // 10^71
+    0x85d4460dbbca8719ULL, 0x00000e7d34c64a9cULL}
+   }
+  ,    // 10^71
   {{0x0000000000000000ULL, 0x31cdcf66f634e100ULL,
-   0x3a4abc8955e946feULL, 0x000090e40fbeea1dULL}}
-  ,        // 10^72
+    0x3a4abc8955e946feULL, 0x000090e40fbeea1dULL}
+   }
+  ,    // 10^72
   {{0x0000000000000000ULL, 0xf20a1a059e10ca00ULL,
-   0x46eb5d5d5b1cc5edULL, 0x0005a8e89d752524ULL}}
-  ,        // 10^73
+    0x46eb5d5d5b1cc5edULL, 0x0005a8e89d752524ULL}
+   }
+  ,    // 10^73
   {{0x0000000000000000ULL, 0x746504382ca7e400ULL,
-   0xc531a5a58f1fbb4bULL, 0x003899162693736aULL}}
-  ,        // 10^74
+    0xc531a5a58f1fbb4bULL, 0x003899162693736aULL}
+   }
+  ,    // 10^74
   {{0x0000000000000000ULL, 0x8bf22a31be8ee800ULL,
-   0xb3f07877973d50f2ULL, 0x0235fadd81c2822bULL}}
-  ,        // 10^75
+    0xb3f07877973d50f2ULL, 0x0235fadd81c2822bULL}
+   }
+  ,    // 10^75
   {{0x0000000000000000ULL, 0x7775a5f171951000ULL,
-   0x0764b4abe8652979ULL, 0x161bcca7119915b5ULL}}
-  ,        // 10^76
+    0x0764b4abe8652979ULL, 0x161bcca7119915b5ULL}
+   }
+  ,    // 10^76
   {{0x0000000000000000ULL, 0xaa987b6e6fd2a000ULL,
-   0x49ef0eb713f39ebeULL, 0xdd15fe86affad912ULL}}        // 10^77
+    0x49ef0eb713f39ebeULL, 0xdd15fe86affad912ULL}
+   }   // 10^77
 };
 
-// __bid_ten2mk128[k - 1] = 10^(-k) * 2^exp (k), where 1 <= k <= 34 and
-// exp (k) = __bid_shiftright128[k - 1] + 128
-UINT128 __bid_ten2mk128[] = {
-  {{0x999999999999999aULL, 0x1999999999999999ULL}}
-  ,        //  10^(-1) * 2^128
-  {{0x28f5c28f5c28f5c3ULL, 0x028f5c28f5c28f5cULL}}
-  ,        //  10^(-2) * 2^128
-  {{0x9db22d0e56041894ULL, 0x004189374bc6a7efULL}}
-  ,        //  10^(-3) * 2^128
-  {{0x4af4f0d844d013aaULL, 0x00346dc5d6388659ULL}}
-  ,        //  10^(-4) * 2^131
-  {{0x08c3f3e0370cdc88ULL, 0x0029f16b11c6d1e1ULL}}
-  ,        //  10^(-5) * 2^134
-  {{0x6d698fe69270b06dULL, 0x00218def416bdb1aULL}}
-  ,        //  10^(-6) * 2^137
-  {{0xaf0f4ca41d811a47ULL, 0x0035afe535795e90ULL}}
-  ,        //  10^(-7) * 2^141
-  {{0xbf3f70834acdaea0ULL, 0x002af31dc4611873ULL}}
-  ,        //  10^(-8) * 2^144
-  {{0x65cc5a02a23e254dULL, 0x00225c17d04dad29ULL}}
-  ,        //  10^(-9) * 2^147
-  {{0x6fad5cd10396a214ULL, 0x0036f9bfb3af7b75ULL}}
-  ,        // 10^(-10) * 2^151
-  {{0xbfbde3da69454e76ULL, 0x002bfaffc2f2c92aULL}}
-  ,        // 10^(-11) * 2^154
-  {{0x32fe4fe1edd10b92ULL, 0x00232f33025bd422ULL}}
-  ,        // 10^(-12) * 2^157
-  {{0x84ca19697c81ac1cULL, 0x00384b84d092ed03ULL}}
-  ,        // 10^(-13) * 2^161
-  {{0x03d4e1213067bce4ULL, 0x002d09370d425736ULL}}
-  ,        // 10^(-14) * 2^164
-  {{0x3643e74dc052fd83ULL, 0x0024075f3dceac2bULL}}
-  ,        // 10^(-15) * 2^167
-  {{0x56d30baf9a1e626bULL, 0x0039a5652fb11378ULL}}
-  ,        // 10^(-16) * 2^171
-  {{0x12426fbfae7eb522ULL, 0x002e1dea8c8da92dULL}}
-  ,        // 10^(-17) * 2^174
-  {{0x41cebfcc8b9890e8ULL, 0x0024e4bba3a48757ULL}}
-  ,        // 10^(-18) * 2^177
-  {{0x694acc7a78f41b0dULL, 0x003b07929f6da558ULL}}
-  ,        // 10^(-19) * 2^181
-  {{0xbaa23d2ec729af3eULL, 0x002f394219248446ULL}}
-  ,        // 10^(-20) * 2^184
-  {{0xfbb4fdbf05baf298ULL, 0x0025c768141d369eULL}}
-  ,        // 10^(-21) * 2^187
-  {{0x2c54c931a2c4b759ULL, 0x003c7240202ebdcbULL}}
-  ,        // 10^(-22) * 2^191
-  {{0x89dd6dc14f03c5e1ULL, 0x00305b66802564a2ULL}}
-  ,        // 10^(-23) * 2^194
-  {{0xd4b1249aa59c9e4eULL, 0x0026af8533511d4eULL}}
-  ,        // 10^(-24) * 2^197
-  {{0x544ea0f76f60fd49ULL, 0x003de5a1ebb4fbb1ULL}}
-  ,        // 10^(-25) * 2^201
-  {{0x76a54d92bf80caa1ULL, 0x00318481895d9627ULL}}
-  ,        // 10^(-26) * 2^204
-  {{0x921dd7a89933d54eULL, 0x00279d346de4781fULL}}
-  ,        // 10^(-27) * 2^207
-  {{0x8362f2a75b862215ULL, 0x003f61ed7ca0c032ULL}}
-  ,        // 10^(-28) * 2^211
-  {{0xcf825bb91604e811ULL, 0x0032b4bdfd4d668eULL}}
-  ,        // 10^(-29) * 2^214
-  {{0x0c684960de6a5341ULL, 0x00289097fdd7853fULL}}
-  ,        // 10^(-30) * 2^217
-  {{0x3d203ab3e521dc34ULL, 0x002073accb12d0ffULL}}
-  ,        // 10^(-31) * 2^220
-  {{0x2e99f7863b696053ULL, 0x0033ec47ab514e65ULL}}
-  ,        // 10^(-32) * 2^224
-  {{0x587b2c6b62bab376ULL, 0x002989d2ef743eb7ULL}}
-  ,        // 10^(-33) * 2^227
-  {{0xad2f56bc4efbc2c5ULL, 0x00213b0f25f69892ULL}}
-  ,        // 10^(-34) * 2^230
+// ten2mk128[k - 1] = 10^(-k) * 2^exp (k), where 1 <= k <= 34 and
+// exp (k) = shiftright128[k - 1] + 128
+UINT128 ten2mk128[] = {
+  {{0x999999999999999aULL, 0x1999999999999999ULL}
+   }
+  ,    //  10^(-1) * 2^128
+  {{0x28f5c28f5c28f5c3ULL, 0x028f5c28f5c28f5cULL}
+   }
+  ,    //  10^(-2) * 2^128
+  {{0x9db22d0e56041894ULL, 0x004189374bc6a7efULL}
+   }
+  ,    //  10^(-3) * 2^128
+  {{0x4af4f0d844d013aaULL, 0x00346dc5d6388659ULL}
+   }
+  ,    //  10^(-4) * 2^131
+  {{0x08c3f3e0370cdc88ULL, 0x0029f16b11c6d1e1ULL}
+   }
+  ,    //  10^(-5) * 2^134
+  {{0x6d698fe69270b06dULL, 0x00218def416bdb1aULL}
+   }
+  ,    //  10^(-6) * 2^137
+  {{0xaf0f4ca41d811a47ULL, 0x0035afe535795e90ULL}
+   }
+  ,    //  10^(-7) * 2^141
+  {{0xbf3f70834acdaea0ULL, 0x002af31dc4611873ULL}
+   }
+  ,    //  10^(-8) * 2^144
+  {{0x65cc5a02a23e254dULL, 0x00225c17d04dad29ULL}
+   }
+  ,    //  10^(-9) * 2^147
+  {{0x6fad5cd10396a214ULL, 0x0036f9bfb3af7b75ULL}
+   }
+  ,    // 10^(-10) * 2^151
+  {{0xbfbde3da69454e76ULL, 0x002bfaffc2f2c92aULL}
+   }
+  ,    // 10^(-11) * 2^154
+  {{0x32fe4fe1edd10b92ULL, 0x00232f33025bd422ULL}
+   }
+  ,    // 10^(-12) * 2^157
+  {{0x84ca19697c81ac1cULL, 0x00384b84d092ed03ULL}
+   }
+  ,    // 10^(-13) * 2^161
+  {{0x03d4e1213067bce4ULL, 0x002d09370d425736ULL}
+   }
+  ,    // 10^(-14) * 2^164
+  {{0x3643e74dc052fd83ULL, 0x0024075f3dceac2bULL}
+   }
+  ,    // 10^(-15) * 2^167
+  {{0x56d30baf9a1e626bULL, 0x0039a5652fb11378ULL}
+   }
+  ,    // 10^(-16) * 2^171
+  {{0x12426fbfae7eb522ULL, 0x002e1dea8c8da92dULL}
+   }
+  ,    // 10^(-17) * 2^174
+  {{0x41cebfcc8b9890e8ULL, 0x0024e4bba3a48757ULL}
+   }
+  ,    // 10^(-18) * 2^177
+  {{0x694acc7a78f41b0dULL, 0x003b07929f6da558ULL}
+   }
+  ,    // 10^(-19) * 2^181
+  {{0xbaa23d2ec729af3eULL, 0x002f394219248446ULL}
+   }
+  ,    // 10^(-20) * 2^184
+  {{0xfbb4fdbf05baf298ULL, 0x0025c768141d369eULL}
+   }
+  ,    // 10^(-21) * 2^187
+  {{0x2c54c931a2c4b759ULL, 0x003c7240202ebdcbULL}
+   }
+  ,    // 10^(-22) * 2^191
+  {{0x89dd6dc14f03c5e1ULL, 0x00305b66802564a2ULL}
+   }
+  ,    // 10^(-23) * 2^194
+  {{0xd4b1249aa59c9e4eULL, 0x0026af8533511d4eULL}
+   }
+  ,    // 10^(-24) * 2^197
+  {{0x544ea0f76f60fd49ULL, 0x003de5a1ebb4fbb1ULL}
+   }
+  ,    // 10^(-25) * 2^201
+  {{0x76a54d92bf80caa1ULL, 0x00318481895d9627ULL}
+   }
+  ,    // 10^(-26) * 2^204
+  {{0x921dd7a89933d54eULL, 0x00279d346de4781fULL}
+   }
+  ,    // 10^(-27) * 2^207
+  {{0x8362f2a75b862215ULL, 0x003f61ed7ca0c032ULL}
+   }
+  ,    // 10^(-28) * 2^211
+  {{0xcf825bb91604e811ULL, 0x0032b4bdfd4d668eULL}
+   }
+  ,    // 10^(-29) * 2^214
+  {{0x0c684960de6a5341ULL, 0x00289097fdd7853fULL}
+   }
+  ,    // 10^(-30) * 2^217
+  {{0x3d203ab3e521dc34ULL, 0x002073accb12d0ffULL}
+   }
+  ,    // 10^(-31) * 2^220
+  {{0x2e99f7863b696053ULL, 0x0033ec47ab514e65ULL}
+   }
+  ,    // 10^(-32) * 2^224
+  {{0x587b2c6b62bab376ULL, 0x002989d2ef743eb7ULL}
+   }
+  ,    // 10^(-33) * 2^227
+  {{0xad2f56bc4efbc2c5ULL, 0x00213b0f25f69892ULL}
+   }
+  ,    // 10^(-34) * 2^230
 };
 
 
-// __bid_shiftright128[] contains the right shift count to obtain C2* from the top
+// shiftright128[] contains the right shift count to obtain C2* from the top
 // 128 bits of the 128x128-bit product C2 * Kx
-int __bid_shiftright128[] = {
-  0,        // 128 - 128
-  0,        // 128 - 128
-  0,        // 128 - 128
-
-  3,        // 131 - 128
-  6,        // 134 - 128
-  9,        // 137 - 128
-  13,        // 141 - 128
-  16,        // 144 - 128
-  19,        // 147 - 128
-  23,        // 151 - 128
-  26,        // 154 - 128
-  29,        // 157 - 128
-  33,        // 161 - 128
-  36,        // 164 - 128
-  39,        // 167 - 128
-  43,        // 171 - 128
-  46,        // 174 - 128
-  49,        // 177 - 128
-  53,        // 181 - 128
-  56,        // 184 - 128
-  59,        // 187 - 128
-  63,        // 191 - 128
-
-  66,        // 194 - 128
-  69,        // 197 - 128
-  73,        // 201 - 128
-  76,        // 204 - 128
-  79,        // 207 - 128
-  83,        // 211 - 128
-  86,        // 214 - 128
-  89,        // 217 - 128
-  92,        // 220 - 128
-  96,        // 224 - 128
-  99,        // 227 - 128
-  102        // 230 - 128
+int shiftright128[] = {
+  0,   // 128 - 128
+  0,   // 128 - 128
+  0,   // 128 - 128
+
+  3,   // 131 - 128
+  6,   // 134 - 128
+  9,   // 137 - 128
+  13,  // 141 - 128
+  16,  // 144 - 128
+  19,  // 147 - 128
+  23,  // 151 - 128
+  26,  // 154 - 128
+  29,  // 157 - 128
+  33,  // 161 - 128
+  36,  // 164 - 128
+  39,  // 167 - 128
+  43,  // 171 - 128
+  46,  // 174 - 128
+  49,  // 177 - 128
+  53,  // 181 - 128
+  56,  // 184 - 128
+  59,  // 187 - 128
+  63,  // 191 - 128
+
+  66,  // 194 - 128
+  69,  // 197 - 128
+  73,  // 201 - 128
+  76,  // 204 - 128
+  79,  // 207 - 128
+  83,  // 211 - 128
+  86,  // 214 - 128
+  89,  // 217 - 128
+  92,  // 220 - 128
+  96,  // 224 - 128
+  99,  // 227 - 128
+  102  // 230 - 128
 };
 
 
-// __bid_maskhigh128[] contains the mask to apply to the top 128 bits of the 
+// maskhigh128[] contains the mask to apply to the top 128 bits of the 
 // 128x128-bit product in order to obtain the high bits of f2*
 // the 64-bit word order is L, H
-UINT64 __bid_maskhigh128[] = {
-  0x0000000000000000ULL,        //  0 = 128 - 128 bits
-  0x0000000000000000ULL,        //  0 = 128 - 128 bits
-  0x0000000000000000ULL,        //  0 = 128 - 128 bits
-  0x0000000000000007ULL,        //  3 = 131 - 128 bits
-  0x000000000000003fULL,        //  6 = 134 - 128 bits
-  0x00000000000001ffULL,        //  9 = 137 - 128 bits
-  0x0000000000001fffULL,        // 13 = 141 - 128 bits
-  0x000000000000ffffULL,        // 16 = 144 - 128 bits
-  0x000000000007ffffULL,        // 19 = 147 - 128 bits
-  0x00000000007fffffULL,        // 23 = 151 - 128 bits
-  0x0000000003ffffffULL,        // 26 = 154 - 128 bits
-  0x000000001fffffffULL,        // 29 = 157 - 128 bits
-  0x00000001ffffffffULL,        // 33 = 161 - 128 bits
-  0x0000000fffffffffULL,        // 36 = 164 - 128 bits
-  0x0000007fffffffffULL,        // 39 = 167 - 128 bits
-  0x000007ffffffffffULL,        // 43 = 171 - 128 bits
-  0x00003fffffffffffULL,        // 46 = 174 - 128 bits
-  0x0001ffffffffffffULL,        // 49 = 177 - 128 bits
-  0x001fffffffffffffULL,        // 53 = 181 - 128 bits
-  0x00ffffffffffffffULL,        // 56 = 184 - 128 bits
-  0x07ffffffffffffffULL,        // 59 = 187 - 128 bits
-  0x7fffffffffffffffULL,        // 63 = 191 - 128 bits
-  0x0000000000000003ULL,        //  2 = 194 - 192 bits
-  0x000000000000001fULL,        //  5 = 197 - 192 bits
-  0x00000000000001ffULL,        //  9 = 201 - 192 bits
-  0x0000000000000fffULL,        // 12 = 204 - 192 bits
-  0x0000000000007fffULL,        // 15 = 207 - 192 bits
-  0x000000000007ffffULL,        // 21 = 211 - 192 bits
-  0x00000000003fffffULL,        // 22 = 214 - 192 bits
-  0x0000000001ffffffULL,        // 25 = 217 - 192 bits
-  0x000000000fffffffULL,        // 28 = 220 - 192 bits
-  0x00000000ffffffffULL,        // 32 = 224 - 192 bits
-  0x00000007ffffffffULL,        // 35 = 227 - 192 bits
-  0x0000003fffffffffULL        // 38 = 230 - 192 bits
+UINT64 maskhigh128[] = {
+  0x0000000000000000ULL,       //  0 = 128 - 128 bits
+  0x0000000000000000ULL,       //  0 = 128 - 128 bits
+  0x0000000000000000ULL,       //  0 = 128 - 128 bits
+  0x0000000000000007ULL,       //  3 = 131 - 128 bits
+  0x000000000000003fULL,       //  6 = 134 - 128 bits
+  0x00000000000001ffULL,       //  9 = 137 - 128 bits
+  0x0000000000001fffULL,       // 13 = 141 - 128 bits
+  0x000000000000ffffULL,       // 16 = 144 - 128 bits
+  0x000000000007ffffULL,       // 19 = 147 - 128 bits
+  0x00000000007fffffULL,       // 23 = 151 - 128 bits
+  0x0000000003ffffffULL,       // 26 = 154 - 128 bits
+  0x000000001fffffffULL,       // 29 = 157 - 128 bits
+  0x00000001ffffffffULL,       // 33 = 161 - 128 bits
+  0x0000000fffffffffULL,       // 36 = 164 - 128 bits
+  0x0000007fffffffffULL,       // 39 = 167 - 128 bits
+  0x000007ffffffffffULL,       // 43 = 171 - 128 bits
+  0x00003fffffffffffULL,       // 46 = 174 - 128 bits
+  0x0001ffffffffffffULL,       // 49 = 177 - 128 bits
+  0x001fffffffffffffULL,       // 53 = 181 - 128 bits
+  0x00ffffffffffffffULL,       // 56 = 184 - 128 bits
+  0x07ffffffffffffffULL,       // 59 = 187 - 128 bits
+  0x7fffffffffffffffULL,       // 63 = 191 - 128 bits
+  0x0000000000000003ULL,       //  2 = 194 - 192 bits
+  0x000000000000001fULL,       //  5 = 197 - 192 bits
+  0x00000000000001ffULL,       //  9 = 201 - 192 bits
+  0x0000000000000fffULL,       // 12 = 204 - 192 bits
+  0x0000000000007fffULL,       // 15 = 207 - 192 bits
+  0x000000000007ffffULL,       // 21 = 211 - 192 bits
+  0x00000000003fffffULL,       // 22 = 214 - 192 bits
+  0x0000000001ffffffULL,       // 25 = 217 - 192 bits
+  0x000000000fffffffULL,       // 28 = 220 - 192 bits
+  0x00000000ffffffffULL,       // 32 = 224 - 192 bits
+  0x00000007ffffffffULL,       // 35 = 227 - 192 bits
+  0x0000003fffffffffULL        // 38 = 230 - 192 bits
 };
 
 
-// __bid_one_half128[] contains the high bits of 1/2 positioned correctly for 
+// onehalf128[] contains the high bits of 1/2 positioned correctly for 
 // comparison with the high bits of f2*
 // the 64-bit word order is L, H
-UINT64 __bid_one_half128[] = {
-  0x0000000000000000ULL,        //  0 bits
-  0x0000000000000000ULL,        //  0 bits
-  0x0000000000000000ULL,        //  0 bits
-  0x0000000000000004ULL,        //  3 bits
-  0x0000000000000020ULL,        //  6 bits
-  0x0000000000000100ULL,        //  9 bits
-  0x0000000000001000ULL,        // 13 bits
-  0x0000000000008000ULL,        // 16 bits
-  0x0000000000040000ULL,        // 19 bits
-  0x0000000000400000ULL,        // 23 bits
-  0x0000000002000000ULL,        // 26 bits
-  0x0000000010000000ULL,        // 29 bits
-  0x0000000100000000ULL,        // 33 bits
-  0x0000000800000000ULL,        // 36 bits
-  0x0000004000000000ULL,        // 39 bits
-  0x0000040000000000ULL,        // 43 bits
-  0x0000200000000000ULL,        // 46 bits
-  0x0001000000000000ULL,        // 49 bits
-  0x0010000000000000ULL,        // 53 bits
-  0x0080000000000000ULL,        // 56 bits
-  0x0400000000000000ULL,        // 59 bits
-  0x4000000000000000ULL,        // 63 bits
-  0x0000000000000002ULL,        // 66 bits
-  0x0000000000000010ULL,        // 69 bits
-  0x0000000000000100ULL,        // 73 bits
-  0x0000000000000800ULL,        // 76 bits
-  0x0000000000004000ULL,        // 79 bits
-  0x0000000000040000ULL,        // 83 bits
-  0x0000000000200000ULL,        // 86 bits
-  0x0000000001000000ULL,        // 89 bits
-  0x0000000008000000ULL,        // 92 bits
-  0x0000000080000000ULL,        // 96 bits
-  0x0000000400000000ULL,        // 99 bits
-  0x0000002000000000ULL        // 102 bits
+UINT64 onehalf128[] = {
+  0x0000000000000000ULL,       //  0 bits
+  0x0000000000000000ULL,       //  0 bits
+  0x0000000000000000ULL,       //  0 bits
+  0x0000000000000004ULL,       //  3 bits
+  0x0000000000000020ULL,       //  6 bits
+  0x0000000000000100ULL,       //  9 bits
+  0x0000000000001000ULL,       // 13 bits
+  0x0000000000008000ULL,       // 16 bits
+  0x0000000000040000ULL,       // 19 bits
+  0x0000000000400000ULL,       // 23 bits
+  0x0000000002000000ULL,       // 26 bits
+  0x0000000010000000ULL,       // 29 bits
+  0x0000000100000000ULL,       // 33 bits
+  0x0000000800000000ULL,       // 36 bits
+  0x0000004000000000ULL,       // 39 bits
+  0x0000040000000000ULL,       // 43 bits
+  0x0000200000000000ULL,       // 46 bits
+  0x0001000000000000ULL,       // 49 bits
+  0x0010000000000000ULL,       // 53 bits
+  0x0080000000000000ULL,       // 56 bits
+  0x0400000000000000ULL,       // 59 bits
+  0x4000000000000000ULL,       // 63 bits
+  0x0000000000000002ULL,       // 66 bits
+  0x0000000000000010ULL,       // 69 bits
+  0x0000000000000100ULL,       // 73 bits
+  0x0000000000000800ULL,       // 76 bits
+  0x0000000000004000ULL,       // 79 bits
+  0x0000000000040000ULL,       // 83 bits
+  0x0000000000200000ULL,       // 86 bits
+  0x0000000001000000ULL,       // 89 bits
+  0x0000000008000000ULL,       // 92 bits
+  0x0000000080000000ULL,       // 96 bits
+  0x0000000400000000ULL,       // 99 bits
+  0x0000002000000000ULL        // 102 bits
 };
 
-UINT64 __bid_ten2mk64[] = {
-  0x199999999999999aULL,        //  10^(-1) * 2^ 64
-  0x028f5c28f5c28f5dULL,        //  10^(-2) * 2^ 64 
-  0x004189374bc6a7f0ULL,        //  10^(-3) * 2^ 64 
-  0x00346dc5d638865aULL,        //  10^(-4) * 2^ 67 
-  0x0029f16b11c6d1e2ULL,        //  10^(-5) * 2^ 70 
-  0x00218def416bdb1bULL,        //  10^(-6) * 2^ 73 
-  0x0035afe535795e91ULL,        //  10^(-7) * 2^ 77 
-  0x002af31dc4611874ULL,        //  10^(-8) * 2^ 80 
-  0x00225c17d04dad2aULL,        //  10^(-9) * 2^ 83 
-  0x0036f9bfb3af7b76ULL,        // 10^(-10) * 2^ 87 
-  0x002bfaffc2f2c92bULL,        // 10^(-11) * 2^ 90 
-  0x00232f33025bd423ULL,        // 10^(-12) * 2^ 93 
-  0x00384b84d092ed04ULL,        // 10^(-13) * 2^ 97 
-  0x002d09370d425737ULL,        // 10^(-14) * 2^100 
-  0x0024075f3dceac2cULL,        // 10^(-15) * 2^103 
-  0x0039a5652fb11379ULL,        // 10^(-16) * 2^107 
+UINT64 ten2mk64[] = {
+  0x199999999999999aULL,       //  10^(-1) * 2^ 64
+  0x028f5c28f5c28f5dULL,       //  10^(-2) * 2^ 64 
+  0x004189374bc6a7f0ULL,       //  10^(-3) * 2^ 64 
+  0x00346dc5d638865aULL,       //  10^(-4) * 2^ 67 
+  0x0029f16b11c6d1e2ULL,       //  10^(-5) * 2^ 70 
+  0x00218def416bdb1bULL,       //  10^(-6) * 2^ 73 
+  0x0035afe535795e91ULL,       //  10^(-7) * 2^ 77 
+  0x002af31dc4611874ULL,       //  10^(-8) * 2^ 80 
+  0x00225c17d04dad2aULL,       //  10^(-9) * 2^ 83 
+  0x0036f9bfb3af7b76ULL,       // 10^(-10) * 2^ 87 
+  0x002bfaffc2f2c92bULL,       // 10^(-11) * 2^ 90 
+  0x00232f33025bd423ULL,       // 10^(-12) * 2^ 93 
+  0x00384b84d092ed04ULL,       // 10^(-13) * 2^ 97 
+  0x002d09370d425737ULL,       // 10^(-14) * 2^100 
+  0x0024075f3dceac2cULL,       // 10^(-15) * 2^103 
+  0x0039a5652fb11379ULL,       // 10^(-16) * 2^107 
 };
 
-// __bid_ten2mk128trunc[] contains T*, the top Ex >= 128 bits of 10^(-k), 
+// ten2mk128trunc[] contains T*, the top Ex >= 128 bits of 10^(-k), 
 // for 1 <= k <= 34 
 // the 64-bit word order is L, H
-UINT128 __bid_ten2mk128trunc[] = {
-  {{0x9999999999999999ULL, 0x1999999999999999ULL}},        //  10^(-1) * 2^128
-  {{0x28f5c28f5c28f5c2ULL, 0x028f5c28f5c28f5cULL}},        //  10^(-2) * 2^128 
-  {{0x9db22d0e56041893ULL, 0x004189374bc6a7efULL}},        //  10^(-3) * 2^128 
-  {{0x4af4f0d844d013a9ULL, 0x00346dc5d6388659ULL}},        //  10^(-4) * 2^131 
-  {{0x08c3f3e0370cdc87ULL, 0x0029f16b11c6d1e1ULL}},        //  10^(-5) * 2^134 
-  {{0x6d698fe69270b06cULL, 0x00218def416bdb1aULL}},        //  10^(-6) * 2^137 
-  {{0xaf0f4ca41d811a46ULL, 0x0035afe535795e90ULL}},        //  10^(-7) * 2^141 
-  {{0xbf3f70834acdae9fULL, 0x002af31dc4611873ULL}},        //  10^(-8) * 2^144 
-  {{0x65cc5a02a23e254cULL, 0x00225c17d04dad29ULL}},        //  10^(-9) * 2^147 
-  {{0x6fad5cd10396a213ULL, 0x0036f9bfb3af7b75ULL}},        // 10^(-10) * 2^151 
-  {{0xbfbde3da69454e75ULL, 0x002bfaffc2f2c92aULL}},        // 10^(-11) * 2^154 
-  {{0x32fe4fe1edd10b91ULL, 0x00232f33025bd422ULL}},        // 10^(-12) * 2^157 
-  {{0x84ca19697c81ac1bULL, 0x00384b84d092ed03ULL}},        // 10^(-13) * 2^161 
-  {{0x03d4e1213067bce3ULL, 0x002d09370d425736ULL}},        // 10^(-14) * 2^164 
-  {{0x3643e74dc052fd82ULL, 0x0024075f3dceac2bULL}},        // 10^(-15) * 2^167 
-  {{0x56d30baf9a1e626aULL, 0x0039a5652fb11378ULL}},        // 10^(-16) * 2^171 
-  {{0x12426fbfae7eb521ULL, 0x002e1dea8c8da92dULL}},        // 10^(-17) * 2^174 
-  {{0x41cebfcc8b9890e7ULL, 0x0024e4bba3a48757ULL}},        // 10^(-18) * 2^177 
-  {{0x694acc7a78f41b0cULL, 0x003b07929f6da558ULL}},        // 10^(-19) * 2^181 
-  {{0xbaa23d2ec729af3dULL, 0x002f394219248446ULL}},        // 10^(-20) * 2^184 
-  {{0xfbb4fdbf05baf297ULL, 0x0025c768141d369eULL}},        // 10^(-21) * 2^187 
-  {{0x2c54c931a2c4b758ULL, 0x003c7240202ebdcbULL}},        // 10^(-22) * 2^191 
-  {{0x89dd6dc14f03c5e0ULL, 0x00305b66802564a2ULL}},        // 10^(-23) * 2^194 
-  {{0xd4b1249aa59c9e4dULL, 0x0026af8533511d4eULL}},        // 10^(-24) * 2^197 
-  {{0x544ea0f76f60fd48ULL, 0x003de5a1ebb4fbb1ULL}},        // 10^(-25) * 2^201 
-  {{0x76a54d92bf80caa0ULL, 0x00318481895d9627ULL}},        // 10^(-26) * 2^204 
-  {{0x921dd7a89933d54dULL, 0x00279d346de4781fULL}},        // 10^(-27) * 2^207 
-  {{0x8362f2a75b862214ULL, 0x003f61ed7ca0c032ULL}},        // 10^(-28) * 2^211 
-  {{0xcf825bb91604e810ULL, 0x0032b4bdfd4d668eULL}},        // 10^(-29) * 2^214 
-  {{0x0c684960de6a5340ULL, 0x00289097fdd7853fULL}},        // 10^(-30) * 2^217 
-  {{0x3d203ab3e521dc33ULL, 0x002073accb12d0ffULL}},        // 10^(-31) * 2^220 
-  {{0x2e99f7863b696052ULL, 0x0033ec47ab514e65ULL}},        // 10^(-32) * 2^224 
-  {{0x587b2c6b62bab375ULL, 0x002989d2ef743eb7ULL}},        // 10^(-33) * 2^227 
-  {{0xad2f56bc4efbc2c4ULL, 0x00213b0f25f69892ULL}},        // 10^(-34) * 2^230 
+UINT128 ten2mk128trunc[] = {
+  {{0x9999999999999999ULL, 0x1999999999999999ULL}},    //  10^(-1) * 2^128
+  {{0x28f5c28f5c28f5c2ULL, 0x028f5c28f5c28f5cULL}},    //  10^(-2) * 2^128 
+  {{0x9db22d0e56041893ULL, 0x004189374bc6a7efULL}},    //  10^(-3) * 2^128 
+  {{0x4af4f0d844d013a9ULL, 0x00346dc5d6388659ULL}},    //  10^(-4) * 2^131 
+  {{0x08c3f3e0370cdc87ULL, 0x0029f16b11c6d1e1ULL}},    //  10^(-5) * 2^134 
+  {{0x6d698fe69270b06cULL, 0x00218def416bdb1aULL}},    //  10^(-6) * 2^137 
+  {{0xaf0f4ca41d811a46ULL, 0x0035afe535795e90ULL}},    //  10^(-7) * 2^141 
+  {{0xbf3f70834acdae9fULL, 0x002af31dc4611873ULL}},    //  10^(-8) * 2^144 
+  {{0x65cc5a02a23e254cULL, 0x00225c17d04dad29ULL}},    //  10^(-9) * 2^147 
+  {{0x6fad5cd10396a213ULL, 0x0036f9bfb3af7b75ULL}},    // 10^(-10) * 2^151 
+  {{0xbfbde3da69454e75ULL, 0x002bfaffc2f2c92aULL}},    // 10^(-11) * 2^154 
+  {{0x32fe4fe1edd10b91ULL, 0x00232f33025bd422ULL}},    // 10^(-12) * 2^157 
+  {{0x84ca19697c81ac1bULL, 0x00384b84d092ed03ULL}},    // 10^(-13) * 2^161 
+  {{0x03d4e1213067bce3ULL, 0x002d09370d425736ULL}},    // 10^(-14) * 2^164 
+  {{0x3643e74dc052fd82ULL, 0x0024075f3dceac2bULL}},    // 10^(-15) * 2^167 
+  {{0x56d30baf9a1e626aULL, 0x0039a5652fb11378ULL}},    // 10^(-16) * 2^171 
+  {{0x12426fbfae7eb521ULL, 0x002e1dea8c8da92dULL}},    // 10^(-17) * 2^174 
+  {{0x41cebfcc8b9890e7ULL, 0x0024e4bba3a48757ULL}},    // 10^(-18) * 2^177 
+  {{0x694acc7a78f41b0cULL, 0x003b07929f6da558ULL}},    // 10^(-19) * 2^181 
+  {{0xbaa23d2ec729af3dULL, 0x002f394219248446ULL}},    // 10^(-20) * 2^184 
+  {{0xfbb4fdbf05baf297ULL, 0x0025c768141d369eULL}},    // 10^(-21) * 2^187 
+  {{0x2c54c931a2c4b758ULL, 0x003c7240202ebdcbULL}},    // 10^(-22) * 2^191 
+  {{0x89dd6dc14f03c5e0ULL, 0x00305b66802564a2ULL}},    // 10^(-23) * 2^194 
+  {{0xd4b1249aa59c9e4dULL, 0x0026af8533511d4eULL}},    // 10^(-24) * 2^197 
+  {{0x544ea0f76f60fd48ULL, 0x003de5a1ebb4fbb1ULL}},    // 10^(-25) * 2^201 
+  {{0x76a54d92bf80caa0ULL, 0x00318481895d9627ULL}},    // 10^(-26) * 2^204 
+  {{0x921dd7a89933d54dULL, 0x00279d346de4781fULL}},    // 10^(-27) * 2^207 
+  {{0x8362f2a75b862214ULL, 0x003f61ed7ca0c032ULL}},    // 10^(-28) * 2^211 
+  {{0xcf825bb91604e810ULL, 0x0032b4bdfd4d668eULL}},    // 10^(-29) * 2^214 
+  {{0x0c684960de6a5340ULL, 0x00289097fdd7853fULL}},    // 10^(-30) * 2^217 
+  {{0x3d203ab3e521dc33ULL, 0x002073accb12d0ffULL}},    // 10^(-31) * 2^220 
+  {{0x2e99f7863b696052ULL, 0x0033ec47ab514e65ULL}},    // 10^(-32) * 2^224 
+  {{0x587b2c6b62bab375ULL, 0x002989d2ef743eb7ULL}},    // 10^(-33) * 2^227 
+  {{0xad2f56bc4efbc2c4ULL, 0x00213b0f25f69892ULL}},    // 10^(-34) * 2^230 
 };
 
-// __bid_ten2mk128M[k - 1] = 10^(-k) * 2^exp (k), where 1 <= k <= 4 and
-// exp (k) = __bid_shiftright128[k - 1] + 128
+// ten2mk128M[k - 1] = 10^(-k) * 2^exp (k), where 1 <= k <= 4 and
+// exp (k) = shiftright128[k - 1] + 128
 // the 64-bit word order is L, H
-UINT128 __bid_ten2mk128M[] = {
-  {{0xcccccccccccccccdULL, 0xccccccccccccccccULL}},        //  10^(-1) * 2^131
-  {{0x3d70a3d70a3d70a4ULL, 0xa3d70a3d70a3d70aULL}},        //  10^(-2) * 2^134
-  {{0x645a1cac083126eaULL, 0x83126e978d4fdf3bULL}},        //  10^(-3) * 2^137
-  {{0xd3c36113404ea4a9ULL, 0xd1b71758e219652bULL}}        //  10^(-4) * 2^141
+UINT128 ten2mk128M[] = {
+  {{0xcccccccccccccccdULL, 0xccccccccccccccccULL}},    //  10^(-1) * 2^131
+  {{0x3d70a3d70a3d70a4ULL, 0xa3d70a3d70a3d70aULL}},    //  10^(-2) * 2^134
+  {{0x645a1cac083126eaULL, 0x83126e978d4fdf3bULL}},    //  10^(-3) * 2^137
+  {{0xd3c36113404ea4a9ULL, 0xd1b71758e219652bULL}}     //  10^(-4) * 2^141
 };
 
-// __bid_ten2mk128truncM[] contains T*, the top Ex >= 128 bits of 10^(-k),
+// ten2mk128truncM[] contains T*, the top Ex >= 128 bits of 10^(-k),
 // for 1 <= k <= 4; the top bits which are 0 are not represented
 // the 64-bit word order is L, H
-UINT128 __bid_ten2mk128truncM[] = {
-  {{0xccccccccccccccccULL, 0xccccccccccccccccULL}},        //  10^(-1) * 2^131
-  {{0x3d70a3d70a3d70a3ULL, 0xa3d70a3d70a3d70aULL}},        //  10^(-2) * 2^134
-  {{0x645a1cac083126e9ULL, 0x83126e978d4fdf3bULL}},        //  10^(-3) * 2^137
-  {{0xd3c36113404ea4a8ULL, 0xd1b71758e219652bULL}}        //  10^(-4) * 2^141
+UINT128 ten2mk128truncM[] = {
+  {{0xccccccccccccccccULL, 0xccccccccccccccccULL}},    //  10^(-1) * 2^131
+  {{0x3d70a3d70a3d70a3ULL, 0xa3d70a3d70a3d70aULL}},    //  10^(-2) * 2^134
+  {{0x645a1cac083126e9ULL, 0x83126e978d4fdf3bULL}},    //  10^(-3) * 2^137
+  {{0xd3c36113404ea4a8ULL, 0xd1b71758e219652bULL}}     //  10^(-4) * 2^141
 };
 
-// __bid_shiftright128M[] contains the right shift count to obtain C2* from the top
+// shiftright128M[] contains the right shift count to obtain C2* from the top
 // 128 bits of the 128x128-bit product C2 * Kx
-int __bid_shiftright128M[] = {
-  3,        // 131 - 128
-  6,        // 134 - 128
-  9,        // 137 - 128
-  13        // 141 - 128
+int shiftright128M[] = {
+  3,   // 131 - 128
+  6,   // 134 - 128
+  9,   // 137 - 128
+  13   // 141 - 128
 };
 
-// __bid_maskhigh128M[] contains the mask to apply to the top 128 bits of the
+// maskhigh128M[] contains the mask to apply to the top 128 bits of the
 // 128x128-bit product in order to obtain the high bits of f*
 // the high 64 bits of the mask are 0, so only the low 64 bits are represented
-UINT64 __bid_maskhigh128M[] = {
-  0x0000000000000007ULL,        //  3 = 131 - 128 bits
-  0x000000000000003fULL,        //  6 = 134 - 128 bits
-  0x00000000000001ffULL,        //  9 = 137 - 128 bits
-  0x0000000000001fffULL        // 13 = 141 - 128 bits
+UINT64 maskhigh128M[] = {
+  0x0000000000000007ULL,       //  3 = 131 - 128 bits
+  0x000000000000003fULL,       //  6 = 134 - 128 bits
+  0x00000000000001ffULL,       //  9 = 137 - 128 bits
+  0x0000000000001fffULL        // 13 = 141 - 128 bits
 };
 
-// __bid_one_half128M[] contains 1/2 positioned correctly for
+// onehalf128M[] contains 1/2 positioned correctly for
 // comparison with the high bits of f*
 // the high 64 bits are 0, so only the low 64 bits are represented
-UINT64 __bid_one_half128M[] = {
-  0x0000000000000004ULL,        //  3 bits
-  0x0000000000000020ULL,        //  6 bits
-  0x0000000000000100ULL,        //  9 bits
-  0x0000000000001000ULL        // 13 bits
+UINT64 onehalf128M[] = {
+  0x0000000000000004ULL,       //  3 bits
+  0x0000000000000020ULL,       //  6 bits
+  0x0000000000000100ULL,       //  9 bits
+  0x0000000000001000ULL        // 13 bits
 };
 
-// __bid_ten2mk192M[k - 1] = 10^(-k-4) * 2^exp (k), where 1 <= k <= 19 and
-// exp (k) = __bid_shiftright128[k - 1] + 128
+// ten2mk192M[k - 1] = 10^(-k-4) * 2^exp (k), where 1 <= k <= 19 and
+// exp (k) = shiftright128[k - 1] + 128
 // the 64-bit word order is L, M, H
-UINT192 __bid_ten2mk192M[] = {
-  {{0xcddd6e04c0592104ULL, 0x0fcf80dc33721d53ULL, 0xa7c5ac471b478423ULL}},
+UINT192 ten2mk192M[] = {
+  {{0xcddd6e04c0592104ULL, 0x0fcf80dc33721d53ULL,
+    0xa7c5ac471b478423ULL}},
   //  10^(-5) * 2^208
-  {{0xd7e45803cd141a6aULL, 0xa63f9a49c2c1b10fULL, 0x8637bd05af6c69b5ULL}},
+  {{0xd7e45803cd141a6aULL, 0xa63f9a49c2c1b10fULL,
+    0x8637bd05af6c69b5ULL}},
   //  10^(-6) * 2^211
-  {{0x8ca08cd2e1b9c3dcULL, 0x3d32907604691b4cULL, 0xd6bf94d5e57a42bcULL}},
+  {{0x8ca08cd2e1b9c3dcULL, 0x3d32907604691b4cULL,
+    0xd6bf94d5e57a42bcULL}},
   //  10^(-7) * 2^215
-  {{0x3d4d3d758161697dULL, 0xfdc20d2b36ba7c3dULL, 0xabcc77118461cefcULL}},
+  {{0x3d4d3d758161697dULL, 0xfdc20d2b36ba7c3dULL,
+    0xabcc77118461cefcULL}},
   //  10^(-8) * 2^218
-  {{0xfdd7645e011abacaULL, 0x31680a88f8953030ULL, 0x89705f4136b4a597ULL}},
+  {{0xfdd7645e011abacaULL, 0x31680a88f8953030ULL,
+    0x89705f4136b4a597ULL}},
   //  10^(-9) * 2^221
-  {{0x2fbf06fcce912addULL, 0xb573440e5a884d1bULL, 0xdbe6fecebdedd5beULL}},
+  {{0x2fbf06fcce912addULL, 0xb573440e5a884d1bULL,
+    0xdbe6fecebdedd5beULL}},
   //  10^(-10) * 2^225
-  {{0xf2ff38ca3eda88b1ULL, 0xf78f69a51539d748ULL, 0xafebff0bcb24aafeULL}},
+  {{0xf2ff38ca3eda88b1ULL, 0xf78f69a51539d748ULL,
+    0xafebff0bcb24aafeULL}},
   //  10^(-11) * 2^228
-  {{0xf598fa3b657ba08eULL, 0xf93f87b7442e45d3ULL, 0x8cbccc096f5088cbULL}},
+  {{0xf598fa3b657ba08eULL, 0xf93f87b7442e45d3ULL,
+    0x8cbccc096f5088cbULL}},
   //  10^(-12) * 2^231
-  {{0x88f4c3923bf900e3ULL, 0x2865a5f206b06fb9ULL, 0xe12e13424bb40e13ULL}},
+  {{0x88f4c3923bf900e3ULL, 0x2865a5f206b06fb9ULL,
+    0xe12e13424bb40e13ULL}},
   //  10^(-13) * 2^235
-  {{0x6d909c74fcc733e9ULL, 0x538484c19ef38c94ULL, 0xb424dc35095cd80fULL}},
+  {{0x6d909c74fcc733e9ULL, 0x538484c19ef38c94ULL,
+    0xb424dc35095cd80fULL}},
   //  10^(-14) * 2^238
-  {{0x57a6e390ca38f654ULL, 0x0f9d37014bf60a10ULL, 0x901d7cf73ab0acd9ULL}},
+  {{0x57a6e390ca38f654ULL, 0x0f9d37014bf60a10ULL,
+    0x901d7cf73ab0acd9ULL}},
   //  10^(-15) * 2^241
-  {{0xbf716c1add27f086ULL, 0x4c2ebe687989a9b3ULL, 0xe69594bec44de15bULL}},
+  {{0xbf716c1add27f086ULL, 0x4c2ebe687989a9b3ULL,
+    0xe69594bec44de15bULL}},
   //  10^(-16) * 2^245
-  {{0xff8df0157db98d38ULL, 0x09befeb9fad487c2ULL, 0xb877aa3236a4b449ULL}},
+  {{0xff8df0157db98d38ULL, 0x09befeb9fad487c2ULL,
+    0xb877aa3236a4b449ULL}},
   //  10^(-17) * 2^248
-  {{0x32d7f344649470faULL, 0x3aff322e62439fcfULL, 0x9392ee8e921d5d07ULL}},
+  {{0x32d7f344649470faULL, 0x3aff322e62439fcfULL,
+    0x9392ee8e921d5d07ULL}},
   //  10^(-18) * 2^251
-  {{0x1e2652070753e7f5ULL, 0x2b31e9e3d06c32e5ULL, 0xec1e4a7db69561a5ULL}},
+  {{0x1e2652070753e7f5ULL, 0x2b31e9e3d06c32e5ULL,
+    0xec1e4a7db69561a5ULL}},
   //  10^(-19) * 2^255
-  {{0x181ea8059f76532bULL, 0x88f4bb1ca6bcf584ULL, 0xbce5086492111aeaULL}},
+  {{0x181ea8059f76532bULL, 0x88f4bb1ca6bcf584ULL,
+    0xbce5086492111aeaULL}},
   //  10^(-20) * 2^258
-  {{0x467eecd14c5ea8efULL, 0xd3f6fc16ebca5e03ULL, 0x971da05074da7beeULL}},
+  {{0x467eecd14c5ea8efULL, 0xd3f6fc16ebca5e03ULL,
+    0x971da05074da7beeULL}},
   //  10^(-21) * 2^261
-  {{0x70cb148213caa7e5ULL, 0x5324c68b12dd6338ULL, 0xf1c90080baf72cb1ULL}},
+  {{0x70cb148213caa7e5ULL, 0x5324c68b12dd6338ULL,
+    0xf1c90080baf72cb1ULL}},
   //  10^(-22) * 2^265
   {{0x8d6f439b43088651ULL, 0x75b7053c0f178293ULL, 0xc16d9a0095928a27ULL}}
   //  10^(-23) * 2^268
 };
 
-// __bid_ten2mk192truncM[] contains T*, the top Ex >= 192 bits of 10^(-k),
+// ten2mk192truncM[] contains T*, the top Ex >= 192 bits of 10^(-k),
 // for 5 <= k <= 23; the top bits which are 0 are not represented
 // the 64-bit word order is L, M, H
-UINT192 __bid_ten2mk192truncM[] = {
-  {{0xcddd6e04c0592103ULL, 0x0fcf80dc33721d53ULL, 0xa7c5ac471b478423ULL}},
+UINT192 ten2mk192truncM[] = {
+  {{0xcddd6e04c0592103ULL, 0x0fcf80dc33721d53ULL,
+    0xa7c5ac471b478423ULL}},
   //  10^(-5) * 2^208
-  {{0xd7e45803cd141a69ULL, 0xa63f9a49c2c1b10fULL, 0x8637bd05af6c69b5ULL}},
+  {{0xd7e45803cd141a69ULL, 0xa63f9a49c2c1b10fULL,
+    0x8637bd05af6c69b5ULL}},
   //  10^(-6) * 2^211
-  {{0x8ca08cd2e1b9c3dbULL, 0x3d32907604691b4cULL, 0xd6bf94d5e57a42bcULL}},
+  {{0x8ca08cd2e1b9c3dbULL, 0x3d32907604691b4cULL,
+    0xd6bf94d5e57a42bcULL}},
   //  10^(-7) * 2^215
-  {{0x3d4d3d758161697cULL, 0xfdc20d2b36ba7c3dULL, 0xabcc77118461cefcULL}},
+  {{0x3d4d3d758161697cULL, 0xfdc20d2b36ba7c3dULL,
+    0xabcc77118461cefcULL}},
   //  10^(-8) * 2^218
-  {{0xfdd7645e011abac9ULL, 0x31680a88f8953030ULL, 0x89705f4136b4a597ULL}},
+  {{0xfdd7645e011abac9ULL, 0x31680a88f8953030ULL,
+    0x89705f4136b4a597ULL}},
   //  10^(-9) * 2^221
-  {{0x2fbf06fcce912adcULL, 0xb573440e5a884d1bULL, 0xdbe6fecebdedd5beULL}},
+  {{0x2fbf06fcce912adcULL, 0xb573440e5a884d1bULL,
+    0xdbe6fecebdedd5beULL}},
   //  10^(-10) * 2^225
-  {{0xf2ff38ca3eda88b0ULL, 0xf78f69a51539d748ULL, 0xafebff0bcb24aafeULL}},
+  {{0xf2ff38ca3eda88b0ULL, 0xf78f69a51539d748ULL,
+    0xafebff0bcb24aafeULL}},
   //  10^(-11) * 2^228
-  {{0xf598fa3b657ba08dULL, 0xf93f87b7442e45d3ULL, 0x8cbccc096f5088cbULL}},
+  {{0xf598fa3b657ba08dULL, 0xf93f87b7442e45d3ULL,
+    0x8cbccc096f5088cbULL}},
   //  10^(-12) * 2^231
-  {{0x88f4c3923bf900e2ULL, 0x2865a5f206b06fb9ULL, 0xe12e13424bb40e13ULL}},
+  {{0x88f4c3923bf900e2ULL, 0x2865a5f206b06fb9ULL,
+    0xe12e13424bb40e13ULL}},
   //  10^(-13) * 2^235
-  {{0x6d909c74fcc733e8ULL, 0x538484c19ef38c94ULL, 0xb424dc35095cd80fULL}},
+  {{0x6d909c74fcc733e8ULL, 0x538484c19ef38c94ULL,
+    0xb424dc35095cd80fULL}},
   //  10^(-14) * 2^238
-  {{0x57a6e390ca38f653ULL, 0x0f9d37014bf60a10ULL, 0x901d7cf73ab0acd9ULL}},
+  {{0x57a6e390ca38f653ULL, 0x0f9d37014bf60a10ULL,
+    0x901d7cf73ab0acd9ULL}},
   //  10^(-15) * 2^241
-  {{0xbf716c1add27f085ULL, 0x4c2ebe687989a9b3ULL, 0xe69594bec44de15bULL}},
+  {{0xbf716c1add27f085ULL, 0x4c2ebe687989a9b3ULL,
+    0xe69594bec44de15bULL}},
   //  10^(-16) * 2^245
-  {{0xff8df0157db98d37ULL, 0x09befeb9fad487c2ULL, 0xb877aa3236a4b449ULL}},
+  {{0xff8df0157db98d37ULL, 0x09befeb9fad487c2ULL,
+    0xb877aa3236a4b449ULL}},
   //  10^(-17) * 2^248
-  {{0x32d7f344649470f9ULL, 0x3aff322e62439fcfULL, 0x9392ee8e921d5d07ULL}},
+  {{0x32d7f344649470f9ULL, 0x3aff322e62439fcfULL,
+    0x9392ee8e921d5d07ULL}},
   //  10^(-18) * 2^251
-  {{0x1e2652070753e7f4ULL, 0x2b31e9e3d06c32e5ULL, 0xec1e4a7db69561a5ULL}},
+  {{0x1e2652070753e7f4ULL, 0x2b31e9e3d06c32e5ULL,
+    0xec1e4a7db69561a5ULL}},
   //  10^(-19) * 2^255
-  {{0x181ea8059f76532aULL, 0x88f4bb1ca6bcf584ULL, 0xbce5086492111aeaULL}},
+  {{0x181ea8059f76532aULL, 0x88f4bb1ca6bcf584ULL,
+    0xbce5086492111aeaULL}},
   //  10^(-20) * 2^258
-  {{0x467eecd14c5ea8eeULL, 0xd3f6fc16ebca5e03ULL, 0x971da05074da7beeULL}},
+  {{0x467eecd14c5ea8eeULL, 0xd3f6fc16ebca5e03ULL,
+    0x971da05074da7beeULL}},
   //  10^(-21) * 2^261
-  {{0x70cb148213caa7e4ULL, 0x5324c68b12dd6338ULL, 0xf1c90080baf72cb1ULL}},
+  {{0x70cb148213caa7e4ULL, 0x5324c68b12dd6338ULL,
+    0xf1c90080baf72cb1ULL}},
   //  10^(-22) * 2^265
   {{0x8d6f439b43088650ULL, 0x75b7053c0f178293ULL, 0xc16d9a0095928a27ULL}}
   //  10^(-23) * 2^268
 };
 
-// __bid_shiftright192M[] contains the right shift count to obtain C2* from the top
+// shiftright192M[] contains the right shift count to obtain C2* from the top
 // 192 bits of the 192x192-bit product C2 * Kx if 0 <= ind <= 14 where ind is 
 // the index in the table, or from the top 128 bits if 15 <= ind <= 18
-int __bid_shiftright192M[] = {
-  16,        // 208 - 192
-  19,        // 211 - 192
-  23,        // 215 - 192
-  26,        // 218 - 192
-  29,        // 221 - 192
-  33,        // 225 - 192
-  36,        // 228 - 192
-  39,        // 231 - 192
-  43,        // 235 - 192
-  46,        // 238 - 192
- &nb