aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.7/libdecnumber
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2012-10-01 10:30:31 -0700
committerBen Cheng <bccheng@google.com>2012-10-01 10:30:31 -0700
commit82bcbebce43f0227f506d75a5b764b6847041bae (patch)
treefe9f8597b48a430c4daeb5123e3e8eb28e6f9da9 /gcc-4.7/libdecnumber
parent3c052de3bb16ac53b6b6ed659ec7557eb84c7590 (diff)
downloadtoolchain_gcc-82bcbebce43f0227f506d75a5b764b6847041bae.tar.gz
toolchain_gcc-82bcbebce43f0227f506d75a5b764b6847041bae.tar.bz2
toolchain_gcc-82bcbebce43f0227f506d75a5b764b6847041bae.zip
Initial check-in of gcc 4.7.2.
Change-Id: I4a2f5a921c21741a0e18bda986d77e5f1bef0365
Diffstat (limited to 'gcc-4.7/libdecnumber')
-rw-r--r--gcc-4.7/libdecnumber/.gitignore1
-rw-r--r--gcc-4.7/libdecnumber/ChangeLog597
-rw-r--r--gcc-4.7/libdecnumber/Makefile.in195
-rw-r--r--gcc-4.7/libdecnumber/aclocal.m417
-rw-r--r--gcc-4.7/libdecnumber/bid/bid-dpd.h40
-rw-r--r--gcc-4.7/libdecnumber/bid/bid2dpd_dpd2bid.c423
-rw-r--r--gcc-4.7/libdecnumber/bid/bid2dpd_dpd2bid.h10402
-rw-r--r--gcc-4.7/libdecnumber/bid/decimal128.c145
-rw-r--r--gcc-4.7/libdecnumber/bid/decimal128.h1
-rw-r--r--gcc-4.7/libdecnumber/bid/decimal128Local.h1
-rw-r--r--gcc-4.7/libdecnumber/bid/decimal128Symbols.h1
-rw-r--r--gcc-4.7/libdecnumber/bid/decimal32.c145
-rw-r--r--gcc-4.7/libdecnumber/bid/decimal32.h1
-rw-r--r--gcc-4.7/libdecnumber/bid/decimal32Symbols.h1
-rw-r--r--gcc-4.7/libdecnumber/bid/decimal64.c145
-rw-r--r--gcc-4.7/libdecnumber/bid/decimal64.h1
-rw-r--r--gcc-4.7/libdecnumber/bid/decimal64Symbols.h1
-rw-r--r--gcc-4.7/libdecnumber/bid/host-ieee128.c58
-rw-r--r--gcc-4.7/libdecnumber/bid/host-ieee32.c52
-rw-r--r--gcc-4.7/libdecnumber/bid/host-ieee64.c52
-rw-r--r--gcc-4.7/libdecnumber/config.in94
-rwxr-xr-xgcc-4.7/libdecnumber/configure6554
-rw-r--r--gcc-4.7/libdecnumber/configure.ac101
-rw-r--r--gcc-4.7/libdecnumber/dconfig.h39
-rw-r--r--gcc-4.7/libdecnumber/decBasic.c3909
-rw-r--r--gcc-4.7/libdecnumber/decCommon.c1847
-rw-r--r--gcc-4.7/libdecnumber/decCommonSymbols.h9
-rw-r--r--gcc-4.7/libdecnumber/decContext.c450
-rw-r--r--gcc-4.7/libdecnumber/decContext.h273
-rw-r--r--gcc-4.7/libdecnumber/decContextSymbols.h24
-rw-r--r--gcc-4.7/libdecnumber/decDPD.h1218
-rw-r--r--gcc-4.7/libdecnumber/decDPDSymbols.h15
-rw-r--r--gcc-4.7/libdecnumber/decDouble.c147
-rw-r--r--gcc-4.7/libdecnumber/decDouble.h164
-rw-r--r--gcc-4.7/libdecnumber/decDoubleSymbols.h84
-rw-r--r--gcc-4.7/libdecnumber/decExcept.c54
-rw-r--r--gcc-4.7/libdecnumber/decExcept.h34
-rw-r--r--gcc-4.7/libdecnumber/decLibrary.c71
-rw-r--r--gcc-4.7/libdecnumber/decNumber.c8137
-rw-r--r--gcc-4.7/libdecnumber/decNumber.h203
-rw-r--r--gcc-4.7/libdecnumber/decNumberLocal.h755
-rw-r--r--gcc-4.7/libdecnumber/decNumberSymbols.h71
-rw-r--r--gcc-4.7/libdecnumber/decPacked.c230
-rw-r--r--gcc-4.7/libdecnumber/decPacked.h65
-rw-r--r--gcc-4.7/libdecnumber/decPackedSymbols.h9
-rw-r--r--gcc-4.7/libdecnumber/decQuad.c141
-rw-r--r--gcc-4.7/libdecnumber/decQuad.h186
-rw-r--r--gcc-4.7/libdecnumber/decQuadSymbols.h82
-rw-r--r--gcc-4.7/libdecnumber/decRound.c97
-rw-r--r--gcc-4.7/libdecnumber/decRound.h32
-rw-r--r--gcc-4.7/libdecnumber/decSingle.c79
-rw-r--r--gcc-4.7/libdecnumber/decSingle.h98
-rw-r--r--gcc-4.7/libdecnumber/decSingleSymbols.h24
-rw-r--r--gcc-4.7/libdecnumber/dpd/decimal128.c560
-rw-r--r--gcc-4.7/libdecnumber/dpd/decimal128.h104
-rw-r--r--gcc-4.7/libdecnumber/dpd/decimal128Local.h42
-rw-r--r--gcc-4.7/libdecnumber/dpd/decimal128Symbols.h26
-rw-r--r--gcc-4.7/libdecnumber/dpd/decimal32.c483
-rw-r--r--gcc-4.7/libdecnumber/dpd/decimal32.h102
-rw-r--r--gcc-4.7/libdecnumber/dpd/decimal32Symbols.h26
-rw-r--r--gcc-4.7/libdecnumber/dpd/decimal64.c846
-rw-r--r--gcc-4.7/libdecnumber/dpd/decimal64.h104
-rw-r--r--gcc-4.7/libdecnumber/dpd/decimal64Symbols.h26
63 files changed, 39894 insertions, 0 deletions
diff --git a/gcc-4.7/libdecnumber/.gitignore b/gcc-4.7/libdecnumber/.gitignore
new file mode 100644
index 000000000..7e47161d6
--- /dev/null
+++ b/gcc-4.7/libdecnumber/.gitignore
@@ -0,0 +1 @@
+/gstdint.h
diff --git a/gcc-4.7/libdecnumber/ChangeLog b/gcc-4.7/libdecnumber/ChangeLog
new file mode 100644
index 000000000..5efe05532
--- /dev/null
+++ b/gcc-4.7/libdecnumber/ChangeLog
@@ -0,0 +1,597 @@
+2012-09-20 Release Manager
+
+ * GCC 4.7.2 released.
+
+2012-06-14 Release Manager
+
+ * GCC 4.7.1 released.
+
+2012-03-22 Release Manager
+
+ * GCC 4.7.0 released.
+
+2011-12-20 Andreas Schwab <schwab@linux-m68k.org>
+
+ * configure: Regenerate.
+
+2011-12-19 Andreas Schwab <schwab@linux-m68k.org>
+
+ * configure: Regenerate.
+
+2011-04-20 Jim Meyering <meyering@redhat.com>
+
+ * decNumber.c (decNumberFromString): Remove useless
+ if-before-free test.
+ (decNumberCompareTotalMag, decNumberExp, decNumberFMA): Likewise.
+ (decNumberLn, decNumberLog10, decNumberPower): Likewise.
+ (decNumberReduce, decNumberSquareRoot, decAddOp): Likewise.
+ (decDivideOp, NEEDTWO, decExpOp, LN2): Likewise.
+
+2011-03-28 Mike Frysinger <vapier@gentoo.org>
+
+ * .gitignore: New file.
+
+2010-11-24 Nathan Froyd <froydnj@codesourcery.com>
+
+ * dconfig.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
+ (WORDS_BIG_ENDIAN): Define based on value of __FLOAT_WORD_ORDER__.
+
+2010-10-23 Nathan Froyd <froydnj@codesourcery.com>
+
+ * dconfig.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+ (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
+
+2010-09-10 Kai Tietz <kai.tietz@onevision.com>
+
+ * configure: Regenerated.
+
+2010-09-08 Tristan Gingold <gingold@adacore.com>
+
+ PR 44001
+ * Makefile.in (objext): New variable.
+ (bid_OBJS): Use $(objext) for extension.
+ (libdecnumber_a_OBJS): Ditto.
+ (mostlyclean): Ditto
+ (.c.o): Ditto.
+ Update dependencies.
+
+2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/45524
+ * configure.ac (enable_decimal_float): Set to
+ $default_decimal_float.
+ * configure: Regenerated.
+
+2010-09-06 Andreas Schwab <schwab@redhat.com>
+
+ * configure: Regenerate.
+
+2010-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
+ * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
+ * configure: Regenerate.
+ * aclocal.m4: Regenerate.
+
+2010-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
+2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * aclocal.m4: Regenerate.
+
+2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * configure: Regenerate.
+
+2009-11-28 Jakub Jelinek <jakub@redhat.com>
+
+ * decContext.c (decContextTestEndian): Move adj definition into
+ #if DECCHECK guarded code.
+
+2009-09-09 Paolo Bonzini <bonzini@gnu.org>
+
+ * configure: Regenerate.
+
+2009-09-08 Paolo Bonzini <bonzini@gnu.org>
+
+ * configure: Regenerate.
+
+2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure.ac (AC_PREREQ): Bump to 2.64.
+
+2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+
+2009-08-13 Janis Johnson <janis187@us.ibm.com>
+
+ PR c/41046
+ * decContext.c (decContextTestEndian): Call printf only if DECCHECK.
+ * decCommon.c ( decFloatShow): Define function only for DECCHECK
+ or DECTRACE.
+
+2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.in (aclocal_deps): New variable.
+ ($(srcdir)/aclocal.m4): Use it, for portable makefile syntax.
+
+2009-05-31 Ian Lance Taylor <iant@google.com>
+
+ * decContext.h: Add extern "C" if compiling with C++.
+ * decDPD.h: Likewise.
+ * decNumber.h: Likewise.
+ * dpd/decimal32.h: Likewise.
+ * dpd/decimal64.h: Likewise.
+ * dpd/decimal128.h: Likewise.
+
+2009-04-09 Nick Clifton <nickc@redhat.com>
+
+ * decRound.c: Change copyright header to refer to version 3 of
+ the GNU General Public License with version 3.1 of the GCC
+ Runtime Library Exception and to point readers at the COPYING3
+ and COPYING3.RUNTIME files and the FSF's license web page.
+ * bid/bid-dpd.h: Likewise.
+ * bid/bid2dpd_dpd2bid.c: Likewise.
+ * bid/bid2dpd_dpd2bid.h: Likewise.
+ * bid/decimal128.c: Likewise.
+ * bid/decimal32.c: Likewise.
+ * bid/decimal64.c: Likewise.
+ * bid/host-ieee128.c: Likewise.
+ * bid/host-ieee32.c: Likewise.
+ * bid/host-ieee64.c: Likewise.
+ * dconfig.h: Likewise.
+ * decBasic.c: Likewise.
+ * decCommon.c: Likewise.
+ * decContext.c: Likewise.
+ * decContext.h: Likewise.
+ * decDPD.h: Likewise.
+ * decDouble.c: Likewise.
+ * decDouble.h: Likewise.
+ * decExcept.c: Likewise.
+ * decExcept.h: Likewise.
+ * decLibrary.c: Likewise.
+ * decNumber.c: Likewise.
+ * decNumber.h: Likewise.
+ * decNumberLocal.h: Likewise.
+ * decPacked.c: Likewise.
+ * decPacked.h: Likewise.
+ * decQuad.c: Likewise.
+ * decQuad.h: Likewise.
+ * decRound.h: Likewise.
+ * decSingle.c: Likewise.
+ * decSingle.h: Likewise.
+ * dpd/decimal128.c: Likewise.
+ * dpd/decimal128.h: Likewise.
+ * dpd/decimal128Local.h: Likewise.
+ * dpd/decimal32.c: Likewise.
+ * dpd/decimal32.h: Likewise.
+ * dpd/decimal64.c: Likewise.
+ * dpd/decimal64.h: Likewise.
+
+2009-04-09 Jakub Jelinek <jakub@redhat.com>
+
+ * Makefile.in: Change copyright header to refer to version
+ 3 of the GNU General Public License and to point readers at the
+ COPYING3 file and the FSF's license web page.
+ * configure.ac: Likewise.
+
+2009-04-01 Ben Elliston <bje@au.ibm.com>
+
+ * decContext.h: Include gstdint.h instead of <stdint.h>.
+
+2009-03-30 Ben Elliston <bje@au.ibm.com>
+
+ * decNumber.c, decNumber.h, decNumberLocal.h, decDouble.c,
+ decDouble.h, decSingle.c, decContext.c, decSingle.h, decPacked.c,
+ decCommon.c, decContext.h, decQuad.c, decPacked.h, decQuad.h,
+ decDPD.h, decBasic.c: Upgrade to decNumber 3.61.
+ * dpd/decimal128.h, dpd/decimal32.c, dpd/decimal32.h,
+ dpd/decimal64.c, dpd/decimal128.c, dpd/decimal64.h: Likewise.
+
+2009-02-10 Joseph Myers <joseph@codesourcery.com>
+
+ * Makefile.in (clean): Don't remove makedepend$(EXEEXT).
+
+2008-10-27 Janis Johnson <janis187@us.ibm.com>
+
+ PR other/37897
+ * decDouble.h (decDouble): Replace struct with union accessible
+ by more types.
+ * decSingle.h (decSingle): Ditto.
+ * decQuad.h (decQuad): Ditto.
+ * decNumberLocal.h (DFWORD, DFBYTE, DFWWORD): access decFloat via
+ new members.
+ * decBasic.c (decFloatCompareTotal): Avoid type-pun violation.
+ (decNumberCompare): Ditto.
+
+2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.in ($(srcdir)/aclocal.m4): Update dependencies.
+ * configure: Regenerate.
+
+2008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.in (datarootdir): New variable.
+
+2008-06-10 Joseph Myers <joseph@codesourcery.com>
+
+ * dconfig.h: New.
+ * decContext.c, decExcept.c, decExcept.h, decLibrary.c,
+ decNumber.c, decNumberLocal.h, decRound.c, dpd/decimal128.c,
+ dpd/decimal32.c, dpd/decimal64.c: Include dconfig.h not config.h.
+ * dpd/decimal128Local.h (decimal128SetSign, decimal128ClearSign,
+ decimal128FlipSign): Use WORDS_BIGENDIAN not
+ FLOAT_WORDS_BIG_ENDIAN.
+ * bid/host-ieee128.c: Include dconfig.h.
+ (__host_to_ieee_128, __ieee_to_host_128): Swap 64-bit halves of
+ value if WORDS_BIGENDIAN.
+
+2008-04-18 Paolo Bonzini <bonzini@gnu.org>
+
+ PR bootstrap/35457
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+2008-04-18 Ben Elliston <bje@au.ibm.com>
+
+ * Makefile.in (distclean): Add gstdint.h.
+
+2008-01-25 Janis Johnson <janis187@us.ibm.com>
+
+ * decCommonSymbols.h: Commit.
+ * decDPDSybmols.h: Commit.
+
+ * Makefile.in (libdecnumber_a_SOURCES): List Symbols headers.
+ * decCommonSymbols.h: New file.
+ * decCommon.c: Include it.
+ * decDPDSymbols.h: New file.
+ * decDPD.h: Include it.
+ * decNumberLocal.h: Include the two new files.
+ * decContextSymbols.h (DECPOWERS, DECSTICKYTAB): New.
+ * decNumberSymbols.h (LNnn, d2utable): New.
+ * dpd/decimal32Symbols.h (COMBEXP, COMBMSD, DPD2BIN, BIN2DPD): New.
+ * dpd/decimal64Symbols.h (COMBEXP, COMBMSD, DPD2BIN, BIN2DPD): New.
+ * dpd/decimal128Symbols.h (COMBEXP, COMBMSD, DPD2BIN, BIN2DPD): New.
+ * dpd/decimal32.c: Remove redefine of DPD2BIN, BIN2DPD.
+ * dpd/decimal64.c: Ditto.
+ * dpd/decimal128.c: Ditto.
+
+2007-11-26 Thiago Jung Bauermann <bauerman@br.ibm.com>
+
+ * Makefile.in (decimal32.o): Prepend $(srcdir) to dependencies
+ and substitute $< for the source file in compilation command.
+ (decimal64.o): Likewise.
+ (decimal128.o): Likewise.
+ (bid2dpd_dpd2bid.o): Likewise.
+ (host-ieee32.o): Likewise.
+ (host-ieee64.o): Likewise.
+ (host-ieee128.o): Likewise.
+
+2007-10-31 Thiago Jung Bauermann <bauerman@br.ibm.com>
+
+ * configure.ac: Add ADDITIONAL_OBJS variable.
+ * Makefile.in (bid_OBS): New.
+ (libdecnumber_a_OBJS): Add ADDITIONAL_OBJS, remove condition
+ on enable_decimal_float.
+ * configure: Regenerate.
+
+2007-09-10 Janis Johnson <janis187@us.ibm.com>
+ Ben Elliston <bje@au.ibm.com>
+
+ * Makefile.in (libdecnumber_a_OBJS): Remove decUtility.o
+ (dependencies): Add Symbols headers.
+ * decContext.c: Upgrade to decNumber 3.53.
+ * decContext.h: Ditto.
+ * decDPD.h: Ditto.
+ * decNumber.c: Ditto.
+ * decNumber.h: Ditto.
+ * decNumberLocal.h: Ditto.
+ * decBasic.c: New file from decNumber 3.53.
+ * decCommon.c: Ditto.
+ * decDouble.c: Ditto.
+ * decDouble.h: Ditto.
+ * decQuad.c: Ditto.
+ * decQuad.h: Ditto.
+ * decSingle.c: Ditto.
+ * decSingle.h: Ditto.
+ * decPacked.c: Ditto.
+ * decPacked.h: Ditto.
+ * dpd/decimal128.c: Upgrade to decNumber 3.53.
+ * dpd/decimal128.h: Ditto.
+ * dpd/decimal32.c: Ditto.
+ * dpd/decimal32.h: Ditto.
+ * dpd/decimal64.c: Ditto.
+ * dpd/decimal64.h: Ditto.
+ * decLibrary.c (__dec_byte_swap): Remove.
+ * decContextSymbols.h: New file.
+ * decDoubleSymbols.h: New file.
+ * decNumberSymbols.h: New file.
+ * decPackedSymbols.h: New file.
+ * decQuadSymbols.h: New file.
+ * decSingleSymbols.h: New file.
+ * decUtility.c: Delete file.
+ * decUtility.h: Delete file.
+ * bid/decimal128Symbols.h: New file.
+ * bid/decimal128Local.h: New file.
+ * bid/decimal32Symbols.h: New file.
+ * bid/decimal64Symbols.h: New file.
+ * bid/host-ieee128.c (__swap128): Remove.
+ (__host_to_ieee_128, __ieee_to_host_128): Don't handle endianness.
+ * bid/host-ieee32.c (__dec_type_swap): Remove.
+ (__host_to_ieee_32, __ieee_to_host_32): Don't handle endianness.
+ * bid/host-ieee64.c (__swap64): Remove.
+ (__host_to_ieee_64, __ieee_to_host_64): Don't handle endianness.
+ * dpd/decimal32Symbols.h: New file.
+ * dpd/decimal64Symbols.h: New file.
+ * dpd/decimal128Symbols.h: New file.
+ * dpd/decimal128Local.h: New file.
+
+2007-06-18 Martin Michlmayr <tbm@cyrius.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * configure.ac: Add AC_CANONICAL_TARGET.
+ * configure: Regenerated.
+
+2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.in (aclocal.m4): Depend on stdint.m4 instead of
+ acx.m4.
+
+ * aclocal.m4: Regenerated by aclocal 1.9.6.
+
+2007-04-11 Kai Tietz <kai.tietz@onevision.com>
+
+ * configure: Regenerate.
+
+2007-03-23 Michael Meissner <michael.meissner@amd.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+ Marius Cornea <marius.cornea@intel.com>
+
+ * Makefile.in (enable_decimal_float): New.
+ (libdecnumber_a_OBJS): Add bid2dpd_dpd2bid.o, host-ieee32.o,
+ host-ieee64.o and host-ieee128.o for BID.
+ (libdecnumber_a_SOURCES): Support DPD and BID.
+ (decimal32.o): Support dependency for both DPD and BID.
+ (decimal64.o): Likewise.
+ (decimal128.o): Likewise.
+ (bid2dpd_dpd2bid.o): New target.
+ (host-ieee32.o): Likewise.
+ (host-ieee64.o): Likewise.
+ (host-ieee128.o): Likewise.
+
+ * bid/bid-dpd.h: New file.
+ * bid/decimal128.c: Likewise.
+ * bid/decimal128.h: Likewise.
+ * bid/decimal32.c: Likewise.
+ * bid/decimal32.h: Likewise.
+ * bid/decimal64.c: Likewise.
+ * bid/decimal64.h: Likewise.
+ * bid/host-ieee128.c: Likewise.
+ * bid/host-ieee32.c: Likewise.
+ * bid/host-ieee64.c: Likewise.
+ * bid/bid2dpd_dpd2bid.c: Likewise.
+ * bid/bid2dpd_dpd2bid.h: Likewise.
+
+ * decimal128.c: Moved to ...
+ * dpd/decimal128.c: This.
+ * decimal128.h: Moved to ...
+ * dpd/decimal128.h: This.
+ * decimal32.c: Moved to ...
+ * dpd/decimal32.c: This.
+ * decimal32.h: Moved to ...
+ * dpd/decimal32.h: This.
+ * decimal64.c: Moved to ...
+ * dpd/decimal64.c: This.
+ * decimal64.h: Moved to ...
+ * dpd/decimal64.h: This.
+
+ * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
+ Add AC_C_BIGENDIAN. Substitute enable_decimal_float.
+ * config.in: Add decimal support variables.
+ * configure: Regenerate.
+
+ PR other/30530
+ * decimal128.h (decimal128ClearSign): New.
+ (decimal128FlipSign): Likewise.
+
+ * decimal32.h: (decimal32ClearSign): New.
+ (decimal32FlipSign): Likewise.
+
+ * decimal64.h (decimal64ClearSign): New.
+ (decimal64FlipSign): Likewise.
+
+2007-03-08 Ben Elliston <bje@au.ibm.com>
+
+ * decContext.c, decContext.h, decDPD.h, decimal128.c,
+ decimal128.h, decimal32.c, decimal32.h, decimal64.c, decimal64.h,
+ decLibrary.c, decNumber.c, decNumber.h, decNumberLocal.h,
+ decRound.c, decRound.h, decUtility.c, decUtility.h: Add
+ libgcc-style license exception clause.
+
+2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * Makefile.in: Add dummy install-pdf target.
+
+2007-01-29 Janis Johnson <janis187@us.ibm.com>
+
+ * decExcept.c: New.
+ * decExcept.h: New.
+
+2006-11-29 Janis Johnson <janis187@us.ibm.com>
+
+ * decRound.c: Move declarations to new file, update comments.
+ * decRound.h: New file.
+
+2006-11-21 Janis Johnson <janis187@us.ibm.com>
+
+ * decLibrary.c (__dec_type_swap): Add prototype.
+ (__dfp_enable_traps, dfp_raise): Delete.
+
+ * Makefile.in: Don't include decRound in library used by compiler.
+
+2006-10-10 Brooks Moses <bmoses@stanford.edu>
+ * Makefile.in: Added empty "pdf" target.
+
+2006-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * decNumber.c (decNumberPower): Constify.
+ * decNumber.h (decNumberPower): Likewise.
+
+2006-09-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * configure.ac (ACX_PROG_CC_WARNING_OPTS): Add -Wcast-qual.
+ * configure, config.in: Regenerate.
+
+ * decContext.c (decContextStatusToString): Constify.
+ * decContext.h (decContextStatusToString): Likewise.
+ * decNumber.c (decNumberToString, decNumberToEngString,
+ decNumberAbs, decNumberAdd, decNumberCompare, decNumberDivide,
+ decNumberDivideInteger, decNumberMax, decNumberMin,
+ decNumberMinus, decNumberPlus, decNumberMultiply,
+ decNumberNormalize, decNumberQuantize, decNumberRescale,
+ decNumberRemainder, decNumberRemainderNear,
+ decNumberSameQuantum, decNumberSquareRoot, decNumberSubtract,
+ decNumberToIntegralValue, decNumberCopy, decToString, decAddOp,
+ decDivideOp, decMultiplyOp, decQuantizeOp, decCompareOp,
+ decCompare, decUnitCompare, decUnitAddSub, decRoundOperand,
+ decCopyFit, decSetCoeff, decGetInt, decNaNs, decGetDigits,
+ decNumberShow, decDumpAr, decCheckOperands, decCheckNumber):
+ Likewise.
+ * decNumber.h (decNumberToString, decNumberToEngString,
+ decNumberAbs, decNumberAdd, decNumberCompare, decNumberDivide,
+ decNumberDivideInteger, decNumberMax, decNumberMin,
+ decNumberMinus, decNumberMultiply, decNumberNormalize,
+ decNumberPlus, decNumberQuantize, decNumberRemainder,
+ decNumberRemainderNear, decNumberRescale,
+ decNumberSameQuantum, decNumberSquareRoot, decNumberSubtract,
+ decNumberToIntegralValue, decNumberCopy): Likewise.
+ * decUtility.c (decDensePackCoeff, decDenseUnpackCoeff):
+ Likewise.
+ * decUtility.h (decDensePackCoeff, decDenseUnpackCoeff):
+ Likewise.
+ * decimal128.c (decimal128FromNumber, decimal128ToNumber,
+ decimal128ToString, decimal128ToEngString, decimal128Show):
+ Likewise.
+ * decimal128.h (decimal128ToString, decimal128ToEngString,
+ decimal128FromNumber, decimal128ToNumber): Likewise.
+ * decimal32.c (decimal32FromNumber, decimal32ToNumber,
+ decimal32ToString, decimal32ToEngString, decimal32Show):
+ Likewise.
+ * decimal32.h (decimal32ToString, decimal32ToEngString,
+ decimal32FromNumber, decimal32ToNumber): Likewise.
+ * decimal64.c (decimal64FromNumber, decimal64ToNumber,
+ decimal64ToString, decimal64ToEngString, decimal64Show):
+ Likewise.
+ * decimal64.h (decimal64ToString, decimal64ToEngString,
+ decimal64FromNumber, decimal64ToNumber): Likewise.
+
+2006-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * decContext.c (decContextSetStatusFromString): Constify.
+ * decContext.h (decContextSetStatusFromString): Likewise.
+ * decNumber.c (decNumberFromString): Likewise.
+ * decNumber.h (decNumberFromString): Likewise.
+ * decimal128.c (decimal128FromString): Likewise.
+ * decimal128.h (decimal128FromString): Likewise.
+ * decimal32.c (decimal32FromString): Likewise.
+ * decimal32.h (decimal32FromString): Likewise.
+ * decimal64.c (decimal64FromString): Likewise.
+ * decimal64.h (decimal64FromString): Likewise.
+
+2006-07-25 Paolo Bonzini <bonzini@gnu.org>
+
+ PR build/26188
+ * configure: Regenerate.
+
+2006-06-23 Ben Elliston <bje@au.ibm.com>
+
+ * decNumber.h (decNumberNegate): Remove.
+
+2006-05-23 Carlos O'Donell <carlos@codesourcery.com>
+
+ * Makefile.in: Add install-html target. Add install-html to .PHONY
+
+2006-02-06 Ben Elliston <bje@au.ibm.com>
+
+ * decLibrary.c (__dec_byte_swap): Use uint32_t for argument and
+ return types.
+
+2006-01-03 Roger Sayle <roger@eyesopen.com>
+ Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * decNumber.c (__NO_STRING_INLINES): Define to prevent glibc macro
+ definition of strcpy from generating compilation warnings.
+
+2006-01-02 Paolo Bonzini <bonzini@gnu.org>
+
+ PR target/25259
+ * configure.ac: Use GCC_HEADER_STDINT.
+ * decContext.h: Include gstdint.h.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+2005-12-20 Roger Sayle <roger@eyesopen.com>
+
+ * decNumber.c (decStrEq): Cast string contents to unsigned char
+ instead of int before calling tolower.
+
+2005-12-20 Roger Sayle <roger@eyesopen.com>
+
+ * decNumber.c (decStrEq): Cast operands to int before calling
+ tolower to avoid compilation warnings on Tru64.
+
+2005-12-05 Ben Elliston <bje@au.ibm.com>
+
+ * Makefile.in (clean): Remove stray reference to libcpp.a.
+
+ * decimal128.h, decContext.c, decRound.c, decimal32.c,
+ decNumber.c, decContext.h, decimal64.c, decimal32.h, decNumber.h,
+ decimal64.h, decUtility.c, decLibrary.c, configure.ac,
+ decNumberLocal.h, decUtility.h, decDPD.h, decimal128.c: Update FSF
+ office address.
+
+2005-12-01 Ben Elliston <bje@au.ibm.com>
+
+ * Makefile.in (libdecnumber_a_SOURCES): Drop decLibrary.c.
+ * decUtility.c (__dec_byte_swap): Move from here ..
+ * decLibrary.c: .. to here.
+
+2005-11-23 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * decContext.h: Properly guard inclusion of stdint.h
+ * decContext.c: Include config.h
+ * decLibrary.c: Ditto.
+ * decNumber.c: Ditto.
+ * decRound.c: Ditto.
+ * decUtility.c: Ditto.
+ * decimal32.c: Ditto.
+ * decimal64.c: Ditto.
+ * decimal128.c: Ditto.
+
+2005-11-29 Ben Elliston <bje@au.ibm.com>
+
+ * decUtility.c: Remove redundant #includes.
+ * decUtility.h (__dec_byte_swap): Remove prototype.
+
+2005-11-29 Ben Elliston <bje@au.ibm.com>
+
+ * configure.ac: New file.
+ * aclocal.m4: Likewise.
+ * Makefile.in: Likewise.
+ * configure: Generate.
+ * config.in: Likewise.
+
+2005-11-29 Ben Elliston <bje@au.ibm.com>
+
+ * decimal32.h, decimal64.h, decimal128.h: New.
+ * decimal32.c, decimal64.c, decimal128.c: Likewise.
+ * decContext.c, decContext.h: Likewise.
+ * decUtility.c, decUtility.h: Likewise.
+ * decNumber.c, decNumber.h, decNumberLocal.h: Likewise.
+ * decDPD.h: Likewise.
+ * decLibrary.c, decRound.c: Likewise.
diff --git a/gcc-4.7/libdecnumber/Makefile.in b/gcc-4.7/libdecnumber/Makefile.in
new file mode 100644
index 000000000..c64f22c98
--- /dev/null
+++ b/gcc-4.7/libdecnumber/Makefile.in
@@ -0,0 +1,195 @@
+# @configure_input@
+# Makefile for libdecnumber. Run 'configure' to generate Makefile from Makefile.in
+
+# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
+# 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 3, or (at your option)
+#any later version.
+
+#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 COPYING3. If not see
+#<http://www.gnu.org/licenses/>.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_builddir = .
+VPATH = @srcdir@
+INSTALL = @INSTALL@
+AR = ar
+ARFLAGS = cru
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+CC = @CC@
+CFLAGS = @CFLAGS@
+WARN_CFLAGS = @WARN_CFLAGS@ @WARN_PEDANTIC@ @WERROR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+SHELL = @SHELL@
+objext = @OBJEXT@
+
+datarootdir = @datarootdir@
+datadir = @datadir@
+exec_prefix = @prefix@
+libdir = @libdir@
+localedir = $(datadir)/locale
+prefix = @prefix@
+
+ADDITIONAL_OBJS = @ADDITIONAL_OBJS@
+
+enable_decimal_float= @enable_decimal_float@
+
+INCLUDES = -I$(srcdir) -I.
+
+ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS)
+
+bid_OBJS = bid2dpd_dpd2bid.$(objext) host-ieee32.$(objext) \
+ host-ieee64.$(objext) host-ieee128.$(objext)
+
+libdecnumber_a_OBJS = decNumber.$(objext) decContext.$(objext) \
+ decimal32.$(objext) decimal64.$(objext) decimal128.$(objext) \
+ $(ADDITIONAL_OBJS)
+
+libdecnumber_a_SOURCES = decContext.c decContext.h decDPD.h \
+ decNumber.c decNumber.h decNumberLocal.h \
+ decContextSymbols.h decDPDSymbols.h decNumberSymbols.h \
+ dpd/decimal128.c dpd/decimal128.h dpd/decimal128Symbols.h \
+ dpd/decimal32.c dpd/decimal32.h dpd/decimal32Symbols.h \
+ dpd/decimal64.c dpd/decimal64.h dpd/decimal64Symbols.h \
+ bid/decimal128.c bid/decimal128.h \
+ bid/decimal32.c bid/decimal32.h \
+ bid/decimal64.c bid/decimal64.h
+
+all: libdecnumber.a
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+
+libdecnumber.a: $(libdecnumber_a_OBJS)
+ -rm -f $@
+ $(AR) $(ARFLAGS) $@ $(libdecnumber_a_OBJS)
+ $(RANLIB) $@
+
+# Rules to rebuild the configuration
+
+Makefile: $(srcdir)/Makefile.in config.status
+ $(SHELL) ./config.status Makefile
+
+config.status: $(srcdir)/configure
+ $(SHELL) ./config.status --recheck
+
+$(srcdir)/configure: @MAINT@ $(srcdir)/aclocal.m4
+ cd $(srcdir) && $(AUTOCONF)
+
+aclocal_deps = \
+ $(srcdir)/../config/stdint.m4 \
+ $(srcdir)/../config/warnings.m4 \
+ $(srcdir)/../config/override.m4 \
+ $(srcdir)/../config/dfp.m4 \
+ $(srcdir)/configure.ac
+
+$(srcdir)/aclocal.m4: @MAINT@ $(aclocal_deps)
+ cd $(srcdir) && $(ACLOCAL) -I ../config
+
+config.h: stamp-h1
+ test -f config.h || (rm -f stamp-h1 && $(MAKE) stamp-h1)
+
+stamp-h1: $(srcdir)/config.in config.status
+ -rm -f stamp-h1
+ $(SHELL) ./config.status config.h
+
+$(srcdir)/config.in: @MAINT@ $(srcdir)/configure
+ cd $(srcdir) && $(AUTOHEADER)
+ -rm -f stamp-h1
+
+# Dependencies.
+
+decContext.$(objext): decContext.c decContext.h decNumberLocal.h \
+ decContextSymbols.h
+decNumber.$(objext): decNumber.c decNumber.h decContext.h decNumberLocal.h \
+ decNumberSymbols.h
+decimal32.$(objext): $(srcdir)/$(enable_decimal_float)/decimal32.c \
+ $(srcdir)/$(enable_decimal_float)/decimal32.h \
+ $(srcdir)/$(enable_decimal_float)/decimal32Symbols.h \
+ decNumber.h decContext.h decNumberLocal.h
+ $(COMPILE) $(srcdir)/$(enable_decimal_float)/decimal32.c
+decimal64.$(objext): $(srcdir)/$(enable_decimal_float)/decimal64.c \
+ $(srcdir)/$(enable_decimal_float)/decimal64.h \
+ $(srcdir)/$(enable_decimal_float)/decimal64Symbols.h \
+ decNumber.h decContext.h decNumberLocal.h
+ $(COMPILE) $(srcdir)/$(enable_decimal_float)/decimal64.c
+decimal128.$(objext): $(srcdir)/$(enable_decimal_float)/decimal128.c \
+ $(srcdir)/$(enable_decimal_float)/decimal128.h \
+ $(srcdir)/$(enable_decimal_float)/decimal128Symbols.h\
+ $(srcdir)/$(enable_decimal_float)/decimal128Local.h\
+ decNumber.h decContext.h decNumberLocal.h
+ $(COMPILE) $(srcdir)/$(enable_decimal_float)/decimal128.c
+bid2dpd_dpd2bid.$(objext) : $(srcdir)/bid/bid2dpd_dpd2bid.c $(srcdir)/bid/bid2dpd_dpd2bid.h
+ $(COMPILE) $(srcdir)/bid/bid2dpd_dpd2bid.c
+host-ieee32.$(objext) : $(srcdir)/bid/host-ieee32.c $(srcdir)/bid/decimal32.h
+ $(COMPILE) $(srcdir)/bid/host-ieee32.c
+host-ieee64.$(objext) : $(srcdir)/bid/host-ieee64.c $(srcdir)/bid/decimal64.h
+ $(COMPILE) $(srcdir)/bid/host-ieee64.c
+host-ieee128.$(objext) : $(srcdir)/bid/host-ieee128.c $(srcdir)/bid/decimal128.h
+ $(COMPILE) $(srcdir)/bid/host-ieee128.c
+# Other miscellaneous targets.
+
+mostlyclean:
+ -rm -f *.$(objext)
+
+clean: mostlyclean
+ -rm -rf libdecnumber.a $(srcdir)/autom4te.cache
+
+distclean: clean
+ -rm -f config.h stamp-h1 config.status config.cache config.log \
+ configure.lineno configure.status.lineno Makefile localedir.h \
+ localedir.hs gstdint.h
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -rm -f $(srcdir)/configure $(srcdir)/aclocal.m4
+
+check:
+installcheck:
+dvi:
+pdf:
+html:
+info:
+install-info:
+install-pdf:
+install-man:
+install-html:
+install:
+
+.PHONY: installdirs install install-strip mostlyclean clean distclean \
+ maintainer-clean check installcheck dvi pdf html info install-info \
+ install-pdf install-man update-po install-html
+
+COMPILE = source='$<' object='$@' libtool=no $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(ALL_CFLAGS) -c
+
+# Implicit rules
+
+.c.$(objext):
+ $(COMPILE) $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/gcc-4.7/libdecnumber/aclocal.m4 b/gcc-4.7/libdecnumber/aclocal.m4
new file mode 100644
index 000000000..fda021e81
--- /dev/null
+++ b/gcc-4.7/libdecnumber/aclocal.m4
@@ -0,0 +1,17 @@
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_include([../config/dfp.m4])
+m4_include([../config/override.m4])
+m4_include([../config/stdint.m4])
+m4_include([../config/warnings.m4])
diff --git a/gcc-4.7/libdecnumber/bid/bid-dpd.h b/gcc-4.7/libdecnumber/bid/bid-dpd.h
new file mode 100644
index 000000000..e100cc916
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/bid-dpd.h
@@ -0,0 +1,40 @@
+/* Copyright (C) 2007, 2009
+ 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 3, or (at your option) any later
+version.
+
+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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+typedef unsigned int UINT32;
+typedef unsigned long long UINT64;
+typedef struct { UINT64 w[2]; } UINT128;
+
+#ifndef IN_LIBGCC2
+#define _Decimal32 UINT32
+#define _Decimal64 UINT64
+#define _Decimal128 UINT128
+#endif
+
+void _bid_to_dpd32 (_Decimal32 *, _Decimal32 *);
+void _dpd_to_bid32 (_Decimal32 *, _Decimal32 *);
+void _bid_to_dpd64 (_Decimal64 *, _Decimal64 *);
+void _dpd_to_bid64 (_Decimal64 *, _Decimal64 *);
+void _bid_to_dpd128 (_Decimal128 *, _Decimal128 *);
+void _dpd_to_bid128 (_Decimal128 *, _Decimal128 *);
diff --git a/gcc-4.7/libdecnumber/bid/bid2dpd_dpd2bid.c b/gcc-4.7/libdecnumber/bid/bid2dpd_dpd2bid.c
new file mode 100644
index 000000000..7e55eb015
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/bid2dpd_dpd2bid.c
@@ -0,0 +1,423 @@
+/* Copyright (C) 2007, 2009 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 3, or (at your option) any later
+version.
+
+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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+#undef IN_LIBGCC2
+#include "bid-dpd.h"
+
+/* get full 64x64bit product */
+#define __mul_64x64_to_128(P, CX, CY) \
+{ \
+ UINT64 CXH, CXL, CYH,CYL,PL,PH,PM,PM2; \
+ CXH = (CX) >> 32; \
+ CXL = (UINT32)(CX); \
+ CYH = (CY) >> 32; \
+ CYL = (UINT32)(CY); \
+ \
+ PM = CXH*CYL; \
+ PH = CXH*CYH; \
+ PL = CXL*CYL; \
+ PM2 = CXL*CYH; \
+ PH += (PM>>32); \
+ PM = (UINT64)((UINT32)PM)+PM2+(PL>>32); \
+ \
+ (P).w[1] = PH + (PM>>32); \
+ (P).w[0] = (PM<<32)+(UINT32)PL; \
+}
+
+/* add 64-bit value to 128-bit */
+#define __add_128_64(R128, A128, B64) \
+{ \
+ UINT64 R64H; \
+ R64H = (A128).w[1]; \
+ (R128).w[0] = (B64) + (A128).w[0]; \
+ if((R128).w[0] < (B64)) R64H ++; \
+ (R128).w[1] = R64H; \
+}
+
+/* add 128-bit value to 128-bit (assume no carry-out) */
+#define __add_128_128(R128, A128, B128) \
+{ \
+ UINT128 Q128; \
+ Q128.w[1] = (A128).w[1]+(B128).w[1]; \
+ Q128.w[0] = (B128).w[0] + (A128).w[0]; \
+ if(Q128.w[0] < (B128).w[0]) Q128.w[1] ++; \
+ (R128).w[1] = Q128.w[1]; \
+ (R128).w[0] = Q128.w[0]; \
+}
+
+#define __mul_128x128_high(Q, A, B) \
+{ \
+ UINT128 ALBL, ALBH, AHBL, AHBH, QM, QM2; \
+ \
+ __mul_64x64_to_128(ALBH, (A).w[0], (B).w[1]); \
+ __mul_64x64_to_128(AHBL, (B).w[0], (A).w[1]); \
+ __mul_64x64_to_128(ALBL, (A).w[0], (B).w[0]); \
+ __mul_64x64_to_128(AHBH, (A).w[1],(B).w[1]); \
+ \
+ __add_128_128(QM, ALBH, AHBL); \
+ __add_128_64(QM2, QM, ALBL.w[1]); \
+ __add_128_64((Q), AHBH, QM2.w[1]); \
+}
+
+#include "bid2dpd_dpd2bid.h"
+
+static const unsigned int dm103[] =
+ { 0, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 11000 };
+
+void _bid_to_dpd32 (_Decimal32 *, _Decimal32 *);
+
+void
+_bid_to_dpd32 (_Decimal32 *pres, _Decimal32 *px) {
+ unsigned int sign, coefficient_x, exp, dcoeff;
+ unsigned int b2, b1, b0, b01, res;
+ _Decimal32 x = *px;
+
+ sign = (x & 0x80000000);
+ if ((x & 0x60000000ul) == 0x60000000ul) {
+ /* special encodings */
+ if ((x & 0x78000000ul) == 0x78000000ul) {
+ *pres = x; /* NaN or Infinity */
+ return;
+ }
+ /* coefficient */
+ coefficient_x = (x & 0x001ffffful) | 0x00800000ul;
+ if (coefficient_x >= 10000000) coefficient_x = 0;
+ /* get exponent */
+ exp = (x >> 21) & 0xff;
+ } else {
+ exp = (x >> 23) & 0xff;
+ coefficient_x = (x & 0x007ffffful);
+ }
+ b01 = coefficient_x / 1000;
+ b2 = coefficient_x - 1000 * b01;
+ b0 = b01 / 1000;
+ b1 = b01 - 1000 * b0;
+ dcoeff = b2d[b2] | b2d2[b1];
+ if (b0 >= 8) { /* is b0 8 or 9? */
+ res = sign | ((0x600 | ((exp >> 6) << 7) |
+ ((b0 & 1) << 6) | (exp & 0x3f)) << 20) | dcoeff;
+ } else { /* else b0 is 0..7 */
+ res = sign | ((((exp >> 6) << 9) | (b0 << 6) |
+ (exp & 0x3f)) << 20) | dcoeff;
+ }
+ *pres = res;
+}
+
+void _dpd_to_bid32 (_Decimal32 *, _Decimal32 *);
+
+void
+_dpd_to_bid32 (_Decimal32 *pres, _Decimal32 *px) {
+ unsigned int r;
+ unsigned int sign, exp, bcoeff;
+ UINT64 trailing;
+ unsigned int d0, d1, d2;
+ _Decimal32 x = *px;
+
+ sign = (x & 0x80000000);
+ trailing = (x & 0x000fffff);
+ if ((x & 0x78000000) == 0x78000000) {
+ *pres = x;
+ return;
+ } else { /* normal number */
+ if ((x & 0x60000000) == 0x60000000) { /* G0..G1 = 11 -> d0 = 8 + G4 */
+ d0 = d2b3[((x >> 26) & 1) | 8]; /* d0 = (comb & 0x0100 ? 9 : 8); */
+ exp = (x >> 27) & 3; /* exp leading bits are G2..G3 */
+ } else {
+ d0 = d2b3[(x >> 26) & 0x7];
+ exp = (x >> 29) & 3; /* exp loading bits are G0..G1 */
+ }
+ d1 = d2b2[(trailing >> 10) & 0x3ff];
+ d2 = d2b[(trailing) & 0x3ff];
+ bcoeff = d2 + d1 + d0;
+ exp = (exp << 6) + ((x >> 20) & 0x3f);
+ if (bcoeff < (1 << 23)) {
+ r = exp;
+ r <<= 23;
+ r |= (bcoeff | sign);
+ } else {
+ r = exp;
+ r <<= 21;
+ r |= (sign | 0x60000000ul);
+ /* add coeff, without leading bits */
+ r |= (((unsigned int) bcoeff) & 0x1fffff);
+ }
+ }
+ *pres = r;
+}
+
+void _bid_to_dpd64 (_Decimal64 *, _Decimal64 *);
+
+void
+_bid_to_dpd64 (_Decimal64 *pres, _Decimal64 *px) {
+ UINT64 res;
+ UINT64 sign, comb, exp, B34, B01;
+ UINT64 d103, D61;
+ UINT64 b0, b2, b3, b5;
+ unsigned int b1, b4;
+ UINT64 bcoeff;
+ UINT64 dcoeff;
+ unsigned int yhi, ylo;
+ _Decimal64 x = *px;
+
+ sign = (x & 0x8000000000000000ull);
+ comb = (x & 0x7ffc000000000000ull) >> 51;
+ if ((comb & 0xf00) == 0xf00) {
+ *pres = x;
+ return;
+ } else { /* Normal number */
+ if ((comb & 0xc00) == 0xc00) { /* G0..G1 = 11 -> exp is G2..G11 */
+ exp = (comb) & 0x3ff;
+ bcoeff = (x & 0x0007ffffffffffffull) | 0x0020000000000000ull;
+ } else {
+ exp = (comb >> 2) & 0x3ff;
+ bcoeff = (x & 0x001fffffffffffffull);
+ }
+ D61 = 2305843009ull; /* Floor(2^61 / 10^9) */
+ /* Multiply the binary coefficient by ceil(2^64 / 1000), and take the upper
+ 64-bits in order to compute a division by 1000. */
+ yhi = (D61 * (UINT64)(bcoeff >> (UINT64)27)) >> (UINT64)34;
+ ylo = bcoeff - 1000000000ull * yhi;
+ if (ylo >= 1000000000) {
+ ylo = ylo - 1000000000;
+ yhi = yhi + 1;
+ }
+ d103 = 0x4189374c;
+ B34 = ((UINT64) ylo * d103) >> (32 + 8);
+ B01 = ((UINT64) yhi * d103) >> (32 + 8);
+ b5 = ylo - B34 * 1000;
+ b2 = yhi - B01 * 1000;
+ b3 = ((UINT64) B34 * d103) >> (32 + 8);
+ b0 = ((UINT64) B01 * d103) >> (32 + 8);
+ b4 = (unsigned int) B34 - (unsigned int) b3 *1000;
+ b1 = (unsigned int) B01 - (unsigned int) dm103[b0];
+ dcoeff = b2d[b5] | b2d2[b4] | b2d3[b3] | b2d4[b2] | b2d5[b1];
+ if (b0 >= 8) /* is b0 8 or 9? */
+ res = sign | ((0x1800 | ((exp >> 8) << 9) | ((b0 & 1) << 8) |
+ (exp & 0xff)) << 50) | dcoeff;
+ else /* else b0 is 0..7 */
+ res = sign | ((((exp >> 8) << 11) | (b0 << 8) |
+ (exp & 0xff)) << 50) | dcoeff;
+ }
+ *pres = res;
+}
+
+void _dpd_to_bid64 (_Decimal64 *, _Decimal64 *);
+
+void
+_dpd_to_bid64 (_Decimal64 *pres, _Decimal64 *px) {
+ UINT64 res;
+ UINT64 sign, comb, exp;
+ UINT64 trailing;
+ UINT64 d0, d1, d2;
+ unsigned int d3, d4, d5;
+ UINT64 bcoeff, mask;
+ _Decimal64 x = *px;
+
+ sign = (x & 0x8000000000000000ull);
+ comb = (x & 0x7ffc000000000000ull) >> 50;
+ trailing = (x & 0x0003ffffffffffffull);
+ if ((comb & 0x1e00) == 0x1e00) {
+ if ((comb & 0x1f00) == 0x1f00) { /* G0..G4 = 11111 -> NaN */
+ if (comb & 0x0100) { /* G5 = 1 -> sNaN */
+ *pres = x;
+ } else { /* G5 = 0 -> qNaN */
+ *pres = x;
+ }
+ } else { /*if ((comb & 0x1e00) == 0x1e00); G0..G4 = 11110 -> INF */
+ *pres = x;
+ }
+ return;
+ } else { /* normal number */
+ if ((comb & 0x1800) == 0x1800) { /* G0..G1 = 11 -> d0 = 8 + G4 */
+ d0 = d2b6[((comb >> 8) & 1) | 8]; /* d0 = (comb & 0x0100 ? 9 : 8); */
+ exp = (comb & 0x600) >> 1; /* exp = (comb & 0x0400 ? 1 : 0) * 0x200 +
+ (comb & 0x0200 ? 1 : 0) * 0x100; exp leading bits are G2..G3 */
+ } else {
+ d0 = d2b6[(comb >> 8) & 0x7];
+ exp = (comb & 0x1800) >> 3; /* exp = (comb & 0x1000 ? 1 : 0) * 0x200 +
+ (comb & 0x0800 ? 1 : 0) * 0x100; exp loading bits are G0..G1 */
+ }
+ d1 = d2b5[(trailing >> 40) & 0x3ff];
+ d2 = d2b4[(trailing >> 30) & 0x3ff];
+ d3 = d2b3[(trailing >> 20) & 0x3ff];
+ d4 = d2b2[(trailing >> 10) & 0x3ff];
+ d5 = d2b[(trailing) & 0x3ff];
+ bcoeff = (d5 + d4 + d3) + d2 + d1 + d0;
+ exp += (comb & 0xff);
+ mask = 1;
+ mask <<= 53;
+ if (bcoeff < mask) { /* check whether coefficient fits in 10*5+3 bits */
+ res = exp;
+ res <<= 53;
+ res |= (bcoeff | sign);
+ *pres = res;
+ return;
+ }
+ /* special format */
+ res = (exp << 51) | (sign | 0x6000000000000000ull);
+ /* add coeff, without leading bits */
+ mask = (mask >> 2) - 1;
+ bcoeff &= mask;
+ res |= bcoeff;
+ }
+ *pres = res;
+}
+
+void _bid_to_dpd128 (_Decimal128 *, _Decimal128 *);
+
+void
+_bid_to_dpd128 (_Decimal128 *pres, _Decimal128 *px) {
+ UINT128 res;
+ UINT128 sign;
+ unsigned int comb;
+ UINT128 bcoeff;
+ UINT128 dcoeff;
+ UINT128 BH, d1018, BT2, BT1;
+ UINT64 exp, BL, d109;
+ UINT64 d106, d103;
+ UINT64 k1, k2, k4, k5, k7, k8, k10, k11;
+ unsigned int BHH32, BLL32, BHL32, BLH32, k0, k3, k6, k9, amount;
+ _Decimal128 x = *px;
+
+ sign.w[1] = (x.w[1] & 0x8000000000000000ull);
+ sign.w[0] = 0;
+ comb = (x.w[1] /*& 0x7fffc00000000000ull */ ) >> 46;
+ exp = 0;
+ if ((comb & 0x1e000) == 0x1e000) {
+ if ((comb & 0x1f000) == 0x1f000) { /* G0..G4 = 11111 -> NaN */
+ if (comb & 0x01000) { /* G5 = 1 -> sNaN */
+ res = x;
+ } else { /* G5 = 0 -> qNaN */
+ res = x;
+ }
+ } else { /* G0..G4 = 11110 -> INF */
+ res = x;
+ }
+ } else { /* normal number */
+ exp = ((x.w[1] & 0x7fff000000000000ull) >> 49) & 0x3fff;
+ bcoeff.w[1] = (x.w[1] & 0x0001ffffffffffffull);
+ bcoeff.w[0] = x.w[0];
+ d1018 = reciprocals10_128[18];
+ __mul_128x128_high (BH, bcoeff, d1018);
+ amount = recip_scale[18];
+ BH.w[0] = (BH.w[0] >> amount) | (BH.w[1] << (64 - amount));
+ BL = bcoeff.w[0] - BH.w[0] * 1000000000000000000ull;
+ d109 = reciprocals10_64[9];
+ __mul_64x64_to_128 (BT1, BH.w[0], d109);
+ BHH32 = (unsigned int) (BT1.w[1] >> short_recip_scale[9]);
+ BHL32 = (unsigned int) BH.w[0] - BHH32 * 1000000000;
+ __mul_64x64_to_128 (BT2, BL, d109);
+ BLH32 = (unsigned int) (BT2.w[1] >> short_recip_scale[9]);
+ BLL32 = (unsigned int) BL - BLH32 * 1000000000;
+ d106 = 0x431BDE83;
+ d103 = 0x4189374c;
+ k0 = ((UINT64) BHH32 * d106) >> (32 + 18);
+ BHH32 -= (unsigned int) k0 *1000000;
+ k1 = ((UINT64) BHH32 * d103) >> (32 + 8);
+ k2 = BHH32 - (unsigned int) k1 *1000;
+ k3 = ((UINT64) BHL32 * d106) >> (32 + 18);
+ BHL32 -= (unsigned int) k3 *1000000;
+ k4 = ((UINT64) BHL32 * d103) >> (32 + 8);
+ k5 = BHL32 - (unsigned int) k4 *1000;
+ k6 = ((UINT64) BLH32 * d106) >> (32 + 18);
+ BLH32 -= (unsigned int) k6 *1000000;
+ k7 = ((UINT64) BLH32 * d103) >> (32 + 8);
+ k8 = BLH32 - (unsigned int) k7 *1000;
+ k9 = ((UINT64) BLL32 * d106) >> (32 + 18);
+ BLL32 -= (unsigned int) k9 *1000000;
+ k10 = ((UINT64) BLL32 * d103) >> (32 + 8);
+ k11 = BLL32 - (unsigned int) k10 *1000;
+ dcoeff.w[1] = (b2d[k5] >> 4) | (b2d[k4] << 6) | (b2d[k3] << 16) |
+ (b2d[k2] << 26) | (b2d[k1] << 36);
+ dcoeff.w[0] = b2d[k11] | (b2d[k10] << 10) | (b2d[k9] << 20) |
+ (b2d[k8] << 30) | (b2d[k7] << 40) | (b2d[k6] << 50) | (b2d[k5] << 60);
+ res.w[0] = dcoeff.w[0];
+ if (k0 >= 8) {
+ res.w[1] = sign.w[1] | ((0x18000 | ((exp >> 12) << 13) |
+ ((k0 & 1) << 12) | (exp & 0xfff)) << 46) | dcoeff.w[1];
+ } else {
+ res.w[1] = sign.w[1] | ((((exp >> 12) << 15) | (k0 << 12) |
+ (exp & 0xfff)) << 46) | dcoeff.w[1];
+ }
+ }
+ *pres = res;
+}
+
+void _dpd_to_bid128 (_Decimal128 *, _Decimal128 *);
+
+void
+_dpd_to_bid128 (_Decimal128 *pres, _Decimal128 *px) {
+ UINT128 res;
+ UINT128 sign;
+ UINT64 exp, comb;
+ UINT128 trailing;
+ UINT64 d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11;
+ UINT128 bcoeff;
+ UINT64 tl, th;
+ _Decimal128 x = *px;
+
+ sign.w[1] = (x.w[1] & 0x8000000000000000ull);
+ sign.w[0] = 0;
+ comb = (x.w[1] & 0x7fffc00000000000ull) >> 46;
+ trailing.w[1] = x.w[1];
+ trailing.w[0] = x.w[0];
+ if ((comb & 0x1e000) == 0x1e000) {
+ if ((comb & 0x1f000) == 0x1f000) { /* G0..G4 = 11111 -> NaN */
+ if (comb & 0x01000) { /* G5 = 1 -> sNaN */
+ *pres = x;
+ } else { /* G5 = 0 -> qNaN */
+ *pres = x;
+ }
+ } else { /* G0..G4 = 11110 -> INF */
+ *pres = x;
+ }
+ return;
+ } else { /* Normal number */
+ if ((comb & 0x18000) == 0x18000) { /* G0..G1 = 11 -> d0 = 8 + G4 */
+ d0 = d2b6[8 + ((comb & 0x01000) >> 12)];
+ exp = (comb & 0x06000) >> 1; /* exp leading bits are G2..G3 */
+ } else {
+ d0 = d2b6[((comb & 0x07000) >> 12)];
+ exp = (comb & 0x18000) >> 3; /* exp loading bits are G0..G1 */
+ }
+ d11 = d2b[(trailing.w[0]) & 0x3ff];
+ d10 = d2b2[(trailing.w[0] >> 10) & 0x3ff];
+ d9 = d2b3[(trailing.w[0] >> 20) & 0x3ff];
+ d8 = d2b4[(trailing.w[0] >> 30) & 0x3ff];
+ d7 = d2b5[(trailing.w[0] >> 40) & 0x3ff];
+ d6 = d2b6[(trailing.w[0] >> 50) & 0x3ff];
+ d5 = d2b[(trailing.w[0] >> 60) | ((trailing.w[1] & 0x3f) << 4)];
+ d4 = d2b2[(trailing.w[1] >> 6) & 0x3ff];
+ d3 = d2b3[(trailing.w[1] >> 16) & 0x3ff];
+ d2 = d2b4[(trailing.w[1] >> 26) & 0x3ff];
+ d1 = d2b5[(trailing.w[1] >> 36) & 0x3ff];
+ tl = d11 + d10 + d9 + d8 + d7 + d6;
+ th = d5 + d4 + d3 + d2 + d1 + d0;
+ __mul_64x64_to_128 (bcoeff, th, 1000000000000000000ull);
+ __add_128_64 (bcoeff, bcoeff, tl);
+ exp += (comb & 0xfff);
+ res.w[0] = bcoeff.w[0];
+ res.w[1] = (exp << 49) | sign.w[1] | bcoeff.w[1];
+ }
+ *pres = res;
+}
diff --git a/gcc-4.7/libdecnumber/bid/bid2dpd_dpd2bid.h b/gcc-4.7/libdecnumber/bid/bid2dpd_dpd2bid.h
new file mode 100644
index 000000000..b501bdcc0
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/bid2dpd_dpd2bid.h
@@ -0,0 +1,10402 @@
+/* Copyright (C) 2007, 2009 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 3, or (at your option) any later
+version.
+
+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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+static const UINT128 reciprocals10_128[] = {
+ { { 0ull, 0ull } }, /* 0 extra digits */
+ { { 0x3333333333333334ull ,0x3333333333333333ull } }, /* 1 extra digit */
+ { { 0x51eb851eb851eb86ull ,0x051eb851eb851eb8ull } }, /* 2 extra digits */
+ { { 0x3b645a1cac083127ull, 0x0083126e978d4fdfull } }, /* 3 extra digits */
+ { { 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 */
+ { { 0x0f2abc9d8c9689d1ull, 0x01a95a5b7f87a0efull } } /* 35 extra digits */
+};
+
+static const int recip_scale[] = {
+ 129 - 128, /* 1 */
+ 129 - 128, /* 1/10 */
+ 129 - 128, /* 1/10^2 */
+ 129 - 128, /* 1/10^3 */
+ 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 */
+ 237 - 128, /* 1/10^35 */
+};
+
+static const int short_recip_scale[] = {
+ 1,
+ 65 - 64,
+ 69 - 64,
+ 71 - 64,
+ 75 - 64,
+ 78 - 64,
+ 81 - 64,
+ 85 - 64,
+ 88 - 64,
+ 91 - 64,
+ 95 - 64,
+ 98 - 64,
+ 101 - 64,
+ 105 - 64,
+ 108 - 64,
+ 111 - 64,
+ 115 - 64, /* 114 - 64 */
+ 118 - 64
+};
+
+static const unsigned long long reciprocals10_64[] = {
+ 1ull, /* dummy value for 0 extra digits */
+ 0x3333333333333334ull, /* 1 extra digit */
+ 0x51eb851eb851eb86ull,
+ 0x20c49ba5e353f7cfull,
+ 0x346dc5d63886594bull,
+ 0x29f16b11c6d1e109ull,
+ 0x218def416bdb1a6eull,
+ 0x35afe535795e90b0ull,
+ 0x2af31dc4611873c0ull,
+ 0x225c17d04dad2966ull,
+ 0x36f9bfb3af7b7570ull,
+ 0x2bfaffc2f2c92ac0ull,
+ 0x232f33025bd42233ull,
+ 0x384b84d092ed0385ull,
+ 0x2d09370d42573604ull,
+ 0x24075f3dceac2b37ull,
+ 0x39a5652fb1137857ull,
+ 0x2e1dea8c8da92d13ull
+};
+
+static const 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 };
+
+static const 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
+};
+
+static const 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 };
+
+static const 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
+};
+
+static const 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
+};
+
+static const 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
+};
+
+static const 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
+};
+
+static const 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
+};
+
+static const 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
+};
+
+static const 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
+};
+
+static const 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
+};
+
diff --git a/gcc-4.7/libdecnumber/bid/decimal128.c b/gcc-4.7/libdecnumber/bid/decimal128.c
new file mode 100644
index 000000000..db30bd39d
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/decimal128.c
@@ -0,0 +1,145 @@
+/* Copyright (C) 2007, 2009
+ 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 3, or (at your option) any later
+version.
+
+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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+#define decimal128FromString __dpd128FromString
+#define decimal128ToString __dpd128ToString
+#define decimal128ToEngString __dpd128ToEngString
+#define decimal128FromNumber __dpd128FromNumber
+#define decimal128ToNumber __dpd128ToNumber
+
+#include "dpd/decimal128.c"
+
+#undef decimal128FromString
+#undef decimal128ToString
+#undef decimal128ToEngString
+#undef decimal128FromNumber
+#undef decimal128ToNumber
+
+#include "bid-dpd.h"
+
+#ifdef IN_LIBGCC2
+#define decimal128FromString __decimal128FromString
+#define decimal128ToString __decimal128ToString
+#define decimal128ToEngString __decimal128ToEngString
+#define decimal128FromNumber __decimal128FromNumber
+#define decimal128ToNumber __decimal128ToNumber
+#endif
+
+decimal128 *decimal128FromString (decimal128 *, const char *, decContext *);
+char *decimal128ToString (const decimal128 *, char *);
+char *decimal128ToEngString (const decimal128 *, char *);
+decimal128 *decimal128FromNumber (decimal128 *, const decNumber *, decContext *);
+decNumber *decimal128ToNumber (const decimal128 *, decNumber *);
+
+void __host_to_ieee_128 (_Decimal128 in, decimal128 *out);
+void __ieee_to_host_128 (decimal128 in, _Decimal128 *out);
+
+decimal128 *
+decimal128FromNumber (decimal128 *d128, const decNumber *dn,
+ decContext *set)
+{
+ /* decimal128 and _Decimal128 are different types. */
+ union
+ {
+ _Decimal128 _Dec;
+ decimal128 dec;
+ } u;
+
+ __dpd128FromNumber (d128, dn, set);
+
+ /* __dpd128FromNumber returns in big endian. But _dpd_to_bid128 takes
+ host endian. */
+ __ieee_to_host_128 (*d128, &u._Dec);
+
+ /* Convert DPD to BID. */
+ _dpd_to_bid128 (&u._Dec, &u._Dec);
+
+ /* dfp.c is in bid endian. */
+ __host_to_ieee_128 (u._Dec, &u.dec);
+
+ /* d128 is returned as a pointer to _Decimal128 here. */
+ *d128 = u.dec;
+
+ return d128;
+}
+
+decNumber *
+decimal128ToNumber (const decimal128 *bid128, decNumber *dn)
+{
+ /* decimal128 and _Decimal128 are different types. */
+ union
+ {
+ _Decimal128 _Dec;
+ decimal128 dec;
+ } u;
+
+ /* bid128 is a pointer to _Decimal128 in bid endian. But _bid_to_dpd128
+ takes host endian. */
+ __ieee_to_host_128 (*bid128, &u._Dec);
+
+ /* Convert BID to DPD. */
+ _bid_to_dpd128 (&u._Dec, &u._Dec);
+
+ /* __dpd128ToNumber is in bid endian. */
+ __host_to_ieee_128 (u._Dec, &u.dec);
+
+ return __dpd128ToNumber (&u.dec, dn);
+}
+
+char *
+decimal128ToString (const decimal128 *d128, char *string)
+{
+ decNumber dn; /* work */
+ decimal128ToNumber (d128, &dn);
+ decNumberToString (&dn, string);
+ return string;
+}
+
+char *
+decimal128ToEngString (const decimal128 *d128, char *string)
+{
+ decNumber dn; /* work */
+ decimal128ToNumber (d128, &dn);
+ decNumberToEngString (&dn, string);
+ return string;
+}
+
+decimal128 *
+decimal128FromString (decimal128 *result, const char *string,
+ decContext *set)
+{
+ decContext dc; /* work */
+ decNumber dn; /* .. */
+
+ decContextDefault (&dc, DEC_INIT_DECIMAL128); /* no traps, please */
+ dc.round = set->round; /* use supplied rounding */
+
+ decNumberFromString (&dn, string, &dc); /* will round if needed */
+ decimal128FromNumber (result, &dn, &dc);
+ if (dc.status != 0)
+ { /* something happened */
+ decContextSetStatus (set, dc.status); /* .. pass it on */
+ }
+ return result;
+}
diff --git a/gcc-4.7/libdecnumber/bid/decimal128.h b/gcc-4.7/libdecnumber/bid/decimal128.h
new file mode 100644
index 000000000..138735280
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/decimal128.h
@@ -0,0 +1 @@
+#include "dpd/decimal128.h"
diff --git a/gcc-4.7/libdecnumber/bid/decimal128Local.h b/gcc-4.7/libdecnumber/bid/decimal128Local.h
new file mode 100644
index 000000000..e499d73bf
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/decimal128Local.h
@@ -0,0 +1 @@
+#include "dpd/decimal128Local.h"
diff --git a/gcc-4.7/libdecnumber/bid/decimal128Symbols.h b/gcc-4.7/libdecnumber/bid/decimal128Symbols.h
new file mode 100644
index 000000000..17757114a
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/decimal128Symbols.h
@@ -0,0 +1 @@
+#include "dpd/decimal128Symbols.h"
diff --git a/gcc-4.7/libdecnumber/bid/decimal32.c b/gcc-4.7/libdecnumber/bid/decimal32.c
new file mode 100644
index 000000000..1cd760759
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/decimal32.c
@@ -0,0 +1,145 @@
+/* Copyright (C) 2007, 2009
+ 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 3, or (at your option) any later
+version.
+
+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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+#define decimal32FromString __dpd32FromString
+#define decimal32ToString __dpd32ToString
+#define decimal32ToEngString __dpd32ToEngString
+#define decimal32FromNumber __dpd32FromNumber
+#define decimal32ToNumber __dpd32ToNumber
+
+#include "dpd/decimal32.c"
+
+#undef decimal32FromString
+#undef decimal32ToString
+#undef decimal32ToEngString
+#undef decimal32FromNumber
+#undef decimal32ToNumber
+
+#include "bid-dpd.h"
+
+#ifdef IN_LIBGCC2
+#define decimal32FromString __decimal32FromString
+#define decimal32ToString __decimal32ToString
+#define decimal32ToEngString __decimal32ToEngString
+#define decimal32FromNumber __decimal32FromNumber
+#define decimal32ToNumber __decimal32ToNumber
+#endif
+
+decimal32 *decimal32FromString (decimal32 *, const char *, decContext *);
+char *decimal32ToString (const decimal32 *, char *);
+char *decimal32ToEngString (const decimal32 *, char *);
+decimal32 *decimal32FromNumber (decimal32 *, const decNumber *, decContext *);
+decNumber *decimal32ToNumber (const decimal32 *, decNumber *);
+
+void __host_to_ieee_32 (_Decimal32 in, decimal32 *out);
+void __ieee_to_host_32 (decimal32 in, _Decimal32 *out);
+
+decimal32 *
+decimal32FromNumber (decimal32 *d32, const decNumber *dn,
+ decContext *set)
+{
+ /* decimal32 and _Decimal32 are different types. */
+ union
+ {
+ _Decimal32 _Dec;
+ decimal32 dec;
+ } u;
+
+ __dpd32FromNumber (d32, dn, set);
+
+ /* __dpd32FromNumber returns in big endian. But _dpd_to_bid32 takes
+ host endian. */
+ __ieee_to_host_32 (*d32, &u._Dec);
+
+ /* Convert DPD to BID. */
+ _dpd_to_bid32 (&u._Dec, &u._Dec);
+
+ /* dfp.c is in bid endian. */
+ __host_to_ieee_32 (u._Dec, &u.dec);
+
+ /* d32 is returned as a pointer to _Decimal32 here. */
+ *d32 = u.dec;
+
+ return d32;
+}
+
+decNumber *
+decimal32ToNumber (const decimal32 *bid32, decNumber *dn)
+{
+ /* decimal32 and _Decimal32 are different types. */
+ union
+ {
+ _Decimal32 _Dec;
+ decimal32 dec;
+ } u;
+
+ /* bid32 is a pointer to _Decimal32 in bid endian. But _bid_to_dpd32
+ takes host endian. */
+ __ieee_to_host_32 (*bid32, &u._Dec);
+
+ /* Convert BID to DPD. */
+ _bid_to_dpd32 (&u._Dec, &u._Dec);
+
+ /* __dpd32ToNumber is in bid endian. */
+ __host_to_ieee_32 (u._Dec, &u.dec);
+
+ return __dpd32ToNumber (&u.dec, dn);
+}
+
+char *
+decimal32ToString (const decimal32 *d32, char *string)
+{
+ decNumber dn; /* work */
+ decimal32ToNumber (d32, &dn);
+ decNumberToString (&dn, string);
+ return string;
+}
+
+char *
+decimal32ToEngString (const decimal32 *d32, char *string)
+{
+ decNumber dn; /* work */
+ decimal32ToNumber (d32, &dn);
+ decNumberToEngString (&dn, string);
+ return string;
+}
+
+decimal32 *
+decimal32FromString (decimal32 *result, const char *string,
+ decContext *set)
+{
+ decContext dc; /* work */
+ decNumber dn; /* .. */
+
+ decContextDefault (&dc, DEC_INIT_DECIMAL32); /* no traps, please */
+ dc.round = set->round; /* use supplied rounding */
+
+ decNumberFromString (&dn, string, &dc); /* will round if needed */
+ decimal32FromNumber (result, &dn, &dc);
+ if (dc.status != 0)
+ { /* something happened */
+ decContextSetStatus (set, dc.status); /* .. pass it on */
+ }
+ return result;
+}
diff --git a/gcc-4.7/libdecnumber/bid/decimal32.h b/gcc-4.7/libdecnumber/bid/decimal32.h
new file mode 100644
index 000000000..e12e3b1c3
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/decimal32.h
@@ -0,0 +1 @@
+#include "dpd/decimal32.h"
diff --git a/gcc-4.7/libdecnumber/bid/decimal32Symbols.h b/gcc-4.7/libdecnumber/bid/decimal32Symbols.h
new file mode 100644
index 000000000..a0c4bf8cd
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/decimal32Symbols.h
@@ -0,0 +1 @@
+#include "dpd/decimal32Symbols.h"
diff --git a/gcc-4.7/libdecnumber/bid/decimal64.c b/gcc-4.7/libdecnumber/bid/decimal64.c
new file mode 100644
index 000000000..fd637388a
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/decimal64.c
@@ -0,0 +1,145 @@
+/* Copyright (C) 2007, 2009
+ 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 3, or (at your option) any later
+version.
+
+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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+#define decimal64FromString __dpd64FromString
+#define decimal64ToString __dpd64ToString
+#define decimal64ToEngString __dpd64ToEngString
+#define decimal64FromNumber __dpd64FromNumber
+#define decimal64ToNumber __dpd64ToNumber
+
+#include "dpd/decimal64.c"
+
+#undef decimal64FromString
+#undef decimal64ToString
+#undef decimal64ToEngString
+#undef decimal64FromNumber
+#undef decimal64ToNumber
+
+#include "bid-dpd.h"
+
+#ifdef IN_LIBGCC2
+#define decimal64FromString __decimal64FromString
+#define decimal64ToString __decimal64ToString
+#define decimal64ToEngString __decimal64ToEngString
+#define decimal64FromNumber __decimal64FromNumber
+#define decimal64ToNumber __decimal64ToNumber
+#endif
+
+decimal64 *decimal64FromString (decimal64 *, const char *, decContext *);
+char *decimal64ToString (const decimal64 *, char *);
+char *decimal64ToEngString (const decimal64 *, char *);
+decimal64 *decimal64FromNumber (decimal64 *, const decNumber *, decContext *);
+decNumber *decimal64ToNumber (const decimal64 *, decNumber *);
+
+void __host_to_ieee_64 (_Decimal64 in, decimal64 *out);
+void __ieee_to_host_64 (decimal64 in, _Decimal64 *out);
+
+decimal64 *
+decimal64FromNumber (decimal64 *d64, const decNumber *dn,
+ decContext *set)
+{
+ /* decimal64 and _Decimal64 are different types. */
+ union
+ {
+ _Decimal64 _Dec;
+ decimal64 dec;
+ } u;
+
+ __dpd64FromNumber (d64, dn, set);
+
+ /* __dpd64FromNumber returns in big endian. But _dpd_to_bid64 takes
+ host endian. */
+ __ieee_to_host_64 (*d64, &u._Dec);
+
+ /* Convert DPD to BID. */
+ _dpd_to_bid64 (&u._Dec, &u._Dec);
+
+ /* dfp.c is in bid endian. */
+ __host_to_ieee_64 (u._Dec, &u.dec);
+
+ /* d64 is returned as a pointer to _Decimal64 here. */
+ *d64 = u.dec;
+
+ return d64;
+}
+
+decNumber *
+decimal64ToNumber (const decimal64 *bid64, decNumber *dn)
+{
+ /* decimal64 and _Decimal64 are different types. */
+ union
+ {
+ _Decimal64 _Dec;
+ decimal64 dec;
+ } u;
+
+ /* bid64 is a pointer to _Decimal64 in bid endian. But _bid_to_dpd64
+ takes host endian. */
+ __ieee_to_host_64 (*bid64, &u._Dec);
+
+ /* Convert BID to DPD. */
+ _bid_to_dpd64 (&u._Dec, &u._Dec);
+
+ /* __dpd64ToNumber is in bid endian. */
+ __host_to_ieee_64 (u._Dec, &u.dec);
+
+ return __dpd64ToNumber (&u.dec, dn);
+}
+
+char *
+decimal64ToString (const decimal64 *d64, char *string)
+{
+ decNumber dn; /* work */
+ decimal64ToNumber (d64, &dn);
+ decNumberToString (&dn, string);
+ return string;
+}
+
+char *
+decimal64ToEngString (const decimal64 *d64, char *string)
+{
+ decNumber dn; /* work */
+ decimal64ToNumber (d64, &dn);
+ decNumberToEngString (&dn, string);
+ return string;
+}
+
+decimal64 *
+decimal64FromString (decimal64 *result, const char *string,
+ decContext *set)
+{
+ decContext dc; /* work */
+ decNumber dn; /* .. */
+
+ decContextDefault (&dc, DEC_INIT_DECIMAL64); /* no traps, please */
+ dc.round = set->round; /* use supplied rounding */
+
+ decNumberFromString (&dn, string, &dc); /* will round if needed */
+ decimal64FromNumber (result, &dn, &dc);
+ if (dc.status != 0)
+ { /* something happened */
+ decContextSetStatus (set, dc.status); /* .. pass it on */
+ }
+ return result;
+}
diff --git a/gcc-4.7/libdecnumber/bid/decimal64.h b/gcc-4.7/libdecnumber/bid/decimal64.h
new file mode 100644
index 000000000..94d4d0c58
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/decimal64.h
@@ -0,0 +1 @@
+#include "dpd/decimal64.h"
diff --git a/gcc-4.7/libdecnumber/bid/decimal64Symbols.h b/gcc-4.7/libdecnumber/bid/decimal64Symbols.h
new file mode 100644
index 000000000..5f3069cd6
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/decimal64Symbols.h
@@ -0,0 +1 @@
+#include "dpd/decimal64Symbols.h"
diff --git a/gcc-4.7/libdecnumber/bid/host-ieee128.c b/gcc-4.7/libdecnumber/bid/host-ieee128.c
new file mode 100644
index 000000000..9e2d005cd
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/host-ieee128.c
@@ -0,0 +1,58 @@
+/* This is a software decimal floating point library.
+ Copyright (C) 2007, 2009 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 3, or (at your option) any later
+version.
+
+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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+#include <string.h>
+
+#include "dconfig.h"
+#include "bid-dpd.h"
+#include "decimal128.h"
+
+void __host_to_ieee_128 (_Decimal128 in, decimal128 *out);
+void __ieee_to_host_128 (decimal128 in, _Decimal128 *out);
+
+/* The code for converting 128-bit values between DPD and BID presumes
+ that the 64-bit halves of the 128-bit value are in little-endian
+ order, so they need swapping on big-endian hosts. */
+
+void
+__host_to_ieee_128 (_Decimal128 in, decimal128 *out)
+{
+#if WORDS_BIGENDIAN
+ memcpy ((char *) out, (char *) &in + 8, 8);
+ memcpy ((char *) out + 8, (char *) &in, 8);
+#else
+ memcpy ((char *) out, (char *) &in, 16);
+#endif
+}
+
+void
+__ieee_to_host_128 (decimal128 in, _Decimal128 *out)
+{
+#if WORDS_BIGENDIAN
+ memcpy ((char *) out, (char *) &in + 8, 8);
+ memcpy ((char *) out + 8, (char *) &in, 8);
+#else
+ memcpy ((char *) out, (char *) &in, 16);
+#endif
+}
diff --git a/gcc-4.7/libdecnumber/bid/host-ieee32.c b/gcc-4.7/libdecnumber/bid/host-ieee32.c
new file mode 100644
index 000000000..1de6dc2ec
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/host-ieee32.c
@@ -0,0 +1,52 @@
+/* This is a software decimal floating point library.
+ Copyright (C) 2007, 2009 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 3, or (at your option) any later
+version.
+
+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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+/* This implements IEEE 754R decimal floating point arithmetic, but
+ does not provide a mechanism for setting the rounding mode, or for
+ generating or handling exceptions. Conversions between decimal
+ floating point types and other types depend on C library functions.
+
+ Contributed by Ben Elliston <bje@au.ibm.com>. */
+
+/* The intended way to use this file is to make two copies, add `#define '
+ to one copy, then compile both copies and add them to libgcc.a. */
+
+#include <string.h>
+#include "bid-dpd.h"
+#include "decimal32.h"
+
+void __host_to_ieee_32 (_Decimal32 in, decimal32 *out);
+void __ieee_to_host_32 (decimal32 in, _Decimal32 *out);
+
+void
+__host_to_ieee_32 (_Decimal32 in, decimal32 *out)
+{
+ memcpy ((char *) out, (char *) &in, 4);
+}
+
+void
+__ieee_to_host_32 (decimal32 in, _Decimal32 *out)
+{
+ memcpy ((char *) out, (char *) &in, 4);
+}
diff --git a/gcc-4.7/libdecnumber/bid/host-ieee64.c b/gcc-4.7/libdecnumber/bid/host-ieee64.c
new file mode 100644
index 000000000..825eb0ab1
--- /dev/null
+++ b/gcc-4.7/libdecnumber/bid/host-ieee64.c
@@ -0,0 +1,52 @@
+/* This is a software decimal floating point library.
+ Copyright (C) 2007, 2009 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 3, or (at your option) any later
+version.
+
+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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+/* This implements IEEE 754R decimal floating point arithmetic, but
+ does not provide a mechanism for setting the rounding mode, or for
+ generating or handling exceptions. Conversions between decimal
+ floating point types and other types depend on C library functions.
+
+ Contributed by Ben Elliston <bje@au.ibm.com>. */
+
+/* The intended way to use this file is to make two copies, add `#define '
+ to one copy, then compile both copies and add them to libgcc.a. */
+
+#include <string.h>
+#include "bid-dpd.h"
+#include "decimal64.h"
+
+void __host_to_ieee_64 (_Decimal64 in, decimal64 *out);
+void __ieee_to_host_64 (decimal64 in, _Decimal64 *out);
+
+void
+__host_to_ieee_64 (_Decimal64 in, decimal64 *out)
+{
+ memcpy ((char *) out, (char *) &in, 8);
+}
+
+void
+__ieee_to_host_64 (decimal64 in, _Decimal64 *out)
+{
+ memcpy ((char *) out, (char *) &in, 8);
+}
diff --git a/gcc-4.7/libdecnumber/config.in b/gcc-4.7/libdecnumber/config.in
new file mode 100644
index 000000000..98dc67d7f
--- /dev/null
+++ b/gcc-4.7/libdecnumber/config.in
@@ -0,0 +1,94 @@
+/* config.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+#undef AC_APPLE_UNIVERSAL_BUILD
+
+/* Define to 1 if you have the <ctype.h> header file. */
+#undef HAVE_CTYPE_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <stddef.h> header file. */
+#undef HAVE_STDDEF_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#undef HAVE_STDIO_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* The size of `char', as computed by sizeof. */
+#undef SIZEOF_CHAR
+
+/* The size of `int', as computed by sizeof. */
+#undef SIZEOF_INT
+
+/* The size of `long', as computed by sizeof. */
+#undef SIZEOF_LONG
+
+/* The size of `short', as computed by sizeof. */
+#undef SIZEOF_SHORT
+
+/* The size of `void *', as computed by sizeof. */
+#undef SIZEOF_VOID_P
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+# undef WORDS_BIGENDIAN
+# endif
+#endif
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
+/* Define to `long int' if <sys/types.h> does not define. */
+#undef off_t
diff --git a/gcc-4.7/libdecnumber/configure b/gcc-4.7/libdecnumber/configure
new file mode 100755
index 000000000..2b5868485
--- /dev/null
+++ b/gcc-4.7/libdecnumber/configure
@@ -0,0 +1,6554 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.64 for libdecnumber .
+#
+# Report bugs to <gcc-bugs@gcc.gnu.org>.
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+# Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org and
+$0: gcc-bugs@gcc.gnu.org about your system, including any
+$0: error possibly output before this message. Then install
+$0: a modern shell, or manually run the script under such a
+$0: shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 7<&0 </dev/null 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='libdecnumber'
+PACKAGE_TARNAME='libdecnumber'
+PACKAGE_VERSION=' '
+PACKAGE_STRING='libdecnumber '
+PACKAGE_BUGREPORT='gcc-bugs@gcc.gnu.org'
+PACKAGE_URL=''
+
+ac_unique_file="decNumber.h"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+ADDITIONAL_OBJS
+enable_decimal_float
+target_os
+target_vendor
+target_cpu
+target
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+MAINT
+EGREP
+GREP
+CPP
+WERROR
+WARN_PEDANTIC
+WARN_CFLAGS
+AUTOHEADER
+AUTOCONF
+ACLOCAL
+RANLIB
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+SET_MAKE
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_werror_always
+enable_maintainer_mode
+enable_decimal_float
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures libdecnumber to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/libdecnumber]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+ --target=TARGET configure for building compilers for TARGET [HOST]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of libdecnumber :";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-werror-always enable -Werror despite compiler version
+ --enable-maintainer-mode enable rules only needed by maintainers
+ --enable-decimal-float={no,yes,bid,dpd}
+ enable decimal float extension to C. Selecting 'bid'
+ or 'dpd' choses which decimal floating point format
+ to use
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <gcc-bugs@gcc.gnu.org>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+libdecnumber configure
+generated by GNU Autoconf 2.64
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( cat <<\_ASBOX
+## ----------------------------------- ##
+## Report this to gcc-bugs@gcc.gnu.org ##
+## ----------------------------------- ##
+_ASBOX
+ ) | sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_type
+
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid; break
+else
+ as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+ if test $ac_lo -le $ac_mid; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=$ac_mid; break
+else
+ as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+ if test $ac_mid -le $ac_hi; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+ as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid
+else
+ as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+ FILE *f = fopen ("conftest.val", "w");
+ if (! f)
+ return 1;
+ if (($2) < 0)
+ {
+ long int i = longval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%ld", i);
+ }
+ else
+ {
+ unsigned long int i = ulongval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%lu", i);
+ }
+ /* Do not output a trailing newline, as this causes \r\n confusion
+ on some platforms. */
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+ ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+ fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_compute_int
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by libdecnumber $as_me , which was
+generated by GNU Autoconf 2.64. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ ac_site_file1=$CONFIG_SITE
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+# Checks for programs.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ rm -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+if test -z "$ac_file"; then :
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "C compiler cannot create executables
+See \`config.log' for more details." "$LINENO" 5; }; }
+fi
+ac_exeext=$ac_cv_exeext
+
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out
+ac_clean_files=$ac_clean_files_save
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+
+MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
+for ac_prog in aclocal
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ACLOCAL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ACLOCAL"; then
+ ac_cv_prog_ACLOCAL="$ACLOCAL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ACLOCAL="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ACLOCAL=$ac_cv_prog_ACLOCAL
+if test -n "$ACLOCAL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ACLOCAL" >&5
+$as_echo "$ACLOCAL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ACLOCAL" && break
+done
+test -n "$ACLOCAL" || ACLOCAL="$MISSING aclocal"
+
+for ac_prog in autoconf
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AUTOCONF+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AUTOCONF"; then
+ ac_cv_prog_AUTOCONF="$AUTOCONF" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AUTOCONF="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AUTOCONF=$ac_cv_prog_AUTOCONF
+if test -n "$AUTOCONF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AUTOCONF" >&5
+$as_echo "$AUTOCONF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AUTOCONF" && break
+done
+test -n "$AUTOCONF" || AUTOCONF="$MISSING autoconf"
+
+for ac_prog in autoheader
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AUTOHEADER+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AUTOHEADER"; then
+ ac_cv_prog_AUTOHEADER="$AUTOHEADER" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AUTOHEADER="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AUTOHEADER=$ac_cv_prog_AUTOHEADER
+if test -n "$AUTOHEADER"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AUTOHEADER" >&5
+$as_echo "$AUTOHEADER" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AUTOHEADER" && break
+done
+test -n "$AUTOHEADER" || AUTOHEADER="$MISSING autoheader"
+
+
+# Figure out what compiler warnings we can enable.
+# See config/warnings.m4 for details.
+
+
+WARN_CFLAGS=
+save_CFLAGS="$CFLAGS"
+for real_option in -W -Wall -Wwrite-strings -Wstrict-prototypes \
+ -Wmissing-prototypes -Wold-style-definition \
+ -Wmissing-format-attribute -Wcast-qual; do
+ # Do the check with the no- prefix removed since gcc silently
+ # accepts any -Wno-* option on purpose
+ case $real_option in
+ -Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
+ *) option=$real_option ;;
+ esac
+ as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
+$as_echo_n "checking whether $CC supports $option... " >&6; }
+if { as_var=$as_acx_Woption; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ CFLAGS="$option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_acx_Woption=yes"
+else
+ eval "$as_acx_Woption=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+eval ac_res=\$$as_acx_Woption
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; then :
+ WARN_CFLAGS="$WARN_CFLAGS${WARN_CFLAGS:+ }$real_option"
+fi
+ done
+CFLAGS="$save_CFLAGS"
+
+WARN_PEDANTIC=
+# Do the check with the no- prefix removed from the warning options
+# since gcc silently accepts any -Wno-* option on purpose
+if test "$GCC" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -pedantic -Wlong-long" >&5
+$as_echo_n "checking whether $CC supports -pedantic -Wlong-long... " >&6; }
+if test "${acx_cv_prog_cc_pedantic__Wlong_long+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ save_CFLAGS="$CFLAGS"
+CFLAGS="-pedantic -Wlong-long"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ acx_cv_prog_cc_pedantic__Wlong_long=yes
+else
+ acx_cv_prog_cc_pedantic__Wlong_long=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+CFLAGS="$save_CFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_prog_cc_pedantic__Wlong_long" >&5
+$as_echo "$acx_cv_prog_cc_pedantic__Wlong_long" >&6; }
+if test $acx_cv_prog_cc_pedantic__Wlong_long = yes; then :
+ WARN_PEDANTIC="$WARN_PEDANTIC${WARN_PEDANTIC:+ }-pedantic -Wno-long-long"
+fi
+
+fi
+
+
+# Only enable with --enable-werror-always until existing warnings are
+# corrected.
+WERROR=
+# Check whether --enable-werror-always was given.
+if test "${enable_werror_always+set}" = set; then :
+ enableval=$enable_werror_always;
+else
+ enable_werror_always=no
+fi
+
+if test $enable_werror_always = yes; then :
+ WERROR="$WERROR${WERROR:+ }-Werror"
+fi
+
+
+
+# Checks for header files.
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in ctype.h stddef.h string.h stdio.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+inttype_headers=`echo inttypes.h sys/inttypes.h | sed -e 's/,/ /g'`
+
+acx_cv_header_stdint=stddef.h
+acx_cv_header_stdint_kind="(already complete)"
+for i in stdint.h $inttype_headers; do
+ unset ac_cv_type_uintptr_t
+ unset ac_cv_type_uintmax_t
+ unset ac_cv_type_int_least32_t
+ unset ac_cv_type_int_fast32_t
+ unset ac_cv_type_uint64_t
+ $as_echo_n "looking for a compliant stdint.h in $i, " >&6
+ ac_fn_c_check_type "$LINENO" "uintmax_t" "ac_cv_type_uintmax_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_uintmax_t" = x""yes; then :
+ acx_cv_header_stdint=$i
+else
+ continue
+fi
+
+ ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_uintptr_t" = x""yes; then :
+
+else
+ acx_cv_header_stdint_kind="(mostly complete)"
+fi
+
+ ac_fn_c_check_type "$LINENO" "int_least32_t" "ac_cv_type_int_least32_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_int_least32_t" = x""yes; then :
+
+else
+ acx_cv_header_stdint_kind="(mostly complete)"
+fi
+
+ ac_fn_c_check_type "$LINENO" "int_fast32_t" "ac_cv_type_int_fast32_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_int_fast32_t" = x""yes; then :
+
+else
+ acx_cv_header_stdint_kind="(mostly complete)"
+fi
+
+ ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_uint64_t" = x""yes; then :
+
+else
+ acx_cv_header_stdint_kind="(lacks uint64_t)"
+fi
+
+ break
+done
+if test "$acx_cv_header_stdint" = stddef.h; then
+ acx_cv_header_stdint_kind="(lacks uintmax_t)"
+ for i in stdint.h $inttype_headers; do
+ unset ac_cv_type_uintptr_t
+ unset ac_cv_type_uint32_t
+ unset ac_cv_type_uint64_t
+ $as_echo_n "looking for an incomplete stdint.h in $i, " >&6
+ ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_uint32_t" = x""yes; then :
+ acx_cv_header_stdint=$i
+else
+ continue
+fi
+
+ ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_uint64_t" = x""yes; then :
+
+fi
+
+ ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_uintptr_t" = x""yes; then :
+
+fi
+
+ break
+ done
+fi
+if test "$acx_cv_header_stdint" = stddef.h; then
+ acx_cv_header_stdint_kind="(u_intXX_t style)"
+ for i in sys/types.h $inttype_headers; do
+ unset ac_cv_type_u_int32_t
+ unset ac_cv_type_u_int64_t
+ $as_echo_n "looking for u_intXX_t types in $i, " >&6
+ ac_fn_c_check_type "$LINENO" "u_int32_t" "ac_cv_type_u_int32_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_u_int32_t" = x""yes; then :
+ acx_cv_header_stdint=$i
+else
+ continue
+fi
+
+ ac_fn_c_check_type "$LINENO" "u_int64_t" "ac_cv_type_u_int64_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_u_int64_t" = x""yes; then :
+
+fi
+
+ break
+ done
+fi
+if test "$acx_cv_header_stdint" = stddef.h; then
+ acx_cv_header_stdint_kind="(using manual detection)"
+fi
+
+test -z "$ac_cv_type_uintptr_t" && ac_cv_type_uintptr_t=no
+test -z "$ac_cv_type_uint64_t" && ac_cv_type_uint64_t=no
+test -z "$ac_cv_type_u_int64_t" && ac_cv_type_u_int64_t=no
+test -z "$ac_cv_type_int_least32_t" && ac_cv_type_int_least32_t=no
+test -z "$ac_cv_type_int_fast32_t" && ac_cv_type_int_fast32_t=no
+
+# ----------------- Summarize what we found so far
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what to include in gstdint.h" >&5
+$as_echo_n "checking what to include in gstdint.h... " >&6; }
+
+case `$as_basename -- gstdint.h ||
+$as_expr X/gstdint.h : '.*/\([^/][^/]*\)/*$' \| \
+ Xgstdint.h : 'X\(//\)$' \| \
+ Xgstdint.h : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/gstdint.h |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'` in
+ stdint.h) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: are you sure you want it there?" >&5
+$as_echo "$as_me: WARNING: are you sure you want it there?" >&2;} ;;
+ inttypes.h) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: are you sure you want it there?" >&5
+$as_echo "$as_me: WARNING: are you sure you want it there?" >&2;} ;;
+ *) ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_header_stdint $acx_cv_header_stdint_kind" >&5
+$as_echo "$acx_cv_header_stdint $acx_cv_header_stdint_kind" >&6; }
+
+# ----------------- done included file, check C basic types --------
+
+# Lacking an uintptr_t? Test size of void *
+case "$acx_cv_header_stdint:$ac_cv_type_uintptr_t" in
+ stddef.h:* | *:no) # The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
+$as_echo_n "checking size of void *... " >&6; }
+if test "${ac_cv_sizeof_void_p+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_void_p" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (void *)
+See \`config.log' for more details." "$LINENO" 5; }; }
+ else
+ ac_cv_sizeof_void_p=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
+$as_echo "$ac_cv_sizeof_void_p" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
+_ACEOF
+
+ ;;
+esac
+
+# Lacking an uint64_t? Test size of long
+case "$acx_cv_header_stdint:$ac_cv_type_uint64_t:$ac_cv_type_u_int64_t" in
+ stddef.h:*:* | *:no:no) # The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+$as_echo_n "checking size of long... " >&6; }
+if test "${ac_cv_sizeof_long+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_long" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (long)
+See \`config.log' for more details." "$LINENO" 5; }; }
+ else
+ ac_cv_sizeof_long=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+$as_echo "$ac_cv_sizeof_long" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+_ACEOF
+
+ ;;
+esac
+
+if test $acx_cv_header_stdint = stddef.h; then
+ # Lacking a good header? Test size of everything and deduce all types.
+ # The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
+$as_echo_n "checking size of int... " >&6; }
+if test "${ac_cv_sizeof_int+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_int" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (int)
+See \`config.log' for more details." "$LINENO" 5; }; }
+ else
+ ac_cv_sizeof_int=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
+$as_echo "$ac_cv_sizeof_int" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+_ACEOF
+
+
+ # The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
+$as_echo_n "checking size of short... " >&6; }
+if test "${ac_cv_sizeof_short+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_short" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (short)
+See \`config.log' for more details." "$LINENO" 5; }; }
+ else
+ ac_cv_sizeof_short=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
+$as_echo "$ac_cv_sizeof_short" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_SHORT $ac_cv_sizeof_short
+_ACEOF
+
+
+ # The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5
+$as_echo_n "checking size of char... " >&6; }
+if test "${ac_cv_sizeof_char+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_char" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (char)
+See \`config.log' for more details." "$LINENO" 5; }; }
+ else
+ ac_cv_sizeof_char=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5
+$as_echo "$ac_cv_sizeof_char" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_CHAR $ac_cv_sizeof_char
+_ACEOF
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for type equivalent to int8_t" >&5
+$as_echo_n "checking for type equivalent to int8_t... " >&6; }
+ case "$ac_cv_sizeof_char" in
+ 1) acx_cv_type_int8_t=char ;;
+ *) as_fn_error "no 8-bit type, please report a bug" "$LINENO" 5
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_int8_t" >&5
+$as_echo "$acx_cv_type_int8_t" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for type equivalent to int16_t" >&5
+$as_echo_n "checking for type equivalent to int16_t... " >&6; }
+ case "$ac_cv_sizeof_int:$ac_cv_sizeof_short" in
+ 2:*) acx_cv_type_int16_t=int ;;
+ *:2) acx_cv_type_int16_t=short ;;
+ *) as_fn_error "no 16-bit type, please report a bug" "$LINENO" 5
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_int16_t" >&5
+$as_echo "$acx_cv_type_int16_t" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for type equivalent to int32_t" >&5
+$as_echo_n "checking for type equivalent to int32_t... " >&6; }
+ case "$ac_cv_sizeof_int:$ac_cv_sizeof_long" in
+ 4:*) acx_cv_type_int32_t=int ;;
+ *:4) acx_cv_type_int32_t=long ;;
+ *) as_fn_error "no 32-bit type, please report a bug" "$LINENO" 5
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_int32_t" >&5
+$as_echo "$acx_cv_type_int32_t" >&6; }
+fi
+
+# These tests are here to make the output prettier
+
+if test "$ac_cv_type_uint64_t" != yes && test "$ac_cv_type_u_int64_t" != yes; then
+ case "$ac_cv_sizeof_long" in
+ 8) acx_cv_type_int64_t=long ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for type equivalent to int64_t" >&5
+$as_echo_n "checking for type equivalent to int64_t... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${acx_cv_type_int64_t-'using preprocessor symbols'}" >&5
+$as_echo "${acx_cv_type_int64_t-'using preprocessor symbols'}" >&6; }
+fi
+
+# Now we can use the above types
+
+if test "$ac_cv_type_uintptr_t" != yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for type equivalent to intptr_t" >&5
+$as_echo_n "checking for type equivalent to intptr_t... " >&6; }
+ case $ac_cv_sizeof_void_p in
+ 2) acx_cv_type_intptr_t=int16_t ;;
+ 4) acx_cv_type_intptr_t=int32_t ;;
+ 8) acx_cv_type_intptr_t=int64_t ;;
+ *) as_fn_error "no equivalent for intptr_t, please report a bug" "$LINENO" 5
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_intptr_t" >&5
+$as_echo "$acx_cv_type_intptr_t" >&6; }
+fi
+
+# ----------------- done all checks, emit header -------------
+ac_config_commands="$ac_config_commands gstdint.h"
+
+
+
+
+# Checks for typedefs, structures, and compiler characteristics.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
+$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
+if test "${ac_cv_c_const+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this. */
+ typedef int charset[2];
+ const charset cs;
+ /* SunOS 4.1.1 cc rejects this. */
+ char const *const *pcpcc;
+ char **ppc;
+ /* NEC SVR4.0.2 mips cc rejects this. */
+ struct point {int x, y;};
+ static struct point const zero = {0,0};
+ /* AIX XL C 1.02.0.0 rejects this.
+ It does not let you subtract one const X* pointer from another in
+ an arm of an if-expression whose if-part is not a constant
+ expression */
+ const char *g = "string";
+ pcpcc = &g + (g ? g-g : 0);
+ /* HPUX 7.0 cc rejects these. */
+ ++pcpcc;
+ ppc = (char**) pcpcc;
+ pcpcc = (char const *const *) ppc;
+ { /* SCO 3.2v4 cc rejects this. */
+ char *t;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+ if (s) return 0;
+ }
+ { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+ int x[] = {25, 17};
+ const int *foo = &x[0];
+ ++foo;
+ }
+ { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+ typedef const int *iptr;
+ iptr p = 0;
+ ++p;
+ }
+ { /* AIX XL C 1.02.0.0 rejects this saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; b->j = 5;
+ }
+ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+ if (!foo) return 0;
+ }
+ return !cs[0] && !zero.x;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_const=yes
+else
+ ac_cv_c_const=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+$as_echo "$ac_cv_c_const" >&6; }
+if test $ac_cv_c_const = no; then
+
+$as_echo "#define const /**/" >>confdefs.h
+
+fi
+
+ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
+if test "x$ac_cv_type_off_t" = x""yes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define off_t long int
+_ACEOF
+
+fi
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
+$as_echo_n "checking size of int... " >&6; }
+if test "${ac_cv_sizeof_int+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_int" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (int)
+See \`config.log' for more details." "$LINENO" 5; }; }
+ else
+ ac_cv_sizeof_int=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
+$as_echo "$ac_cv_sizeof_int" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+_ACEOF
+
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+$as_echo_n "checking size of long... " >&6; }
+if test "${ac_cv_sizeof_long+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_long" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (long)
+See \`config.log' for more details." "$LINENO" 5; }; }
+ else
+ ac_cv_sizeof_long=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+$as_echo "$ac_cv_sizeof_long" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+_ACEOF
+
+
+
+# Checks for library functions.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+
+# Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode;
+else
+ enable_maintainer_mode=no
+fi
+
+
+if test "x$enable_maintainer_mode" = xno; then
+ MAINT='#'
+else
+ MAINT=
+fi
+
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ for ac_t in install-sh install.sh shtool; do
+ if test -f "$ac_dir/$ac_t"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/$ac_t -c"
+ break 2
+ fi
+ done
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if test "${ac_cv_build+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if test "${ac_cv_host+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if test "${ac_cv_target+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$target_alias" = x; then
+ ac_cv_target=$ac_cv_host
+else
+ ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+# Default decimal format
+# If you change the defaults here, be sure to change them in the GCC directory also
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for decimal floating point" >&5
+$as_echo_n "checking for decimal floating point... " >&6; }
+
+
+# Check whether --enable-decimal-float was given.
+if test "${enable_decimal_float+set}" = set; then :
+ enableval=$enable_decimal_float;
+ case $enable_decimal_float in
+ yes | no | bid | dpd) default_decimal_float=$enable_decimal_float ;;
+ *) as_fn_error "'$enable_decimal_float' is an invalid value for --enable-decimal-float.
+Valid choices are 'yes', 'bid', 'dpd', and 'no'." "$LINENO" 5 ;;
+ esac
+
+else
+
+ case $target in
+ powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | s390*-*-linux* | \
+ i?86*-*-mingw* | x86_64*-*-mingw* | \
+ i?86*-*-cygwin*)
+ enable_decimal_float=yes
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: decimal float is not supported for this target, ignored" >&5
+$as_echo "$as_me: WARNING: decimal float is not supported for this target, ignored" >&2;}
+ enable_decimal_float=no
+ ;;
+ esac
+
+fi
+
+
+# x86's use BID format instead of DPD
+case x$enable_decimal_float in
+ xyes)
+ case $target in
+ i?86*-*-* | x86_64*-*-*)
+ enable_decimal_float=bid
+ ;;
+ *)
+ enable_decimal_float=dpd
+ ;;
+ esac
+ default_decimal_float=$enable_decimal_float
+ ;;
+ xno)
+ # ENABLE_DECIMAL_FLOAT is set to 0. But we have to have proper
+ # dependency on libdecnumber.
+ default_decimal_float=dpd
+ ;;
+esac
+
+
+
+
+# Use default_decimal_float for dependency.
+enable_decimal_float=$default_decimal_float
+
+# If BID is being used, additional objects should be linked in.
+if test x$enable_decimal_float = xbid; then
+ ADDITIONAL_OBJS="$ADDITIONAL_OBJS \$(bid_OBJS)"
+else
+ ADDITIONAL_OBJS=
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_decimal_float" >&5
+$as_echo "$enable_decimal_float" >&6; }
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if test "${ac_cv_c_bigendian+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_bigendian=unknown
+ # See if we're dealing with a universal compiler.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ # Check for potential -arch flags. It is not universal unless
+ # there are at least two -arch flags with different values.
+ ac_arch=
+ ac_prev=
+ for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+ if test -n "$ac_prev"; then
+ case $ac_word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+ ac_arch=$ac_word
+ else
+ ac_cv_c_bigendian=universal
+ break
+ fi
+ ;;
+ esac
+ ac_prev=
+ elif test "x$ac_word" = "x-arch"; then
+ ac_prev=arch
+ fi
+ done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if sys/param.h defines the BYTE_ORDER macro.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+ && LITTLE_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to _BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # Compile a test program.
+ if test "$cross_compiling" = yes; then :
+ # Try to guess by grepping values from an object file.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+short int ascii_mm[] =
+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+ short int ascii_ii[] =
+ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+ int use_ascii (int i) {
+ return ascii_mm[i] + ascii_ii[i];
+ }
+ short int ebcdic_ii[] =
+ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+ short int ebcdic_mm[] =
+ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+ int use_ebcdic (int i) {
+ return ebcdic_mm[i] + ebcdic_ii[i];
+ }
+ extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+ ac_cv_c_bigendian=yes
+ fi
+ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+ if test "$ac_cv_c_bigendian" = unknown; then
+ ac_cv_c_bigendian=no
+ else
+ # finding both strings is unlikely to happen, but who knows?
+ ac_cv_c_bigendian=unknown
+ fi
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long int l;
+ char c[sizeof (long int)];
+ } u;
+ u.l = 1;
+ return u.c[sizeof (long int) - 1] == 1;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_bigendian=no
+else
+ ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+ yes)
+ $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+;; #(
+ no)
+ ;; #(
+ universal)
+
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+ ;; #(
+ *)
+ as_fn_error "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+ esac
+
+
+# Output.
+
+ac_config_headers="$ac_config_headers config.h:config.in"
+
+ac_config_files="$ac_config_files Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ test "x$cache_file" != "x/dev/null" &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ cat confcache >$cache_file
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by libdecnumber $as_me , which was
+generated by GNU Autoconf 2.64. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <gcc-bugs@gcc.gnu.org>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_version="\\
+libdecnumber config.status
+configured by $0, generated by GNU Autoconf 2.64,
+ with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+
+GCC="$GCC"
+CC="$CC"
+acx_cv_header_stdint="$acx_cv_header_stdint"
+acx_cv_type_int8_t="$acx_cv_type_int8_t"
+acx_cv_type_int16_t="$acx_cv_type_int16_t"
+acx_cv_type_int32_t="$acx_cv_type_int32_t"
+acx_cv_type_int64_t="$acx_cv_type_int64_t"
+acx_cv_type_intptr_t="$acx_cv_type_intptr_t"
+ac_cv_type_uintmax_t="$ac_cv_type_uintmax_t"
+ac_cv_type_uintptr_t="$ac_cv_type_uintptr_t"
+ac_cv_type_uint64_t="$ac_cv_type_uint64_t"
+ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t"
+ac_cv_type_u_int32_t="$ac_cv_type_u_int32_t"
+ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t"
+ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t"
+ac_cv_sizeof_void_p="$ac_cv_sizeof_void_p"
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "gstdint.h") CONFIG_COMMANDS="$CONFIG_COMMANDS gstdint.h" ;;
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+
+ *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp=
+ trap 'exit_status=$?
+ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\).*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\).*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+ || as_fn_error "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[ ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_t"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$tmp/stdin" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&2;}
+
+ rm -f "$tmp/stdin"
+ case $ac_file in
+ -) cat "$tmp/out" && rm -f "$tmp/out";;
+ *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+ } >"$tmp/config.h" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$tmp/config.h" "$ac_file" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error "could not create -" "$LINENO" 5
+ fi
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "gstdint.h":C)
+if test "$GCC" = yes; then
+ echo "/* generated for " `$CC --version | sed 1q` "*/" > tmp-stdint.h
+else
+ echo "/* generated for $CC */" > tmp-stdint.h
+fi
+
+sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ #ifndef GCC_GENERATED_STDINT_H
+ #define GCC_GENERATED_STDINT_H 1
+
+ #include <sys/types.h>
+EOF
+
+if test "$acx_cv_header_stdint" != stdint.h; then
+ echo "#include <stddef.h>" >> tmp-stdint.h
+fi
+if test "$acx_cv_header_stdint" != stddef.h; then
+ echo "#include <$acx_cv_header_stdint>" >> tmp-stdint.h
+fi
+
+sed 's/^ *//' >> tmp-stdint.h <<EOF
+ /* glibc uses these symbols as guards to prevent redefinitions. */
+ #ifdef __int8_t_defined
+ #define _INT8_T
+ #define _INT16_T
+ #define _INT32_T
+ #endif
+ #ifdef __uint32_t_defined
+ #define _UINT32_T
+ #endif
+
+EOF
+
+# ----------------- done header, emit basic int types -------------
+if test "$acx_cv_header_stdint" = stddef.h; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ #ifndef _UINT8_T
+ #define _UINT8_T
+ #ifndef __uint8_t_defined
+ #define __uint8_t_defined
+ #ifndef uint8_t
+ typedef unsigned $acx_cv_type_int8_t uint8_t;
+ #endif
+ #endif
+ #endif
+
+ #ifndef _UINT16_T
+ #define _UINT16_T
+ #ifndef __uint16_t_defined
+ #define __uint16_t_defined
+ #ifndef uint16_t
+ typedef unsigned $acx_cv_type_int16_t uint16_t;
+ #endif
+ #endif
+ #endif
+
+ #ifndef _UINT32_T
+ #define _UINT32_T
+ #ifndef __uint32_t_defined
+ #define __uint32_t_defined
+ #ifndef uint32_t
+ typedef unsigned $acx_cv_type_int32_t uint32_t;
+ #endif
+ #endif
+ #endif
+
+ #ifndef _INT8_T
+ #define _INT8_T
+ #ifndef __int8_t_defined
+ #define __int8_t_defined
+ #ifndef int8_t
+ typedef $acx_cv_type_int8_t int8_t;
+ #endif
+ #endif
+ #endif
+
+ #ifndef _INT16_T
+ #define _INT16_T
+ #ifndef __int16_t_defined
+ #define __int16_t_defined
+ #ifndef int16_t
+ typedef $acx_cv_type_int16_t int16_t;
+ #endif
+ #endif
+ #endif
+
+ #ifndef _INT32_T
+ #define _INT32_T
+ #ifndef __int32_t_defined
+ #define __int32_t_defined
+ #ifndef int32_t
+ typedef $acx_cv_type_int32_t int32_t;
+ #endif
+ #endif
+ #endif
+EOF
+elif test "$ac_cv_type_u_int32_t" = yes; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* int8_t int16_t int32_t defined by inet code, we do the u_intXX types */
+ #ifndef _INT8_T
+ #define _INT8_T
+ #endif
+ #ifndef _INT16_T
+ #define _INT16_T
+ #endif
+ #ifndef _INT32_T
+ #define _INT32_T
+ #endif
+
+ #ifndef _UINT8_T
+ #define _UINT8_T
+ #ifndef __uint8_t_defined
+ #define __uint8_t_defined
+ #ifndef uint8_t
+ typedef u_int8_t uint8_t;
+ #endif
+ #endif
+ #endif
+
+ #ifndef _UINT16_T
+ #define _UINT16_T
+ #ifndef __uint16_t_defined
+ #define __uint16_t_defined
+ #ifndef uint16_t
+ typedef u_int16_t uint16_t;
+ #endif
+ #endif
+ #endif
+
+ #ifndef _UINT32_T
+ #define _UINT32_T
+ #ifndef __uint32_t_defined
+ #define __uint32_t_defined
+ #ifndef uint32_t
+ typedef u_int32_t uint32_t;
+ #endif
+ #endif
+ #endif
+EOF
+else
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* Some systems have guard macros to prevent redefinitions, define them. */
+ #ifndef _INT8_T
+ #define _INT8_T
+ #endif
+ #ifndef _INT16_T
+ #define _INT16_T
+ #endif
+ #ifndef _INT32_T
+ #define _INT32_T
+ #endif
+ #ifndef _UINT8_T
+ #define _UINT8_T
+ #endif
+ #ifndef _UINT16_T
+ #define _UINT16_T
+ #endif
+ #ifndef _UINT32_T
+ #define _UINT32_T
+ #endif
+EOF
+fi
+
+# ------------- done basic int types, emit int64_t types ------------
+if test "$ac_cv_type_uint64_t" = yes; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* system headers have good uint64_t and int64_t */
+ #ifndef _INT64_T
+ #define _INT64_T
+ #endif
+ #ifndef _UINT64_T
+ #define _UINT64_T
+ #endif
+EOF
+elif test "$ac_cv_type_u_int64_t" = yes; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* system headers have an u_int64_t (and int64_t) */
+ #ifndef _INT64_T
+ #define _INT64_T
+ #endif
+ #ifndef _UINT64_T
+ #define _UINT64_T
+ #ifndef __uint64_t_defined
+ #define __uint64_t_defined
+ #ifndef uint64_t
+ typedef u_int64_t uint64_t;
+ #endif
+ #endif
+ #endif
+EOF
+elif test -n "$acx_cv_type_int64_t"; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* architecture has a 64-bit type, $acx_cv_type_int64_t */
+ #ifndef _INT64_T
+ #define _INT64_T
+ #ifndef int64_t
+ typedef $acx_cv_type_int64_t int64_t;
+ #endif
+ #endif
+ #ifndef _UINT64_T
+ #define _UINT64_T
+ #ifndef __uint64_t_defined
+ #define __uint64_t_defined
+ #ifndef uint64_t
+ typedef unsigned $acx_cv_type_int64_t uint64_t;
+ #endif
+ #endif
+ #endif
+EOF
+else
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* some common heuristics for int64_t, using compiler-specific tests */
+ #if defined __STDC_VERSION__ && (__STDC_VERSION__-0) >= 199901L
+ #ifndef _INT64_T
+ #define _INT64_T
+ #ifndef __int64_t_defined
+ #ifndef int64_t
+ typedef long long int64_t;
+ #endif
+ #endif
+ #endif
+ #ifndef _UINT64_T
+ #define _UINT64_T
+ #ifndef uint64_t
+ typedef unsigned long long uint64_t;
+ #endif
+ #endif
+
+ #elif defined __GNUC__ && defined (__STDC__) && __STDC__-0
+ /* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
+ does not implement __extension__. But that compiler doesn't define
+ __GNUC_MINOR__. */
+ # if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
+ # define __extension__
+ # endif
+
+ # ifndef _INT64_T
+ # define _INT64_T
+ # ifndef int64_t
+ __extension__ typedef long long int64_t;
+ # endif
+ # endif
+ # ifndef _UINT64_T
+ # define _UINT64_T
+ # ifndef uint64_t
+ __extension__ typedef unsigned long long uint64_t;
+ # endif
+ # endif
+
+ #elif !defined __STRICT_ANSI__
+ # if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__
+
+ # ifndef _INT64_T
+ # define _INT64_T
+ # ifndef int64_t
+ typedef __int64 int64_t;
+ # endif
+ # endif
+ # ifndef _UINT64_T
+ # define _UINT64_T
+ # ifndef uint64_t
+ typedef unsigned __int64 uint64_t;
+ # endif
+ # endif
+ # endif /* compiler */
+
+ #endif /* ANSI version */
+EOF
+fi
+
+# ------------- done int64_t types, emit intptr types ------------
+if test "$ac_cv_type_uintptr_t" != yes; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* Define intptr_t based on sizeof(void*) = $ac_cv_sizeof_void_p */
+ #ifndef __uintptr_t_defined
+ #ifndef uintptr_t
+ typedef u$acx_cv_type_intptr_t uintptr_t;
+ #endif
+ #endif
+ #ifndef __intptr_t_defined
+ #ifndef intptr_t
+ typedef $acx_cv_type_intptr_t intptr_t;
+ #endif
+ #endif
+EOF
+fi
+
+# ------------- done intptr types, emit int_least types ------------
+if test "$ac_cv_type_int_least32_t" != yes; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* Define int_least types */
+ typedef int8_t int_least8_t;
+ typedef int16_t int_least16_t;
+ typedef int32_t int_least32_t;
+ #ifdef _INT64_T
+ typedef int64_t int_least64_t;
+ #endif
+
+ typedef uint8_t uint_least8_t;
+ typedef uint16_t uint_least16_t;
+ typedef uint32_t uint_least32_t;
+ #ifdef _UINT64_T
+ typedef uint64_t uint_least64_t;
+ #endif
+EOF
+fi
+
+# ------------- done intptr types, emit int_fast types ------------
+if test "$ac_cv_type_int_fast32_t" != yes; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* Define int_fast types. short is often slow */
+ typedef int8_t int_fast8_t;
+ typedef int int_fast16_t;
+ typedef int32_t int_fast32_t;
+ #ifdef _INT64_T
+ typedef int64_t int_fast64_t;
+ #endif
+
+ typedef uint8_t uint_fast8_t;
+ typedef unsigned int uint_fast16_t;
+ typedef uint32_t uint_fast32_t;
+ #ifdef _UINT64_T
+ typedef uint64_t uint_fast64_t;
+ #endif
+EOF
+fi
+
+if test "$ac_cv_type_uintmax_t" != yes; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* Define intmax based on what we found */
+ #ifndef intmax_t
+ #ifdef _INT64_T
+ typedef int64_t intmax_t;
+ #else
+ typedef long intmax_t;
+ #endif
+ #endif
+ #ifndef uintmax_t
+ #ifdef _UINT64_T
+ typedef uint64_t uintmax_t;
+ #else
+ typedef unsigned long uintmax_t;
+ #endif
+ #endif
+EOF
+fi
+
+sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ #endif /* GCC_GENERATED_STDINT_H */
+EOF
+
+if test -r gstdint.h && cmp -s tmp-stdint.h gstdint.h; then
+ rm -f tmp-stdint.h
+else
+ mv -f tmp-stdint.h gstdint.h
+fi
+
+ ;;
+ "config.h":H) echo timestamp > stamp-h1 ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit $?
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/gcc-4.7/libdecnumber/configure.ac b/gcc-4.7/libdecnumber/configure.ac
new file mode 100644
index 000000000..87820bf22
--- /dev/null
+++ b/gcc-4.7/libdecnumber/configure.ac
@@ -0,0 +1,101 @@
+# configure.ac for libdecnumber -*- Autoconf -*-
+# Process this file with autoconf to generate a configuration script.
+
+# Copyright 2005, 2006, 2009 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 3, or (at your option) any
+# later #version.
+
+# 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 COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+AC_PREREQ(2.64)
+AC_INIT(libdecnumber, [ ], gcc-bugs@gcc.gnu.org, libdecnumber)
+AC_CONFIG_SRCDIR(decNumber.h)
+AC_CONFIG_MACRO_DIR(../config)
+
+# Checks for programs.
+AC_PROG_MAKE_SET
+AC_PROG_CC
+AC_PROG_RANLIB
+
+MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
+AC_CHECK_PROGS([ACLOCAL], [aclocal], [$MISSING aclocal])
+AC_CHECK_PROGS([AUTOCONF], [autoconf], [$MISSING autoconf])
+AC_CHECK_PROGS([AUTOHEADER], [autoheader], [$MISSING autoheader])
+
+# Figure out what compiler warnings we can enable.
+# See config/warnings.m4 for details.
+
+ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wstrict-prototypes \
+ -Wmissing-prototypes -Wold-style-definition \
+ -Wmissing-format-attribute -Wcast-qual])
+ACX_PROG_CC_WARNING_ALMOST_PEDANTIC([-Wno-long-long])
+
+# Only enable with --enable-werror-always until existing warnings are
+# corrected.
+ACX_PROG_CC_WARNINGS_ARE_ERRORS([manual])
+
+# Checks for header files.
+AC_CHECK_HEADERS(ctype.h stddef.h string.h stdio.h)
+GCC_HEADER_STDINT(gstdint.h)
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_TYPE_OFF_T
+AC_CHECK_SIZEOF(int)
+AC_CHECK_SIZEOF(long)
+
+# Checks for library functions.
+AC_HEADER_STDC
+
+AC_ARG_ENABLE(maintainer-mode,
+[ --enable-maintainer-mode enable rules only needed by maintainers],,
+enable_maintainer_mode=no)
+
+if test "x$enable_maintainer_mode" = xno; then
+ MAINT='#'
+else
+ MAINT=
+fi
+AC_SUBST(MAINT)
+
+AC_CANONICAL_TARGET
+
+# Default decimal format
+# If you change the defaults here, be sure to change them in the GCC directory also
+AC_MSG_CHECKING([for decimal floating point])
+
+GCC_AC_ENABLE_DECIMAL_FLOAT([$target])
+
+# Use default_decimal_float for dependency.
+enable_decimal_float=$default_decimal_float
+
+# If BID is being used, additional objects should be linked in.
+if test x$enable_decimal_float = xbid; then
+ ADDITIONAL_OBJS="$ADDITIONAL_OBJS \$(bid_OBJS)"
+else
+ ADDITIONAL_OBJS=
+fi
+
+AC_MSG_RESULT($enable_decimal_float)
+AC_SUBST(enable_decimal_float)
+AC_SUBST(ADDITIONAL_OBJS)
+
+AC_C_BIGENDIAN
+
+# Output.
+
+AC_CONFIG_HEADERS(config.h:config.in, [echo timestamp > stamp-h1])
+AC_CONFIG_FILES(Makefile)
+AC_OUTPUT
diff --git a/gcc-4.7/libdecnumber/dconfig.h b/gcc-4.7/libdecnumber/dconfig.h
new file mode 100644
index 000000000..975f9a1c8
--- /dev/null
+++ b/gcc-4.7/libdecnumber/dconfig.h
@@ -0,0 +1,39 @@
+/* Configure decNumber for either host or target.
+ Copyright (C) 2008, 2009, 2010 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 3, or (at your option) any later
+ version.
+
+ 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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+#ifdef IN_LIBGCC2
+
+#include "tconfig.h"
+#include "coretypes.h"
+#include "tm.h"
+
+#if __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__
+#define WORDS_BIGENDIAN 1
+#endif
+
+#else
+
+#include "config.h"
+
+#endif
diff --git a/gcc-4.7/libdecnumber/decBasic.c b/gcc-4.7/libdecnumber/decBasic.c
new file mode 100644
index 000000000..75ce17bce
--- /dev/null
+++ b/gcc-4.7/libdecnumber/decBasic.c
@@ -0,0 +1,3909 @@
+/* Common base code for the decNumber C Library.
+ Copyright (C) 2007, 2009 Free Software Foundation, Inc.
+ Contributed by IBM Corporation. Author Mike Cowlishaw.
+
+ 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 3, or (at your option) any later
+ version.
+
+ 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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+/* ------------------------------------------------------------------ */
+/* decBasic.c -- common base code for Basic decimal types */
+/* ------------------------------------------------------------------ */
+/* This module comprises code that is shared between decDouble and */
+/* decQuad (but not decSingle). The main arithmetic operations are */
+/* here (Add, Subtract, Multiply, FMA, and Division operators). */
+/* */
+/* Unlike decNumber, parameterization takes place at compile time */
+/* rather than at runtime. The parameters are set in the decDouble.c */
+/* (etc.) files, which then include this one to produce the compiled */
+/* code. The functions here, therefore, are code shared between */
+/* multiple formats. */
+/* */
+/* This must be included after decCommon.c. */
+/* ------------------------------------------------------------------ */
+/* Names here refer to decFloat rather than to decDouble, etc., and */
+/* the functions are in strict alphabetical order. */
+
+/* The compile-time flags SINGLE, DOUBLE, and QUAD are set up in */
+/* decCommon.c */
+#if !defined(QUAD)
+ #error decBasic.c must be included after decCommon.c
+#endif
+#if SINGLE
+ #error Routines in decBasic.c are for decDouble and decQuad only
+#endif
+
+/* Private constants */
+#define DIVIDE 0x80000000 /* Divide operations [as flags] */
+#define REMAINDER 0x40000000 /* .. */
+#define DIVIDEINT 0x20000000 /* .. */
+#define REMNEAR 0x10000000 /* .. */
+
+/* Private functions (local, used only by routines in this module) */
+static decFloat *decDivide(decFloat *, const decFloat *,
+ const decFloat *, decContext *, uInt);
+static decFloat *decCanonical(decFloat *, const decFloat *);
+static void decFiniteMultiply(bcdnum *, uByte *, const decFloat *,
+ const decFloat *);
+static decFloat *decInfinity(decFloat *, const decFloat *);
+static decFloat *decInvalid(decFloat *, decContext *);
+static decFloat *decNaNs(decFloat *, const decFloat *, const decFloat *,
+ decContext *);
+static Int decNumCompare(const decFloat *, const decFloat *, Flag);
+static decFloat *decToIntegral(decFloat *, const decFloat *, decContext *,
+ enum rounding, Flag);
+static uInt decToInt32(const decFloat *, decContext *, enum rounding,
+ Flag, Flag);
+
+/* ------------------------------------------------------------------ */
+/* decCanonical -- copy a decFloat, making canonical */
+/* */
+/* result gets the canonicalized df */
+/* df is the decFloat to copy and make canonical */
+/* returns result */
+/* */
+/* This is exposed via decFloatCanonical for Double and Quad only. */
+/* This works on specials, too; no error or exception is possible. */
+/* ------------------------------------------------------------------ */
+static decFloat * decCanonical(decFloat *result, const decFloat *df) {
+ uInt encode, precode, dpd; /* work */
+ uInt inword, uoff, canon; /* .. */
+ Int n; /* counter (down) */
+ if (df!=result) *result=*df; /* effect copy if needed */
+ if (DFISSPECIAL(result)) {
+ if (DFISINF(result)) return decInfinity(result, df); /* clean Infinity */
+ /* is a NaN */
+ DFWORD(result, 0)&=~ECONNANMASK; /* clear ECON except selector */
+ if (DFISCCZERO(df)) return result; /* coefficient continuation is 0 */
+ /* drop through to check payload */
+ }
+ /* return quickly if the coefficient continuation is canonical */
+ { /* declare block */
+ #if DOUBLE
+ uInt sourhi=DFWORD(df, 0);
+ uInt sourlo=DFWORD(df, 1);
+ if (CANONDPDOFF(sourhi, 8)
+ && CANONDPDTWO(sourhi, sourlo, 30)
+ && CANONDPDOFF(sourlo, 20)
+ && CANONDPDOFF(sourlo, 10)
+ && CANONDPDOFF(sourlo, 0)) return result;
+ #elif QUAD
+ uInt sourhi=DFWORD(df, 0);
+ uInt sourmh=DFWORD(df, 1);
+ uInt sourml=DFWORD(df, 2);
+ uInt sourlo=DFWORD(df, 3);
+ if (CANONDPDOFF(sourhi, 4)
+ && CANONDPDTWO(sourhi, sourmh, 26)
+ && CANONDPDOFF(sourmh, 16)
+ && CANONDPDOFF(sourmh, 6)
+ && CANONDPDTWO(sourmh, sourml, 28)
+ && CANONDPDOFF(sourml, 18)
+ && CANONDPDOFF(sourml, 8)
+ && CANONDPDTWO(sourml, sourlo, 30)
+ && CANONDPDOFF(sourlo, 20)
+ && CANONDPDOFF(sourlo, 10)
+ && CANONDPDOFF(sourlo, 0)) return result;
+ #endif
+ } /* block */
+
+ /* Loop to repair a non-canonical coefficent, as needed */
+ inword=DECWORDS-1; /* current input word */
+ uoff=0; /* bit offset of declet */
+ encode=DFWORD(result, inword);
+ for (n=DECLETS-1; n>=0; n--) { /* count down declets of 10 bits */
+ dpd=encode>>uoff;
+ uoff+=10;
+ if (uoff>32) { /* crossed uInt boundary */
+ inword--;
+ encode=DFWORD(result, inword);
+ uoff-=32;
+ dpd|=encode<<(10-uoff); /* get pending bits */
+ }
+ dpd&=0x3ff; /* clear uninteresting bits */
+ if (dpd<0x16e) continue; /* must be canonical */
+ canon=BIN2DPD[DPD2BIN[dpd]]; /* determine canonical declet */
+ if (canon==dpd) continue; /* have canonical declet */
+ /* need to replace declet */
+ if (uoff>=10) { /* all within current word */
+ encode&=~(0x3ff<<(uoff-10)); /* clear the 10 bits ready for replace */
+ encode|=canon<<(uoff-10); /* insert the canonical form */
+ DFWORD(result, inword)=encode; /* .. and save */
+ continue;
+ }
+ /* straddled words */
+ precode=DFWORD(result, inword+1); /* get previous */
+ precode&=0xffffffff>>(10-uoff); /* clear top bits */
+ DFWORD(result, inword+1)=precode|(canon<<(32-(10-uoff)));
+ encode&=0xffffffff<<uoff; /* clear bottom bits */
+ encode|=canon>>(10-uoff); /* insert canonical */
+ DFWORD(result, inword)=encode; /* .. and save */
+ } /* n */
+ return result;
+ } /* decCanonical */
+
+/* ------------------------------------------------------------------ */
+/* decDivide -- divide operations */
+/* */
+/* result gets the result of dividing dfl by dfr: */
+/* dfl is the first decFloat (lhs) */
+/* dfr is the second decFloat (rhs) */
+/* set is the context */
+/* op is the operation selector */
+/* returns result */
+/* */
+/* op is one of DIVIDE, REMAINDER, DIVIDEINT, or REMNEAR. */
+/* ------------------------------------------------------------------ */
+#define DIVCOUNT 0 /* 1 to instrument subtractions counter */
+#define DIVBASE ((uInt)BILLION) /* the base used for divide */
+#define DIVOPLEN DECPMAX9 /* operand length ('digits' base 10**9) */
+#define DIVACCLEN (DIVOPLEN*3) /* accumulator length (ditto) */
+static decFloat * decDivide(decFloat *result, const decFloat *dfl,
+ const decFloat *dfr, decContext *set, uInt op) {
+ decFloat quotient; /* for remainders */
+ bcdnum num; /* for final conversion */
+ uInt acc[DIVACCLEN]; /* coefficent in base-billion .. */
+ uInt div[DIVOPLEN]; /* divisor in base-billion .. */
+ uInt quo[DIVOPLEN+1]; /* quotient in base-billion .. */
+ uByte bcdacc[(DIVOPLEN+1)*9+2]; /* for quotient in BCD, +1, +1 */
+ uInt *msua, *msud, *msuq; /* -> msu of acc, div, and quo */
+ Int divunits, accunits; /* lengths */
+ Int quodigits; /* digits in quotient */
+ uInt *lsua, *lsuq; /* -> current acc and quo lsus */
+ Int length, multiplier; /* work */
+ uInt carry, sign; /* .. */
+ uInt *ua, *ud, *uq; /* .. */
+ uByte *ub; /* .. */
+ uInt uiwork; /* for macros */
+ uInt divtop; /* top unit of div adjusted for estimating */
+ #if DIVCOUNT
+ static uInt maxcount=0; /* worst-seen subtractions count */
+ uInt divcount=0; /* subtractions count [this divide] */
+ #endif
+
+ /* calculate sign */
+ num.sign=(DFWORD(dfl, 0)^DFWORD(dfr, 0)) & DECFLOAT_Sign;
+
+ if (DFISSPECIAL(dfl) || DFISSPECIAL(dfr)) { /* either is special? */
+ /* NaNs are handled as usual */
+ if (DFISNAN(dfl) || DFISNAN(dfr)) return decNaNs(result, dfl, dfr, set);
+ /* one or two infinities */
+ if (DFISINF(dfl)) {
+ if (DFISINF(dfr)) return decInvalid(result, set); /* Two infinities bad */
+ if (op&(REMAINDER|REMNEAR)) return decInvalid(result, set); /* as is rem */
+ /* Infinity/x is infinite and quiet, even if x=0 */
+ DFWORD(result, 0)=num.sign;
+ return decInfinity(result, result);
+ }
+ /* must be x/Infinity -- remainders are lhs */
+ if (op&(REMAINDER|REMNEAR)) return decCanonical(result, dfl);
+ /* divides: return zero with correct sign and exponent depending */
+ /* on op (Etiny for divide, 0 for divideInt) */
+ decFloatZero(result);
+ if (op==DIVIDEINT) DFWORD(result, 0)|=num.sign; /* add sign */
+ else DFWORD(result, 0)=num.sign; /* zeros the exponent, too */
+ return result;
+ }
+ /* next, handle zero operands (x/0 and 0/x) */
+ if (DFISZERO(dfr)) { /* x/0 */
+ if (DFISZERO(dfl)) { /* 0/0 is undefined */
+ decFloatZero(result);
+ DFWORD(result, 0)=DECFLOAT_qNaN;
+ set->status|=DEC_Division_undefined;
+ return result;
+ }
+ if (op&(REMAINDER|REMNEAR)) return decInvalid(result, set); /* bad rem */
+ set->status|=DEC_Division_by_zero;
+ DFWORD(result, 0)=num.sign;
+ return decInfinity(result, result); /* x/0 -> signed Infinity */
+ }
+ num.exponent=GETEXPUN(dfl)-GETEXPUN(dfr); /* ideal exponent */
+ if (DFISZERO(dfl)) { /* 0/x (x!=0) */
+ /* if divide, result is 0 with ideal exponent; divideInt has */
+ /* exponent=0, remainders give zero with lower exponent */
+ if (op&DIVIDEINT) {
+ decFloatZero(result);
+ DFWORD(result, 0)|=num.sign; /* add sign */
+ return result;
+ }
+ if (!(op&DIVIDE)) { /* a remainder */
+ /* exponent is the minimum of the operands */
+ num.exponent=MINI(GETEXPUN(dfl), GETEXPUN(dfr));
+ /* if the result is zero the sign shall be sign of dfl */
+ num.sign=DFWORD(dfl, 0)&DECFLOAT_Sign;
+ }
+ bcdacc[0]=0;
+ num.msd=bcdacc; /* -> 0 */
+ num.lsd=bcdacc; /* .. */
+ return decFinalize(result, &num, set); /* [divide may clamp exponent] */
+ } /* 0/x */
+ /* [here, both operands are known to be finite and non-zero] */
+
+ /* extract the operand coefficents into 'units' which are */
+ /* base-billion; the lhs is high-aligned in acc and the msu of both */
+ /* acc and div is at the right-hand end of array (offset length-1); */
+ /* the quotient can need one more unit than the operands as digits */
+ /* in it are not necessarily aligned neatly; further, the quotient */
+ /* may not start accumulating until after the end of the initial */
+ /* operand in acc if that is small (e.g., 1) so the accumulator */
+ /* must have at least that number of units extra (at the ls end) */
+ GETCOEFFBILL(dfl, acc+DIVACCLEN-DIVOPLEN);
+ GETCOEFFBILL(dfr, div);
+ /* zero the low uInts of acc */
+ acc[0]=0;
+ acc[1]=0;
+ acc[2]=0;
+ acc[3]=0;
+ #if DOUBLE
+ #if DIVOPLEN!=2
+ #error Unexpected Double DIVOPLEN
+ #endif
+ #elif QUAD
+ acc[4]=0;
+ acc[5]=0;
+ acc[6]=0;
+ acc[7]=0;
+ #if DIVOPLEN!=4
+ #error Unexpected Quad DIVOPLEN
+ #endif
+ #endif
+
+ /* set msu and lsu pointers */
+ msua=acc+DIVACCLEN-1; /* [leading zeros removed below] */
+ msuq=quo+DIVOPLEN;
+ /*[loop for div will terminate because operands are non-zero] */
+ for (msud=div+DIVOPLEN-1; *msud==0;) msud--;
+ /* the initial least-significant unit of acc is set so acc appears */
+ /* to have the same length as div. */
+ /* This moves one position towards the least possible for each */
+ /* iteration */
+ divunits=(Int)(msud-div+1); /* precalculate */
+ lsua=msua-divunits+1; /* initial working lsu of acc */
+ lsuq=msuq; /* and of quo */
+
+ /* set up the estimator for the multiplier; this is the msu of div, */
+ /* plus two bits from the unit below (if any) rounded up by one if */
+ /* there are any non-zero bits or units below that [the extra two */
+ /* bits makes for a much better estimate when the top unit is small] */
+ divtop=*msud<<2;
+ if (divunits>1) {
+ uInt *um=msud-1;
+ uInt d=*um;
+ if (d>=750000000) {divtop+=3; d-=750000000;}
+ else if (d>=500000000) {divtop+=2; d-=500000000;}
+ else if (d>=250000000) {divtop++; d-=250000000;}
+ if (d) divtop++;
+ else for (um--; um>=div; um--) if (*um) {
+ divtop++;
+ break;
+ }
+ } /* >1 unit */
+
+ #if DECTRACE
+ {Int i;
+ printf("----- div=");
+ for (i=divunits-1; i>=0; i--) printf("%09ld ", (LI)div[i]);
+ printf("\n");}
+ #endif
+
+ /* now collect up to DECPMAX+1 digits in the quotient (this may */
+ /* need OPLEN+1 uInts if unaligned) */
+ quodigits=0; /* no digits yet */
+ for (;; lsua--) { /* outer loop -- each input position */
+ #if DECCHECK
+ if (lsua<acc) {
+ printf("Acc underrun...\n");
+ break;
+ }
+ #endif
+ #if DECTRACE
+ printf("Outer: quodigits=%ld acc=", (LI)quodigits);
+ for (ua=msua; ua>=lsua; ua--) printf("%09ld ", (LI)*ua);
+ printf("\n");
+ #endif
+ *lsuq=0; /* default unit result is 0 */
+ for (;;) { /* inner loop -- calculate quotient unit */
+ /* strip leading zero units from acc (either there initially or */
+ /* from subtraction below); this may strip all if exactly 0 */
+ for (; *msua==0 && msua>=lsua;) msua--;
+ accunits=(Int)(msua-lsua+1); /* [maybe 0] */
+ /* subtraction is only necessary and possible if there are as */
+ /* least as many units remaining in acc for this iteration as */
+ /* there are in div */
+ if (accunits<divunits) {
+ if (accunits==0) msua++; /* restore */
+ break;
+ }
+
+ /* If acc is longer than div then subtraction is definitely */
+ /* possible (as msu of both is non-zero), but if they are the */
+ /* same length a comparison is needed. */
+ /* If a subtraction is needed then a good estimate of the */
+ /* multiplier for the subtraction is also needed in order to */
+ /* minimise the iterations of this inner loop because the */
+ /* subtractions needed dominate division performance. */
+ if (accunits==divunits) {
+ /* compare the high divunits of acc and div: */
+ /* acc<div: this quotient unit is unchanged; subtraction */
+ /* will be possible on the next iteration */
+ /* acc==div: quotient gains 1, set acc=0 */
+ /* acc>div: subtraction necessary at this position */
+ for (ud=msud, ua=msua; ud>div; ud--, ua--) if (*ud!=*ua) break;
+ /* [now at first mismatch or lsu] */
+ if (*ud>*ua) break; /* next time... */
+ if (*ud==*ua) { /* all compared equal */
+ *lsuq+=1; /* increment result */
+ msua=lsua; /* collapse acc units */
+ *msua=0; /* .. to a zero */
+ break;
+ }
+
+ /* subtraction necessary; estimate multiplier [see above] */
+ /* if both *msud and *msua are small it is cost-effective to */
+ /* bring in part of the following units (if any) to get a */
+ /* better estimate (assume some other non-zero in div) */
+ #define DIVLO 1000000U
+ #define DIVHI (DIVBASE/DIVLO)
+ #if DECUSE64
+ if (divunits>1) {
+ /* there cannot be a *(msud-2) for DECDOUBLE so next is */
+ /* an exact calculation unless DECQUAD (which needs to */
+ /* assume bits out there if divunits>2) */
+ uLong mul=(uLong)*msua * DIVBASE + *(msua-1);
+ uLong div=(uLong)*msud * DIVBASE + *(msud-1);
+ #if QUAD
+ if (divunits>2) div++;
+ #endif
+ mul/=div;
+ multiplier=(Int)mul;
+ }
+ else multiplier=*msua/(*msud);
+ #else
+ if (divunits>1 && *msua<DIVLO && *msud<DIVLO) {
+ multiplier=(*msua*DIVHI + *(msua-1)/DIVLO)
+ /(*msud*DIVHI + *(msud-1)/DIVLO +1);
+ }
+ else multiplier=(*msua<<2)/divtop;
+ #endif
+ }
+ else { /* accunits>divunits */
+ /* msud is one unit 'lower' than msua, so estimate differently */
+ #if DECUSE64
+ uLong mul;
+ /* as before, bring in extra digits if possible */
+ if (divunits>1 && *msua<DIVLO && *msud<DIVLO) {
+ mul=((uLong)*msua * DIVHI * DIVBASE) + *(msua-1) * DIVHI
+ + *(msua-2)/DIVLO;
+ mul/=(*msud*DIVHI + *(msud-1)/DIVLO +1);
+ }
+ else if (divunits==1) {
+ mul=(uLong)*msua * DIVBASE + *(msua-1);
+ mul/=*msud; /* no more to the right */
+ }
+ else {
+ mul=(uLong)(*msua) * (uInt)(DIVBASE<<2)
+ + (*(msua-1)<<2);
+ mul/=divtop; /* [divtop already allows for sticky bits] */
+ }
+ multiplier=(Int)mul;
+ #else
+ multiplier=*msua * ((DIVBASE<<2)/divtop);
+ #endif
+ }
+ if (multiplier==0) multiplier=1; /* marginal case */
+ *lsuq+=multiplier;
+
+ #if DIVCOUNT
+ /* printf("Multiplier: %ld\n", (LI)multiplier); */
+ divcount++;
+ #endif
+
+ /* Carry out the subtraction acc-(div*multiplier); for each */
+ /* unit in div, do the multiply, split to units (see */
+ /* decFloatMultiply for the algorithm), and subtract from acc */
+ #define DIVMAGIC 2305843009U /* 2**61/10**9 */
+ #define DIVSHIFTA 29
+ #define DIVSHIFTB 32
+ carry=0;
+ for (ud=div, ua=lsua; ud<=msud; ud++, ua++) {
+ uInt lo, hop;
+ #if DECUSE64
+ uLong sub=(uLong)multiplier*(*ud)+carry;
+ if (sub<DIVBASE) {
+ carry=0;
+ lo=(uInt)sub;
+ }
+ else {
+ hop=(uInt)(sub>>DIVSHIFTA);
+ carry=(uInt)(((uLong)hop*DIVMAGIC)>>DIVSHIFTB);
+ /* the estimate is now in hi; now calculate sub-hi*10**9 */
+ /* to get the remainder (which will be <DIVBASE)) */
+ lo=(uInt)sub;
+ lo-=carry*DIVBASE; /* low word of result */
+ if (lo>=DIVBASE) {
+ lo-=DIVBASE; /* correct by +1 */
+ carry++;
+ }
+ }
+ #else /* 32-bit */
+ uInt hi;
+ /* calculate multiplier*(*ud) into hi and lo */
+ LONGMUL32HI(hi, *ud, multiplier); /* get the high word */
+ lo=multiplier*(*ud); /* .. and the low */
+ lo+=carry; /* add the old hi */
+ carry=hi+(lo<carry); /* .. with any carry */
+ if (carry || lo>=DIVBASE) { /* split is needed */
+ hop=(carry<<3)+(lo>>DIVSHIFTA); /* hi:lo/2**29 */
+ LONGMUL32HI(carry, hop, DIVMAGIC); /* only need the high word */
+ /* [DIVSHIFTB is 32, so carry can be used directly] */
+ /* the estimate is now in carry; now calculate hi:lo-est*10**9; */
+ /* happily the top word of the result is irrelevant because it */
+ /* will always be zero so this needs only one multiplication */
+ lo-=(carry*DIVBASE);
+ /* the correction here will be at most +1; do it */
+ if (lo>=DIVBASE) {
+ lo-=DIVBASE;
+ carry++;
+ }
+ }
+ #endif
+ if (lo>*ua) { /* borrow needed */
+ *ua+=DIVBASE;
+ carry++;
+ }
+ *ua-=lo;
+ } /* ud loop */
+ if (carry) *ua-=carry; /* accdigits>divdigits [cannot borrow] */
+ } /* inner loop */
+
+ /* the outer loop terminates when there is either an exact result */
+ /* or enough digits; first update the quotient digit count and */
+ /* pointer (if any significant digits) */
+ #if DECTRACE
+ if (*lsuq || quodigits) printf("*lsuq=%09ld\n", (LI)*lsuq);
+ #endif
+ if (quodigits) {
+ quodigits+=9; /* had leading unit earlier */
+ lsuq--;
+ if (quodigits>DECPMAX+1) break; /* have enough */
+ }
+ else if (*lsuq) { /* first quotient digits */
+ const uInt *pow;
+ for (pow=DECPOWERS; *lsuq>=*pow; pow++) quodigits++;
+ lsuq--;
+ /* [cannot have >DECPMAX+1 on first unit] */
+ }
+
+ if (*msua!=0) continue; /* not an exact result */
+ /* acc is zero iff used all of original units and zero down to lsua */
+ /* (must also continue to original lsu for correct quotient length) */
+ if (lsua>acc+DIVACCLEN-DIVOPLEN) continue;
+ for (; msua>lsua && *msua==0;) msua--;
+ if (*msua==0 && msua==lsua) break;
+ } /* outer loop */
+
+ /* all of the original operand in acc has been covered at this point */
+ /* quotient now has at least DECPMAX+2 digits */
+ /* *msua is now non-0 if inexact and sticky bits */
+ /* lsuq is one below the last uint of the quotient */
+ lsuq++; /* set -> true lsu of quo */
+ if (*msua) *lsuq|=1; /* apply sticky bit */
+
+ /* quo now holds the (unrounded) quotient in base-billion; one */
+ /* base-billion 'digit' per uInt. */
+ #if DECTRACE
+ printf("DivQuo:");
+ for (uq=msuq; uq>=lsuq; uq--) printf(" %09ld", (LI)*uq);
+ printf("\n");
+ #endif
+
+ /* Now convert to BCD for rounding and cleanup, starting from the */
+ /* most significant end [offset by one into bcdacc to leave room */
+ /* for a possible carry digit if rounding for REMNEAR is needed] */
+ for (uq=msuq, ub=bcdacc+1; uq>=lsuq; uq--, ub+=9) {
+ uInt top, mid, rem; /* work */
+ if (*uq==0) { /* no split needed */
+ UBFROMUI(ub, 0); /* clear 9 BCD8s */
+ UBFROMUI(ub+4, 0); /* .. */
+ *(ub+8)=0; /* .. */
+ continue;
+ }
+ /* *uq is non-zero -- split the base-billion digit into */
+ /* hi, mid, and low three-digits */
+ #define divsplit9 1000000 /* divisor */
+ #define divsplit6 1000 /* divisor */
+ /* The splitting is done by simple divides and remainders, */
+ /* assuming the compiler will optimize these [GCC does] */
+ top=*uq/divsplit9;
+ rem=*uq%divsplit9;
+ mid=rem/divsplit6;
+ rem=rem%divsplit6;
+ /* lay out the nine BCD digits (plus one unwanted byte) */
+ UBFROMUI(ub, UBTOUI(&BIN2BCD8[top*4]));
+ UBFROMUI(ub+3, UBTOUI(&BIN2BCD8[mid*4]));
+ UBFROMUI(ub+6, UBTOUI(&BIN2BCD8[rem*4]));
+ } /* BCD conversion loop */
+ ub--; /* -> lsu */
+
+ /* complete the bcdnum; quodigits is correct, so the position of */
+ /* the first non-zero is known */
+ num.msd=bcdacc+1+(msuq-lsuq+1)*9-quodigits;
+ num.lsd=ub;
+
+ /* make exponent adjustments, etc */
+ if (lsua<acc+DIVACCLEN-DIVOPLEN) { /* used extra digits */
+ num.exponent-=(Int)((acc+DIVACCLEN-DIVOPLEN-lsua)*9);
+ /* if the result was exact then there may be up to 8 extra */
+ /* trailing zeros in the overflowed quotient final unit */
+ if (*msua==0) {
+ for (; *ub==0;) ub--; /* drop zeros */
+ num.exponent+=(Int)(num.lsd-ub); /* and adjust exponent */
+ num.lsd=ub;
+ }
+ } /* adjustment needed */
+
+ #if DIVCOUNT
+ if (divcount>maxcount) { /* new high-water nark */
+ maxcount=divcount;
+ printf("DivNewMaxCount: %ld\n", (LI)maxcount);
+ }
+ #endif
+
+ if (op&DIVIDE) return decFinalize(result, &num, set); /* all done */
+
+ /* Is DIVIDEINT or a remainder; there is more to do -- first form */
+ /* the integer (this is done 'after the fact', unlike as in */
+ /* decNumber, so as not to tax DIVIDE) */
+
+ /* The first non-zero digit will be in the first 9 digits, known */
+ /* from quodigits and num.msd, so there is always space for DECPMAX */
+ /* digits */
+
+ length=(Int)(num.lsd-num.msd+1);
+ /*printf("Length exp: %ld %ld\n", (LI)length, (LI)num.exponent); */
+
+ if (length+num.exponent>DECPMAX) { /* cannot fit */
+ decFloatZero(result);
+ DFWORD(result, 0)=DECFLOAT_qNaN;
+ set->status|=DEC_Division_impossible;
+ return result;
+ }
+
+ if (num.exponent>=0) { /* already an int, or need pad zeros */
+ for (ub=num.lsd+1; ub<=num.lsd+num.exponent; ub++) *ub=0;
+ num.lsd+=num.exponent;
+ }
+ else { /* too long: round or truncate needed */
+ Int drop=-num.exponent;
+ if (!(op&REMNEAR)) { /* simple truncate */
+ num.lsd-=drop;
+ if (num.lsd<num.msd) { /* truncated all */
+ num.lsd=num.msd; /* make 0 */
+ *num.lsd=0; /* .. [sign still relevant] */
+ }
+ }
+ else { /* round to nearest even [sigh] */
+ /* round-to-nearest, in-place; msd is at or to right of bcdacc+1 */
+ /* (this is a special case of Quantize -- q.v. for commentary) */
+ uByte *roundat; /* -> re-round digit */
+ uByte reround; /* reround value */
+ *(num.msd-1)=0; /* in case of left carry, or make 0 */
+ if (drop<length) roundat=num.lsd-drop+1;
+ else if (drop==length) roundat=num.msd;
+ else roundat=num.msd-1; /* [-> 0] */
+ reround=*roundat;
+ for (ub=roundat+1; ub<=num.lsd; ub++) {
+ if (*ub!=0) {
+ reround=DECSTICKYTAB[reround];
+ break;
+ }
+ } /* check stickies */
+ if (roundat>num.msd) num.lsd=roundat-1;
+ else {
+ num.msd--; /* use the 0 .. */
+ num.lsd=num.msd; /* .. at the new MSD place */
+ }
+ if (reround!=0) { /* discarding non-zero */
+ uInt bump=0;
+ /* rounding is DEC_ROUND_HALF_EVEN always */
+ if (reround>5) bump=1; /* >0.5 goes up */
+ else if (reround==5) /* exactly 0.5000 .. */
+ bump=*(num.lsd) & 0x01; /* .. up iff [new] lsd is odd */
+ if (bump!=0) { /* need increment */
+ /* increment the coefficient; this might end up with 1000... */
+ ub=num.lsd;
+ for (; UBTOUI(ub-3)==0x09090909; ub-=4) UBFROMUI(ub-3, 0);
+ for (; *ub==9; ub--) *ub=0; /* at most 3 more */
+ *ub+=1;
+ if (ub<num.msd) num.msd--; /* carried */
+ } /* bump needed */
+ } /* reround!=0 */
+ } /* remnear */
+ } /* round or truncate needed */
+ num.exponent=0; /* all paths */
+ /*decShowNum(&num, "int"); */
+
+ if (op&DIVIDEINT) return decFinalize(result, &num, set); /* all done */
+
+ /* Have a remainder to calculate */
+ decFinalize(&quotient, &num, set); /* lay out the integer so far */
+ DFWORD(&quotient, 0)^=DECFLOAT_Sign; /* negate it */
+ sign=DFWORD(dfl, 0); /* save sign of dfl */
+ decFloatFMA(result, &quotient, dfr, dfl, set);
+ if (!DFISZERO(result)) return result;
+ /* if the result is zero the sign shall be sign of dfl */
+ DFWORD(&quotient, 0)=sign; /* construct decFloat of sign */
+ return decFloatCopySign(result, result, &quotient);
+ } /* decDivide */
+
+/* ------------------------------------------------------------------ */
+/* decFiniteMultiply -- multiply two finite decFloats */
+/* */
+/* num gets the result of multiplying dfl and dfr */
+/* bcdacc .. with the coefficient in this array */
+/* dfl is the first decFloat (lhs) */
+/* dfr is the second decFloat (rhs) */
+/* */
+/* This effects the multiplication of two decFloats, both known to be */
+/* finite, leaving the result in a bcdnum ready for decFinalize (for */
+/* use in Multiply) or in a following addition (FMA). */
+/* */
+/* bcdacc must have space for at least DECPMAX9*18+1 bytes. */
+/* No error is possible and no status is set. */
+/* ------------------------------------------------------------------ */
+/* This routine has two separate implementations of the core */
+/* multiplication; both using base-billion. One uses only 32-bit */
+/* variables (Ints and uInts) or smaller; the other uses uLongs (for */
+/* multiplication and addition only). Both implementations cover */
+/* both arithmetic sizes (DOUBLE and QUAD) in order to allow timing */
+/* comparisons. In any one compilation only one implementation for */
+/* each size can be used, and if DECUSE64 is 0 then use of the 32-bit */
+/* version is forced. */
+/* */
+/* Historical note: an earlier version of this code also supported the */
+/* 256-bit format and has been preserved. That is somewhat trickier */
+/* during lazy carry splitting because the initial quotient estimate */
+/* (est) can exceed 32 bits. */
+
+#define MULTBASE ((uInt)BILLION) /* the base used for multiply */
+#define MULOPLEN DECPMAX9 /* operand length ('digits' base 10**9) */
+#define MULACCLEN (MULOPLEN*2) /* accumulator length (ditto) */
+#define LEADZEROS (MULACCLEN*9 - DECPMAX*2) /* leading zeros always */
+
+/* Assertions: exponent not too large and MULACCLEN is a multiple of 4 */
+#if DECEMAXD>9
+ #error Exponent may overflow when doubled for Multiply
+#endif
+#if MULACCLEN!=(MULACCLEN/4)*4
+ /* This assumption is used below only for initialization */
+ #error MULACCLEN is not a multiple of 4
+#endif
+
+static void decFiniteMultiply(bcdnum *num, uByte *bcdacc,
+ const decFloat *dfl, const decFloat *dfr) {
+ uInt bufl[MULOPLEN]; /* left coefficient (base-billion) */
+ uInt bufr[MULOPLEN]; /* right coefficient (base-billion) */
+ uInt *ui, *uj; /* work */
+ uByte *ub; /* .. */
+ uInt uiwork; /* for macros */
+
+ #if DECUSE64
+ uLong accl[MULACCLEN]; /* lazy accumulator (base-billion+) */
+ uLong *pl; /* work -> lazy accumulator */
+ uInt acc[MULACCLEN]; /* coefficent in base-billion .. */
+ #else
+ uInt acc[MULACCLEN*2]; /* accumulator in base-billion .. */
+ #endif
+ uInt *pa; /* work -> accumulator */
+ /*printf("Base10**9: OpLen=%d MulAcclen=%d\n", OPLEN, MULACCLEN); */
+
+ /* Calculate sign and exponent */
+ num->sign=(DFWORD(dfl, 0)^DFWORD(dfr, 0)) & DECFLOAT_Sign;
+ num->exponent=GETEXPUN(dfl)+GETEXPUN(dfr); /* [see assertion above] */
+
+ /* Extract the coefficients and prepare the accumulator */
+ /* the coefficients of the operands are decoded into base-billion */
+ /* numbers in uInt arrays (bufl and bufr, LSD at offset 0) of the */
+ /* appropriate size. */
+ GETCOEFFBILL(dfl, bufl);
+ GETCOEFFBILL(dfr, bufr);
+ #if DECTRACE && 0
+ printf("CoeffbL:");
+ for (ui=bufl+MULOPLEN-1; ui>=bufl; ui--) printf(" %08lx", (LI)*ui);
+ printf("\n");
+ printf("CoeffbR:");
+ for (uj=bufr+MULOPLEN-1; uj>=bufr; uj--) printf(" %08lx", (LI)*uj);
+ printf("\n");
+ #endif
+
+ /* start the 64-bit/32-bit differing paths... */
+#if DECUSE64
+
+ /* zero the accumulator */
+ #if MULACCLEN==4
+ accl[0]=0; accl[1]=0; accl[2]=0; accl[3]=0;
+ #else /* use a loop */
+ /* MULACCLEN is a multiple of four, asserted above */
+ for (pl=accl; pl<accl+MULACCLEN; pl+=4) {
+ *pl=0; *(pl+1)=0; *(pl+2)=0; *(pl+3)=0;/* [reduce overhead] */
+ } /* pl */
+ #endif
+
+ /* Effect the multiplication */
+ /* The multiplcation proceeds using MFC's lazy-carry resolution */
+ /* algorithm from decNumber. First, the multiplication is */
+ /* effected, allowing accumulation of the partial products (which */
+ /* are in base-billion at each column position) into 64 bits */
+ /* without resolving back to base=billion after each addition. */
+ /* These 64-bit numbers (which may contain up to 19 decimal digits) */
+ /* are then split using the Clark & Cowlishaw algorithm (see below). */
+ /* [Testing for 0 in the inner loop is not really a 'win'] */
+ for (ui=bufr; ui<bufr+MULOPLEN; ui++) { /* over each item in rhs */
+ if (*ui==0) continue; /* product cannot affect result */
+ pl=accl+(ui-bufr); /* where to add the lhs */
+ for (uj=bufl; uj<bufl+MULOPLEN; uj++, pl++) { /* over each item in lhs */
+ /* if (*uj==0) continue; // product cannot affect result */
+ *pl+=((uLong)*ui)*(*uj);
+ } /* uj */
+ } /* ui */
+
+ /* The 64-bit carries must now be resolved; this means that a */
+ /* quotient/remainder has to be calculated for base-billion (1E+9). */
+ /* For this, Clark & Cowlishaw's quotient estimation approach (also */
+ /* used in decNumber) is needed, because 64-bit divide is generally */
+ /* extremely slow on 32-bit machines, and may be slower than this */
+ /* approach even on 64-bit machines. This algorithm splits X */
+ /* using: */
+ /* */
+ /* magic=2**(A+B)/1E+9; // 'magic number' */
+ /* hop=X/2**A; // high order part of X (by shift) */
+ /* est=magic*hop/2**B // quotient estimate (may be low by 1) */
+ /* */
+ /* A and B are quite constrained; hop and magic must fit in 32 bits, */
+ /* and 2**(A+B) must be as large as possible (which is 2**61 if */
+ /* magic is to fit). Further, maxX increases with the length of */
+ /* the operands (and hence the number of partial products */
+ /* accumulated); maxX is OPLEN*(10**18), which is up to 19 digits. */
+ /* */
+ /* It can be shown that when OPLEN is 2 then the maximum error in */
+ /* the estimated quotient is <1, but for larger maximum x the */
+ /* maximum error is above 1 so a correction that is >1 may be */
+ /* needed. Values of A and B are chosen to satisfy the constraints */
+ /* just mentioned while minimizing the maximum error (and hence the */
+ /* maximum correction), as shown in the following table: */
+ /* */
+ /* Type OPLEN A B maxX maxError maxCorrection */
+ /* --------------------------------------------------------- */
+ /* DOUBLE 2 29 32 <2*10**18 0.63 1 */
+ /* QUAD 4 30 31 <4*10**18 1.17 2 */
+ /* */
+ /* In the OPLEN==2 case there is most choice, but the value for B */
+ /* of 32 has a big advantage as then the calculation of the */
+ /* estimate requires no shifting; the compiler can extract the high */
+ /* word directly after multiplying magic*hop. */
+ #define MULMAGIC 2305843009U /* 2**61/10**9 [both cases] */
+ #if DOUBLE
+ #define MULSHIFTA 29
+ #define MULSHIFTB 32
+ #elif QUAD
+ #define MULSHIFTA 30
+ #define MULSHIFTB 31
+ #else
+ #error Unexpected type
+ #endif
+
+ #if DECTRACE
+ printf("MulAccl:");
+ for (pl=accl+MULACCLEN-1; pl>=accl; pl--)
+ printf(" %08lx:%08lx", (LI)(*pl>>32), (LI)(*pl&0xffffffff));
+ printf("\n");
+ #endif
+
+ for (pl=accl, pa=acc; pl<accl+MULACCLEN; pl++, pa++) { /* each column position */
+ uInt lo, hop; /* work */
+ uInt est; /* cannot exceed 4E+9 */
+ if (*pl>=MULTBASE) {
+ /* *pl holds a binary number which needs to be split */
+ hop=(uInt)(*pl>>MULSHIFTA);
+ est=(uInt)(((uLong)hop*MULMAGIC)>>MULSHIFTB);
+ /* the estimate is now in est; now calculate hi:lo-est*10**9; */
+ /* happily the top word of the result is irrelevant because it */
+ /* will always be zero so this needs only one multiplication */
+ lo=(uInt)(*pl-((uLong)est*MULTBASE)); /* low word of result */
+ /* If QUAD, the correction here could be +2 */
+ if (lo>=MULTBASE) {
+ lo-=MULTBASE; /* correct by +1 */
+ est++;
+ #if QUAD
+ /* may need to correct by +2 */
+ if (lo>=MULTBASE) {
+ lo-=MULTBASE;
+ est++;
+ }
+ #endif
+ }
+ /* finally place lo as the new coefficient 'digit' and add est to */
+ /* the next place up [this is safe because this path is never */
+ /* taken on the final iteration as *pl will fit] */
+ *pa=lo;
+ *(pl+1)+=est;
+ } /* *pl needed split */
+ else { /* *pl<MULTBASE */
+ *pa=(uInt)*pl; /* just copy across */
+ }
+ } /* pl loop */
+
+#else /* 32-bit */
+ for (pa=acc;; pa+=4) { /* zero the accumulator */
+ *pa=0; *(pa+1)=0; *(pa+2)=0; *(pa+3)=0; /* [reduce overhead] */
+ if (pa==acc+MULACCLEN*2-4) break; /* multiple of 4 asserted */
+ } /* pa */
+
+ /* Effect the multiplication */
+ /* uLongs are not available (and in particular, there is no uLong */
+ /* divide) but it is still possible to use MFC's lazy-carry */
+ /* resolution algorithm from decNumber. First, the multiplication */
+ /* is effected, allowing accumulation of the partial products */
+ /* (which are in base-billion at each column position) into 64 bits */
+ /* [with the high-order 32 bits in each position being held at */
+ /* offset +ACCLEN from the low-order 32 bits in the accumulator]. */
+ /* These 64-bit numbers (which may contain up to 19 decimal digits) */
+ /* are then split using the Clark & Cowlishaw algorithm (see */
+ /* below). */
+ for (ui=bufr;; ui++) { /* over each item in rhs */
+ uInt hi, lo; /* words of exact multiply result */
+ pa=acc+(ui-bufr); /* where to add the lhs */
+ for (uj=bufl;; uj++, pa++) { /* over each item in lhs */
+ LONGMUL32HI(hi, *ui, *uj); /* calculate product of digits */
+ lo=(*ui)*(*uj); /* .. */
+ *pa+=lo; /* accumulate low bits and .. */
+ *(pa+MULACCLEN)+=hi+(*pa<lo); /* .. high bits with any carry */
+ if (uj==bufl+MULOPLEN-1) break;
+ }
+ if (ui==bufr+MULOPLEN-1) break;
+ }
+
+ /* The 64-bit carries must now be resolved; this means that a */
+ /* quotient/remainder has to be calculated for base-billion (1E+9). */
+ /* For this, Clark & Cowlishaw's quotient estimation approach (also */
+ /* used in decNumber) is needed, because 64-bit divide is generally */
+ /* extremely slow on 32-bit machines. This algorithm splits X */
+ /* using: */
+ /* */
+ /* magic=2**(A+B)/1E+9; // 'magic number' */
+ /* hop=X/2**A; // high order part of X (by shift) */
+ /* est=magic*hop/2**B // quotient estimate (may be low by 1) */
+ /* */
+ /* A and B are quite constrained; hop and magic must fit in 32 bits, */
+ /* and 2**(A+B) must be as large as possible (which is 2**61 if */
+ /* magic is to fit). Further, maxX increases with the length of */
+ /* the operands (and hence the number of partial products */
+ /* accumulated); maxX is OPLEN*(10**18), which is up to 19 digits. */
+ /* */
+ /* It can be shown that when OPLEN is 2 then the maximum error in */
+ /* the estimated quotient is <1, but for larger maximum x the */
+ /* maximum error is above 1 so a correction that is >1 may be */
+ /* needed. Values of A and B are chosen to satisfy the constraints */
+ /* just mentioned while minimizing the maximum error (and hence the */
+ /* maximum correction), as shown in the following table: */
+ /* */
+ /* Type OPLEN A B maxX maxError maxCorrection */
+ /* --------------------------------------------------------- */
+ /* DOUBLE 2 29 32 <2*10**18 0.63 1 */
+ /* QUAD 4 30 31 <4*10**18 1.17 2 */
+ /* */
+ /* In the OPLEN==2 case there is most choice, but the value for B */
+ /* of 32 has a big advantage as then the calculation of the */
+ /* estimate requires no shifting; the high word is simply */
+ /* calculated from multiplying magic*hop. */
+ #define MULMAGIC 2305843009U /* 2**61/10**9 [both cases] */
+ #if DOUBLE
+ #define MULSHIFTA 29
+ #define MULSHIFTB 32
+ #elif QUAD
+ #define MULSHIFTA 30
+ #define MULSHIFTB 31
+ #else
+ #error Unexpected type
+ #endif
+
+ #if DECTRACE
+ printf("MulHiLo:");
+ for (pa=acc+MULACCLEN-1; pa>=acc; pa--)
+ printf(" %08lx:%08lx", (LI)*(pa+MULACCLEN), (LI)*pa);
+ printf("\n");
+ #endif
+
+ for (pa=acc;; pa++) { /* each low uInt */
+ uInt hi, lo; /* words of exact multiply result */
+ uInt hop, estlo; /* work */
+ #if QUAD
+ uInt esthi; /* .. */
+ #endif
+
+ lo=*pa;
+ hi=*(pa+MULACCLEN); /* top 32 bits */
+ /* hi and lo now hold a binary number which needs to be split */
+
+ #if DOUBLE
+ hop=(hi<<3)+(lo>>MULSHIFTA); /* hi:lo/2**29 */
+ LONGMUL32HI(estlo, hop, MULMAGIC);/* only need the high word */
+ /* [MULSHIFTB is 32, so estlo can be used directly] */
+ /* the estimate is now in estlo; now calculate hi:lo-est*10**9; */
+ /* happily the top word of the result is irrelevant because it */
+ /* will always be zero so this needs only one multiplication */
+ lo-=(estlo*MULTBASE);
+ /* esthi=0; // high word is ignored below */
+ /* the correction here will be at most +1; do it */
+ if (lo>=MULTBASE) {
+ lo-=MULTBASE;
+ estlo++;
+ }
+ #elif QUAD
+ hop=(hi<<2)+(lo>>MULSHIFTA); /* hi:lo/2**30 */
+ LONGMUL32HI(esthi, hop, MULMAGIC);/* shift will be 31 .. */
+ estlo=hop*MULMAGIC; /* .. so low word needed */
+ estlo=(esthi<<1)+(estlo>>MULSHIFTB); /* [just the top bit] */
+ /* esthi=0; // high word is ignored below */
+ lo-=(estlo*MULTBASE); /* as above */
+ /* the correction here could be +1 or +2 */
+ if (lo>=MULTBASE) {
+ lo-=MULTBASE;
+ estlo++;
+ }
+ if (lo>=MULTBASE) {
+ lo-=MULTBASE;
+ estlo++;
+ }
+ #else
+ #error Unexpected type
+ #endif
+
+ /* finally place lo as the new accumulator digit and add est to */
+ /* the next place up; this latter add could cause a carry of 1 */
+ /* to the high word of the next place */
+ *pa=lo;
+ *(pa+1)+=estlo;
+ /* esthi is always 0 for DOUBLE and QUAD so this is skipped */
+ /* *(pa+1+MULACCLEN)+=esthi; */
+ if (*(pa+1)<estlo) *(pa+1+MULACCLEN)+=1; /* carry */
+ if (pa==acc+MULACCLEN-2) break; /* [MULACCLEN-1 will never need split] */
+ } /* pa loop */
+#endif
+
+ /* At this point, whether using the 64-bit or the 32-bit paths, the */
+ /* accumulator now holds the (unrounded) result in base-billion; */
+ /* one base-billion 'digit' per uInt. */
+ #if DECTRACE
+ printf("MultAcc:");
+ for (pa=acc+MULACCLEN-1; pa>=acc; pa--) printf(" %09ld", (LI)*pa);
+ printf("\n");
+ #endif
+
+ /* Now convert to BCD for rounding and cleanup, starting from the */
+ /* most significant end */
+ pa=acc+MULACCLEN-1;
+ if (*pa!=0) num->msd=bcdacc+LEADZEROS;/* drop known lead zeros */
+ else { /* >=1 word of leading zeros */
+ num->msd=bcdacc;