sqlcipher/test/misc5.test

1895 lines
44 KiB
Plaintext

# 2005 Mar 16
#
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library.
#
# This file implements tests for miscellanous features that were
# left out of other test files.
#
# $Id: misc5.test,v 1.22 2008/07/29 10:26:45 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
# Build records using the MakeRecord opcode such that the size of the
# header is at the transition point in the size of a varint.
#
# This test causes an assertion failure or a buffer overrun in version
# 3.1.5 and earlier.
#
for {set i 120} {$i<140} {incr i} {
do_test misc5-1.$i {
catchsql {DROP TABLE t1}
set sql1 {CREATE TABLE t1}
set sql2 {INSERT INTO t1 VALUES}
set sep (
for {set j 0} {$j<$i} {incr j} {
append sql1 ${sep}a$j
append sql2 ${sep}$j
set sep ,
}
append sql1 {);}
append sql2 {);}
execsql $sql1$sql2
} {}
}
# Make sure large integers are stored correctly.
#
ifcapable conflict {
do_test misc5-2.1 {
execsql {
create table t2(x unique);
insert into t2 values(1);
insert or ignore into t2 select x*2 from t2;
insert or ignore into t2 select x*4 from t2;
insert or ignore into t2 select x*16 from t2;
insert or ignore into t2 select x*256 from t2;
insert or ignore into t2 select x*65536 from t2;
insert or ignore into t2 select x*2147483648 from t2;
insert or ignore into t2 select x-1 from t2;
insert or ignore into t2 select x+1 from t2;
insert or ignore into t2 select -x from t2;
select count(*) from t2;
}
} 371
} else {
do_test misc5-2.1 {
execsql {
BEGIN;
create table t2(x unique);
create table t2_temp(x);
insert into t2_temp values(1);
insert into t2_temp select x*2 from t2_temp;
insert into t2_temp select x*4 from t2_temp;
insert into t2_temp select x*16 from t2_temp;
insert into t2_temp select x*256 from t2_temp;
insert into t2_temp select x*65536 from t2_temp;
insert into t2_temp select x*2147483648 from t2_temp;
insert into t2_temp select x-1 from t2_temp;
insert into t2_temp select x+1 from t2_temp;
insert into t2_temp select -x from t2_temp;
INSERT INTO t2 SELECT DISTINCT(x) FROM t2_temp;
DROP TABLE t2_temp;
COMMIT;
select count(*) from t2;
}
} 371
}
do_test misc5-2.2 {
execsql {
select x from t2 order by x;
}
} \
"-4611686018427387905\
-4611686018427387904\
-4611686018427387903\
-2305843009213693953\
-2305843009213693952\
-2305843009213693951\
-1152921504606846977\
-1152921504606846976\
-1152921504606846975\
-576460752303423489\
-576460752303423488\
-576460752303423487\
-288230376151711745\
-288230376151711744\
-288230376151711743\
-144115188075855873\
-144115188075855872\
-144115188075855871\
-72057594037927937\
-72057594037927936\
-72057594037927935\
-36028797018963969\
-36028797018963968\
-36028797018963967\
-18014398509481985\
-18014398509481984\
-18014398509481983\
-9007199254740993\
-9007199254740992\
-9007199254740991\
-4503599627370497\
-4503599627370496\
-4503599627370495\
-2251799813685249\
-2251799813685248\
-2251799813685247\
-1125899906842625\
-1125899906842624\
-1125899906842623\
-562949953421313\
-562949953421312\
-562949953421311\
-281474976710657\
-281474976710656\
-281474976710655\
-140737488355329\
-140737488355328\
-140737488355327\
-70368744177665\
-70368744177664\
-70368744177663\
-35184372088833\
-35184372088832\
-35184372088831\
-17592186044417\
-17592186044416\
-17592186044415\
-8796093022209\
-8796093022208\
-8796093022207\
-4398046511105\
-4398046511104\
-4398046511103\
-2199023255553\
-2199023255552\
-2199023255551\
-1099511627777\
-1099511627776\
-1099511627775\
-549755813889\
-549755813888\
-549755813887\
-274877906945\
-274877906944\
-274877906943\
-137438953473\
-137438953472\
-137438953471\
-68719476737\
-68719476736\
-68719476735\
-34359738369\
-34359738368\
-34359738367\
-17179869185\
-17179869184\
-17179869183\
-8589934593\
-8589934592\
-8589934591\
-4294967297\
-4294967296\
-4294967295\
-2147483649\
-2147483648\
-2147483647\
-1073741825\
-1073741824\
-1073741823\
-536870913\
-536870912\
-536870911\
-268435457\
-268435456\
-268435455\
-134217729\
-134217728\
-134217727\
-67108865\
-67108864\
-67108863\
-33554433\
-33554432\
-33554431\
-16777217\
-16777216\
-16777215\
-8388609\
-8388608\
-8388607\
-4194305\
-4194304\
-4194303\
-2097153\
-2097152\
-2097151\
-1048577\
-1048576\
-1048575\
-524289\
-524288\
-524287\
-262145\
-262144\
-262143\
-131073\
-131072\
-131071\
-65537\
-65536\
-65535\
-32769\
-32768\
-32767\
-16385\
-16384\
-16383\
-8193\
-8192\
-8191\
-4097\
-4096\
-4095\
-2049\
-2048\
-2047\
-1025\
-1024\
-1023\
-513\
-512\
-511\
-257\
-256\
-255\
-129\
-128\
-127\
-65\
-64\
-63\
-33\
-32\
-31\
-17\
-16\
-15\
-9\
-8\
-7\
-5\
-4\
-3\
-2\
-1\
0\
1\
2\
3\
4\
5\
7\
8\
9\
15\
16\
17\
31\
32\
33\
63\
64\
65\
127\
128\
129\
255\
256\
257\
511\
512\
513\
1023\
1024\
1025\
2047\
2048\
2049\
4095\
4096\
4097\
8191\
8192\
8193\
16383\
16384\
16385\
32767\
32768\
32769\
65535\
65536\
65537\
131071\
131072\
131073\
262143\
262144\
262145\
524287\
524288\
524289\
1048575\
1048576\
1048577\
2097151\
2097152\
2097153\
4194303\
4194304\
4194305\
8388607\
8388608\
8388609\
16777215\
16777216\
16777217\
33554431\
33554432\
33554433\
67108863\
67108864\
67108865\
134217727\
134217728\
134217729\
268435455\
268435456\
268435457\
536870911\
536870912\
536870913\
1073741823\
1073741824\
1073741825\
2147483647\
2147483648\
2147483649\
4294967295\
4294967296\
4294967297\
8589934591\
8589934592\
8589934593\
17179869183\
17179869184\
17179869185\
34359738367\
34359738368\
34359738369\
68719476735\
68719476736\
68719476737\
137438953471\
137438953472\
137438953473\
274877906943\
274877906944\
274877906945\
549755813887\
549755813888\
549755813889\
1099511627775\
1099511627776\
1099511627777\
2199023255551\
2199023255552\
2199023255553\
4398046511103\
4398046511104\
4398046511105\
8796093022207\
8796093022208\
8796093022209\
17592186044415\
17592186044416\
17592186044417\
35184372088831\
35184372088832\
35184372088833\
70368744177663\
70368744177664\
70368744177665\
140737488355327\
140737488355328\
140737488355329\
281474976710655\
281474976710656\
281474976710657\
562949953421311\
562949953421312\
562949953421313\
1125899906842623\
1125899906842624\
1125899906842625\
2251799813685247\
2251799813685248\
2251799813685249\
4503599627370495\
4503599627370496\
4503599627370497\
9007199254740991\
9007199254740992\
9007199254740993\
18014398509481983\
18014398509481984\
18014398509481985\
36028797018963967\
36028797018963968\
36028797018963969\
72057594037927935\
72057594037927936\
72057594037927937\
144115188075855871\
144115188075855872\
144115188075855873\
288230376151711743\
288230376151711744\
288230376151711745\
576460752303423487\
576460752303423488\
576460752303423489\
1152921504606846975\
1152921504606846976\
1152921504606846977\
2305843009213693951\
2305843009213693952\
2305843009213693953\
4611686018427387903\
4611686018427387904\
4611686018427387905"
# Ticket #1210. Do proper reference counting of Table structures
# so that deeply nested SELECT statements can be flattened correctly.
#
ifcapable subquery {
do_test misc5-3.1 {
execsql {
CREATE TABLE songs(songid, artist, timesplayed);
INSERT INTO songs VALUES(1,'one',1);
INSERT INTO songs VALUES(2,'one',2);
INSERT INTO songs VALUES(3,'two',3);
INSERT INTO songs VALUES(4,'three',5);
INSERT INTO songs VALUES(5,'one',7);
INSERT INTO songs VALUES(6,'two',11);
SELECT DISTINCT artist
FROM (
SELECT DISTINCT artist
FROM songs
WHERE songid IN (
SELECT songid
FROM songs
WHERE LOWER(artist) = (
-- This sub-query is indeterminate. Because there is no ORDER BY,
-- it may return 'one', 'two' or 'three'. Because of this, the
-- outermost parent query may correctly return any of 'one', 'two'
-- or 'three' as well.
SELECT DISTINCT LOWER(artist)
FROM (
-- This sub-query returns the table:
--
-- two 14
-- one 10
-- three 5
--
SELECT DISTINCT artist,sum(timesplayed) AS total
FROM songs
GROUP BY LOWER(artist)
ORDER BY total DESC
LIMIT 10
)
WHERE artist <> ''
)
)
)
ORDER BY LOWER(artist) ASC;
}
} {two}
}
# Ticket #1370. Do not overwrite small files (less than 1024 bytes)
# when trying to open them as a database.
#
if {[permutation] == ""} {
do_test misc5-4.1 {
db close
forcedelete test.db
set fd [open test.db w]
puts $fd "This is not really a database"
close $fd
sqlite3 db test.db
catchsql {
CREATE TABLE t1(a,b,c);
}
} {1 {file is encrypted or is not a database}}
}
# Ticket #1371. Allow floating point numbers of the form .N or N.
#
do_test misc5-5.1 {
execsql {SELECT .1 }
} 0.1
do_test misc5-5.2 {
execsql {SELECT 2. }
} 2.0
do_test misc5-5.3 {
execsql {SELECT 3.e0 }
} 3.0
do_test misc5-5.4 {
execsql {SELECT .4e+1}
} 4.0
# Ticket #1582. Ensure that an unknown table in a LIMIT clause applied to
# a UNION ALL query causes an error, not a crash.
#
db close
forcedelete test.db
sqlite3 db test.db
ifcapable subquery&&compound {
do_test misc5-6.1 {
catchsql {
SELECT * FROM sqlite_master
UNION ALL
SELECT * FROM sqlite_master
LIMIT (SELECT count(*) FROM blah);
}
} {1 {no such table: blah}}
do_test misc5-6.2 {
execsql {
CREATE TABLE logs(msg TEXT, timestamp INTEGER, dbtime TEXT);
}
catchsql {
SELECT * FROM logs WHERE logs.oid >= (SELECT head FROM logs_base)
UNION ALL
SELECT * FROM logs
LIMIT (SELECT lmt FROM logs_base) ;
}
} {1 {no such table: logs_base}}
}
# Overflow the lemon parser stack by providing an overly complex
# expression. Make sure that the overflow is detected and reported.
#
# This test fails when building with -DYYSTACKDEPTH=0
#
do_test misc5-7.1 {
execsql {CREATE TABLE t1(x)}
set sql "INSERT INTO t1 VALUES("
set tail ""
for {set i 0} {$i<200} {incr i} {
append sql "(1+"
append tail ")"
}
append sql 2$tail
catchsql $sql
} {1 {parser stack overflow}}
# Parser stack overflow is silently ignored when it occurs while parsing the
# schema and PRAGMA writable_schema is turned on.
#
do_test misc5-7.2 {
sqlite3 db2 :memory:
catchsql {
CREATE TABLE t1(x UNIQUE);
PRAGMA writable_schema=ON;
UPDATE sqlite_master SET sql='CREATE table t(o CHECK(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((;VALUES(o)';
BEGIN;
CREATE TABLE t2(y);
ROLLBACK;
DROP TABLE IF EXISTS D;
} db2
} {0 {}}
db2 close
# Ticket #1911
#
ifcapable compound {
do_test misc5-9.1 {
execsql {
SELECT name, type FROM sqlite_master WHERE name IS NULL
UNION
SELECT type, name FROM sqlite_master WHERE type IS NULL
ORDER BY 1, 2, 1, 2, 1, 2
}
} {}
do_test misc5-9.2 {
execsql {
SELECT name, type FROM sqlite_master WHERE name IS NULL
UNION
SELECT type, name FROM sqlite_master WHERE type IS NULL
ORDER BY 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2
}
} {}
}
# Ticket #1912. Make the tokenizer require a space after a numeric
# literal.
#
do_test misc5-10.1 {
catchsql {
SELECT 123abc
}
} {1 {unrecognized token: "123abc"}}
do_test misc5-10.2 {
catchsql {
SELECT 1*123.4e5ghi;
}
} {1 {unrecognized token: "123.4e5ghi"}}
# Additional integer encoding tests.
#
do_test misc5-11.1 {
db eval {
CREATE TABLE t3(x);
INSERT INTO t3 VALUES(-18);
INSERT INTO t3 VALUES(-17);
INSERT INTO t3 VALUES(-16);
INSERT INTO t3 VALUES(-15);
INSERT INTO t3 VALUES(-14);
INSERT INTO t3 VALUES(-13);
INSERT INTO t3 VALUES(-12);
INSERT INTO t3 VALUES(-11);
INSERT INTO t3 VALUES(-10);
INSERT INTO t3 VALUES(-9);
INSERT INTO t3 VALUES(-8);
INSERT INTO t3 VALUES(-7);
INSERT INTO t3 VALUES(-6);
INSERT INTO t3 VALUES(-5);
INSERT INTO t3 VALUES(-4);
INSERT INTO t3 VALUES(-3);
INSERT INTO t3 VALUES(-2);
INSERT INTO t3 VALUES(-1);
INSERT INTO t3 VALUES(0);
INSERT INTO t3 VALUES(1);
INSERT INTO t3 VALUES(2);
INSERT INTO t3 VALUES(3);
INSERT INTO t3 VALUES(4);
INSERT INTO t3 VALUES(5);
INSERT INTO t3 VALUES(6);
INSERT INTO t3 VALUES(7);
INSERT INTO t3 VALUES(8);
INSERT INTO t3 VALUES(9);
INSERT INTO t3 VALUES(10);
INSERT INTO t3 VALUES(11);
INSERT INTO t3 VALUES(12);
INSERT INTO t3 VALUES(13);
INSERT INTO t3 VALUES(14);
INSERT INTO t3 VALUES(15);
INSERT INTO t3 VALUES(16);
INSERT INTO t3 VALUES(17);
INSERT INTO t3 VALUES(18);
INSERT INTO t3 VALUES(30);
INSERT INTO t3 VALUES(31);
INSERT INTO t3 VALUES(32);
INSERT INTO t3 VALUES(33);
INSERT INTO t3 VALUES(34);
INSERT INTO t3 VALUES(-30);
INSERT INTO t3 VALUES(-31);
INSERT INTO t3 VALUES(-32);
INSERT INTO t3 VALUES(-33);
INSERT INTO t3 VALUES(-34);
INSERT INTO t3 VALUES(62);
INSERT INTO t3 VALUES(63);
INSERT INTO t3 VALUES(64);
INSERT INTO t3 VALUES(65);
INSERT INTO t3 VALUES(66);
INSERT INTO t3 VALUES(-62);
INSERT INTO t3 VALUES(-63);
INSERT INTO t3 VALUES(-64);
INSERT INTO t3 VALUES(-65);
INSERT INTO t3 VALUES(-66);
INSERT INTO t3 VALUES(126);
INSERT INTO t3 VALUES(127);
INSERT INTO t3 VALUES(128);
INSERT INTO t3 VALUES(129);
INSERT INTO t3 VALUES(130);
INSERT INTO t3 VALUES(-126);
INSERT INTO t3 VALUES(-127);
INSERT INTO t3 VALUES(-128);
INSERT INTO t3 VALUES(-129);
INSERT INTO t3 VALUES(-130);
INSERT INTO t3 VALUES(254);
INSERT INTO t3 VALUES(255);
INSERT INTO t3 VALUES(256);
INSERT INTO t3 VALUES(257);
INSERT INTO t3 VALUES(258);
INSERT INTO t3 VALUES(-254);
INSERT INTO t3 VALUES(-255);
INSERT INTO t3 VALUES(-256);
INSERT INTO t3 VALUES(-257);
INSERT INTO t3 VALUES(-258);
INSERT INTO t3 VALUES(510);
INSERT INTO t3 VALUES(511);
INSERT INTO t3 VALUES(512);
INSERT INTO t3 VALUES(513);
INSERT INTO t3 VALUES(514);
INSERT INTO t3 VALUES(-510);
INSERT INTO t3 VALUES(-511);
INSERT INTO t3 VALUES(-512);
INSERT INTO t3 VALUES(-513);
INSERT INTO t3 VALUES(-514);
INSERT INTO t3 VALUES(1022);
INSERT INTO t3 VALUES(1023);
INSERT INTO t3 VALUES(1024);
INSERT INTO t3 VALUES(1025);
INSERT INTO t3 VALUES(1026);
INSERT INTO t3 VALUES(-1022);
INSERT INTO t3 VALUES(-1023);
INSERT INTO t3 VALUES(-1024);
INSERT INTO t3 VALUES(-1025);
INSERT INTO t3 VALUES(-1026);
INSERT INTO t3 VALUES(2046);
INSERT INTO t3 VALUES(2047);
INSERT INTO t3 VALUES(2048);
INSERT INTO t3 VALUES(2049);
INSERT INTO t3 VALUES(2050);
INSERT INTO t3 VALUES(-2046);
INSERT INTO t3 VALUES(-2047);
INSERT INTO t3 VALUES(-2048);
INSERT INTO t3 VALUES(-2049);
INSERT INTO t3 VALUES(-2050);
INSERT INTO t3 VALUES(4094);
INSERT INTO t3 VALUES(4095);
INSERT INTO t3 VALUES(4096);
INSERT INTO t3 VALUES(4097);
INSERT INTO t3 VALUES(4098);
INSERT INTO t3 VALUES(-4094);
INSERT INTO t3 VALUES(-4095);
INSERT INTO t3 VALUES(-4096);
INSERT INTO t3 VALUES(-4097);
INSERT INTO t3 VALUES(-4098);
INSERT INTO t3 VALUES(8190);
INSERT INTO t3 VALUES(8191);
INSERT INTO t3 VALUES(8192);
INSERT INTO t3 VALUES(8193);
INSERT INTO t3 VALUES(8194);
INSERT INTO t3 VALUES(-8190);
INSERT INTO t3 VALUES(-8191);
INSERT INTO t3 VALUES(-8192);
INSERT INTO t3 VALUES(-8193);
INSERT INTO t3 VALUES(-8194);
INSERT INTO t3 VALUES(16382);
INSERT INTO t3 VALUES(16383);
INSERT INTO t3 VALUES(16384);
INSERT INTO t3 VALUES(16385);
INSERT INTO t3 VALUES(16386);
INSERT INTO t3 VALUES(-16382);
INSERT INTO t3 VALUES(-16383);
INSERT INTO t3 VALUES(-16384);
INSERT INTO t3 VALUES(-16385);
INSERT INTO t3 VALUES(-16386);
INSERT INTO t3 VALUES(32766);
INSERT INTO t3 VALUES(32767);
INSERT INTO t3 VALUES(32768);
INSERT INTO t3 VALUES(32769);
INSERT INTO t3 VALUES(32770);
INSERT INTO t3 VALUES(-32766);
INSERT INTO t3 VALUES(-32767);
INSERT INTO t3 VALUES(-32768);
INSERT INTO t3 VALUES(-32769);
INSERT INTO t3 VALUES(-32770);
INSERT INTO t3 VALUES(65534);
INSERT INTO t3 VALUES(65535);
INSERT INTO t3 VALUES(65536);
INSERT INTO t3 VALUES(65537);
INSERT INTO t3 VALUES(65538);
INSERT INTO t3 VALUES(-65534);
INSERT INTO t3 VALUES(-65535);
INSERT INTO t3 VALUES(-65536);
INSERT INTO t3 VALUES(-65537);
INSERT INTO t3 VALUES(-65538);
INSERT INTO t3 VALUES(131070);
INSERT INTO t3 VALUES(131071);
INSERT INTO t3 VALUES(131072);
INSERT INTO t3 VALUES(131073);
INSERT INTO t3 VALUES(131074);
INSERT INTO t3 VALUES(-131070);
INSERT INTO t3 VALUES(-131071);
INSERT INTO t3 VALUES(-131072);
INSERT INTO t3 VALUES(-131073);
INSERT INTO t3 VALUES(-131074);
INSERT INTO t3 VALUES(262142);
INSERT INTO t3 VALUES(262143);
INSERT INTO t3 VALUES(262144);
INSERT INTO t3 VALUES(262145);
INSERT INTO t3 VALUES(262146);
INSERT INTO t3 VALUES(-262142);
INSERT INTO t3 VALUES(-262143);
INSERT INTO t3 VALUES(-262144);
INSERT INTO t3 VALUES(-262145);
INSERT INTO t3 VALUES(-262146);
INSERT INTO t3 VALUES(524286);
INSERT INTO t3 VALUES(524287);
INSERT INTO t3 VALUES(524288);
INSERT INTO t3 VALUES(524289);
INSERT INTO t3 VALUES(524290);
INSERT INTO t3 VALUES(-524286);
INSERT INTO t3 VALUES(-524287);
INSERT INTO t3 VALUES(-524288);
INSERT INTO t3 VALUES(-524289);
INSERT INTO t3 VALUES(-524290);
INSERT INTO t3 VALUES(1048574);
INSERT INTO t3 VALUES(1048575);
INSERT INTO t3 VALUES(1048576);
INSERT INTO t3 VALUES(1048577);
INSERT INTO t3 VALUES(1048578);
INSERT INTO t3 VALUES(-1048574);
INSERT INTO t3 VALUES(-1048575);
INSERT INTO t3 VALUES(-1048576);
INSERT INTO t3 VALUES(-1048577);
INSERT INTO t3 VALUES(-1048578);
INSERT INTO t3 VALUES(2097150);
INSERT INTO t3 VALUES(2097151);
INSERT INTO t3 VALUES(2097152);
INSERT INTO t3 VALUES(2097153);
INSERT INTO t3 VALUES(2097154);
INSERT INTO t3 VALUES(-2097150);
INSERT INTO t3 VALUES(-2097151);
INSERT INTO t3 VALUES(-2097152);
INSERT INTO t3 VALUES(-2097153);
INSERT INTO t3 VALUES(-2097154);
INSERT INTO t3 VALUES(4194302);
INSERT INTO t3 VALUES(4194303);
INSERT INTO t3 VALUES(4194304);
INSERT INTO t3 VALUES(4194305);
INSERT INTO t3 VALUES(4194306);
INSERT INTO t3 VALUES(-4194302);
INSERT INTO t3 VALUES(-4194303);
INSERT INTO t3 VALUES(-4194304);
INSERT INTO t3 VALUES(-4194305);
INSERT INTO t3 VALUES(-4194306);
INSERT INTO t3 VALUES(8388606);
INSERT INTO t3 VALUES(8388607);
INSERT INTO t3 VALUES(8388608);
INSERT INTO t3 VALUES(8388609);
INSERT INTO t3 VALUES(8388610);
INSERT INTO t3 VALUES(-8388606);
INSERT INTO t3 VALUES(-8388607);
INSERT INTO t3 VALUES(-8388608);
INSERT INTO t3 VALUES(-8388609);
INSERT INTO t3 VALUES(-8388610);
INSERT INTO t3 VALUES(16777214);
INSERT INTO t3 VALUES(16777215);
INSERT INTO t3 VALUES(16777216);
INSERT INTO t3 VALUES(16777217);
INSERT INTO t3 VALUES(16777218);
INSERT INTO t3 VALUES(-16777214);
INSERT INTO t3 VALUES(-16777215);
INSERT INTO t3 VALUES(-16777216);
INSERT INTO t3 VALUES(-16777217);
INSERT INTO t3 VALUES(-16777218);
INSERT INTO t3 VALUES(33554430);
INSERT INTO t3 VALUES(33554431);
INSERT INTO t3 VALUES(33554432);
INSERT INTO t3 VALUES(33554433);
INSERT INTO t3 VALUES(33554434);
INSERT INTO t3 VALUES(-33554430);
INSERT INTO t3 VALUES(-33554431);
INSERT INTO t3 VALUES(-33554432);
INSERT INTO t3 VALUES(-33554433);
INSERT INTO t3 VALUES(-33554434);
INSERT INTO t3 VALUES(67108862);
INSERT INTO t3 VALUES(67108863);
INSERT INTO t3 VALUES(67108864);
INSERT INTO t3 VALUES(67108865);
INSERT INTO t3 VALUES(67108866);
INSERT INTO t3 VALUES(-67108862);
INSERT INTO t3 VALUES(-67108863);
INSERT INTO t3 VALUES(-67108864);
INSERT INTO t3 VALUES(-67108865);
INSERT INTO t3 VALUES(-67108866);
INSERT INTO t3 VALUES(134217726);
INSERT INTO t3 VALUES(134217727);
INSERT INTO t3 VALUES(134217728);
INSERT INTO t3 VALUES(134217729);
INSERT INTO t3 VALUES(134217730);
INSERT INTO t3 VALUES(-134217726);
INSERT INTO t3 VALUES(-134217727);
INSERT INTO t3 VALUES(-134217728);
INSERT INTO t3 VALUES(-134217729);
INSERT INTO t3 VALUES(-134217730);
INSERT INTO t3 VALUES(268435454);
INSERT INTO t3 VALUES(268435455);
INSERT INTO t3 VALUES(268435456);
INSERT INTO t3 VALUES(268435457);
INSERT INTO t3 VALUES(268435458);
INSERT INTO t3 VALUES(-268435454);
INSERT INTO t3 VALUES(-268435455);
INSERT INTO t3 VALUES(-268435456);
INSERT INTO t3 VALUES(-268435457);
INSERT INTO t3 VALUES(-268435458);
INSERT INTO t3 VALUES(536870910);
INSERT INTO t3 VALUES(536870911);
INSERT INTO t3 VALUES(536870912);
INSERT INTO t3 VALUES(536870913);
INSERT INTO t3 VALUES(536870914);
INSERT INTO t3 VALUES(-536870910);
INSERT INTO t3 VALUES(-536870911);
INSERT INTO t3 VALUES(-536870912);
INSERT INTO t3 VALUES(-536870913);
INSERT INTO t3 VALUES(-536870914);
INSERT INTO t3 VALUES(1073741822);
INSERT INTO t3 VALUES(1073741823);
INSERT INTO t3 VALUES(1073741824);
INSERT INTO t3 VALUES(1073741825);
INSERT INTO t3 VALUES(1073741826);
INSERT INTO t3 VALUES(-1073741822);
INSERT INTO t3 VALUES(-1073741823);
INSERT INTO t3 VALUES(-1073741824);
INSERT INTO t3 VALUES(-1073741825);
INSERT INTO t3 VALUES(-1073741826);
INSERT INTO t3 VALUES(2147483646);
INSERT INTO t3 VALUES(2147483647);
INSERT INTO t3 VALUES(2147483648);
INSERT INTO t3 VALUES(2147483649);
INSERT INTO t3 VALUES(2147483650);
INSERT INTO t3 VALUES(-2147483646);
INSERT INTO t3 VALUES(-2147483647);
INSERT INTO t3 VALUES(-2147483648);
INSERT INTO t3 VALUES(-2147483649);
INSERT INTO t3 VALUES(-2147483650);
INSERT INTO t3 VALUES(4294967294);
INSERT INTO t3 VALUES(4294967295);
INSERT INTO t3 VALUES(4294967296);
INSERT INTO t3 VALUES(4294967297);
INSERT INTO t3 VALUES(4294967298);
INSERT INTO t3 VALUES(-4294967294);
INSERT INTO t3 VALUES(-4294967295);
INSERT INTO t3 VALUES(-4294967296);
INSERT INTO t3 VALUES(-4294967297);
INSERT INTO t3 VALUES(-4294967298);
INSERT INTO t3 VALUES(8589934590);
INSERT INTO t3 VALUES(8589934591);
INSERT INTO t3 VALUES(8589934592);
INSERT INTO t3 VALUES(8589934593);
INSERT INTO t3 VALUES(8589934594);
INSERT INTO t3 VALUES(-8589934590);
INSERT INTO t3 VALUES(-8589934591);
INSERT INTO t3 VALUES(-8589934592);
INSERT INTO t3 VALUES(-8589934593);
INSERT INTO t3 VALUES(-8589934594);
INSERT INTO t3 VALUES(17179869182);
INSERT INTO t3 VALUES(17179869183);
INSERT INTO t3 VALUES(17179869184);
INSERT INTO t3 VALUES(17179869185);
INSERT INTO t3 VALUES(17179869186);
INSERT INTO t3 VALUES(-17179869182);
INSERT INTO t3 VALUES(-17179869183);
INSERT INTO t3 VALUES(-17179869184);
INSERT INTO t3 VALUES(-17179869185);
INSERT INTO t3 VALUES(-17179869186);
INSERT INTO t3 VALUES(34359738366);
INSERT INTO t3 VALUES(34359738367);
INSERT INTO t3 VALUES(34359738368);
INSERT INTO t3 VALUES(34359738369);
INSERT INTO t3 VALUES(34359738370);
INSERT INTO t3 VALUES(-34359738366);
INSERT INTO t3 VALUES(-34359738367);
INSERT INTO t3 VALUES(-34359738368);
INSERT INTO t3 VALUES(-34359738369);
INSERT INTO t3 VALUES(-34359738370);
INSERT INTO t3 VALUES(68719476734);
INSERT INTO t3 VALUES(68719476735);
INSERT INTO t3 VALUES(68719476736);
INSERT INTO t3 VALUES(68719476737);
INSERT INTO t3 VALUES(68719476738);
INSERT INTO t3 VALUES(-68719476734);
INSERT INTO t3 VALUES(-68719476735);
INSERT INTO t3 VALUES(-68719476736);
INSERT INTO t3 VALUES(-68719476737);
INSERT INTO t3 VALUES(-68719476738);
INSERT INTO t3 VALUES(137438953470);
INSERT INTO t3 VALUES(137438953471);
INSERT INTO t3 VALUES(137438953472);
INSERT INTO t3 VALUES(137438953473);
INSERT INTO t3 VALUES(137438953474);
INSERT INTO t3 VALUES(-137438953470);
INSERT INTO t3 VALUES(-137438953471);
INSERT INTO t3 VALUES(-137438953472);
INSERT INTO t3 VALUES(-137438953473);
INSERT INTO t3 VALUES(-137438953474);
INSERT INTO t3 VALUES(274877906942);
INSERT INTO t3 VALUES(274877906943);
INSERT INTO t3 VALUES(274877906944);
INSERT INTO t3 VALUES(274877906945);
INSERT INTO t3 VALUES(274877906946);
INSERT INTO t3 VALUES(-274877906942);
INSERT INTO t3 VALUES(-274877906943);
INSERT INTO t3 VALUES(-274877906944);
INSERT INTO t3 VALUES(-274877906945);
INSERT INTO t3 VALUES(-274877906946);
INSERT INTO t3 VALUES(549755813886);
INSERT INTO t3 VALUES(549755813887);
INSERT INTO t3 VALUES(549755813888);
INSERT INTO t3 VALUES(549755813889);
INSERT INTO t3 VALUES(549755813890);
INSERT INTO t3 VALUES(-549755813886);
INSERT INTO t3 VALUES(-549755813887);
INSERT INTO t3 VALUES(-549755813888);
INSERT INTO t3 VALUES(-549755813889);
INSERT INTO t3 VALUES(-549755813890);
INSERT INTO t3 VALUES(1099511627774);
INSERT INTO t3 VALUES(1099511627775);
INSERT INTO t3 VALUES(1099511627776);
INSERT INTO t3 VALUES(1099511627777);
INSERT INTO t3 VALUES(1099511627778);
INSERT INTO t3 VALUES(-1099511627774);
INSERT INTO t3 VALUES(-1099511627775);
INSERT INTO t3 VALUES(-1099511627776);
INSERT INTO t3 VALUES(-1099511627777);
INSERT INTO t3 VALUES(-1099511627778);
INSERT INTO t3 VALUES(2199023255550);
INSERT INTO t3 VALUES(2199023255551);
INSERT INTO t3 VALUES(2199023255552);
INSERT INTO t3 VALUES(2199023255553);
INSERT INTO t3 VALUES(2199023255554);
INSERT INTO t3 VALUES(-2199023255550);
INSERT INTO t3 VALUES(-2199023255551);
INSERT INTO t3 VALUES(-2199023255552);
INSERT INTO t3 VALUES(-2199023255553);
INSERT INTO t3 VALUES(-2199023255554);
INSERT INTO t3 VALUES(4398046511102);
INSERT INTO t3 VALUES(4398046511103);
INSERT INTO t3 VALUES(4398046511104);
INSERT INTO t3 VALUES(4398046511105);
INSERT INTO t3 VALUES(4398046511106);
INSERT INTO t3 VALUES(-4398046511102);
INSERT INTO t3 VALUES(-4398046511103);
INSERT INTO t3 VALUES(-4398046511104);
INSERT INTO t3 VALUES(-4398046511105);
INSERT INTO t3 VALUES(-4398046511106);
INSERT INTO t3 VALUES(8796093022206);
INSERT INTO t3 VALUES(8796093022207);
INSERT INTO t3 VALUES(8796093022208);
INSERT INTO t3 VALUES(8796093022209);
INSERT INTO t3 VALUES(8796093022210);
INSERT INTO t3 VALUES(-8796093022206);
INSERT INTO t3 VALUES(-8796093022207);
INSERT INTO t3 VALUES(-8796093022208);
INSERT INTO t3 VALUES(-8796093022209);
INSERT INTO t3 VALUES(-8796093022210);
INSERT INTO t3 VALUES(17592186044414);
INSERT INTO t3 VALUES(17592186044415);
INSERT INTO t3 VALUES(17592186044416);
INSERT INTO t3 VALUES(17592186044417);
INSERT INTO t3 VALUES(17592186044418);
INSERT INTO t3 VALUES(-17592186044414);
INSERT INTO t3 VALUES(-17592186044415);
INSERT INTO t3 VALUES(-17592186044416);
INSERT INTO t3 VALUES(-17592186044417);
INSERT INTO t3 VALUES(-17592186044418);
INSERT INTO t3 VALUES(35184372088830);
INSERT INTO t3 VALUES(35184372088831);
INSERT INTO t3 VALUES(35184372088832);
INSERT INTO t3 VALUES(35184372088833);
INSERT INTO t3 VALUES(35184372088834);
INSERT INTO t3 VALUES(-35184372088830);
INSERT INTO t3 VALUES(-35184372088831);
INSERT INTO t3 VALUES(-35184372088832);
INSERT INTO t3 VALUES(-35184372088833);
INSERT INTO t3 VALUES(-35184372088834);
INSERT INTO t3 VALUES(70368744177662);
INSERT INTO t3 VALUES(70368744177663);
INSERT INTO t3 VALUES(70368744177664);
INSERT INTO t3 VALUES(70368744177665);
INSERT INTO t3 VALUES(70368744177666);
INSERT INTO t3 VALUES(-70368744177662);
INSERT INTO t3 VALUES(-70368744177663);
INSERT INTO t3 VALUES(-70368744177664);
INSERT INTO t3 VALUES(-70368744177665);
INSERT INTO t3 VALUES(-70368744177666);
INSERT INTO t3 VALUES(140737488355326);
INSERT INTO t3 VALUES(140737488355327);
INSERT INTO t3 VALUES(140737488355328);
INSERT INTO t3 VALUES(140737488355329);
INSERT INTO t3 VALUES(140737488355330);
INSERT INTO t3 VALUES(-140737488355326);
INSERT INTO t3 VALUES(-140737488355327);
INSERT INTO t3 VALUES(-140737488355328);
INSERT INTO t3 VALUES(-140737488355329);
INSERT INTO t3 VALUES(-140737488355330);
INSERT INTO t3 VALUES(281474976710654);
INSERT INTO t3 VALUES(281474976710655);
INSERT INTO t3 VALUES(281474976710656);
INSERT INTO t3 VALUES(281474976710657);
INSERT INTO t3 VALUES(281474976710658);
INSERT INTO t3 VALUES(-281474976710654);
INSERT INTO t3 VALUES(-281474976710655);
INSERT INTO t3 VALUES(-281474976710656);
INSERT INTO t3 VALUES(-281474976710657);
INSERT INTO t3 VALUES(-281474976710658);
INSERT INTO t3 VALUES(562949953421310);
INSERT INTO t3 VALUES(562949953421311);
INSERT INTO t3 VALUES(562949953421312);
INSERT INTO t3 VALUES(562949953421313);
INSERT INTO t3 VALUES(562949953421314);
INSERT INTO t3 VALUES(-562949953421310);
INSERT INTO t3 VALUES(-562949953421311);
INSERT INTO t3 VALUES(-562949953421312);
INSERT INTO t3 VALUES(-562949953421313);
INSERT INTO t3 VALUES(-562949953421314);
INSERT INTO t3 VALUES(1125899906842622);
INSERT INTO t3 VALUES(1125899906842623);
INSERT INTO t3 VALUES(1125899906842624);
INSERT INTO t3 VALUES(1125899906842625);
INSERT INTO t3 VALUES(1125899906842626);
INSERT INTO t3 VALUES(-1125899906842622);
INSERT INTO t3 VALUES(-1125899906842623);
INSERT INTO t3 VALUES(-1125899906842624);
INSERT INTO t3 VALUES(-1125899906842625);
INSERT INTO t3 VALUES(-1125899906842626);
INSERT INTO t3 VALUES(2251799813685246);
INSERT INTO t3 VALUES(2251799813685247);
INSERT INTO t3 VALUES(2251799813685248);
INSERT INTO t3 VALUES(2251799813685249);
INSERT INTO t3 VALUES(2251799813685250);
INSERT INTO t3 VALUES(-2251799813685246);
INSERT INTO t3 VALUES(-2251799813685247);
INSERT INTO t3 VALUES(-2251799813685248);
INSERT INTO t3 VALUES(-2251799813685249);
INSERT INTO t3 VALUES(-2251799813685250);
INSERT INTO t3 VALUES(4503599627370494);
INSERT INTO t3 VALUES(4503599627370495);
INSERT INTO t3 VALUES(4503599627370496);
INSERT INTO t3 VALUES(4503599627370497);
INSERT INTO t3 VALUES(4503599627370498);
INSERT INTO t3 VALUES(-4503599627370494);
INSERT INTO t3 VALUES(-4503599627370495);
INSERT INTO t3 VALUES(-4503599627370496);
INSERT INTO t3 VALUES(-4503599627370497);
INSERT INTO t3 VALUES(-4503599627370498);
INSERT INTO t3 VALUES(9007199254740990);
INSERT INTO t3 VALUES(9007199254740991);
INSERT INTO t3 VALUES(9007199254740992);
INSERT INTO t3 VALUES(9007199254740993);
INSERT INTO t3 VALUES(9007199254740994);
INSERT INTO t3 VALUES(-9007199254740990);
INSERT INTO t3 VALUES(-9007199254740991);
INSERT INTO t3 VALUES(-9007199254740992);
INSERT INTO t3 VALUES(-9007199254740993);
INSERT INTO t3 VALUES(-9007199254740994);
INSERT INTO t3 VALUES(18014398509481982);
INSERT INTO t3 VALUES(18014398509481983);
INSERT INTO t3 VALUES(18014398509481984);
INSERT INTO t3 VALUES(18014398509481985);
INSERT INTO t3 VALUES(18014398509481986);
INSERT INTO t3 VALUES(-18014398509481982);
INSERT INTO t3 VALUES(-18014398509481983);
INSERT INTO t3 VALUES(-18014398509481984);
INSERT INTO t3 VALUES(-18014398509481985);
INSERT INTO t3 VALUES(-18014398509481986);
INSERT INTO t3 VALUES(36028797018963966);
INSERT INTO t3 VALUES(36028797018963967);
INSERT INTO t3 VALUES(36028797018963968);
INSERT INTO t3 VALUES(36028797018963969);
INSERT INTO t3 VALUES(36028797018963970);
INSERT INTO t3 VALUES(-36028797018963966);
INSERT INTO t3 VALUES(-36028797018963967);
INSERT INTO t3 VALUES(-36028797018963968);
INSERT INTO t3 VALUES(-36028797018963969);
INSERT INTO t3 VALUES(-36028797018963970);
INSERT INTO t3 VALUES(72057594037927934);
INSERT INTO t3 VALUES(72057594037927935);
INSERT INTO t3 VALUES(72057594037927936);
INSERT INTO t3 VALUES(72057594037927937);
INSERT INTO t3 VALUES(72057594037927938);
INSERT INTO t3 VALUES(-72057594037927934);
INSERT INTO t3 VALUES(-72057594037927935);
INSERT INTO t3 VALUES(-72057594037927936);
INSERT INTO t3 VALUES(-72057594037927937);
INSERT INTO t3 VALUES(-72057594037927938);
INSERT INTO t3 VALUES(144115188075855870);
INSERT INTO t3 VALUES(144115188075855871);
INSERT INTO t3 VALUES(144115188075855872);
INSERT INTO t3 VALUES(144115188075855873);
INSERT INTO t3 VALUES(144115188075855874);
INSERT INTO t3 VALUES(-144115188075855870);
INSERT INTO t3 VALUES(-144115188075855871);
INSERT INTO t3 VALUES(-144115188075855872);
INSERT INTO t3 VALUES(-144115188075855873);
INSERT INTO t3 VALUES(-144115188075855874);
INSERT INTO t3 VALUES(288230376151711742);
INSERT INTO t3 VALUES(288230376151711743);
INSERT INTO t3 VALUES(288230376151711744);
INSERT INTO t3 VALUES(288230376151711745);
INSERT INTO t3 VALUES(288230376151711746);
INSERT INTO t3 VALUES(-288230376151711742);
INSERT INTO t3 VALUES(-288230376151711743);
INSERT INTO t3 VALUES(-288230376151711744);
INSERT INTO t3 VALUES(-288230376151711745);
INSERT INTO t3 VALUES(-288230376151711746);
INSERT INTO t3 VALUES(576460752303423486);
INSERT INTO t3 VALUES(576460752303423487);
INSERT INTO t3 VALUES(576460752303423488);
INSERT INTO t3 VALUES(576460752303423489);
INSERT INTO t3 VALUES(576460752303423490);
INSERT INTO t3 VALUES(-576460752303423486);
INSERT INTO t3 VALUES(-576460752303423487);
INSERT INTO t3 VALUES(-576460752303423488);
INSERT INTO t3 VALUES(-576460752303423489);
INSERT INTO t3 VALUES(-576460752303423490);
INSERT INTO t3 VALUES(1152921504606846974);
INSERT INTO t3 VALUES(1152921504606846975);
INSERT INTO t3 VALUES(1152921504606846976);
INSERT INTO t3 VALUES(1152921504606846977);
INSERT INTO t3 VALUES(1152921504606846978);
INSERT INTO t3 VALUES(-1152921504606846974);
INSERT INTO t3 VALUES(-1152921504606846975);
INSERT INTO t3 VALUES(-1152921504606846976);
INSERT INTO t3 VALUES(-1152921504606846977);
INSERT INTO t3 VALUES(-1152921504606846978);
INSERT INTO t3 VALUES(2305843009213693950);
INSERT INTO t3 VALUES(2305843009213693951);
INSERT INTO t3 VALUES(2305843009213693952);
INSERT INTO t3 VALUES(2305843009213693953);
INSERT INTO t3 VALUES(2305843009213693954);
INSERT INTO t3 VALUES(-2305843009213693950);
INSERT INTO t3 VALUES(-2305843009213693951);
INSERT INTO t3 VALUES(-2305843009213693952);
INSERT INTO t3 VALUES(-2305843009213693953);
INSERT INTO t3 VALUES(-2305843009213693954);
INSERT INTO t3 VALUES(4611686018427387902);
INSERT INTO t3 VALUES(4611686018427387903);
INSERT INTO t3 VALUES(4611686018427387904);
INSERT INTO t3 VALUES(4611686018427387905);
INSERT INTO t3 VALUES(4611686018427387906);
INSERT INTO t3 VALUES(-4611686018427387902);
INSERT INTO t3 VALUES(-4611686018427387903);
INSERT INTO t3 VALUES(-4611686018427387904);
INSERT INTO t3 VALUES(-4611686018427387905);
INSERT INTO t3 VALUES(-4611686018427387906);
INSERT INTO t3 VALUES(9223372036854775806);
INSERT INTO t3 VALUES(9223372036854775807);
INSERT INTO t3 VALUES(-9223372036854775806);
INSERT INTO t3 VALUES(-9223372036854775807);
INSERT INTO t3 VALUES(-9223372036854775808);
SELECT x FROM t3 ORDER BY x;
}
} {-9223372036854775808\
-9223372036854775807\
-9223372036854775806\
-4611686018427387906\
-4611686018427387905\
-4611686018427387904\
-4611686018427387903\
-4611686018427387902\
-2305843009213693954\
-2305843009213693953\
-2305843009213693952\
-2305843009213693951\
-2305843009213693950\
-1152921504606846978\
-1152921504606846977\
-1152921504606846976\
-1152921504606846975\
-1152921504606846974\
-576460752303423490\
-576460752303423489\
-576460752303423488\
-576460752303423487\
-576460752303423486\
-288230376151711746\
-288230376151711745\
-288230376151711744\
-288230376151711743\
-288230376151711742\
-144115188075855874\
-144115188075855873\
-144115188075855872\
-144115188075855871\
-144115188075855870\
-72057594037927938\
-72057594037927937\
-72057594037927936\
-72057594037927935\
-72057594037927934\
-36028797018963970\
-36028797018963969\
-36028797018963968\
-36028797018963967\
-36028797018963966\
-18014398509481986\
-18014398509481985\
-18014398509481984\
-18014398509481983\
-18014398509481982\
-9007199254740994\
-9007199254740993\
-9007199254740992\
-9007199254740991\
-9007199254740990\
-4503599627370498\
-4503599627370497\
-4503599627370496\
-4503599627370495\
-4503599627370494\
-2251799813685250\
-2251799813685249\
-2251799813685248\
-2251799813685247\
-2251799813685246\
-1125899906842626\
-1125899906842625\
-1125899906842624\
-1125899906842623\
-1125899906842622\
-562949953421314\
-562949953421313\
-562949953421312\
-562949953421311\
-562949953421310\
-281474976710658\
-281474976710657\
-281474976710656\
-281474976710655\
-281474976710654\
-140737488355330\
-140737488355329\
-140737488355328\
-140737488355327\
-140737488355326\
-70368744177666\
-70368744177665\
-70368744177664\
-70368744177663\
-70368744177662\
-35184372088834\
-35184372088833\
-35184372088832\
-35184372088831\
-35184372088830\
-17592186044418\
-17592186044417\
-17592186044416\
-17592186044415\
-17592186044414\
-8796093022210\
-8796093022209\
-8796093022208\
-8796093022207\
-8796093022206\
-4398046511106\
-4398046511105\
-4398046511104\
-4398046511103\
-4398046511102\
-2199023255554\
-2199023255553\
-2199023255552\
-2199023255551\
-2199023255550\
-1099511627778\
-1099511627777\
-1099511627776\
-1099511627775\
-1099511627774\
-549755813890\
-549755813889\
-549755813888\
-549755813887\
-549755813886\
-274877906946\
-274877906945\
-274877906944\
-274877906943\
-274877906942\
-137438953474\
-137438953473\
-137438953472\
-137438953471\
-137438953470\
-68719476738\
-68719476737\
-68719476736\
-68719476735\
-68719476734\
-34359738370\
-34359738369\
-34359738368\
-34359738367\
-34359738366\
-17179869186\
-17179869185\
-17179869184\
-17179869183\
-17179869182\
-8589934594\
-8589934593\
-8589934592\
-8589934591\
-8589934590\
-4294967298\
-4294967297\
-4294967296\
-4294967295\
-4294967294\
-2147483650\
-2147483649\
-2147483648\
-2147483647\
-2147483646\
-1073741826\
-1073741825\
-1073741824\
-1073741823\
-1073741822\
-536870914\
-536870913\
-536870912\
-536870911\
-536870910\
-268435458\
-268435457\
-268435456\
-268435455\
-268435454\
-134217730\
-134217729\
-134217728\
-134217727\
-134217726\
-67108866\
-67108865\
-67108864\
-67108863\
-67108862\
-33554434\
-33554433\
-33554432\
-33554431\
-33554430\
-16777218\
-16777217\
-16777216\
-16777215\
-16777214\
-8388610\
-8388609\
-8388608\
-8388607\
-8388606\
-4194306\
-4194305\
-4194304\
-4194303\
-4194302\
-2097154\
-2097153\
-2097152\
-2097151\
-2097150\
-1048578\
-1048577\
-1048576\
-1048575\
-1048574\
-524290\
-524289\
-524288\
-524287\
-524286\
-262146\
-262145\
-262144\
-262143\
-262142\
-131074\
-131073\
-131072\
-131071\
-131070\
-65538\
-65537\
-65536\
-65535\
-65534\
-32770\
-32769\
-32768\
-32767\
-32766\
-16386\
-16385\
-16384\
-16383\
-16382\
-8194\
-8193\
-8192\
-8191\
-8190\
-4098\
-4097\
-4096\
-4095\
-4094\
-2050\
-2049\
-2048\
-2047\
-2046\
-1026\
-1025\
-1024\
-1023\
-1022\
-514\
-513\
-512\
-511\
-510\
-258\
-257\
-256\
-255\
-254\
-130\
-129\
-128\
-127\
-126\
-66\
-65\
-64\
-63\
-62\
-34\
-33\
-32\
-31\
-30\
-18\
-17\
-16\
-15\
-14\
-13\
-12\
-11\
-10\
-9\
-8\
-7\
-6\
-5\
-4\
-3\
-2\
-1\
0\
1\
2\
3\
4\
5\
6\
7\
8\
9\
10\
11\
12\
13\
14\
15\
16\
17\
18\
30\
31\
32\
33\
34\
62\
63\
64\
65\
66\
126\
127\
128\
129\
130\
254\
255\
256\
257\
258\
510\
511\
512\
513\
514\
1022\
1023\
1024\
1025\
1026\
2046\
2047\
2048\
2049\
2050\
4094\
4095\
4096\
4097\
4098\
8190\
8191\
8192\
8193\
8194\
16382\
16383\
16384\
16385\
16386\
32766\
32767\
32768\
32769\
32770\
65534\
65535\
65536\
65537\
65538\
131070\
131071\
131072\
131073\
131074\
262142\
262143\
262144\
262145\
262146\
524286\
524287\
524288\
524289\
524290\
1048574\
1048575\
1048576\
1048577\
1048578\
2097150\
2097151\
2097152\
2097153\
2097154\
4194302\
4194303\
4194304\
4194305\
4194306\
8388606\
8388607\
8388608\
8388609\
8388610\
16777214\
16777215\
16777216\
16777217\
16777218\
33554430\
33554431\
33554432\
33554433\
33554434\
67108862\
67108863\
67108864\
67108865\
67108866\
134217726\
134217727\
134217728\
134217729\
134217730\
268435454\
268435455\
268435456\
268435457\
268435458\
536870910\
536870911\
536870912\
536870913\
536870914\
1073741822\
1073741823\
1073741824\
1073741825\
1073741826\
2147483646\
2147483647\
2147483648\
2147483649\
2147483650\
4294967294\
4294967295\
4294967296\
4294967297\
4294967298\
8589934590\
8589934591\
8589934592\
8589934593\
8589934594\
17179869182\
17179869183\
17179869184\
17179869185\
17179869186\
34359738366\
34359738367\
34359738368\
34359738369\
34359738370\
68719476734\
68719476735\
68719476736\
68719476737\
68719476738\
137438953470\
137438953471\
137438953472\
137438953473\
137438953474\
274877906942\
274877906943\
274877906944\
274877906945\
274877906946\
549755813886\
549755813887\
549755813888\
549755813889\
549755813890\
1099511627774\
1099511627775\
1099511627776\
1099511627777\
1099511627778\
2199023255550\
2199023255551\
2199023255552\
2199023255553\
2199023255554\
4398046511102\
4398046511103\
4398046511104\
4398046511105\
4398046511106\
8796093022206\
8796093022207\
8796093022208\
8796093022209\
8796093022210\
17592186044414\
17592186044415\
17592186044416\
17592186044417\
17592186044418\
35184372088830\
35184372088831\
35184372088832\
35184372088833\
35184372088834\
70368744177662\
70368744177663\
70368744177664\
70368744177665\
70368744177666\
140737488355326\
140737488355327\
140737488355328\
140737488355329\
140737488355330\
281474976710654\
281474976710655\
281474976710656\
281474976710657\
281474976710658\
562949953421310\
562949953421311\
562949953421312\
562949953421313\
562949953421314\
1125899906842622\
1125899906842623\
1125899906842624\
1125899906842625\
1125899906842626\
2251799813685246\
2251799813685247\
2251799813685248\
2251799813685249\
2251799813685250\
4503599627370494\
4503599627370495\
4503599627370496\
4503599627370497\
4503599627370498\
9007199254740990\
9007199254740991\
9007199254740992\
9007199254740993\
9007199254740994\
18014398509481982\
18014398509481983\
18014398509481984\
18014398509481985\
18014398509481986\
36028797018963966\
36028797018963967\
36028797018963968\
36028797018963969\
36028797018963970\
72057594037927934\
72057594037927935\
72057594037927936\
72057594037927937\
72057594037927938\
144115188075855870\
144115188075855871\
144115188075855872\
144115188075855873\
144115188075855874\
288230376151711742\
288230376151711743\
288230376151711744\
288230376151711745\
288230376151711746\
576460752303423486\
576460752303423487\
576460752303423488\
576460752303423489\
576460752303423490\
1152921504606846974\
1152921504606846975\
1152921504606846976\
1152921504606846977\
1152921504606846978\
2305843009213693950\
2305843009213693951\
2305843009213693952\
2305843009213693953\
2305843009213693954\
4611686018427387902\
4611686018427387903\
4611686018427387904\
4611686018427387905\
4611686018427387906\
9223372036854775806\
9223372036854775807}
finish_test