diff --git a/win64/c3-0.1.7.win64.zip b/win64/c3-0.1.7.win64.zip
new file mode 100644
index 0000000..3eebb77
Binary files /dev/null and b/win64/c3-0.1.7.win64.zip differ
diff --git a/win64/c3-0.1.7.win64/lib/c3/0.1/array.facts b/win64/c3-0.1.7.win64/lib/c3/0.1/array.facts
new file mode 100644
index 0000000..4bcb97c
--- /dev/null
+++ b/win64/c3-0.1.7.win64/lib/c3/0.1/array.facts
@@ -0,0 +1,5 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {Array, :is_a, :module}
+add {Array, :symbol, Array.data}
+replace {Array.data, :cfn, cfn :tag "array_data_tag" (:tag, :tag, :&result)}
diff --git a/win64/c3-0.1.7.win64/lib/c3/0.1/c3.facts b/win64/c3-0.1.7.win64/lib/c3/0.1/c3.facts
new file mode 100644
index 0000000..4afb051
--- /dev/null
+++ b/win64/c3-0.1.7.win64/lib/c3/0.1/c3.facts
@@ -0,0 +1,180 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+replace {C3, :is_a, :module}
+replace {C3, :operator, C3.operator00}
+replace {C3.operator00, :is_a, :operator}
+replace {C3.operator00, :symbol, :"()"}
+replace {C3.operator00, :arity, 1}
+replace {C3.operator00, :cfn, cfn Tag "tag_paren" (Tag, Result)}
+replace {C3.operator00, :operator_precedence, 13}
+replace {C3.operator00, :operator_associativity, :left}
+add {C3, :operator, C3.operator01}
+replace {C3.operator01, :is_a, :operator}
+replace {C3.operator01, :symbol, :"[]"}
+replace {C3.operator01, :arity, 2}
+replace {C3.operator01, :cfn, cfn Tag "tag_brackets" (Tag, Tag, Result)}
+replace {C3.operator01, :operator_precedence, 13}
+replace {C3.operator01, :operator_associativity, :left}
+add {C3, :operator, C3.operator02}
+replace {C3.operator02, :is_a, :operator}
+replace {C3.operator02, :symbol, :!}
+replace {C3.operator02, :arity, 1}
+replace {C3.operator02, :cfn, cfn :bool "tag_not" (Tag)}
+replace {C3.operator02, :operator_precedence, 12}
+replace {C3.operator02, :operator_associativity, :right}
+add {C3, :operator, C3.operator03}
+replace {C3.operator03, :is_a, :operator}
+replace {C3.operator03, :symbol, :~}
+replace {C3.operator03, :arity, 1}
+replace {C3.operator03, :cfn, cfn Tag "tag_bnot" (Tag, Result)}
+replace {C3.operator03, :operator_precedence, 12}
+replace {C3.operator03, :operator_associativity, :right}
+add {C3, :operator, C3.operator04}
+replace {C3.operator04, :is_a, :operator}
+replace {C3.operator04, :symbol, :-}
+replace {C3.operator04, :arity, 1}
+replace {C3.operator04, :cfn, cfn Tag "tag_neg" (Tag, Result)}
+replace {C3.operator04, :operator_precedence, 12}
+replace {C3.operator04, :operator_associativity, :right}
+add {C3, :operator, C3.operator05}
+replace {C3.operator05, :is_a, :operator}
+replace {C3.operator05, :symbol, :*}
+replace {C3.operator05, :arity, 2}
+replace {C3.operator05, :cfn, cfn Tag "tag_mul" (Tag, Tag, Result)}
+replace {C3.operator05, :operator_precedence, 11}
+replace {C3.operator05, :operator_associativity, :left}
+add {C3, :operator, C3.operator06}
+replace {C3.operator06, :is_a, :operator}
+replace {C3.operator06, :symbol, :/}
+replace {C3.operator06, :arity, 2}
+replace {C3.operator06, :cfn, cfn Tag "tag_div" (Tag, Tag, Result)}
+replace {C3.operator06, :operator_precedence, 11}
+replace {C3.operator06, :operator_associativity, :left}
+add {C3, :operator, C3.operator07}
+replace {C3.operator07, :is_a, :operator}
+replace {C3.operator07, :symbol, :mod}
+replace {C3.operator07, :arity, 2}
+replace {C3.operator07, :cfn, cfn Tag "tag_mod" (Tag, Tag, Result)}
+replace {C3.operator07, :operator_precedence, 11}
+replace {C3.operator07, :operator_associativity, :left}
+add {C3, :operator, C3.operator08}
+replace {C3.operator08, :is_a, :operator}
+replace {C3.operator08, :symbol, :+}
+replace {C3.operator08, :arity, 2}
+replace {C3.operator08, :cfn, cfn Tag "tag_add" (Tag, Tag, Result)}
+replace {C3.operator08, :operator_precedence, 10}
+replace {C3.operator08, :operator_associativity, :left}
+add {C3, :operator, C3.operator09}
+replace {C3.operator09, :is_a, :operator}
+replace {C3.operator09, :symbol, :-}
+replace {C3.operator09, :arity, 2}
+replace {C3.operator09, :cfn, cfn Tag "tag_sub" (Tag, Tag, Result)}
+replace {C3.operator09, :operator_precedence, 10}
+replace {C3.operator09, :operator_associativity, :left}
+add {C3, :operator, C3.operator10}
+replace {C3.operator10, :is_a, :operator}
+replace {C3.operator10, :symbol, :<<}
+replace {C3.operator10, :arity, 2}
+replace {C3.operator10, :cfn, cfn Tag "tag_shift_left" (Tag, Tag, Result)}
+replace {C3.operator10, :operator_precedence, 9}
+replace {C3.operator10, :operator_associativity, :left}
+add {C3, :operator, C3.operator11}
+replace {C3.operator11, :is_a, :operator}
+replace {C3.operator11, :symbol, :>>}
+replace {C3.operator11, :arity, 2}
+replace {C3.operator11, :cfn, cfn Tag "tag_shift_right" (Tag, Tag, Result)}
+replace {C3.operator11, :operator_precedence, 9}
+replace {C3.operator11, :operator_associativity, :left}
+add {C3, :operator, C3.operator12}
+replace {C3.operator12, :is_a, :operator}
+replace {C3.operator12, :symbol, :<}
+replace {C3.operator12, :arity, 2}
+replace {C3.operator12, :cfn, cfn :bool "tag_lt" (Tag, Tag)}
+replace {C3.operator12, :operator_precedence, 8}
+replace {C3.operator12, :operator_associativity, :left}
+add {C3, :operator, C3.operator13}
+replace {C3.operator13, :symbol, :<=}
+replace {C3.operator13, :is_a, :operator}
+replace {C3.operator13, :arity, 2}
+replace {C3.operator13, :cfn, cfn :bool "tag_lte" (Tag, Tag)}
+replace {C3.operator13, :operator_precedence, 8}
+replace {C3.operator13, :operator_associativity, :left}
+add {C3, :operator, C3.operator14}
+replace {C3.operator14, :symbol, :>}
+replace {C3.operator14, :is_a, :operator}
+replace {C3.operator14, :arity, 2}
+replace {C3.operator14, :cfn, cfn :bool "tag_gt" (Tag, Tag)}
+replace {C3.operator14, :operator_precedence, 8}
+replace {C3.operator14, :operator_associativity, :left}
+add {C3, :operator, C3.operator15}
+replace {C3.operator15, :symbol, :>=}
+replace {C3.operator15, :is_a, :operator}
+replace {C3.operator15, :arity, 2}
+replace {C3.operator15, :cfn, cfn :bool "tag_gte" (Tag, Tag)}
+replace {C3.operator15, :operator_precedence, 8}
+replace {C3.operator15, :operator_associativity, :left}
+add {C3, :operator, C3.operator16}
+replace {C3.operator16, :is_a, :operator}
+replace {C3.operator16, :symbol, :==}
+replace {C3.operator16, :arity, 2}
+replace {C3.operator16, :cfn, cfn :bool "tag_eq" (Tag, Tag)}
+replace {C3.operator16, :operator_precedence, 7}
+replace {C3.operator16, :operator_associativity, :left}
+add {C3, :operator, C3.operator17}
+replace {C3.operator17, :is_a, :operator}
+replace {C3.operator17, :symbol, :!=}
+replace {C3.operator17, :arity, 2}
+replace {C3.operator17, :cfn, cfn :bool "tag_not_eq" (Tag, Tag)}
+replace {C3.operator17, :operator_precedence, 7}
+replace {C3.operator17, :operator_associativity, :left}
+add {C3, :operator, C3.operator18}
+replace {C3.operator18, :is_a, :operator}
+replace {C3.operator18, :symbol, :&}
+replace {C3.operator18, :arity, 2}
+replace {C3.operator18, :cfn, cfn :bool "tag_band" (Tag, Tag)}
+replace {C3.operator18, :operator_precedence, 6}
+replace {C3.operator18, :operator_associativity, :left}
+add {C3, :operator, C3.operator19}
+replace {C3.operator19, :is_a, :operator}
+replace {C3.operator19, :symbol, :^}
+replace {C3.operator19, :arity, 2}
+replace {C3.operator19, :cfn, cfn :bool "tag_bxor" (Tag, Tag)}
+replace {C3.operator19, :operator_precedence, 5}
+replace {C3.operator19, :operator_associativity, :left}
+add {C3, :operator, C3.operator20}
+replace {C3.operator20, :is_a, :operator}
+replace {C3.operator20, :symbol, :bor}
+replace {C3.operator20, :arity, 2}
+replace {C3.operator20, :cfn, cfn :bool "tag_bor" (Tag, Tag)}
+replace {C3.operator20, :operator_precedence, 4}
+replace {C3.operator20, :operator_associativity, :left}
+add {C3, :operator, C3.operator21}
+replace {C3.operator21, :is_a, :operator}
+replace {C3.operator21, :symbol, :&&}
+replace {C3.operator21, :arity, 2}
+replace {C3.operator21, :cfn, cfn :bool "tag_and" (Tag, Tag)}
+replace {C3.operator21, :operator_precedence, 3}
+replace {C3.operator21, :operator_associativity, :left}
+add {C3, :operator, C3.operator22}
+replace {C3.operator22, :is_a, :operator}
+replace {C3.operator22, :symbol, :||}
+replace {C3.operator22, :arity, 2}
+replace {C3.operator22, :cfn, cfn :bool "tag_or" (Tag, Tag)}
+replace {C3.operator22, :operator_precedence, 2}
+replace {C3.operator22, :operator_associativity, :left}
+add {C3, :operator, C3.operator23}
+replace {C3.operator23, :is_a, :operator}
+add {C3.operator23, :is_a, :special_operator}
+replace {C3.operator23, :symbol, :=}
+replace {C3.operator23, :arity, 2}
+replace {C3.operator23, :cfn, cfn Tag "tag_equal" (Tag, Tag, Result)}
+replace {C3.operator23, :operator_precedence, 1}
+replace {C3.operator23, :operator_associativity, :right}
+replace {C3.break, :cfn, cfn Void "c3_break" ()}
+replace {C3, :symbol, C3.first}
+replace {C3.first, :fn, fn {
+ ((a | _b)) { a }
+ ({a, _b}) { a }
+ ({a, _b, _c}) { a }
+ ({a, _b, _c, _d}) { a }
+}}
diff --git a/win64/c3-0.1.7.win64/lib/c3/0.1/integer.facts b/win64/c3-0.1.7.win64/lib/c3/0.1/integer.facts
new file mode 100644
index 0000000..c149de8
--- /dev/null
+++ b/win64/c3-0.1.7.win64/lib/c3/0.1/integer.facts
@@ -0,0 +1,5 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {Integer, :is_a, :module}
+add {Integer, :symbol, Integer.cast}
+replace {Integer.cast, :cfn, cfn :integer "integer_cast" (:tag, :&result)}
diff --git a/win64/c3-0.1.7.win64/lib/c3/0.1/list.facts b/win64/c3-0.1.7.win64/lib/c3/0.1/list.facts
new file mode 100644
index 0000000..c3f5549
--- /dev/null
+++ b/win64/c3-0.1.7.win64/lib/c3/0.1/list.facts
@@ -0,0 +1,20 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {List, :is_a, :module}
+add {List, :symbol, List.cast}
+add {List, :symbol, List.map}
+add {List, :symbol, List.reverse}
+replace {List.cast, :cfn, cfn :list "list_cast" (:tag, :&result)}
+replace {List.map, :fn, fn {
+ ((), _) {
+ ()
+ }
+ ((a | b), f) {
+ (f(a) | List.map(b, f))
+ }
+}}
+replace {List.reverse, :fn, fn {
+ (x) { List.reverse(x, ()) }
+ ((), acc) { acc }
+ ((a | b), acc) { List.reverse(b, (a | acc)) }
+}}
diff --git a/win64/c3-0.1.7.win64/lib/c3/0.1/s16.facts b/win64/c3-0.1.7.win64/lib/c3/0.1/s16.facts
new file mode 100644
index 0000000..d343ddd
--- /dev/null
+++ b/win64/c3-0.1.7.win64/lib/c3/0.1/s16.facts
@@ -0,0 +1,5 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {S16, :is_a, :module}
+add {S16, :symbol, S16.cast}
+replace {S16.cast, :cfn, cfn :s16 "s16_cast" (:tag)}
diff --git a/win64/c3-0.1.7.win64/lib/c3/0.1/s32.facts b/win64/c3-0.1.7.win64/lib/c3/0.1/s32.facts
new file mode 100644
index 0000000..1ffcd84
--- /dev/null
+++ b/win64/c3-0.1.7.win64/lib/c3/0.1/s32.facts
@@ -0,0 +1,5 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {S32, :is_a, :module}
+add {S32, :symbol, S32.cast}
+replace {S32.cast, :cfn, cfn :s32 "s32_cast" (:tag)}
diff --git a/win64/c3-0.1.7.win64/lib/c3/0.1/s64.facts b/win64/c3-0.1.7.win64/lib/c3/0.1/s64.facts
new file mode 100644
index 0000000..7ad5bd7
--- /dev/null
+++ b/win64/c3-0.1.7.win64/lib/c3/0.1/s64.facts
@@ -0,0 +1,5 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {S64, :is_a, :module}
+add {S64, :symbol, S64.cast}
+replace {S64.cast, :cfn, cfn :s64 "s64_cast" (:tag)}
diff --git a/win64/c3-0.1.7.win64/lib/c3/0.1/s8.facts b/win64/c3-0.1.7.win64/lib/c3/0.1/s8.facts
new file mode 100644
index 0000000..86d97b2
--- /dev/null
+++ b/win64/c3-0.1.7.win64/lib/c3/0.1/s8.facts
@@ -0,0 +1,5 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {S8, :is_a, :module}
+add {S8, :symbol, S8.cast}
+replace {S8.cast, :cfn, cfn :s8 "s8_cast" (:tag)}
diff --git a/win64/c3-0.1.7.win64/lib/c3/0.1/sw.facts b/win64/c3-0.1.7.win64/lib/c3/0.1/sw.facts
new file mode 100644
index 0000000..943c169
--- /dev/null
+++ b/win64/c3-0.1.7.win64/lib/c3/0.1/sw.facts
@@ -0,0 +1,5 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {Sw, :is_a, :module}
+add {Sw, :symbol, Sw.cast}
+replace {Sw.cast, :cfn, cfn :sw "sw_cast" (:tag)}
diff --git a/win64/c3-0.1.7.win64/lib/c3/0.1/u16.facts b/win64/c3-0.1.7.win64/lib/c3/0.1/u16.facts
new file mode 100644
index 0000000..0bff34a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/lib/c3/0.1/u16.facts
@@ -0,0 +1,5 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {U16, :is_a, :module}
+add {U16, :symbol, U16.cast}
+replace {U16.cast, :cfn, cfn :u16 "u16_cast" (:tag)}
diff --git a/win64/c3-0.1.7.win64/lib/c3/0.1/u32.facts b/win64/c3-0.1.7.win64/lib/c3/0.1/u32.facts
new file mode 100644
index 0000000..3ef55f0
--- /dev/null
+++ b/win64/c3-0.1.7.win64/lib/c3/0.1/u32.facts
@@ -0,0 +1,5 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {U32, :is_a, :module}
+add {U32, :symbol, U32.cast}
+replace {U32.cast, :cfn, cfn :u32 "u32_cast" (:tag)}
diff --git a/win64/c3-0.1.7.win64/lib/c3/0.1/u64.facts b/win64/c3-0.1.7.win64/lib/c3/0.1/u64.facts
new file mode 100644
index 0000000..1b7fd15
--- /dev/null
+++ b/win64/c3-0.1.7.win64/lib/c3/0.1/u64.facts
@@ -0,0 +1,5 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {U64, :is_a, :module}
+add {U64, :symbol, U64.cast}
+replace {U64.cast, :cfn, cfn :u64 "u64_cast" (:tag)}
diff --git a/win64/c3-0.1.7.win64/lib/c3/0.1/u8.facts b/win64/c3-0.1.7.win64/lib/c3/0.1/u8.facts
new file mode 100644
index 0000000..e86c023
--- /dev/null
+++ b/win64/c3-0.1.7.win64/lib/c3/0.1/u8.facts
@@ -0,0 +1,5 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {U8, :is_a, :module}
+add {U8, :symbol, U8.cast}
+replace {U8.cast, :cfn, cfn :u8 "u8_cast" (:tag)}
diff --git a/win64/c3-0.1.7.win64/lib/c3/0.1/uw.facts b/win64/c3-0.1.7.win64/lib/c3/0.1/uw.facts
new file mode 100644
index 0000000..888555a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/lib/c3/0.1/uw.facts
@@ -0,0 +1,5 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {Uw, :is_a, :module}
+add {Uw, :symbol, Uw.cast}
+replace {Uw.cast, :cfn, cfn :uw "uw_cast" (:tag)}
diff --git a/win64/c3-0.1.7.win64/test/facts_test_dump_file.expected.facts b/win64/c3-0.1.7.win64/test/facts_test_dump_file.expected.facts
new file mode 100644
index 0000000..4d3a9e9
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/facts_test_dump_file.expected.facts
@@ -0,0 +1,25 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{a, b}, {a, b}, {a, b}}
+add {a, a, a}
diff --git a/win64/c3-0.1.7.win64/test/facts_test_load_file.facts b/win64/c3-0.1.7.win64/test/facts_test_load_file.facts
new file mode 100644
index 0000000..cd38dd2
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/facts_test_load_file.facts
@@ -0,0 +1,25 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {a, a, a}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{a, b}, {a, b}, {a, b}}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
diff --git a/win64/c3-0.1.7.win64/test/facts_test_log_add.expected.facts b/win64/c3-0.1.7.win64/test/facts_test_log_add.expected.facts
new file mode 100644
index 0000000..7f1260b
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/facts_test_log_add.expected.facts
@@ -0,0 +1,23 @@
+add {"a", "a", "a"}
+add {:a, :a, :a}
+add {A, A, A}
+add {a, a, a}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {{a, b}, {a, b}, {a, b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-1, -1, -1}
+add {-10, -10, -10}
+add {-256, -256, -256}
+add {-65536, -65536, -65536}
+add {-4294967296, -4294967296, -4294967296}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
diff --git a/win64/c3-0.1.7.win64/test/facts_test_log_remove.expected.facts b/win64/c3-0.1.7.win64/test/facts_test_log_remove.expected.facts
new file mode 100644
index 0000000..57fb991
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/facts_test_log_remove.expected.facts
@@ -0,0 +1,46 @@
+add {"a", "a", "a"}
+add {:a, :a, :a}
+add {A, A, A}
+add {a, a, a}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {{a, b}, {a, b}, {a, b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-1, -1, -1}
+add {-10, -10, -10}
+add {-256, -256, -256}
+add {-65536, -65536, -65536}
+add {-4294967296, -4294967296, -4294967296}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+remove {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+remove {-4294967296, -4294967296, -4294967296}
+remove {-65536, -65536, -65536}
+remove {-256, -256, -256}
+remove {-10, -10, -10}
+remove {-1, -1, -1}
+remove {18446744073709551616, 18446744073709551616, 18446744073709551616}
+remove {4294967296, 4294967296, 4294967296}
+remove {65536, 65536, 65536}
+remove {256, 256, 256}
+remove {10, 10, 10}
+remove {1, 1, 1}
+remove {0, 0, 0}
+remove {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+remove {{a, b}, {a, b}, {a, b}}
+remove {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+remove {{:a, :b}, {:a, :b}, {:a, :b}}
+remove {((), ()), ((), ()), ((), ())}
+remove {(), (), ()}
+remove {a, a, a}
+remove {A, A, A}
+remove {:a, :a, :a}
+remove {"a", "a", "a"}
diff --git a/win64/c3-0.1.7.win64/test/facts_test_open_file.1.expected.facts b/win64/c3-0.1.7.win64/test/facts_test_open_file.1.expected.facts
new file mode 100644
index 0000000..0c95440
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/facts_test_open_file.1.expected.facts
@@ -0,0 +1,71 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {a, a, a}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{a, b}, {a, b}, {a, b}}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+remove {"a", "a", "a"}
+remove {:a, :a, :a}
+remove {A, A, A}
+remove {a, a, a}
+remove {(), (), ()}
+remove {((), ()), ((), ()), ((), ())}
+remove {{:a, :b}, {:a, :b}, {:a, :b}}
+remove {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+remove {{a, b}, {a, b}, {a, b}}
+remove {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+remove {0, 0, 0}
+remove {1, 1, 1}
+remove {10, 10, 10}
+remove {256, 256, 256}
+remove {65536, 65536, 65536}
+remove {4294967296, 4294967296, 4294967296}
+remove {18446744073709551616, 18446744073709551616, 18446744073709551616}
+remove {-1, -1, -1}
+remove {-10, -10, -10}
+remove {-256, -256, -256}
+remove {-65536, -65536, -65536}
+remove {-4294967296, -4294967296, -4294967296}
+remove {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {"b", "b", "b"}
+add {:b, :b, :b}
+add {B, B, B}
+add {b, b, b}
+add {(() | ()), (() | ()), (() | ())}
+add {((() | ()), ()), ((() | ()), ()), ((() | ()), ())}
+add {{:b, :b}, {:b, :b}, {:b, :b}}
+add {{{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}}
+add {{b, b}, {b, b}, {b, b}}
+add {{{b, b}, {c, d}}, {{b, b}, {c, d}}, {{b, b}, {c, d}}}
+add {2, 2, 2}
+add {3, 3, 3}
+add {11, 11, 11}
+add {257, 257, 257}
+add {65537, 65537, 65537}
+add {4294967297, 4294967297, 4294967297}
+add {18446744073709551617, 18446744073709551617, 18446744073709551617}
+add {-2, -2, -2}
+add {-11, -11, -11}
+add {-257, -257, -257}
+add {-65537, -65537, -65537}
+add {-4294967297, -4294967297, -4294967297}
+add {-18446744073709551617, -18446744073709551617, -18446744073709551617}
diff --git a/win64/c3-0.1.7.win64/test/facts_test_open_file.1.in.facts b/win64/c3-0.1.7.win64/test/facts_test_open_file.1.in.facts
new file mode 100644
index 0000000..cd38dd2
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/facts_test_open_file.1.in.facts
@@ -0,0 +1,25 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {a, a, a}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{a, b}, {a, b}, {a, b}}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
diff --git a/win64/c3-0.1.7.win64/test/facts_test_open_file.2.expected.facts b/win64/c3-0.1.7.win64/test/facts_test_open_file.2.expected.facts
new file mode 100644
index 0000000..e49f9ef
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/facts_test_open_file.2.expected.facts
@@ -0,0 +1,48 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {a, a, a}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{a, b}, {a, b}, {a, b}}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {b, b, b}
+add {-18446744073709551617, -18446744073709551617, -18446744073709551617}
+add {18446744073709551617, 18446744073709551617, 18446744073709551617}
+add {-4294967297, -4294967297, -4294967297}
+add {-65537, -65537, -65537}
+add {-257, -257, -257}
+add {-11, -11, -11}
+add {-2, -2, -2}
+add {2, 2, 2}
+add {3, 3, 3}
+add {11, 11, 11}
+add {257, 257, 257}
+add {65537, 65537, 65537}
+add {4294967297, 4294967297, 4294967297}
+add {(() | ()), (() | ()), (() | ())}
+add {((() | ()), ()), ((() | ()), ()), ((() | ()), ())}
+add {"b", "b", "b"}
+add {B, B, B}
+add {:b, :b, :b}
+add {{b, b}, {b, b}, {b, b}}
+add {{:b, :b}, {:b, :b}, {:b, :b}}
+add {{{b, b}, {c, d}}, {{b, b}, {c, d}}, {{b, b}, {c, d}}}
+add {{{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}}
diff --git a/win64/c3-0.1.7.win64/test/facts_test_open_file.2.in.facts b/win64/c3-0.1.7.win64/test/facts_test_open_file.2.in.facts
new file mode 100644
index 0000000..e49f9ef
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/facts_test_open_file.2.in.facts
@@ -0,0 +1,48 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {a, a, a}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{a, b}, {a, b}, {a, b}}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {b, b, b}
+add {-18446744073709551617, -18446744073709551617, -18446744073709551617}
+add {18446744073709551617, 18446744073709551617, 18446744073709551617}
+add {-4294967297, -4294967297, -4294967297}
+add {-65537, -65537, -65537}
+add {-257, -257, -257}
+add {-11, -11, -11}
+add {-2, -2, -2}
+add {2, 2, 2}
+add {3, 3, 3}
+add {11, 11, 11}
+add {257, 257, 257}
+add {65537, 65537, 65537}
+add {4294967297, 4294967297, 4294967297}
+add {(() | ()), (() | ()), (() | ())}
+add {((() | ()), ()), ((() | ()), ()), ((() | ()), ())}
+add {"b", "b", "b"}
+add {B, B, B}
+add {:b, :b, :b}
+add {{b, b}, {b, b}, {b, b}}
+add {{:b, :b}, {:b, :b}, {:b, :b}}
+add {{{b, b}, {c, d}}, {{b, b}, {c, d}}, {{b, b}, {c, d}}}
+add {{{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}}
diff --git a/win64/c3-0.1.7.win64/test/facts_test_open_file.3.expected.facts b/win64/c3-0.1.7.win64/test/facts_test_open_file.3.expected.facts
new file mode 100644
index 0000000..34357b8
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/facts_test_open_file.3.expected.facts
@@ -0,0 +1,94 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {a, a, a}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{a, b}, {a, b}, {a, b}}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+remove {a, a, a}
+remove {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+remove {18446744073709551616, 18446744073709551616, 18446744073709551616}
+remove {-4294967296, -4294967296, -4294967296}
+remove {-65536, -65536, -65536}
+remove {-256, -256, -256}
+remove {-10, -10, -10}
+remove {-1, -1, -1}
+remove {0, 0, 0}
+remove {1, 1, 1}
+remove {10, 10, 10}
+remove {256, 256, 256}
+remove {65536, 65536, 65536}
+remove {4294967296, 4294967296, 4294967296}
+remove {(), (), ()}
+remove {((), ()), ((), ()), ((), ())}
+remove {"a", "a", "a"}
+remove {A, A, A}
+remove {:a, :a, :a}
+remove {{a, b}, {a, b}, {a, b}}
+remove {{:a, :b}, {:a, :b}, {:a, :b}}
+remove {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+remove {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {"a", "a", "a"}
+add {:a, :a, :a}
+add {A, A, A}
+add {a, a, a}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {{a, b}, {a, b}, {a, b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-1, -1, -1}
+add {-10, -10, -10}
+add {-256, -256, -256}
+add {-65536, -65536, -65536}
+add {-4294967296, -4294967296, -4294967296}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {"b", "b", "b"}
+add {:b, :b, :b}
+add {B, B, B}
+add {b, b, b}
+add {(() | ()), (() | ()), (() | ())}
+add {((() | ()), ()), ((() | ()), ()), ((() | ()), ())}
+add {{:b, :b}, {:b, :b}, {:b, :b}}
+add {{{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}}
+add {{b, b}, {b, b}, {b, b}}
+add {{{b, b}, {c, d}}, {{b, b}, {c, d}}, {{b, b}, {c, d}}}
+add {2, 2, 2}
+add {3, 3, 3}
+add {11, 11, 11}
+add {257, 257, 257}
+add {65537, 65537, 65537}
+add {4294967297, 4294967297, 4294967297}
+add {18446744073709551617, 18446744073709551617, 18446744073709551617}
+add {-2, -2, -2}
+add {-11, -11, -11}
+add {-257, -257, -257}
+add {-65537, -65537, -65537}
+add {-4294967297, -4294967297, -4294967297}
+add {-18446744073709551617, -18446744073709551617, -18446744073709551617}
diff --git a/win64/c3-0.1.7.win64/test/facts_test_open_file.3.in.facts b/win64/c3-0.1.7.win64/test/facts_test_open_file.3.in.facts
new file mode 100644
index 0000000..6215c21
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/facts_test_open_file.3.in.facts
@@ -0,0 +1,48 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {a, a, a}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{a, b}, {a, b}, {a, b}}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+remove {a, a, a}
+remove {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+remove {18446744073709551616, 18446744073709551616, 18446744073709551616}
+remove {-4294967296, -4294967296, -4294967296}
+remove {-65536, -65536, -65536}
+remove {-256, -256, -256}
+remove {-10, -10, -10}
+remove {-1, -1, -1}
+remove {0, 0, 0}
+remove {1, 1, 1}
+remove {10, 10, 10}
+remove {256, 256, 256}
+remove {65536, 65536, 65536}
+remove {4294967296, 4294967296, 4294967296}
+remove {(), (), ()}
+remove {((), ()), ((), ()), ((), ())}
+remove {"a", "a", "a"}
+remove {A, A, A}
+remove {:a, :a, :a}
+remove {{a, b}, {a, b}, {a, b}}
+remove {{:a, :b}, {:a, :b}, {:a, :b}}
+remove {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+remove {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
diff --git a/win64/c3-0.1.7.win64/test/facts_test_save.expected.facts b/win64/c3-0.1.7.win64/test/facts_test_save.expected.facts
new file mode 100644
index 0000000..4d3a9e9
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/facts_test_save.expected.facts
@@ -0,0 +1,25 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{a, b}, {a, b}, {a, b}}
+add {a, a, a}
diff --git a/win64/c3-0.1.7.win64/test/ic3/array.err.expected b/win64/c3-0.1.7.win64/test/ic3/array.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/array.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/array.in b/win64/c3-0.1.7.win64/test/ic3/array.in
new file mode 100644
index 0000000..31a73eb
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/array.in
@@ -0,0 +1,114 @@
+(U8) {0, 1}
+a = (U8) {0, 1}
+quote a[0]
+quote a[1]
+a[0]
+a[1]
+(U8) {{0, 1},
+ {2, 3}}
+b = (U8) {{0, 1},
+ {2, 3}}
+quote b[0][0]
+quote b[0][1]
+quote b[1][0]
+quote b[1][1]
+b[0][0]
+b[0][1]
+b[1][0]
+b[1][1]
+c = (U8) {{{0, 1},
+ {2, 3}},
+ {{4, 5},
+ {6, 7}}}
+quote c[0][0][0]
+quote c[0][0][1]
+quote c[0][1][0]
+quote c[0][1][1]
+quote c[1][0][0]
+quote c[1][0][1]
+quote c[1][1][0]
+quote c[1][1][1]
+c[0][0][0]
+c[0][0][1]
+c[0][1][0]
+c[0][1][1]
+c[1][0][0]
+c[1][0][1]
+c[1][1][0]
+c[1][1][1]
+d = (U8) {{{{0, 1},
+ {2, 3}},
+ {{4, 5},
+ {6, 7}}},
+ {{{8, 9},
+ {10, 11}},
+ {{12, 13},
+ {14, 15}}}}
+quote d[0][0][0][0]
+quote d[0][0][0][1]
+quote d[0][0][1][0]
+quote d[0][0][1][1]
+quote d[0][1][0][0]
+quote d[0][1][0][1]
+quote d[0][1][1][0]
+quote d[0][1][1][1]
+quote d[1][0][0][0]
+quote d[1][0][0][1]
+quote d[1][0][1][0]
+quote d[1][0][1][1]
+quote d[1][1][0][0]
+quote d[1][1][0][1]
+quote d[1][1][1][0]
+quote d[1][1][1][1]
+d[0][0][0][0]
+d[0][0][0][1]
+d[0][0][1][0]
+d[0][0][1][1]
+d[0][1][0][0]
+d[0][1][0][1]
+d[0][1][1][0]
+d[0][1][1][1]
+d[1][0][0][0]
+d[1][0][0][1]
+d[1][0][1][0]
+d[1][0][1][1]
+d[1][1][0][0]
+d[1][1][0][1]
+d[1][1][1][0]
+d[1][1][1][1]
+e = (U8) { 1 + 1 }
+e[0]
+f = (U8) { 1 + 1, 2 + 2 }
+f[0]
+f[1]
+g = (U8) { 1 + 1, 2 + 2, 3 + 3 }
+g[0]
+g[1]
+g[2]
+h = (U8) { 255 + 1, 255 + 2, 255 + 3 }
+h[0]
+h[1]
+h[2]
+i = (U16) { 255 + 1, 255 + 2, 255 + 3 }
+i[0]
+i[1]
+i[2]
+j = (U32) { 255 + 1, 255 + 2, 255 + 3 }
+j[0]
+j[1]
+j[2]
+k = (U64) { 255 + 1, 255 + 2, 255 + 3 }
+k[0]
+k[1]
+k[2]
+quote (Integer) { 1000000000000000000000000000000001,
+ 2000000000000000000000000000000002 }
+l = (Integer) { 1000000000000000000000000000000001,
+ 2000000000000000000000000000000002 }
+l[0]
+l[1]
+quote (List) {(1, 2), (3, 4)}
+(List) {(1, 2), (3, 4)}
+m = (List) {(1, 2), (3, 4)}
+m[0]
+m[1]
diff --git a/win64/c3-0.1.7.win64/test/ic3/array.out b/win64/c3-0.1.7.win64/test/ic3/array.out
new file mode 100644
index 0000000..a510d31
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/array.out
@@ -0,0 +1,100 @@
+(U8) {0, 1}
+(U8) {0, 1}
+a[0]
+a[1]
+0
+1
+(U8) {{0, 1}, {2, 3}}
+(U8) {{0, 1}, {2, 3}}
+b[0][0]
+b[0][1]
+b[1][0]
+b[1][1]
+0
+1
+2
+3
+(U8) {{{0, 1}, {2, 3}}, {{4, 5}, {6, 7}}}
+c[0][0][0]
+c[0][0][1]
+c[0][1][0]
+c[0][1][1]
+c[1][0][0]
+c[1][0][1]
+c[1][1][0]
+c[1][1][1]
+0
+1
+2
+3
+4
+5
+6
+7
+(U8) {{{{0, 1}, {2, 3}}, {{4, 5}, {6, 7}}}, {{{8, 9}, {10, 11}}, {{12, 13}, {14, 15}}}}
+d[0][0][0][0]
+d[0][0][0][1]
+d[0][0][1][0]
+d[0][0][1][1]
+d[0][1][0][0]
+d[0][1][0][1]
+d[0][1][1][0]
+d[0][1][1][1]
+d[1][0][0][0]
+d[1][0][0][1]
+d[1][0][1][0]
+d[1][0][1][1]
+d[1][1][0][0]
+d[1][1][0][1]
+d[1][1][1][0]
+d[1][1][1][1]
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+(U8) {2}
+2
+(U8) {2, 4}
+2
+4
+(U8) {2, 4, 6}
+2
+4
+6
+(U8) {0, 1, 2}
+0
+1
+2
+(U16) {256, 257, 258}
+256
+257
+258
+(U32) {256, 257, 258}
+256
+257
+258
+(U64) {256, 257, 258}
+256
+257
+258
+(Integer) {1000000000000000000000000000000001, 2000000000000000000000000000000002}
+(Integer) {1000000000000000000000000000000001, 2000000000000000000000000000000002}
+1000000000000000000000000000000001
+2000000000000000000000000000000002
+(List) {(1, 2), (3, 4)}
+(List) {(1, 2), (3, 4)}
+(List) {(1, 2), (3, 4)}
+(1, 2)
+(3, 4)
diff --git a/win64/c3-0.1.7.win64/test/ic3/array.out.expected b/win64/c3-0.1.7.win64/test/ic3/array.out.expected
new file mode 100644
index 0000000..a510d31
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/array.out.expected
@@ -0,0 +1,100 @@
+(U8) {0, 1}
+(U8) {0, 1}
+a[0]
+a[1]
+0
+1
+(U8) {{0, 1}, {2, 3}}
+(U8) {{0, 1}, {2, 3}}
+b[0][0]
+b[0][1]
+b[1][0]
+b[1][1]
+0
+1
+2
+3
+(U8) {{{0, 1}, {2, 3}}, {{4, 5}, {6, 7}}}
+c[0][0][0]
+c[0][0][1]
+c[0][1][0]
+c[0][1][1]
+c[1][0][0]
+c[1][0][1]
+c[1][1][0]
+c[1][1][1]
+0
+1
+2
+3
+4
+5
+6
+7
+(U8) {{{{0, 1}, {2, 3}}, {{4, 5}, {6, 7}}}, {{{8, 9}, {10, 11}}, {{12, 13}, {14, 15}}}}
+d[0][0][0][0]
+d[0][0][0][1]
+d[0][0][1][0]
+d[0][0][1][1]
+d[0][1][0][0]
+d[0][1][0][1]
+d[0][1][1][0]
+d[0][1][1][1]
+d[1][0][0][0]
+d[1][0][0][1]
+d[1][0][1][0]
+d[1][0][1][1]
+d[1][1][0][0]
+d[1][1][0][1]
+d[1][1][1][0]
+d[1][1][1][1]
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+(U8) {2}
+2
+(U8) {2, 4}
+2
+4
+(U8) {2, 4, 6}
+2
+4
+6
+(U8) {0, 1, 2}
+0
+1
+2
+(U16) {256, 257, 258}
+256
+257
+258
+(U32) {256, 257, 258}
+256
+257
+258
+(U64) {256, 257, 258}
+256
+257
+258
+(Integer) {1000000000000000000000000000000001, 2000000000000000000000000000000002}
+(Integer) {1000000000000000000000000000000001, 2000000000000000000000000000000002}
+1000000000000000000000000000000001
+2000000000000000000000000000000002
+(List) {(1, 2), (3, 4)}
+(List) {(1, 2), (3, 4)}
+(List) {(1, 2), (3, 4)}
+(1, 2)
+(3, 4)
diff --git a/win64/c3-0.1.7.win64/test/ic3/array.ret b/win64/c3-0.1.7.win64/test/ic3/array.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/array.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/array.ret.expected b/win64/c3-0.1.7.win64/test/ic3/array.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/array.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/bool.err.expected b/win64/c3-0.1.7.win64/test/ic3/bool.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/bool.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/bool.in b/win64/c3-0.1.7.win64/test/ic3/bool.in
new file mode 100644
index 0000000..4f7022c
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/bool.in
@@ -0,0 +1,30 @@
+true
+false
+true
+false
+false && false
+false && true
+true && false
+true && true
+false || false
+false || true
+true || false
+true || true
+! false
+! true
+! ! false
+! ! true
+1 < 1
+1 < 2
+2 < 1
+1 <= 1
+1 <= 2
+2 <= 1
+1 == 1
+1 == 2
+1 >= 1
+2 >= 1
+1 >= 2
+1 > 1
+2 > 1
+1 > 2
diff --git a/win64/c3-0.1.7.win64/test/ic3/bool.out b/win64/c3-0.1.7.win64/test/ic3/bool.out
new file mode 100644
index 0000000..d6c1644
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/bool.out
@@ -0,0 +1,30 @@
+true
+false
+true
+false
+false
+false
+false
+true
+false
+true
+true
+true
+true
+false
+false
+true
+false
+true
+false
+true
+true
+false
+true
+false
+true
+true
+false
+false
+true
+false
diff --git a/win64/c3-0.1.7.win64/test/ic3/bool.out.expected b/win64/c3-0.1.7.win64/test/ic3/bool.out.expected
new file mode 100644
index 0000000..d6c1644
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/bool.out.expected
@@ -0,0 +1,30 @@
+true
+false
+true
+false
+false
+false
+false
+true
+false
+true
+true
+true
+true
+false
+false
+true
+false
+true
+false
+true
+true
+false
+true
+false
+true
+true
+false
+false
+true
+false
diff --git a/win64/c3-0.1.7.win64/test/ic3/bool.ret b/win64/c3-0.1.7.win64/test/ic3/bool.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/bool.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/bool.ret.expected b/win64/c3-0.1.7.win64/test/ic3/bool.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/bool.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/call.err.expected b/win64/c3-0.1.7.win64/test/ic3/call.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/call.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/call.in b/win64/c3-0.1.7.win64/test/ic3/call.in
new file mode 100644
index 0000000..427a171
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/call.in
@@ -0,0 +1,13 @@
+quote test()
+quote test(1)
+quote test(1, 2)
+quote test(1, 2, 3)
+quote Test.test()
+quote Test.test(1)
+quote Test.test(1, 2)
+quote Test.test(1, 2, 3)
+quote first((1, 2))
+quote C3.first((1, 2))
+first((1, 2))
+C3.first((2, 3))
+(1 + 2)
diff --git a/win64/c3-0.1.7.win64/test/ic3/call.out b/win64/c3-0.1.7.win64/test/ic3/call.out
new file mode 100644
index 0000000..b9a0bb3
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/call.out
@@ -0,0 +1,13 @@
+test()
+test(1)
+test(1, 2)
+test(1, 2, 3)
+Test.test()
+Test.test(1)
+Test.test(1, 2)
+Test.test(1, 2, 3)
+first((1, 2))
+C3.first((1, 2))
+1
+2
+3
diff --git a/win64/c3-0.1.7.win64/test/ic3/call.out.expected b/win64/c3-0.1.7.win64/test/ic3/call.out.expected
new file mode 100644
index 0000000..b9a0bb3
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/call.out.expected
@@ -0,0 +1,13 @@
+test()
+test(1)
+test(1, 2)
+test(1, 2, 3)
+Test.test()
+Test.test(1)
+Test.test(1, 2)
+Test.test(1, 2, 3)
+first((1, 2))
+C3.first((1, 2))
+1
+2
+3
diff --git a/win64/c3-0.1.7.win64/test/ic3/call.ret b/win64/c3-0.1.7.win64/test/ic3/call.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/call.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/call.ret.expected b/win64/c3-0.1.7.win64/test/ic3/call.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/call.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/cast.in b/win64/c3-0.1.7.win64/test/ic3/cast.in
new file mode 100644
index 0000000..e9b3683
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/cast.in
@@ -0,0 +1,26 @@
+quote (U8) 0
+(U8) 0
+quote (U8) 1
+(U8) 1
+quote (U8) 255
+(U8) 255
+quote (U8) 256
+(U8) 256
+quote (U16) 256
+(U16) 256
+quote (U16) 65535
+(U16) 65535
+quote (U16) 65536
+(U16) 65536
+quote (U32) 65536
+(U32) 65536
+quote (U32) 4294967296
+(U32) 4294967296
+quote (U64) 4294967296
+(U64) 4294967296
+quote (U64) 18446744073709551616
+(U64) 18446744073709551616
+quote (Integer) 18446744073709551616
+(Integer) 18446744073709551616
+quote (Integer) 340282366920938463463374607431768211455
+(Integer) 340282366920938463463374607431768211455
diff --git a/win64/c3-0.1.7.win64/test/ic3/cast.out b/win64/c3-0.1.7.win64/test/ic3/cast.out
new file mode 100644
index 0000000..bcf07a7
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/cast.out
@@ -0,0 +1,26 @@
+(U8) 0
+0
+(U8) 1
+1
+(U8) 255
+255
+(U8) 256
+0
+(U16) 256
+256
+(U16) 65535
+65535
+(U16) 65536
+0
+(U32) 65536
+65536
+(U32) 4294967296
+0
+(U64) 4294967296
+4294967296
+(U64) 18446744073709551616
+0
+(Integer) 18446744073709551616
+18446744073709551616
+(Integer) 340282366920938463463374607431768211455
+340282366920938463463374607431768211455
diff --git a/win64/c3-0.1.7.win64/test/ic3/cast.out.expected b/win64/c3-0.1.7.win64/test/ic3/cast.out.expected
new file mode 100644
index 0000000..bcf07a7
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/cast.out.expected
@@ -0,0 +1,26 @@
+(U8) 0
+0
+(U8) 1
+1
+(U8) 255
+255
+(U8) 256
+0
+(U16) 256
+256
+(U16) 65535
+65535
+(U16) 65536
+0
+(U32) 65536
+65536
+(U32) 4294967296
+0
+(U64) 4294967296
+4294967296
+(U64) 18446744073709551616
+0
+(Integer) 18446744073709551616
+18446744073709551616
+(Integer) 340282366920938463463374607431768211455
+340282366920938463463374607431768211455
diff --git a/win64/c3-0.1.7.win64/test/ic3/cast.ret b/win64/c3-0.1.7.win64/test/ic3/cast.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/cast.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/cast.ret.expected b/win64/c3-0.1.7.win64/test/ic3/cast.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/cast.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/character.err.expected b/win64/c3-0.1.7.win64/test/ic3/character.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/character.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/character.in b/win64/c3-0.1.7.win64/test/ic3/character.in
new file mode 100644
index 0000000..94813fc
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/character.in
@@ -0,0 +1,14 @@
+'0'
+'9'
+'A'
+'Z'
+'a'
+'z'
+'Π'
+'ÿ'
+'꒴'
+'𐅀'
+'🎳'
+'😄'
+'🟣'
+'🤩'
diff --git a/win64/c3-0.1.7.win64/test/ic3/character.out b/win64/c3-0.1.7.win64/test/ic3/character.out
new file mode 100644
index 0000000..94813fc
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/character.out
@@ -0,0 +1,14 @@
+'0'
+'9'
+'A'
+'Z'
+'a'
+'z'
+'Π'
+'ÿ'
+'꒴'
+'𐅀'
+'🎳'
+'😄'
+'🟣'
+'🤩'
diff --git a/win64/c3-0.1.7.win64/test/ic3/character.out.expected b/win64/c3-0.1.7.win64/test/ic3/character.out.expected
new file mode 100644
index 0000000..94813fc
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/character.out.expected
@@ -0,0 +1,14 @@
+'0'
+'9'
+'A'
+'Z'
+'a'
+'z'
+'Π'
+'ÿ'
+'꒴'
+'𐅀'
+'🎳'
+'😄'
+'🟣'
+'🤩'
diff --git a/win64/c3-0.1.7.win64/test/ic3/character.ret b/win64/c3-0.1.7.win64/test/ic3/character.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/character.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/character.ret.expected b/win64/c3-0.1.7.win64/test/ic3/character.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/character.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/comment.err.expected b/win64/c3-0.1.7.win64/test/ic3/comment.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/comment.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/comment.in b/win64/c3-0.1.7.win64/test/ic3/comment.in
new file mode 100644
index 0000000..bddc50e
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/comment.in
@@ -0,0 +1,15 @@
+# 0
+# 1
+# 2
+"a"
+# 3
+# 4
+# 5
+"b"
+# 6
+# 7
+# 8
+"c"
+# 9
+# 10
+# 11
\ No newline at end of file
diff --git a/win64/c3-0.1.7.win64/test/ic3/comment.out b/win64/c3-0.1.7.win64/test/ic3/comment.out
new file mode 100644
index 0000000..9df02fe
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/comment.out
@@ -0,0 +1,3 @@
+"a"
+"b"
+"c"
diff --git a/win64/c3-0.1.7.win64/test/ic3/comment.out.expected b/win64/c3-0.1.7.win64/test/ic3/comment.out.expected
new file mode 100644
index 0000000..9df02fe
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/comment.out.expected
@@ -0,0 +1,3 @@
+"a"
+"b"
+"c"
diff --git a/win64/c3-0.1.7.win64/test/ic3/comment.ret b/win64/c3-0.1.7.win64/test/ic3/comment.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/comment.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/comment.ret.expected b/win64/c3-0.1.7.win64/test/ic3/comment.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/comment.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/equal.err.expected b/win64/c3-0.1.7.win64/test/ic3/equal.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/equal.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/equal.in b/win64/c3-0.1.7.win64/test/ic3/equal.in
new file mode 100644
index 0000000..dada6b5
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/equal.in
@@ -0,0 +1,4 @@
+a = 1
+b = 1
+a = 2
+(a, b) = (1, 2)
diff --git a/win64/c3-0.1.7.win64/test/ic3/equal.out b/win64/c3-0.1.7.win64/test/ic3/equal.out
new file mode 100644
index 0000000..b6d8518
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/equal.out
@@ -0,0 +1,4 @@
+1
+1
+2
+(1, 2)
diff --git a/win64/c3-0.1.7.win64/test/ic3/equal.out.expected b/win64/c3-0.1.7.win64/test/ic3/equal.out.expected
new file mode 100644
index 0000000..b6d8518
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/equal.out.expected
@@ -0,0 +1,4 @@
+1
+1
+2
+(1, 2)
diff --git a/win64/c3-0.1.7.win64/test/ic3/equal.ret b/win64/c3-0.1.7.win64/test/ic3/equal.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/equal.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/equal.ret.expected b/win64/c3-0.1.7.win64/test/ic3/equal.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/equal.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/fn.err.expected b/win64/c3-0.1.7.win64/test/ic3/fn.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/fn.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/fn.in b/win64/c3-0.1.7.win64/test/ic3/fn.in
new file mode 100644
index 0000000..50eeeaa
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/fn.in
@@ -0,0 +1,29 @@
+quote fn (x) { x }
+quote fn (x, _y) { x }
+quote fn ((x | _y)) { x }
+quote fn {
+ (()) { :error }
+ ((x | _y)) { x }
+ (_) { :error }
+}
+quote fn (x) {
+ "Hello, world !"
+ x * 2
+}
+a = fn (x) { x }
+a(1)
+b = fn (x, _y) { x }
+b(1, 2)
+c = fn ((x | _y)) { x }
+c((1, 2))
+d = fn {
+ (()) { :error }
+ ((x | _y)) { x }
+ (_) { :error2 }
+}
+d((1, 2))
+e = fn (x) {
+ "Hello, world !"
+ x * 2
+}
+e(2)
diff --git a/win64/c3-0.1.7.win64/test/ic3/fn.out b/win64/c3-0.1.7.win64/test/ic3/fn.out
new file mode 100644
index 0000000..175d540
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/fn.out
@@ -0,0 +1,29 @@
+fn (x) { x }
+fn (x, _y) { x }
+fn ((x | _y)) { x }
+fn {
+ (()) { :error }
+ ((x | _y)) { x }
+ (_) { :error }
+}
+fn (x) {
+ "Hello, world !"
+ x * 2
+}
+fn (x) { x }
+1
+fn (x, _y) { x }
+1
+fn ((x | _y)) { x }
+1
+fn {
+ (()) { :error }
+ ((x | _y)) { x }
+ (_) { :error2 }
+}
+1
+fn (x) {
+ "Hello, world !"
+ x * 2
+}
+4
diff --git a/win64/c3-0.1.7.win64/test/ic3/fn.out.expected b/win64/c3-0.1.7.win64/test/ic3/fn.out.expected
new file mode 100644
index 0000000..175d540
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/fn.out.expected
@@ -0,0 +1,29 @@
+fn (x) { x }
+fn (x, _y) { x }
+fn ((x | _y)) { x }
+fn {
+ (()) { :error }
+ ((x | _y)) { x }
+ (_) { :error }
+}
+fn (x) {
+ "Hello, world !"
+ x * 2
+}
+fn (x) { x }
+1
+fn (x, _y) { x }
+1
+fn ((x | _y)) { x }
+1
+fn {
+ (()) { :error }
+ ((x | _y)) { x }
+ (_) { :error2 }
+}
+1
+fn (x) {
+ "Hello, world !"
+ x * 2
+}
+4
diff --git a/win64/c3-0.1.7.win64/test/ic3/fn.ret b/win64/c3-0.1.7.win64/test/ic3/fn.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/fn.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/fn.ret.expected b/win64/c3-0.1.7.win64/test/ic3/fn.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/fn.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/function_call.err.expected b/win64/c3-0.1.7.win64/test/ic3/function_call.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/function_call.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/function_call.out.expected b/win64/c3-0.1.7.win64/test/ic3/function_call.out.expected
new file mode 100644
index 0000000..004a0c4
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/function_call.out.expected
@@ -0,0 +1,10 @@
+fn {...}
+
+8
+16
+8
+16
+16000
+32000
+16000
+32000
diff --git a/win64/c3-0.1.7.win64/test/ic3/function_call.ret.expected b/win64/c3-0.1.7.win64/test/ic3/function_call.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/function_call.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/hello.err.expected b/win64/c3-0.1.7.win64/test/ic3/hello.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/hello.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/hello.in b/win64/c3-0.1.7.win64/test/ic3/hello.in
new file mode 100644
index 0000000..68b3cbd
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/hello.in
@@ -0,0 +1 @@
+"Hello, world !"
diff --git a/win64/c3-0.1.7.win64/test/ic3/hello.out b/win64/c3-0.1.7.win64/test/ic3/hello.out
new file mode 100644
index 0000000..68b3cbd
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/hello.out
@@ -0,0 +1 @@
+"Hello, world !"
diff --git a/win64/c3-0.1.7.win64/test/ic3/hello.out.expected b/win64/c3-0.1.7.win64/test/ic3/hello.out.expected
new file mode 100644
index 0000000..68b3cbd
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/hello.out.expected
@@ -0,0 +1 @@
+"Hello, world !"
diff --git a/win64/c3-0.1.7.win64/test/ic3/hello.ret b/win64/c3-0.1.7.win64/test/ic3/hello.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/hello.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/hello.ret.expected b/win64/c3-0.1.7.win64/test/ic3/hello.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/hello.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/ident.err.expected b/win64/c3-0.1.7.win64/test/ic3/ident.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/ident.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/ident.in b/win64/c3-0.1.7.win64/test/ic3/ident.in
new file mode 100644
index 0000000..3d5cd7f
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/ident.in
@@ -0,0 +1,28 @@
+quote _" "
+quote _"
+"
+quote _"\0"
+quote _"\n"
+quote _"\r"
+quote _"\s"
+quote _"\t"
+quote _"\v"
+quote _0
+quote _9
+quote _A
+quote _Z
+quote a
+quote z
+quote _À
+quote _É
+quote _Ÿ
+quote à
+quote é
+quote ÿ
+quote _Π
+quote ꒴
+quote 𐅀
+quote 🎳
+quote 😄
+quote 🟣
+quote 🤩
diff --git a/win64/c3-0.1.7.win64/test/ic3/ident.out b/win64/c3-0.1.7.win64/test/ic3/ident.out
new file mode 100644
index 0000000..d3a5815
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/ident.out
@@ -0,0 +1,27 @@
+_" "
+_"\n"
+_"\0"
+_"\n"
+_"\r"
+_" "
+_"\t"
+_"\v"
+_0
+_9
+_A
+_Z
+a
+z
+_À
+_É
+_Ÿ
+à
+é
+ÿ
+_Π
+꒴
+𐅀
+🎳
+😄
+🟣
+🤩
diff --git a/win64/c3-0.1.7.win64/test/ic3/ident.out.expected b/win64/c3-0.1.7.win64/test/ic3/ident.out.expected
new file mode 100644
index 0000000..d3a5815
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/ident.out.expected
@@ -0,0 +1,27 @@
+_" "
+_"\n"
+_"\0"
+_"\n"
+_"\r"
+_" "
+_"\t"
+_"\v"
+_0
+_9
+_A
+_Z
+a
+z
+_À
+_É
+_Ÿ
+à
+é
+ÿ
+_Π
+꒴
+𐅀
+🎳
+😄
+🟣
+🤩
diff --git a/win64/c3-0.1.7.win64/test/ic3/ident.ret b/win64/c3-0.1.7.win64/test/ic3/ident.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/ident.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/ident.ret.expected b/win64/c3-0.1.7.win64/test/ic3/ident.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/ident.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/integer.err.expected b/win64/c3-0.1.7.win64/test/ic3/integer.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/integer.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/integer.in b/win64/c3-0.1.7.win64/test/ic3/integer.in
new file mode 100644
index 0000000..2d92c5d
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/integer.in
@@ -0,0 +1,2860 @@
+-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+-0o2000000000000000000000000000000000000000000
+-0x80000000000000000000000000000000
+-0b01111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+-0o1777777777777777777777777777777777777777777
+-0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+-0b1000000000000000000000000000000000000000000000000000000000000000
+-0o1000000000000000000000
+-0x8000000000000000
+-0b0111111111111111111111111111111111111111111111111111111111111111
+-0o0777777777777777777777
+-0x7FFFFFFFFFFFFFFF
+-0b10000000000000000000000000000000
+-0o20000000000
+-0x80000000
+-0b01111111111111111111111111111111
+-0o17777777777
+-0x7FFFFFFF
+-0b1000000000000000
+-0o100000
+-0x8000
+-0b111111111111111
+-0o77777
+-0x7FFF
+-0b10000000
+-0o200
+-0x80
+-0b1111111
+-0o177
+-0x7F
+0b11111111
+0o377
+0xFF
+0b100000000
+0o400
+0x100
+0b1111111111111111
+0o177777
+0xFFFF
+0b10000000000000000
+0o200000
+0x10000
+0b011111111111111111111111111111111
+0o37777777777
+0x0FFFFFFFF
+0b100000000000000000000000000000000
+0o40000000000
+0x100000000
+0b01111111111111111111111111111111111111111111111111111111111111111
+0o1777777777777777777777
+0x0FFFFFFFFFFFFFFFF
+0b10000000000000000000000000000000000000000000000000000000000000000
+0o2000000000000000000000
+0x10000000000000000
+0b011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+0o3777777777777777777777777777777777777777777
+0x0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+0b100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+0o4000000000000000000000000000000000000000000
+0x100000000000000000000000000000000
+-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 + 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 + 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 - 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 - 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 * 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 * 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 / 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 / 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 < 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 < 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 == 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 == 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 > 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 > 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/win64/c3-0.1.7.win64/test/ic3/integer.out b/win64/c3-0.1.7.win64/test/ic3/integer.out
new file mode 100644
index 0000000..b83ea51
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/integer.out
@@ -0,0 +1,2860 @@
+-170141183460469231731687303715884105728
+-170141183460469231731687303715884105728
+-170141183460469231731687303715884105728
+-170141183460469231731687303715884105727
+-170141183460469231731687303715884105727
+-170141183460469231731687303715884105727
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775807
+-9223372036854775807
+-9223372036854775807
+-2147483648
+-2147483648
+-2147483648
+-2147483647
+-2147483647
+-2147483647
+-32768
+-32768
+-32768
+-32767
+-32767
+-32767
+-128
+-128
+-128
+-127
+-127
+-127
+255
+255
+255
+256
+256
+256
+65535
+65535
+65535
+65536
+65536
+65536
+4294967295
+4294967295
+4294967295
+4294967296
+4294967296
+4294967296
+18446744073709551615
+18446744073709551615
+18446744073709551615
+18446744073709551616
+18446744073709551616
+18446744073709551616
+340282366920938463463374607431768211455
+340282366920938463463374607431768211455
+340282366920938463463374607431768211455
+340282366920938463463374607431768211456
+340282366920938463463374607431768211456
+340282366920938463463374607431768211456
+-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
+-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
+-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
+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
+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
+-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
+4294967551
+4294967552
+18446744073709551871
+18446744073709551872
+340282366920938463463374607431768211711
+340282366920938463463374607431768211712
+-170141183460469231731687303715884040193
+-170141183460469231731687303715884040192
+-9223372036854710273
+-9223372036854710272
+-2147418113
+-2147418112
+32767
+32768
+65407
+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
+4295032831
+4295032832
+18446744073709617151
+18446744073709617152
+340282366920938463463374607431768276991
+340282366920938463463374607431768276992
+-170141183460469231731687303711589138433
+-170141183460469231731687303711589138432
+-9223372032559808513
+-9223372032559808512
+2147483647
+2147483648
+4294934527
+4294934528
+4294967167
+4294967168
+4294967550
+4294967551
+4295032830
+4295032831
+8589934590
+8589934591
+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
+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
+-1
+-170141183460469231722463931679029329920
+-170141183460469231722463931679029329921
+-170141183460469231731687303713736622080
+-170141183460469231731687303713736622081
+-170141183460469231731687303715884072960
+-170141183460469231731687303715884072961
+-170141183460469231731687303715884105600
+-170141183460469231731687303715884105601
+-170141183460469231731687303715884105983
+-170141183460469231731687303715884105984
+-170141183460469231731687303715884171263
+-170141183460469231731687303715884171264
+-170141183460469231731687303720179073023
+-170141183460469231731687303720179073024
+-170141183460469231750134047789593657343
+-170141183460469231750134047789593657344
+-510423550381407695195061911147652317183
+-510423550381407695195061911147652317184
+1
+0
+-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
+-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
+-1
+-383
+-384
+-65663
+-65664
+-4294967423
+-4294967424
+-18446744073709551743
+-18446744073709551744
+-340282366920938463463374607431768211583
+-340282366920938463463374607431768211584
+170141183460469231731687303715884105601
+170141183460469231731687303715884105600
+9223372036854775681
+9223372036854775680
+2147483521
+2147483520
+32641
+32640
+1
+0
+-382
+-383
+-65662
+-65663
+-4294967422
+-4294967423
+-18446744073709551742
+-18446744073709551743
+-340282366920938463463374607431768211582
+-340282366920938463463374607431768211583
+170141183460469231731687303715884105983
+170141183460469231731687303715884105982
+9223372036854776063
+9223372036854776062
+2147483903
+2147483902
+33023
+33022
+383
+382
+0
+-1
+-65280
+-65281
+-4294967040
+-4294967041
+-18446744073709551360
+-18446744073709551361
+-340282366920938463463374607431768211200
+-340282366920938463463374607431768211201
+170141183460469231731687303715884105984
+170141183460469231731687303715884105983
+9223372036854776064
+9223372036854776063
+2147483904
+2147483903
+33024
+33023
+384
+383
+1
+0
+-65279
+-65280
+-4294967039
+-4294967040
+-18446744073709551359
+-18446744073709551360
+-340282366920938463463374607431768211199
+-340282366920938463463374607431768211200
+170141183460469231731687303715884171263
+170141183460469231731687303715884171262
+9223372036854841343
+9223372036854841342
+2147549183
+2147549182
+98303
+98302
+65663
+65662
+65280
+65279
+0
+-1
+-4294901760
+-4294901761
+-18446744073709486080
+-18446744073709486081
+-340282366920938463463374607431768145920
+-340282366920938463463374607431768145921
+170141183460469231731687303715884171264
+170141183460469231731687303715884171263
+9223372036854841344
+9223372036854841343
+2147549184
+2147549183
+98304
+98303
+65664
+65663
+65281
+65280
+1
+0
+-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
+-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
+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
+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
+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
+18446744073709551616
+18446744073709551618
+79228162514264337593543950336
+79228162551157825758142922760
+5192296858534827628530496329220096
+5192455319695707014120526862876800
+1329227995784915872903807060280344576
+1339694357956450643556592942644756738
+-667220327295957771496812955748565120
+-664613997892457936451903530140172288
+-2596188043953143079754136014585856
+-2596148429267413814265248164610048
+-39614081266355540835774234624
+-39614081257132168796771975168
+-9223372036854775808
+-9223372036854775808
+0
+0
+0
+1
+18446744073709551615
+18446744073709551618
+79228162514264337593543950335
+79228162551157825758142922760
+5192296858534827628530496329220095
+5192455319695707014120526862876800
+1329227995784915872903807060280344575
+1339694357956450643556592942644756738
+-667220327295957771496812955748565120
+-664613997892457936451903530140172287
+-2596188043953143079754136014585856
+-2596148429267413814265248164610047
+-39614081266355540835774234624
+-39614081257132168796771975167
+-9223372036854775808
+-9223372036854775807
+0
+0
+0
+0
+1
+1
+4294967296
+4294967298
+281474976710656
+281483566907400
+72057594037927936
+72624976668147841
+-36170086419038336
+-36028797018963968
+-140739635871744
+-140737488355328
+-2147483648
+-2147483648
+0
+0
+0
+0
+0
+0
+0
+1
+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
+0
+0
+0
+1
+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
+0
+0
+0
+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
+0
+0
+0
+0
+0
+-1
+-2
+-511
+-516
+257
+255
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+-2
+-512
+-516
+257
+256
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+-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
+1
+1
+0
+0
+0
+0
+0
+0
+-1
+-2
+-8589934591
+-8589934596
+-562949953421311
+-562967133814800
+-144115188075855871
+-145249953336295682
+72340172838076673
+72057594037927935
+281479271743489
+281474976710655
+4294967297
+4294967295
+1
+0
+0
+0
+0
+0
+-2
+-2
+-8589934592
+-8589934596
+-562949953421312
+-562967133814800
+-144115188075855872
+-145249953336295682
+72340172838076673
+72057594037927936
+281479271743489
+281474976710656
+4294967297
+4294967296
+1
+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
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
diff --git a/win64/c3-0.1.7.win64/test/ic3/integer.out.expected b/win64/c3-0.1.7.win64/test/ic3/integer.out.expected
new file mode 100644
index 0000000..b83ea51
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/integer.out.expected
@@ -0,0 +1,2860 @@
+-170141183460469231731687303715884105728
+-170141183460469231731687303715884105728
+-170141183460469231731687303715884105728
+-170141183460469231731687303715884105727
+-170141183460469231731687303715884105727
+-170141183460469231731687303715884105727
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775807
+-9223372036854775807
+-9223372036854775807
+-2147483648
+-2147483648
+-2147483648
+-2147483647
+-2147483647
+-2147483647
+-32768
+-32768
+-32768
+-32767
+-32767
+-32767
+-128
+-128
+-128
+-127
+-127
+-127
+255
+255
+255
+256
+256
+256
+65535
+65535
+65535
+65536
+65536
+65536
+4294967295
+4294967295
+4294967295
+4294967296
+4294967296
+4294967296
+18446744073709551615
+18446744073709551615
+18446744073709551615
+18446744073709551616
+18446744073709551616
+18446744073709551616
+340282366920938463463374607431768211455
+340282366920938463463374607431768211455
+340282366920938463463374607431768211455
+340282366920938463463374607431768211456
+340282366920938463463374607431768211456
+340282366920938463463374607431768211456
+-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
+-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
+-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
+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
+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
+-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
+4294967551
+4294967552
+18446744073709551871
+18446744073709551872
+340282366920938463463374607431768211711
+340282366920938463463374607431768211712
+-170141183460469231731687303715884040193
+-170141183460469231731687303715884040192
+-9223372036854710273
+-9223372036854710272
+-2147418113
+-2147418112
+32767
+32768
+65407
+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
+4295032831
+4295032832
+18446744073709617151
+18446744073709617152
+340282366920938463463374607431768276991
+340282366920938463463374607431768276992
+-170141183460469231731687303711589138433
+-170141183460469231731687303711589138432
+-9223372032559808513
+-9223372032559808512
+2147483647
+2147483648
+4294934527
+4294934528
+4294967167
+4294967168
+4294967550
+4294967551
+4295032830
+4295032831
+8589934590
+8589934591
+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
+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
+-1
+-170141183460469231722463931679029329920
+-170141183460469231722463931679029329921
+-170141183460469231731687303713736622080
+-170141183460469231731687303713736622081
+-170141183460469231731687303715884072960
+-170141183460469231731687303715884072961
+-170141183460469231731687303715884105600
+-170141183460469231731687303715884105601
+-170141183460469231731687303715884105983
+-170141183460469231731687303715884105984
+-170141183460469231731687303715884171263
+-170141183460469231731687303715884171264
+-170141183460469231731687303720179073023
+-170141183460469231731687303720179073024
+-170141183460469231750134047789593657343
+-170141183460469231750134047789593657344
+-510423550381407695195061911147652317183
+-510423550381407695195061911147652317184
+1
+0
+-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
+-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
+-1
+-383
+-384
+-65663
+-65664
+-4294967423
+-4294967424
+-18446744073709551743
+-18446744073709551744
+-340282366920938463463374607431768211583
+-340282366920938463463374607431768211584
+170141183460469231731687303715884105601
+170141183460469231731687303715884105600
+9223372036854775681
+9223372036854775680
+2147483521
+2147483520
+32641
+32640
+1
+0
+-382
+-383
+-65662
+-65663
+-4294967422
+-4294967423
+-18446744073709551742
+-18446744073709551743
+-340282366920938463463374607431768211582
+-340282366920938463463374607431768211583
+170141183460469231731687303715884105983
+170141183460469231731687303715884105982
+9223372036854776063
+9223372036854776062
+2147483903
+2147483902
+33023
+33022
+383
+382
+0
+-1
+-65280
+-65281
+-4294967040
+-4294967041
+-18446744073709551360
+-18446744073709551361
+-340282366920938463463374607431768211200
+-340282366920938463463374607431768211201
+170141183460469231731687303715884105984
+170141183460469231731687303715884105983
+9223372036854776064
+9223372036854776063
+2147483904
+2147483903
+33024
+33023
+384
+383
+1
+0
+-65279
+-65280
+-4294967039
+-4294967040
+-18446744073709551359
+-18446744073709551360
+-340282366920938463463374607431768211199
+-340282366920938463463374607431768211200
+170141183460469231731687303715884171263
+170141183460469231731687303715884171262
+9223372036854841343
+9223372036854841342
+2147549183
+2147549182
+98303
+98302
+65663
+65662
+65280
+65279
+0
+-1
+-4294901760
+-4294901761
+-18446744073709486080
+-18446744073709486081
+-340282366920938463463374607431768145920
+-340282366920938463463374607431768145921
+170141183460469231731687303715884171264
+170141183460469231731687303715884171263
+9223372036854841344
+9223372036854841343
+2147549184
+2147549183
+98304
+98303
+65664
+65663
+65281
+65280
+1
+0
+-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
+-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
+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
+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
+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
+18446744073709551616
+18446744073709551618
+79228162514264337593543950336
+79228162551157825758142922760
+5192296858534827628530496329220096
+5192455319695707014120526862876800
+1329227995784915872903807060280344576
+1339694357956450643556592942644756738
+-667220327295957771496812955748565120
+-664613997892457936451903530140172288
+-2596188043953143079754136014585856
+-2596148429267413814265248164610048
+-39614081266355540835774234624
+-39614081257132168796771975168
+-9223372036854775808
+-9223372036854775808
+0
+0
+0
+1
+18446744073709551615
+18446744073709551618
+79228162514264337593543950335
+79228162551157825758142922760
+5192296858534827628530496329220095
+5192455319695707014120526862876800
+1329227995784915872903807060280344575
+1339694357956450643556592942644756738
+-667220327295957771496812955748565120
+-664613997892457936451903530140172287
+-2596188043953143079754136014585856
+-2596148429267413814265248164610047
+-39614081266355540835774234624
+-39614081257132168796771975167
+-9223372036854775808
+-9223372036854775807
+0
+0
+0
+0
+1
+1
+4294967296
+4294967298
+281474976710656
+281483566907400
+72057594037927936
+72624976668147841
+-36170086419038336
+-36028797018963968
+-140739635871744
+-140737488355328
+-2147483648
+-2147483648
+0
+0
+0
+0
+0
+0
+0
+1
+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
+0
+0
+0
+1
+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
+0
+0
+0
+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
+0
+0
+0
+0
+0
+-1
+-2
+-511
+-516
+257
+255
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-2
+-2
+-512
+-516
+257
+256
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+-1
+-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
+1
+1
+0
+0
+0
+0
+0
+0
+-1
+-2
+-8589934591
+-8589934596
+-562949953421311
+-562967133814800
+-144115188075855871
+-145249953336295682
+72340172838076673
+72057594037927935
+281479271743489
+281474976710655
+4294967297
+4294967295
+1
+0
+0
+0
+0
+0
+-2
+-2
+-8589934592
+-8589934596
+-562949953421312
+-562967133814800
+-144115188075855872
+-145249953336295682
+72340172838076673
+72057594037927936
+281479271743489
+281474976710656
+4294967297
+4294967296
+1
+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
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
+false
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+false
diff --git a/win64/c3-0.1.7.win64/test/ic3/integer.ret b/win64/c3-0.1.7.win64/test/ic3/integer.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/integer.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/integer.ret.expected b/win64/c3-0.1.7.win64/test/ic3/integer.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/integer.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/list.err.expected b/win64/c3-0.1.7.win64/test/ic3/list.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/list.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/list.in b/win64/c3-0.1.7.win64/test/ic3/list.in
new file mode 100644
index 0000000..d0852ec
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/list.in
@@ -0,0 +1,46 @@
+()
+(() | ())
+((), ())
+((), (), ())
+((), (), (), ())
+((), () | ())
+((), (), () | ())
+(() | ((), ()))
+(() | ((), (), ()))
+(() | (() | ()))
+(() | ((), () | ()))
+(() | ((), (), () | ()))
+(((), ()) | ((), ()))
+((() | ()) | (() | ()))
+(:a | ())
+(:a, :b)
+(:a, :b, :c)
+(:a | :b)
+(:a, :b | :c)
+(:a, :b, :c, :d)
+(:a, :b, :c | :d)
+
+# comment 0
+# comment 0b
+( # comment 1
+ # comment 1b
+ :a # comment 2
+ # comment 2b
+ , # comment 3
+ # comment 3b
+ :b ## comment 4
+ ## comment 4b
+ , ## comment 5
+ ## comment 5b
+ :c ## comment 6
+ ## comment 6b
+ | ## comment 7
+ ## comment 7b
+ :d ## comment 8
+ ## comment 8b
+ ) ## comment 9
+ ## comment 9b
+
+List.map((1, 2, 3, 4), fn (x) { x * 2 })
+
+List.reverse((1, 2, 3, 4))
diff --git a/win64/c3-0.1.7.win64/test/ic3/list.out b/win64/c3-0.1.7.win64/test/ic3/list.out
new file mode 100644
index 0000000..6b61ae3
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/list.out
@@ -0,0 +1,24 @@
+()
+(() | ())
+((), ())
+((), (), ())
+((), (), (), ())
+((), ())
+((), (), ())
+((), (), ())
+((), (), (), ())
+((), ())
+((), (), ())
+((), (), (), ())
+(((), ()), (), ())
+((() | ()), ())
+(:a | ())
+(:a, :b)
+(:a, :b, :c)
+(:a | :b)
+(:a, :b | :c)
+(:a, :b, :c, :d)
+(:a, :b, :c | :d)
+(:a, :b, :c | :d)
+(2, 4, 6, 8)
+(4, 3, 2, 1)
diff --git a/win64/c3-0.1.7.win64/test/ic3/list.out.expected b/win64/c3-0.1.7.win64/test/ic3/list.out.expected
new file mode 100644
index 0000000..6b61ae3
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/list.out.expected
@@ -0,0 +1,24 @@
+()
+(() | ())
+((), ())
+((), (), ())
+((), (), (), ())
+((), ())
+((), (), ())
+((), (), ())
+((), (), (), ())
+((), ())
+((), (), ())
+((), (), (), ())
+(((), ()), (), ())
+((() | ()), ())
+(:a | ())
+(:a, :b)
+(:a, :b, :c)
+(:a | :b)
+(:a, :b | :c)
+(:a, :b, :c, :d)
+(:a, :b, :c | :d)
+(:a, :b, :c | :d)
+(2, 4, 6, 8)
+(4, 3, 2, 1)
diff --git a/win64/c3-0.1.7.win64/test/ic3/list.ret b/win64/c3-0.1.7.win64/test/ic3/list.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/list.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/list.ret.expected b/win64/c3-0.1.7.win64/test/ic3/list.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/list.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/op.err.expected b/win64/c3-0.1.7.win64/test/ic3/op.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/op.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/op.in b/win64/c3-0.1.7.win64/test/ic3/op.in
new file mode 100644
index 0000000..dc7e749
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/op.in
@@ -0,0 +1,14 @@
+quote 1 + 20
+1 + 20
+quote 1 + 20 / 3
+1 + 20 / 3
+quote 1 + 20 / 3 * 4
+1 + 20 / 3 * 4
+quote 1 + 20 / 3 * 4 - 5
+1 + 20 / 3 * 4 - 5
+quote 20 / 3 * 4 - 5
+20 / 3 * 4 - 5
+quote (1 + 20)
+(1 + 20)
+quote a = (1 + 20)
+a = (1 + 20)
diff --git a/win64/c3-0.1.7.win64/test/ic3/op.out b/win64/c3-0.1.7.win64/test/ic3/op.out
new file mode 100644
index 0000000..7ff43c5
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/op.out
@@ -0,0 +1,14 @@
+1 + 20
+21
+1 + 20 / 3
+7
+1 + 20 / 3 * 4
+25
+1 + 20 / 3 * 4 - 5
+20
+20 / 3 * 4 - 5
+19
+(1 + 20)
+21
+a = (1 + 20)
+21
diff --git a/win64/c3-0.1.7.win64/test/ic3/op.out.expected b/win64/c3-0.1.7.win64/test/ic3/op.out.expected
new file mode 100644
index 0000000..7ff43c5
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/op.out.expected
@@ -0,0 +1,14 @@
+1 + 20
+21
+1 + 20 / 3
+7
+1 + 20 / 3 * 4
+25
+1 + 20 / 3 * 4 - 5
+20
+20 / 3 * 4 - 5
+19
+(1 + 20)
+21
+a = (1 + 20)
+21
diff --git a/win64/c3-0.1.7.win64/test/ic3/op.ret b/win64/c3-0.1.7.win64/test/ic3/op.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/op.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/op.ret.expected b/win64/c3-0.1.7.win64/test/ic3/op.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/op.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/str.err.expected b/win64/c3-0.1.7.win64/test/ic3/str.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/str.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/str.in b/win64/c3-0.1.7.win64/test/ic3/str.in
new file mode 100644
index 0000000..37cb6db
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/str.in
@@ -0,0 +1,48 @@
+" "
+"
+"
+"\0"
+"\n"
+"\r"
+"\s"
+"\t"
+"\v"
+"0"
+"9"
+"A"
+"Z"
+"a"
+"z"
+"À"
+"É"
+"Ÿ"
+"à"
+"é"
+"ÿ"
+"Π"
+"꒴"
+"𐅀"
+"🎳"
+"😄"
+"🟣"
+"🤩"
+"""abc"""
+"""
+abc
+"""
+
+"""abc
+def"""
+
+"""abc
+def
+"""
+
+"""
+abc
+def"""
+
+"""
+abc
+def
+"""
diff --git a/win64/c3-0.1.7.win64/test/ic3/str.out b/win64/c3-0.1.7.win64/test/ic3/str.out
new file mode 100644
index 0000000..769ed5e
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/str.out
@@ -0,0 +1,33 @@
+" "
+"\n"
+"\0"
+"\n"
+"\r"
+" "
+"\t"
+"\v"
+"0"
+"9"
+"A"
+"Z"
+"a"
+"z"
+"À"
+"É"
+"Ÿ"
+"à"
+"é"
+"ÿ"
+"Π"
+"꒴"
+"𐅀"
+"🎳"
+"😄"
+"🟣"
+"🤩"
+"abc"
+"abc"
+"abc\ndef"
+"abc\ndef\n"
+"abc\ndef"
+"abc\ndef"
diff --git a/win64/c3-0.1.7.win64/test/ic3/str.out.expected b/win64/c3-0.1.7.win64/test/ic3/str.out.expected
new file mode 100644
index 0000000..769ed5e
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/str.out.expected
@@ -0,0 +1,33 @@
+" "
+"\n"
+"\0"
+"\n"
+"\r"
+" "
+"\t"
+"\v"
+"0"
+"9"
+"A"
+"Z"
+"a"
+"z"
+"À"
+"É"
+"Ÿ"
+"à"
+"é"
+"ÿ"
+"Π"
+"꒴"
+"𐅀"
+"🎳"
+"😄"
+"🟣"
+"🤩"
+"abc"
+"abc"
+"abc\ndef"
+"abc\ndef\n"
+"abc\ndef"
+"abc\ndef"
diff --git a/win64/c3-0.1.7.win64/test/ic3/str.ret b/win64/c3-0.1.7.win64/test/ic3/str.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/str.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/str.ret.expected b/win64/c3-0.1.7.win64/test/ic3/str.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/str.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/sym.err.expected b/win64/c3-0.1.7.win64/test/ic3/sym.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/sym.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/sym.in b/win64/c3-0.1.7.win64/test/ic3/sym.in
new file mode 100644
index 0000000..4cd7962
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/sym.in
@@ -0,0 +1,28 @@
+:" "
+:"
+"
+:"\0"
+:"\n"
+:"\r"
+:"\s"
+:"\t"
+:"\v"
+:0
+:9
+A
+Z
+:a
+:z
+À
+É
+Ÿ
+:à
+:é
+:ÿ
+Π
+:꒴
+:𐅀
+:🎳
+:😄
+:🟣
+:🤩
diff --git a/win64/c3-0.1.7.win64/test/ic3/sym.out b/win64/c3-0.1.7.win64/test/ic3/sym.out
new file mode 100644
index 0000000..b175d40
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/sym.out
@@ -0,0 +1,27 @@
+:" "
+:"\n"
+:"\0"
+:"\n"
+:"\r"
+:" "
+:"\t"
+:"\v"
+:0
+:9
+A
+Z
+:a
+:z
+À
+É
+Ÿ
+:à
+:é
+:ÿ
+Π
+:꒴
+:𐅀
+:🎳
+:😄
+:🟣
+:🤩
diff --git a/win64/c3-0.1.7.win64/test/ic3/sym.out.expected b/win64/c3-0.1.7.win64/test/ic3/sym.out.expected
new file mode 100644
index 0000000..b175d40
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/sym.out.expected
@@ -0,0 +1,27 @@
+:" "
+:"\n"
+:"\0"
+:"\n"
+:"\r"
+:" "
+:"\t"
+:"\v"
+:0
+:9
+A
+Z
+:a
+:z
+À
+É
+Ÿ
+:à
+:é
+:ÿ
+Π
+:꒴
+:𐅀
+:🎳
+:😄
+:🟣
+:🤩
diff --git a/win64/c3-0.1.7.win64/test/ic3/sym.ret b/win64/c3-0.1.7.win64/test/ic3/sym.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/sym.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/sym.ret.expected b/win64/c3-0.1.7.win64/test/ic3/sym.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/sym.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/tuple.err.expected b/win64/c3-0.1.7.win64/test/ic3/tuple.err.expected
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/tuple.err.expected
diff --git a/win64/c3-0.1.7.win64/test/ic3/tuple.in b/win64/c3-0.1.7.win64/test/ic3/tuple.in
new file mode 100644
index 0000000..116dce1
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/tuple.in
@@ -0,0 +1,43 @@
+{(), ()}
+{"", ""}
+{(), ""}
+{"", ()}
+{:a, :b}
+{:a, :b, :c}
+{:a, :b, :c, :d}
+{:a, :b, :c, :d, :e}
+{:a, :b, :c, :d, :e, :f}
+{:a, :b, :c, :d, :e, :f, :g}
+{:a, :b, :c, :d, :e, :f, :g, :h}
+{:a, :b, :c, :d, :e, :f, :g, :h, :i}
+{:a, :b, :c, :d, :e, :f, :g, :h, :i, :j}
+{{:a, :b}, {:c, :d}}
+{{:a, :b}, {:c, :d}, {:e, :f}}
+{{:a, :b}, {:c, :d}, {:e, :f}, {:g, :h}}
+{{:a, :b}, {:c, :d}, {:e, :f}, {:g, :h}, {:i, :j}}
+
+# comment 0
+# comment 0b
+{ # comment 1
+ # comment 1b
+ :a # comment 2
+ # comment 2b
+ , # comment 3
+ # comment 3b
+ :b ## comment 4
+ ## comment 4b
+ , ## comment 5
+ ## comment 5b
+ :c ## comment 6
+ ## comment 6b
+ } ## comment 7
+ ## comment 7b
+
+# comment 10
+{ # comment 11
+ :a # comment 12
+ , # comment 13
+ :b ## comment 14
+ , ## comment 15
+ :c ## comment 16
+ } ## comment 17
diff --git a/win64/c3-0.1.7.win64/test/ic3/tuple.out b/win64/c3-0.1.7.win64/test/ic3/tuple.out
new file mode 100644
index 0000000..b8de9cc
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/tuple.out
@@ -0,0 +1,19 @@
+{(), ()}
+{"", ""}
+{(), ""}
+{"", ()}
+{:a, :b}
+{:a, :b, :c}
+{:a, :b, :c, :d}
+{:a, :b, :c, :d, :e}
+{:a, :b, :c, :d, :e, :f}
+{:a, :b, :c, :d, :e, :f, :g}
+{:a, :b, :c, :d, :e, :f, :g, :h}
+{:a, :b, :c, :d, :e, :f, :g, :h, :i}
+{:a, :b, :c, :d, :e, :f, :g, :h, :i, :j}
+{{:a, :b}, {:c, :d}}
+{{:a, :b}, {:c, :d}, {:e, :f}}
+{{:a, :b}, {:c, :d}, {:e, :f}, {:g, :h}}
+{{:a, :b}, {:c, :d}, {:e, :f}, {:g, :h}, {:i, :j}}
+{:a, :b, :c}
+{:a, :b, :c}
diff --git a/win64/c3-0.1.7.win64/test/ic3/tuple.out.expected b/win64/c3-0.1.7.win64/test/ic3/tuple.out.expected
new file mode 100644
index 0000000..b8de9cc
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/tuple.out.expected
@@ -0,0 +1,19 @@
+{(), ()}
+{"", ""}
+{(), ""}
+{"", ()}
+{:a, :b}
+{:a, :b, :c}
+{:a, :b, :c, :d}
+{:a, :b, :c, :d, :e}
+{:a, :b, :c, :d, :e, :f}
+{:a, :b, :c, :d, :e, :f, :g}
+{:a, :b, :c, :d, :e, :f, :g, :h}
+{:a, :b, :c, :d, :e, :f, :g, :h, :i}
+{:a, :b, :c, :d, :e, :f, :g, :h, :i, :j}
+{{:a, :b}, {:c, :d}}
+{{:a, :b}, {:c, :d}, {:e, :f}}
+{{:a, :b}, {:c, :d}, {:e, :f}, {:g, :h}}
+{{:a, :b}, {:c, :d}, {:e, :f}, {:g, :h}, {:i, :j}}
+{:a, :b, :c}
+{:a, :b, :c}
diff --git a/win64/c3-0.1.7.win64/test/ic3/tuple.ret b/win64/c3-0.1.7.win64/test/ic3/tuple.ret
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/tuple.ret
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3/tuple.ret.expected b/win64/c3-0.1.7.win64/test/ic3/tuple.ret.expected
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3/tuple.ret.expected
@@ -0,0 +1 @@
+0
diff --git a/win64/c3-0.1.7.win64/test/ic3_test b/win64/c3-0.1.7.win64/test/ic3_test
new file mode 100644
index 0000000..280d9e7
--- /dev/null
+++ b/win64/c3-0.1.7.win64/test/ic3_test
@@ -0,0 +1,75 @@
+#!/bin/sh
+cd "$(dirname $0)/ic3" || exit
+
+TEST_COLOR_KO="[0;91m"
+TEST_COLOR_OK="[0;92m"
+TEST_COLOR_RESET="[0m"
+TEST_COUNT=0
+TEST_KO=0
+TEST_OK=0
+
+if [ "x$IC3" = "x" ]; then
+ if [ -f ../../ic3/ic3 ]; then
+ IC3=../../ic3/ic3
+ elif [ -f ../../ic3 ]; then
+ IC3=../../ic3
+ fi
+fi
+
+test_ko() {
+ echo -n "${TEST_COLOR_KO}F${TEST_COLOR_RESET}"
+ TEST_KO=$(($TEST_KO + 1))
+ TEST_COUNT=$(($TEST_COUNT + 1))
+}
+
+test_ok() {
+ echo -n "${TEST_COLOR_OK}.${TEST_COLOR_RESET}"
+ TEST_OK=$(($TEST_OK + 1))
+ TEST_COUNT=$(($TEST_COUNT + 1))
+}
+
+if [ $# = 0 ]; then
+ if [ "x${IC3_TEST_TARGETS}" = "x" ]; then
+ TARGETS="$(ls -1 *.in | sed -e 's/[.]in$//')"
+ else
+ TARGETS="${IC3_TEST_TARGETS}"
+ fi
+else
+ TARGETS="$@"
+fi
+
+for TARGET in $TARGETS; do
+ RESULT=test_ok
+ $IC3 < ${TARGET}.in > ${TARGET}.out 2>&1
+ echo $? > ${TARGET}.ret
+ if ! diff -au ${TARGET}.out.expected ${TARGET}.out > ${TARGET}.diff
+ then
+ RESULT=test_ko
+ fi
+ if ! diff -au ${TARGET}.ret.expected ${TARGET}.ret >> ${TARGET}.diff
+ then
+ RESULT=test_ko
+ fi
+ if [ "x$RESULT" = "xtest_ok" ]; then
+ rm ${TARGET}.diff
+ test_ok
+ else
+ test_ko
+ fi
+done
+echo
+for TARGET in $TARGETS; do
+ if [ -f "${TARGET}.diff" ]; then
+ cat "${TARGET}.diff"
+ fi
+done
+echo
+echo -n "Total $TEST_COUNT tests. "
+echo -n "${TEST_COLOR_OK}OK $TEST_OK ($(($TEST_OK * 100 / $TEST_COUNT))%)${TEST_COLOR_RESET}. "
+echo "${TEST_COLOR_KO}KO $TEST_KO ($(($TEST_KO * 100 / $TEST_COUNT))%)${TEST_COLOR_RESET}."
+
+if [ "x$TEST_KO" = "x0" ]; then
+ exit 0
+fi
+
+exit 1