diff --git a/libffi b/libffi
index 441a013..34e186c 160000
--- a/libffi
+++ b/libffi
@@ -1 +1 @@
-Subproject commit 441a01363cb0025913a6284972cf9eb266443ebc
+Subproject commit 34e186c971ec16271b9262265950a0dfc762b143
diff --git a/test/ic3/integer.in b/test/ic3/integer.in
index 1e67283..bed12df 100644
--- a/test/ic3/integer.in
+++ b/test/ic3/integer.in
@@ -1,473 +1,1600 @@
-0x00
-0x01
-0x12
-0x123
-0x1234
-0x12345
-0x123456
-0x1234567
-0x12345678
-0x123456789
-0x123456789A
-0x123456789AB
-0x123456789ABC
-0x123456789ABCD
-0x123456789ABCDE
-0x123456789ABCDEF
-0x123456789ABCDEF0
-0x123456789ABCDEF0123456789ABCDEF0
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0
--0x00
--0x01
--0x12
--0x123
--0x1234
--0x12345
--0x123456
--0x1234567
--0x12345678
--0x123456789
--0x123456789A
--0x123456789AB
--0x123456789ABC
--0x123456789ABCD
--0x123456789ABCDE
--0x123456789ABCDEF
--0x123456789ABCDEF0
--0x123456789ABCDEF0123456789ABCDEF0
--0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0
--0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0
-0
--0
-1
--1
-2
--2
-1234567890
--1234567890
-12345678901234567890
--12345678901234567890
-123456789012345678901234567890
--123456789012345678901234567890
-1234567890123456789012345678901234567890
--1234567890123456789012345678901234567890
-12345678901234567890123456789012345678901234567890
--12345678901234567890123456789012345678901234567890
-123456789012345678901234567890123456789012345678901234567890
--123456789012345678901234567890123456789012345678901234567890
-1234567890123456789012345678901234567890123456789012345678901234567890
--1234567890123456789012345678901234567890123456789012345678901234567890
-12345678901234567890123456789012345678901234567890123456789012345678901234567890
--12345678901234567890123456789012345678901234567890123456789012345678901234567890
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
--123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
--1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
--1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
--1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
--18446744073709551616 + -18446744073709551616
--18446744073709551616 + -4294967296
--18446744073709551616 + -32769
--18446744073709551616 + -129
--18446744073709551616 + -1
--18446744073709551616 + 1
--18446744073709551616 + 256
--18446744073709551616 + 65536
--18446744073709551616 + 8589934592
--18446744073709551616 + 36893488147419103232
--4294967296 + -18446744073709551616
--4294967296 + -4294967296
--4294967296 + -32769
--4294967296 + -129
--4294967296 + -1
--4294967296 + 1
--4294967296 + 256
--4294967296 + 65536
--4294967296 + 8589934592
--4294967296 + 36893488147419103232
--32769 + -18446744073709551616
--32769 + -4294967296
--32769 + -32769
--32769 + -129
--32769 + -1
--32769 + 1
--32769 + 256
--32769 + 65536
--32769 + 8589934592
--32769 + 36893488147419103232
--129 + -18446744073709551616
--129 + -4294967296
--129 + -32769
--129 + -129
--129 + -1
--129 + 1
--129 + 256
--129 + 65536
--129 + 8589934592
--129 + 36893488147419103232
--1 + -18446744073709551616
--1 + -4294967296
--1 + -32769
--1 + -129
--1 + -1
--1 + 1
--1 + 256
--1 + 65536
--1 + 8589934592
--1 + 36893488147419103232
-1 + -18446744073709551616
-1 + -4294967296
-1 + -32769
-1 + -129
-1 + -1
-1 + 1
-1 + 256
-1 + 65536
-1 + 8589934592
-1 + 36893488147419103232
-256 + -18446744073709551616
-256 + -4294967296
-256 + -32769
-256 + -257
-256 + -1
-256 + 1
+-170141183460469231731687303715884105728 + -170141183460469231731687303715884105728
+-170141183460469231731687303715884105728 + -170141183460469231731687303715884105727
+-170141183460469231731687303715884105728 + -9223372036854775808
+-170141183460469231731687303715884105728 + -9223372036854775807
+-170141183460469231731687303715884105728 + -2147483648
+-170141183460469231731687303715884105728 + -2147483647
+-170141183460469231731687303715884105728 + -32768
+-170141183460469231731687303715884105728 + -32767
+-170141183460469231731687303715884105728 + -128
+-170141183460469231731687303715884105728 + -127
+-170141183460469231731687303715884105728 + 255
+-170141183460469231731687303715884105728 + 256
+-170141183460469231731687303715884105728 + 65535
+-170141183460469231731687303715884105728 + 65536
+-170141183460469231731687303715884105728 + 4294967295
+-170141183460469231731687303715884105728 + 4294967296
+-170141183460469231731687303715884105728 + 18446744073709551615
+-170141183460469231731687303715884105728 + 18446744073709551616
+-170141183460469231731687303715884105728 + 340282366920938463463374607431768211455
+-170141183460469231731687303715884105728 + 340282366920938463463374607431768211456
+-170141183460469231731687303715884105727 + -170141183460469231731687303715884105728
+-170141183460469231731687303715884105727 + -170141183460469231731687303715884105727
+-170141183460469231731687303715884105727 + -9223372036854775808
+-170141183460469231731687303715884105727 + -9223372036854775807
+-170141183460469231731687303715884105727 + -2147483648
+-170141183460469231731687303715884105727 + -2147483647
+-170141183460469231731687303715884105727 + -32768
+-170141183460469231731687303715884105727 + -32767
+-170141183460469231731687303715884105727 + -128
+-170141183460469231731687303715884105727 + -127
+-170141183460469231731687303715884105727 + 255
+-170141183460469231731687303715884105727 + 256
+-170141183460469231731687303715884105727 + 65535
+-170141183460469231731687303715884105727 + 65536
+-170141183460469231731687303715884105727 + 4294967295
+-170141183460469231731687303715884105727 + 4294967296
+-170141183460469231731687303715884105727 + 18446744073709551615
+-170141183460469231731687303715884105727 + 18446744073709551616
+-170141183460469231731687303715884105727 + 340282366920938463463374607431768211455
+-170141183460469231731687303715884105727 + 340282366920938463463374607431768211456
+-9223372036854775808 + -170141183460469231731687303715884105728
+-9223372036854775808 + -170141183460469231731687303715884105727
+-9223372036854775808 + -9223372036854775808
+-9223372036854775808 + -9223372036854775807
+-9223372036854775808 + -2147483648
+-9223372036854775808 + -2147483647
+-9223372036854775808 + -32768
+-9223372036854775808 + -32767
+-9223372036854775808 + -128
+-9223372036854775808 + -127
+-9223372036854775808 + 255
+-9223372036854775808 + 256
+-9223372036854775808 + 65535
+-9223372036854775808 + 65536
+-9223372036854775808 + 4294967295
+-9223372036854775808 + 4294967296
+-9223372036854775808 + 18446744073709551615
+-9223372036854775808 + 18446744073709551616
+-9223372036854775808 + 340282366920938463463374607431768211455
+-9223372036854775808 + 340282366920938463463374607431768211456
+-9223372036854775807 + -170141183460469231731687303715884105728
+-9223372036854775807 + -170141183460469231731687303715884105727
+-9223372036854775807 + -9223372036854775808
+-9223372036854775807 + -9223372036854775807
+-9223372036854775807 + -2147483648
+-9223372036854775807 + -2147483647
+-9223372036854775807 + -32768
+-9223372036854775807 + -32767
+-9223372036854775807 + -128
+-9223372036854775807 + -127
+-9223372036854775807 + 255
+-9223372036854775807 + 256
+-9223372036854775807 + 65535
+-9223372036854775807 + 65536
+-9223372036854775807 + 4294967295
+-9223372036854775807 + 4294967296
+-9223372036854775807 + 18446744073709551615
+-9223372036854775807 + 18446744073709551616
+-9223372036854775807 + 340282366920938463463374607431768211455
+-9223372036854775807 + 340282366920938463463374607431768211456
+-2147483648 + -170141183460469231731687303715884105728
+-2147483648 + -170141183460469231731687303715884105727
+-2147483648 + -9223372036854775808
+-2147483648 + -9223372036854775807
+-2147483648 + -2147483648
+-2147483648 + -2147483647
+-2147483648 + -32768
+-2147483648 + -32767
+-2147483648 + -128
+-2147483648 + -127
+-2147483648 + 255
+-2147483648 + 256
+-2147483648 + 65535
+-2147483648 + 65536
+-2147483648 + 4294967295
+-2147483648 + 4294967296
+-2147483648 + 18446744073709551615
+-2147483648 + 18446744073709551616
+-2147483648 + 340282366920938463463374607431768211455
+-2147483648 + 340282366920938463463374607431768211456
+-2147483647 + -170141183460469231731687303715884105728
+-2147483647 + -170141183460469231731687303715884105727
+-2147483647 + -9223372036854775808
+-2147483647 + -9223372036854775807
+-2147483647 + -2147483648
+-2147483647 + -2147483647
+-2147483647 + -32768
+-2147483647 + -32767
+-2147483647 + -128
+-2147483647 + -127
+-2147483647 + 255
+-2147483647 + 256
+-2147483647 + 65535
+-2147483647 + 65536
+-2147483647 + 4294967295
+-2147483647 + 4294967296
+-2147483647 + 18446744073709551615
+-2147483647 + 18446744073709551616
+-2147483647 + 340282366920938463463374607431768211455
+-2147483647 + 340282366920938463463374607431768211456
+-32768 + -170141183460469231731687303715884105728
+-32768 + -170141183460469231731687303715884105727
+-32768 + -9223372036854775808
+-32768 + -9223372036854775807
+-32768 + -2147483648
+-32768 + -2147483647
+-32768 + -32768
+-32768 + -32767
+-32768 + -128
+-32768 + -127
+-32768 + 255
+-32768 + 256
+-32768 + 65535
+-32768 + 65536
+-32768 + 4294967295
+-32768 + 4294967296
+-32768 + 18446744073709551615
+-32768 + 18446744073709551616
+-32768 + 340282366920938463463374607431768211455
+-32768 + 340282366920938463463374607431768211456
+-32767 + -170141183460469231731687303715884105728
+-32767 + -170141183460469231731687303715884105727
+-32767 + -9223372036854775808
+-32767 + -9223372036854775807
+-32767 + -2147483648
+-32767 + -2147483647
+-32767 + -32768
+-32767 + -32767
+-32767 + -128
+-32767 + -127
+-32767 + 255
+-32767 + 256
+-32767 + 65535
+-32767 + 65536
+-32767 + 4294967295
+-32767 + 4294967296
+-32767 + 18446744073709551615
+-32767 + 18446744073709551616
+-32767 + 340282366920938463463374607431768211455
+-32767 + 340282366920938463463374607431768211456
+-128 + -170141183460469231731687303715884105728
+-128 + -170141183460469231731687303715884105727
+-128 + -9223372036854775808
+-128 + -9223372036854775807
+-128 + -2147483648
+-128 + -2147483647
+-128 + -32768
+-128 + -32767
+-128 + -128
+-128 + -127
+-128 + 255
+-128 + 256
+-128 + 65535
+-128 + 65536
+-128 + 4294967295
+-128 + 4294967296
+-128 + 18446744073709551615
+-128 + 18446744073709551616
+-128 + 340282366920938463463374607431768211455
+-128 + 340282366920938463463374607431768211456
+-127 + -170141183460469231731687303715884105728
+-127 + -170141183460469231731687303715884105727
+-127 + -9223372036854775808
+-127 + -9223372036854775807
+-127 + -2147483648
+-127 + -2147483647
+-127 + -32768
+-127 + -32767
+-127 + -128
+-127 + -127
+-127 + 255
+-127 + 256
+-127 + 65535
+-127 + 65536
+-127 + 4294967295
+-127 + 4294967296
+-127 + 18446744073709551615
+-127 + 18446744073709551616
+-127 + 340282366920938463463374607431768211455
+-127 + 340282366920938463463374607431768211456
+255 + -170141183460469231731687303715884105728
+255 + -170141183460469231731687303715884105727
+255 + -9223372036854775808
+255 + -9223372036854775807
+255 + -2147483648
+255 + -2147483647
+255 + -32768
+255 + -32767
+255 + -128
+255 + -127
+255 + 255
+255 + 256
+255 + 65535
+255 + 65536
+255 + 4294967295
+255 + 4294967296
+255 + 18446744073709551615
+255 + 18446744073709551616
+255 + 340282366920938463463374607431768211455
+255 + 340282366920938463463374607431768211456
+256 + -170141183460469231731687303715884105728
+256 + -170141183460469231731687303715884105727
+256 + -9223372036854775808
+256 + -9223372036854775807
+256 + -2147483648
+256 + -2147483647
+256 + -32768
+256 + -32767
+256 + -128
+256 + -127
+256 + 255
256 + 256
+256 + 65535
256 + 65536
-256 + 8589934592
-256 + 36893488147419103232
-65536 + -18446744073709551616
-65536 + -4294967296
-65536 + -32769
-65536 + -129
-65536 + -1
-65536 + 1
+256 + 4294967295
+256 + 4294967296
+256 + 18446744073709551615
+256 + 18446744073709551616
+256 + 340282366920938463463374607431768211455
+256 + 340282366920938463463374607431768211456
+65535 + -170141183460469231731687303715884105728
+65535 + -170141183460469231731687303715884105727
+65535 + -9223372036854775808
+65535 + -9223372036854775807
+65535 + -2147483648
+65535 + -2147483647
+65535 + -32768
+65535 + -32767
+65535 + -128
+65535 + -127
+65535 + 255
+65535 + 256
+65535 + 65535
+65535 + 65536
+65535 + 4294967295
+65535 + 4294967296
+65535 + 18446744073709551615
+65535 + 18446744073709551616
+65535 + 340282366920938463463374607431768211455
+65535 + 340282366920938463463374607431768211456
+65536 + -170141183460469231731687303715884105728
+65536 + -170141183460469231731687303715884105727
+65536 + -9223372036854775808
+65536 + -9223372036854775807
+65536 + -2147483648
+65536 + -2147483647
+65536 + -32768
+65536 + -32767
+65536 + -128
+65536 + -127
+65536 + 255
65536 + 256
+65536 + 65535
65536 + 65536
-65536 + 8589934592
-65536 + 36893488147419103232
-8589934592 + -18446744073709551616
-8589934592 + -4294967296
-8589934592 + -32769
-8589934592 + -129
-8589934592 + -1
-8589934592 + 1
-8589934592 + 256
-8589934592 + 65536
-8589934592 + 8589934592
-8589934592 + 36893488147419103232
-36893488147419103232 + -18446744073709551616
-36893488147419103232 + -4294967296
-36893488147419103232 + -32769
-36893488147419103232 + -129
-36893488147419103232 + -1
-36893488147419103232 + 1
-36893488147419103232 + 256
-36893488147419103232 + 65536
-36893488147419103232 + 8589934592
-36893488147419103232 + 36893488147419103232
--18446744073709551616 - -18446744073709551616
--18446744073709551616 - -4294967296
--18446744073709551616 - -32769
--18446744073709551616 - -129
--18446744073709551616 - -1
--18446744073709551616 - 1
--18446744073709551616 - 256
--18446744073709551616 - 65536
--18446744073709551616 - 8589934592
--18446744073709551616 - 36893488147419103232
--4294967296 - -18446744073709551616
--4294967296 - -4294967296
--4294967296 - -32769
--4294967296 - -129
--4294967296 - -1
--4294967296 - 1
--4294967296 - 256
--4294967296 - 65536
--4294967296 - 8589934592
--4294967296 - 36893488147419103232
--32769 - -18446744073709551616
--32769 - -4294967296
--32769 - -32769
--32769 - -129
--32769 - -1
--32769 - 1
--32769 - 256
--32769 - 65536
--32769 - 8589934592
--32769 - 36893488147419103232
--129 - -18446744073709551616
--129 - -4294967296
--129 - -32769
--129 - -129
--129 - -1
--129 - 1
--129 - 256
--129 - 65536
--129 - 8589934592
--129 - 36893488147419103232
--1 - -18446744073709551616
--1 - -4294967296
--1 - -32769
--1 - -129
--1 - -1
--1 - 1
--1 - 256
--1 - 65536
--1 - 8589934592
--1 - 36893488147419103232
-1 - -18446744073709551616
-1 - -4294967296
-1 - -32769
-1 - -129
-1 - -1
-1 - 1
-1 - 256
-1 - 65536
-1 - 8589934592
-1 - 36893488147419103232
-256 - -18446744073709551616
-256 - -4294967296
-256 - -32769
-256 - -257
-256 - -1
-256 - 1
+65536 + 4294967295
+65536 + 4294967296
+65536 + 18446744073709551615
+65536 + 18446744073709551616
+65536 + 340282366920938463463374607431768211455
+65536 + 340282366920938463463374607431768211456
+4294967295 + -170141183460469231731687303715884105728
+4294967295 + -170141183460469231731687303715884105727
+4294967295 + -9223372036854775808
+4294967295 + -9223372036854775807
+4294967295 + -2147483648
+4294967295 + -2147483647
+4294967295 + -32768
+4294967295 + -32767
+4294967295 + -128
+4294967295 + -127
+4294967295 + 255
+4294967295 + 256
+4294967295 + 65535
+4294967295 + 65536
+4294967295 + 4294967295
+4294967295 + 4294967296
+4294967295 + 18446744073709551615
+4294967295 + 18446744073709551616
+4294967295 + 340282366920938463463374607431768211455
+4294967295 + 340282366920938463463374607431768211456
+4294967296 + -170141183460469231731687303715884105728
+4294967296 + -170141183460469231731687303715884105727
+4294967296 + -9223372036854775808
+4294967296 + -9223372036854775807
+4294967296 + -2147483648
+4294967296 + -2147483647
+4294967296 + -32768
+4294967296 + -32767
+4294967296 + -128
+4294967296 + -127
+4294967296 + 255
+4294967296 + 256
+4294967296 + 65535
+4294967296 + 65536
+4294967296 + 4294967295
+4294967296 + 4294967296
+4294967296 + 18446744073709551615
+4294967296 + 18446744073709551616
+4294967296 + 340282366920938463463374607431768211455
+4294967296 + 340282366920938463463374607431768211456
+18446744073709551615 + -170141183460469231731687303715884105728
+18446744073709551615 + -170141183460469231731687303715884105727
+18446744073709551615 + -9223372036854775808
+18446744073709551615 + -9223372036854775807
+18446744073709551615 + -2147483648
+18446744073709551615 + -2147483647
+18446744073709551615 + -32768
+18446744073709551615 + -32767
+18446744073709551615 + -128
+18446744073709551615 + -127
+18446744073709551615 + 255
+18446744073709551615 + 256
+18446744073709551615 + 65535
+18446744073709551615 + 65536
+18446744073709551615 + 4294967295
+18446744073709551615 + 4294967296
+18446744073709551615 + 18446744073709551615
+18446744073709551615 + 18446744073709551616
+18446744073709551615 + 340282366920938463463374607431768211455
+18446744073709551615 + 340282366920938463463374607431768211456
+18446744073709551616 + -170141183460469231731687303715884105728
+18446744073709551616 + -170141183460469231731687303715884105727
+18446744073709551616 + -9223372036854775808
+18446744073709551616 + -9223372036854775807
+18446744073709551616 + -2147483648
+18446744073709551616 + -2147483647
+18446744073709551616 + -32768
+18446744073709551616 + -32767
+18446744073709551616 + -128
+18446744073709551616 + -127
+18446744073709551616 + 255
+18446744073709551616 + 256
+18446744073709551616 + 65535
+18446744073709551616 + 65536
+18446744073709551616 + 4294967295
+18446744073709551616 + 4294967296
+18446744073709551616 + 18446744073709551615
+18446744073709551616 + 18446744073709551616
+18446744073709551616 + 340282366920938463463374607431768211455
+18446744073709551616 + 340282366920938463463374607431768211456
+340282366920938463463374607431768211455 + -170141183460469231731687303715884105728
+340282366920938463463374607431768211455 + -170141183460469231731687303715884105727
+340282366920938463463374607431768211455 + -9223372036854775808
+340282366920938463463374607431768211455 + -9223372036854775807
+340282366920938463463374607431768211455 + -2147483648
+340282366920938463463374607431768211455 + -2147483647
+340282366920938463463374607431768211455 + -32768
+340282366920938463463374607431768211455 + -32767
+340282366920938463463374607431768211455 + -128
+340282366920938463463374607431768211455 + -127
+340282366920938463463374607431768211455 + 255
+340282366920938463463374607431768211455 + 256
+340282366920938463463374607431768211455 + 65535
+340282366920938463463374607431768211455 + 65536
+340282366920938463463374607431768211455 + 4294967295
+340282366920938463463374607431768211455 + 4294967296
+340282366920938463463374607431768211455 + 18446744073709551615
+340282366920938463463374607431768211455 + 18446744073709551616
+340282366920938463463374607431768211455 + 340282366920938463463374607431768211455
+340282366920938463463374607431768211455 + 340282366920938463463374607431768211456
+340282366920938463463374607431768211456 + -170141183460469231731687303715884105728
+340282366920938463463374607431768211456 + -170141183460469231731687303715884105727
+340282366920938463463374607431768211456 + -9223372036854775808
+340282366920938463463374607431768211456 + -9223372036854775807
+340282366920938463463374607431768211456 + -2147483648
+340282366920938463463374607431768211456 + -2147483647
+340282366920938463463374607431768211456 + -32768
+340282366920938463463374607431768211456 + -32767
+340282366920938463463374607431768211456 + -128
+340282366920938463463374607431768211456 + -127
+340282366920938463463374607431768211456 + 255
+340282366920938463463374607431768211456 + 256
+340282366920938463463374607431768211456 + 65535
+340282366920938463463374607431768211456 + 65536
+340282366920938463463374607431768211456 + 4294967295
+340282366920938463463374607431768211456 + 4294967296
+340282366920938463463374607431768211456 + 18446744073709551615
+340282366920938463463374607431768211456 + 18446744073709551616
+340282366920938463463374607431768211456 + 340282366920938463463374607431768211455
+340282366920938463463374607431768211456 + 340282366920938463463374607431768211456
+-170141183460469231731687303715884105728 - -170141183460469231731687303715884105728
+-170141183460469231731687303715884105728 - -170141183460469231731687303715884105727
+-170141183460469231731687303715884105728 - -9223372036854775808
+-170141183460469231731687303715884105728 - -9223372036854775807
+-170141183460469231731687303715884105728 - -2147483648
+-170141183460469231731687303715884105728 - -2147483647
+-170141183460469231731687303715884105728 - -32768
+-170141183460469231731687303715884105728 - -32767
+-170141183460469231731687303715884105728 - -128
+-170141183460469231731687303715884105728 - -127
+-170141183460469231731687303715884105728 - 255
+-170141183460469231731687303715884105728 - 256
+-170141183460469231731687303715884105728 - 65535
+-170141183460469231731687303715884105728 - 65536
+-170141183460469231731687303715884105728 - 4294967295
+-170141183460469231731687303715884105728 - 4294967296
+-170141183460469231731687303715884105728 - 18446744073709551615
+-170141183460469231731687303715884105728 - 18446744073709551616
+-170141183460469231731687303715884105728 - 340282366920938463463374607431768211455
+-170141183460469231731687303715884105728 - 340282366920938463463374607431768211456
+-170141183460469231731687303715884105727 - -170141183460469231731687303715884105728
+-170141183460469231731687303715884105727 - -170141183460469231731687303715884105727
+-170141183460469231731687303715884105727 - -9223372036854775808
+-170141183460469231731687303715884105727 - -9223372036854775807
+-170141183460469231731687303715884105727 - -2147483648
+-170141183460469231731687303715884105727 - -2147483647
+-170141183460469231731687303715884105727 - -32768
+-170141183460469231731687303715884105727 - -32767
+-170141183460469231731687303715884105727 - -128
+-170141183460469231731687303715884105727 - -127
+-170141183460469231731687303715884105727 - 255
+-170141183460469231731687303715884105727 - 256
+-170141183460469231731687303715884105727 - 65535
+-170141183460469231731687303715884105727 - 65536
+-170141183460469231731687303715884105727 - 4294967295
+-170141183460469231731687303715884105727 - 4294967296
+-170141183460469231731687303715884105727 - 18446744073709551615
+-170141183460469231731687303715884105727 - 18446744073709551616
+-170141183460469231731687303715884105727 - 340282366920938463463374607431768211455
+-170141183460469231731687303715884105727 - 340282366920938463463374607431768211456
+-9223372036854775808 - -170141183460469231731687303715884105728
+-9223372036854775808 - -170141183460469231731687303715884105727
+-9223372036854775808 - -9223372036854775808
+-9223372036854775808 - -9223372036854775807
+-9223372036854775808 - -2147483648
+-9223372036854775808 - -2147483647
+-9223372036854775808 - -32768
+-9223372036854775808 - -32767
+-9223372036854775808 - -128
+-9223372036854775808 - -127
+-9223372036854775808 - 255
+-9223372036854775808 - 256
+-9223372036854775808 - 65535
+-9223372036854775808 - 65536
+-9223372036854775808 - 4294967295
+-9223372036854775808 - 4294967296
+-9223372036854775808 - 18446744073709551615
+-9223372036854775808 - 18446744073709551616
+-9223372036854775808 - 340282366920938463463374607431768211455
+-9223372036854775808 - 340282366920938463463374607431768211456
+-9223372036854775807 - -170141183460469231731687303715884105728
+-9223372036854775807 - -170141183460469231731687303715884105727
+-9223372036854775807 - -9223372036854775808
+-9223372036854775807 - -9223372036854775807
+-9223372036854775807 - -2147483648
+-9223372036854775807 - -2147483647
+-9223372036854775807 - -32768
+-9223372036854775807 - -32767
+-9223372036854775807 - -128
+-9223372036854775807 - -127
+-9223372036854775807 - 255
+-9223372036854775807 - 256
+-9223372036854775807 - 65535
+-9223372036854775807 - 65536
+-9223372036854775807 - 4294967295
+-9223372036854775807 - 4294967296
+-9223372036854775807 - 18446744073709551615
+-9223372036854775807 - 18446744073709551616
+-9223372036854775807 - 340282366920938463463374607431768211455
+-9223372036854775807 - 340282366920938463463374607431768211456
+-2147483648 - -170141183460469231731687303715884105728
+-2147483648 - -170141183460469231731687303715884105727
+-2147483648 - -9223372036854775808
+-2147483648 - -9223372036854775807
+-2147483648 - -2147483648
+-2147483648 - -2147483647
+-2147483648 - -32768
+-2147483648 - -32767
+-2147483648 - -128
+-2147483648 - -127
+-2147483648 - 255
+-2147483648 - 256
+-2147483648 - 65535
+-2147483648 - 65536
+-2147483648 - 4294967295
+-2147483648 - 4294967296
+-2147483648 - 18446744073709551615
+-2147483648 - 18446744073709551616
+-2147483648 - 340282366920938463463374607431768211455
+-2147483648 - 340282366920938463463374607431768211456
+-2147483647 - -170141183460469231731687303715884105728
+-2147483647 - -170141183460469231731687303715884105727
+-2147483647 - -9223372036854775808
+-2147483647 - -9223372036854775807
+-2147483647 - -2147483648
+-2147483647 - -2147483647
+-2147483647 - -32768
+-2147483647 - -32767
+-2147483647 - -128
+-2147483647 - -127
+-2147483647 - 255
+-2147483647 - 256
+-2147483647 - 65535
+-2147483647 - 65536
+-2147483647 - 4294967295
+-2147483647 - 4294967296
+-2147483647 - 18446744073709551615
+-2147483647 - 18446744073709551616
+-2147483647 - 340282366920938463463374607431768211455
+-2147483647 - 340282366920938463463374607431768211456
+-32768 - -170141183460469231731687303715884105728
+-32768 - -170141183460469231731687303715884105727
+-32768 - -9223372036854775808
+-32768 - -9223372036854775807
+-32768 - -2147483648
+-32768 - -2147483647
+-32768 - -32768
+-32768 - -32767
+-32768 - -128
+-32768 - -127
+-32768 - 255
+-32768 - 256
+-32768 - 65535
+-32768 - 65536
+-32768 - 4294967295
+-32768 - 4294967296
+-32768 - 18446744073709551615
+-32768 - 18446744073709551616
+-32768 - 340282366920938463463374607431768211455
+-32768 - 340282366920938463463374607431768211456
+-32767 - -170141183460469231731687303715884105728
+-32767 - -170141183460469231731687303715884105727
+-32767 - -9223372036854775808
+-32767 - -9223372036854775807
+-32767 - -2147483648
+-32767 - -2147483647
+-32767 - -32768
+-32767 - -32767
+-32767 - -128
+-32767 - -127
+-32767 - 255
+-32767 - 256
+-32767 - 65535
+-32767 - 65536
+-32767 - 4294967295
+-32767 - 4294967296
+-32767 - 18446744073709551615
+-32767 - 18446744073709551616
+-32767 - 340282366920938463463374607431768211455
+-32767 - 340282366920938463463374607431768211456
+-128 - -170141183460469231731687303715884105728
+-128 - -170141183460469231731687303715884105727
+-128 - -9223372036854775808
+-128 - -9223372036854775807
+-128 - -2147483648
+-128 - -2147483647
+-128 - -32768
+-128 - -32767
+-128 - -128
+-128 - -127
+-128 - 255
+-128 - 256
+-128 - 65535
+-128 - 65536
+-128 - 4294967295
+-128 - 4294967296
+-128 - 18446744073709551615
+-128 - 18446744073709551616
+-128 - 340282366920938463463374607431768211455
+-128 - 340282366920938463463374607431768211456
+-127 - -170141183460469231731687303715884105728
+-127 - -170141183460469231731687303715884105727
+-127 - -9223372036854775808
+-127 - -9223372036854775807
+-127 - -2147483648
+-127 - -2147483647
+-127 - -32768
+-127 - -32767
+-127 - -128
+-127 - -127
+-127 - 255
+-127 - 256
+-127 - 65535
+-127 - 65536
+-127 - 4294967295
+-127 - 4294967296
+-127 - 18446744073709551615
+-127 - 18446744073709551616
+-127 - 340282366920938463463374607431768211455
+-127 - 340282366920938463463374607431768211456
+255 - -170141183460469231731687303715884105728
+255 - -170141183460469231731687303715884105727
+255 - -9223372036854775808
+255 - -9223372036854775807
+255 - -2147483648
+255 - -2147483647
+255 - -32768
+255 - -32767
+255 - -128
+255 - -127
+255 - 255
+255 - 256
+255 - 65535
+255 - 65536
+255 - 4294967295
+255 - 4294967296
+255 - 18446744073709551615
+255 - 18446744073709551616
+255 - 340282366920938463463374607431768211455
+255 - 340282366920938463463374607431768211456
+256 - -170141183460469231731687303715884105728
+256 - -170141183460469231731687303715884105727
+256 - -9223372036854775808
+256 - -9223372036854775807
+256 - -2147483648
+256 - -2147483647
+256 - -32768
+256 - -32767
+256 - -128
+256 - -127
+256 - 255
256 - 256
+256 - 65535
256 - 65536
-256 - 8589934592
-256 - 36893488147419103232
-65536 - -18446744073709551616
-65536 - -4294967296
-65536 - -32769
-65536 - -129
-65536 - -1
-65536 - 1
+256 - 4294967295
+256 - 4294967296
+256 - 18446744073709551615
+256 - 18446744073709551616
+256 - 340282366920938463463374607431768211455
+256 - 340282366920938463463374607431768211456
+65535 - -170141183460469231731687303715884105728
+65535 - -170141183460469231731687303715884105727
+65535 - -9223372036854775808
+65535 - -9223372036854775807
+65535 - -2147483648
+65535 - -2147483647
+65535 - -32768
+65535 - -32767
+65535 - -128
+65535 - -127
+65535 - 255
+65535 - 256
+65535 - 65535
+65535 - 65536
+65535 - 4294967295
+65535 - 4294967296
+65535 - 18446744073709551615
+65535 - 18446744073709551616
+65535 - 340282366920938463463374607431768211455
+65535 - 340282366920938463463374607431768211456
+65536 - -170141183460469231731687303715884105728
+65536 - -170141183460469231731687303715884105727
+65536 - -9223372036854775808
+65536 - -9223372036854775807
+65536 - -2147483648
+65536 - -2147483647
+65536 - -32768
+65536 - -32767
+65536 - -128
+65536 - -127
+65536 - 255
65536 - 256
+65536 - 65535
65536 - 65536
-65536 - 8589934592
-65536 - 36893488147419103232
-8589934592 - -18446744073709551616
-8589934592 - -4294967296
-8589934592 - -32769
-8589934592 - -129
-8589934592 - -1
-8589934592 - 1
-8589934592 - 256
-8589934592 - 65536
-8589934592 - 8589934592
-8589934592 - 36893488147419103232
-36893488147419103232 - -18446744073709551616
-36893488147419103232 - -4294967296
-36893488147419103232 - -32769
-36893488147419103232 - -129
-36893488147419103232 - -1
-36893488147419103232 - 1
-36893488147419103232 - 256
-36893488147419103232 - 65536
-36893488147419103232 - 8589934592
-36893488147419103232 - 36893488147419103232
--18446744073709551616 * -18446744073709551616
--18446744073709551616 * -4294967296
--18446744073709551616 * -32769
--18446744073709551616 * -129
--18446744073709551616 * -1
--18446744073709551616 * 1
--18446744073709551616 * 256
--18446744073709551616 * 65536
--18446744073709551616 * 8589934592
--18446744073709551616 * 36893488147419103232
--4294967296 * -18446744073709551616
--4294967296 * -4294967296
--4294967296 * -32769
--4294967296 * -129
--4294967296 * -1
--4294967296 * 1
--4294967296 * 256
--4294967296 * 65536
--4294967296 * 8589934592
--4294967296 * 36893488147419103232
--32769 * -18446744073709551616
--32769 * -4294967296
--32769 * -32769
--32769 * -129
--32769 * -1
--32769 * 1
--32769 * 256
--32769 * 65536
--32769 * 8589934592
--32769 * 36893488147419103232
--129 * -18446744073709551616
--129 * -4294967296
--129 * -32769
--129 * -129
--129 * -1
--129 * 1
--129 * 256
--129 * 65536
--129 * 8589934592
--129 * 36893488147419103232
--1 * -18446744073709551616
--1 * -4294967296
--1 * -32769
--1 * -129
--1 * -1
--1 * 1
--1 * 256
--1 * 65536
--1 * 8589934592
--1 * 36893488147419103232
-1 * -18446744073709551616
-1 * -4294967296
-1 * -32769
-1 * -129
-1 * -1
-1 * 1
-1 * 256
-1 * 65536
-1 * 8589934592
-1 * 36893488147419103232
-256 * -18446744073709551616
-256 * -4294967296
-256 * -32769
-256 * -129
-256 * -1
-256 * 1
+65536 - 4294967295
+65536 - 4294967296
+65536 - 18446744073709551615
+65536 - 18446744073709551616
+65536 - 340282366920938463463374607431768211455
+65536 - 340282366920938463463374607431768211456
+4294967295 - -170141183460469231731687303715884105728
+4294967295 - -170141183460469231731687303715884105727
+4294967295 - -9223372036854775808
+4294967295 - -9223372036854775807
+4294967295 - -2147483648
+4294967295 - -2147483647
+4294967295 - -32768
+4294967295 - -32767
+4294967295 - -128
+4294967295 - -127
+4294967295 - 255
+4294967295 - 256
+4294967295 - 65535
+4294967295 - 65536
+4294967295 - 4294967295
+4294967295 - 4294967296
+4294967295 - 18446744073709551615
+4294967295 - 18446744073709551616
+4294967295 - 340282366920938463463374607431768211455
+4294967295 - 340282366920938463463374607431768211456
+4294967296 - -170141183460469231731687303715884105728
+4294967296 - -170141183460469231731687303715884105727
+4294967296 - -9223372036854775808
+4294967296 - -9223372036854775807
+4294967296 - -2147483648
+4294967296 - -2147483647
+4294967296 - -32768
+4294967296 - -32767
+4294967296 - -128
+4294967296 - -127
+4294967296 - 255
+4294967296 - 256
+4294967296 - 65535
+4294967296 - 65536
+4294967296 - 4294967295
+4294967296 - 4294967296
+4294967296 - 18446744073709551615
+4294967296 - 18446744073709551616
+4294967296 - 340282366920938463463374607431768211455
+4294967296 - 340282366920938463463374607431768211456
+18446744073709551615 - -170141183460469231731687303715884105728
+18446744073709551615 - -170141183460469231731687303715884105727
+18446744073709551615 - -9223372036854775808
+18446744073709551615 - -9223372036854775807
+18446744073709551615 - -2147483648
+18446744073709551615 - -2147483647
+18446744073709551615 - -32768
+18446744073709551615 - -32767
+18446744073709551615 - -128
+18446744073709551615 - -127
+18446744073709551615 - 255
+18446744073709551615 - 256
+18446744073709551615 - 65535
+18446744073709551615 - 65536
+18446744073709551615 - 4294967295
+18446744073709551615 - 4294967296
+18446744073709551615 - 18446744073709551615
+18446744073709551615 - 18446744073709551616
+18446744073709551615 - 340282366920938463463374607431768211455
+18446744073709551615 - 340282366920938463463374607431768211456
+18446744073709551616 - -170141183460469231731687303715884105728
+18446744073709551616 - -170141183460469231731687303715884105727
+18446744073709551616 - -9223372036854775808
+18446744073709551616 - -9223372036854775807
+18446744073709551616 - -2147483648
+18446744073709551616 - -2147483647
+18446744073709551616 - -32768
+18446744073709551616 - -32767
+18446744073709551616 - -128
+18446744073709551616 - -127
+18446744073709551616 - 255
+18446744073709551616 - 256
+18446744073709551616 - 65535
+18446744073709551616 - 65536
+18446744073709551616 - 4294967295
+18446744073709551616 - 4294967296
+18446744073709551616 - 18446744073709551615
+18446744073709551616 - 18446744073709551616
+18446744073709551616 - 340282366920938463463374607431768211455
+18446744073709551616 - 340282366920938463463374607431768211456
+340282366920938463463374607431768211455 - -170141183460469231731687303715884105728
+340282366920938463463374607431768211455 - -170141183460469231731687303715884105727
+340282366920938463463374607431768211455 - -9223372036854775808
+340282366920938463463374607431768211455 - -9223372036854775807
+340282366920938463463374607431768211455 - -2147483648
+340282366920938463463374607431768211455 - -2147483647
+340282366920938463463374607431768211455 - -32768
+340282366920938463463374607431768211455 - -32767
+340282366920938463463374607431768211455 - -128
+340282366920938463463374607431768211455 - -127
+340282366920938463463374607431768211455 - 255
+340282366920938463463374607431768211455 - 256
+340282366920938463463374607431768211455 - 65535
+340282366920938463463374607431768211455 - 65536
+340282366920938463463374607431768211455 - 4294967295
+340282366920938463463374607431768211455 - 4294967296
+340282366920938463463374607431768211455 - 18446744073709551615
+340282366920938463463374607431768211455 - 18446744073709551616
+340282366920938463463374607431768211455 - 340282366920938463463374607431768211455
+340282366920938463463374607431768211455 - 340282366920938463463374607431768211456
+340282366920938463463374607431768211456 - -170141183460469231731687303715884105728
+340282366920938463463374607431768211456 - -170141183460469231731687303715884105727
+340282366920938463463374607431768211456 - -9223372036854775808
+340282366920938463463374607431768211456 - -9223372036854775807
+340282366920938463463374607431768211456 - -2147483648
+340282366920938463463374607431768211456 - -2147483647
+340282366920938463463374607431768211456 - -32768
+340282366920938463463374607431768211456 - -32767
+340282366920938463463374607431768211456 - -128
+340282366920938463463374607431768211456 - -127
+340282366920938463463374607431768211456 - 255
+340282366920938463463374607431768211456 - 256
+340282366920938463463374607431768211456 - 65535
+340282366920938463463374607431768211456 - 65536
+340282366920938463463374607431768211456 - 4294967295
+340282366920938463463374607431768211456 - 4294967296
+340282366920938463463374607431768211456 - 18446744073709551615
+340282366920938463463374607431768211456 - 18446744073709551616
+340282366920938463463374607431768211456 - 340282366920938463463374607431768211455
+340282366920938463463374607431768211456 - 340282366920938463463374607431768211456
+-170141183460469231731687303715884105728 * -170141183460469231731687303715884105728
+-170141183460469231731687303715884105728 * -170141183460469231731687303715884105727
+-170141183460469231731687303715884105728 * -9223372036854775808
+-170141183460469231731687303715884105728 * -9223372036854775807
+-170141183460469231731687303715884105728 * -2147483648
+-170141183460469231731687303715884105728 * -2147483647
+-170141183460469231731687303715884105728 * -32768
+-170141183460469231731687303715884105728 * -32767
+-170141183460469231731687303715884105728 * -128
+-170141183460469231731687303715884105728 * -127
+-170141183460469231731687303715884105728 * 255
+-170141183460469231731687303715884105728 * 256
+-170141183460469231731687303715884105728 * 65535
+-170141183460469231731687303715884105728 * 65536
+-170141183460469231731687303715884105728 * 4294967295
+-170141183460469231731687303715884105728 * 4294967296
+-170141183460469231731687303715884105728 * 18446744073709551615
+-170141183460469231731687303715884105728 * 18446744073709551616
+-170141183460469231731687303715884105728 * 340282366920938463463374607431768211455
+-170141183460469231731687303715884105728 * 340282366920938463463374607431768211456
+-170141183460469231731687303715884105727 * -170141183460469231731687303715884105728
+-170141183460469231731687303715884105727 * -170141183460469231731687303715884105727
+-170141183460469231731687303715884105727 * -9223372036854775808
+-170141183460469231731687303715884105727 * -9223372036854775807
+-170141183460469231731687303715884105727 * -2147483648
+-170141183460469231731687303715884105727 * -2147483647
+-170141183460469231731687303715884105727 * -32768
+-170141183460469231731687303715884105727 * -32767
+-170141183460469231731687303715884105727 * -128
+-170141183460469231731687303715884105727 * -127
+-170141183460469231731687303715884105727 * 255
+-170141183460469231731687303715884105727 * 256
+-170141183460469231731687303715884105727 * 65535
+-170141183460469231731687303715884105727 * 65536
+-170141183460469231731687303715884105727 * 4294967295
+-170141183460469231731687303715884105727 * 4294967296
+-170141183460469231731687303715884105727 * 18446744073709551615
+-170141183460469231731687303715884105727 * 18446744073709551616
+-170141183460469231731687303715884105727 * 340282366920938463463374607431768211455
+-170141183460469231731687303715884105727 * 340282366920938463463374607431768211456
+-9223372036854775808 * -170141183460469231731687303715884105728
+-9223372036854775808 * -170141183460469231731687303715884105727
+-9223372036854775808 * -9223372036854775808
+-9223372036854775808 * -9223372036854775807
+-9223372036854775808 * -2147483648
+-9223372036854775808 * -2147483647
+-9223372036854775808 * -32768
+-9223372036854775808 * -32767
+-9223372036854775808 * -128
+-9223372036854775808 * -127
+-9223372036854775808 * 255
+-9223372036854775808 * 256
+-9223372036854775808 * 65535
+-9223372036854775808 * 65536
+-9223372036854775808 * 4294967295
+-9223372036854775808 * 4294967296
+-9223372036854775808 * 18446744073709551615
+-9223372036854775808 * 18446744073709551616
+-9223372036854775808 * 340282366920938463463374607431768211455
+-9223372036854775808 * 340282366920938463463374607431768211456
+-9223372036854775807 * -170141183460469231731687303715884105728
+-9223372036854775807 * -170141183460469231731687303715884105727
+-9223372036854775807 * -9223372036854775808
+-9223372036854775807 * -9223372036854775807
+-9223372036854775807 * -2147483648
+-9223372036854775807 * -2147483647
+-9223372036854775807 * -32768
+-9223372036854775807 * -32767
+-9223372036854775807 * -128
+-9223372036854775807 * -127
+-9223372036854775807 * 255
+-9223372036854775807 * 256
+-9223372036854775807 * 65535
+-9223372036854775807 * 65536
+-9223372036854775807 * 4294967295
+-9223372036854775807 * 4294967296
+-9223372036854775807 * 18446744073709551615
+-9223372036854775807 * 18446744073709551616
+-9223372036854775807 * 340282366920938463463374607431768211455
+-9223372036854775807 * 340282366920938463463374607431768211456
+-2147483648 * -170141183460469231731687303715884105728
+-2147483648 * -170141183460469231731687303715884105727
+-2147483648 * -9223372036854775808
+-2147483648 * -9223372036854775807
+-2147483648 * -2147483648
+-2147483648 * -2147483647
+-2147483648 * -32768
+-2147483648 * -32767
+-2147483648 * -128
+-2147483648 * -127
+-2147483648 * 255
+-2147483648 * 256
+-2147483648 * 65535
+-2147483648 * 65536
+-2147483648 * 4294967295
+-2147483648 * 4294967296
+-2147483648 * 18446744073709551615
+-2147483648 * 18446744073709551616
+-2147483648 * 340282366920938463463374607431768211455
+-2147483648 * 340282366920938463463374607431768211456
+-2147483647 * -170141183460469231731687303715884105728
+-2147483647 * -170141183460469231731687303715884105727
+-2147483647 * -9223372036854775808
+-2147483647 * -9223372036854775807
+-2147483647 * -2147483648
+-2147483647 * -2147483647
+-2147483647 * -32768
+-2147483647 * -32767
+-2147483647 * -128
+-2147483647 * -127
+-2147483647 * 255
+-2147483647 * 256
+-2147483647 * 65535
+-2147483647 * 65536
+-2147483647 * 4294967295
+-2147483647 * 4294967296
+-2147483647 * 18446744073709551615
+-2147483647 * 18446744073709551616
+-2147483647 * 340282366920938463463374607431768211455
+-2147483647 * 340282366920938463463374607431768211456
+-32768 * -170141183460469231731687303715884105728
+-32768 * -170141183460469231731687303715884105727
+-32768 * -9223372036854775808
+-32768 * -9223372036854775807
+-32768 * -2147483648
+-32768 * -2147483647
+-32768 * -32768
+-32768 * -32767
+-32768 * -128
+-32768 * -127
+-32768 * 255
+-32768 * 256
+-32768 * 65535
+-32768 * 65536
+-32768 * 4294967295
+-32768 * 4294967296
+-32768 * 18446744073709551615
+-32768 * 18446744073709551616
+-32768 * 340282366920938463463374607431768211455
+-32768 * 340282366920938463463374607431768211456
+-32767 * -170141183460469231731687303715884105728
+-32767 * -170141183460469231731687303715884105727
+-32767 * -9223372036854775808
+-32767 * -9223372036854775807
+-32767 * -2147483648
+-32767 * -2147483647
+-32767 * -32768
+-32767 * -32767
+-32767 * -128
+-32767 * -127
+-32767 * 255
+-32767 * 256
+-32767 * 65535
+-32767 * 65536
+-32767 * 4294967295
+-32767 * 4294967296
+-32767 * 18446744073709551615
+-32767 * 18446744073709551616
+-32767 * 340282366920938463463374607431768211455
+-32767 * 340282366920938463463374607431768211456
+-128 * -170141183460469231731687303715884105728
+-128 * -170141183460469231731687303715884105727
+-128 * -9223372036854775808
+-128 * -9223372036854775807
+-128 * -2147483648
+-128 * -2147483647
+-128 * -32768
+-128 * -32767
+-128 * -128
+-128 * -127
+-128 * 255
+-128 * 256
+-128 * 65535
+-128 * 65536
+-128 * 4294967295
+-128 * 4294967296
+-128 * 18446744073709551615
+-128 * 18446744073709551616
+-128 * 340282366920938463463374607431768211455
+-128 * 340282366920938463463374607431768211456
+-127 * -170141183460469231731687303715884105728
+-127 * -170141183460469231731687303715884105727
+-127 * -9223372036854775808
+-127 * -9223372036854775807
+-127 * -2147483648
+-127 * -2147483647
+-127 * -32768
+-127 * -32767
+-127 * -128
+-127 * -127
+-127 * 255
+-127 * 256
+-127 * 65535
+-127 * 65536
+-127 * 4294967295
+-127 * 4294967296
+-127 * 18446744073709551615
+-127 * 18446744073709551616
+-127 * 340282366920938463463374607431768211455
+-127 * 340282366920938463463374607431768211456
+255 * -170141183460469231731687303715884105728
+255 * -170141183460469231731687303715884105727
+255 * -9223372036854775808
+255 * -9223372036854775807
+255 * -2147483648
+255 * -2147483647
+255 * -32768
+255 * -32767
+255 * -128
+255 * -127
+255 * 255
+255 * 256
+255 * 65535
+255 * 65536
+255 * 4294967295
+255 * 4294967296
+255 * 18446744073709551615
+255 * 18446744073709551616
+255 * 340282366920938463463374607431768211455
+255 * 340282366920938463463374607431768211456
+256 * -170141183460469231731687303715884105728
+256 * -170141183460469231731687303715884105727
+256 * -9223372036854775808
+256 * -9223372036854775807
+256 * -2147483648
+256 * -2147483647
+256 * -32768
+256 * -32767
+256 * -128
+256 * -127
+256 * 255
256 * 256
+256 * 65535
256 * 65536
-256 * 8589934592
-256 * 36893488147419103232
-65536 * -18446744073709551616
-65536 * -4294967296
-65536 * -32769
-65536 * -129
-65536 * -1
-65536 * 1
+256 * 4294967295
+256 * 4294967296
+256 * 18446744073709551615
+256 * 18446744073709551616
+256 * 340282366920938463463374607431768211455
+256 * 340282366920938463463374607431768211456
+65535 * -170141183460469231731687303715884105728
+65535 * -170141183460469231731687303715884105727
+65535 * -9223372036854775808
+65535 * -9223372036854775807
+65535 * -2147483648
+65535 * -2147483647
+65535 * -32768
+65535 * -32767
+65535 * -128
+65535 * -127
+65535 * 255
+65535 * 256
+65535 * 65535
+65535 * 65536
+65535 * 4294967295
+65535 * 4294967296
+65535 * 18446744073709551615
+65535 * 18446744073709551616
+65535 * 340282366920938463463374607431768211455
+65535 * 340282366920938463463374607431768211456
+65536 * -170141183460469231731687303715884105728
+65536 * -170141183460469231731687303715884105727
+65536 * -9223372036854775808
+65536 * -9223372036854775807
+65536 * -2147483648
+65536 * -2147483647
+65536 * -32768
+65536 * -32767
+65536 * -128
+65536 * -127
+65536 * 255
65536 * 256
+65536 * 65535
65536 * 65536
-65536 * 8589934592
-65536 * 36893488147419103232
-8589934592 * -18446744073709551616
-8589934592 * -4294967296
-8589934592 * -32769
-8589934592 * -129
-8589934592 * -1
-8589934592 * 1
-8589934592 * 256
-8589934592 * 65536
-8589934592 * 8589934592
-8589934592 * 36893488147419103232
-36893488147419103232 * -18446744073709551616
-36893488147419103232 * -4294967296
-36893488147419103232 * -32769
-36893488147419103232 * -129
-36893488147419103232 * -1
-36893488147419103232 * 1
-36893488147419103232 * 256
-36893488147419103232 * 65536
-36893488147419103232 * 8589934592
-36893488147419103232 * 36893488147419103232
--18446744073709551616 / -18446744073709551616
--18446744073709551616 / -4294967296
--18446744073709551616 / -32769
--18446744073709551616 / -129
--18446744073709551616 / -1
--18446744073709551616 / 1
--18446744073709551616 / 256
--18446744073709551616 / 65536
--18446744073709551616 / 8589934592
--18446744073709551616 / 36893488147419103232
--4294967296 / -18446744073709551616
--4294967296 / -4294967296
--4294967296 / -32769
--4294967296 / -129
--4294967296 / -1
--4294967296 / 1
--4294967296 / 256
--4294967296 / 65536
--4294967296 / 8589934592
--4294967296 / 36893488147419103232
--32769 / -18446744073709551616
--32769 / -4294967296
--32769 / -32769
--32769 / -129
--32769 / -1
--32769 / 1
--32769 / 256
--32769 / 65536
--32769 / 8589934592
--32769 / 36893488147419103232
--129 / -18446744073709551616
--129 / -4294967296
--129 / -32769
--129 / -129
--129 / -1
--129 / 1
--129 / 256
--129 / 65536
--129 / 8589934592
--129 / 36893488147419103232
--1 / -18446744073709551616
--1 / -4294967296
--1 / -32769
--1 / -129
--1 / -1
--1 / 1
--1 / 256
--1 / 65536
--1 / 8589934592
--1 / 36893488147419103232
-1 / -18446744073709551616
-1 / -4294967296
-1 / -32769
-1 / -129
-1 / -1
-1 / 1
-1 / 256
-1 / 65536
-1 / 8589934592
-1 / 36893488147419103232
-256 / -18446744073709551616
-256 / -4294967296
-256 / -32769
-256 / -257
-256 / -1
-256 / 1
+65536 * 4294967295
+65536 * 4294967296
+65536 * 18446744073709551615
+65536 * 18446744073709551616
+65536 * 340282366920938463463374607431768211455
+65536 * 340282366920938463463374607431768211456
+4294967295 * -170141183460469231731687303715884105728
+4294967295 * -170141183460469231731687303715884105727
+4294967295 * -9223372036854775808
+4294967295 * -9223372036854775807
+4294967295 * -2147483648
+4294967295 * -2147483647
+4294967295 * -32768
+4294967295 * -32767
+4294967295 * -128
+4294967295 * -127
+4294967295 * 255
+4294967295 * 256
+4294967295 * 65535
+4294967295 * 65536
+4294967295 * 4294967295
+4294967295 * 4294967296
+4294967295 * 18446744073709551615
+4294967295 * 18446744073709551616
+4294967295 * 340282366920938463463374607431768211455
+4294967295 * 340282366920938463463374607431768211456
+4294967296 * -170141183460469231731687303715884105728
+4294967296 * -170141183460469231731687303715884105727
+4294967296 * -9223372036854775808
+4294967296 * -9223372036854775807
+4294967296 * -2147483648
+4294967296 * -2147483647
+4294967296 * -32768
+4294967296 * -32767
+4294967296 * -128
+4294967296 * -127
+4294967296 * 255
+4294967296 * 256
+4294967296 * 65535
+4294967296 * 65536
+4294967296 * 4294967295
+4294967296 * 4294967296
+4294967296 * 18446744073709551615
+4294967296 * 18446744073709551616
+4294967296 * 340282366920938463463374607431768211455
+4294967296 * 340282366920938463463374607431768211456
+18446744073709551615 * -170141183460469231731687303715884105728
+18446744073709551615 * -170141183460469231731687303715884105727
+18446744073709551615 * -9223372036854775808
+18446744073709551615 * -9223372036854775807
+18446744073709551615 * -2147483648
+18446744073709551615 * -2147483647
+18446744073709551615 * -32768
+18446744073709551615 * -32767
+18446744073709551615 * -128
+18446744073709551615 * -127
+18446744073709551615 * 255
+18446744073709551615 * 256
+18446744073709551615 * 65535
+18446744073709551615 * 65536
+18446744073709551615 * 4294967295
+18446744073709551615 * 4294967296
+18446744073709551615 * 18446744073709551615
+18446744073709551615 * 18446744073709551616
+18446744073709551615 * 340282366920938463463374607431768211455
+18446744073709551615 * 340282366920938463463374607431768211456
+18446744073709551616 * -170141183460469231731687303715884105728
+18446744073709551616 * -170141183460469231731687303715884105727
+18446744073709551616 * -9223372036854775808
+18446744073709551616 * -9223372036854775807
+18446744073709551616 * -2147483648
+18446744073709551616 * -2147483647
+18446744073709551616 * -32768
+18446744073709551616 * -32767
+18446744073709551616 * -128
+18446744073709551616 * -127
+18446744073709551616 * 255
+18446744073709551616 * 256
+18446744073709551616 * 65535
+18446744073709551616 * 65536
+18446744073709551616 * 4294967295
+18446744073709551616 * 4294967296
+18446744073709551616 * 18446744073709551615
+18446744073709551616 * 18446744073709551616
+18446744073709551616 * 340282366920938463463374607431768211455
+18446744073709551616 * 340282366920938463463374607431768211456
+340282366920938463463374607431768211455 * -170141183460469231731687303715884105728
+340282366920938463463374607431768211455 * -170141183460469231731687303715884105727
+340282366920938463463374607431768211455 * -9223372036854775808
+340282366920938463463374607431768211455 * -9223372036854775807
+340282366920938463463374607431768211455 * -2147483648
+340282366920938463463374607431768211455 * -2147483647
+340282366920938463463374607431768211455 * -32768
+340282366920938463463374607431768211455 * -32767
+340282366920938463463374607431768211455 * -128
+340282366920938463463374607431768211455 * -127
+340282366920938463463374607431768211455 * 255
+340282366920938463463374607431768211455 * 256
+340282366920938463463374607431768211455 * 65535
+340282366920938463463374607431768211455 * 65536
+340282366920938463463374607431768211455 * 4294967295
+340282366920938463463374607431768211455 * 4294967296
+340282366920938463463374607431768211455 * 18446744073709551615
+340282366920938463463374607431768211455 * 18446744073709551616
+340282366920938463463374607431768211455 * 340282366920938463463374607431768211455
+340282366920938463463374607431768211455 * 340282366920938463463374607431768211456
+340282366920938463463374607431768211456 * -170141183460469231731687303715884105728
+340282366920938463463374607431768211456 * -170141183460469231731687303715884105727
+340282366920938463463374607431768211456 * -9223372036854775808
+340282366920938463463374607431768211456 * -9223372036854775807
+340282366920938463463374607431768211456 * -2147483648
+340282366920938463463374607431768211456 * -2147483647
+340282366920938463463374607431768211456 * -32768
+340282366920938463463374607431768211456 * -32767
+340282366920938463463374607431768211456 * -128
+340282366920938463463374607431768211456 * -127
+340282366920938463463374607431768211456 * 255
+340282366920938463463374607431768211456 * 256
+340282366920938463463374607431768211456 * 65535
+340282366920938463463374607431768211456 * 65536
+340282366920938463463374607431768211456 * 4294967295
+340282366920938463463374607431768211456 * 4294967296
+340282366920938463463374607431768211456 * 18446744073709551615
+340282366920938463463374607431768211456 * 18446744073709551616
+340282366920938463463374607431768211456 * 340282366920938463463374607431768211455
+340282366920938463463374607431768211456 * 340282366920938463463374607431768211456
+-170141183460469231731687303715884105728 / -170141183460469231731687303715884105728
+-170141183460469231731687303715884105728 / -170141183460469231731687303715884105727
+-170141183460469231731687303715884105728 / -9223372036854775808
+-170141183460469231731687303715884105728 / -9223372036854775807
+-170141183460469231731687303715884105728 / -2147483648
+-170141183460469231731687303715884105728 / -2147483647
+-170141183460469231731687303715884105728 / -32768
+-170141183460469231731687303715884105728 / -32767
+-170141183460469231731687303715884105728 / -128
+-170141183460469231731687303715884105728 / -127
+-170141183460469231731687303715884105728 / 255
+-170141183460469231731687303715884105728 / 256
+-170141183460469231731687303715884105728 / 65535
+-170141183460469231731687303715884105728 / 65536
+-170141183460469231731687303715884105728 / 4294967295
+-170141183460469231731687303715884105728 / 4294967296
+-170141183460469231731687303715884105728 / 18446744073709551615
+-170141183460469231731687303715884105728 / 18446744073709551616
+-170141183460469231731687303715884105728 / 340282366920938463463374607431768211455
+-170141183460469231731687303715884105728 / 340282366920938463463374607431768211456
+-170141183460469231731687303715884105727 / -170141183460469231731687303715884105728
+-170141183460469231731687303715884105727 / -170141183460469231731687303715884105727
+-170141183460469231731687303715884105727 / -9223372036854775808
+-170141183460469231731687303715884105727 / -9223372036854775807
+-170141183460469231731687303715884105727 / -2147483648
+-170141183460469231731687303715884105727 / -2147483647
+-170141183460469231731687303715884105727 / -32768
+-170141183460469231731687303715884105727 / -32767
+-170141183460469231731687303715884105727 / -128
+-170141183460469231731687303715884105727 / -127
+-170141183460469231731687303715884105727 / 255
+-170141183460469231731687303715884105727 / 256
+-170141183460469231731687303715884105727 / 65535
+-170141183460469231731687303715884105727 / 65536
+-170141183460469231731687303715884105727 / 4294967295
+-170141183460469231731687303715884105727 / 4294967296
+-170141183460469231731687303715884105727 / 18446744073709551615
+-170141183460469231731687303715884105727 / 18446744073709551616
+-170141183460469231731687303715884105727 / 340282366920938463463374607431768211455
+-170141183460469231731687303715884105727 / 340282366920938463463374607431768211456
+-9223372036854775808 / -170141183460469231731687303715884105728
+-9223372036854775808 / -170141183460469231731687303715884105727
+-9223372036854775808 / -9223372036854775808
+-9223372036854775808 / -9223372036854775807
+-9223372036854775808 / -2147483648
+-9223372036854775808 / -2147483647
+-9223372036854775808 / -32768
+-9223372036854775808 / -32767
+-9223372036854775808 / -128
+-9223372036854775808 / -127
+-9223372036854775808 / 255
+-9223372036854775808 / 256
+-9223372036854775808 / 65535
+-9223372036854775808 / 65536
+-9223372036854775808 / 4294967295
+-9223372036854775808 / 4294967296
+-9223372036854775808 / 18446744073709551615
+-9223372036854775808 / 18446744073709551616
+-9223372036854775808 / 340282366920938463463374607431768211455
+-9223372036854775808 / 340282366920938463463374607431768211456
+-9223372036854775807 / -170141183460469231731687303715884105728
+-9223372036854775807 / -170141183460469231731687303715884105727
+-9223372036854775807 / -9223372036854775808
+-9223372036854775807 / -9223372036854775807
+-9223372036854775807 / -2147483648
+-9223372036854775807 / -2147483647
+-9223372036854775807 / -32768
+-9223372036854775807 / -32767
+-9223372036854775807 / -128
+-9223372036854775807 / -127
+-9223372036854775807 / 255
+-9223372036854775807 / 256
+-9223372036854775807 / 65535
+-9223372036854775807 / 65536
+-9223372036854775807 / 4294967295
+-9223372036854775807 / 4294967296
+-9223372036854775807 / 18446744073709551615
+-9223372036854775807 / 18446744073709551616
+-9223372036854775807 / 340282366920938463463374607431768211455
+-9223372036854775807 / 340282366920938463463374607431768211456
+-2147483648 / -170141183460469231731687303715884105728
+-2147483648 / -170141183460469231731687303715884105727
+-2147483648 / -9223372036854775808
+-2147483648 / -9223372036854775807
+-2147483648 / -2147483648
+-2147483648 / -2147483647
+-2147483648 / -32768
+-2147483648 / -32767
+-2147483648 / -128
+-2147483648 / -127
+-2147483648 / 255
+-2147483648 / 256
+-2147483648 / 65535
+-2147483648 / 65536
+-2147483648 / 4294967295
+-2147483648 / 4294967296
+-2147483648 / 18446744073709551615
+-2147483648 / 18446744073709551616
+-2147483648 / 340282366920938463463374607431768211455
+-2147483648 / 340282366920938463463374607431768211456
+-2147483647 / -170141183460469231731687303715884105728
+-2147483647 / -170141183460469231731687303715884105727
+-2147483647 / -9223372036854775808
+-2147483647 / -9223372036854775807
+-2147483647 / -2147483648
+-2147483647 / -2147483647
+-2147483647 / -32768
+-2147483647 / -32767
+-2147483647 / -128
+-2147483647 / -127
+-2147483647 / 255
+-2147483647 / 256
+-2147483647 / 65535
+-2147483647 / 65536
+-2147483647 / 4294967295
+-2147483647 / 4294967296
+-2147483647 / 18446744073709551615
+-2147483647 / 18446744073709551616
+-2147483647 / 340282366920938463463374607431768211455
+-2147483647 / 340282366920938463463374607431768211456
+-32768 / -170141183460469231731687303715884105728
+-32768 / -170141183460469231731687303715884105727
+-32768 / -9223372036854775808
+-32768 / -9223372036854775807
+-32768 / -2147483648
+-32768 / -2147483647
+-32768 / -32768
+-32768 / -32767
+-32768 / -128
+-32768 / -127
+-32768 / 255
+-32768 / 256
+-32768 / 65535
+-32768 / 65536
+-32768 / 4294967295
+-32768 / 4294967296
+-32768 / 18446744073709551615
+-32768 / 18446744073709551616
+-32768 / 340282366920938463463374607431768211455
+-32768 / 340282366920938463463374607431768211456
+-32767 / -170141183460469231731687303715884105728
+-32767 / -170141183460469231731687303715884105727
+-32767 / -9223372036854775808
+-32767 / -9223372036854775807
+-32767 / -2147483648
+-32767 / -2147483647
+-32767 / -32768
+-32767 / -32767
+-32767 / -128
+-32767 / -127
+-32767 / 255
+-32767 / 256
+-32767 / 65535
+-32767 / 65536
+-32767 / 4294967295
+-32767 / 4294967296
+-32767 / 18446744073709551615
+-32767 / 18446744073709551616
+-32767 / 340282366920938463463374607431768211455
+-32767 / 340282366920938463463374607431768211456
+-128 / -170141183460469231731687303715884105728
+-128 / -170141183460469231731687303715884105727
+-128 / -9223372036854775808
+-128 / -9223372036854775807
+-128 / -2147483648
+-128 / -2147483647
+-128 / -32768
+-128 / -32767
+-128 / -128
+-128 / -127
+-128 / 255
+-128 / 256
+-128 / 65535
+-128 / 65536
+-128 / 4294967295
+-128 / 4294967296
+-128 / 18446744073709551615
+-128 / 18446744073709551616
+-128 / 340282366920938463463374607431768211455
+-128 / 340282366920938463463374607431768211456
+-127 / -170141183460469231731687303715884105728
+-127 / -170141183460469231731687303715884105727
+-127 / -9223372036854775808
+-127 / -9223372036854775807
+-127 / -2147483648
+-127 / -2147483647
+-127 / -32768
+-127 / -32767
+-127 / -128
+-127 / -127
+-127 / 255
+-127 / 256
+-127 / 65535
+-127 / 65536
+-127 / 4294967295
+-127 / 4294967296
+-127 / 18446744073709551615
+-127 / 18446744073709551616
+-127 / 340282366920938463463374607431768211455
+-127 / 340282366920938463463374607431768211456
+255 / -170141183460469231731687303715884105728
+255 / -170141183460469231731687303715884105727
+255 / -9223372036854775808
+255 / -9223372036854775807
+255 / -2147483648
+255 / -2147483647
+255 / -32768
+255 / -32767
+255 / -128
+255 / -127
+255 / 255
+255 / 256
+255 / 65535
+255 / 65536
+255 / 4294967295
+255 / 4294967296
+255 / 18446744073709551615
+255 / 18446744073709551616
+255 / 340282366920938463463374607431768211455
+255 / 340282366920938463463374607431768211456
+256 / -170141183460469231731687303715884105728
+256 / -170141183460469231731687303715884105727
+256 / -9223372036854775808
+256 / -9223372036854775807
+256 / -2147483648
+256 / -2147483647
+256 / -32768
+256 / -32767
+256 / -128
+256 / -127
+256 / 255
256 / 256
+256 / 65535
256 / 65536
-256 / 8589934592
-256 / 36893488147419103232
-65536 / -18446744073709551616
-65536 / -4294967296
-65536 / -32769
-65536 / -129
-65536 / -1
-65536 / 1
+256 / 4294967295
+256 / 4294967296
+256 / 18446744073709551615
+256 / 18446744073709551616
+256 / 340282366920938463463374607431768211455
+256 / 340282366920938463463374607431768211456
+65535 / -170141183460469231731687303715884105728
+65535 / -170141183460469231731687303715884105727
+65535 / -9223372036854775808
+65535 / -9223372036854775807
+65535 / -2147483648
+65535 / -2147483647
+65535 / -32768
+65535 / -32767
+65535 / -128
+65535 / -127
+65535 / 255
+65535 / 256
+65535 / 65535
+65535 / 65536
+65535 / 4294967295
+65535 / 4294967296
+65535 / 18446744073709551615
+65535 / 18446744073709551616
+65535 / 340282366920938463463374607431768211455
+65535 / 340282366920938463463374607431768211456
+65536 / -170141183460469231731687303715884105728
+65536 / -170141183460469231731687303715884105727
+65536 / -9223372036854775808
+65536 / -9223372036854775807
+65536 / -2147483648
+65536 / -2147483647
+65536 / -32768
+65536 / -32767
+65536 / -128
+65536 / -127
+65536 / 255
65536 / 256
+65536 / 65535
65536 / 65536
-65536 / 8589934592
-65536 / 36893488147419103232
-8589934592 / -18446744073709551616
-8589934592 / -4294967296
-8589934592 / -32769
-8589934592 / -129
-8589934592 / -1
-8589934592 / 1
-8589934592 / 256
-8589934592 / 65536
-8589934592 / 8589934592
-8589934592 / 36893488147419103232
-36893488147419103232 / -18446744073709551616
-36893488147419103232 / -4294967296
-36893488147419103232 / -32769
-36893488147419103232 / -129
-36893488147419103232 / -1
-36893488147419103232 / 1
-36893488147419103232 / 256
-36893488147419103232 / 65536
-36893488147419103232 / 8589934592
-36893488147419103232 / 36893488147419103232
--127 + -1
--127 + -127
-255 + 255
+65536 / 4294967295
+65536 / 4294967296
+65536 / 18446744073709551615
+65536 / 18446744073709551616
+65536 / 340282366920938463463374607431768211455
+65536 / 340282366920938463463374607431768211456
+4294967295 / -170141183460469231731687303715884105728
+4294967295 / -170141183460469231731687303715884105727
+4294967295 / -9223372036854775808
+4294967295 / -9223372036854775807
+4294967295 / -2147483648
+4294967295 / -2147483647
+4294967295 / -32768
+4294967295 / -32767
+4294967295 / -128
+4294967295 / -127
+4294967295 / 255
+4294967295 / 256
+4294967295 / 65535
+4294967295 / 65536
+4294967295 / 4294967295
+4294967295 / 4294967296
+4294967295 / 18446744073709551615
+4294967295 / 18446744073709551616
+4294967295 / 340282366920938463463374607431768211455
+4294967295 / 340282366920938463463374607431768211456
+4294967296 / -170141183460469231731687303715884105728
+4294967296 / -170141183460469231731687303715884105727
+4294967296 / -9223372036854775808
+4294967296 / -9223372036854775807
+4294967296 / -2147483648
+4294967296 / -2147483647
+4294967296 / -32768
+4294967296 / -32767
+4294967296 / -128
+4294967296 / -127
+4294967296 / 255
+4294967296 / 256
+4294967296 / 65535
+4294967296 / 65536
+4294967296 / 4294967295
+4294967296 / 4294967296
+4294967296 / 18446744073709551615
+4294967296 / 18446744073709551616
+4294967296 / 340282366920938463463374607431768211455
+4294967296 / 340282366920938463463374607431768211456
+18446744073709551615 / -170141183460469231731687303715884105728
+18446744073709551615 / -170141183460469231731687303715884105727
+18446744073709551615 / -9223372036854775808
+18446744073709551615 / -9223372036854775807
+18446744073709551615 / -2147483648
+18446744073709551615 / -2147483647
+18446744073709551615 / -32768
+18446744073709551615 / -32767
+18446744073709551615 / -128
+18446744073709551615 / -127
+18446744073709551615 / 255
+18446744073709551615 / 256
+18446744073709551615 / 65535
+18446744073709551615 / 65536
+18446744073709551615 / 4294967295
+18446744073709551615 / 4294967296
+18446744073709551615 / 18446744073709551615
+18446744073709551615 / 18446744073709551616
+18446744073709551615 / 340282366920938463463374607431768211455
+18446744073709551615 / 340282366920938463463374607431768211456
+18446744073709551616 / -170141183460469231731687303715884105728
+18446744073709551616 / -170141183460469231731687303715884105727
+18446744073709551616 / -9223372036854775808
+18446744073709551616 / -9223372036854775807
+18446744073709551616 / -2147483648
+18446744073709551616 / -2147483647
+18446744073709551616 / -32768
+18446744073709551616 / -32767
+18446744073709551616 / -128
+18446744073709551616 / -127
+18446744073709551616 / 255
+18446744073709551616 / 256
+18446744073709551616 / 65535
+18446744073709551616 / 65536
+18446744073709551616 / 4294967295
+18446744073709551616 / 4294967296
+18446744073709551616 / 18446744073709551615
+18446744073709551616 / 18446744073709551616
+18446744073709551616 / 340282366920938463463374607431768211455
+18446744073709551616 / 340282366920938463463374607431768211456
+340282366920938463463374607431768211455 / -170141183460469231731687303715884105728
+340282366920938463463374607431768211455 / -170141183460469231731687303715884105727
+340282366920938463463374607431768211455 / -9223372036854775808
+340282366920938463463374607431768211455 / -9223372036854775807
+340282366920938463463374607431768211455 / -2147483648
+340282366920938463463374607431768211455 / -2147483647
+340282366920938463463374607431768211455 / -32768
+340282366920938463463374607431768211455 / -32767
+340282366920938463463374607431768211455 / -128
+340282366920938463463374607431768211455 / -127
+340282366920938463463374607431768211455 / 255
+340282366920938463463374607431768211455 / 256
+340282366920938463463374607431768211455 / 65535
+340282366920938463463374607431768211455 / 65536
+340282366920938463463374607431768211455 / 4294967295
+340282366920938463463374607431768211455 / 4294967296
+340282366920938463463374607431768211455 / 18446744073709551615
+340282366920938463463374607431768211455 / 18446744073709551616
+340282366920938463463374607431768211455 / 340282366920938463463374607431768211455
+340282366920938463463374607431768211455 / 340282366920938463463374607431768211456
+340282366920938463463374607431768211456 / -170141183460469231731687303715884105728
+340282366920938463463374607431768211456 / -170141183460469231731687303715884105727
+340282366920938463463374607431768211456 / -9223372036854775808
+340282366920938463463374607431768211456 / -9223372036854775807
+340282366920938463463374607431768211456 / -2147483648
+340282366920938463463374607431768211456 / -2147483647
+340282366920938463463374607431768211456 / -32768
+340282366920938463463374607431768211456 / -32767
+340282366920938463463374607431768211456 / -128
+340282366920938463463374607431768211456 / -127
+340282366920938463463374607431768211456 / 255
+340282366920938463463374607431768211456 / 256
+340282366920938463463374607431768211456 / 65535
+340282366920938463463374607431768211456 / 65536
+340282366920938463463374607431768211456 / 4294967295
+340282366920938463463374607431768211456 / 4294967296
+340282366920938463463374607431768211456 / 18446744073709551615
+340282366920938463463374607431768211456 / 18446744073709551616
+340282366920938463463374607431768211456 / 340282366920938463463374607431768211455
+340282366920938463463374607431768211456 / 340282366920938463463374607431768211456
diff --git a/test/ic3/integer.lisp b/test/ic3/integer.lisp
index f1e8686..1ecfb01 100644
--- a/test/ic3/integer.lisp
+++ b/test/ic3/integer.lisp
@@ -1,107 +1,34 @@
(in-package :cl-user)
-(with-open-file (out #P"~/integer.out"
- :direction :output
- :element-type 'character
- :if-exists :supersede)
- (dolist (op (list #'+ #'- #'* #'/))
- (format out "~A~%" (truncate (funcall op -18446744073709551616 -18446744073709551616)))
- (format out "~A~%" (truncate (funcall op -18446744073709551616 -4294967296)))
- (format out "~A~%" (truncate (funcall op -18446744073709551616 -32769)))
- (format out "~A~%" (truncate (funcall op -18446744073709551616 -129)))
- (format out "~A~%" (truncate (funcall op -18446744073709551616 -1)))
- (format out "~A~%" (truncate (funcall op -18446744073709551616 1)))
- (format out "~A~%" (truncate (funcall op -18446744073709551616 256)))
- (format out "~A~%" (truncate (funcall op -18446744073709551616 65536)))
- (format out "~A~%" (truncate (funcall op -18446744073709551616 8589934592)))
- (format out "~A~%" (truncate (funcall op -18446744073709551616 36893488147419103232)))
- (format out "~A~%" (truncate (funcall op -4294967296 -18446744073709551616)))
- (format out "~A~%" (truncate (funcall op -4294967296 -4294967296)))
- (format out "~A~%" (truncate (funcall op -4294967296 -32769)))
- (format out "~A~%" (truncate (funcall op -4294967296 -129)))
- (format out "~A~%" (truncate (funcall op -4294967296 -1)))
- (format out "~A~%" (truncate (funcall op -4294967296 1)))
- (format out "~A~%" (truncate (funcall op -4294967296 256)))
- (format out "~A~%" (truncate (funcall op -4294967296 65536)))
- (format out "~A~%" (truncate (funcall op -4294967296 8589934592)))
- (format out "~A~%" (truncate (funcall op -4294967296 36893488147419103232)))
- (format out "~A~%" (truncate (funcall op -32769 -18446744073709551616)))
- (format out "~A~%" (truncate (funcall op -32769 -4294967296)))
- (format out "~A~%" (truncate (funcall op -32769 -32769)))
- (format out "~A~%" (truncate (funcall op -32769 -129)))
- (format out "~A~%" (truncate (funcall op -32769 -1)))
- (format out "~A~%" (truncate (funcall op -32769 1)))
- (format out "~A~%" (truncate (funcall op -32769 256)))
- (format out "~A~%" (truncate (funcall op -32769 65536)))
- (format out "~A~%" (truncate (funcall op -32769 8589934592)))
- (format out "~A~%" (truncate (funcall op -32769 36893488147419103232)))
- (format out "~A~%" (truncate (funcall op -129 -18446744073709551616)))
- (format out "~A~%" (truncate (funcall op -129 -4294967296)))
- (format out "~A~%" (truncate (funcall op -129 -32769)))
- (format out "~A~%" (truncate (funcall op -129 -129)))
- (format out "~A~%" (truncate (funcall op -129 -1)))
- (format out "~A~%" (truncate (funcall op -129 1)))
- (format out "~A~%" (truncate (funcall op -129 256)))
- (format out "~A~%" (truncate (funcall op -129 65536)))
- (format out "~A~%" (truncate (funcall op -129 8589934592)))
- (format out "~A~%" (truncate (funcall op -129 36893488147419103232)))
- (format out "~A~%" (truncate (funcall op -1 -18446744073709551616)))
- (format out "~A~%" (truncate (funcall op -1 -4294967296)))
- (format out "~A~%" (truncate (funcall op -1 -32769)))
- (format out "~A~%" (truncate (funcall op -1 -129)))
- (format out "~A~%" (truncate (funcall op -1 -1)))
- (format out "~A~%" (truncate (funcall op -1 1)))
- (format out "~A~%" (truncate (funcall op -1 256)))
- (format out "~A~%" (truncate (funcall op -1 65536)))
- (format out "~A~%" (truncate (funcall op -1 8589934592)))
- (format out "~A~%" (truncate (funcall op -1 36893488147419103232)))
- (format out "~A~%" (truncate (funcall op 1 -18446744073709551616)))
- (format out "~A~%" (truncate (funcall op 1 -4294967296)))
- (format out "~A~%" (truncate (funcall op 1 -32769)))
- (format out "~A~%" (truncate (funcall op 1 -129)))
- (format out "~A~%" (truncate (funcall op 1 -1)))
- (format out "~A~%" (truncate (funcall op 1 1)))
- (format out "~A~%" (truncate (funcall op 1 256)))
- (format out "~A~%" (truncate (funcall op 1 65536)))
- (format out "~A~%" (truncate (funcall op 1 8589934592)))
- (format out "~A~%" (truncate (funcall op 1 36893488147419103232)))
- (format out "~A~%" (truncate (funcall op 256 -18446744073709551616)))
- (format out "~A~%" (truncate (funcall op 256 -4294967296)))
- (format out "~A~%" (truncate (funcall op 256 -32769)))
- (format out "~A~%" (truncate (funcall op 256 -257)))
- (format out "~A~%" (truncate (funcall op 256 -1)))
- (format out "~A~%" (truncate (funcall op 256 1)))
- (format out "~A~%" (truncate (funcall op 256 256)))
- (format out "~A~%" (truncate (funcall op 256 65536)))
- (format out "~A~%" (truncate (funcall op 256 8589934592)))
- (format out "~A~%" (truncate (funcall op 256 36893488147419103232)))
- (format out "~A~%" (truncate (funcall op 65536 -18446744073709551616)))
- (format out "~A~%" (truncate (funcall op 65536 -4294967296)))
- (format out "~A~%" (truncate (funcall op 65536 -32769)))
- (format out "~A~%" (truncate (funcall op 65536 -129)))
- (format out "~A~%" (truncate (funcall op 65536 -1)))
- (format out "~A~%" (truncate (funcall op 65536 1)))
- (format out "~A~%" (truncate (funcall op 65536 256)))
- (format out "~A~%" (truncate (funcall op 65536 65536)))
- (format out "~A~%" (truncate (funcall op 65536 8589934592)))
- (format out "~A~%" (truncate (funcall op 65536 36893488147419103232)))
- (format out "~A~%" (truncate (funcall op 8589934592 -18446744073709551616)))
- (format out "~A~%" (truncate (funcall op 8589934592 -4294967296)))
- (format out "~A~%" (truncate (funcall op 8589934592 -32769)))
- (format out "~A~%" (truncate (funcall op 8589934592 -129)))
- (format out "~A~%" (truncate (funcall op 8589934592 -1)))
- (format out "~A~%" (truncate (funcall op 8589934592 1)))
- (format out "~A~%" (truncate (funcall op 8589934592 256)))
- (format out "~A~%" (truncate (funcall op 8589934592 65536)))
- (format out "~A~%" (truncate (funcall op 8589934592 8589934592)))
- (format out "~A~%" (truncate (funcall op 8589934592 36893488147419103232)))
- (format out "~A~%" (truncate (funcall op 36893488147419103232 -18446744073709551616)))
- (format out "~A~%" (truncate (funcall op 36893488147419103232 -4294967296)))
- (format out "~A~%" (truncate (funcall op 36893488147419103232 -32769)))
- (format out "~A~%" (truncate (funcall op 36893488147419103232 -129)))
- (format out "~A~%" (truncate (funcall op 36893488147419103232 -1)))
- (format out "~A~%" (truncate (funcall op 36893488147419103232 1)))
- (format out "~A~%" (truncate (funcall op 36893488147419103232 256)))
- (format out "~A~%" (truncate (funcall op 36893488147419103232 65536)))
- (format out "~A~%" (truncate (funcall op 36893488147419103232 8589934592)))
- (format out "~A~%" (truncate (funcall op 36893488147419103232 36893488147419103232)))))
+(defparameter *ops* '(+ - * /))
+
+(defparameter *su* '(s u))
+
+(defparameter *bits* '(8 16 32 64 128))
+
+(defun do-numbers (fn)
+ (dolist (su *su*)
+ (let ((sign (if (eq su 's) -1 1)))
+ (dolist (bits (if (eq su 's) (reverse *bits*) *bits*))
+ (let ((su-bits (if (eq su 's) (1- bits) bits)))
+ (when (< sign 0)
+ (funcall fn (* sign (expt 2 su-bits))))
+ (funcall fn (* sign (1- (expt 2 su-bits))))
+ (when (> sign 0)
+ (funcall fn (* sign (expt 2 su-bits)))))))))
+
+(with-open-file (expected #P"integer.out.expected"
+ :direction :output
+ :element-type 'character
+ :if-exists :supersede)
+ (with-open-file (in #P"integer.in"
+ :direction :output
+ :element-type 'character
+ :if-exists :supersede)
+ (dolist (op *ops*)
+ (do-numbers
+ (lambda (a)
+ (do-numbers
+ (lambda (b)
+ (format expected "~A~%" (truncate (funcall op a b)))
+ (format in "~A ~A ~A~%" a op b))))))))
diff --git a/test/ic3/integer.out.expected b/test/ic3/integer.out.expected
index 17ddbdf..c14e872 100644
--- a/test/ic3/integer.out.expected
+++ b/test/ic3/integer.out.expected
@@ -1,400 +1,1344 @@
-0
-1
-18
-291
-4660
-74565
-1193046
-19088743
-305419896
-4886718345
-78187493530
-1250999896491
-20015998343868
-320255973501901
-5124095576030430
-81985529216486895
-1311768467463790320
-24197857203266734864793317670504947440
-446371678960830626287503741310750946166416432579510853360
-8234104123542484900769178205574010627627573691361805720124810878238590820080
-0
--1
--18
--291
--4660
--74565
--1193046
--19088743
--305419896
--4886718345
--78187493530
--1250999896491
--20015998343868
--320255973501901
--5124095576030430
--81985529216486895
--1311768467463790320
--24197857203266734864793317670504947440
--446371678960830626287503741310750946166416432579510853360
--8234104123542484900769178205574010627627573691361805720124810878238590820080
-0
-0
-1
--1
-2
--2
-1234567890
--1234567890
-12345678901234567890
--12345678901234567890
-123456789012345678901234567890
--123456789012345678901234567890
-1234567890123456789012345678901234567890
--1234567890123456789012345678901234567890
-12345678901234567890123456789012345678901234567890
--12345678901234567890123456789012345678901234567890
-123456789012345678901234567890123456789012345678901234567890
--123456789012345678901234567890123456789012345678901234567890
-1234567890123456789012345678901234567890123456789012345678901234567890
--1234567890123456789012345678901234567890123456789012345678901234567890
-12345678901234567890123456789012345678901234567890123456789012345678901234567890
--12345678901234567890123456789012345678901234567890123456789012345678901234567890
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
--123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
--1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
--1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
--1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
--36893488147419103232
--18446744078004518912
--18446744073709584385
--18446744073709551745
--18446744073709551617
+-340282366920938463463374607431768211456
+-340282366920938463463374607431768211455
+-170141183460469231740910675752738881536
+-170141183460469231740910675752738881535
+-170141183460469231731687303718031589376
+-170141183460469231731687303718031589375
+-170141183460469231731687303715884138496
+-170141183460469231731687303715884138495
+-170141183460469231731687303715884105856
+-170141183460469231731687303715884105855
+-170141183460469231731687303715884105473
+-170141183460469231731687303715884105472
+-170141183460469231731687303715884040193
+-170141183460469231731687303715884040192
+-170141183460469231731687303711589138433
+-170141183460469231731687303711589138432
+-170141183460469231713240559642174554113
+-170141183460469231713240559642174554112
+170141183460469231731687303715884105727
+170141183460469231731687303715884105728
+-340282366920938463463374607431768211455
+-340282366920938463463374607431768211454
+-170141183460469231740910675752738881535
+-170141183460469231740910675752738881534
+-170141183460469231731687303718031589375
+-170141183460469231731687303718031589374
+-170141183460469231731687303715884138495
+-170141183460469231731687303715884138494
+-170141183460469231731687303715884105855
+-170141183460469231731687303715884105854
+-170141183460469231731687303715884105472
+-170141183460469231731687303715884105471
+-170141183460469231731687303715884040192
+-170141183460469231731687303715884040191
+-170141183460469231731687303711589138432
+-170141183460469231731687303711589138431
+-170141183460469231713240559642174554112
+-170141183460469231713240559642174554111
+170141183460469231731687303715884105728
+170141183460469231731687303715884105729
+-170141183460469231740910675752738881536
+-170141183460469231740910675752738881535
+-18446744073709551616
-18446744073709551615
--18446744073709551360
--18446744073709486080
--18446744065119617024
-18446744073709551616
--18446744078004518912
--8589934592
--4295000065
--4294967425
--4294967297
+-9223372039002259456
+-9223372039002259455
+-9223372036854808576
+-9223372036854808575
+-9223372036854775936
+-9223372036854775935
+-9223372036854775553
+-9223372036854775552
+-9223372036854710273
+-9223372036854710272
+-9223372032559808513
+-9223372032559808512
+9223372036854775807
+9223372036854775808
+340282366920938463454151235394913435647
+340282366920938463454151235394913435648
+-170141183460469231740910675752738881535
+-170141183460469231740910675752738881534
+-18446744073709551615
+-18446744073709551614
+-9223372039002259455
+-9223372039002259454
+-9223372036854808575
+-9223372036854808574
+-9223372036854775935
+-9223372036854775934
+-9223372036854775552
+-9223372036854775551
+-9223372036854710272
+-9223372036854710271
+-9223372032559808512
+-9223372032559808511
+9223372036854775808
+9223372036854775809
+340282366920938463454151235394913435648
+340282366920938463454151235394913435649
+-170141183460469231731687303718031589376
+-170141183460469231731687303718031589375
+-9223372039002259456
+-9223372039002259455
+-4294967296
-4294967295
--4294967040
--4294901760
-4294967296
-36893488143124135936
--18446744073709584385
--4295000065
--65538
--32898
--32770
--32768
+-2147516416
+-2147516415
+-2147483776
+-2147483775
+-2147483393
+-2147483392
+-2147418113
+-2147418112
+2147483647
+2147483648
+18446744071562067967
+18446744071562067968
+340282366920938463463374607429620727807
+340282366920938463463374607429620727808
+-170141183460469231731687303718031589375
+-170141183460469231731687303718031589374
+-9223372039002259455
+-9223372039002259454
+-4294967295
+-4294967294
+-2147516415
+-2147516414
+-2147483775
+-2147483774
+-2147483392
+-2147483391
+-2147418112
+-2147418111
+2147483648
+2147483649
+18446744071562067968
+18446744071562067969
+340282366920938463463374607429620727808
+340282366920938463463374607429620727809
+-170141183460469231731687303715884138496
+-170141183460469231731687303715884138495
+-9223372036854808576
+-9223372036854808575
+-2147516416
+-2147516415
+-65536
+-65535
+-32896
+-32895
-32513
+-32512
32767
-8589901823
-36893488147419070463
--18446744073709551745
--4294967425
--32898
--258
--130
--128
+32768
+4294934527
+4294934528
+18446744073709518847
+18446744073709518848
+340282366920938463463374607431768178687
+340282366920938463463374607431768178688
+-170141183460469231731687303715884138495
+-170141183460469231731687303715884138494
+-9223372036854808575
+-9223372036854808574
+-2147516415
+-2147516414
+-65535
+-65534
+-32895
+-32894
+-32512
+-32511
+32768
+32769
+4294934528
+4294934529
+18446744073709518848
+18446744073709518849
+340282366920938463463374607431768178688
+340282366920938463463374607431768178689
+-170141183460469231731687303715884105856
+-170141183460469231731687303715884105855
+-9223372036854775936
+-9223372036854775935
+-2147483776
+-2147483775
+-32896
+-32895
+-256
+-255
127
+128
65407
-8589934463
-36893488147419103103
--18446744073709551617
--4294967297
--32770
--130
--2
-0
-255
-65535
-8589934591
-36893488147419103231
--18446744073709551615
--4294967295
--32768
--128
-0
-2
-257
-65537
-8589934593
-36893488147419103233
--18446744073709551360
--4294967040
+65408
+4294967167
+4294967168
+18446744073709551487
+18446744073709551488
+340282366920938463463374607431768211327
+340282366920938463463374607431768211328
+-170141183460469231731687303715884105855
+-170141183460469231731687303715884105854
+-9223372036854775935
+-9223372036854775934
+-2147483775
+-2147483774
+-32895
+-32894
+-255
+-254
+128
+129
+65408
+65409
+4294967168
+4294967169
+18446744073709551488
+18446744073709551489
+340282366920938463463374607431768211328
+340282366920938463463374607431768211329
+-170141183460469231731687303715884105473
+-170141183460469231731687303715884105472
+-9223372036854775553
+-9223372036854775552
+-2147483393
+-2147483392
-32513
--1
-255
-257
+-32512
+127
+128
+510
+511
+65790
+65791
+4294967550
+4294967551
+18446744073709551870
+18446744073709551871
+340282366920938463463374607431768211710
+340282366920938463463374607431768211711
+-170141183460469231731687303715884105472
+-170141183460469231731687303715884105471
+-9223372036854775552
+-9223372036854775551
+-2147483392
+-2147483391
+-32512
+-32511
+128
+129
+511
512
+65791
65792
-8589934848
-36893488147419103488
--18446744073709486080
--4294901760
+4294967551
+4294967552
+18446744073709551871
+18446744073709551872
+340282366920938463463374607431768211711
+340282366920938463463374607431768211712
+-170141183460469231731687303715884040193
+-170141183460469231731687303715884040192
+-9223372036854710273
+-9223372036854710272
+-2147418113
+-2147418112
32767
+32768
65407
-65535
-65537
+65408
+65790
+65791
+131070
+131071
+4295032830
+4295032831
+18446744073709617150
+18446744073709617151
+340282366920938463463374607431768276990
+340282366920938463463374607431768276991
+-170141183460469231731687303715884040192
+-170141183460469231731687303715884040191
+-9223372036854710272
+-9223372036854710271
+-2147418112
+-2147418111
+32768
+32769
+65408
+65409
+65791
65792
+131071
131072
-8590000128
-36893488147419168768
--18446744065119617024
-4294967296
-8589901823
-8589934463
+4295032831
+4295032832
+18446744073709617151
+18446744073709617152
+340282366920938463463374607431768276991
+340282366920938463463374607431768276992
+-170141183460469231731687303711589138433
+-170141183460469231731687303711589138432
+-9223372032559808513
+-9223372032559808512
+2147483647
+2147483648
+4294934527
+4294934528
+4294967167
+4294967168
+4294967550
+4294967551
+4295032830
+4295032831
+8589934590
8589934591
-8589934593
-8589934848
-8590000128
-17179869184
-36893488156009037824
-18446744073709551616
-36893488143124135936
-36893488147419070463
-36893488147419103103
+18446744078004518910
+18446744078004518911
+340282366920938463463374607436063178750
+340282366920938463463374607436063178751
+-170141183460469231731687303711589138432
+-170141183460469231731687303711589138431
+-9223372032559808512
+-9223372032559808511
+2147483648
+2147483649
+4294934528
+4294934529
+4294967168
+4294967169
+4294967551
+4294967552
+4295032831
+4295032832
+8589934591
+8589934592
+18446744078004518911
+18446744078004518912
+340282366920938463463374607436063178751
+340282366920938463463374607436063178752
+-170141183460469231713240559642174554113
+-170141183460469231713240559642174554112
+9223372036854775807
+9223372036854775808
+18446744071562067967
+18446744071562067968
+18446744073709518847
+18446744073709518848
+18446744073709551487
+18446744073709551488
+18446744073709551870
+18446744073709551871
+18446744073709617150
+18446744073709617151
+18446744078004518910
+18446744078004518911
+36893488147419103230
36893488147419103231
-36893488147419103233
-36893488147419103488
-36893488147419168768
-36893488156009037824
-73786976294838206464
+340282366920938463481821351505477763070
+340282366920938463481821351505477763071
+-170141183460469231713240559642174554112
+-170141183460469231713240559642174554111
+9223372036854775808
+9223372036854775809
+18446744071562067968
+18446744071562067969
+18446744073709518848
+18446744073709518849
+18446744073709551488
+18446744073709551489
+18446744073709551871
+18446744073709551872
+18446744073709617151
+18446744073709617152
+18446744078004518911
+18446744078004518912
+36893488147419103231
+36893488147419103232
+340282366920938463481821351505477763071
+340282366920938463481821351505477763072
+170141183460469231731687303715884105727
+170141183460469231731687303715884105728
+340282366920938463454151235394913435647
+340282366920938463454151235394913435648
+340282366920938463463374607429620727807
+340282366920938463463374607429620727808
+340282366920938463463374607431768178687
+340282366920938463463374607431768178688
+340282366920938463463374607431768211327
+340282366920938463463374607431768211328
+340282366920938463463374607431768211710
+340282366920938463463374607431768211711
+340282366920938463463374607431768276990
+340282366920938463463374607431768276991
+340282366920938463463374607436063178750
+340282366920938463463374607436063178751
+340282366920938463481821351505477763070
+340282366920938463481821351505477763071
+680564733841876926926749214863536422910
+680564733841876926926749214863536422911
+170141183460469231731687303715884105728
+170141183460469231731687303715884105729
+340282366920938463454151235394913435648
+340282366920938463454151235394913435649
+340282366920938463463374607429620727808
+340282366920938463463374607429620727809
+340282366920938463463374607431768178688
+340282366920938463463374607431768178689
+340282366920938463463374607431768211328
+340282366920938463463374607431768211329
+340282366920938463463374607431768211711
+340282366920938463463374607431768211712
+340282366920938463463374607431768276991
+340282366920938463463374607431768276992
+340282366920938463463374607436063178751
+340282366920938463463374607436063178752
+340282366920938463481821351505477763071
+340282366920938463481821351505477763072
+680564733841876926926749214863536422911
+680564733841876926926749214863536422912
0
--18446744069414584320
--18446744073709518847
--18446744073709551487
--18446744073709551615
--18446744073709551617
--18446744073709551872
--18446744073709617152
--18446744082299486208
--55340232221128654848
-18446744069414584320
+-1
+-170141183460469231722463931679029329920
+-170141183460469231722463931679029329921
+-170141183460469231731687303713736622080
+-170141183460469231731687303713736622081
+-170141183460469231731687303715884072960
+-170141183460469231731687303715884072961
+-170141183460469231731687303715884105600
+-170141183460469231731687303715884105601
+-170141183460469231731687303715884105983
+-170141183460469231731687303715884105984
+-170141183460469231731687303715884171263
+-170141183460469231731687303715884171264
+-170141183460469231731687303720179073023
+-170141183460469231731687303720179073024
+-170141183460469231750134047789593657343
+-170141183460469231750134047789593657344
+-510423550381407695195061911147652317183
+-510423550381407695195061911147652317184
+1
0
--4294934527
--4294967167
--4294967295
--4294967297
--4294967552
--4295032832
--12884901888
--36893488151714070528
-18446744073709518847
-4294934527
+-170141183460469231722463931679029329919
+-170141183460469231722463931679029329920
+-170141183460469231731687303713736622079
+-170141183460469231731687303713736622080
+-170141183460469231731687303715884072959
+-170141183460469231731687303715884072960
+-170141183460469231731687303715884105599
+-170141183460469231731687303715884105600
+-170141183460469231731687303715884105982
+-170141183460469231731687303715884105983
+-170141183460469231731687303715884171262
+-170141183460469231731687303715884171263
+-170141183460469231731687303720179073022
+-170141183460469231731687303720179073023
+-170141183460469231750134047789593657342
+-170141183460469231750134047789593657343
+-510423550381407695195061911147652317182
+-510423550381407695195061911147652317183
+170141183460469231722463931679029329920
+170141183460469231722463931679029329919
+0
+-1
+-9223372034707292160
+-9223372034707292161
+-9223372036854743040
+-9223372036854743041
+-9223372036854775680
+-9223372036854775681
+-9223372036854776063
+-9223372036854776064
+-9223372036854841343
+-9223372036854841344
+-9223372041149743103
+-9223372041149743104
+-27670116110564327423
+-27670116110564327424
+-340282366920938463472597979468622987263
+-340282366920938463472597979468622987264
+170141183460469231722463931679029329921
+170141183460469231722463931679029329920
+1
+0
+-9223372034707292159
+-9223372034707292160
+-9223372036854743039
+-9223372036854743040
+-9223372036854775679
+-9223372036854775680
+-9223372036854776062
+-9223372036854776063
+-9223372036854841342
+-9223372036854841343
+-9223372041149743102
+-9223372041149743103
+-27670116110564327422
+-27670116110564327423
+-340282366920938463472597979468622987262
+-340282366920938463472597979468622987263
+170141183460469231731687303713736622080
+170141183460469231731687303713736622079
+9223372034707292160
+9223372034707292159
0
+-1
+-2147450880
+-2147450881
+-2147483520
+-2147483521
+-2147483903
+-2147483904
+-2147549183
+-2147549184
+-6442450943
+-6442450944
+-18446744075857035263
+-18446744075857035264
+-340282366920938463463374607433915695103
+-340282366920938463463374607433915695104
+170141183460469231731687303713736622081
+170141183460469231731687303713736622080
+9223372034707292161
+9223372034707292160
+1
+0
+-2147450879
+-2147450880
+-2147483519
+-2147483520
+-2147483902
+-2147483903
+-2147549182
+-2147549183
+-6442450942
+-6442450943
+-18446744075857035262
+-18446744075857035263
+-340282366920938463463374607433915695102
+-340282366920938463463374607433915695103
+170141183460469231731687303715884072960
+170141183460469231731687303715884072959
+9223372036854743040
+9223372036854743039
+2147450880
+2147450879
+0
+-1
-32640
--32768
--32770
--33025
--98305
--8589967361
--36893488147419136001
-18446744073709551487
-4294967167
+-32641
+-33023
+-33024
+-98303
+-98304
+-4295000063
+-4295000064
+-18446744073709584383
+-18446744073709584384
+-340282366920938463463374607431768244223
+-340282366920938463463374607431768244224
+170141183460469231731687303715884072961
+170141183460469231731687303715884072960
+9223372036854743041
+9223372036854743040
+2147450881
+2147450880
+1
+0
+-32639
+-32640
+-33022
+-33023
+-98302
+-98303
+-4295000062
+-4295000063
+-18446744073709584382
+-18446744073709584383
+-340282366920938463463374607431768244222
+-340282366920938463463374607431768244223
+170141183460469231731687303715884105600
+170141183460469231731687303715884105599
+9223372036854775680
+9223372036854775679
+2147483520
+2147483519
32640
+32639
0
--128
--130
--385
--65665
--8589934721
--36893488147419103361
-18446744073709551615
-4294967295
-32768
-128
+-1
+-383
+-384
+-65663
+-65664
+-4294967423
+-4294967424
+-18446744073709551743
+-18446744073709551744
+-340282366920938463463374607431768211583
+-340282366920938463463374607431768211584
+170141183460469231731687303715884105601
+170141183460469231731687303715884105600
+9223372036854775681
+9223372036854775680
+2147483521
+2147483520
+32641
+32640
+1
0
--2
--257
--65537
--8589934593
--36893488147419103233
-18446744073709551617
-4294967297
-32770
-130
-2
+-382
+-383
+-65662
+-65663
+-4294967422
+-4294967423
+-18446744073709551742
+-18446744073709551743
+-340282366920938463463374607431768211582
+-340282366920938463463374607431768211583
+170141183460469231731687303715884105983
+170141183460469231731687303715884105982
+9223372036854776063
+9223372036854776062
+2147483903
+2147483902
+33023
+33022
+383
+382
0
--255
--65535
--8589934591
--36893488147419103231
-18446744073709551872
-4294967552
-33025
-513
-257
-255
+-1
+-65280
+-65281
+-4294967040
+-4294967041
+-18446744073709551360
+-18446744073709551361
+-340282366920938463463374607431768211200
+-340282366920938463463374607431768211201
+170141183460469231731687303715884105984
+170141183460469231731687303715884105983
+9223372036854776064
+9223372036854776063
+2147483904
+2147483903
+33024
+33023
+384
+383
+1
0
+-65279
-65280
--8589934336
--36893488147419102976
-18446744073709617152
-4295032832
-98305
-65665
-65537
-65535
+-4294967039
+-4294967040
+-18446744073709551359
+-18446744073709551360
+-340282366920938463463374607431768211199
+-340282366920938463463374607431768211200
+170141183460469231731687303715884171263
+170141183460469231731687303715884171262
+9223372036854841343
+9223372036854841342
+2147549183
+2147549182
+98303
+98302
+65663
+65662
65280
+65279
0
--8589869056
--36893488147419037696
-18446744082299486208
-12884901888
-8589967361
-8589934721
-8589934593
-8589934591
-8589934336
-8589869056
-0
--36893488138829168640
-55340232221128654848
-36893488151714070528
-36893488147419136001
-36893488147419103361
-36893488147419103233
-36893488147419103231
-36893488147419102976
-36893488147419037696
-36893488138829168640
+-1
+-4294901760
+-4294901761
+-18446744073709486080
+-18446744073709486081
+-340282366920938463463374607431768145920
+-340282366920938463463374607431768145921
+170141183460469231731687303715884171264
+170141183460469231731687303715884171263
+9223372036854841344
+9223372036854841343
+2147549184
+2147549183
+98304
+98303
+65664
+65663
+65281
+65280
+1
0
-340282366920938463463374607431768211456
-79228162514264337593543950336
-604481356551388296904704
-2379629985508532158464
-18446744073709551616
--18446744073709551616
--4722366482869645213696
--1208925819614629174706176
--158456325028528675187087900672
--680564733841876926926749214863536422912
-79228162514264337593543950336
-18446744073709551616
-140741783322624
-554050781184
-4294967296
--4294967296
--1099511627776
--281474976710656
--36893488147419103232
--158456325028528675187087900672
-604481356551388296904704
-140741783322624
-1073807361
-4227201
-32769
--32769
--8388864
--2147549184
--281483566645248
--1208962713102776593809408
-2379629985508532158464
-554050781184
-4227201
-16641
-129
--129
--33024
--8454144
--1108101562368
--4759259971017064316928
-18446744073709551616
-4294967296
-32769
-129
+-4294901759
+-4294901760
+-18446744073709486079
+-18446744073709486080
+-340282366920938463463374607431768145919
+-340282366920938463463374607431768145920
+170141183460469231731687303720179073023
+170141183460469231731687303720179073022
+9223372041149743103
+9223372041149743102
+6442450943
+6442450942
+4295000063
+4295000062
+4294967423
+4294967422
+4294967040
+4294967039
+4294901760
+4294901759
+0
+-1
+-18446744069414584320
+-18446744069414584321
+-340282366920938463463374607427473244160
+-340282366920938463463374607427473244161
+170141183460469231731687303720179073024
+170141183460469231731687303720179073023
+9223372041149743104
+9223372041149743103
+6442450944
+6442450943
+4295000064
+4295000063
+4294967424
+4294967423
+4294967041
+4294967040
+4294901761
+4294901760
1
+0
+-18446744069414584319
+-18446744069414584320
+-340282366920938463463374607427473244159
+-340282366920938463463374607427473244160
+170141183460469231750134047789593657343
+170141183460469231750134047789593657342
+27670116110564327423
+27670116110564327422
+18446744075857035263
+18446744075857035262
+18446744073709584383
+18446744073709584382
+18446744073709551743
+18446744073709551742
+18446744073709551360
+18446744073709551359
+18446744073709486080
+18446744073709486079
+18446744069414584320
+18446744069414584319
+0
-1
--256
--65536
--8589934592
--36893488147419103232
--18446744073709551616
--4294967296
--32769
--129
+-340282366920938463444927863358058659840
+-340282366920938463444927863358058659841
+170141183460469231750134047789593657344
+170141183460469231750134047789593657343
+27670116110564327424
+27670116110564327423
+18446744075857035264
+18446744075857035263
+18446744073709584384
+18446744073709584383
+18446744073709551744
+18446744073709551743
+18446744073709551361
+18446744073709551360
+18446744073709486081
+18446744073709486080
+18446744069414584321
+18446744069414584320
+1
+0
+-340282366920938463444927863358058659839
+-340282366920938463444927863358058659840
+510423550381407695195061911147652317183
+510423550381407695195061911147652317182
+340282366920938463472597979468622987263
+340282366920938463472597979468622987262
+340282366920938463463374607433915695103
+340282366920938463463374607433915695102
+340282366920938463463374607431768244223
+340282366920938463463374607431768244222
+340282366920938463463374607431768211583
+340282366920938463463374607431768211582
+340282366920938463463374607431768211200
+340282366920938463463374607431768211199
+340282366920938463463374607431768145920
+340282366920938463463374607431768145919
+340282366920938463463374607427473244160
+340282366920938463463374607427473244159
+340282366920938463444927863358058659840
+340282366920938463444927863358058659839
+0
-1
+510423550381407695195061911147652317184
+510423550381407695195061911147652317183
+340282366920938463472597979468622987264
+340282366920938463472597979468622987263
+340282366920938463463374607433915695104
+340282366920938463463374607433915695103
+340282366920938463463374607431768244224
+340282366920938463463374607431768244223
+340282366920938463463374607431768211584
+340282366920938463463374607431768211583
+340282366920938463463374607431768211201
+340282366920938463463374607431768211200
+340282366920938463463374607431768145921
+340282366920938463463374607431768145920
+340282366920938463463374607427473244161
+340282366920938463463374607427473244160
+340282366920938463444927863358058659841
+340282366920938463444927863358058659840
1
-256
-65536
-8589934592
-36893488147419103232
--4722366482869645213696
--1099511627776
--8388864
--33024
--256
-256
+0
+28948022309329048855892746252171976963317496166410141009864396001978282409984
+28948022309329048855892746252171976963147354982949671778132708698262398304256
+1569275433846670190958947355801916604025588861116008628224
+1569275433846670190788806172341447372293901557400124522496
+365375409332725729550921208179070754913983135744
+365375409162584546090451976447383451198099030016
+5575186299632655785383929568162090376495104
+5575016158449195316152197880858374492389376
+21778071482940061661655974875633165533184
+21607930299479592429924287571917281427456
+-43386001782419654091580262447550446960640
+-43556142965880123323311949751266331066368
+-11150202458081851101536127449020464868884480
+-11150372599265311570767859136324180752990208
+-730750818495310275641373184626454206112082165760
+-730750818665451459101842416358141509827966271488
+-3138550867693340381747753528143363976319490418516133150720
+-3138550867693340381917894711603833208051177722232017256448
+-57896044618658097711785492504343953926464851149359812787997104700240680714240
+-57896044618658097711785492504343953926634992332820282019728792003956564819968
+28948022309329048855892746252171976963147354982949671778132708698262398304256
+28948022309329048855892746252171976962977213799489202546401021394546514198529
+1569275433846670190958947355801916604016365489079153852416
+1569275433846670190788806172341447372284678185363269746689
+365375409332725729550921208179070754911835652096
+365375409162584546090451976447383451195951546369
+5575186299632655785383929568162090376462336
+5575016158449195316152197880858374492356609
+21778071482940061661655974875633165533056
+21607930299479592429924287571917281427329
+-43386001782419654091580262447550446960385
+-43556142965880123323311949751266331066112
+-11150202458081851101536127449020464868818945
+-11150372599265311570767859136324180752924672
+-730750818495310275641373184626454206107787198465
+-730750818665451459101842416358141509823671304192
+-3138550867693340381747753528143363976301043674442423599105
+-3138550867693340381917894711603833208032730978158307704832
+-57896044618658097711785492504343953926124568782438874324533730092808912502785
+-57896044618658097711785492504343953926294709965899343556265417396524796608512
+1569275433846670190958947355801916604025588861116008628224
+1569275433846670190958947355801916604016365489079153852416
+85070591730234615865843651857942052864
+85070591730234615856620279821087277056
+19807040628566084398385987584
+19807040619342712361531211776
+302231454903657293676544
+302222231531620438900736
+1180591620717411303424
+1171368248680556527616
+-2351959869397967831040
+-2361183241434822606848
+-604453686435277732577280
+-604462909807314587353088
+-39614081247908796759917199360
+-39614081257132168796771975168
+-170141183460469231722463931679029329920
+-170141183460469231731687303715884105728
+-3138550867693340381917894711603833208041954350195162480640
+-3138550867693340381917894711603833208051177722232017256448
+1569275433846670190788806172341447372293901557400124522496
+1569275433846670190788806172341447372284678185363269746689
+85070591730234615856620279821087277056
+85070591730234615847396907784232501249
+19807040628566084396238503936
+19807040619342712359383728129
+302231454903657293643776
+302222231531620438867969
+1180591620717411303296
+1171368248680556527489
+-2351959869397967830785
+-2361183241434822606592
+-604453686435277732511745
+-604462909807314587287552
+-39614081247908796755622232065
+-39614081257132168792477007872
+-170141183460469231704017187605319778305
+-170141183460469231713240559642174554112
+-3138550867693340381577612344682894744578579742763394269185
+-3138550867693340381577612344682894744587803114800249044992
+365375409332725729550921208179070754913983135744
+365375409332725729550921208179070754911835652096
+19807040628566084398385987584
+19807040628566084396238503936
+4611686018427387904
+4611686016279904256
+70368744177664
+70366596694016
+274877906944
+272730423296
+-547608330240
+-549755813888
+-140735340871680
+-140737488355328
+-9223372034707292160
+-9223372036854775808
+-39614081257132168794624491520
+-39614081257132168796771975168
+-730750818665451459101842416358141509825818787840
+-730750818665451459101842416358141509827966271488
+365375409162584546090451976447383451198099030016
+365375409162584546090451976447383451195951546369
+19807040619342712361531211776
+19807040619342712359383728129
+4611686016279904256
+4611686014132420609
+70368744144896
+70366596661249
+274877906816
+272730423169
+-547608329985
+-549755813632
+-140735340806145
+-140737488289792
+-9223372030412324865
+-9223372032559808512
+-39614081238685424720914939905
+-39614081238685424723062423552
+-730750818325169092180903952894766902394050576385
+-730750818325169092180903952894766902396198060032
+5575186299632655785383929568162090376495104
+5575186299632655785383929568162090376462336
+302231454903657293676544
+302231454903657293643776
+70368744177664
+70368744144896
+1073741824
+1073709056
+4194304
+4161536
+-8355840
+-8388608
+-2147450880
+-2147483648
+-140737488322560
+-140737488355328
+-604462909807314587320320
+-604462909807314587353088
+-11150372599265311570767859136324180752957440
+-11150372599265311570767859136324180752990208
+5575016158449195316152197880858374492389376
+5575016158449195316152197880858374492356609
+302222231531620438900736
+302222231531620438867969
+70366596694016
+70366596661249
+1073709056
+1073676289
+4194176
+4161409
+-8355585
+-8388352
+-2147385345
+-2147418112
+-140733193355265
+-140733193388032
+-604444463063240877768705
+-604444463063240877801472
+-11150032316898390632304395761716748984745985
+-11150032316898390632304395761716748984778752
+21778071482940061661655974875633165533184
+21778071482940061661655974875633165533056
+1180591620717411303424
+1180591620717411303296
+274877906944
+274877906816
+4194304
+4194176
+16384
+16256
+-32640
+-32768
+-8388480
+-8388608
+-549755813760
+-549755813888
+-2361183241434822606720
+-2361183241434822606848
+-43556142965880123323311949751266331066240
+-43556142965880123323311949751266331066368
+21607930299479592429924287571917281427456
+21607930299479592429924287571917281427329
+1171368248680556527616
+1171368248680556527489
+272730423296
+272730423169
+4161536
+4161409
+16256
+16129
+-32385
+-32512
+-8322945
+-8323072
+-545460846465
+-545460846592
+-2342736497361113055105
+-2342736497361113055232
+-43215860598959184859848575143834562854785
+-43215860598959184859848575143834562854912
+-43386001782419654091580262447550446960640
+-43386001782419654091580262447550446960385
+-2351959869397967831040
+-2351959869397967830785
+-547608330240
+-547608329985
+-8355840
+-8355585
+-32640
+-32385
+65025
+65280
+16711425
+16711680
+1095216660225
+1095216660480
+4703919738795935661825
+4703919738795935662080
+86772003564839308183160524895100893921025
+86772003564839308183160524895100893921280
+-43556142965880123323311949751266331066368
+-43556142965880123323311949751266331066112
+-2361183241434822606848
+-2361183241434822606592
+-549755813888
+-549755813632
+-8388608
+-8388352
+-32768
+-32512
+65280
65536
+16776960
16777216
-2199023255552
-9444732965739290427392
--1208925819614629174706176
--281474976710656
--2147549184
--8454144
--65536
-65536
+1099511627520
+1099511627776
+4722366482869645213440
+4722366482869645213696
+87112285931760246646623899502532662132480
+87112285931760246646623899502532662132736
+-11150202458081851101536127449020464868884480
+-11150202458081851101536127449020464868818945
+-604453686435277732577280
+-604453686435277732511745
+-140735340871680
+-140735340806145
+-2147450880
+-2147385345
+-8388480
+-8322945
+16711425
+16776960
+4294836225
+4294901760
+281470681677825
+281470681743360
+1208907372870555465089025
+1208907372870555465154560
+22300404916163702203072254898040929737703425
+22300404916163702203072254898040929737768960
+-11150372599265311570767859136324180752990208
+-11150372599265311570767859136324180752924672
+-604462909807314587353088
+-604462909807314587287552
+-140737488355328
+-140737488289792
+-2147483648
+-2147418112
+-8388608
+-8323072
+16711680
16777216
+4294901760
4294967296
-562949953421312
-2417851639229258349412352
--158456325028528675187087900672
--36893488147419103232
--281483566645248
--1108101562368
--8589934592
-8589934592
-2199023255552
-562949953421312
-73786976294838206464
-316912650057057350374175801344
--680564733841876926926749214863536422912
--158456325028528675187087900672
--1208962713102776593809408
--4759259971017064316928
--36893488147419103232
-36893488147419103232
-9444732965739290427392
-2417851639229258349412352
-316912650057057350374175801344
-1361129467683753853853498429727072845824
+281474976645120
+281474976710656
+1208925819614629174640640
+1208925819614629174706176
+22300745198530623141535718272648361505914880
+22300745198530623141535718272648361505980416
+-730750818495310275641373184626454206112082165760
+-730750818495310275641373184626454206107787198465
+-39614081247908796759917199360
+-39614081247908796755622232065
+-9223372034707292160
+-9223372030412324865
+-140737488322560
+-140733193355265
+-549755813760
+-545460846465
+1095216660225
+1099511627520
+281470681677825
+281474976645120
+18446744065119617025
+18446744069414584320
+79228162495817593515539431425
+79228162495817593519834398720
+1461501636990620551282746369252908412219869364225
+1461501636990620551282746369252908412224164331520
+-730750818665451459101842416358141509827966271488
+-730750818665451459101842416358141509823671304192
+-39614081257132168796771975168
+-39614081257132168792477007872
+-9223372036854775808
+-9223372032559808512
+-140737488355328
+-140733193388032
+-549755813888
+-545460846592
+1095216660480
+1099511627776
+281470681743360
+281474976710656
+18446744069414584320
+18446744073709551616
+79228162514264337589248983040
+79228162514264337593543950336
+1461501637330902918203684832716283019651637575680
+1461501637330902918203684832716283019655932542976
+-3138550867693340381747753528143363976319490418516133150720
+-3138550867693340381747753528143363976301043674442423599105
+-170141183460469231722463931679029329920
+-170141183460469231704017187605319778305
+-39614081257132168794624491520
+-39614081238685424720914939905
+-604462909807314587320320
+-604444463063240877768705
+-2361183241434822606720
+-2342736497361113055105
+4703919738795935661825
+4722366482869645213440
+1208907372870555465089025
+1208925819614629174640640
+79228162495817593515539431425
+79228162514264337589248983040
+340282366920938463426481119284349108225
+340282366920938463444927863358058659840
+6277101735386680763495507056286727952620534092958556749825
+6277101735386680763495507056286727952638980837032266301440
+-3138550867693340381917894711603833208051177722232017256448
+-3138550867693340381917894711603833208032730978158307704832
+-170141183460469231731687303715884105728
+-170141183460469231713240559642174554112
+-39614081257132168796771975168
+-39614081238685424723062423552
+-604462909807314587353088
+-604444463063240877801472
+-2361183241434822606848
+-2342736497361113055232
+4703919738795935662080
+4722366482869645213696
+1208907372870555465154560
+1208925819614629174706176
+79228162495817593519834398720
+79228162514264337593543950336
+340282366920938463444927863358058659840
+340282366920938463463374607431768211456
+6277101735386680763835789423207666416083908700390324961280
+6277101735386680763835789423207666416102355444464034512896
+-57896044618658097711785492504343953926464851149359812787997104700240680714240
+-57896044618658097711785492504343953926124568782438874324533730092808912502785
+-3138550867693340381917894711603833208041954350195162480640
+-3138550867693340381577612344682894744578579742763394269185
+-730750818665451459101842416358141509825818787840
+-730750818325169092180903952894766902394050576385
+-11150372599265311570767859136324180752957440
+-11150032316898390632304395761716748984745985
+-43556142965880123323311949751266331066240
+-43215860598959184859848575143834562854785
+86772003564839308183160524895100893921025
+87112285931760246646623899502532662132480
+22300404916163702203072254898040929737703425
+22300745198530623141535718272648361505914880
+1461501636990620551282746369252908412219869364225
+1461501637330902918203684832716283019651637575680
+6277101735386680763495507056286727952620534092958556749825
+6277101735386680763835789423207666416083908700390324961280
+115792089237316195423570985008687907852589419931798687112530834793049593217025
+115792089237316195423570985008687907852929702298719625575994209400481361428480
+-57896044618658097711785492504343953926634992332820282019728792003956564819968
+-57896044618658097711785492504343953926294709965899343556265417396524796608512
+-3138550867693340381917894711603833208051177722232017256448
+-3138550867693340381577612344682894744587803114800249044992
+-730750818665451459101842416358141509827966271488
+-730750818325169092180903952894766902396198060032
+-11150372599265311570767859136324180752990208
+-11150032316898390632304395761716748984778752
+-43556142965880123323311949751266331066368
+-43215860598959184859848575143834562854912
+86772003564839308183160524895100893921280
+87112285931760246646623899502532662132736
+22300404916163702203072254898040929737768960
+22300745198530623141535718272648361505980416
+1461501636990620551282746369252908412224164331520
+1461501637330902918203684832716283019655932542976
+6277101735386680763495507056286727952638980837032266301440
+6277101735386680763835789423207666416102355444464034512896
+115792089237316195423570985008687907852929702298719625575994209400481361428480
+115792089237316195423570985008687907853269984665640564039457584007913129639936
+1
1
-4294967296
-562932774076400
-142998016075267841
18446744073709551616
--18446744073709551616
--72057594037927936
--281474976710656
--2147483648
+18446744073709551618
+79228162514264337593543950336
+79228162551157825758142922760
+5192296858534827628530496329220096
+5192455319695707014120526862876800
+1329227995784915872903807060280344576
+1339694357956450643556592942644756738
+-667220327295957771496812955748565120
+-664613997892457936451903530140172288
+-2596188043953143079754136014585856
+-2596148429267413814265248164610048
+-39614081266355540835774234624
+-39614081257132168796771975168
+-9223372036854775808
+-9223372036854775808
+0
0
0
1
-131068
-33294320
+18446744073709551615
+18446744073709551618
+79228162514264337593543950335
+79228162551157825758142922760
+5192296858534827628530496329220095
+5192455319695707014120526862876800
+1329227995784915872903807060280344575
+1339694357956450643556592942644756738
+-667220327295957771496812955748565120
+-664613997892457936451903530140172287
+-2596188043953143079754136014585856
+-2596148429267413814265248164610047
+-39614081266355540835774234624
+-39614081257132168796771975167
+-9223372036854775808
+-9223372036854775807
+0
+0
+0
+0
+1
+1
4294967296
--4294967296
--16777216
--65536
+4294967298
+281474976710656
+281483566907400
+72057594037927936
+72624976668147841
+-36170086419038336
+-36028797018963968
+-140739635871744
+-140737488355328
+-2147483648
+-2147483648
+0
+0
+0
0
0
0
0
1
-254
-32769
--32769
+4294967295
+4294967298
+281474976710655
+281483566907400
+72057594037927935
+72624976668147841
+-36170086419038336
+-36028797018963967
+-140739635871744
+-140737488355327
+-2147483648
+-2147483647
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+65536
+65538
+16777216
+16909320
+-8421504
+-8388608
+-32768
+-32768
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+65535
+65538
+16777215
+16909320
+-8421504
+-8388607
+-32768
+-32767
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+256
+258
-128
+-128
+0
+0
+0
+0
+0
+0
+0
+0
+0
0
0
0
@@ -402,8 +1346,39 @@
0
0
1
-129
--129
+255
+258
+-128
+-127
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
0
0
0
@@ -413,7 +1388,54 @@
0
0
1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
-1
+-2
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+-2
+1
+1
+0
+0
+0
+0
+0
+0
0
0
0
@@ -423,6 +1445,11 @@
0
0
-1
+-2
+-511
+-516
+257
+255
1
0
0
@@ -432,42 +1459,142 @@
0
0
0
--256
+0
+0
+0
+0
+0
+-2
+-2
+-512
+-516
+257
256
1
+1
+0
+0
+0
+0
+0
0
0
0
0
0
-1
--508
--65536
+-2
+-131071
+-131076
+-33554431
+-33818640
+16843009
+16777215
+65537
+65535
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+-2
+-131072
+-131076
+-33554432
+-33818640
+16843009
+16777216
+65537
65536
-256
1
+1
+0
+0
0
0
0
+0
+-1
-2
--262136
--66588640
--8589934592
-8589934592
-33554432
-131072
+-8589934591
+-8589934596
+-562949953421311
+-562967133814800
+-144115188075855871
+-145249953336295682
+72340172838076673
+72057594037927935
+281479271743489
+281474976710655
+4294967297
+4294967295
1
0
+0
+0
+0
+0
+-2
-2
-8589934592
--1125865548152800
--285996032150535683
--36893488147419103232
-36893488147419103232
-144115188075855872
-562949953421312
+-8589934596
+-562949953421312
+-562967133814800
+-144115188075855872
+-145249953336295682
+72340172838076673
+72057594037927936
+281479271743489
+281474976710656
+4294967297
4294967296
1
--128
--254
-510
+1
+0
+0
+-1
+-2
+-36893488147419103231
+-36893488147419103236
+-158456325028528675187087900671
+-158456325102315651516285845520
+-10384593717069655257060992658440191
+-10384910639391414028241053725753600
+-2658455991569831745807614120560689151
+-2679388715912901287113185885289513476
+1334440654591915542993625911497130241
+1329227995784915872903807060280344575
+5192376087906286159508272029171713
+5192296858534827628530496329220095
+79228162532711081671548469249
+79228162514264337593543950335
+18446744073709551617
+18446744073709551615
+1
+0
+-2
+-2
+-36893488147419103232
+-36893488147419103236
+-158456325028528675187087900672
+-158456325102315651516285845520
+-10384593717069655257060992658440192
+-10384910639391414028241053725753600
+-2658455991569831745807614120560689152
+-2679388715912901287113185885289513476
+1334440654591915542993625911497130241
+1329227995784915872903807060280344576
+5192376087906286159508272029171713
+5192296858534827628530496329220096
+79228162532711081671548469249
+79228162514264337593543950336
+18446744073709551617
+18446744073709551616
+1
+1