1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License").  You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22#pragma ident	"%Z%%M%	%I%	%E% SMI"
23
24/*
25 * Copyright (c) 1988 by Sun Microsystems, Inc.
26 */
27
28#include "base_conversion.h"
29
30unsigned short  _max_tiny_powers_ten = 4;
31unsigned short  _tiny_powers_ten[] = {1,	/* begin powers of 10 in
32						 * base 65536 */
33	 /* 10**1 =  */ 10,	/* * 65536**0 */
34	 /* 10**2 =  */ 100,	/* * 65536**1 */
35	 /* 10**3 =  */ 1000,	/* * 65536**1 */
360 } ;
37
38unsigned short  _start_tiny_powers_ten[] = {
39	0, 1, 2, 3, 4,
400};				/* end _start_tiny_powers_ten */
41
42unsigned short  _leading_zeros_tiny_powers_ten[] = {
43	0, 0, 0, 0,
440};				/* end _leading_zeros_tiny_powers_ten */
45
46unsigned short  _max_tiny_powers_two = 16;
47unsigned short  _tiny_powers_two[] = {1,	/* begin powers of 2 in
48						 * base 10000 */
49	 /* 2**1 =  */ 2,	/* * 10000**0 */
50	 /* 2**2 =  */ 4,	/* * 10000**0 */
51	 /* 2**3 =  */ 8,	/* * 10000**0 */
52	 /* 2**4 =  */ 16,	/* * 10000**0 */
53	 /* 2**5 =  */ 32,	/* * 10000**0 */
54	 /* 2**6 =  */ 64,	/* * 10000**0 */
55	 /* 2**7 =  */ 128,	/* * 10000**0 */
56	 /* 2**8 =  */ 256,	/* * 10000**0 */
57	 /* 2**9 =  */ 512,	/* * 10000**0 */
58	 /* 2**10 =  */ 1024,	/* * 10000**0 */
59	 /* 2**11 =  */ 2048,	/* * 10000**0 */
60	 /* 2**12 =  */ 4096,	/* * 10000**0 */
61	 /* 2**13 =  */ 8192,	/* * 10000**0 */
62	 /* 2**14 =  */ 6384, 1,	/* * 10000**1 */
63	 /* 2**15 =  */ 2768, 3,	/* * 10000**1 */
640};
65
66unsigned short  _start_tiny_powers_two[] = {
67	0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18,
680};				/* end _start_tiny_powers_two */
69
70unsigned short  _max_small_powers_ten = 90;
71unsigned short  _small_powers_ten[] = {1,	/* begin powers of 10000 in
72						 * base 65536 */
73	 /* 10000**1 =  */ 10000,	/* * 65536**0 */
74	 /* 10000**2 =  */ 57600, 1525,	/* * 65536**1 */
75	 /* 10000**3 =  */ 4096, 54437, 232,	/* * 65536**2 */
76	 /* 10000**4 =  65536**1 *  */ 28609, 34546, 35,	/* * 65536**3 */
77	 /* 10000**5 =  65536**1 *  */ 25360, 24109, 27591, 5,	/* * 65536**4 */
78	 /* 10000**6 =  65536**1 *  */ 41216, 52461, 7118, 54210,	/* * 65536**4 */
79	 /* 10000**7 =  65536**1 *  */ 4096, 609, 15909, 52830, 8271,	/* * 65536**5 */
80	 /* 10000**8 =  65536**2 *  */ 61313, 34220, 16731, 11629, 1262,	/* * 65536**6 */
81	 /* 10000**9 =  65536**2 *  */ 40720, 45899, 1813, 31689, 38862, 192,	/* * 65536**7 */
82	 /* 10000**10 =  65536**2 *  */ 24832, 47605, 49067, 23716, 61891, 25385, 29,	/* * 65536**8 */
83	 /* 10000**11 =  65536**2 *  */ 4096, 285, 9232, 58239, 57170, 38515, 31729, 4,
84	/* * 65536**9 */
85	 /* 10000**12 =  65536**3 *  */ 32577, 45355, 38512, 38358, 3651, 36101, 44841,	/* * 65536**9 */
86	 /* 10000**13 =  65536**3 *  */ 56080, 45850, 37384, 3668, 12301, 38269, 18196, 6842,
87	/* * 65536**10 */
88	 /* 10000**14 =  65536**3 *  */ 8448, 18701, 29652, 51080, 65023, 27172, 37903, 3192,
89	1044,			/* * 65536**11 */
90	 /* 10000**15 =  65536**3 *  */ 4096, 37081, 37989, 16940, 55138, 17665, 39458, 9751,
91	20263, 159,		/* * 65536**12 */
92	 /* 10000**16 =  65536**4 *  */ 7937, 49002, 60772, 28216, 38893, 55975, 63988, 59711,
93	20227, 24,		/* * 65536**13 */
94	 /* 10000**17 =  65536**4 *  */ 5904, 8539, 12149, 36793, 43681, 12958, 60573, 21267,
95	35015, 46478, 3,	/* * 65536**14 */
96	 /* 10000**18 =  65536**4 *  */ 57600, 63028, 53094, 12749, 18174, 21993, 48265, 14922,
97	59933, 4030, 37092,	/* * 65536**14 */
98	 /* 10000**19 =  65536**4 *  */ 4096, 29077, 42481, 30581, 10617, 59493, 46251, 1892,
99	5557, 4505, 52391, 5659,/* * 65536**15 */
100	 /* 10000**20 =  65536**5 *  */ 52929, 10084, 25506, 6346, 61348, 31525, 52689, 61296,
101	27615, 15903, 40426, 863,	/* * 65536**16 */
102	 /* 10000**21 =  65536**5 *  */ 21264, 53708, 60962, 25043, 64008, 31200, 50906, 9831,
103	56185, 43877, 36378, 50952, 131,	/* * 65536**17 */
104	 /* 10000**22 =  65536**5 *  */ 41216, 15724, 12323, 26246, 59245, 58406, 46648, 13767,
105	11372, 15053, 61895, 48686, 7054, 20,	/* * 65536**18 */
106	 /* 10000**23 =  65536**5 *  */ 4096, 25425, 24719, 55736, 8564, 12208, 3664, 51518,
107	17140, 61079, 30312, 2500, 30693, 4468, 3,	/* * 65536**19 */
108	 /* 10000**24 =  65536**6 *  */ 36481, 57623, 45627, 58488, 53274, 7238, 2063, 31221,
109	62631, 25319, 35409, 25293, 54667, 30681,	/* * 65536**19 */
110	 /* 10000**25 =  65536**6 *  */ 36624, 43054, 17160, 43698, 6780, 36385, 52800, 62346,
111	52747, 33988, 2855, 31979, 38083, 44325, 4681,	/* * 65536**20 */
112	 /* 10000**26 =  65536**6 *  */ 24832, 39604, 33321, 54106, 42443, 60698, 47535, 24088,
113	45785, 18352, 47026, 40291, 5183, 35843, 24059, 714,
114	/* * 65536**21 */
115	 /* 10000**27 =  65536**6 *  */ 4096, 9741, 31019, 65404, 27119, 57580, 26653, 42453,
116	19179, 26186, 42000, 1847, 62708, 14406, 12813, 247,
117	109,			/* * 65536**22 */
118	 /* 10000**28 =  65536**7 *  */ 24129, 9598, 60989, 12011, 4842, 3874, 57395, 38141,
119	46606, 49307, 60792, 31833, 21440, 9318, 47123, 41461,
120	16,			/* * 65536**23 */
121	 /* 10000**29 =  65536**7 *  */ 51984, 38977, 13448, 57354, 56264, 8962, 51839, 64773,
122	39323, 49783, 15587, 30924, 36601, 56615, 27581, 36454,
123	35254, 2,		/* * 65536**24 */
124	 /* 10000**30 =  65536**7 *  */ 8448, 35340, 6075, 36516, 22191, 40873, 1607, 45622,
125	23883, 24544, 32988, 43530, 61694, 55616, 43150, 32976,
126	27418, 25379,		/* * 65536**24 */
127	 /* 10000**31 =  65536**7 *  */ 4096, 31177, 3520, 59871, 10675, 50890, 19916, 24149,
128	23777, 11324, 41057, 14921, 56274, 30917, 19462, 54968,
129	47943, 38791, 3872,	/* * 65536**25 */
130	 /* 10000**32 =  65536**8 *  */ 15873, 11925, 39177, 991, 14589, 3861, 58415, 9076,
131	62956, 54223, 56328, 50180, 45274, 48333, 32537, 42547,
132	9731, 59679, 590,	/* * 65536**26 */
133	 /* 10000**33 =  65536**8 *  */ 1808, 42438, 63147, 20041, 7015, 11522, 28221, 1553,
134	22569, 60278, 6353, 64979, 24968, 8908, 56671, 15252,
135	61068, 20668, 10866, 90,/* * 65536**27 */
136	 /* 10000**34 =  65536**8 *  */ 57600, 34675, 37115, 10547, 29538, 8782, 13742, 2274,
137	49789, 48851, 34813, 1529, 63291, 20385, 21567, 26375,
138	17879, 54310, 4465, 49690, 13,	/* * 65536**28 */
139	 /* 10000**35 =  65536**8 *  */ 4096, 7813, 24923, 28239, 10857, 6267, 57884, 1104,
140	13355, 12253, 10222, 25424, 29081, 42697, 59670, 36426,
141	11816, 5896, 28271, 6729, 6510, 2,	/* * 65536**29 */
142	 /* 10000**36 =  65536**9 *  */ 11713, 63320, 64714, 46692, 19240, 27004, 38784, 53336,
143	45253, 51245, 27415, 30647, 7397, 1235, 20017, 4150,
144	44939, 54131, 54377, 23778, 20993,	/* * 65536**29 */
145	 /* 10000**37 =  65536**9 *  */ 17168, 58491, 47197, 51410, 58964, 34615, 2072, 33950,
146	12058, 30921, 20731, 27847, 50068, 30360, 23244, 18766,
147	10281, 55033, 26067, 23689, 21820, 3203,	/* * 65536**30 */
148	 /* 10000**38 =  65536**9 *  */ 41216, 3819, 54189, 42817, 20452, 63381, 15905, 23836,
149	64476, 12991, 24350, 10699, 54745, 44887, 53976, 33978,
150	52415, 25776, 41725, 46873, 34270, 51761, 488,	/* * 65536**31 */
151	 /* 10000**39 =  65536**9 *  */ 4096, 54337, 38934, 31580, 54213, 14464, 3799, 7995,
152	20469, 27486, 35742, 38963, 29424, 22289, 12353, 49612,
153	63792, 14909, 51757, 22894, 19408, 11901, 38234, 74,
154	/* * 65536**32 */
155	 /* 10000**40 =  65536**10 *  */ 11649, 64451, 53492, 21026, 10320, 46863, 62195, 22291,
156	5139, 56386, 23933, 54841, 6553, 63577, 14364, 146,
157	5334, 34483, 30649, 31397, 65121, 4791, 24938, 11,
158	/* * 65536**33 */
159	 /* 10000**41 =  65536**10 *  */ 32528, 30753, 25002, 28674, 49544, 49174, 20510, 31554,
160	13177, 54576, 1131, 8404, 2368, 6264, 60325, 20399,
161	59254, 45917, 48925, 57236, 49094, 13120, 16251, 48269,
162	1,			/* * 65536**34 */
163	 /* 10000**42 =  65536**10 *  */ 24832, 40051, 4852, 23815, 57751, 30951, 45359, 52825,
164	47454, 43738, 46135, 23020, 22786, 53481, 57611, 51172,
165	32136, 33825, 30766, 41577, 18557, 4419, 48258, 19839,
166	17365,			/* * 65536**34 */
167	 /* 10000**43 =  65536**10 *  */ 4096, 23293, 29471, 58452, 10401, 57820, 20066, 36761,
168	1884, 65513, 48769, 44607, 60376, 39716, 56720, 23702,
169	44800, 23607, 39177, 14310, 43928, 21567, 39106, 19891,
170	48163, 2649,		/* * 65536**35 */
171	 /* 10000**44 =  65536**11 *  */ 15681, 63698, 8912, 13287, 42995, 63126, 21637, 36777,
172	32431, 46620, 39425, 49174, 21052, 57516, 50478, 65056,
173	16163, 64930, 40889, 59911, 63262, 9978, 14207, 8971,
174	20805, 404,		/* * 65536**36 */
175	 /* 10000**45 =  65536**11 *  */ 47888, 38008, 759, 29888, 35867, 23808, 45296, 50805,
176	43483, 47380, 58073, 29407, 25871, 19276, 30504, 57366,
177	28150, 37314, 20803, 51663, 10133, 43861, 55010, 58919,
178	40104, 45478, 61,	/* * 65536**37 */
179	 /* 10000**46 =  65536**11 *  */ 8448, 44043, 59159, 35955, 61568, 58720, 44336, 21839,
180	6392, 46891, 22733, 18829, 43895, 22571, 38397, 28046,
181	31633, 47847, 24429, 12886, 19227, 44634, 63044, 29753,
182	34206, 31815, 27115, 9,	/* * 65536**38 */
183	 /* 10000**47 =  65536**11 *  */ 4096, 29369, 3248, 28531, 40302, 6834, 17920, 30813,
184	25732, 895, 58307, 8540, 58281, 10713, 63556, 37314,
185	57543, 62026, 44628, 19951, 54878, 42773, 56026, 6179,
186	32156, 43475, 32422, 28601, 1,	/* * 65536**39 */
187	 /* 10000**48 =  65536**12 *  */ 23809, 44161, 32287, 43489, 57637, 25618, 47998, 30365,
188	41030, 61880, 15488, 65191, 53068, 59042, 53249, 29613,
189	36076, 54840, 25225, 50116, 50437, 64798, 63636, 41326,
190	54618, 20041, 15843, 14364,	/* * 65536**39 */
191	 /* 10000**49 =  65536**12 *  */ 63248, 32064, 46402, 63566, 53051, 8570, 63781, 29035,
192	49273, 15348, 27874, 25771, 44955, 14273, 19009, 46477,
193	54374, 256, 10304, 10057, 12591, 33264, 15327, 65230,
194	9281, 9246, 32546, 53041, 2191,	/* * 65536**40 */
195	 /* 10000**50 =  65536**12 *  */ 57600, 47538, 30012, 33416, 5779, 52543, 14955, 35252,
196	34782, 2206, 17734, 26701, 42508, 64987, 37777, 57124,
197	60435, 12392, 17447, 39348, 16878, 46721, 51907, 22530,
198	20977, 55656, 9634, 32118, 29069, 334,	/* * 65536**41 */
199	 /* 10000**51 =  65536**12 *  */ 4096, 56181, 37909, 62051, 57882, 28769, 4865, 4138,
200	25827, 45211, 65456, 19041, 17578, 21510, 30412, 33988,
201	51260, 645, 15059, 4518, 30804, 6431, 32009, 60688,
202	58237, 31488, 10572, 55070, 42740, 2099, 51,	/* * 65536**42 */
203	 /* 10000**52 =  65536**13 *  */ 36033, 38348, 20936, 15516, 61328, 26677, 27526, 58791,
204	46612, 58866, 37907, 15353, 13530, 36242, 14944, 48130,
205	35293, 53906, 27993, 21489, 23884, 13157, 21524, 26364,
206	53942, 15236, 2605, 48147, 25001, 51568, 7,	/* * 65536**43 */
207	 /* 10000**53 =  65536**13 *  */ 13072, 34362, 43867, 39482, 62015, 47837, 12870, 56280,
208	36938, 22760, 18758, 50472, 36038, 7984, 23450, 5896,
209	25984, 31785, 33969, 1727, 30095, 42892, 21783, 57492,
210	62742, 62566, 34532, 42941, 63042, 46566, 12332, 1,
211	/* * 65536**44 */
212	 /* 10000**54 =  65536**13 *  */ 41216, 16746, 42795, 37829, 54392, 32198, 60131, 44331,
213	27691, 64644, 19440, 30126, 5237, 22651, 13410, 46714,
214	56195, 4364, 21762, 39215, 8951, 57008, 60416, 41531,
215	52644, 62917, 20362, 23397, 35768, 36339, 53889, 11881,
216	/* * 65536**44 */
217	 /* 10000**55 =  65536**13 *  */ 4096, 21809, 2475, 22738, 42508, 9931, 22113, 33671,
218	27164, 62657, 30087, 59510, 11332, 18383, 16800, 1438,
219	51464, 1598, 41146, 51432, 59343, 49237, 57850, 17586,
220	61185, 32432, 9248, 9587, 53618, 63873, 58552, 1454,
221	1813,			/* * 65536**45 */
222	 /* 10000**56 =  65536**14 *  */ 52353, 46255, 35993, 16973, 29446, 13051, 54942, 63953,
223	49984, 3784, 37711, 17336, 3249, 34037, 30179, 51547,
224	62604, 25235, 65286, 9367, 7087, 21241, 35739, 8587,
225	57208, 13652, 57779, 31446, 24325, 31122, 65478, 42285,
226	276,			/* * 65536**46 */
227	 /* 10000**57 =  65536**14 *  */ 28432, 4900, 13346, 62788, 9341, 32317, 33703, 38095,
228	6686, 33355, 16433, 23034, 52325, 42047, 1913, 33965,
229	47993, 45952, 59754, 29017, 27013, 8905, 25433, 23293,
230	17566, 17241, 26707, 27088, 50702, 58783, 14572, 21719,
231	13940, 42,		/* * 65536**47 */
232	 /* 10000**58 =  65536**14 *  */ 24832, 48946, 29451, 47156, 30780, 13409, 48819, 59910,
233	19092, 38316, 36337, 49003, 14090, 64544, 65439, 42739,
234	15054, 54427, 55299, 51245, 60571, 56233, 51678, 18936,
235	27074, 53000, 13430, 23787, 37637, 45352, 42441, 5919,
236	8242, 28911, 6,		/* * 65536**48 */
237	 /* 10000**59 =  65536**14 *  */ 4096, 40941, 64220, 32973, 50139, 8040, 14382, 42873,
238	22773, 39457, 44262, 22872, 5077, 43622, 22888, 39729,
239	10329, 61353, 5536, 32454, 34107, 40362, 37220, 34381,
240	13673, 14499, 24823, 41905, 381, 16623, 5784, 17468,
241	42151, 31961, 64411,	/* * 65536**48 */
242	 /* 10000**60 =  65536**15 *  */ 7233, 18983, 28183, 44631, 60514, 35242, 61218, 64477,
243	46754, 61412, 6113, 48626, 13158, 34944, 14260, 11326,
244	49080, 56977, 6572, 25608, 54516, 27214, 13823, 27150,
245	26454, 47380, 16603, 15306, 30762, 39784, 27442, 50649,
246	62895, 27068, 9828,	/* * 65536**49 */
247	 /* 10000**61 =  65536**15 *  */ 43792, 38847, 28096, 14140, 52922, 42161, 13601, 36173,
248	16014, 54814, 59818, 49348, 56667, 4055, 64532, 15967,
249	2624, 7505, 61622, 31850, 35459, 42846, 18728, 51997,
250	40846, 44292, 34541, 35973, 61887, 41173, 26838, 31979,
251	8736, 25917, 45666, 1499,	/* * 65536**50 */
252	 /* 10000**62 =  65536**15 *  */ 8448, 44810, 13095, 43135, 18957, 24987, 29233, 38891,
253	41071, 64875, 41291, 3047, 53274, 57398, 53162, 34150,
254	28036, 11680, 51673, 4442, 45100, 56578, 50185, 10233,
255	47582, 33944, 42038, 8166, 19041, 42291, 16362, 43951,
256	5391, 41989, 9106, 54760, 228,	/* * 65536**51 */
257	 /* 10000**63 =  65536**15 *  */ 4096, 31657, 15909, 59582, 46469, 49660, 43252, 23836,
258	1822, 15403, 43099, 2060, 63857, 23840, 726, 16,
259	2203, 19126, 45958, 60012, 47461, 14593, 49481, 35961,
260	30201, 36316, 37275, 8558, 29166, 9097, 48597, 28080,
261	46114, 1670, 36903, 48109, 60131, 34,	/* * 65536**52 */
262	 /* 10000**64 =  65536**16 *  */ 31745, 38958, 34651, 48851, 40818, 55513, 12167, 4629,
263	20678, 27614, 28272, 53066, 55311, 54677, 29038, 9906,
264	26288, 44486, 13860, 7445, 54106, 15426, 21518, 25599,
265	29632, 52309, 61207, 26105, 10482, 21948, 51191, 32988,
266	60892, 62574, 61390, 24540, 21495, 5,	/* * 65536**53 */
267	 /* 10000**65 =  65536**16 *  */ 59152, 38859, 27112, 9943, 29246, 46308, 43654, 23440,
268	14626, 39987, 1909, 19322, 59793, 11591, 63863, 39534,
269	16615, 5643, 63684, 3218, 61456, 62047, 27665, 9667,
270	35650, 51705, 37277, 29451, 31919, 1535, 11653, 45123,
271	30057, 11563, 33836, 42583, 61200, 53279,	/* * 65536**53 */
272	 /* 10000**66 =  65536**16 *  */ 57600, 36081, 3497, 16025, 39885, 7086, 11770, 49925,
273	52760, 37095, 25125, 20163, 48020, 51475, 48984, 36592,
274	22272, 6039, 27549, 11541, 29419, 50065, 32011, 8621,
275	51171, 41935, 9121, 62440, 34173, 19446, 7226, 16418,
276	28789, 29082, 64932, 47770, 31329, 57194, 8129,	/* * 65536**54 */
277	 /* 10000**67 =  65536**16 *  */ 4096, 43109, 44817, 15013, 349, 21670, 63961, 64083,
278	42817, 24290, 56172, 45097, 20804, 37583, 31790, 39986,
279	34255, 34742, 43113, 5307, 657, 24985, 39815, 35044,
280	6227, 58480, 55822, 39919, 34823, 19902, 42295, 13422,
281	58393, 41160, 59285, 18003, 35209, 12108, 34087, 1240,
282	/* * 65536**55 */
283	 /* 10000**68 =  65536**17 *  */ 60353, 41409, 59398, 18882, 38037, 47482, 28751, 33090,
284	30117, 14650, 25355, 35617, 49750, 56134, 29714, 64965,
285	18890, 39493, 57954, 17209, 26868, 22612, 25083, 16147,
286	23222, 58811, 18741, 43323, 58017, 49228, 8725, 6288,
287	42830, 17624, 11654, 33355, 40380, 19111, 18897, 189,
288	/* * 65536**56 */
289	 /* 10000**69 =  65536**17 *  */ 8976, 42761, 33550, 19847, 1937, 17484, 10813, 13123,
290	37129, 31635, 58987, 51244, 21658, 31751, 8341, 61702,
291	35160, 12946, 11178, 1307, 50562, 24899, 27178, 58659,
292	28415, 59015, 51549, 39899, 51938, 47956, 29095, 32307,
293	23199, 20231, 19681, 39074, 37793, 13185, 32628, 57875,
294	28,			/* * 65536**57 */
295	 /* 10000**70 =  65536**17 *  */ 41216, 54505, 27740, 32111, 39908, 55783, 63803, 28577,
296	30562, 13393, 50827, 23016, 56875, 56920, 53052, 65368,
297	8774, 31765, 43095, 30041, 9959, 26451, 6007, 46947,
298	60390, 2655, 58365, 14697, 13288, 41013, 43013, 47495,
299	63025, 3907, 8479, 17371, 55386, 62870, 43803, 6562,
300	26687, 4,		/* * 65536**58 */
301	 /* 10000**71 =  65536**17 *  */ 4096, 58913, 59964, 53368, 36195, 59193, 45551, 42775,
302	29992, 44615, 40363, 5323, 32104, 28518, 14765, 32031,
303	62806, 63882, 55646, 65087, 45399, 8223, 43060, 36548,
304	58459, 17134, 52325, 47193, 40770, 7739, 23490, 17171,
305	63071, 20160, 52548, 40893, 17914, 21603, 62505, 25147,
306	8409, 44072,		/* * 65536**58 */
307	 /* 10000**72 =  65536**18 *  */ 27521, 60125, 29501, 2815, 14371, 43832, 3478, 33791,
308	51024, 583, 20927, 45484, 37762, 1743, 37821, 33399,
309	50191, 3571, 40475, 32059, 54783, 29734, 57834, 14456,
310	37816, 13190, 13248, 7745, 63741, 20156, 9264, 59692,
311	20887, 15428, 58914, 36351, 26077, 36464, 17905, 11149,
312	57219, 6724,		/* * 65536**59 */
313	 /* 10000**73 =  65536**18 *  */ 24336, 26935, 41638, 39557, 55517, 17424, 52608, 6914,
314	47396, 5081, 13641, 23353, 8508, 3186, 2010, 24315,
315	40408, 538, 209, 59600, 19467, 11527, 54873, 61944,
316	19485, 47338, 33756, 54005, 8045, 46526, 40707, 19525,
317	15876, 11443, 39250, 56333, 7802, 1675, 11212, 15996,
318	62421, 8794, 1026,	/* * 65536**60 */
319	 /* 10000**74 =  65536**18 *  */ 24832, 753, 33902, 1057, 20580, 53783, 25186, 7547,
320	4703, 26832, 30359, 27313, 17835, 10802, 46470, 11746,
321	54270, 12213, 58466, 15647, 37174, 60682, 64366, 2100,
322	20924, 16445, 56823, 38510, 45568, 21163, 33003, 24467,
323	34787, 6566, 6642, 54069, 40755, 39510, 53695, 53870,
324	47576, 212, 37726, 156,	/* * 65536**61 */
325	 /* 10000**75 =  65536**18 *  */ 4096, 62685, 2386, 23877, 17121, 44724, 13358, 41907,
326	41839, 16333, 31342, 46120, 30711, 19393, 51408, 26578,
327	63712, 44712, 15207, 44489, 22195, 27848, 40203, 38301,
328	49408, 23368, 35389, 19134, 14068, 21209, 59469, 29147,
329	8645, 63772, 33033, 19013, 55402, 55210, 19580, 2273,
330	42396, 30107, 34816, 58428, 23,	/* * 65536**62 */
331	 /* 10000**76 =  65536**19 *  */ 64321, 14460, 22716, 33611, 24948, 24456, 34854, 14570,
332	20672, 29340, 27950, 15341, 13662, 18575, 39364, 48599,
333	43129, 33302, 33952, 51892, 20922, 36425, 23750, 9940,
334	51699, 64701, 45815, 42663, 17650, 19572, 40482, 12463,
335	56039, 38290, 15104, 47093, 33189, 52392, 57531, 7962,
336	4085, 37362, 31872, 42307, 3,	/* * 65536**63 */
337	 /* 10000**77 =  65536**19 *  */ 39696, 37398, 14430, 44858, 55112, 48990, 23283, 18790,
338	21679, 64018, 58972, 60024, 45316, 23060, 33618, 46566,
339	4999, 38165, 48601, 11132, 37006, 4104, 3094, 51048,
340	43548, 46496, 63232, 63166, 18061, 32197, 7114, 52241,
341	59101, 47238, 50898, 56144, 22881, 30280, 42986, 2538,
342	22287, 65423, 24132, 39983, 36455,	/* * 65536**63 */
343	 /* 10000**78 =  65536**19 *  */ 8448, 37641, 60970, 53817, 34620, 26809, 53603, 11840,
344	65315, 27659, 36840, 4774, 53255, 51266, 49374, 31849,
345	58673, 34634, 847, 47288, 45442, 20110, 7634, 20568,
346	1069, 54261, 35766, 33680, 2422, 59924, 38352, 23629,
347	14323, 5530, 34632, 854, 32391, 27171, 13996, 24127,
348	47987, 53048, 26430, 64082, 44868, 5562,	/* * 65536**64 */
349	 /* 10000**79 =  65536**19 *  */ 4096, 38041, 24335, 63207, 47059, 53042, 15146, 50163,
350	20030, 38046, 26364, 35413, 5192, 45534, 65134, 58109,
351	56587, 56728, 21140, 37889, 591, 42486, 59164, 29196,
352	10770, 37619, 38327, 15953, 42355, 44721, 12471, 38572,
353	37445, 55337, 28619, 25604, 31218, 2686, 44786, 34119,
354	19089, 38938, 1406, 13025, 30322, 52318, 848,	/* * 65536**65 */
355	 /* 10000**80 =  65536**20 *  */ 39681, 20636, 44529, 51164, 44332, 14397, 19767, 29638,
356	26576, 60013, 43014, 20891, 62200, 50179, 57762, 41042,
357	9018, 55056, 29609, 17541, 55738, 53010, 6147, 28807,
358	15003, 21212, 21224, 58802, 64334, 1815, 42543, 48717,
359	55265, 2731, 60751, 35938, 60539, 52921, 16417, 54374,
360	33536, 41237, 30182, 52451, 10738, 33839, 129,	/* * 65536**66 */
361	 /* 10000**81 =  65536**20 *  */ 55056, 58726, 41564, 7242, 42303, 59708, 15620, 29224,
362	16042, 20903, 36389, 53331, 1011, 55875, 58888, 42381,
363	8726, 58976, 6752, 40182, 64532, 53336, 5320, 40218,
364	22491, 47793, 37668, 34246, 47596, 6344, 36101, 47403,
365	57881, 55456, 57232, 55381, 39451, 16037, 10395, 55849,
366	20584, 22605, 33012, 29997, 40035, 29270, 49979, 19,
367	/* * 65536**67 */
368	 /* 10000**82 =  65536**20 *  */ 57600, 304, 19649, 9062, 61761, 53494, 36822, 17359,
369	57867, 38143, 37317, 49120, 25593, 55754, 47565, 63209,
370	38050, 2867, 26919, 19814, 58675, 37878, 58442, 51915,
371	62120, 44919, 51900, 40147, 42793, 8414, 38680, 13620,
372	3281, 3200, 2574, 39533, 57266, 9427, 12351, 59330,
373	65481, 19476, 18617, 16765, 60689, 22332, 16930, 1018,
374	3,			/* * 65536**68 */
375	 /* 10000**83 =  65536**20 *  */ 4096, 34133, 13118, 52246, 118, 44592, 46914, 56290,
376	55304, 19309, 13836, 13374, 19415, 29153, 63755, 2537,
377	7629, 36574, 34085, 28779, 9215, 56409, 41267, 48261,
378	57713, 15734, 27270, 4383, 51582, 63841, 7811, 22094,
379	44078, 18932, 50376, 17240, 12464, 37970, 41614, 4476,
380	48877, 62535, 50731, 11752, 29198, 48108, 23919, 24503,
381	30155,			/* * 65536**68 */
382	 /* 10000**84 =  65536**21 *  */ 19137, 47672, 9009, 8324, 13074, 40116, 18454, 55821,
383	29382, 16450, 48671, 34408, 28834, 20240, 17296, 6483,
384	50284, 2844, 26625, 10775, 23054, 63951, 9192, 27348,
385	62406, 7104, 56113, 52348, 31694, 829, 19336, 53771,
386	58757, 53192, 48006, 58694, 51853, 57729, 5261, 3195,
387	12946, 5366, 21693, 18913, 50215, 56476, 60081, 22602,
388	4601,			/* * 65536**69 */
389	 /* 10000**85 =  65536**21 *  */ 4880, 14056, 50810, 10654, 62486, 16138, 62281, 42703,
390	30629, 9123, 42174, 23426, 52386, 29231, 13584, 17535,
391	48797, 5048, 43202, 12878, 51532, 13229, 48286, 65210,
392	30380, 8498, 11852, 52530, 15891, 37300, 28926, 55606,
393	47964, 38789, 16916, 6909, 18124, 56824, 58936, 34770,
394	26887, 53527, 6658, 61950, 16053, 43950, 50105, 61039,
395	7176, 702,		/* * 65536**70 */
396	 /* 10000**86 =  65536**21 *  */ 41216, 51560, 1536, 51753, 41401, 39902, 23854, 6927,
397	46788, 8561, 17232, 40771, 34326, 27433, 53868, 43272,
398	57155, 24725, 7458, 8352, 12397, 46215, 58306, 24167,
399	50590, 49979, 32208, 30768, 58751, 37048, 55323, 56989,
400	56036, 55270, 17502, 17637, 34014, 45645, 3422, 40513,
401	46633, 41590, 3591, 54744, 41788, 18033, 33986, 60877,
402	7393, 8743, 107,	/* * 65536**71 */
403	 /* 10000**87 =  65536**21 *  */ 4096, 34577, 32443, 57978, 26984, 43149, 60584, 2087,
404	19553, 27123, 27162, 13173, 54189, 1541, 43802, 59547,
405	17146, 56929, 3804, 28274, 42698, 57555, 58795, 47664,
406	31303, 20183, 43722, 58930, 49990, 13956, 46277, 62921,
407	35895, 43462, 47313, 15294, 10851, 62486, 17172, 52506,
408	47541, 15659, 2618, 18340, 30817, 46840, 58591, 11281,
409	14681, 6104, 22758, 16,	/* * 65536**72 */
410	 /* 10000**88 =  65536**22 *  */ 2689, 32076, 53494, 37134, 5093, 31800, 38796, 36430,
411	45015, 42954, 6784, 40362, 17308, 43147, 16587, 26910,
412	46920, 37806, 18276, 17274, 19363, 35326, 5643, 37337,
413	49432, 32423, 6959, 384, 41484, 22433, 5925, 18929,
414	56261, 32247, 51731, 50253, 41431, 25214, 53724, 19867,
415	31750, 33525, 30671, 22526, 18910, 25307, 31484, 11081,
416	28224, 39939, 32400, 2,	/* * 65536**73 */
417	 /* 10000**89 =  65536**22 *  */ 20240, 27226, 40062, 21186, 14194, 20105, 57268, 56831,
418	54310, 23924, 16794, 50347, 5582, 49153, 4967, 11715,
419	31882, 55511, 51400, 55428, 39291, 23914, 8894, 12269,
420	53185, 30950, 61251, 39973, 62714, 6601, 8879, 22936,
421	51864, 41464, 39272, 7845, 64612, 29329, 45255, 38581,
422	46647, 38204, 6635, 17448, 32077, 38389, 8917, 58964,
423	43674, 17922, 61646, 24943,	/* * 65536**73 */
4240};				/* end powers of 10000 in base 65536 */
425
426unsigned short  _start_small_powers_ten[] = {
427	0, 1, 2, 4, 7, 10, 14, 18,
428	23, 28, 34, 41, 49, 56, 64, 73,
429	83, 93, 104, 115, 127, 139, 152, 166,
430	181, 195, 210, 226, 243, 260, 278, 296,
431	315, 334, 354, 375, 397, 418, 440, 463,
432	487, 511, 536, 561, 587, 613, 640, 668,
433	697, 725, 754, 784, 815, 846, 878, 910,
434	943, 976, 1010, 1045, 1080, 1115, 1151, 1188,
435	1226, 1264, 1302, 1341, 1381, 1421, 1462, 1504,
436	1546, 1588, 1631, 1675, 1720, 1765, 1810, 1856,
437	1903, 1950, 1998, 2047, 2096, 2145, 2195, 2246,
438	2298, 2350, 2402,
4390};				/* end _start_small_powers_ten */
440
441unsigned short  _leading_zeros_small_powers_ten[] = {
442	0, 0, 0, 0, 1, 1, 1, 1,
443	2, 2, 2, 2, 3, 3, 3, 3,
444	4, 4, 4, 4, 5, 5, 5, 5,
445	6, 6, 6, 6, 7, 7, 7, 7,
446	8, 8, 8, 8, 9, 9, 9, 9,
447	10, 10, 10, 10, 11, 11, 11, 11,
448	12, 12, 12, 12, 13, 13, 13, 13,
449	14, 14, 14, 14, 15, 15, 15, 15,
450	16, 16, 16, 16, 17, 17, 17, 17,
451	18, 18, 18, 18, 19, 19, 19, 19,
452	20, 20, 20, 20, 21, 21, 21, 21,
453	22, 22,
4540};				/* end _leading_zeros_small_powers_ten */
455
456unsigned short  _max_small_powers_two = 70;
457unsigned short  _small_powers_two[] = {1,	/* begin powers of 65536 in
458						 * base 10000 */
459	 /* 65536**1 =  */ 5536, 6,	/* * 10000**1 */
460	 /* 65536**2 =  */ 7296, 9496, 42,	/* * 10000**2 */
461	 /* 65536**3 =  */ 656, 7671, 4749, 281,	/* * 10000**3 */
462	 /* 65536**4 =  */ 1616, 955, 737, 6744, 1844,	/* * 10000**4 */
463	 /* 65536**5 =  */ 6176, 7470, 6291, 9614, 2581, 2089, 1,	/* * 10000**6 */
464	 /* 65536**6 =  */ 336, 4395, 5935, 4337, 1426, 1625, 9228, 7,
465	/* * 10000**7 */
466	 /* 65536**7 =  */ 96, 2922, 4963, 8530, 2762, 5348, 6858, 9229,
467	51,			/* * 10000**8 */
468	 /* 65536**8 =  */ 1456, 6821, 4317, 4607, 6337, 4634, 938, 6692,
469	2823, 340,		/* * 10000**9 */
470	 /* 65536**9 =  */ 416, 598, 3615, 2648, 1827, 5357, 3141, 3062,
471	1985, 745, 2230,	/* * 10000**10 */
472	 /* 65536**10 =  */ 2976, 3254, 6559, 3019, 1628, 8327, 3684, 1820,
473	9029, 7330, 163, 4615, 1,	/* * 10000**12 */
474	 /* 65536**11 =  */ 5136, 3647, 1951, 6171, 2397, 8943, 9196, 9668,
475	6473, 8053, 411, 9713, 5780, 9,	/* * 10000**13 */
476	 /* 65536**12 =  */ 2896, 3451, 4640, 5444, 235, 4161, 7666, 2320,
477	7894, 3835, 8076, 3866, 1735, 7710, 62,	/* * 10000**14 */
478	 /* 65536**13 =  */ 2256, 3715, 9658, 8394, 6640, 6839, 6245, 3762,
479	6393, 2295, 3874, 5105, 301, 3933, 3761, 411,
480	/* * 10000**15 */
481	 /* 65536**14 =  */ 9216, 1024, 1036, 2481, 4057, 4225, 7144, 7363,
482	6306, 7019, 1508, 6670, 9794, 5063, 6671, 9946,
483	2695,			/* * 10000**16 */
484	 /* 65536**15 =  */ 9776, 9261, 2012, 1606, 5812, 6189, 6875, 8389,
485	8274, 8515, 4291, 5007, 3297, 2958, 3843, 4778,
486	4706, 7668, 1,		/* * 10000**18 */
487	 /* 65536**16 =  */ 9936, 2963, 9131, 4007, 5758, 394, 564, 6564,
488	9846, 3269, 785, 6879, 5008, 7098, 4235, 6195,
489	3731, 892, 5792, 11,	/* * 10000**19 */
490	 /* 65536**17 =  */ 5696, 8284, 8640, 2594, 2554, 8922, 4889, 2000,
491	474, 1715, 7190, 7290, 9370, 7352, 1480, 3279,
492	5418, 2567, 360, 8855, 75,	/* * 10000**20 */
493	 /* 65536**18 =  */ 3056, 7553, 5333, 7012, 5949, 8931, 3976, 4046,
494	7174, 7347, 5079, 4561, 100, 2084, 1468, 2248,
495	5538, 6421, 9786, 3640, 3232, 497,	/* * 10000**21 */
496	 /* 65536**19 =  */ 8016, 3435, 2989, 3387, 9621, 1007, 9670, 4718,
497	1782, 10, 5498, 2986, 3494, 7682, 505, 4550,
498	3101, 2951, 7380, 5177, 6213, 2575, 3259,	/* * 10000**22 */
499	 /* 65536**20 =  */ 6576, 8693, 9620, 22, 4055, 7806, 9725, 2221,
500	6078, 7041, 6994, 6527, 2356, 452, 6027, 2114,
501	6955, 7061, 5021, 8239, 9100, 5920, 8703, 1359,
502	2,			/* * 10000**24 */
503	 /* 65536**21 =  */ 4736, 7544, 3294, 4843, 8630, 590, 8760, 9194,
504	2369, 8810, 4931, 9312, 5595, 7716, 8435, 2602,
505	6738, 5277, 2535, 4014, 1598, 2763, 8611, 463,
506	9984, 13,		/* * 10000**25 */
507	 /* 65536**22 =  */ 8496, 4621, 5027, 2440, 7421, 2800, 9232, 5393,
508	5043, 7691, 5754, 3553, 4950, 2449, 6731, 9956,
509	8625, 7631, 8347, 8120, 2835, 6443, 8604, 9602,
510	4463, 7399, 91,		/* * 10000**26 */
511	 /* 65536**23 =  */ 3856, 7535, 9761, 787, 8650, 9435, 6706, 6152,
512	3397, 429, 4551, 7122, 6488, 106, 8869, 529,
513	3252, 1747, 9008, 7027, 7780, 7032, 3970, 3063,
514	101, 119, 2269, 601,	/* * 10000**27 */
515	 /* 65536**24 =  */ 6816, 9030, 6279, 806, 1564, 8849, 6254, 1426,
516	6114, 7210, 7149, 7217, 4245, 9340, 9482, 6667,
517	6544, 2704, 9739, 507, 6138, 143, 4010, 2790,
518	9212, 9447, 1963, 2006, 3940,	/* * 10000**28 */
519	 /* 65536**25 =  */ 3376, 4749, 9727, 3171, 3590, 8314, 137, 5328,
520	6453, 4629, 4119, 168, 7622, 4064, 3565, 659,
521	1283, 2235, 2829, 579, 3297, 1874, 301, 1720,
522	5919, 8965, 9085, 8086, 4987, 5822, 2,	/* * 10000**30 */
523	 /* 65536**26 =  */ 9536, 2588, 9797, 8405, 5027, 9833, 2920, 6711,
524	8725, 8437, 3124, 7045, 6495, 8255, 2478, 1590,
525	7009, 1368, 5992, 3885, 5988, 6071, 8619, 3893,
526	8856, 9031, 3316, 3641, 1030, 3280, 9230, 16,
527	/* * 10000**31 */
528	 /* 65536**27 =  */ 1296, 9663, 3158, 4287, 4561, 8438, 9564, 1238,
529	5583, 4416, 9762, 1598, 2492, 2250, 2312, 8485,
530	2245, 9183, 681, 6630, 5032, 8301, 4574, 8137,
531	2334, 3657, 6567, 8313, 5943, 4832, 8776, 9067,
532	110,			/* * 10000**32 */
533	 /* 65536**28 =  */ 4656, 2861, 6016, 3534, 7793, 2661, 1606, 6252,
534	5607, 3565, 1376, 507, 6191, 2332, 3979, 8113,
535	3928, 1806, 199, 8149, 602, 7318, 6068, 6413,
536	4353, 453, 8880, 3807, 4932, 8905, 5606, 2429,
537	8387, 726,		/* * 10000**33 */
538	 /* 65536**29 =  */ 5616, 9009, 3328, 3652, 5212, 2370, 8260, 1598,
539	1326, 2590, 903, 5772, 6699, 525, 3031, 9646,
540	8579, 3763, 3502, 4169, 6077, 6398, 407, 2140,
541	240, 6340, 2651, 3748, 8507, 404, 3179, 3689,
542	6354, 4102, 4763,	/* * 10000**34 */
543	 /* 65536**30 =  */ 176, 629, 2853, 9288, 7567, 4479, 2895, 662,
544	1214, 6931, 5982, 9711, 3491, 306, 3061, 120,
545	6562, 8197, 1738, 2537, 9596, 9156, 5085, 9711,
546	2664, 9814, 7485, 6305, 9316, 2297, 1597, 3138,
547	9922, 315, 4855, 1217, 3,	/* * 10000**36 */
548	 /* 65536**31 =  */ 4336, 3297, 8330, 7065, 1783, 5341, 6078, 3807,
549	5044, 7972, 1775, 9304, 9821, 6900, 7703, 4380,
550	8020, 1596, 5292, 6227, 83, 506, 571, 3427,
551	1549, 7769, 1278, 3540, 4701, 7249, 6051, 2435,
552	8758, 8866, 9350, 9129, 4586, 20,	/* * 10000**37 */
553	 /* 65536**32 =  */ 4096, 608, 6490, 6433, 6994, 9465, 2811, 5388,
554	8537, 6050, 8648, 8581, 31, 2769, 9034, 8166,
555	7429, 8018, 6976, 7354, 300, 1764, 4372, 5614,
556	7723, 9337, 5923, 5820, 7936, 1274, 5846, 9820,
557	249, 9574, 9709, 9425, 7929, 780, 134,	/* * 10000**38 */
558	 /* 65536**33 =  */ 5456, 2731, 2627, 5621, 947, 4080, 3730, 6396,
559	6144, 8751, 4982, 1095, 7858, 9392, 370, 6183,
560	466, 6340, 1687, 7467, 8999, 7474, 4952, 7757,
561	1322, 249, 924, 8343, 1841, 4877, 1810, 1833,
562	2824, 3302, 1768, 435, 6718, 49, 6941, 878,
563	/* * 10000**39 */
564	 /* 65536**34 =  */ 4416, 4572, 973, 5074, 9431, 3089, 6019, 2703,
565	5103, 5805, 7706, 4575, 9067, 5610, 9876, 1518,
566	297, 1298, 782, 8372, 7400, 5044, 3259, 5210,
567	9431, 7132, 6896, 2903, 6453, 1142, 2123, 9353,
568	5677, 8380, 9289, 9748, 3699, 5291, 5701, 6096,
569	5758,			/* * 10000**40 */
570	 /* 65536**35 =  */ 6976, 9532, 6493, 6043, 3269, 2514, 1434, 3256,
571	7926, 9924, 8462, 7705, 4899, 6384, 307, 8375,
572	4146, 7675, 7658, 2517, 1267, 2086, 4885, 3921,
573	4162, 4562, 3002, 6206, 2837, 4404, 416, 2122,
574	9169, 8890, 8826, 5809, 1554, 5224, 5413, 4821,
575	6242, 7739, 3,		/* * 10000**42 */
576	 /* 65536**36 =  */ 9136, 4869, 7721, 6606, 6791, 8931, 5101, 4615,
577	9675, 1209, 675, 343, 1365, 3935, 1393, 6016,
578	7142, 5976, 4989, 4304, 612, 6401, 7031, 8671,
579	6531, 2510, 8972, 6092, 6305, 9140, 1839, 121,
580	3491, 5131, 9003, 6471, 1019, 252, 605, 4534,
581	7310, 4014, 7330, 24,	/* * 10000**43 */
582	 /* 65536**37 =  */ 6896, 4657, 5371, 1419, 8274, 6525, 7670, 2075,
583	1048, 6433, 4729, 3272, 8888, 3105, 7437, 3707,
584	7539, 9945, 8272, 9643, 6241, 9949, 5565, 8738,
585	2446, 8167, 5445, 4112, 4410, 364, 608, 1914,
586	6970, 8094, 4236, 2461, 3598, 1754, 932, 4189,
587	7874, 9413, 5190, 904, 162,	/* * 10000**44 */
588	 /* 65536**38 =  */ 6256, 6345, 4380, 786, 4167, 6625, 3887, 7470,
589	5331, 9957, 1903, 4788, 5414, 7530, 1586, 693,
590	203, 4930, 8972, 7865, 3377, 8571, 3045, 45,
591	8325, 8547, 7044, 9721, 711, 4008, 8276, 9888,
592	8463, 4063, 3545, 1862, 4659, 3725, 1049, 6413,
593	7917, 1973, 3534, 8563, 2759, 1062,	/* * 10000**45 */
594	 /* 65536**39 =  */ 3216, 6919, 9266, 4, 3666, 3309, 1852, 9398,
595	1373, 6894, 265, 8846, 3283, 1564, 9448, 6846,
596	8350, 3810, 1301, 9442, 6621, 1192, 3293, 9081,
597	7496, 750, 1603, 1625, 9808, 2953, 2203, 4208,
598	5975, 8237, 1752, 1267, 4429, 2134, 1679, 9245,
599	540, 4417, 7159, 7929, 9944, 7318, 6961,	/* * 10000**46 */
600	 /* 65536**40 =  */ 3776, 4660, 1922, 2874, 5008, 2649, 4360, 9467,
601	2519, 4188, 2221, 3197, 2661, 9825, 4379, 1375,
602	472, 6887, 7310, 9440, 5735, 2309, 7864, 3997,
603	7371, 1131, 9128, 6505, 7738, 2086, 5167, 9927,
604	5178, 9192, 3057, 5599, 7248, 2850, 8932, 1324,
605	29, 6057, 1171, 1864, 1952, 7622, 4061, 5624,
606	4,			/* * 10000**48 */
607	 /* 65536**41 =  */ 3936, 2506, 734, 3063, 3124, 7686, 4323, 7887,
608	7229, 1282, 2904, 3150, 2249, 8641, 6534, 704,
609	2006, 9526, 3294, 7751, 830, 215, 240, 8931,
610	2055, 9525, 24, 1502, 205, 8812, 8187, 9735,
611	468, 853, 3796, 6104, 1623, 5104, 6234, 8202,
612	9226, 1742, 2351, 6782, 8488, 8185, 1648, 1083,
613	9004, 29,		/* * 10000**49 */
614	 /* 65536**42 =  */ 9696, 9010, 9849, 1579, 4538, 171, 2501, 768,
615	1435, 4533, 4950, 7432, 1109, 1317, 8855, 170,
616	9834, 9082, 8014, 1129, 5679, 5684, 49, 3589,
617	5010, 3873, 5288, 5235, 4723, 4576, 982, 6620,
618	4652, 5281, 246, 6622, 4933, 6384, 4874, 7130,
619	8892, 4180, 6558, 560, 4016, 7791, 6974, 6293,
620	3242, 9553, 195,	/* * 10000**50 */
621	 /* 65536**43 =  */ 7056, 2903, 3118, 5896, 2722, 6397, 6659, 8038,
622	9194, 4092, 2908, 5995, 8133, 8184, 9911, 9152,
623	2143, 2400, 5030, 2670, 6348, 3842, 8518, 9028,
624	8880, 3763, 9753, 5617, 839, 3692, 6344, 4758,
625	6857, 6107, 6468, 1007, 2486, 4157, 4305, 3626,
626	2842, 8759, 2487, 3141, 6250, 7295, 9125, 3757,
627	8958, 6658, 2128, 1284,	/* * 10000**51 */
628	 /* 65536**44 =  */ 2016, 7250, 277, 692, 7634, 1634, 6149, 2012,
629	666, 3571, 5511, 7380, 3578, 9928, 935, 430,
630	3633, 450, 1810, 4086, 29, 916, 831, 4834,
631	8851, 169, 7275, 9631, 1521, 4414, 4580, 1866,
632	1538, 3293, 6875, 7144, 9099, 9444, 9724, 1751,
633	7078, 8451, 5436, 4880, 586, 6082, 3812, 8558,
634	6115, 7397, 4247, 2174, 8416,	/* * 10000**52 */
635	 /* 65536**45 =  */ 576, 9212, 986, 2732, 6359, 5854, 1577, 8731,
636	165, 3422, 2299, 1799, 6177, 4861, 1226, 6614,
637	5106, 5009, 3111, 1958, 7323, 1168, 6419, 6470,
638	816, 3593, 5513, 4893, 3378, 5878, 3808, 194,
639	6600, 128, 1582, 4242, 8887, 1619, 3962, 7269,
640	5289, 1123, 9085, 1310, 6081, 3795, 3091, 2074,
641	8728, 9872, 9872, 3101, 5226, 5156, 5,	/* * 10000**54 */
642	 /* 65536**46 =  */ 8736, 1406, 8868, 819, 1329, 9420, 8640, 5154,
643	660, 5279, 9690, 4332, 7663, 978, 8997, 3141,
644	162, 3291, 5326, 9879, 2961, 4041, 3243, 9988,
645	9781, 6199, 3515, 3780, 2678, 2749, 9612, 8943,
646	8873, 1861, 8795, 4079, 6233, 1028, 4248, 7150,
647	7544, 1594, 1923, 1700, 3007, 8973, 6650, 1923,
648	1802, 8593, 6094, 1839, 1465, 7867, 1473, 36,
649	/* * 10000**55 */
650	 /* 65536**47 =  */ 2496, 868, 2468, 2102, 2717, 7830, 2775, 9173,
651	7542, 8872, 8436, 5459, 764, 4431, 3806, 7539,
652	7422, 39, 6304, 5050, 6842, 387, 9733, 4823,
653	3075, 1771, 9672, 9119, 182, 6017, 49, 1443,
654	9543, 651, 1322, 8984, 2625, 1859, 3669, 240,
655	445, 3829, 6179, 3803, 7894, 4235, 3207, 9315,
656	8478, 2658, 2700, 647, 2296, 1314, 6086, 8954,
657	236,			/* * 10000**56 */
658	 /* 65536**48 =  */ 7856, 1605, 8538, 2846, 5089, 4687, 3716, 9919,
659	2629, 4825, 9844, 6315, 5285, 5026, 9055, 849,
660	7602, 4549, 9204, 8113, 411, 7275, 4428, 3914,
661	4814, 4411, 5800, 6171, 7320, 1310, 697, 8773,
662	9504, 6477, 2864, 4088, 878, 8633, 3768, 2686,
663	5095, 260, 2038, 3905, 6111, 6696, 1711, 8860,
664	5256, 255, 4625, 9488, 4897, 9351, 708, 9230,
665	5180, 1552,		/* * 10000**57 */
666	 /* 65536**49 =  */ 816, 6765, 6891, 1411, 1361, 585, 2496, 5940,
667	9151, 8435, 8006, 4356, 9152, 8575, 1421, 9410,
668	241, 3085, 3161, 3890, 8471, 7098, 1085, 6928,
669	5957, 847, 7711, 669, 3966, 136, 7182, 1896,
670	1639, 8963, 7557, 9941, 7400, 8044, 6225, 4395,
671	3525, 2752, 4075, 1436, 6089, 9107, 5982, 177,
672	5282, 6131, 5674, 5878, 1975, 9235, 773, 1926,
673	6970, 5825, 174, 1,	/* * 10000**59 */
674	 /* 65536**50 =  */ 7376, 6387, 2911, 6461, 3747, 7480, 1690, 198,
675	8866, 6135, 6501, 7289, 4024, 1181, 2859, 3078,
676	5846, 145, 9514, 5757, 951, 46, 3083, 523,
677	3356, 8036, 3650, 4119, 165, 8888, 445, 3324,
678	5934, 9910, 4292, 2907, 1554, 87, 4322, 1521,
679	3207, 8176, 7237, 6403, 8117, 6257, 6039, 9081,
680	2315, 5832, 1447, 7797, 2125, 7907, 9851, 7407,
681	8542, 2879, 1443, 6680, 6,	/* * 10000**60 */
682	 /* 65536**51 =  */ 3536, 6771, 7158, 7177, 5736, 3840, 4863, 7208,
683	3474, 1464, 9748, 4512, 4637, 4392, 5166, 8545,
684	3629, 1034, 458, 3103, 2471, 892, 7790, 5532,
685	2245, 9290, 9066, 6709, 436, 5052, 1768, 4586,
686	2408, 651, 5462, 1286, 1998, 1818, 7163, 8580,
687	3922, 3354, 7616, 4441, 7679, 1951, 2915, 1997,
688	5357, 1129, 8814, 3678, 5099, 7083, 6956, 9716,
689	7060, 4129, 7321, 9938, 6994, 43,	/* * 10000**61 */
690	 /* 65536**52 =  */ 5296, 7429, 1064, 8787, 1535, 5836, 6737, 5360,
691	9305, 7475, 4524, 2317, 8, 4504, 7762, 8978,
692	6147, 8012, 2266, 1210, 9792, 4307, 1287, 6205,
693	4579, 4156, 260, 445, 7670, 733, 757, 9686,
694	743, 9720, 1899, 5092, 9359, 7542, 6283, 5824,
695	8426, 3452, 4159, 5290, 53, 1064, 231, 4497,
696	9441, 5252, 1706, 9172, 2173, 4907, 4838, 3367,
697	7839, 4418, 6120, 4749, 3918, 3890, 286,	/* * 10000**62 */
698	 /* 65536**53 =  */ 8656, 1651, 8994, 1809, 5347, 8161, 4279, 7115,
699	7611, 2584, 3858, 6565, 9475, 4197, 9949, 3079,
700	8635, 4722, 7087, 3415, 6443, 7725, 3064, 9317,
701	9, 7629, 6599, 5226, 4036, 8154, 5560, 6657,
702	6726, 4795, 6565, 1763, 4796, 3850, 2121, 2845,
703	4508, 5496, 6852, 2698, 8079, 654, 5789, 6906,
704	4847, 6947, 8841, 7375, 9838, 9398, 5327, 1421,
705	8773, 9423, 9278, 574, 1175, 720, 8792, 1876,
706	/* * 10000**63 */
707	 /* 65536**54 =  */ 9616, 6663, 1609, 3568, 2853, 4339, 2031, 6688,
708	1127, 4908, 4827, 9125, 6626, 6691, 5175, 548,
709	3545, 7584, 4583, 1888, 833, 7827, 2934, 8997,
710	885, 4209, 2061, 4388, 7549, 6997, 3600, 9595,
711	8766, 9203, 5268, 2995, 2214, 5032, 7090, 3822,
712	4934, 5401, 8693, 1036, 3030, 3492, 2195, 9555,
713	8254, 361, 9307, 5944, 1506, 1807, 1869, 1573,
714	6644, 3223, 4768, 8474, 8567, 3620, 7231, 3155,
715	2300, 1,		/* * 10000**65 */
716	 /* 65536**55 =  */ 4176, 9387, 1096, 2997, 7592, 9403, 2053, 8081,
717	2903, 8078, 4437, 7637, 1340, 4806, 2654, 7647,
718	8714, 8256, 1192, 2008, 3864, 5732, 3919, 6625,
719	8324, 6829, 7280, 5477, 22, 4868, 5460, 1517,
720	1460, 5263, 3966, 4850, 6335, 1663, 3219, 5060,
721	9676, 2273, 9847, 2269, 875, 1570, 4407, 867,
722	6765, 2595, 5923, 6978, 6176, 3425, 8627, 377,
723	1494, 6071, 6774, 3313, 2450, 6470, 4545, 3471,
724	3481, 611, 8,		/* * 10000**66 */
725	 /* 65536**56 =  */ 8336, 3799, 8977, 8580, 8953, 4764, 7036, 9876,
726	3968, 8838, 6173, 7515, 8292, 4802, 4041, 1188,
727	821, 2329, 3024, 4105, 4264, 7676, 3151, 1687,
728	5084, 9900, 6839, 8386, 7690, 9395, 8462, 3897,
729	2505, 5537, 268, 5595, 2347, 7888, 1286, 3257,
730	9499, 6743, 7894, 5718, 8876, 7255, 7441, 8594,
731	6724, 255, 6739, 9026, 6070, 1279, 1522, 3612,
732	3260, 8847, 651, 5166, 4916, 3978, 3523, 5246,
733	3566, 5311, 8294, 52,	/* * 10000**67 */
734	 /* 65536**57 =  */ 8096, 5894, 1574, 7714, 43, 2184, 2523, 9650,
735	1575, 3179, 1651, 3501, 3766, 8219, 2451, 3254,
736	2844, 8725, 6127, 5099, 2408, 2283, 4244, 9887,
737	6081, 9719, 5587, 9722, 6802, 1122, 7208, 9254,
738	3224, 9251, 9936, 5679, 9659, 3352, 992, 9185,
739	7809, 1502, 5381, 6586, 5014, 1853, 928, 5154,
740	390, 5752, 8779, 2100, 2677, 330, 4178, 6007,
741	1032, 8359, 1917, 3248, 8832, 4428, 9401, 4946,
742	5758, 5069, 392, 2231, 346,	/* * 10000**68 */
743	 /* 65536**58 =  */ 9456, 2241, 2296, 5023, 8603, 910, 1641, 8936,
744	2443, 9272, 770, 2358, 1521, 5067, 2602, 212,
745	5711, 240, 6254, 8223, 4108, 4472, 9747, 2246,
746	9214, 4242, 3330, 7613, 9589, 5975, 845, 7383,
747	8715, 4670, 6325, 4066, 9448, 9976, 3685, 4663,
748	819, 6255, 9064, 5361, 669, 1072, 9555, 8626,
749	2817, 5631, 8240, 3137, 3640, 4425, 1572, 2133,
750	2522, 2191, 7294, 3496, 5239, 1291, 2961, 2669,
751	8708, 9722, 3335, 3388, 77, 2269,	/* * 10000**69 */
752	 /* 65536**59 =  */ 8416, 8146, 5348, 2376, 9128, 4143, 545, 451,
753	3012, 5808, 3486, 8940, 5709, 881, 7880, 687,
754	7487, 6067, 3720, 3514, 5782, 3919, 8702, 7736,
755	3429, 4098, 2686, 7394, 4598, 447, 7084, 7829,
756	4625, 239, 5811, 830, 779, 9057, 5544, 8524,
757	4545, 3050, 9297, 7901, 8723, 8979, 3505, 6156,
758	1449, 1683, 3545, 437, 1604, 657, 1594, 8593,
759	5771, 5905, 3944, 1659, 6020, 1312, 560, 4990,
760	4981, 8062, 6279, 7830, 8477, 1690, 4870, 1,
761	/* * 10000**71 */
762	 /* 65536**60 =  */ 976, 1411, 9919, 8589, 8182, 5470, 4277, 310,
763	7388, 2827, 6561, 4689, 3615, 4636, 9457, 4874,
764	2539, 5979, 3685, 7887, 2183, 3479, 9959, 3527,
765	3648, 9005, 6554, 789, 2987, 4730, 9956, 7769,
766	5312, 3419, 1265, 2963, 7987, 4657, 940, 5203,
767	6986, 4591, 8183, 866, 2314, 4916, 2530, 2592,
768	2010, 6588, 6150, 2465, 2610, 7664, 8690, 1294,
769	4572, 7906, 2686, 75, 7595, 2685, 8762, 8310,
770	7518, 3878, 3382, 8035, 9990, 1399, 1401, 7453,
771	9,			/* * 10000**72 */
772	 /* 65536**61 =  */ 3136, 7692, 831, 3710, 1847, 5547, 3325, 4193,
773	2002, 8690, 227, 1304, 3374, 8590, 4336, 4444,
774	7852, 6386, 9345, 6585, 6778, 4055, 5825, 741,
775	8449, 5589, 1961, 862, 1207, 4856, 7416, 4434,
776	8153, 2401, 5450, 1460, 5451, 3497, 4365, 9971,
777	8594, 1562, 1180, 7807, 5984, 141, 8299, 5895,
778	4348, 4342, 9576, 6548, 5118, 5010, 8068, 539,
779	9078, 7579, 1511, 2808, 6413, 3934, 4033, 1584,
780	4114, 7883, 8171, 3926, 7300, 339, 5111, 8990,
781	8668, 63,		/* * 10000**73 */
782	 /* 65536**62 =  */ 896, 3464, 828, 4011, 9306, 298, 3554, 4242,
783	553, 963, 3624, 437, 7010, 6352, 393, 406,
784	7799, 4357, 5776, 5807, 6169, 2904, 3779, 353,
785	8524, 6075, 2729, 4887, 7602, 726, 6801, 5228,
786	4071, 5370, 6940, 8278, 6307, 5116, 7561, 8064,
787	1732, 3560, 2722, 7286, 8588, 9797, 4191, 9108,
788	9166, 5810, 1194, 2488, 6167, 8905, 7284, 6781,
789	9345, 6837, 4571, 4995, 771, 654, 2474, 5457,
790	5487, 7250, 6320, 7890, 8534, 4547, 6722, 2135,
791	4968, 5580, 418,	/* * 10000**74 */
792	 /* 65536**63 =  */ 256, 2576, 6510, 324, 4303, 718, 6903, 7003,
793	9210, 4794, 8775, 2982, 226, 613, 7281, 195,
794	7925, 1463, 4495, 5408, 9644, 6976, 9579, 8975,
795	1179, 7063, 7562, 2320, 6701, 8959, 5098, 6779,
796	1322, 5003, 5035, 2493, 9807, 3514, 1228, 1859,
797	1205, 9516, 2323, 3137, 919, 2479, 5587, 9360,
798	2668, 4236, 8066, 1396, 6818, 8497, 2587, 7358,
799	8364, 879, 9869, 2280, 994, 5600, 350, 6166,
800	1796, 1963, 5037, 463, 5936, 8125, 2796, 3416,
801	6844, 3439, 620, 2743,	/* * 10000**75 */
802	 /* 65536**64 =  */ 7216, 2413, 6242, 6329, 3535, 3048, 9716, 3847,
803	2459, 9947, 9823, 5862, 684, 5051, 1633, 7237,
804	4082, 1105, 3913, 8147, 4628, 2342, 5068, 8381,
805	5768, 8500, 9520, 3082, 1945, 941, 1246, 1960,
806	3022, 5276, 6548, 4248, 7893, 7776, 1243, 9474,
807	3063, 8474, 2492, 1662, 8144, 9768, 5878, 3576,
808	1393, 7987, 1138, 1120, 3602, 4075, 7322, 847,
809	1327, 963, 550, 6758, 7732, 8115, 4300, 7273,
810	3065, 8942, 7697, 6179, 4733, 8902, 1907, 9305,
811	772, 3159, 4862, 9313, 7976, 1,	/* * 10000**77 */
812	 /* 65536**65 =  */ 7776, 5658, 1530, 8253, 1241, 6899, 7753, 668,
813	8242, 2709, 5318, 6414, 5047, 6822, 3390, 4737,
814	5381, 4036, 9612, 7436, 4002, 5647, 1799, 431,
815	6577, 3806, 8429, 4347, 7724, 2124, 4024, 8726,
816	2637, 7742, 4306, 9844, 3491, 9666, 2213, 6215,
817	8857, 2143, 1249, 7169, 6077, 9021, 4628, 5264,
818	5087, 5163, 2312, 7783, 8012, 2806, 1300, 6980,
819	1827, 9865, 1111, 5893, 8641, 5316, 7987, 1513,
820	5507, 3003, 9196, 7392, 2387, 2494, 5495, 4983,
821	4774, 3289, 6735, 8633, 6172, 7813, 11,	/* * 10000**78 */
822	 /* 65536**66 =  */ 7936, 3648, 7165, 8638, 4263, 1002, 5822, 8862,
823	2094, 1039, 8207, 2757, 2230, 9672, 1751, 6253,
824	262, 8564, 8485, 8691, 3810, 8024, 6274, 7809,
825	3097, 3119, 7891, 234, 8558, 9086, 788, 3509,
826	5621, 6999, 8755, 4608, 692, 3861, 4517, 749,
827	3084, 1697, 8514, 5770, 9255, 86, 9732, 1839,
828	6133, 5709, 3071, 1843, 5440, 6528, 5194, 9801,
829	16, 4618, 5148, 935, 5197, 6009, 876, 8315,
830	6672, 699, 8740, 2380, 2882, 2432, 6666, 1901,
831	1524, 9194, 6517, 6428, 4773, 3222, 2103, 77,
832	/* * 10000**79 */
833	 /* 65536**67 =  */ 3696, 7337, 9352, 6926, 6582, 5015, 7161, 8187,
834	465, 5633, 762, 6538, 3353, 8808, 6923, 8089,
835	1412, 2025, 9085, 8988, 9122, 5838, 5452, 1746,
836	6173, 7085, 5018, 7140, 8626, 6181, 1919, 994,
837	853, 3304, 3552, 7269, 1116, 9034, 1415, 6069,
838	7935, 4803, 4627, 8518, 3499, 6753, 6921, 4483,
839	4346, 5218, 8474, 2977, 7920, 4660, 6769, 2379,
840	2811, 5359, 9592, 9900, 6722, 9883, 8919, 7584,
841	685, 3395, 9225, 2958, 355, 2441, 8916, 7623,
842	9326, 7972, 8366, 8123, 5458, 8276, 3326, 56,
843	506,			/* * 10000**80 */
844	 /* 65536**68 =  */ 1056, 1854, 758, 3630, 3348, 6180, 6166, 165,
845	7899, 7340, 5348, 9365, 5055, 3066, 3454, 6080,
846	9848, 9658, 7831, 7108, 8301, 8955, 537, 1590,
847	5174, 3016, 6084, 9930, 331, 4552, 4097, 5364,
848	8723, 6534, 5525, 4464, 5816, 9542, 2645, 7263,
849	7934, 1414, 6554, 5974, 6290, 7544, 8914, 3249,
850	8840, 5332, 6263, 6210, 4635, 9666, 3728, 4508,
851	7291, 5847, 6434, 9265, 7878, 6347, 357, 3482,
852	1868, 9214, 1849, 5947, 4671, 5704, 4973, 9361,
853	8699, 4115, 6427, 3760, 8728, 1710, 6977, 1818,
854	1585, 3316,		/* * 10000**81 */
855	 /* 65536**69 =  */ 6016, 664, 8439, 648, 8318, 4423, 5479, 3853,
856	9949, 6006, 4636, 9693, 5857, 6510, 1440, 1518,
857	8376, 1231, 5717, 1215, 924, 9286, 1524, 5765,
858	3684, 485, 793, 2354, 7497, 2047, 824, 1957,
859	5684, 9394, 9226, 8916, 6634, 2630, 5258, 5308,
860	224, 9905, 2215, 5017, 595, 4810, 7348, 4887,
861	9538, 5887, 6917, 9608, 61, 1356, 1558, 726,
862	2522, 6777, 6947, 3209, 3331, 8627, 7952, 8695,
863	4067, 948, 6450, 4715, 7631, 7959, 7912, 5090,
864	9015, 7655, 6845, 7482, 2853, 3762, 5884, 173,
865	6479, 7764, 1732, 2,	/* * 10000**83 */
8660};				/* end powers of 65536 in base 10000 */
867
868unsigned short  _start_small_powers_two[] = {
869	0, 1, 3, 6, 10, 15, 22, 30,
870	39, 49, 60, 73, 87, 102, 118, 135,
871	154, 174, 195, 217, 240, 265, 291, 318,
872	346, 375, 406, 438, 471, 505, 540, 577,
873	615, 654, 694, 735, 778, 822, 867, 913,
874	960, 1009, 1059, 1110, 1162, 1215, 1270, 1326,
875	1383, 1441, 1501, 1562, 1624, 1687, 1751, 1817,
876	1884, 1952, 2021, 2091, 2163, 2236, 2310, 2385,
877	2461, 2539, 2618, 2698, 2779, 2861, 2945,
8780};				/* end _start_small_powers_two */
879