1b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Copyright 2008 the V8 project authors. All rights reserved.
2b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Redistribution and use in source and binary forms, with or without
3b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// modification, are permitted provided that the following conditions are
4b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// met:
5b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//
6b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//     * Redistributions of source code must retain the above copyright
7b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//       notice, this list of conditions and the following disclaimer.
8b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//     * Redistributions in binary form must reproduce the above
9b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//       copyright notice, this list of conditions and the following
10b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//       disclaimer in the documentation and/or other materials provided
11b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//       with the distribution.
12b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//     * Neither the name of Google Inc. nor the names of its
13b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//       contributors may be used to endorse or promote products derived
14b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//       from this software without specific prior written permission.
15b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//
16b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
28b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvar x;
29b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
30b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Converts a number to string respecting -0.
31b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochfunction stringify(n) {
32b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  if ((1 / n) === -Infinity) return "-0";
33b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  return String(n);
34b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch}
35b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
36b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochfunction f(expected, y) {
37b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  function testEval(string, x, y) {
38b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    var mulFunction = Function("x, y", "return " + string);
39b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    return mulFunction(x, y);
40b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  }
41b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  function mulTest(expected, x, y) {
42b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    assertEquals(expected, x * y);
43b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    assertEquals(expected, testEval(stringify(x) + " * y", x, y));
44b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    assertEquals(expected, testEval("x * " + stringify(y), x, y));
45b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    assertEquals(expected, testEval(stringify(x) + " * " + stringify(y), x, y));
46b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  }
47b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  mulTest(expected, x, y);
48b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  mulTest(-expected, -x, y);
49b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  mulTest(-expected, x, -y);
50b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  mulTest(expected, -x, -y);
51b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  if (x === y) return;  // Symmetric cases not necessary.
52b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  mulTest(expected, y, x);
53b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  mulTest(-expected, -y, x);
54b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  mulTest(-expected, y, -x);
55b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  mulTest(expected, -y, -x);
56b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch}
57b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
58b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochx = 262143;
59b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(0, 0);
60b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(262143, 1);
61b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(524286, 2);
62b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(786429, 3);
63b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1048572, 4);
64b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1310715, 5);
65b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1835001, 7);
66b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2097144, 8);
67b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2359287, 9);
68b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(3932145, 15);
69b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4194288, 16);
70b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4456431, 17);
71b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8126433, 31);
72b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8388576, 32);
73b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8650719, 33);
74b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(16515009, 63);
75b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(16777152, 64);
76b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17039295, 65);
77b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33292161, 127);
78b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33554304, 128);
79b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33816447, 129);
80b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(66846465, 255);
81b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(67108608, 256);
82b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(67370751, 257);
83b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(133955073, 511);
84b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(134217216, 512);
85b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(134479359, 513);
86b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268172289, 1023);
87b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268434432, 1024);
88b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268696575, 1025);
89b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(536606721, 2047);
90b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(536868864, 2048);
91b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(537131007, 2049);
92b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073475585, 4095);
93b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073737728, 4096);
94b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073999871, 4097);
95b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2147213313, 8191);
96b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2147475456, 8192);
97b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2147737599, 8193);
98b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4294688769, 16383);
99b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4294950912, 16384);
100b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4295213055, 16385);
101b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8589639681, 32767);
102b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8589901824, 32768);
103b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8590163967, 32769);
104b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17179541505, 65535);
105b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17179803648, 65536);
106b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17180065791, 65537);
107b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359345153, 131071);
108b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359607296, 131072);
109b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359869439, 131073);
110b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68718952449, 262143);
111b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochx = 262144;
112b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(0, 0);
113b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(262144, 1);
114b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(524288, 2);
115b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(786432, 3);
116b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1048576, 4);
117b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1310720, 5);
118b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1835008, 7);
119b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2097152, 8);
120b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2359296, 9);
121b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(3932160, 15);
122b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4194304, 16);
123b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4456448, 17);
124b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8126464, 31);
125b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8388608, 32);
126b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8650752, 33);
127b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(16515072, 63);
128b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(16777216, 64);
129b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17039360, 65);
130b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33292288, 127);
131b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33554432, 128);
132b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33816576, 129);
133b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(66846720, 255);
134b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(67108864, 256);
135b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(67371008, 257);
136b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(133955584, 511);
137b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(134217728, 512);
138b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(134479872, 513);
139b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268173312, 1023);
140b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268435456, 1024);
141b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268697600, 1025);
142b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(536608768, 2047);
143b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(536870912, 2048);
144b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(537133056, 2049);
145b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073479680, 4095);
146b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073741824, 4096);
147b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1074003968, 4097);
148b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2147221504, 8191);
149b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2147483648, 8192);
150b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2147745792, 8193);
151b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4294705152, 16383);
152b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4294967296, 16384);
153b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4295229440, 16385);
154b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8589672448, 32767);
155b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8589934592, 32768);
156b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8590196736, 32769);
157b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17179607040, 65535);
158b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17179869184, 65536);
159b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17180131328, 65537);
160b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359476224, 131071);
161b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359738368, 131072);
162b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34360000512, 131073);
163b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68719214592, 262143);
164b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68719476736, 262144);
165b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochx = 262145;
166b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(0, 0);
167b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(262145, 1);
168b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(524290, 2);
169b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(786435, 3);
170b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1048580, 4);
171b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1310725, 5);
172b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1835015, 7);
173b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2097160, 8);
174b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2359305, 9);
175b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(3932175, 15);
176b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4194320, 16);
177b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4456465, 17);
178b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8126495, 31);
179b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8388640, 32);
180b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8650785, 33);
181b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(16515135, 63);
182b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(16777280, 64);
183b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17039425, 65);
184b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33292415, 127);
185b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33554560, 128);
186b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33816705, 129);
187b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(66846975, 255);
188b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(67109120, 256);
189b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(67371265, 257);
190b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(133956095, 511);
191b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(134218240, 512);
192b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(134480385, 513);
193b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268174335, 1023);
194b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268436480, 1024);
195b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268698625, 1025);
196b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(536610815, 2047);
197b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(536872960, 2048);
198b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(537135105, 2049);
199b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073483775, 4095);
200b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073745920, 4096);
201b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1074008065, 4097);
202b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2147229695, 8191);
203b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2147491840, 8192);
204b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2147753985, 8193);
205b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4294721535, 16383);
206b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4294983680, 16384);
207b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4295245825, 16385);
208b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8589705215, 32767);
209b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8589967360, 32768);
210b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8590229505, 32769);
211b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17179672575, 65535);
212b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17179934720, 65536);
213b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17180196865, 65537);
214b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359607295, 131071);
215b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359869440, 131072);
216b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34360131585, 131073);
217b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68719476735, 262143);
218b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68719738880, 262144);
219b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68720001025, 262145);
220b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochx = 524287;
221b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(0, 0);
222b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(524287, 1);
223b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1048574, 2);
224b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1572861, 3);
225b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2097148, 4);
226b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2621435, 5);
227b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(3670009, 7);
228b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4194296, 8);
229b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4718583, 9);
230b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(7864305, 15);
231b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8388592, 16);
232b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8912879, 17);
233b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(16252897, 31);
234b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(16777184, 32);
235b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17301471, 33);
236b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33030081, 63);
237b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33554368, 64);
238b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34078655, 65);
239b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(66584449, 127);
240b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(67108736, 128);
241b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(67633023, 129);
242b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(133693185, 255);
243b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(134217472, 256);
244b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(134741759, 257);
245b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(267910657, 511);
246b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268434944, 512);
247b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268959231, 513);
248b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(536345601, 1023);
249b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(536869888, 1024);
250b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(537394175, 1025);
251b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073215489, 2047);
252b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073739776, 2048);
253b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1074264063, 2049);
254b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2146955265, 4095);
255b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2147479552, 4096);
256b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2148003839, 4097);
257b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4294434817, 8191);
258b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4294959104, 8192);
259b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4295483391, 8193);
260b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8589393921, 16383);
261b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8589918208, 16384);
262b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8590442495, 16385);
263b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17179312129, 32767);
264b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17179836416, 32768);
265b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17180360703, 32769);
266b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359148545, 65535);
267b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359672832, 65536);
268b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34360197119, 65537);
269b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68718821377, 131071);
270b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68719345664, 131072);
271b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68719869951, 131073);
272b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137438167041, 262143);
273b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137438691328, 262144);
274b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137439215615, 262145);
275b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(274876858369, 524287);
276b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochx = 524288;
277b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(0, 0);
278b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(524288, 1);
279b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1048576, 2);
280b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1572864, 3);
281b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2097152, 4);
282b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2621440, 5);
283b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(3670016, 7);
284b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4194304, 8);
285b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4718592, 9);
286b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(7864320, 15);
287b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8388608, 16);
288b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8912896, 17);
289b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(16252928, 31);
290b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(16777216, 32);
291b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17301504, 33);
292b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33030144, 63);
293b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33554432, 64);
294b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34078720, 65);
295b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(66584576, 127);
296b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(67108864, 128);
297b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(67633152, 129);
298b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(133693440, 255);
299b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(134217728, 256);
300b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(134742016, 257);
301b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(267911168, 511);
302b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268435456, 512);
303b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268959744, 513);
304b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(536346624, 1023);
305b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(536870912, 1024);
306b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(537395200, 1025);
307b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073217536, 2047);
308b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073741824, 2048);
309b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1074266112, 2049);
310b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2146959360, 4095);
311b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2147483648, 4096);
312b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2148007936, 4097);
313b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4294443008, 8191);
314b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4294967296, 8192);
315b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4295491584, 8193);
316b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8589410304, 16383);
317b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8589934592, 16384);
318b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8590458880, 16385);
319b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17179344896, 32767);
320b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17179869184, 32768);
321b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17180393472, 32769);
322b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359214080, 65535);
323b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359738368, 65536);
324b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34360262656, 65537);
325b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68718952448, 131071);
326b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68719476736, 131072);
327b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68720001024, 131073);
328b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137438429184, 262143);
329b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137438953472, 262144);
330b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137439477760, 262145);
331b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(274877382656, 524287);
332b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(274877906944, 524288);
333b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochx = 524289;
334b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(0, 0);
335b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(524289, 1);
336b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1048578, 2);
337b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1572867, 3);
338b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2097156, 4);
339b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2621445, 5);
340b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(3670023, 7);
341b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4194312, 8);
342b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4718601, 9);
343b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(7864335, 15);
344b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8388624, 16);
345b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8912913, 17);
346b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(16252959, 31);
347b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(16777248, 32);
348b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17301537, 33);
349b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33030207, 63);
350b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33554496, 64);
351b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34078785, 65);
352b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(66584703, 127);
353b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(67108992, 128);
354b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(67633281, 129);
355b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(133693695, 255);
356b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(134217984, 256);
357b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(134742273, 257);
358b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(267911679, 511);
359b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268435968, 512);
360b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268960257, 513);
361b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(536347647, 1023);
362b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(536871936, 1024);
363b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(537396225, 1025);
364b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073219583, 2047);
365b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073743872, 2048);
366b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1074268161, 2049);
367b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2146963455, 4095);
368b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2147487744, 4096);
369b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2148012033, 4097);
370b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4294451199, 8191);
371b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4294975488, 8192);
372b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4295499777, 8193);
373b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8589426687, 16383);
374b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8589950976, 16384);
375b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8590475265, 16385);
376b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17179377663, 32767);
377b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17179901952, 32768);
378b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17180426241, 32769);
379b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359279615, 65535);
380b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359803904, 65536);
381b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34360328193, 65537);
382b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68719083519, 131071);
383b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68719607808, 131072);
384b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68720132097, 131073);
385b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137438691327, 262143);
386b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137439215616, 262144);
387b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137439739905, 262145);
388b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(274877906943, 524287);
389b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(274878431232, 524288);
390b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(274878955521, 524289);
391b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochx = 1048575;
392b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(0, 0);
393b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1048575, 1);
394b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2097150, 2);
395b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(3145725, 3);
396b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4194300, 4);
397b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(5242875, 5);
398b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(7340025, 7);
399b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8388600, 8);
400b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(9437175, 9);
401b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(15728625, 15);
402b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(16777200, 16);
403b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17825775, 17);
404b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(32505825, 31);
405b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33554400, 32);
406b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34602975, 33);
407b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(66060225, 63);
408b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(67108800, 64);
409b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68157375, 65);
410b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(133169025, 127);
411b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(134217600, 128);
412b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(135266175, 129);
413b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(267386625, 255);
414b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268435200, 256);
415b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(269483775, 257);
416b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(535821825, 511);
417b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(536870400, 512);
418b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(537918975, 513);
419b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1072692225, 1023);
420b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073740800, 1024);
421b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1074789375, 1025);
422b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2146433025, 2047);
423b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2147481600, 2048);
424b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2148530175, 2049);
425b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4293914625, 4095);
426b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4294963200, 4096);
427b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4296011775, 4097);
428b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8588877825, 8191);
429b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8589926400, 8192);
430b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8590974975, 8193);
431b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17178804225, 16383);
432b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17179852800, 16384);
433b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17180901375, 16385);
434b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34358657025, 32767);
435b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359705600, 32768);
436b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34360754175, 32769);
437b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68718362625, 65535);
438b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68719411200, 65536);
439b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68720459775, 65537);
440b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137437773825, 131071);
441b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137438822400, 131072);
442b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137439870975, 131073);
443b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(274876596225, 262143);
444b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(274877644800, 262144);
445b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(274878693375, 262145);
446b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(549754241025, 524287);
447b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(549755289600, 524288);
448b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(549756338175, 524289);
449b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1099509530625, 1048575);
450b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochx = 1048576;
451b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(0, 0);
452b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1048576, 1);
453b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2097152, 2);
454b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(3145728, 3);
455b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4194304, 4);
456b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(5242880, 5);
457b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(7340032, 7);
458b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8388608, 8);
459b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(9437184, 9);
460b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(15728640, 15);
461b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(16777216, 16);
462b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17825792, 17);
463b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(32505856, 31);
464b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(33554432, 32);
465b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34603008, 33);
466b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(66060288, 63);
467b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(67108864, 64);
468b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68157440, 65);
469b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(133169152, 127);
470b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(134217728, 128);
471b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(135266304, 129);
472b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(267386880, 255);
473b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(268435456, 256);
474b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(269484032, 257);
475b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(535822336, 511);
476b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(536870912, 512);
477b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(537919488, 513);
478b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1072693248, 1023);
479b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1073741824, 1024);
480b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1074790400, 1025);
481b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2146435072, 2047);
482b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2147483648, 2048);
483b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(2148532224, 2049);
484b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4293918720, 4095);
485b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4294967296, 4096);
486b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(4296015872, 4097);
487b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8588886016, 8191);
488b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8589934592, 8192);
489b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(8590983168, 8193);
490b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17178820608, 16383);
491b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17179869184, 16384);
492b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(17180917760, 16385);
493b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34358689792, 32767);
494b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34359738368, 32768);
495b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(34360786944, 32769);
496b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68718428160, 65535);
497b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68719476736, 65536);
498b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(68720525312, 65537);
499b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137437904896, 131071);
500b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137438953472, 131072);
501b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(137440002048, 131073);
502b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(274876858368, 262143);
503b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(274877906944, 262144);
504b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(274878955520, 262145);
505b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(549754765312, 524287);
506b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(549755813888, 524288);
507b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(549756862464, 524289);
508b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1099510579200, 1048575);
509b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochf(1099511627776, 1048576);
510