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