detached 4adbc1a

fix(expr): compare and search strings with OrdinalIgnoreCase, as the runner does

commit
4adbc1a55b4cf28cc09b66ea7ea0c137a4ae7980
author
brice · · 2026-10-12 17:43 UTC
parent
633b184
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
14 files · +3412 -50
M expr/PORTING.md +24 -13
@@ -83,16 +83,28 @@ whether to keep the JS behaviour or follow the runner.
8383 specifier; C# may throw. The error texts are the JS ones. Check the C#
8484 `Format` node for the exact messages and for `{N}` with `N` > 255 or
8585 leading zeros.
86-- [ ] **`contains()` lower-cases (`toLowerCase`), `startsWith`/`endsWith`
87- upper-case (`toUpperSpecial`).** The C# uses `OrdinalIgnoreCase`
88- comparisons, which differ for `ß`, `İ`, `ı`, the Kelvin sign and final
89- sigma. `contains('ß', 'ss')` is false in JS; `startsWith('ß', 'ss')` is
90- true. Check what the runner does.
91-- [ ] **`==` on strings uses `toUpperSpecial`** (upper-case with the dotless
92- `ı` left alone, full Unicode mapping so `ß == 'SS'`), and `<`/`>` compare
93- the upper-cased UTF-16 code units. C# `OrdinalIgnoreCase` upper-cases
94- per UTF-16 code unit with simple mappings only: `ß == 'SS'` should be
95- false there.
86+- [x] **`contains()`, `startsWith`/`endsWith`, `==`, `<`, `>` and key lookup use
87+ `OrdinalIgnoreCase`.** Resolved: follows the C#. Every string comparison
88+ in the runner is `StringComparison.OrdinalIgnoreCase`
89+ (`EvaluationResult.cs` `AbstractEqual`/`AbstractGreaterThan`/
90+ `AbstractLessThan`; `Sdk/Functions/Contains.cs`, `StartsWith.cs`,
91+ `EndsWith.cs`; `StringComparer.OrdinalIgnoreCase` for context names,
92+ function names (`ExpressionParser.cs` `ParseContext`,
93+ `ExpressionConstants.WellKnownFunctions`) and dictionary keys
94+ (`DictionaryContextData.IndexLookup`)). That folds one code point at a
95+ time with a simple mapping: `ß` is not `SS`, `ı` and `İ` and `ſ` and the
96+ Kelvin sign are not `i`/`I`/`s`/`k`, `ς` and `σ` are equal, `Dž` is `dž`.
97+ `contains()` no longer lower-cases (JS) and `startsWith`/`endsWith` no
98+ longer upper-case with full mappings (JS). Ordering (`<`, `>`) is by
99+ code point after folding, so a supplementary character sorts after
100+ U+E000..U+FFFF (JS orders UTF-16 units). `ordinal.go` implements it;
101+ `fold_tables.go` is generated from the runner's behaviour
102+ (`go generate`, `gen/runner --fold`), and
103+ `TestOrdinalFoldMatchesRunner` replays 1 564 pairs recorded from .NET.
104+ The table is the one of the .NET runtime that produced it (9.0); the
105+ runner ships its own runtime, so a different Unicode version could differ
106+ on newly assigned letters.
107+- [x] **`==` on strings, `<`, `>`**: see the previous item (same folding).
96108 - [x] **Number to string (`CoerceString`)**: resolved, follows the C#. The
97109 runner converts every number with `Double.ToString("G15",
98110 InvariantCulture)` (`ExpressionConstants.NumberFormat`,
@@ -214,9 +226,8 @@ a bug.
214226 layer, not to package expr.
215227 - [ ] `format()` argument limit is 255 in the JS (`MAX_ARGUMENTS`); the C#
216228 limit is `ExpressionConstants.MaxArguments` (check).
217-- [ ] Case-insensitive comparison and `contains`: if C# `OrdinalIgnoreCase`
218- is the truth, replace `toUpperSpecial`/`jsToLower` by per-UTF-16-unit
219- simple upper-casing and regenerate the oracle tests accordingly.
229+- [x] Case-insensitive comparison and `contains`: `OrdinalIgnoreCase` is the
230+ truth, see above.
220231 - [ ] Secret masking and the `${{ }}` splitting of a larger string are not
221232 part of this package (they belong to the template layer): `Parse`
222233 takes the text between the braces only.
@@ -83,16 +83,28 @@ whether to keep the JS behaviour or follow the runner.
83 specifier; C# may throw. The error texts are the JS ones. Check the C#83 specifier; C# may throw. The error texts are the JS ones. Check the C#
84 `Format` node for the exact messages and for `{N}` with `N` > 255 or84 `Format` node for the exact messages and for `{N}` with `N` > 255 or
85 leading zeros.85 leading zeros.
86-- [ ] **`contains()` lower-cases (`toLowerCase`), `startsWith`/`endsWith`86+- [x] **`contains()`, `startsWith`/`endsWith`, `==`, `<`, `>` and key lookup use
87- upper-case (`toUpperSpecial`).** The C# uses `OrdinalIgnoreCase`87+ `OrdinalIgnoreCase`.** Resolved: follows the C#. Every string comparison
88- comparisons, which differ for `ß`, `İ`, `ı`, the Kelvin sign and final88+ in the runner is `StringComparison.OrdinalIgnoreCase`
89- sigma. `contains('ß', 'ss')` is false in JS; `startsWith('ß', 'ss')` is89+ (`EvaluationResult.cs` `AbstractEqual`/`AbstractGreaterThan`/
90- true. Check what the runner does.90+ `AbstractLessThan`; `Sdk/Functions/Contains.cs`, `StartsWith.cs`,
91-- [ ] **`==` on strings uses `toUpperSpecial`** (upper-case with the dotless91+ `EndsWith.cs`; `StringComparer.OrdinalIgnoreCase` for context names,
92- `ı` left alone, full Unicode mapping so `ß == 'SS'`), and `<`/`>` compare92+ function names (`ExpressionParser.cs` `ParseContext`,
93- the upper-cased UTF-16 code units. C# `OrdinalIgnoreCase` upper-cases93+ `ExpressionConstants.WellKnownFunctions`) and dictionary keys
94- per UTF-16 code unit with simple mappings only: `ß == 'SS'` should be94+ (`DictionaryContextData.IndexLookup`)). That folds one code point at a
95- false there.95+ time with a simple mapping: `ß` is not `SS`, `ı` and `İ` and `ſ` and the
96+ Kelvin sign are not `i`/`I`/`s`/`k`, `ς` and `σ` are equal, `Dž` is `dž`.
97+ `contains()` no longer lower-cases (JS) and `startsWith`/`endsWith` no
98+ longer upper-case with full mappings (JS). Ordering (`<`, `>`) is by
99+ code point after folding, so a supplementary character sorts after
100+ U+E000..U+FFFF (JS orders UTF-16 units). `ordinal.go` implements it;
101+ `fold_tables.go` is generated from the runner's behaviour
102+ (`go generate`, `gen/runner --fold`), and
103+ `TestOrdinalFoldMatchesRunner` replays 1 564 pairs recorded from .NET.
104+ The table is the one of the .NET runtime that produced it (9.0); the
105+ runner ships its own runtime, so a different Unicode version could differ
106+ on newly assigned letters.
107+- [x] **`==` on strings, `<`, `>`**: see the previous item (same folding).
96 - [x] **Number to string (`CoerceString`)**: resolved, follows the C#. The108 - [x] **Number to string (`CoerceString`)**: resolved, follows the C#. The
97 runner converts every number with `Double.ToString("G15",109 runner converts every number with `Double.ToString("G15",
98 InvariantCulture)` (`ExpressionConstants.NumberFormat`,110 InvariantCulture)` (`ExpressionConstants.NumberFormat`,
@@ -214,9 +226,8 @@ a bug.
214 layer, not to package expr.226 layer, not to package expr.
215 - [ ] `format()` argument limit is 255 in the JS (`MAX_ARGUMENTS`); the C#227 - [ ] `format()` argument limit is 255 in the JS (`MAX_ARGUMENTS`); the C#
216 limit is `ExpressionConstants.MaxArguments` (check).228 limit is `ExpressionConstants.MaxArguments` (check).
217-- [ ] Case-insensitive comparison and `contains`: if C# `OrdinalIgnoreCase`229+- [x] Case-insensitive comparison and `contains`: `OrdinalIgnoreCase` is the
218- is the truth, replace `toUpperSpecial`/`jsToLower` by per-UTF-16-unit230+ truth, see above.
219- simple upper-casing and regenerate the oracle tests accordingly.
220 - [ ] Secret masking and the `${{ }}` splitting of a larger string are not231 - [ ] Secret masking and the `${{ }}` splitting of a larger string are not
221 part of this package (they belong to the template layer): `Parse`232 part of this package (they belong to the template layer): `Parse`
222 takes the text between the braces only.233 takes the text between the braces only.
M expr/data.go +0 -4
@@ -212,10 +212,6 @@ func (d *Dictionary) Pairs() []Pair {
212212 return out
213213 }
214214
215-// foldKey is the case-insensitive form of a dictionary key. GitHub lower-cases
216-// keys with JavaScript's toLowerCase.
217-func foldKey(key string) string { return jsToLower(key) }
218-
219215 // normalize maps nil values to Null so that callers can switch on Kind.
220216 func normalize(v Value) Value {
221217 switch x := v.(type) {
@@ -212,10 +212,6 @@ func (d *Dictionary) Pairs() []Pair {
212 return out212 return out
213 }213 }
214 214
215-// foldKey is the case-insensitive form of a dictionary key. GitHub lower-cases
216-// keys with JavaScript's toLowerCase.
217-func foldKey(key string) string { return jsToLower(key) }
218-
219 // normalize maps nil values to Null so that callers can switch on Kind.215 // normalize maps nil values to Null so that callers can switch on Kind.
220 func normalize(v Value) Value {216 func normalize(v Value) Value {
221 switch x := v.(type) {217 switch x := v.(type) {
M expr/eval.go +3 -3
@@ -437,7 +437,7 @@ func coerceTypes(l, r Value) (Value, Value) {
437437 }
438438
439439 // equals is the == operator: loose equality, case-insensitive for strings
440-// (see toUpperSpecial), false for NaN, and by identity for arrays and
440+// (see ordinal.go), false for NaN, and by identity for arrays and
441441 // dictionaries.
442442 func equals(lhs, rhs Value) bool {
443443 l, r := coerceTypes(lhs, rhs)
@@ -450,7 +450,7 @@ func equals(lhs, rhs Value) bool {
450450 case Number:
451451 return float64(lv) == float64(r.(Number)) // false when either is NaN
452452 case String:
453- return toUpperSpecial(string(lv)) == toUpperSpecial(string(r.(String)))
453+ return ordinalEqual(string(lv), string(r.(String)))
454454 case Boolean:
455455 return lv == r.(Boolean)
456456 case *Array:
@@ -482,7 +482,7 @@ func compare(lhs, rhs Value) (c int, ok bool) {
482482 }
483483 return 0, true
484484 case String:
485- return compareUTF16(toUpperSpecial(string(lv)), toUpperSpecial(string(r.(String)))), true
485+ return ordinalCompare(string(lv), string(r.(String))), true
486486 case Boolean:
487487 // false < true
488488 switch rb := r.(Boolean); {
@@ -437,7 +437,7 @@ func coerceTypes(l, r Value) (Value, Value) {
437 }437 }
438 438
439 // equals is the == operator: loose equality, case-insensitive for strings439 // equals is the == operator: loose equality, case-insensitive for strings
440-// (see toUpperSpecial), false for NaN, and by identity for arrays and440+// (see ordinal.go), false for NaN, and by identity for arrays and
441 // dictionaries.441 // dictionaries.
442 func equals(lhs, rhs Value) bool {442 func equals(lhs, rhs Value) bool {
443 l, r := coerceTypes(lhs, rhs)443 l, r := coerceTypes(lhs, rhs)
@@ -450,7 +450,7 @@ func equals(lhs, rhs Value) bool {
450 case Number:450 case Number:
451 return float64(lv) == float64(r.(Number)) // false when either is NaN451 return float64(lv) == float64(r.(Number)) // false when either is NaN
452 case String:452 case String:
453- return toUpperSpecial(string(lv)) == toUpperSpecial(string(r.(String)))453+ return ordinalEqual(string(lv), string(r.(String)))
454 case Boolean:454 case Boolean:
455 return lv == r.(Boolean)455 return lv == r.(Boolean)
456 case *Array:456 case *Array:
@@ -482,7 +482,7 @@ func compare(lhs, rhs Value) (c int, ok bool) {
482 }482 }
483 return 0, true483 return 0, true
484 case String:484 case String:
485- return compareUTF16(toUpperSpecial(string(lv)), toUpperSpecial(string(r.(String)))), true485+ return ordinalCompare(string(lv), string(r.(String))), true
486 case Boolean:486 case Boolean:
487 // false < true487 // false < true
488 switch rb := r.(Boolean); {488 switch rb := r.(Boolean); {
M expr/eval_test.go +21 -8
@@ -149,8 +149,16 @@ func TestEvalLiteralsAndOperators(t *testing.T) {
149149 {"'a' <= 'A'", "Boolean:true"},
150150 {"'Z' < 'a'", "Boolean:false"},
151151 {"'_' < 'a'", "Boolean:false"}, // '_' (0x5F) sorts after upper-case letters
152- {"'ß' == 'SS'", "Boolean:true"},
153- {"'ß' == 'ss'", "Boolean:true"},
152+ // OrdinalIgnoreCase folds one code point at a time: no ß to SS.
153+ {"'ß' == 'SS'", "Boolean:false"},
154+ {"'ß' == 'ss'", "Boolean:false"},
155+ {"'ß' == 'ß'", "Boolean:true"},
156+ {"'é' == 'É'", "Boolean:true"},
157+ {"'dž' == 'Dž'", "Boolean:true"},
158+ {"'ı' == 'I'", "Boolean:false"},
159+ {"'\u212a' == 'k'", "Boolean:false"}, // Kelvin sign
160+ {"'ſ' == 's'", "Boolean:false"},
161+ {"'ς' == 'σ'", "Boolean:true"}, // both fold to Σ
154162 {"'ı' == 'I'", "Boolean:false"}, // dotless i is not upper-cased
155163 {"'ı' == 'i'", "Boolean:false"},
156164 {"'ı' == 'ı'", "Boolean:true"},
@@ -343,8 +351,10 @@ func TestEvalBuiltinFunctions(t *testing.T) {
343351 {"contains(fromJSON('[1,\"2\",null]'), null)", "Boolean:true"},
344352 {"contains(fromJSON('[1,\"2\",null]'), '')", "Boolean:true"},
345353 {"contains(fromJSON('[[1]]'), fromJSON('[1]'))", "Boolean:false"},
346- {"contains('İ', 'i')", "Boolean:true"}, // İ lower-cases to i + U+0307, which contains i
347- {"contains('ß', 'ss')", "Boolean:false"}, // contains lower-cases: no ß folding
354+ {"contains('İ', 'i')", "Boolean:false"}, // OrdinalIgnoreCase: İ is not i
355+ {"contains('ß', 'ss')", "Boolean:false"}, // no ß folding
356+ {"contains('\u212a', 'k')", "Boolean:false"}, // Kelvin sign
357+ {"contains('Dž', 'dž')", "Boolean:true"},
348358 {"contains('A\u03a3', 'a\u03c2')", "Boolean:true"},
349359 {"contains('K', 'k')", "Boolean:true"}, // KELVIN SIGN lower-cases to k
350360 {"contains()", "PARSE Too few parameters supplied: 'contains'"},
@@ -358,7 +368,7 @@ func TestEvalBuiltinFunctions(t *testing.T) {
358368 {"startsWith(123, 12)", "Boolean:true"},
359369 {"startsWith(github, 'a')", "Boolean:false"},
360370 {"startsWith('a', github)", "Boolean:false"},
361- {"startsWith('ß', 'ss')", "Boolean:true"}, // upper-cases to SS
371+ {"startsWith('ß', 'ss')", "Boolean:false"}, // no ß folding
362372 {"startsWith('ı', 'I')", "Boolean:false"},
363373 {"endsWith('abc', 'BC')", "Boolean:true"},
364374 {"endsWith('abc', 'abcd')", "Boolean:false"},
@@ -927,9 +937,12 @@ func TestCompareUTF16(t *testing.T) {
927937 }
928938
929939 var evalCasesUTF16 = []evalCase{
930- {"'\U00010000' < '\ue000'", "Boolean:true"},
931- {"'\ue000' > '\U00010000'", "Boolean:true"},
932- {"'\U00010000' >= '\ue000'", "Boolean:false"},
940+ // The JavaScript reference compares UTF-16 units, where U+10000 (D800 DC00)
941+ // sorts before U+E000. The runner compares code points: it sorts after.
942+ {"'\U00010000' < '\ue000'", "Boolean:false"},
943+ {"'\ue000' > '\U00010000'", "Boolean:false"},
944+ {"'\U00010000' >= '\ue000'", "Boolean:true"},
945+ {"'\ue000' < '\U00010000'", "Boolean:true"},
933946 }
934947
935948 func TestTokenString(t *testing.T) {
@@ -149,8 +149,16 @@ func TestEvalLiteralsAndOperators(t *testing.T) {
149 {"'a' <= 'A'", "Boolean:true"},149 {"'a' <= 'A'", "Boolean:true"},
150 {"'Z' < 'a'", "Boolean:false"},150 {"'Z' < 'a'", "Boolean:false"},
151 {"'_' < 'a'", "Boolean:false"}, // '_' (0x5F) sorts after upper-case letters151 {"'_' < 'a'", "Boolean:false"}, // '_' (0x5F) sorts after upper-case letters
152- {"'ß' == 'SS'", "Boolean:true"},152+ // OrdinalIgnoreCase folds one code point at a time: no ß to SS.
153- {"'ß' == 'ss'", "Boolean:true"},153+ {"'ß' == 'SS'", "Boolean:false"},
154+ {"'ß' == 'ss'", "Boolean:false"},
155+ {"'ß' == 'ß'", "Boolean:true"},
156+ {"'é' == 'É'", "Boolean:true"},
157+ {"'dž' == 'Dž'", "Boolean:true"},
158+ {"'ı' == 'I'", "Boolean:false"},
159+ {"'\u212a' == 'k'", "Boolean:false"}, // Kelvin sign
160+ {"'ſ' == 's'", "Boolean:false"},
161+ {"'ς' == 'σ'", "Boolean:true"}, // both fold to Σ
154 {"'ı' == 'I'", "Boolean:false"}, // dotless i is not upper-cased162 {"'ı' == 'I'", "Boolean:false"}, // dotless i is not upper-cased
155 {"'ı' == 'i'", "Boolean:false"},163 {"'ı' == 'i'", "Boolean:false"},
156 {"'ı' == 'ı'", "Boolean:true"},164 {"'ı' == 'ı'", "Boolean:true"},
@@ -343,8 +351,10 @@ func TestEvalBuiltinFunctions(t *testing.T) {
343 {"contains(fromJSON('[1,\"2\",null]'), null)", "Boolean:true"},351 {"contains(fromJSON('[1,\"2\",null]'), null)", "Boolean:true"},
344 {"contains(fromJSON('[1,\"2\",null]'), '')", "Boolean:true"},352 {"contains(fromJSON('[1,\"2\",null]'), '')", "Boolean:true"},
345 {"contains(fromJSON('[[1]]'), fromJSON('[1]'))", "Boolean:false"},353 {"contains(fromJSON('[[1]]'), fromJSON('[1]'))", "Boolean:false"},
346- {"contains('İ', 'i')", "Boolean:true"}, // İ lower-cases to i + U+0307, which contains i354+ {"contains('İ', 'i')", "Boolean:false"}, // OrdinalIgnoreCase: İ is not i
347- {"contains('ß', 'ss')", "Boolean:false"}, // contains lower-cases: no ß folding355+ {"contains('ß', 'ss')", "Boolean:false"}, // no ß folding
356+ {"contains('\u212a', 'k')", "Boolean:false"}, // Kelvin sign
357+ {"contains('Dž', 'dž')", "Boolean:true"},
348 {"contains('A\u03a3', 'a\u03c2')", "Boolean:true"},358 {"contains('A\u03a3', 'a\u03c2')", "Boolean:true"},
349 {"contains('K', 'k')", "Boolean:true"}, // KELVIN SIGN lower-cases to k359 {"contains('K', 'k')", "Boolean:true"}, // KELVIN SIGN lower-cases to k
350 {"contains()", "PARSE Too few parameters supplied: 'contains'"},360 {"contains()", "PARSE Too few parameters supplied: 'contains'"},
@@ -358,7 +368,7 @@ func TestEvalBuiltinFunctions(t *testing.T) {
358 {"startsWith(123, 12)", "Boolean:true"},368 {"startsWith(123, 12)", "Boolean:true"},
359 {"startsWith(github, 'a')", "Boolean:false"},369 {"startsWith(github, 'a')", "Boolean:false"},
360 {"startsWith('a', github)", "Boolean:false"},370 {"startsWith('a', github)", "Boolean:false"},
361- {"startsWith('ß', 'ss')", "Boolean:true"}, // upper-cases to SS371+ {"startsWith('ß', 'ss')", "Boolean:false"}, // no ß folding
362 {"startsWith('ı', 'I')", "Boolean:false"},372 {"startsWith('ı', 'I')", "Boolean:false"},
363 {"endsWith('abc', 'BC')", "Boolean:true"},373 {"endsWith('abc', 'BC')", "Boolean:true"},
364 {"endsWith('abc', 'abcd')", "Boolean:false"},374 {"endsWith('abc', 'abcd')", "Boolean:false"},
@@ -927,9 +937,12 @@ func TestCompareUTF16(t *testing.T) {
927 }937 }
928 938
929 var evalCasesUTF16 = []evalCase{939 var evalCasesUTF16 = []evalCase{
930- {"'\U00010000' < '\ue000'", "Boolean:true"},940+ // The JavaScript reference compares UTF-16 units, where U+10000 (D800 DC00)
931- {"'\ue000' > '\U00010000'", "Boolean:true"},941+ // sorts before U+E000. The runner compares code points: it sorts after.
932- {"'\U00010000' >= '\ue000'", "Boolean:false"},942+ {"'\U00010000' < '\ue000'", "Boolean:false"},
943+ {"'\ue000' > '\U00010000'", "Boolean:false"},
944+ {"'\U00010000' >= '\ue000'", "Boolean:true"},
945+ {"'\ue000' < '\U00010000'", "Boolean:true"},
933 }946 }
934 947
935 func TestTokenString(t *testing.T) {948 func TestTokenString(t *testing.T) {
A expr/fold_tables.go +1466 -0
@@ -0,0 +1,1466 @@
1+// SPDX-License-Identifier: MIT
2+
3+// Code generated by gen/fold.go from `runner.dll --fold` (gen/runner); DO NOT EDIT.
4+
5+package expr
6+
7+// ordinalUpper maps a code point to the one that .NET's OrdinalIgnoreCase comparison treats
8+// it as, sorted by the first element. Code points that are not listed stand for themselves.
9+var ordinalUpper = [...][2]rune{
10+ {0x0061, 0x0041},
11+ {0x0062, 0x0042},
12+ {0x0063, 0x0043},
13+ {0x0064, 0x0044},
14+ {0x0065, 0x0045},
15+ {0x0066, 0x0046},
16+ {0x0067, 0x0047},
17+ {0x0068, 0x0048},
18+ {0x0069, 0x0049},
19+ {0x006A, 0x004A},
20+ {0x006B, 0x004B},
21+ {0x006C, 0x004C},
22+ {0x006D, 0x004D},
23+ {0x006E, 0x004E},
24+ {0x006F, 0x004F},
25+ {0x0070, 0x0050},
26+ {0x0071, 0x0051},
27+ {0x0072, 0x0052},
28+ {0x0073, 0x0053},
29+ {0x0074, 0x0054},
30+ {0x0075, 0x0055},
31+ {0x0076, 0x0056},
32+ {0x0077, 0x0057},
33+ {0x0078, 0x0058},
34+ {0x0079, 0x0059},
35+ {0x007A, 0x005A},
36+ {0x00B5, 0x039C},
37+ {0x00E0, 0x00C0},
38+ {0x00E1, 0x00C1},
39+ {0x00E2, 0x00C2},
40+ {0x00E3, 0x00C3},
41+ {0x00E4, 0x00C4},
42+ {0x00E5, 0x00C5},
43+ {0x00E6, 0x00C6},
44+ {0x00E7, 0x00C7},
45+ {0x00E8, 0x00C8},
46+ {0x00E9, 0x00C9},
47+ {0x00EA, 0x00CA},
48+ {0x00EB, 0x00CB},
49+ {0x00EC, 0x00CC},
50+ {0x00ED, 0x00CD},
51+ {0x00EE, 0x00CE},
52+ {0x00EF, 0x00CF},
53+ {0x00F0, 0x00D0},
54+ {0x00F1, 0x00D1},
55+ {0x00F2, 0x00D2},
56+ {0x00F3, 0x00D3},
57+ {0x00F4, 0x00D4},
58+ {0x00F5, 0x00D5},
59+ {0x00F6, 0x00D6},
60+ {0x00F8, 0x00D8},
61+ {0x00F9, 0x00D9},
62+ {0x00FA, 0x00DA},
63+ {0x00FB, 0x00DB},
64+ {0x00FC, 0x00DC},
65+ {0x00FD, 0x00DD},
66+ {0x00FE, 0x00DE},
67+ {0x00FF, 0x0178},
68+ {0x0101, 0x0100},
69+ {0x0103, 0x0102},
70+ {0x0105, 0x0104},
71+ {0x0107, 0x0106},
72+ {0x0109, 0x0108},
73+ {0x010B, 0x010A},
74+ {0x010D, 0x010C},
75+ {0x010F, 0x010E},
76+ {0x0111, 0x0110},
77+ {0x0113, 0x0112},
78+ {0x0115, 0x0114},
79+ {0x0117, 0x0116},
80+ {0x0119, 0x0118},
81+ {0x011B, 0x011A},
82+ {0x011D, 0x011C},
83+ {0x011F, 0x011E},
84+ {0x0121, 0x0120},
85+ {0x0123, 0x0122},
86+ {0x0125, 0x0124},
87+ {0x0127, 0x0126},
88+ {0x0129, 0x0128},
89+ {0x012B, 0x012A},
90+ {0x012D, 0x012C},
91+ {0x012F, 0x012E},
92+ {0x0133, 0x0132},
93+ {0x0135, 0x0134},
94+ {0x0137, 0x0136},
95+ {0x013A, 0x0139},
96+ {0x013C, 0x013B},
97+ {0x013E, 0x013D},
98+ {0x0140, 0x013F},
99+ {0x0142, 0x0141},
100+ {0x0144, 0x0143},
101+ {0x0146, 0x0145},
102+ {0x0148, 0x0147},
103+ {0x014B, 0x014A},
104+ {0x014D, 0x014C},
105+ {0x014F, 0x014E},
106+ {0x0151, 0x0150},
107+ {0x0153, 0x0152},
108+ {0x0155, 0x0154},
109+ {0x0157, 0x0156},
110+ {0x0159, 0x0158},
111+ {0x015B, 0x015A},
112+ {0x015D, 0x015C},
113+ {0x015F, 0x015E},
114+ {0x0161, 0x0160},
115+ {0x0163, 0x0162},
116+ {0x0165, 0x0164},
117+ {0x0167, 0x0166},
118+ {0x0169, 0x0168},
119+ {0x016B, 0x016A},
120+ {0x016D, 0x016C},
121+ {0x016F, 0x016E},
122+ {0x0171, 0x0170},
123+ {0x0173, 0x0172},
124+ {0x0175, 0x0174},
125+ {0x0177, 0x0176},
126+ {0x017A, 0x0179},
127+ {0x017C, 0x017B},
128+ {0x017E, 0x017D},
129+ {0x0180, 0x0243},
130+ {0x0183, 0x0182},
131+ {0x0185, 0x0184},
132+ {0x0188, 0x0187},
133+ {0x018C, 0x018B},
134+ {0x0192, 0x0191},
135+ {0x0195, 0x01F6},
136+ {0x0199, 0x0198},
137+ {0x019A, 0x023D},
138+ {0x019B, 0xA7DC},
139+ {0x019E, 0x0220},
140+ {0x01A1, 0x01A0},
141+ {0x01A3, 0x01A2},
142+ {0x01A5, 0x01A4},
143+ {0x01A8, 0x01A7},
144+ {0x01AD, 0x01AC},
145+ {0x01B0, 0x01AF},
146+ {0x01B4, 0x01B3},
147+ {0x01B6, 0x01B5},
148+ {0x01B9, 0x01B8},
149+ {0x01BD, 0x01BC},
150+ {0x01BF, 0x01F7},
151+ {0x01C5, 0x01C4},
152+ {0x01C6, 0x01C4},
153+ {0x01C8, 0x01C7},
154+ {0x01C9, 0x01C7},
155+ {0x01CB, 0x01CA},
156+ {0x01CC, 0x01CA},
157+ {0x01CE, 0x01CD},
158+ {0x01D0, 0x01CF},
159+ {0x01D2, 0x01D1},
160+ {0x01D4, 0x01D3},
161+ {0x01D6, 0x01D5},
162+ {0x01D8, 0x01D7},
163+ {0x01DA, 0x01D9},
164+ {0x01DC, 0x01DB},
165+ {0x01DD, 0x018E},
166+ {0x01DF, 0x01DE},
167+ {0x01E1, 0x01E0},
168+ {0x01E3, 0x01E2},
169+ {0x01E5, 0x01E4},
170+ {0x01E7, 0x01E6},
171+ {0x01E9, 0x01E8},
172+ {0x01EB, 0x01EA},
173+ {0x01ED, 0x01EC},
174+ {0x01EF, 0x01EE},
175+ {0x01F2, 0x01F1},
176+ {0x01F3, 0x01F1},
177+ {0x01F5, 0x01F4},
178+ {0x01F9, 0x01F8},
179+ {0x01FB, 0x01FA},
180+ {0x01FD, 0x01FC},
181+ {0x01FF, 0x01FE},
182+ {0x0201, 0x0200},
183+ {0x0203, 0x0202},
184+ {0x0205, 0x0204},
185+ {0x0207, 0x0206},
186+ {0x0209, 0x0208},
187+ {0x020B, 0x020A},
188+ {0x020D, 0x020C},
189+ {0x020F, 0x020E},
190+ {0x0211, 0x0210},
191+ {0x0213, 0x0212},
192+ {0x0215, 0x0214},
193+ {0x0217, 0x0216},
194+ {0x0219, 0x0218},
195+ {0x021B, 0x021A},
196+ {0x021D, 0x021C},
197+ {0x021F, 0x021E},
198+ {0x0223, 0x0222},
199+ {0x0225, 0x0224},
200+ {0x0227, 0x0226},
201+ {0x0229, 0x0228},
202+ {0x022B, 0x022A},
203+ {0x022D, 0x022C},
204+ {0x022F, 0x022E},
205+ {0x0231, 0x0230},
206+ {0x0233, 0x0232},
207+ {0x023C, 0x023B},
208+ {0x023F, 0x2C7E},
209+ {0x0240, 0x2C7F},
210+ {0x0242, 0x0241},
211+ {0x0247, 0x0246},
212+ {0x0249, 0x0248},
213+ {0x024B, 0x024A},
214+ {0x024D, 0x024C},
215+ {0x024F, 0x024E},
216+ {0x0250, 0x2C6F},
217+ {0x0251, 0x2C6D},
218+ {0x0252, 0x2C70},
219+ {0x0253, 0x0181},
220+ {0x0254, 0x0186},
221+ {0x0256, 0x0189},
222+ {0x0257, 0x018A},
223+ {0x0259, 0x018F},
224+ {0x025B, 0x0190},
225+ {0x025C, 0xA7AB},
226+ {0x0260, 0x0193},
227+ {0x0261, 0xA7AC},
228+ {0x0263, 0x0194},
229+ {0x0264, 0xA7CB},
230+ {0x0265, 0xA78D},
231+ {0x0266, 0xA7AA},
232+ {0x0268, 0x0197},
233+ {0x0269, 0x0196},
234+ {0x026A, 0xA7AE},
235+ {0x026B, 0x2C62},
236+ {0x026C, 0xA7AD},
237+ {0x026F, 0x019C},
238+ {0x0271, 0x2C6E},
239+ {0x0272, 0x019D},
240+ {0x0275, 0x019F},
241+ {0x027D, 0x2C64},
242+ {0x0280, 0x01A6},
243+ {0x0282, 0xA7C5},
244+ {0x0283, 0x01A9},
245+ {0x0287, 0xA7B1},
246+ {0x0288, 0x01AE},
247+ {0x0289, 0x0244},
248+ {0x028A, 0x01B1},
249+ {0x028B, 0x01B2},
250+ {0x028C, 0x0245},
251+ {0x0292, 0x01B7},
252+ {0x029D, 0xA7B2},
253+ {0x029E, 0xA7B0},
254+ {0x0345, 0x0399},
255+ {0x0371, 0x0370},
256+ {0x0373, 0x0372},
257+ {0x0377, 0x0376},
258+ {0x037B, 0x03FD},
259+ {0x037C, 0x03FE},
260+ {0x037D, 0x03FF},
261+ {0x03AC, 0x0386},
262+ {0x03AD, 0x0388},
263+ {0x03AE, 0x0389},
264+ {0x03AF, 0x038A},
265+ {0x03B1, 0x0391},
266+ {0x03B2, 0x0392},
267+ {0x03B3, 0x0393},
268+ {0x03B4, 0x0394},
269+ {0x03B5, 0x0395},
270+ {0x03B6, 0x0396},
271+ {0x03B7, 0x0397},
272+ {0x03B8, 0x0398},
273+ {0x03B9, 0x0399},
274+ {0x03BA, 0x039A},
275+ {0x03BB, 0x039B},
276+ {0x03BC, 0x039C},
277+ {0x03BD, 0x039D},
278+ {0x03BE, 0x039E},
279+ {0x03BF, 0x039F},
280+ {0x03C0, 0x03A0},
281+ {0x03C1, 0x03A1},
282+ {0x03C2, 0x03A3},
283+ {0x03C3, 0x03A3},
284+ {0x03C4, 0x03A4},
285+ {0x03C5, 0x03A5},
286+ {0x03C6, 0x03A6},
287+ {0x03C7, 0x03A7},
288+ {0x03C8, 0x03A8},
289+ {0x03C9, 0x03A9},
290+ {0x03CA, 0x03AA},
291+ {0x03CB, 0x03AB},
292+ {0x03CC, 0x038C},
293+ {0x03CD, 0x038E},
294+ {0x03CE, 0x038F},
295+ {0x03D0, 0x0392},
296+ {0x03D1, 0x0398},
297+ {0x03D5, 0x03A6},
298+ {0x03D6, 0x03A0},
299+ {0x03D7, 0x03CF},
300+ {0x03D9, 0x03D8},
301+ {0x03DB, 0x03DA},
302+ {0x03DD, 0x03DC},
303+ {0x03DF, 0x03DE},
304+ {0x03E1, 0x03E0},
305+ {0x03E3, 0x03E2},
306+ {0x03E5, 0x03E4},
307+ {0x03E7, 0x03E6},
308+ {0x03E9, 0x03E8},
309+ {0x03EB, 0x03EA},
310+ {0x03ED, 0x03EC},
311+ {0x03EF, 0x03EE},
312+ {0x03F0, 0x039A},
313+ {0x03F1, 0x03A1},
314+ {0x03F2, 0x03F9},
315+ {0x03F3, 0x037F},
316+ {0x03F5, 0x0395},
317+ {0x03F8, 0x03F7},
318+ {0x03FB, 0x03FA},
319+ {0x0430, 0x0410},
320+ {0x0431, 0x0411},
321+ {0x0432, 0x0412},
322+ {0x0433, 0x0413},
323+ {0x0434, 0x0414},
324+ {0x0435, 0x0415},
325+ {0x0436, 0x0416},
326+ {0x0437, 0x0417},
327+ {0x0438, 0x0418},
328+ {0x0439, 0x0419},
329+ {0x043A, 0x041A},
330+ {0x043B, 0x041B},
331+ {0x043C, 0x041C},
332+ {0x043D, 0x041D},
333+ {0x043E, 0x041E},
334+ {0x043F, 0x041F},
335+ {0x0440, 0x0420},
336+ {0x0441, 0x0421},
337+ {0x0442, 0x0422},
338+ {0x0443, 0x0423},
339+ {0x0444, 0x0424},
340+ {0x0445, 0x0425},
341+ {0x0446, 0x0426},
342+ {0x0447, 0x0427},
343+ {0x0448, 0x0428},
344+ {0x0449, 0x0429},
345+ {0x044A, 0x042A},
346+ {0x044B, 0x042B},
347+ {0x044C, 0x042C},
348+ {0x044D, 0x042D},
349+ {0x044E, 0x042E},
350+ {0x044F, 0x042F},
351+ {0x0450, 0x0400},
352+ {0x0451, 0x0401},
353+ {0x0452, 0x0402},
354+ {0x0453, 0x0403},
355+ {0x0454, 0x0404},
356+ {0x0455, 0x0405},
357+ {0x0456, 0x0406},
358+ {0x0457, 0x0407},
359+ {0x0458, 0x0408},
360+ {0x0459, 0x0409},
361+ {0x045A, 0x040A},
362+ {0x045B, 0x040B},
363+ {0x045C, 0x040C},
364+ {0x045D, 0x040D},
365+ {0x045E, 0x040E},
366+ {0x045F, 0x040F},
367+ {0x0461, 0x0460},
368+ {0x0463, 0x0462},
369+ {0x0465, 0x0464},
370+ {0x0467, 0x0466},
371+ {0x0469, 0x0468},
372+ {0x046B, 0x046A},
373+ {0x046D, 0x046C},
374+ {0x046F, 0x046E},
375+ {0x0471, 0x0470},
376+ {0x0473, 0x0472},
377+ {0x0475, 0x0474},
378+ {0x0477, 0x0476},
379+ {0x0479, 0x0478},
380+ {0x047B, 0x047A},
381+ {0x047D, 0x047C},
382+ {0x047F, 0x047E},
383+ {0x0481, 0x0480},
384+ {0x048B, 0x048A},
385+ {0x048D, 0x048C},
386+ {0x048F, 0x048E},
387+ {0x0491, 0x0490},
388+ {0x0493, 0x0492},
389+ {0x0495, 0x0494},
390+ {0x0497, 0x0496},
391+ {0x0499, 0x0498},
392+ {0x049B, 0x049A},
393+ {0x049D, 0x049C},
394+ {0x049F, 0x049E},
395+ {0x04A1, 0x04A0},
396+ {0x04A3, 0x04A2},
397+ {0x04A5, 0x04A4},
398+ {0x04A7, 0x04A6},
399+ {0x04A9, 0x04A8},
400+ {0x04AB, 0x04AA},
401+ {0x04AD, 0x04AC},
402+ {0x04AF, 0x04AE},
403+ {0x04B1, 0x04B0},
404+ {0x04B3, 0x04B2},
405+ {0x04B5, 0x04B4},
406+ {0x04B7, 0x04B6},
407+ {0x04B9, 0x04B8},
408+ {0x04BB, 0x04BA},
409+ {0x04BD, 0x04BC},
410+ {0x04BF, 0x04BE},
411+ {0x04C2, 0x04C1},
412+ {0x04C4, 0x04C3},
413+ {0x04C6, 0x04C5},
414+ {0x04C8, 0x04C7},
415+ {0x04CA, 0x04C9},
416+ {0x04CC, 0x04CB},
417+ {0x04CE, 0x04CD},
418+ {0x04CF, 0x04C0},
419+ {0x04D1, 0x04D0},
420+ {0x04D3, 0x04D2},
421+ {0x04D5, 0x04D4},
422+ {0x04D7, 0x04D6},
423+ {0x04D9, 0x04D8},
424+ {0x04DB, 0x04DA},
425+ {0x04DD, 0x04DC},
426+ {0x04DF, 0x04DE},
427+ {0x04E1, 0x04E0},
428+ {0x04E3, 0x04E2},
429+ {0x04E5, 0x04E4},
430+ {0x04E7, 0x04E6},
431+ {0x04E9, 0x04E8},
432+ {0x04EB, 0x04EA},
433+ {0x04ED, 0x04EC},
434+ {0x04EF, 0x04EE},
435+ {0x04F1, 0x04F0},
436+ {0x04F3, 0x04F2},
437+ {0x04F5, 0x04F4},
438+ {0x04F7, 0x04F6},
439+ {0x04F9, 0x04F8},
440+ {0x04FB, 0x04FA},
441+ {0x04FD, 0x04FC},
442+ {0x04FF, 0x04FE},
443+ {0x0501, 0x0500},
444+ {0x0503, 0x0502},
445+ {0x0505, 0x0504},
446+ {0x0507, 0x0506},
447+ {0x0509, 0x0508},
448+ {0x050B, 0x050A},
449+ {0x050D, 0x050C},
450+ {0x050F, 0x050E},
451+ {0x0511, 0x0510},
452+ {0x0513, 0x0512},
453+ {0x0515, 0x0514},
454+ {0x0517, 0x0516},
455+ {0x0519, 0x0518},
456+ {0x051B, 0x051A},
457+ {0x051D, 0x051C},
458+ {0x051F, 0x051E},
459+ {0x0521, 0x0520},
460+ {0x0523, 0x0522},
461+ {0x0525, 0x0524},
462+ {0x0527, 0x0526},
463+ {0x0529, 0x0528},
464+ {0x052B, 0x052A},
465+ {0x052D, 0x052C},
466+ {0x052F, 0x052E},
467+ {0x0561, 0x0531},
468+ {0x0562, 0x0532},
469+ {0x0563, 0x0533},
470+ {0x0564, 0x0534},
471+ {0x0565, 0x0535},
472+ {0x0566, 0x0536},
473+ {0x0567, 0x0537},
474+ {0x0568, 0x0538},
475+ {0x0569, 0x0539},
476+ {0x056A, 0x053A},
477+ {0x056B, 0x053B},
478+ {0x056C, 0x053C},
479+ {0x056D, 0x053D},
480+ {0x056E, 0x053E},
481+ {0x056F, 0x053F},
482+ {0x0570, 0x0540},
483+ {0x0571, 0x0541},
484+ {0x0572, 0x0542},
485+ {0x0573, 0x0543},
486+ {0x0574, 0x0544},
487+ {0x0575, 0x0545},
488+ {0x0576, 0x0546},
489+ {0x0577, 0x0547},
490+ {0x0578, 0x0548},
491+ {0x0579, 0x0549},
492+ {0x057A, 0x054A},
493+ {0x057B, 0x054B},
494+ {0x057C, 0x054C},
495+ {0x057D, 0x054D},
496+ {0x057E, 0x054E},
497+ {0x057F, 0x054F},
498+ {0x0580, 0x0550},
499+ {0x0581, 0x0551},
500+ {0x0582, 0x0552},
501+ {0x0583, 0x0553},
502+ {0x0584, 0x0554},
503+ {0x0585, 0x0555},
504+ {0x0586, 0x0556},
505+ {0x10D0, 0x1C90},
506+ {0x10D1, 0x1C91},
507+ {0x10D2, 0x1C92},
508+ {0x10D3, 0x1C93},
509+ {0x10D4, 0x1C94},
510+ {0x10D5, 0x1C95},
511+ {0x10D6, 0x1C96},
512+ {0x10D7, 0x1C97},
513+ {0x10D8, 0x1C98},
514+ {0x10D9, 0x1C99},
515+ {0x10DA, 0x1C9A},
516+ {0x10DB, 0x1C9B},
517+ {0x10DC, 0x1C9C},
518+ {0x10DD, 0x1C9D},
519+ {0x10DE, 0x1C9E},
520+ {0x10DF, 0x1C9F},
521+ {0x10E0, 0x1CA0},
522+ {0x10E1, 0x1CA1},
523+ {0x10E2, 0x1CA2},
524+ {0x10E3, 0x1CA3},
525+ {0x10E4, 0x1CA4},
526+ {0x10E5, 0x1CA5},
527+ {0x10E6, 0x1CA6},
528+ {0x10E7, 0x1CA7},
529+ {0x10E8, 0x1CA8},
530+ {0x10E9, 0x1CA9},
531+ {0x10EA, 0x1CAA},
532+ {0x10EB, 0x1CAB},
533+ {0x10EC, 0x1CAC},
534+ {0x10ED, 0x1CAD},
535+ {0x10EE, 0x1CAE},
536+ {0x10EF, 0x1CAF},
537+ {0x10F0, 0x1CB0},
538+ {0x10F1, 0x1CB1},
539+ {0x10F2, 0x1CB2},
540+ {0x10F3, 0x1CB3},
541+ {0x10F4, 0x1CB4},
542+ {0x10F5, 0x1CB5},
543+ {0x10F6, 0x1CB6},
544+ {0x10F7, 0x1CB7},
545+ {0x10F8, 0x1CB8},
546+ {0x10F9, 0x1CB9},
547+ {0x10FA, 0x1CBA},
548+ {0x10FD, 0x1CBD},
549+ {0x10FE, 0x1CBE},
550+ {0x10FF, 0x1CBF},
551+ {0x13F8, 0x13F0},
552+ {0x13F9, 0x13F1},
553+ {0x13FA, 0x13F2},
554+ {0x13FB, 0x13F3},
555+ {0x13FC, 0x13F4},
556+ {0x13FD, 0x13F5},
557+ {0x1C80, 0x0412},
558+ {0x1C81, 0x0414},
559+ {0x1C82, 0x041E},
560+ {0x1C83, 0x0421},
561+ {0x1C84, 0x0422},
562+ {0x1C85, 0x0422},
563+ {0x1C86, 0x042A},
564+ {0x1C87, 0x0462},
565+ {0x1C88, 0xA64A},
566+ {0x1C8A, 0x1C89},
567+ {0x1D79, 0xA77D},
568+ {0x1D7D, 0x2C63},
569+ {0x1D8E, 0xA7C6},
570+ {0x1E01, 0x1E00},
571+ {0x1E03, 0x1E02},
572+ {0x1E05, 0x1E04},
573+ {0x1E07, 0x1E06},
574+ {0x1E09, 0x1E08},
575+ {0x1E0B, 0x1E0A},
576+ {0x1E0D, 0x1E0C},
577+ {0x1E0F, 0x1E0E},
578+ {0x1E11, 0x1E10},
579+ {0x1E13, 0x1E12},
580+ {0x1E15, 0x1E14},
581+ {0x1E17, 0x1E16},
582+ {0x1E19, 0x1E18},
583+ {0x1E1B, 0x1E1A},
584+ {0x1E1D, 0x1E1C},
585+ {0x1E1F, 0x1E1E},
586+ {0x1E21, 0x1E20},
587+ {0x1E23, 0x1E22},
588+ {0x1E25, 0x1E24},
589+ {0x1E27, 0x1E26},
590+ {0x1E29, 0x1E28},
591+ {0x1E2B, 0x1E2A},
592+ {0x1E2D, 0x1E2C},
593+ {0x1E2F, 0x1E2E},
594+ {0x1E31, 0x1E30},
595+ {0x1E33, 0x1E32},
596+ {0x1E35, 0x1E34},
597+ {0x1E37, 0x1E36},
598+ {0x1E39, 0x1E38},
599+ {0x1E3B, 0x1E3A},
600+ {0x1E3D, 0x1E3C},
601+ {0x1E3F, 0x1E3E},
602+ {0x1E41, 0x1E40},
603+ {0x1E43, 0x1E42},
604+ {0x1E45, 0x1E44},
605+ {0x1E47, 0x1E46},
606+ {0x1E49, 0x1E48},
607+ {0x1E4B, 0x1E4A},
608+ {0x1E4D, 0x1E4C},
609+ {0x1E4F, 0x1E4E},
610+ {0x1E51, 0x1E50},
611+ {0x1E53, 0x1E52},
612+ {0x1E55, 0x1E54},
613+ {0x1E57, 0x1E56},
614+ {0x1E59, 0x1E58},
615+ {0x1E5B, 0x1E5A},
616+ {0x1E5D, 0x1E5C},
617+ {0x1E5F, 0x1E5E},
618+ {0x1E61, 0x1E60},
619+ {0x1E63, 0x1E62},
620+ {0x1E65, 0x1E64},
621+ {0x1E67, 0x1E66},
622+ {0x1E69, 0x1E68},
623+ {0x1E6B, 0x1E6A},
624+ {0x1E6D, 0x1E6C},
625+ {0x1E6F, 0x1E6E},
626+ {0x1E71, 0x1E70},
627+ {0x1E73, 0x1E72},
628+ {0x1E75, 0x1E74},
629+ {0x1E77, 0x1E76},
630+ {0x1E79, 0x1E78},
631+ {0x1E7B, 0x1E7A},
632+ {0x1E7D, 0x1E7C},
633+ {0x1E7F, 0x1E7E},
634+ {0x1E81, 0x1E80},
635+ {0x1E83, 0x1E82},
636+ {0x1E85, 0x1E84},
637+ {0x1E87, 0x1E86},
638+ {0x1E89, 0x1E88},
639+ {0x1E8B, 0x1E8A},
640+ {0x1E8D, 0x1E8C},
641+ {0x1E8F, 0x1E8E},
642+ {0x1E91, 0x1E90},
643+ {0x1E93, 0x1E92},
644+ {0x1E95, 0x1E94},
645+ {0x1E9B, 0x1E60},
646+ {0x1EA1, 0x1EA0},
647+ {0x1EA3, 0x1EA2},
648+ {0x1EA5, 0x1EA4},
649+ {0x1EA7, 0x1EA6},
650+ {0x1EA9, 0x1EA8},
651+ {0x1EAB, 0x1EAA},
652+ {0x1EAD, 0x1EAC},
653+ {0x1EAF, 0x1EAE},
654+ {0x1EB1, 0x1EB0},
655+ {0x1EB3, 0x1EB2},
656+ {0x1EB5, 0x1EB4},
657+ {0x1EB7, 0x1EB6},
658+ {0x1EB9, 0x1EB8},
659+ {0x1EBB, 0x1EBA},
660+ {0x1EBD, 0x1EBC},
661+ {0x1EBF, 0x1EBE},
662+ {0x1EC1, 0x1EC0},
663+ {0x1EC3, 0x1EC2},
664+ {0x1EC5, 0x1EC4},
665+ {0x1EC7, 0x1EC6},
666+ {0x1EC9, 0x1EC8},
667+ {0x1ECB, 0x1ECA},
668+ {0x1ECD, 0x1ECC},
669+ {0x1ECF, 0x1ECE},
670+ {0x1ED1, 0x1ED0},
671+ {0x1ED3, 0x1ED2},
672+ {0x1ED5, 0x1ED4},
673+ {0x1ED7, 0x1ED6},
674+ {0x1ED9, 0x1ED8},
675+ {0x1EDB, 0x1EDA},
676+ {0x1EDD, 0x1EDC},
677+ {0x1EDF, 0x1EDE},
678+ {0x1EE1, 0x1EE0},
679+ {0x1EE3, 0x1EE2},
680+ {0x1EE5, 0x1EE4},
681+ {0x1EE7, 0x1EE6},
682+ {0x1EE9, 0x1EE8},
683+ {0x1EEB, 0x1EEA},
684+ {0x1EED, 0x1EEC},
685+ {0x1EEF, 0x1EEE},
686+ {0x1EF1, 0x1EF0},
687+ {0x1EF3, 0x1EF2},
688+ {0x1EF5, 0x1EF4},
689+ {0x1EF7, 0x1EF6},
690+ {0x1EF9, 0x1EF8},
691+ {0x1EFB, 0x1EFA},
692+ {0x1EFD, 0x1EFC},
693+ {0x1EFF, 0x1EFE},
694+ {0x1F00, 0x1F08},
695+ {0x1F01, 0x1F09},
696+ {0x1F02, 0x1F0A},
697+ {0x1F03, 0x1F0B},
698+ {0x1F04, 0x1F0C},
699+ {0x1F05, 0x1F0D},
700+ {0x1F06, 0x1F0E},
701+ {0x1F07, 0x1F0F},
702+ {0x1F10, 0x1F18},
703+ {0x1F11, 0x1F19},
704+ {0x1F12, 0x1F1A},
705+ {0x1F13, 0x1F1B},
706+ {0x1F14, 0x1F1C},
707+ {0x1F15, 0x1F1D},
708+ {0x1F20, 0x1F28},
709+ {0x1F21, 0x1F29},
710+ {0x1F22, 0x1F2A},
711+ {0x1F23, 0x1F2B},
712+ {0x1F24, 0x1F2C},
713+ {0x1F25, 0x1F2D},
714+ {0x1F26, 0x1F2E},
715+ {0x1F27, 0x1F2F},
716+ {0x1F30, 0x1F38},
717+ {0x1F31, 0x1F39},
718+ {0x1F32, 0x1F3A},
719+ {0x1F33, 0x1F3B},
720+ {0x1F34, 0x1F3C},
721+ {0x1F35, 0x1F3D},
722+ {0x1F36, 0x1F3E},
723+ {0x1F37, 0x1F3F},
724+ {0x1F40, 0x1F48},
725+ {0x1F41, 0x1F49},
726+ {0x1F42, 0x1F4A},
727+ {0x1F43, 0x1F4B},
728+ {0x1F44, 0x1F4C},
729+ {0x1F45, 0x1F4D},
730+ {0x1F51, 0x1F59},
731+ {0x1F53, 0x1F5B},
732+ {0x1F55, 0x1F5D},
733+ {0x1F57, 0x1F5F},
734+ {0x1F60, 0x1F68},
735+ {0x1F61, 0x1F69},
736+ {0x1F62, 0x1F6A},
737+ {0x1F63, 0x1F6B},
738+ {0x1F64, 0x1F6C},
739+ {0x1F65, 0x1F6D},
740+ {0x1F66, 0x1F6E},
741+ {0x1F67, 0x1F6F},
742+ {0x1F70, 0x1FBA},
743+ {0x1F71, 0x1FBB},
744+ {0x1F72, 0x1FC8},
745+ {0x1F73, 0x1FC9},
746+ {0x1F74, 0x1FCA},
747+ {0x1F75, 0x1FCB},
748+ {0x1F76, 0x1FDA},
749+ {0x1F77, 0x1FDB},
750+ {0x1F78, 0x1FF8},
751+ {0x1F79, 0x1FF9},
752+ {0x1F7A, 0x1FEA},
753+ {0x1F7B, 0x1FEB},
754+ {0x1F7C, 0x1FFA},
755+ {0x1F7D, 0x1FFB},
756+ {0x1F80, 0x1F88},
757+ {0x1F81, 0x1F89},
758+ {0x1F82, 0x1F8A},
759+ {0x1F83, 0x1F8B},
760+ {0x1F84, 0x1F8C},
761+ {0x1F85, 0x1F8D},
762+ {0x1F86, 0x1F8E},
763+ {0x1F87, 0x1F8F},
764+ {0x1F90, 0x1F98},
765+ {0x1F91, 0x1F99},
766+ {0x1F92, 0x1F9A},
767+ {0x1F93, 0x1F9B},
768+ {0x1F94, 0x1F9C},
769+ {0x1F95, 0x1F9D},
770+ {0x1F96, 0x1F9E},
771+ {0x1F97, 0x1F9F},
772+ {0x1FA0, 0x1FA8},
773+ {0x1FA1, 0x1FA9},
774+ {0x1FA2, 0x1FAA},
775+ {0x1FA3, 0x1FAB},
776+ {0x1FA4, 0x1FAC},
777+ {0x1FA5, 0x1FAD},
778+ {0x1FA6, 0x1FAE},
779+ {0x1FA7, 0x1FAF},
780+ {0x1FB0, 0x1FB8},
781+ {0x1FB1, 0x1FB9},
782+ {0x1FB3, 0x1FBC},
783+ {0x1FBE, 0x0399},
784+ {0x1FC3, 0x1FCC},
785+ {0x1FD0, 0x1FD8},
786+ {0x1FD1, 0x1FD9},
787+ {0x1FE0, 0x1FE8},
788+ {0x1FE1, 0x1FE9},
789+ {0x1FE5, 0x1FEC},
790+ {0x1FF3, 0x1FFC},
791+ {0x214E, 0x2132},
792+ {0x2170, 0x2160},
793+ {0x2171, 0x2161},
794+ {0x2172, 0x2162},
795+ {0x2173, 0x2163},
796+ {0x2174, 0x2164},
797+ {0x2175, 0x2165},
798+ {0x2176, 0x2166},
799+ {0x2177, 0x2167},
800+ {0x2178, 0x2168},
801+ {0x2179, 0x2169},
802+ {0x217A, 0x216A},
803+ {0x217B, 0x216B},
804+ {0x217C, 0x216C},
805+ {0x217D, 0x216D},
806+ {0x217E, 0x216E},
807+ {0x217F, 0x216F},
808+ {0x2184, 0x2183},
809+ {0x24D0, 0x24B6},
810+ {0x24D1, 0x24B7},
811+ {0x24D2, 0x24B8},
812+ {0x24D3, 0x24B9},
813+ {0x24D4, 0x24BA},
814+ {0x24D5, 0x24BB},
815+ {0x24D6, 0x24BC},
816+ {0x24D7, 0x24BD},
817+ {0x24D8, 0x24BE},
818+ {0x24D9, 0x24BF},
819+ {0x24DA, 0x24C0},
820+ {0x24DB, 0x24C1},
821+ {0x24DC, 0x24C2},
822+ {0x24DD, 0x24C3},
823+ {0x24DE, 0x24C4},
824+ {0x24DF, 0x24C5},
825+ {0x24E0, 0x24C6},
826+ {0x24E1, 0x24C7},
827+ {0x24E2, 0x24C8},
828+ {0x24E3, 0x24C9},
829+ {0x24E4, 0x24CA},
830+ {0x24E5, 0x24CB},
831+ {0x24E6, 0x24CC},
832+ {0x24E7, 0x24CD},
833+ {0x24E8, 0x24CE},
834+ {0x24E9, 0x24CF},
835+ {0x2C30, 0x2C00},
836+ {0x2C31, 0x2C01},
837+ {0x2C32, 0x2C02},
838+ {0x2C33, 0x2C03},
839+ {0x2C34, 0x2C04},
840+ {0x2C35, 0x2C05},
841+ {0x2C36, 0x2C06},
842+ {0x2C37, 0x2C07},
843+ {0x2C38, 0x2C08},
844+ {0x2C39, 0x2C09},
845+ {0x2C3A, 0x2C0A},
846+ {0x2C3B, 0x2C0B},
847+ {0x2C3C, 0x2C0C},
848+ {0x2C3D, 0x2C0D},
849+ {0x2C3E, 0x2C0E},
850+ {0x2C3F, 0x2C0F},
851+ {0x2C40, 0x2C10},
852+ {0x2C41, 0x2C11},
853+ {0x2C42, 0x2C12},
854+ {0x2C43, 0x2C13},
855+ {0x2C44, 0x2C14},
856+ {0x2C45, 0x2C15},
857+ {0x2C46, 0x2C16},
858+ {0x2C47, 0x2C17},
859+ {0x2C48, 0x2C18},
860+ {0x2C49, 0x2C19},
861+ {0x2C4A, 0x2C1A},
862+ {0x2C4B, 0x2C1B},
863+ {0x2C4C, 0x2C1C},
864+ {0x2C4D, 0x2C1D},
865+ {0x2C4E, 0x2C1E},
866+ {0x2C4F, 0x2C1F},
867+ {0x2C50, 0x2C20},
868+ {0x2C51, 0x2C21},
869+ {0x2C52, 0x2C22},
870+ {0x2C53, 0x2C23},
871+ {0x2C54, 0x2C24},
872+ {0x2C55, 0x2C25},
873+ {0x2C56, 0x2C26},
874+ {0x2C57, 0x2C27},
875+ {0x2C58, 0x2C28},
876+ {0x2C59, 0x2C29},
877+ {0x2C5A, 0x2C2A},
878+ {0x2C5B, 0x2C2B},
879+ {0x2C5C, 0x2C2C},
880+ {0x2C5D, 0x2C2D},
881+ {0x2C5E, 0x2C2E},
882+ {0x2C5F, 0x2C2F},
883+ {0x2C61, 0x2C60},
884+ {0x2C65, 0x023A},
885+ {0x2C66, 0x023E},
886+ {0x2C68, 0x2C67},
887+ {0x2C6A, 0x2C69},
888+ {0x2C6C, 0x2C6B},
889+ {0x2C73, 0x2C72},
890+ {0x2C76, 0x2C75},
891+ {0x2C81, 0x2C80},
892+ {0x2C83, 0x2C82},
893+ {0x2C85, 0x2C84},
894+ {0x2C87, 0x2C86},
895+ {0x2C89, 0x2C88},
896+ {0x2C8B, 0x2C8A},
897+ {0x2C8D, 0x2C8C},
898+ {0x2C8F, 0x2C8E},
899+ {0x2C91, 0x2C90},
900+ {0x2C93, 0x2C92},
901+ {0x2C95, 0x2C94},
902+ {0x2C97, 0x2C96},
903+ {0x2C99, 0x2C98},
904+ {0x2C9B, 0x2C9A},
905+ {0x2C9D, 0x2C9C},
906+ {0x2C9F, 0x2C9E},
907+ {0x2CA1, 0x2CA0},
908+ {0x2CA3, 0x2CA2},
909+ {0x2CA5, 0x2CA4},
910+ {0x2CA7, 0x2CA6},
911+ {0x2CA9, 0x2CA8},
912+ {0x2CAB, 0x2CAA},
913+ {0x2CAD, 0x2CAC},
914+ {0x2CAF, 0x2CAE},
915+ {0x2CB1, 0x2CB0},
916+ {0x2CB3, 0x2CB2},
917+ {0x2CB5, 0x2CB4},
918+ {0x2CB7, 0x2CB6},
919+ {0x2CB9, 0x2CB8},
920+ {0x2CBB, 0x2CBA},
921+ {0x2CBD, 0x2CBC},
922+ {0x2CBF, 0x2CBE},
923+ {0x2CC1, 0x2CC0},
924+ {0x2CC3, 0x2CC2},
925+ {0x2CC5, 0x2CC4},
926+ {0x2CC7, 0x2CC6},
927+ {0x2CC9, 0x2CC8},
928+ {0x2CCB, 0x2CCA},
929+ {0x2CCD, 0x2CCC},
930+ {0x2CCF, 0x2CCE},
931+ {0x2CD1, 0x2CD0},
932+ {0x2CD3, 0x2CD2},
933+ {0x2CD5, 0x2CD4},
934+ {0x2CD7, 0x2CD6},
935+ {0x2CD9, 0x2CD8},
936+ {0x2CDB, 0x2CDA},
937+ {0x2CDD, 0x2CDC},
938+ {0x2CDF, 0x2CDE},
939+ {0x2CE1, 0x2CE0},
940+ {0x2CE3, 0x2CE2},
941+ {0x2CEC, 0x2CEB},
942+ {0x2CEE, 0x2CED},
943+ {0x2CF3, 0x2CF2},
944+ {0x2D00, 0x10A0},
945+ {0x2D01, 0x10A1},
946+ {0x2D02, 0x10A2},
947+ {0x2D03, 0x10A3},
948+ {0x2D04, 0x10A4},
949+ {0x2D05, 0x10A5},
950+ {0x2D06, 0x10A6},
951+ {0x2D07, 0x10A7},
952+ {0x2D08, 0x10A8},
953+ {0x2D09, 0x10A9},
954+ {0x2D0A, 0x10AA},
955+ {0x2D0B, 0x10AB},
956+ {0x2D0C, 0x10AC},
957+ {0x2D0D, 0x10AD},
958+ {0x2D0E, 0x10AE},
959+ {0x2D0F, 0x10AF},
960+ {0x2D10, 0x10B0},
961+ {0x2D11, 0x10B1},
962+ {0x2D12, 0x10B2},
963+ {0x2D13, 0x10B3},
964+ {0x2D14, 0x10B4},
965+ {0x2D15, 0x10B5},
966+ {0x2D16, 0x10B6},
967+ {0x2D17, 0x10B7},
968+ {0x2D18, 0x10B8},
969+ {0x2D19, 0x10B9},
970+ {0x2D1A, 0x10BA},
971+ {0x2D1B, 0x10BB},
972+ {0x2D1C, 0x10BC},
973+ {0x2D1D, 0x10BD},
974+ {0x2D1E, 0x10BE},
975+ {0x2D1F, 0x10BF},
976+ {0x2D20, 0x10C0},
977+ {0x2D21, 0x10C1},
978+ {0x2D22, 0x10C2},
979+ {0x2D23, 0x10C3},
980+ {0x2D24, 0x10C4},
981+ {0x2D25, 0x10C5},
982+ {0x2D27, 0x10C7},
983+ {0x2D2D, 0x10CD},
984+ {0xA641, 0xA640},
985+ {0xA643, 0xA642},
986+ {0xA645, 0xA644},
987+ {0xA647, 0xA646},
988+ {0xA649, 0xA648},
989+ {0xA64B, 0xA64A},
990+ {0xA64D, 0xA64C},
991+ {0xA64F, 0xA64E},
992+ {0xA651, 0xA650},
993+ {0xA653, 0xA652},
994+ {0xA655, 0xA654},
995+ {0xA657, 0xA656},
996+ {0xA659, 0xA658},
997+ {0xA65B, 0xA65A},
998+ {0xA65D, 0xA65C},
999+ {0xA65F, 0xA65E},
1000+ {0xA661, 0xA660},
1001+ {0xA663, 0xA662},
1002+ {0xA665, 0xA664},
1003+ {0xA667, 0xA666},
1004+ {0xA669, 0xA668},
1005+ {0xA66B, 0xA66A},
1006+ {0xA66D, 0xA66C},
1007+ {0xA681, 0xA680},
1008+ {0xA683, 0xA682},
1009+ {0xA685, 0xA684},
1010+ {0xA687, 0xA686},
1011+ {0xA689, 0xA688},
1012+ {0xA68B, 0xA68A},
1013+ {0xA68D, 0xA68C},
1014+ {0xA68F, 0xA68E},
1015+ {0xA691, 0xA690},
1016+ {0xA693, 0xA692},
1017+ {0xA695, 0xA694},
1018+ {0xA697, 0xA696},
1019+ {0xA699, 0xA698},
1020+ {0xA69B, 0xA69A},
1021+ {0xA723, 0xA722},
1022+ {0xA725, 0xA724},
1023+ {0xA727, 0xA726},
1024+ {0xA729, 0xA728},
1025+ {0xA72B, 0xA72A},
1026+ {0xA72D, 0xA72C},
1027+ {0xA72F, 0xA72E},
1028+ {0xA733, 0xA732},
1029+ {0xA735, 0xA734},
1030+ {0xA737, 0xA736},
1031+ {0xA739, 0xA738},
1032+ {0xA73B, 0xA73A},
1033+ {0xA73D, 0xA73C},
1034+ {0xA73F, 0xA73E},
1035+ {0xA741, 0xA740},
1036+ {0xA743, 0xA742},
1037+ {0xA745, 0xA744},
1038+ {0xA747, 0xA746},
1039+ {0xA749, 0xA748},
1040+ {0xA74B, 0xA74A},
1041+ {0xA74D, 0xA74C},
1042+ {0xA74F, 0xA74E},
1043+ {0xA751, 0xA750},
1044+ {0xA753, 0xA752},
1045+ {0xA755, 0xA754},
1046+ {0xA757, 0xA756},
1047+ {0xA759, 0xA758},
1048+ {0xA75B, 0xA75A},
1049+ {0xA75D, 0xA75C},
1050+ {0xA75F, 0xA75E},
1051+ {0xA761, 0xA760},
1052+ {0xA763, 0xA762},
1053+ {0xA765, 0xA764},
1054+ {0xA767, 0xA766},
1055+ {0xA769, 0xA768},
1056+ {0xA76B, 0xA76A},
1057+ {0xA76D, 0xA76C},
1058+ {0xA76F, 0xA76E},
1059+ {0xA77A, 0xA779},
1060+ {0xA77C, 0xA77B},
1061+ {0xA77F, 0xA77E},
1062+ {0xA781, 0xA780},
1063+ {0xA783, 0xA782},
1064+ {0xA785, 0xA784},
1065+ {0xA787, 0xA786},
1066+ {0xA78C, 0xA78B},
1067+ {0xA791, 0xA790},
1068+ {0xA793, 0xA792},
1069+ {0xA794, 0xA7C4},
1070+ {0xA797, 0xA796},
1071+ {0xA799, 0xA798},
1072+ {0xA79B, 0xA79A},
1073+ {0xA79D, 0xA79C},
1074+ {0xA79F, 0xA79E},
1075+ {0xA7A1, 0xA7A0},
1076+ {0xA7A3, 0xA7A2},
1077+ {0xA7A5, 0xA7A4},
1078+ {0xA7A7, 0xA7A6},
1079+ {0xA7A9, 0xA7A8},
1080+ {0xA7B5, 0xA7B4},
1081+ {0xA7B7, 0xA7B6},
1082+ {0xA7B9, 0xA7B8},
1083+ {0xA7BB, 0xA7BA},
1084+ {0xA7BD, 0xA7BC},
1085+ {0xA7BF, 0xA7BE},
1086+ {0xA7C1, 0xA7C0},
1087+ {0xA7C3, 0xA7C2},
1088+ {0xA7C8, 0xA7C7},
1089+ {0xA7CA, 0xA7C9},
1090+ {0xA7CD, 0xA7CC},
1091+ {0xA7CF, 0xA7CE},
1092+ {0xA7D1, 0xA7D0},
1093+ {0xA7D3, 0xA7D2},
1094+ {0xA7D5, 0xA7D4},
1095+ {0xA7D7, 0xA7D6},
1096+ {0xA7D9, 0xA7D8},
1097+ {0xA7DB, 0xA7DA},
1098+ {0xA7F6, 0xA7F5},
1099+ {0xAB53, 0xA7B3},
1100+ {0xAB70, 0x13A0},
1101+ {0xAB71, 0x13A1},
1102+ {0xAB72, 0x13A2},
1103+ {0xAB73, 0x13A3},
1104+ {0xAB74, 0x13A4},
1105+ {0xAB75, 0x13A5},
1106+ {0xAB76, 0x13A6},
1107+ {0xAB77, 0x13A7},
1108+ {0xAB78, 0x13A8},
1109+ {0xAB79, 0x13A9},
1110+ {0xAB7A, 0x13AA},
1111+ {0xAB7B, 0x13AB},
1112+ {0xAB7C, 0x13AC},
1113+ {0xAB7D, 0x13AD},
1114+ {0xAB7E, 0x13AE},
1115+ {0xAB7F, 0x13AF},
1116+ {0xAB80, 0x13B0},
1117+ {0xAB81, 0x13B1},
1118+ {0xAB82, 0x13B2},
1119+ {0xAB83, 0x13B3},
1120+ {0xAB84, 0x13B4},
1121+ {0xAB85, 0x13B5},
1122+ {0xAB86, 0x13B6},
1123+ {0xAB87, 0x13B7},
1124+ {0xAB88, 0x13B8},
1125+ {0xAB89, 0x13B9},
1126+ {0xAB8A, 0x13BA},
1127+ {0xAB8B, 0x13BB},
1128+ {0xAB8C, 0x13BC},
1129+ {0xAB8D, 0x13BD},
1130+ {0xAB8E, 0x13BE},
1131+ {0xAB8F, 0x13BF},
1132+ {0xAB90, 0x13C0},
1133+ {0xAB91, 0x13C1},
1134+ {0xAB92, 0x13C2},
1135+ {0xAB93, 0x13C3},
1136+ {0xAB94, 0x13C4},
1137+ {0xAB95, 0x13C5},
1138+ {0xAB96, 0x13C6},
1139+ {0xAB97, 0x13C7},
1140+ {0xAB98, 0x13C8},
1141+ {0xAB99, 0x13C9},
1142+ {0xAB9A, 0x13CA},
1143+ {0xAB9B, 0x13CB},
1144+ {0xAB9C, 0x13CC},
1145+ {0xAB9D, 0x13CD},
1146+ {0xAB9E, 0x13CE},
1147+ {0xAB9F, 0x13CF},
1148+ {0xABA0, 0x13D0},
1149+ {0xABA1, 0x13D1},
1150+ {0xABA2, 0x13D2},
1151+ {0xABA3, 0x13D3},
1152+ {0xABA4, 0x13D4},
1153+ {0xABA5, 0x13D5},
1154+ {0xABA6, 0x13D6},
1155+ {0xABA7, 0x13D7},
1156+ {0xABA8, 0x13D8},
1157+ {0xABA9, 0x13D9},
1158+ {0xABAA, 0x13DA},
1159+ {0xABAB, 0x13DB},
1160+ {0xABAC, 0x13DC},
1161+ {0xABAD, 0x13DD},
1162+ {0xABAE, 0x13DE},
1163+ {0xABAF, 0x13DF},
1164+ {0xABB0, 0x13E0},
1165+ {0xABB1, 0x13E1},
1166+ {0xABB2, 0x13E2},
1167+ {0xABB3, 0x13E3},
1168+ {0xABB4, 0x13E4},
1169+ {0xABB5, 0x13E5},
1170+ {0xABB6, 0x13E6},
1171+ {0xABB7, 0x13E7},
1172+ {0xABB8, 0x13E8},
1173+ {0xABB9, 0x13E9},
1174+ {0xABBA, 0x13EA},
1175+ {0xABBB, 0x13EB},
1176+ {0xABBC, 0x13EC},
1177+ {0xABBD, 0x13ED},
1178+ {0xABBE, 0x13EE},
1179+ {0xABBF, 0x13EF},
1180+ {0xFF41, 0xFF21},
1181+ {0xFF42, 0xFF22},
1182+ {0xFF43, 0xFF23},
1183+ {0xFF44, 0xFF24},
1184+ {0xFF45, 0xFF25},
1185+ {0xFF46, 0xFF26},
1186+ {0xFF47, 0xFF27},
1187+ {0xFF48, 0xFF28},
1188+ {0xFF49, 0xFF29},
1189+ {0xFF4A, 0xFF2A},
1190+ {0xFF4B, 0xFF2B},
1191+ {0xFF4C, 0xFF2C},
1192+ {0xFF4D, 0xFF2D},
1193+ {0xFF4E, 0xFF2E},
1194+ {0xFF4F, 0xFF2F},
1195+ {0xFF50, 0xFF30},
1196+ {0xFF51, 0xFF31},
1197+ {0xFF52, 0xFF32},
1198+ {0xFF53, 0xFF33},
1199+ {0xFF54, 0xFF34},
1200+ {0xFF55, 0xFF35},
1201+ {0xFF56, 0xFF36},
1202+ {0xFF57, 0xFF37},
1203+ {0xFF58, 0xFF38},
1204+ {0xFF59, 0xFF39},
1205+ {0xFF5A, 0xFF3A},
1206+ {0x10428, 0x10400},
1207+ {0x10429, 0x10401},
1208+ {0x1042A, 0x10402},
1209+ {0x1042B, 0x10403},
1210+ {0x1042C, 0x10404},
1211+ {0x1042D, 0x10405},
1212+ {0x1042E, 0x10406},
1213+ {0x1042F, 0x10407},
1214+ {0x10430, 0x10408},
1215+ {0x10431, 0x10409},
1216+ {0x10432, 0x1040A},
1217+ {0x10433, 0x1040B},
1218+ {0x10434, 0x1040C},
1219+ {0x10435, 0x1040D},
1220+ {0x10436, 0x1040E},
1221+ {0x10437, 0x1040F},
1222+ {0x10438, 0x10410},
1223+ {0x10439, 0x10411},
1224+ {0x1043A, 0x10412},
1225+ {0x1043B, 0x10413},
1226+ {0x1043C, 0x10414},
1227+ {0x1043D, 0x10415},
1228+ {0x1043E, 0x10416},
1229+ {0x1043F, 0x10417},
1230+ {0x10440, 0x10418},
1231+ {0x10441, 0x10419},
1232+ {0x10442, 0x1041A},
1233+ {0x10443, 0x1041B},
1234+ {0x10444, 0x1041C},
1235+ {0x10445, 0x1041D},
1236+ {0x10446, 0x1041E},
1237+ {0x10447, 0x1041F},
1238+ {0x10448, 0x10420},
1239+ {0x10449, 0x10421},
1240+ {0x1044A, 0x10422},
1241+ {0x1044B, 0x10423},
1242+ {0x1044C, 0x10424},
1243+ {0x1044D, 0x10425},
1244+ {0x1044E, 0x10426},
1245+ {0x1044F, 0x10427},
1246+ {0x104D8, 0x104B0},
1247+ {0x104D9, 0x104B1},
1248+ {0x104DA, 0x104B2},
1249+ {0x104DB, 0x104B3},
1250+ {0x104DC, 0x104B4},
1251+ {0x104DD, 0x104B5},
1252+ {0x104DE, 0x104B6},
1253+ {0x104DF, 0x104B7},
1254+ {0x104E0, 0x104B8},
1255+ {0x104E1, 0x104B9},
1256+ {0x104E2, 0x104BA},
1257+ {0x104E3, 0x104BB},
1258+ {0x104E4, 0x104BC},
1259+ {0x104E5, 0x104BD},
1260+ {0x104E6, 0x104BE},
1261+ {0x104E7, 0x104BF},
1262+ {0x104E8, 0x104C0},
1263+ {0x104E9, 0x104C1},
1264+ {0x104EA, 0x104C2},
1265+ {0x104EB, 0x104C3},
1266+ {0x104EC, 0x104C4},
1267+ {0x104ED, 0x104C5},
1268+ {0x104EE, 0x104C6},
1269+ {0x104EF, 0x104C7},
1270+ {0x104F0, 0x104C8},
1271+ {0x104F1, 0x104C9},
1272+ {0x104F2, 0x104CA},
1273+ {0x104F3, 0x104CB},
1274+ {0x104F4, 0x104CC},
1275+ {0x104F5, 0x104CD},
1276+ {0x104F6, 0x104CE},
1277+ {0x104F7, 0x104CF},
1278+ {0x104F8, 0x104D0},
1279+ {0x104F9, 0x104D1},
1280+ {0x104FA, 0x104D2},
1281+ {0x104FB, 0x104D3},
1282+ {0x10597, 0x10570},
1283+ {0x10598, 0x10571},
1284+ {0x10599, 0x10572},
1285+ {0x1059A, 0x10573},
1286+ {0x1059B, 0x10574},
1287+ {0x1059C, 0x10575},
1288+ {0x1059D, 0x10576},
1289+ {0x1059E, 0x10577},
1290+ {0x1059F, 0x10578},
1291+ {0x105A0, 0x10579},
1292+ {0x105A1, 0x1057A},
1293+ {0x105A3, 0x1057C},
1294+ {0x105A4, 0x1057D},
1295+ {0x105A5, 0x1057E},
1296+ {0x105A6, 0x1057F},
1297+ {0x105A7, 0x10580},
1298+ {0x105A8, 0x10581},
1299+ {0x105A9, 0x10582},
1300+ {0x105AA, 0x10583},
1301+ {0x105AB, 0x10584},
1302+ {0x105AC, 0x10585},
1303+ {0x105AD, 0x10586},
1304+ {0x105AE, 0x10587},
1305+ {0x105AF, 0x10588},
1306+ {0x105B0, 0x10589},
1307+ {0x105B1, 0x1058A},
1308+ {0x105B3, 0x1058C},
1309+ {0x105B4, 0x1058D},
1310+ {0x105B5, 0x1058E},
1311+ {0x105B6, 0x1058F},
1312+ {0x105B7, 0x10590},
1313+ {0x105B8, 0x10591},
1314+ {0x105B9, 0x10592},
1315+ {0x105BB, 0x10594},
1316+ {0x105BC, 0x10595},
1317+ {0x10CC0, 0x10C80},
1318+ {0x10CC1, 0x10C81},
1319+ {0x10CC2, 0x10C82},
1320+ {0x10CC3, 0x10C83},
1321+ {0x10CC4, 0x10C84},
1322+ {0x10CC5, 0x10C85},
1323+ {0x10CC6, 0x10C86},
1324+ {0x10CC7, 0x10C87},
1325+ {0x10CC8, 0x10C88},
1326+ {0x10CC9, 0x10C89},
1327+ {0x10CCA, 0x10C8A},
1328+ {0x10CCB, 0x10C8B},
1329+ {0x10CCC, 0x10C8C},
1330+ {0x10CCD, 0x10C8D},
1331+ {0x10CCE, 0x10C8E},
1332+ {0x10CCF, 0x10C8F},
1333+ {0x10CD0, 0x10C90},
1334+ {0x10CD1, 0x10C91},
1335+ {0x10CD2, 0x10C92},
1336+ {0x10CD3, 0x10C93},
1337+ {0x10CD4, 0x10C94},
1338+ {0x10CD5, 0x10C95},
1339+ {0x10CD6, 0x10C96},
1340+ {0x10CD7, 0x10C97},
1341+ {0x10CD8, 0x10C98},
1342+ {0x10CD9, 0x10C99},
1343+ {0x10CDA, 0x10C9A},
1344+ {0x10CDB, 0x10C9B},
1345+ {0x10CDC, 0x10C9C},
1346+ {0x10CDD, 0x10C9D},
1347+ {0x10CDE, 0x10C9E},
1348+ {0x10CDF, 0x10C9F},
1349+ {0x10CE0, 0x10CA0},
1350+ {0x10CE1, 0x10CA1},
1351+ {0x10CE2, 0x10CA2},
1352+ {0x10CE3, 0x10CA3},
1353+ {0x10CE4, 0x10CA4},
1354+ {0x10CE5, 0x10CA5},
1355+ {0x10CE6, 0x10CA6},
1356+ {0x10CE7, 0x10CA7},
1357+ {0x10CE8, 0x10CA8},
1358+ {0x10CE9, 0x10CA9},
1359+ {0x10CEA, 0x10CAA},
1360+ {0x10CEB, 0x10CAB},
1361+ {0x10CEC, 0x10CAC},
1362+ {0x10CED, 0x10CAD},
1363+ {0x10CEE, 0x10CAE},
1364+ {0x10CEF, 0x10CAF},
1365+ {0x10CF0, 0x10CB0},
1366+ {0x10CF1, 0x10CB1},
1367+ {0x10CF2, 0x10CB2},
1368+ {0x118C0, 0x118A0},
1369+ {0x118C1, 0x118A1},
1370+ {0x118C2, 0x118A2},
1371+ {0x118C3, 0x118A3},
1372+ {0x118C4, 0x118A4},
1373+ {0x118C5, 0x118A5},
1374+ {0x118C6, 0x118A6},
1375+ {0x118C7, 0x118A7},
1376+ {0x118C8, 0x118A8},
1377+ {0x118C9, 0x118A9},
1378+ {0x118CA, 0x118AA},
1379+ {0x118CB, 0x118AB},
1380+ {0x118CC, 0x118AC},
1381+ {0x118CD, 0x118AD},
1382+ {0x118CE, 0x118AE},
1383+ {0x118CF, 0x118AF},
1384+ {0x118D0, 0x118B0},
1385+ {0x118D1, 0x118B1},
1386+ {0x118D2, 0x118B2},
1387+ {0x118D3, 0x118B3},
1388+ {0x118D4, 0x118B4},
1389+ {0x118D5, 0x118B5},
1390+ {0x118D6, 0x118B6},
1391+ {0x118D7, 0x118B7},
1392+ {0x118D8, 0x118B8},
1393+ {0x118D9, 0x118B9},
1394+ {0x118DA, 0x118BA},
1395+ {0x118DB, 0x118BB},
1396+ {0x118DC, 0x118BC},
1397+ {0x118DD, 0x118BD},
1398+ {0x118DE, 0x118BE},
1399+ {0x118DF, 0x118BF},
1400+ {0x16E60, 0x16E40},
1401+ {0x16E61, 0x16E41},
1402+ {0x16E62, 0x16E42},
1403+ {0x16E63, 0x16E43},
1404+ {0x16E64, 0x16E44},
1405+ {0x16E65, 0x16E45},
1406+ {0x16E66, 0x16E46},
1407+ {0x16E67, 0x16E47},
1408+ {0x16E68, 0x16E48},
1409+ {0x16E69, 0x16E49},
1410+ {0x16E6A, 0x16E4A},
1411+ {0x16E6B, 0x16E4B},
1412+ {0x16E6C, 0x16E4C},
1413+ {0x16E6D, 0x16E4D},
1414+ {0x16E6E, 0x16E4E},
1415+ {0x16E6F, 0x16E4F},
1416+ {0x16E70, 0x16E50},
1417+ {0x16E71, 0x16E51},
1418+ {0x16E72, 0x16E52},
1419+ {0x16E73, 0x16E53},
1420+ {0x16E74, 0x16E54},
1421+ {0x16E75, 0x16E55},
1422+ {0x16E76, 0x16E56},
1423+ {0x16E77, 0x16E57},
1424+ {0x16E78, 0x16E58},
1425+ {0x16E79, 0x16E59},
1426+ {0x16E7A, 0x16E5A},
1427+ {0x16E7B, 0x16E5B},
1428+ {0x16E7C, 0x16E5C},
1429+ {0x16E7D, 0x16E5D},
1430+ {0x16E7E, 0x16E5E},
1431+ {0x16E7F, 0x16E5F},
1432+ {0x1E922, 0x1E900},
1433+ {0x1E923, 0x1E901},
1434+ {0x1E924, 0x1E902},
1435+ {0x1E925, 0x1E903},
1436+ {0x1E926, 0x1E904},
1437+ {0x1E927, 0x1E905},
1438+ {0x1E928, 0x1E906},
1439+ {0x1E929, 0x1E907},
1440+ {0x1E92A, 0x1E908},
1441+ {0x1E92B, 0x1E909},
1442+ {0x1E92C, 0x1E90A},
1443+ {0x1E92D, 0x1E90B},
1444+ {0x1E92E, 0x1E90C},
1445+ {0x1E92F, 0x1E90D},
1446+ {0x1E930, 0x1E90E},
1447+ {0x1E931, 0x1E90F},
1448+ {0x1E932, 0x1E910},
1449+ {0x1E933, 0x1E911},
1450+ {0x1E934, 0x1E912},
1451+ {0x1E935, 0x1E913},
1452+ {0x1E936, 0x1E914},
1453+ {0x1E937, 0x1E915},
1454+ {0x1E938, 0x1E916},
1455+ {0x1E939, 0x1E917},
1456+ {0x1E93A, 0x1E918},
1457+ {0x1E93B, 0x1E919},
1458+ {0x1E93C, 0x1E91A},
1459+ {0x1E93D, 0x1E91B},
1460+ {0x1E93E, 0x1E91C},
1461+ {0x1E93F, 0x1E91D},
1462+ {0x1E940, 0x1E91E},
1463+ {0x1E941, 0x1E91F},
1464+ {0x1E942, 0x1E920},
1465+ {0x1E943, 0x1E921},
1466+}
@@ -0,0 +1,1466 @@
1+// SPDX-License-Identifier: MIT
2+
3+// Code generated by gen/fold.go from `runner.dll --fold` (gen/runner); DO NOT EDIT.
4+
5+package expr
6+
7+// ordinalUpper maps a code point to the one that .NET's OrdinalIgnoreCase comparison treats
8+// it as, sorted by the first element. Code points that are not listed stand for themselves.
9+var ordinalUpper = [...][2]rune{
10+ {0x0061, 0x0041},
11+ {0x0062, 0x0042},
12+ {0x0063, 0x0043},
13+ {0x0064, 0x0044},
14+ {0x0065, 0x0045},
15+ {0x0066, 0x0046},
16+ {0x0067, 0x0047},
17+ {0x0068, 0x0048},
18+ {0x0069, 0x0049},
19+ {0x006A, 0x004A},
20+ {0x006B, 0x004B},
21+ {0x006C, 0x004C},
22+ {0x006D, 0x004D},
23+ {0x006E, 0x004E},
24+ {0x006F, 0x004F},
25+ {0x0070, 0x0050},
26+ {0x0071, 0x0051},
27+ {0x0072, 0x0052},
28+ {0x0073, 0x0053},
29+ {0x0074, 0x0054},
30+ {0x0075, 0x0055},
31+ {0x0076, 0x0056},
32+ {0x0077, 0x0057},
33+ {0x0078, 0x0058},
34+ {0x0079, 0x0059},
35+ {0x007A, 0x005A},
36+ {0x00B5, 0x039C},
37+ {0x00E0, 0x00C0},
38+ {0x00E1, 0x00C1},
39+ {0x00E2, 0x00C2},
40+ {0x00E3, 0x00C3},
41+ {0x00E4, 0x00C4},
42+ {0x00E5, 0x00C5},
43+ {0x00E6, 0x00C6},
44+ {0x00E7, 0x00C7},
45+ {0x00E8, 0x00C8},
46+ {0x00E9, 0x00C9},
47+ {0x00EA, 0x00CA},
48+ {0x00EB, 0x00CB},
49+ {0x00EC, 0x00CC},
50+ {0x00ED, 0x00CD},
51+ {0x00EE, 0x00CE},
52+ {0x00EF, 0x00CF},
53+ {0x00F0, 0x00D0},
54+ {0x00F1, 0x00D1},
55+ {0x00F2, 0x00D2},
56+ {0x00F3, 0x00D3},
57+ {0x00F4, 0x00D4},
58+ {0x00F5, 0x00D5},
59+ {0x00F6, 0x00D6},
60+ {0x00F8, 0x00D8},
61+ {0x00F9, 0x00D9},
62+ {0x00FA, 0x00DA},
63+ {0x00FB, 0x00DB},
64+ {0x00FC, 0x00DC},
65+ {0x00FD, 0x00DD},
66+ {0x00FE, 0x00DE},
67+ {0x00FF, 0x0178},
68+ {0x0101, 0x0100},
69+ {0x0103, 0x0102},
70+ {0x0105, 0x0104},
71+ {0x0107, 0x0106},
72+ {0x0109, 0x0108},
73+ {0x010B, 0x010A},
74+ {0x010D, 0x010C},
75+ {0x010F, 0x010E},
76+ {0x0111, 0x0110},
77+ {0x0113, 0x0112},
78+ {0x0115, 0x0114},
79+ {0x0117, 0x0116},
80+ {0x0119, 0x0118},
81+ {0x011B, 0x011A},
82+ {0x011D, 0x011C},
83+ {0x011F, 0x011E},
84+ {0x0121, 0x0120},
85+ {0x0123, 0x0122},
86+ {0x0125, 0x0124},
87+ {0x0127, 0x0126},
88+ {0x0129, 0x0128},
89+ {0x012B, 0x012A},
90+ {0x012D, 0x012C},
91+ {0x012F, 0x012E},
92+ {0x0133, 0x0132},
93+ {0x0135, 0x0134},
94+ {0x0137, 0x0136},
95+ {0x013A, 0x0139},
96+ {0x013C, 0x013B},
97+ {0x013E, 0x013D},
98+ {0x0140, 0x013F},
99+ {0x0142, 0x0141},
100+ {0x0144, 0x0143},
101+ {0x0146, 0x0145},
102+ {0x0148, 0x0147},
103+ {0x014B, 0x014A},
104+ {0x014D, 0x014C},
105+ {0x014F, 0x014E},
106+ {0x0151, 0x0150},
107+ {0x0153, 0x0152},
108+ {0x0155, 0x0154},
109+ {0x0157, 0x0156},
110+ {0x0159, 0x0158},
111+ {0x015B, 0x015A},
112+ {0x015D, 0x015C},
113+ {0x015F, 0x015E},
114+ {0x0161, 0x0160},
115+ {0x0163, 0x0162},
116+ {0x0165, 0x0164},
117+ {0x0167, 0x0166},
118+ {0x0169, 0x0168},
119+ {0x016B, 0x016A},
120+ {0x016D, 0x016C},
121+ {0x016F, 0x016E},
122+ {0x0171, 0x0170},
123+ {0x0173, 0x0172},
124+ {0x0175, 0x0174},
125+ {0x0177, 0x0176},
126+ {0x017A, 0x0179},
127+ {0x017C, 0x017B},
128+ {0x017E, 0x017D},
129+ {0x0180, 0x0243},
130+ {0x0183, 0x0182},
131+ {0x0185, 0x0184},
132+ {0x0188, 0x0187},
133+ {0x018C, 0x018B},
134+ {0x0192, 0x0191},
135+ {0x0195, 0x01F6},
136+ {0x0199, 0x0198},
137+ {0x019A, 0x023D},
138+ {0x019B, 0xA7DC},
139+ {0x019E, 0x0220},
140+ {0x01A1, 0x01A0},
141+ {0x01A3, 0x01A2},
142+ {0x01A5, 0x01A4},
143+ {0x01A8, 0x01A7},
144+ {0x01AD, 0x01AC},
145+ {0x01B0, 0x01AF},
146+ {0x01B4, 0x01B3},
147+ {0x01B6, 0x01B5},
148+ {0x01B9, 0x01B8},
149+ {0x01BD, 0x01BC},
150+ {0x01BF, 0x01F7},
151+ {0x01C5, 0x01C4},
152+ {0x01C6, 0x01C4},
153+ {0x01C8, 0x01C7},
154+ {0x01C9, 0x01C7},
155+ {0x01CB, 0x01CA},
156+ {0x01CC, 0x01CA},
157+ {0x01CE, 0x01CD},
158+ {0x01D0, 0x01CF},
159+ {0x01D2, 0x01D1},
160+ {0x01D4, 0x01D3},
161+ {0x01D6, 0x01D5},
162+ {0x01D8, 0x01D7},
163+ {0x01DA, 0x01D9},
164+ {0x01DC, 0x01DB},
165+ {0x01DD, 0x018E},
166+ {0x01DF, 0x01DE},
167+ {0x01E1, 0x01E0},
168+ {0x01E3, 0x01E2},
169+ {0x01E5, 0x01E4},
170+ {0x01E7, 0x01E6},
171+ {0x01E9, 0x01E8},
172+ {0x01EB, 0x01EA},
173+ {0x01ED, 0x01EC},
174+ {0x01EF, 0x01EE},
175+ {0x01F2, 0x01F1},
176+ {0x01F3, 0x01F1},
177+ {0x01F5, 0x01F4},
178+ {0x01F9, 0x01F8},
179+ {0x01FB, 0x01FA},
180+ {0x01FD, 0x01FC},
181+ {0x01FF, 0x01FE},
182+ {0x0201, 0x0200},
183+ {0x0203, 0x0202},
184+ {0x0205, 0x0204},
185+ {0x0207, 0x0206},
186+ {0x0209, 0x0208},
187+ {0x020B, 0x020A},
188+ {0x020D, 0x020C},
189+ {0x020F, 0x020E},
190+ {0x0211, 0x0210},
191+ {0x0213, 0x0212},
192+ {0x0215, 0x0214},
193+ {0x0217, 0x0216},
194+ {0x0219, 0x0218},
195+ {0x021B, 0x021A},
196+ {0x021D, 0x021C},
197+ {0x021F, 0x021E},
198+ {0x0223, 0x0222},
199+ {0x0225, 0x0224},
200+ {0x0227, 0x0226},
201+ {0x0229, 0x0228},
202+ {0x022B, 0x022A},
203+ {0x022D, 0x022C},
204+ {0x022F, 0x022E},
205+ {0x0231, 0x0230},
206+ {0x0233, 0x0232},
207+ {0x023C, 0x023B},
208+ {0x023F, 0x2C7E},
209+ {0x0240, 0x2C7F},
210+ {0x0242, 0x0241},
211+ {0x0247, 0x0246},
212+ {0x0249, 0x0248},
213+ {0x024B, 0x024A},
214+ {0x024D, 0x024C},
215+ {0x024F, 0x024E},
216+ {0x0250, 0x2C6F},
217+ {0x0251, 0x2C6D},
218+ {0x0252, 0x2C70},
219+ {0x0253, 0x0181},
220+ {0x0254, 0x0186},
221+ {0x0256, 0x0189},
222+ {0x0257, 0x018A},
223+ {0x0259, 0x018F},
224+ {0x025B, 0x0190},
225+ {0x025C, 0xA7AB},
226+ {0x0260, 0x0193},
227+ {0x0261, 0xA7AC},
228+ {0x0263, 0x0194},
229+ {0x0264, 0xA7CB},
230+ {0x0265, 0xA78D},
231+ {0x0266, 0xA7AA},
232+ {0x0268, 0x0197},
233+ {0x0269, 0x0196},
234+ {0x026A, 0xA7AE},
235+ {0x026B, 0x2C62},
236+ {0x026C, 0xA7AD},
237+ {0x026F, 0x019C},
238+ {0x0271, 0x2C6E},
239+ {0x0272, 0x019D},
240+ {0x0275, 0x019F},
241+ {0x027D, 0x2C64},
242+ {0x0280, 0x01A6},
243+ {0x0282, 0xA7C5},
244+ {0x0283, 0x01A9},
245+ {0x0287, 0xA7B1},
246+ {0x0288, 0x01AE},
247+ {0x0289, 0x0244},
248+ {0x028A, 0x01B1},
249+ {0x028B, 0x01B2},
250+ {0x028C, 0x0245},
251+ {0x0292, 0x01B7},
252+ {0x029D, 0xA7B2},
253+ {0x029E, 0xA7B0},
254+ {0x0345, 0x0399},
255+ {0x0371, 0x0370},
256+ {0x0373, 0x0372},
257+ {0x0377, 0x0376},
258+ {0x037B, 0x03FD},
259+ {0x037C, 0x03FE},
260+ {0x037D, 0x03FF},
261+ {0x03AC, 0x0386},
262+ {0x03AD, 0x0388},
263+ {0x03AE, 0x0389},
264+ {0x03AF, 0x038A},
265+ {0x03B1, 0x0391},
266+ {0x03B2, 0x0392},
267+ {0x03B3, 0x0393},
268+ {0x03B4, 0x0394},
269+ {0x03B5, 0x0395},
270+ {0x03B6, 0x0396},
271+ {0x03B7, 0x0397},
272+ {0x03B8, 0x0398},
273+ {0x03B9, 0x0399},
274+ {0x03BA, 0x039A},
275+ {0x03BB, 0x039B},
276+ {0x03BC, 0x039C},
277+ {0x03BD, 0x039D},
278+ {0x03BE, 0x039E},
279+ {0x03BF, 0x039F},
280+ {0x03C0, 0x03A0},
281+ {0x03C1, 0x03A1},
282+ {0x03C2, 0x03A3},
283+ {0x03C3, 0x03A3},
284+ {0x03C4, 0x03A4},
285+ {0x03C5, 0x03A5},
286+ {0x03C6, 0x03A6},
287+ {0x03C7, 0x03A7},
288+ {0x03C8, 0x03A8},
289+ {0x03C9, 0x03A9},
290+ {0x03CA, 0x03AA},
291+ {0x03CB, 0x03AB},
292+ {0x03CC, 0x038C},
293+ {0x03CD, 0x038E},
294+ {0x03CE, 0x038F},
295+ {0x03D0, 0x0392},
296+ {0x03D1, 0x0398},
297+ {0x03D5, 0x03A6},
298+ {0x03D6, 0x03A0},
299+ {0x03D7, 0x03CF},
300+ {0x03D9, 0x03D8},
301+ {0x03DB, 0x03DA},
302+ {0x03DD, 0x03DC},
303+ {0x03DF, 0x03DE},
304+ {0x03E1, 0x03E0},
305+ {0x03E3, 0x03E2},
306+ {0x03E5, 0x03E4},
307+ {0x03E7, 0x03E6},
308+ {0x03E9, 0x03E8},
309+ {0x03EB, 0x03EA},
310+ {0x03ED, 0x03EC},
311+ {0x03EF, 0x03EE},
312+ {0x03F0, 0x039A},
313+ {0x03F1, 0x03A1},
314+ {0x03F2, 0x03F9},
315+ {0x03F3, 0x037F},
316+ {0x03F5, 0x0395},
317+ {0x03F8, 0x03F7},
318+ {0x03FB, 0x03FA},
319+ {0x0430, 0x0410},
320+ {0x0431, 0x0411},
321+ {0x0432, 0x0412},
322+ {0x0433, 0x0413},
323+ {0x0434, 0x0414},
324+ {0x0435, 0x0415},
325+ {0x0436, 0x0416},
326+ {0x0437, 0x0417},
327+ {0x0438, 0x0418},
328+ {0x0439, 0x0419},
329+ {0x043A, 0x041A},
330+ {0x043B, 0x041B},
331+ {0x043C, 0x041C},
332+ {0x043D, 0x041D},
333+ {0x043E, 0x041E},
334+ {0x043F, 0x041F},
335+ {0x0440, 0x0420},
336+ {0x0441, 0x0421},
337+ {0x0442, 0x0422},
338+ {0x0443, 0x0423},
339+ {0x0444, 0x0424},
340+ {0x0445, 0x0425},
341+ {0x0446, 0x0426},
342+ {0x0447, 0x0427},
343+ {0x0448, 0x0428},
344+ {0x0449, 0x0429},
345+ {0x044A, 0x042A},
346+ {0x044B, 0x042B},
347+ {0x044C, 0x042C},
348+ {0x044D, 0x042D},
349+ {0x044E, 0x042E},
350+ {0x044F, 0x042F},
351+ {0x0450, 0x0400},
352+ {0x0451, 0x0401},
353+ {0x0452, 0x0402},
354+ {0x0453, 0x0403},
355+ {0x0454, 0x0404},
356+ {0x0455, 0x0405},
357+ {0x0456, 0x0406},
358+ {0x0457, 0x0407},
359+ {0x0458, 0x0408},
360+ {0x0459, 0x0409},
361+ {0x045A, 0x040A},
362+ {0x045B, 0x040B},
363+ {0x045C, 0x040C},
364+ {0x045D, 0x040D},
365+ {0x045E, 0x040E},
366+ {0x045F, 0x040F},
367+ {0x0461, 0x0460},
368+ {0x0463, 0x0462},
369+ {0x0465, 0x0464},
370+ {0x0467, 0x0466},
371+ {0x0469, 0x0468},
372+ {0x046B, 0x046A},
373+ {0x046D, 0x046C},
374+ {0x046F, 0x046E},
375+ {0x0471, 0x0470},
376+ {0x0473, 0x0472},
377+ {0x0475, 0x0474},
378+ {0x0477, 0x0476},
379+ {0x0479, 0x0478},
380+ {0x047B, 0x047A},
381+ {0x047D, 0x047C},
382+ {0x047F, 0x047E},
383+ {0x0481, 0x0480},
384+ {0x048B, 0x048A},
385+ {0x048D, 0x048C},
386+ {0x048F, 0x048E},
387+ {0x0491, 0x0490},
388+ {0x0493, 0x0492},
389+ {0x0495, 0x0494},
390+ {0x0497, 0x0496},
391+ {0x0499, 0x0498},
392+ {0x049B, 0x049A},
393+ {0x049D, 0x049C},
394+ {0x049F, 0x049E},
395+ {0x04A1, 0x04A0},
396+ {0x04A3, 0x04A2},
397+ {0x04A5, 0x04A4},
398+ {0x04A7, 0x04A6},
399+ {0x04A9, 0x04A8},
400+ {0x04AB, 0x04AA},
401+ {0x04AD, 0x04AC},
402+ {0x04AF, 0x04AE},
403+ {0x04B1, 0x04B0},
404+ {0x04B3, 0x04B2},
405+ {0x04B5, 0x04B4},
406+ {0x04B7, 0x04B6},
407+ {0x04B9, 0x04B8},
408+ {0x04BB, 0x04BA},
409+ {0x04BD, 0x04BC},
410+ {0x04BF, 0x04BE},
411+ {0x04C2, 0x04C1},
412+ {0x04C4, 0x04C3},
413+ {0x04C6, 0x04C5},
414+ {0x04C8, 0x04C7},
415+ {0x04CA, 0x04C9},
416+ {0x04CC, 0x04CB},
417+ {0x04CE, 0x04CD},
418+ {0x04CF, 0x04C0},
419+ {0x04D1, 0x04D0},
420+ {0x04D3, 0x04D2},
421+ {0x04D5, 0x04D4},
422+ {0x04D7, 0x04D6},
423+ {0x04D9, 0x04D8},
424+ {0x04DB, 0x04DA},
425+ {0x04DD, 0x04DC},
426+ {0x04DF, 0x04DE},
427+ {0x04E1, 0x04E0},
428+ {0x04E3, 0x04E2},
429+ {0x04E5, 0x04E4},
430+ {0x04E7, 0x04E6},
431+ {0x04E9, 0x04E8},
432+ {0x04EB, 0x04EA},
433+ {0x04ED, 0x04EC},
434+ {0x04EF, 0x04EE},
435+ {0x04F1, 0x04F0},
436+ {0x04F3, 0x04F2},
437+ {0x04F5, 0x04F4},
438+ {0x04F7, 0x04F6},
439+ {0x04F9, 0x04F8},
440+ {0x04FB, 0x04FA},
441+ {0x04FD, 0x04FC},
442+ {0x04FF, 0x04FE},
443+ {0x0501, 0x0500},
444+ {0x0503, 0x0502},
445+ {0x0505, 0x0504},
446+ {0x0507, 0x0506},
447+ {0x0509, 0x0508},
448+ {0x050B, 0x050A},
449+ {0x050D, 0x050C},
450+ {0x050F, 0x050E},
451+ {0x0511, 0x0510},
452+ {0x0513, 0x0512},
453+ {0x0515, 0x0514},
454+ {0x0517, 0x0516},
455+ {0x0519, 0x0518},
456+ {0x051B, 0x051A},
457+ {0x051D, 0x051C},
458+ {0x051F, 0x051E},
459+ {0x0521, 0x0520},
460+ {0x0523, 0x0522},
461+ {0x0525, 0x0524},
462+ {0x0527, 0x0526},
463+ {0x0529, 0x0528},
464+ {0x052B, 0x052A},
465+ {0x052D, 0x052C},
466+ {0x052F, 0x052E},
467+ {0x0561, 0x0531},
468+ {0x0562, 0x0532},
469+ {0x0563, 0x0533},
470+ {0x0564, 0x0534},
471+ {0x0565, 0x0535},
472+ {0x0566, 0x0536},
473+ {0x0567, 0x0537},
474+ {0x0568, 0x0538},
475+ {0x0569, 0x0539},
476+ {0x056A, 0x053A},
477+ {0x056B, 0x053B},
478+ {0x056C, 0x053C},
479+ {0x056D, 0x053D},
480+ {0x056E, 0x053E},
481+ {0x056F, 0x053F},
482+ {0x0570, 0x0540},
483+ {0x0571, 0x0541},
484+ {0x0572, 0x0542},
485+ {0x0573, 0x0543},
486+ {0x0574, 0x0544},
487+ {0x0575, 0x0545},
488+ {0x0576, 0x0546},
489+ {0x0577, 0x0547},
490+ {0x0578, 0x0548},
491+ {0x0579, 0x0549},
492+ {0x057A, 0x054A},
493+ {0x057B, 0x054B},
494+ {0x057C, 0x054C},
495+ {0x057D, 0x054D},
496+ {0x057E, 0x054E},
497+ {0x057F, 0x054F},
498+ {0x0580, 0x0550},
499+ {0x0581, 0x0551},
500+ {0x0582, 0x0552},
501+ {0x0583, 0x0553},
502+ {0x0584, 0x0554},
503+ {0x0585, 0x0555},
504+ {0x0586, 0x0556},
505+ {0x10D0, 0x1C90},
506+ {0x10D1, 0x1C91},
507+ {0x10D2, 0x1C92},
508+ {0x10D3, 0x1C93},
509+ {0x10D4, 0x1C94},
510+ {0x10D5, 0x1C95},
511+ {0x10D6, 0x1C96},
512+ {0x10D7, 0x1C97},
513+ {0x10D8, 0x1C98},
514+ {0x10D9, 0x1C99},
515+ {0x10DA, 0x1C9A},
516+ {0x10DB, 0x1C9B},
517+ {0x10DC, 0x1C9C},
518+ {0x10DD, 0x1C9D},
519+ {0x10DE, 0x1C9E},
520+ {0x10DF, 0x1C9F},
521+ {0x10E0, 0x1CA0},
522+ {0x10E1, 0x1CA1},
523+ {0x10E2, 0x1CA2},
524+ {0x10E3, 0x1CA3},
525+ {0x10E4, 0x1CA4},
526+ {0x10E5, 0x1CA5},
527+ {0x10E6, 0x1CA6},
528+ {0x10E7, 0x1CA7},
529+ {0x10E8, 0x1CA8},
530+ {0x10E9, 0x1CA9},
531+ {0x10EA, 0x1CAA},
532+ {0x10EB, 0x1CAB},
533+ {0x10EC, 0x1CAC},
534+ {0x10ED, 0x1CAD},
535+ {0x10EE, 0x1CAE},
536+ {0x10EF, 0x1CAF},
537+ {0x10F0, 0x1CB0},
538+ {0x10F1, 0x1CB1},
539+ {0x10F2, 0x1CB2},
540+ {0x10F3, 0x1CB3},
541+ {0x10F4, 0x1CB4},
542+ {0x10F5, 0x1CB5},
543+ {0x10F6, 0x1CB6},
544+ {0x10F7, 0x1CB7},
545+ {0x10F8, 0x1CB8},
546+ {0x10F9, 0x1CB9},
547+ {0x10FA, 0x1CBA},
548+ {0x10FD, 0x1CBD},
549+ {0x10FE, 0x1CBE},
550+ {0x10FF, 0x1CBF},
551+ {0x13F8, 0x13F0},
552+ {0x13F9, 0x13F1},
553+ {0x13FA, 0x13F2},
554+ {0x13FB, 0x13F3},
555+ {0x13FC, 0x13F4},
556+ {0x13FD, 0x13F5},
557+ {0x1C80, 0x0412},
558+ {0x1C81, 0x0414},
559+ {0x1C82, 0x041E},
560+ {0x1C83, 0x0421},
561+ {0x1C84, 0x0422},
562+ {0x1C85, 0x0422},
563+ {0x1C86, 0x042A},
564+ {0x1C87, 0x0462},
565+ {0x1C88, 0xA64A},
566+ {0x1C8A, 0x1C89},
567+ {0x1D79, 0xA77D},
568+ {0x1D7D, 0x2C63},
569+ {0x1D8E, 0xA7C6},
570+ {0x1E01, 0x1E00},
571+ {0x1E03, 0x1E02},
572+ {0x1E05, 0x1E04},
573+ {0x1E07, 0x1E06},
574+ {0x1E09, 0x1E08},
575+ {0x1E0B, 0x1E0A},
576+ {0x1E0D, 0x1E0C},
577+ {0x1E0F, 0x1E0E},
578+ {0x1E11, 0x1E10},
579+ {0x1E13, 0x1E12},
580+ {0x1E15, 0x1E14},
581+ {0x1E17, 0x1E16},
582+ {0x1E19, 0x1E18},
583+ {0x1E1B, 0x1E1A},
584+ {0x1E1D, 0x1E1C},
585+ {0x1E1F, 0x1E1E},
586+ {0x1E21, 0x1E20},
587+ {0x1E23, 0x1E22},
588+ {0x1E25, 0x1E24},
589+ {0x1E27, 0x1E26},
590+ {0x1E29, 0x1E28},
591+ {0x1E2B, 0x1E2A},
592+ {0x1E2D, 0x1E2C},
593+ {0x1E2F, 0x1E2E},
594+ {0x1E31, 0x1E30},
595+ {0x1E33, 0x1E32},
596+ {0x1E35, 0x1E34},
597+ {0x1E37, 0x1E36},
598+ {0x1E39, 0x1E38},
599+ {0x1E3B, 0x1E3A},
600+ {0x1E3D, 0x1E3C},
601+ {0x1E3F, 0x1E3E},
602+ {0x1E41, 0x1E40},
603+ {0x1E43, 0x1E42},
604+ {0x1E45, 0x1E44},
605+ {0x1E47, 0x1E46},
606+ {0x1E49, 0x1E48},
607+ {0x1E4B, 0x1E4A},
608+ {0x1E4D, 0x1E4C},
609+ {0x1E4F, 0x1E4E},
610+ {0x1E51, 0x1E50},
611+ {0x1E53, 0x1E52},
612+ {0x1E55, 0x1E54},
613+ {0x1E57, 0x1E56},
614+ {0x1E59, 0x1E58},
615+ {0x1E5B, 0x1E5A},
616+ {0x1E5D, 0x1E5C},
617+ {0x1E5F, 0x1E5E},
618+ {0x1E61, 0x1E60},
619+ {0x1E63, 0x1E62},
620+ {0x1E65, 0x1E64},
621+ {0x1E67, 0x1E66},
622+ {0x1E69, 0x1E68},
623+ {0x1E6B, 0x1E6A},
624+ {0x1E6D, 0x1E6C},
625+ {0x1E6F, 0x1E6E},
626+ {0x1E71, 0x1E70},
627+ {0x1E73, 0x1E72},
628+ {0x1E75, 0x1E74},
629+ {0x1E77, 0x1E76},
630+ {0x1E79, 0x1E78},
631+ {0x1E7B, 0x1E7A},
632+ {0x1E7D, 0x1E7C},
633+ {0x1E7F, 0x1E7E},
634+ {0x1E81, 0x1E80},
635+ {0x1E83, 0x1E82},
636+ {0x1E85, 0x1E84},
637+ {0x1E87, 0x1E86},
638+ {0x1E89, 0x1E88},
639+ {0x1E8B, 0x1E8A},
640+ {0x1E8D, 0x1E8C},
641+ {0x1E8F, 0x1E8E},
642+ {0x1E91, 0x1E90},
643+ {0x1E93, 0x1E92},
644+ {0x1E95, 0x1E94},
645+ {0x1E9B, 0x1E60},
646+ {0x1EA1, 0x1EA0},
647+ {0x1EA3, 0x1EA2},
648+ {0x1EA5, 0x1EA4},
649+ {0x1EA7, 0x1EA6},
650+ {0x1EA9, 0x1EA8},
651+ {0x1EAB, 0x1EAA},
652+ {0x1EAD, 0x1EAC},
653+ {0x1EAF, 0x1EAE},
654+ {0x1EB1, 0x1EB0},
655+ {0x1EB3, 0x1EB2},
656+ {0x1EB5, 0x1EB4},
657+ {0x1EB7, 0x1EB6},
658+ {0x1EB9, 0x1EB8},
659+ {0x1EBB, 0x1EBA},
660+ {0x1EBD, 0x1EBC},
661+ {0x1EBF, 0x1EBE},
662+ {0x1EC1, 0x1EC0},
663+ {0x1EC3, 0x1EC2},
664+ {0x1EC5, 0x1EC4},
665+ {0x1EC7, 0x1EC6},
666+ {0x1EC9, 0x1EC8},
667+ {0x1ECB, 0x1ECA},
668+ {0x1ECD, 0x1ECC},
669+ {0x1ECF, 0x1ECE},
670+ {0x1ED1, 0x1ED0},
671+ {0x1ED3, 0x1ED2},
672+ {0x1ED5, 0x1ED4},
673+ {0x1ED7, 0x1ED6},
674+ {0x1ED9, 0x1ED8},
675+ {0x1EDB, 0x1EDA},
676+ {0x1EDD, 0x1EDC},
677+ {0x1EDF, 0x1EDE},
678+ {0x1EE1, 0x1EE0},
679+ {0x1EE3, 0x1EE2},
680+ {0x1EE5, 0x1EE4},
681+ {0x1EE7, 0x1EE6},
682+ {0x1EE9, 0x1EE8},
683+ {0x1EEB, 0x1EEA},
684+ {0x1EED, 0x1EEC},
685+ {0x1EEF, 0x1EEE},
686+ {0x1EF1, 0x1EF0},
687+ {0x1EF3, 0x1EF2},
688+ {0x1EF5, 0x1EF4},
689+ {0x1EF7, 0x1EF6},
690+ {0x1EF9, 0x1EF8},
691+ {0x1EFB, 0x1EFA},
692+ {0x1EFD, 0x1EFC},
693+ {0x1EFF, 0x1EFE},
694+ {0x1F00, 0x1F08},
695+ {0x1F01, 0x1F09},
696+ {0x1F02, 0x1F0A},
697+ {0x1F03, 0x1F0B},
698+ {0x1F04, 0x1F0C},
699+ {0x1F05, 0x1F0D},
700+ {0x1F06, 0x1F0E},
701+ {0x1F07, 0x1F0F},
702+ {0x1F10, 0x1F18},
703+ {0x1F11, 0x1F19},
704+ {0x1F12, 0x1F1A},
705+ {0x1F13, 0x1F1B},
706+ {0x1F14, 0x1F1C},
707+ {0x1F15, 0x1F1D},
708+ {0x1F20, 0x1F28},
709+ {0x1F21, 0x1F29},
710+ {0x1F22, 0x1F2A},
711+ {0x1F23, 0x1F2B},
712+ {0x1F24, 0x1F2C},
713+ {0x1F25, 0x1F2D},
714+ {0x1F26, 0x1F2E},
715+ {0x1F27, 0x1F2F},
716+ {0x1F30, 0x1F38},
717+ {0x1F31, 0x1F39},
718+ {0x1F32, 0x1F3A},
719+ {0x1F33, 0x1F3B},
720+ {0x1F34, 0x1F3C},
721+ {0x1F35, 0x1F3D},
722+ {0x1F36, 0x1F3E},
723+ {0x1F37, 0x1F3F},
724+ {0x1F40, 0x1F48},
725+ {0x1F41, 0x1F49},
726+ {0x1F42, 0x1F4A},
727+ {0x1F43, 0x1F4B},
728+ {0x1F44, 0x1F4C},
729+ {0x1F45, 0x1F4D},
730+ {0x1F51, 0x1F59},
731+ {0x1F53, 0x1F5B},
732+ {0x1F55, 0x1F5D},
733+ {0x1F57, 0x1F5F},
734+ {0x1F60, 0x1F68},
735+ {0x1F61, 0x1F69},
736+ {0x1F62, 0x1F6A},
737+ {0x1F63, 0x1F6B},
738+ {0x1F64, 0x1F6C},
739+ {0x1F65, 0x1F6D},
740+ {0x1F66, 0x1F6E},
741+ {0x1F67, 0x1F6F},
742+ {0x1F70, 0x1FBA},
743+ {0x1F71, 0x1FBB},
744+ {0x1F72, 0x1FC8},
745+ {0x1F73, 0x1FC9},
746+ {0x1F74, 0x1FCA},
747+ {0x1F75, 0x1FCB},
748+ {0x1F76, 0x1FDA},
749+ {0x1F77, 0x1FDB},
750+ {0x1F78, 0x1FF8},
751+ {0x1F79, 0x1FF9},
752+ {0x1F7A, 0x1FEA},
753+ {0x1F7B, 0x1FEB},
754+ {0x1F7C, 0x1FFA},
755+ {0x1F7D, 0x1FFB},
756+ {0x1F80, 0x1F88},
757+ {0x1F81, 0x1F89},
758+ {0x1F82, 0x1F8A},
759+ {0x1F83, 0x1F8B},
760+ {0x1F84, 0x1F8C},
761+ {0x1F85, 0x1F8D},
762+ {0x1F86, 0x1F8E},
763+ {0x1F87, 0x1F8F},
764+ {0x1F90, 0x1F98},
765+ {0x1F91, 0x1F99},
766+ {0x1F92, 0x1F9A},
767+ {0x1F93, 0x1F9B},
768+ {0x1F94, 0x1F9C},
769+ {0x1F95, 0x1F9D},
770+ {0x1F96, 0x1F9E},
771+ {0x1F97, 0x1F9F},
772+ {0x1FA0, 0x1FA8},
773+ {0x1FA1, 0x1FA9},
774+ {0x1FA2, 0x1FAA},
775+ {0x1FA3, 0x1FAB},
776+ {0x1FA4, 0x1FAC},
777+ {0x1FA5, 0x1FAD},
778+ {0x1FA6, 0x1FAE},
779+ {0x1FA7, 0x1FAF},
780+ {0x1FB0, 0x1FB8},
781+ {0x1FB1, 0x1FB9},
782+ {0x1FB3, 0x1FBC},
783+ {0x1FBE, 0x0399},
784+ {0x1FC3, 0x1FCC},
785+ {0x1FD0, 0x1FD8},
786+ {0x1FD1, 0x1FD9},
787+ {0x1FE0, 0x1FE8},
788+ {0x1FE1, 0x1FE9},
789+ {0x1FE5, 0x1FEC},
790+ {0x1FF3, 0x1FFC},
791+ {0x214E, 0x2132},
792+ {0x2170, 0x2160},
793+ {0x2171, 0x2161},
794+ {0x2172, 0x2162},
795+ {0x2173, 0x2163},
796+ {0x2174, 0x2164},
797+ {0x2175, 0x2165},
798+ {0x2176, 0x2166},
799+ {0x2177, 0x2167},
800+ {0x2178, 0x2168},
801+ {0x2179, 0x2169},
802+ {0x217A, 0x216A},
803+ {0x217B, 0x216B},
804+ {0x217C, 0x216C},
805+ {0x217D, 0x216D},
806+ {0x217E, 0x216E},
807+ {0x217F, 0x216F},
808+ {0x2184, 0x2183},
809+ {0x24D0, 0x24B6},
810+ {0x24D1, 0x24B7},
811+ {0x24D2, 0x24B8},
812+ {0x24D3, 0x24B9},
813+ {0x24D4, 0x24BA},
814+ {0x24D5, 0x24BB},
815+ {0x24D6, 0x24BC},
816+ {0x24D7, 0x24BD},
817+ {0x24D8, 0x24BE},
818+ {0x24D9, 0x24BF},
819+ {0x24DA, 0x24C0},
820+ {0x24DB, 0x24C1},
821+ {0x24DC, 0x24C2},
822+ {0x24DD, 0x24C3},
823+ {0x24DE, 0x24C4},
824+ {0x24DF, 0x24C5},
825+ {0x24E0, 0x24C6},
826+ {0x24E1, 0x24C7},
827+ {0x24E2, 0x24C8},
828+ {0x24E3, 0x24C9},
829+ {0x24E4, 0x24CA},
830+ {0x24E5, 0x24CB},
831+ {0x24E6, 0x24CC},
832+ {0x24E7, 0x24CD},
833+ {0x24E8, 0x24CE},
834+ {0x24E9, 0x24CF},
835+ {0x2C30, 0x2C00},
836+ {0x2C31, 0x2C01},
837+ {0x2C32, 0x2C02},
838+ {0x2C33, 0x2C03},
839+ {0x2C34, 0x2C04},
840+ {0x2C35, 0x2C05},
841+ {0x2C36, 0x2C06},
842+ {0x2C37, 0x2C07},
843+ {0x2C38, 0x2C08},
844+ {0x2C39, 0x2C09},
845+ {0x2C3A, 0x2C0A},
846+ {0x2C3B, 0x2C0B},
847+ {0x2C3C, 0x2C0C},
848+ {0x2C3D, 0x2C0D},
849+ {0x2C3E, 0x2C0E},
850+ {0x2C3F, 0x2C0F},
851+ {0x2C40, 0x2C10},
852+ {0x2C41, 0x2C11},
853+ {0x2C42, 0x2C12},
854+ {0x2C43, 0x2C13},
855+ {0x2C44, 0x2C14},
856+ {0x2C45, 0x2C15},
857+ {0x2C46, 0x2C16},
858+ {0x2C47, 0x2C17},
859+ {0x2C48, 0x2C18},
860+ {0x2C49, 0x2C19},
861+ {0x2C4A, 0x2C1A},
862+ {0x2C4B, 0x2C1B},
863+ {0x2C4C, 0x2C1C},
864+ {0x2C4D, 0x2C1D},
865+ {0x2C4E, 0x2C1E},
866+ {0x2C4F, 0x2C1F},
867+ {0x2C50, 0x2C20},
868+ {0x2C51, 0x2C21},
869+ {0x2C52, 0x2C22},
870+ {0x2C53, 0x2C23},
871+ {0x2C54, 0x2C24},
872+ {0x2C55, 0x2C25},
873+ {0x2C56, 0x2C26},
874+ {0x2C57, 0x2C27},
875+ {0x2C58, 0x2C28},
876+ {0x2C59, 0x2C29},
877+ {0x2C5A, 0x2C2A},
878+ {0x2C5B, 0x2C2B},
879+ {0x2C5C, 0x2C2C},
880+ {0x2C5D, 0x2C2D},
881+ {0x2C5E, 0x2C2E},
882+ {0x2C5F, 0x2C2F},
883+ {0x2C61, 0x2C60},
884+ {0x2C65, 0x023A},
885+ {0x2C66, 0x023E},
886+ {0x2C68, 0x2C67},
887+ {0x2C6A, 0x2C69},
888+ {0x2C6C, 0x2C6B},
889+ {0x2C73, 0x2C72},
890+ {0x2C76, 0x2C75},
891+ {0x2C81, 0x2C80},
892+ {0x2C83, 0x2C82},
893+ {0x2C85, 0x2C84},
894+ {0x2C87, 0x2C86},
895+ {0x2C89, 0x2C88},
896+ {0x2C8B, 0x2C8A},
897+ {0x2C8D, 0x2C8C},
898+ {0x2C8F, 0x2C8E},
899+ {0x2C91, 0x2C90},
900+ {0x2C93, 0x2C92},
901+ {0x2C95, 0x2C94},
902+ {0x2C97, 0x2C96},
903+ {0x2C99, 0x2C98},
904+ {0x2C9B, 0x2C9A},
905+ {0x2C9D, 0x2C9C},
906+ {0x2C9F, 0x2C9E},
907+ {0x2CA1, 0x2CA0},
908+ {0x2CA3, 0x2CA2},
909+ {0x2CA5, 0x2CA4},
910+ {0x2CA7, 0x2CA6},
911+ {0x2CA9, 0x2CA8},
912+ {0x2CAB, 0x2CAA},
913+ {0x2CAD, 0x2CAC},
914+ {0x2CAF, 0x2CAE},
915+ {0x2CB1, 0x2CB0},
916+ {0x2CB3, 0x2CB2},
917+ {0x2CB5, 0x2CB4},
918+ {0x2CB7, 0x2CB6},
919+ {0x2CB9, 0x2CB8},
920+ {0x2CBB, 0x2CBA},
921+ {0x2CBD, 0x2CBC},
922+ {0x2CBF, 0x2CBE},
923+ {0x2CC1, 0x2CC0},
924+ {0x2CC3, 0x2CC2},
925+ {0x2CC5, 0x2CC4},
926+ {0x2CC7, 0x2CC6},
927+ {0x2CC9, 0x2CC8},
928+ {0x2CCB, 0x2CCA},
929+ {0x2CCD, 0x2CCC},
930+ {0x2CCF, 0x2CCE},
931+ {0x2CD1, 0x2CD0},
932+ {0x2CD3, 0x2CD2},
933+ {0x2CD5, 0x2CD4},
934+ {0x2CD7, 0x2CD6},
935+ {0x2CD9, 0x2CD8},
936+ {0x2CDB, 0x2CDA},
937+ {0x2CDD, 0x2CDC},
938+ {0x2CDF, 0x2CDE},
939+ {0x2CE1, 0x2CE0},
940+ {0x2CE3, 0x2CE2},
941+ {0x2CEC, 0x2CEB},
942+ {0x2CEE, 0x2CED},
943+ {0x2CF3, 0x2CF2},
944+ {0x2D00, 0x10A0},
945+ {0x2D01, 0x10A1},
946+ {0x2D02, 0x10A2},
947+ {0x2D03, 0x10A3},
948+ {0x2D04, 0x10A4},
949+ {0x2D05, 0x10A5},
950+ {0x2D06, 0x10A6},
951+ {0x2D07, 0x10A7},
952+ {0x2D08, 0x10A8},
953+ {0x2D09, 0x10A9},
954+ {0x2D0A, 0x10AA},
955+ {0x2D0B, 0x10AB},
956+ {0x2D0C, 0x10AC},
957+ {0x2D0D, 0x10AD},
958+ {0x2D0E, 0x10AE},
959+ {0x2D0F, 0x10AF},
960+ {0x2D10, 0x10B0},
961+ {0x2D11, 0x10B1},
962+ {0x2D12, 0x10B2},
963+ {0x2D13, 0x10B3},
964+ {0x2D14, 0x10B4},
965+ {0x2D15, 0x10B5},
966+ {0x2D16, 0x10B6},
967+ {0x2D17, 0x10B7},
968+ {0x2D18, 0x10B8},
969+ {0x2D19, 0x10B9},
970+ {0x2D1A, 0x10BA},
971+ {0x2D1B, 0x10BB},
972+ {0x2D1C, 0x10BC},
973+ {0x2D1D, 0x10BD},
974+ {0x2D1E, 0x10BE},
975+ {0x2D1F, 0x10BF},
976+ {0x2D20, 0x10C0},
977+ {0x2D21, 0x10C1},
978+ {0x2D22, 0x10C2},
979+ {0x2D23, 0x10C3},
980+ {0x2D24, 0x10C4},
981+ {0x2D25, 0x10C5},
982+ {0x2D27, 0x10C7},
983+ {0x2D2D, 0x10CD},
984+ {0xA641, 0xA640},
985+ {0xA643, 0xA642},
986+ {0xA645, 0xA644},
987+ {0xA647, 0xA646},
988+ {0xA649, 0xA648},
989+ {0xA64B, 0xA64A},
990+ {0xA64D, 0xA64C},
991+ {0xA64F, 0xA64E},
992+ {0xA651, 0xA650},
993+ {0xA653, 0xA652},
994+ {0xA655, 0xA654},
995+ {0xA657, 0xA656},
996+ {0xA659, 0xA658},
997+ {0xA65B, 0xA65A},
998+ {0xA65D, 0xA65C},
999+ {0xA65F, 0xA65E},
1000+ {0xA661, 0xA660},
1001+ {0xA663, 0xA662},
1002+ {0xA665, 0xA664},
1003+ {0xA667, 0xA666},
1004+ {0xA669, 0xA668},
1005+ {0xA66B, 0xA66A},
1006+ {0xA66D, 0xA66C},
1007+ {0xA681, 0xA680},
1008+ {0xA683, 0xA682},
1009+ {0xA685, 0xA684},
1010+ {0xA687, 0xA686},
1011+ {0xA689, 0xA688},
1012+ {0xA68B, 0xA68A},
1013+ {0xA68D, 0xA68C},
1014+ {0xA68F, 0xA68E},
1015+ {0xA691, 0xA690},
1016+ {0xA693, 0xA692},
1017+ {0xA695, 0xA694},
1018+ {0xA697, 0xA696},
1019+ {0xA699, 0xA698},
1020+ {0xA69B, 0xA69A},
1021+ {0xA723, 0xA722},
1022+ {0xA725, 0xA724},
1023+ {0xA727, 0xA726},
1024+ {0xA729, 0xA728},
1025+ {0xA72B, 0xA72A},
1026+ {0xA72D, 0xA72C},
1027+ {0xA72F, 0xA72E},
1028+ {0xA733, 0xA732},
1029+ {0xA735, 0xA734},
1030+ {0xA737, 0xA736},
1031+ {0xA739, 0xA738},
1032+ {0xA73B, 0xA73A},
1033+ {0xA73D, 0xA73C},
1034+ {0xA73F, 0xA73E},
1035+ {0xA741, 0xA740},
1036+ {0xA743, 0xA742},
1037+ {0xA745, 0xA744},
1038+ {0xA747, 0xA746},
1039+ {0xA749, 0xA748},
1040+ {0xA74B, 0xA74A},
1041+ {0xA74D, 0xA74C},
1042+ {0xA74F, 0xA74E},
1043+ {0xA751, 0xA750},
1044+ {0xA753, 0xA752},
1045+ {0xA755, 0xA754},
1046+ {0xA757, 0xA756},
1047+ {0xA759, 0xA758},
1048+ {0xA75B, 0xA75A},
1049+ {0xA75D, 0xA75C},
1050+ {0xA75F, 0xA75E},
1051+ {0xA761, 0xA760},
1052+ {0xA763, 0xA762},
1053+ {0xA765, 0xA764},
1054+ {0xA767, 0xA766},
1055+ {0xA769, 0xA768},
1056+ {0xA76B, 0xA76A},
1057+ {0xA76D, 0xA76C},
1058+ {0xA76F, 0xA76E},
1059+ {0xA77A, 0xA779},
1060+ {0xA77C, 0xA77B},
1061+ {0xA77F, 0xA77E},
1062+ {0xA781, 0xA780},
1063+ {0xA783, 0xA782},
1064+ {0xA785, 0xA784},
1065+ {0xA787, 0xA786},
1066+ {0xA78C, 0xA78B},
1067+ {0xA791, 0xA790},
1068+ {0xA793, 0xA792},
1069+ {0xA794, 0xA7C4},
1070+ {0xA797, 0xA796},
1071+ {0xA799, 0xA798},
1072+ {0xA79B, 0xA79A},
1073+ {0xA79D, 0xA79C},
1074+ {0xA79F, 0xA79E},
1075+ {0xA7A1, 0xA7A0},
1076+ {0xA7A3, 0xA7A2},
1077+ {0xA7A5, 0xA7A4},
1078+ {0xA7A7, 0xA7A6},
1079+ {0xA7A9, 0xA7A8},
1080+ {0xA7B5, 0xA7B4},
1081+ {0xA7B7, 0xA7B6},
1082+ {0xA7B9, 0xA7B8},
1083+ {0xA7BB, 0xA7BA},
1084+ {0xA7BD, 0xA7BC},
1085+ {0xA7BF, 0xA7BE},
1086+ {0xA7C1, 0xA7C0},
1087+ {0xA7C3, 0xA7C2},
1088+ {0xA7C8, 0xA7C7},
1089+ {0xA7CA, 0xA7C9},
1090+ {0xA7CD, 0xA7CC},
1091+ {0xA7CF, 0xA7CE},
1092+ {0xA7D1, 0xA7D0},
1093+ {0xA7D3, 0xA7D2},
1094+ {0xA7D5, 0xA7D4},
1095+ {0xA7D7, 0xA7D6},
1096+ {0xA7D9, 0xA7D8},
1097+ {0xA7DB, 0xA7DA},
1098+ {0xA7F6, 0xA7F5},
1099+ {0xAB53, 0xA7B3},
1100+ {0xAB70, 0x13A0},
1101+ {0xAB71, 0x13A1},
1102+ {0xAB72, 0x13A2},
1103+ {0xAB73, 0x13A3},
1104+ {0xAB74, 0x13A4},
1105+ {0xAB75, 0x13A5},
1106+ {0xAB76, 0x13A6},
1107+ {0xAB77, 0x13A7},
1108+ {0xAB78, 0x13A8},
1109+ {0xAB79, 0x13A9},
1110+ {0xAB7A, 0x13AA},
1111+ {0xAB7B, 0x13AB},
1112+ {0xAB7C, 0x13AC},
1113+ {0xAB7D, 0x13AD},
1114+ {0xAB7E, 0x13AE},
1115+ {0xAB7F, 0x13AF},
1116+ {0xAB80, 0x13B0},
1117+ {0xAB81, 0x13B1},
1118+ {0xAB82, 0x13B2},
1119+ {0xAB83, 0x13B3},
1120+ {0xAB84, 0x13B4},
1121+ {0xAB85, 0x13B5},
1122+ {0xAB86, 0x13B6},
1123+ {0xAB87, 0x13B7},
1124+ {0xAB88, 0x13B8},
1125+ {0xAB89, 0x13B9},
1126+ {0xAB8A, 0x13BA},
1127+ {0xAB8B, 0x13BB},
1128+ {0xAB8C, 0x13BC},
1129+ {0xAB8D, 0x13BD},
1130+ {0xAB8E, 0x13BE},
1131+ {0xAB8F, 0x13BF},
1132+ {0xAB90, 0x13C0},
1133+ {0xAB91, 0x13C1},
1134+ {0xAB92, 0x13C2},
1135+ {0xAB93, 0x13C3},
1136+ {0xAB94, 0x13C4},
1137+ {0xAB95, 0x13C5},
1138+ {0xAB96, 0x13C6},
1139+ {0xAB97, 0x13C7},
1140+ {0xAB98, 0x13C8},
1141+ {0xAB99, 0x13C9},
1142+ {0xAB9A, 0x13CA},
1143+ {0xAB9B, 0x13CB},
1144+ {0xAB9C, 0x13CC},
1145+ {0xAB9D, 0x13CD},
1146+ {0xAB9E, 0x13CE},
1147+ {0xAB9F, 0x13CF},
1148+ {0xABA0, 0x13D0},
1149+ {0xABA1, 0x13D1},
1150+ {0xABA2, 0x13D2},
1151+ {0xABA3, 0x13D3},
1152+ {0xABA4, 0x13D4},
1153+ {0xABA5, 0x13D5},
1154+ {0xABA6, 0x13D6},
1155+ {0xABA7, 0x13D7},
1156+ {0xABA8, 0x13D8},
1157+ {0xABA9, 0x13D9},
1158+ {0xABAA, 0x13DA},
1159+ {0xABAB, 0x13DB},
1160+ {0xABAC, 0x13DC},
1161+ {0xABAD, 0x13DD},
1162+ {0xABAE, 0x13DE},
1163+ {0xABAF, 0x13DF},
1164+ {0xABB0, 0x13E0},
1165+ {0xABB1, 0x13E1},
1166+ {0xABB2, 0x13E2},
1167+ {0xABB3, 0x13E3},
1168+ {0xABB4, 0x13E4},
1169+ {0xABB5, 0x13E5},
1170+ {0xABB6, 0x13E6},
1171+ {0xABB7, 0x13E7},
1172+ {0xABB8, 0x13E8},
1173+ {0xABB9, 0x13E9},
1174+ {0xABBA, 0x13EA},
1175+ {0xABBB, 0x13EB},
1176+ {0xABBC, 0x13EC},
1177+ {0xABBD, 0x13ED},
1178+ {0xABBE, 0x13EE},
1179+ {0xABBF, 0x13EF},
1180+ {0xFF41, 0xFF21},
1181+ {0xFF42, 0xFF22},
1182+ {0xFF43, 0xFF23},
1183+ {0xFF44, 0xFF24},
1184+ {0xFF45, 0xFF25},
1185+ {0xFF46, 0xFF26},
1186+ {0xFF47, 0xFF27},
1187+ {0xFF48, 0xFF28},
1188+ {0xFF49, 0xFF29},
1189+ {0xFF4A, 0xFF2A},
1190+ {0xFF4B, 0xFF2B},
1191+ {0xFF4C, 0xFF2C},
1192+ {0xFF4D, 0xFF2D},
1193+ {0xFF4E, 0xFF2E},
1194+ {0xFF4F, 0xFF2F},
1195+ {0xFF50, 0xFF30},
1196+ {0xFF51, 0xFF31},
1197+ {0xFF52, 0xFF32},
1198+ {0xFF53, 0xFF33},
1199+ {0xFF54, 0xFF34},
1200+ {0xFF55, 0xFF35},
1201+ {0xFF56, 0xFF36},
1202+ {0xFF57, 0xFF37},
1203+ {0xFF58, 0xFF38},
1204+ {0xFF59, 0xFF39},
1205+ {0xFF5A, 0xFF3A},
1206+ {0x10428, 0x10400},
1207+ {0x10429, 0x10401},
1208+ {0x1042A, 0x10402},
1209+ {0x1042B, 0x10403},
1210+ {0x1042C, 0x10404},
1211+ {0x1042D, 0x10405},
1212+ {0x1042E, 0x10406},
1213+ {0x1042F, 0x10407},
1214+ {0x10430, 0x10408},
1215+ {0x10431, 0x10409},
1216+ {0x10432, 0x1040A},
1217+ {0x10433, 0x1040B},
1218+ {0x10434, 0x1040C},
1219+ {0x10435, 0x1040D},
1220+ {0x10436, 0x1040E},
1221+ {0x10437, 0x1040F},
1222+ {0x10438, 0x10410},
1223+ {0x10439, 0x10411},
1224+ {0x1043A, 0x10412},
1225+ {0x1043B, 0x10413},
1226+ {0x1043C, 0x10414},
1227+ {0x1043D, 0x10415},
1228+ {0x1043E, 0x10416},
1229+ {0x1043F, 0x10417},
1230+ {0x10440, 0x10418},
1231+ {0x10441, 0x10419},
1232+ {0x10442, 0x1041A},
1233+ {0x10443, 0x1041B},
1234+ {0x10444, 0x1041C},
1235+ {0x10445, 0x1041D},
1236+ {0x10446, 0x1041E},
1237+ {0x10447, 0x1041F},
1238+ {0x10448, 0x10420},
1239+ {0x10449, 0x10421},
1240+ {0x1044A, 0x10422},
1241+ {0x1044B, 0x10423},
1242+ {0x1044C, 0x10424},
1243+ {0x1044D, 0x10425},
1244+ {0x1044E, 0x10426},
1245+ {0x1044F, 0x10427},
1246+ {0x104D8, 0x104B0},
1247+ {0x104D9, 0x104B1},
1248+ {0x104DA, 0x104B2},
1249+ {0x104DB, 0x104B3},
1250+ {0x104DC, 0x104B4},
1251+ {0x104DD, 0x104B5},
1252+ {0x104DE, 0x104B6},
1253+ {0x104DF, 0x104B7},
1254+ {0x104E0, 0x104B8},
1255+ {0x104E1, 0x104B9},
1256+ {0x104E2, 0x104BA},
1257+ {0x104E3, 0x104BB},
1258+ {0x104E4, 0x104BC},
1259+ {0x104E5, 0x104BD},
1260+ {0x104E6, 0x104BE},
1261+ {0x104E7, 0x104BF},
1262+ {0x104E8, 0x104C0},
1263+ {0x104E9, 0x104C1},
1264+ {0x104EA, 0x104C2},
1265+ {0x104EB, 0x104C3},
1266+ {0x104EC, 0x104C4},
1267+ {0x104ED, 0x104C5},
1268+ {0x104EE, 0x104C6},
1269+ {0x104EF, 0x104C7},
1270+ {0x104F0, 0x104C8},
1271+ {0x104F1, 0x104C9},
1272+ {0x104F2, 0x104CA},
1273+ {0x104F3, 0x104CB},
1274+ {0x104F4, 0x104CC},
1275+ {0x104F5, 0x104CD},
1276+ {0x104F6, 0x104CE},
1277+ {0x104F7, 0x104CF},
1278+ {0x104F8, 0x104D0},
1279+ {0x104F9, 0x104D1},
1280+ {0x104FA, 0x104D2},
1281+ {0x104FB, 0x104D3},
1282+ {0x10597, 0x10570},
1283+ {0x10598, 0x10571},
1284+ {0x10599, 0x10572},
1285+ {0x1059A, 0x10573},
1286+ {0x1059B, 0x10574},
1287+ {0x1059C, 0x10575},
1288+ {0x1059D, 0x10576},
1289+ {0x1059E, 0x10577},
1290+ {0x1059F, 0x10578},
1291+ {0x105A0, 0x10579},
1292+ {0x105A1, 0x1057A},
1293+ {0x105A3, 0x1057C},
1294+ {0x105A4, 0x1057D},
1295+ {0x105A5, 0x1057E},
1296+ {0x105A6, 0x1057F},
1297+ {0x105A7, 0x10580},
1298+ {0x105A8, 0x10581},
1299+ {0x105A9, 0x10582},
1300+ {0x105AA, 0x10583},
1301+ {0x105AB, 0x10584},
1302+ {0x105AC, 0x10585},
1303+ {0x105AD, 0x10586},
1304+ {0x105AE, 0x10587},
1305+ {0x105AF, 0x10588},
1306+ {0x105B0, 0x10589},
1307+ {0x105B1, 0x1058A},
1308+ {0x105B3, 0x1058C},
1309+ {0x105B4, 0x1058D},
1310+ {0x105B5, 0x1058E},
1311+ {0x105B6, 0x1058F},
1312+ {0x105B7, 0x10590},
1313+ {0x105B8, 0x10591},
1314+ {0x105B9, 0x10592},
1315+ {0x105BB, 0x10594},
1316+ {0x105BC, 0x10595},
1317+ {0x10CC0, 0x10C80},
1318+ {0x10CC1, 0x10C81},
1319+ {0x10CC2, 0x10C82},
1320+ {0x10CC3, 0x10C83},
1321+ {0x10CC4, 0x10C84},
1322+ {0x10CC5, 0x10C85},
1323+ {0x10CC6, 0x10C86},
1324+ {0x10CC7, 0x10C87},
1325+ {0x10CC8, 0x10C88},
1326+ {0x10CC9, 0x10C89},
1327+ {0x10CCA, 0x10C8A},
1328+ {0x10CCB, 0x10C8B},
1329+ {0x10CCC, 0x10C8C},
1330+ {0x10CCD, 0x10C8D},
1331+ {0x10CCE, 0x10C8E},
1332+ {0x10CCF, 0x10C8F},
1333+ {0x10CD0, 0x10C90},
1334+ {0x10CD1, 0x10C91},
1335+ {0x10CD2, 0x10C92},
1336+ {0x10CD3, 0x10C93},
1337+ {0x10CD4, 0x10C94},
1338+ {0x10CD5, 0x10C95},
1339+ {0x10CD6, 0x10C96},
1340+ {0x10CD7, 0x10C97},
1341+ {0x10CD8, 0x10C98},
1342+ {0x10CD9, 0x10C99},
1343+ {0x10CDA, 0x10C9A},
1344+ {0x10CDB, 0x10C9B},
1345+ {0x10CDC, 0x10C9C},
1346+ {0x10CDD, 0x10C9D},
1347+ {0x10CDE, 0x10C9E},
1348+ {0x10CDF, 0x10C9F},
1349+ {0x10CE0, 0x10CA0},
1350+ {0x10CE1, 0x10CA1},
1351+ {0x10CE2, 0x10CA2},
1352+ {0x10CE3, 0x10CA3},
1353+ {0x10CE4, 0x10CA4},
1354+ {0x10CE5, 0x10CA5},
1355+ {0x10CE6, 0x10CA6},
1356+ {0x10CE7, 0x10CA7},
1357+ {0x10CE8, 0x10CA8},
1358+ {0x10CE9, 0x10CA9},
1359+ {0x10CEA, 0x10CAA},
1360+ {0x10CEB, 0x10CAB},
1361+ {0x10CEC, 0x10CAC},
1362+ {0x10CED, 0x10CAD},
1363+ {0x10CEE, 0x10CAE},
1364+ {0x10CEF, 0x10CAF},
1365+ {0x10CF0, 0x10CB0},
1366+ {0x10CF1, 0x10CB1},
1367+ {0x10CF2, 0x10CB2},
1368+ {0x118C0, 0x118A0},
1369+ {0x118C1, 0x118A1},
1370+ {0x118C2, 0x118A2},
1371+ {0x118C3, 0x118A3},
1372+ {0x118C4, 0x118A4},
1373+ {0x118C5, 0x118A5},
1374+ {0x118C6, 0x118A6},
1375+ {0x118C7, 0x118A7},
1376+ {0x118C8, 0x118A8},
1377+ {0x118C9, 0x118A9},
1378+ {0x118CA, 0x118AA},
1379+ {0x118CB, 0x118AB},
1380+ {0x118CC, 0x118AC},
1381+ {0x118CD, 0x118AD},
1382+ {0x118CE, 0x118AE},
1383+ {0x118CF, 0x118AF},
1384+ {0x118D0, 0x118B0},
1385+ {0x118D1, 0x118B1},
1386+ {0x118D2, 0x118B2},
1387+ {0x118D3, 0x118B3},
1388+ {0x118D4, 0x118B4},
1389+ {0x118D5, 0x118B5},
1390+ {0x118D6, 0x118B6},
1391+ {0x118D7, 0x118B7},
1392+ {0x118D8, 0x118B8},
1393+ {0x118D9, 0x118B9},
1394+ {0x118DA, 0x118BA},
1395+ {0x118DB, 0x118BB},
1396+ {0x118DC, 0x118BC},
1397+ {0x118DD, 0x118BD},
1398+ {0x118DE, 0x118BE},
1399+ {0x118DF, 0x118BF},
1400+ {0x16E60, 0x16E40},
1401+ {0x16E61, 0x16E41},
1402+ {0x16E62, 0x16E42},
1403+ {0x16E63, 0x16E43},
1404+ {0x16E64, 0x16E44},
1405+ {0x16E65, 0x16E45},
1406+ {0x16E66, 0x16E46},
1407+ {0x16E67, 0x16E47},
1408+ {0x16E68, 0x16E48},
1409+ {0x16E69, 0x16E49},
1410+ {0x16E6A, 0x16E4A},
1411+ {0x16E6B, 0x16E4B},
1412+ {0x16E6C, 0x16E4C},
1413+ {0x16E6D, 0x16E4D},
1414+ {0x16E6E, 0x16E4E},
1415+ {0x16E6F, 0x16E4F},
1416+ {0x16E70, 0x16E50},
1417+ {0x16E71, 0x16E51},
1418+ {0x16E72, 0x16E52},
1419+ {0x16E73, 0x16E53},
1420+ {0x16E74, 0x16E54},
1421+ {0x16E75, 0x16E55},
1422+ {0x16E76, 0x16E56},
1423+ {0x16E77, 0x16E57},
1424+ {0x16E78, 0x16E58},
1425+ {0x16E79, 0x16E59},
1426+ {0x16E7A, 0x16E5A},
1427+ {0x16E7B, 0x16E5B},
1428+ {0x16E7C, 0x16E5C},
1429+ {0x16E7D, 0x16E5D},
1430+ {0x16E7E, 0x16E5E},
1431+ {0x16E7F, 0x16E5F},
1432+ {0x1E922, 0x1E900},
1433+ {0x1E923, 0x1E901},
1434+ {0x1E924, 0x1E902},
1435+ {0x1E925, 0x1E903},
1436+ {0x1E926, 0x1E904},
1437+ {0x1E927, 0x1E905},
1438+ {0x1E928, 0x1E906},
1439+ {0x1E929, 0x1E907},
1440+ {0x1E92A, 0x1E908},
1441+ {0x1E92B, 0x1E909},
1442+ {0x1E92C, 0x1E90A},
1443+ {0x1E92D, 0x1E90B},
1444+ {0x1E92E, 0x1E90C},
1445+ {0x1E92F, 0x1E90D},
1446+ {0x1E930, 0x1E90E},
1447+ {0x1E931, 0x1E90F},
1448+ {0x1E932, 0x1E910},
1449+ {0x1E933, 0x1E911},
1450+ {0x1E934, 0x1E912},
1451+ {0x1E935, 0x1E913},
1452+ {0x1E936, 0x1E914},
1453+ {0x1E937, 0x1E915},
1454+ {0x1E938, 0x1E916},
1455+ {0x1E939, 0x1E917},
1456+ {0x1E93A, 0x1E918},
1457+ {0x1E93B, 0x1E919},
1458+ {0x1E93C, 0x1E91A},
1459+ {0x1E93D, 0x1E91B},
1460+ {0x1E93E, 0x1E91C},
1461+ {0x1E93F, 0x1E91D},
1462+ {0x1E940, 0x1E91E},
1463+ {0x1E941, 0x1E91F},
1464+ {0x1E942, 0x1E920},
1465+ {0x1E943, 0x1E921},
1466+}
M expr/funcs.go +12 -12
@@ -17,14 +17,14 @@ type builtinFunc func(e *evaluator, args []Value) (Value, error)
1717 // lower-cased name. Arity is validated by the parser, so each may assume its
1818 // documented argument count.
1919 var builtinImpls = map[string]builtinFunc{
20- "case": funcCase,
21- "contains": funcContains,
22- "endswith": funcEndsWith,
23- "format": funcFormat,
24- "fromjson": funcFromJSON,
25- "join": funcJoin,
26- "startswith": funcStartsWith,
27- "tojson": funcToJSON,
20+ "CASE": funcCase,
21+ "CONTAINS": funcContains,
22+ "ENDSWITH": funcEndsWith,
23+ "FORMAT": funcFormat,
24+ "FROMJSON": funcFromJSON,
25+ "JOIN": funcJoin,
26+ "STARTSWITH": funcStartsWith,
27+ "TOJSON": funcToJSON,
2828 }
2929
3030 // funcCase is case(pred1, val1, pred2, val2, ..., default).
@@ -46,14 +46,14 @@ func funcCase(e *evaluator, args []Value) (Value, error) {
4646 }
4747
4848 // funcContains is contains(search, item): substring test, case-insensitive
49-// via toLowerCase, when both are primitive; membership by == in an array;
49+// (OrdinalIgnoreCase), when both are primitive; membership by == in an array;
5050 // false otherwise.
5151 func funcContains(e *evaluator, args []Value) (Value, error) {
5252 left, right := normalize(args[0]), normalize(args[1])
5353 switch {
5454 case isPrimitive(left):
5555 if isPrimitive(right) {
56- return Boolean(jsIncludes(jsToLower(CoerceString(left)), jsToLower(CoerceString(right)))), nil
56+ return Boolean(jsIncludes(ordinalFold(CoerceString(left)), ordinalFold(CoerceString(right)))), nil
5757 }
5858 case left.Kind() == KindArray:
5959 for _, v := range left.(*Array).items {
@@ -70,12 +70,12 @@ func funcContains(e *evaluator, args []Value) (Value, error) {
7070
7171 func funcStartsWith(e *evaluator, args []Value) (Value, error) {
7272 ls, rs, ok := primitivePair(args)
73- return Boolean(ok && jsHasPrefix(toUpperSpecial(ls), toUpperSpecial(rs))), nil
73+ return Boolean(ok && jsHasPrefix(ordinalFold(ls), ordinalFold(rs))), nil
7474 }
7575
7676 func funcEndsWith(e *evaluator, args []Value) (Value, error) {
7777 ls, rs, ok := primitivePair(args)
78- return Boolean(ok && jsHasSuffix(toUpperSpecial(ls), toUpperSpecial(rs))), nil
78+ return Boolean(ok && jsHasSuffix(ordinalFold(ls), ordinalFold(rs))), nil
7979 }
8080
8181 // primitivePair returns the string forms of the two arguments, and false
@@ -17,14 +17,14 @@ type builtinFunc func(e *evaluator, args []Value) (Value, error)
17 // lower-cased name. Arity is validated by the parser, so each may assume its17 // lower-cased name. Arity is validated by the parser, so each may assume its
18 // documented argument count.18 // documented argument count.
19 var builtinImpls = map[string]builtinFunc{19 var builtinImpls = map[string]builtinFunc{
20- "case": funcCase,20+ "CASE": funcCase,
21- "contains": funcContains,21+ "CONTAINS": funcContains,
22- "endswith": funcEndsWith,22+ "ENDSWITH": funcEndsWith,
23- "format": funcFormat,23+ "FORMAT": funcFormat,
24- "fromjson": funcFromJSON,24+ "FROMJSON": funcFromJSON,
25- "join": funcJoin,25+ "JOIN": funcJoin,
26- "startswith": funcStartsWith,26+ "STARTSWITH": funcStartsWith,
27- "tojson": funcToJSON,27+ "TOJSON": funcToJSON,
28 }28 }
29 29
30 // funcCase is case(pred1, val1, pred2, val2, ..., default).30 // funcCase is case(pred1, val1, pred2, val2, ..., default).
@@ -46,14 +46,14 @@ func funcCase(e *evaluator, args []Value) (Value, error) {
46 }46 }
47 47
48 // funcContains is contains(search, item): substring test, case-insensitive48 // funcContains is contains(search, item): substring test, case-insensitive
49-// via toLowerCase, when both are primitive; membership by == in an array;49+// (OrdinalIgnoreCase), when both are primitive; membership by == in an array;
50 // false otherwise.50 // false otherwise.
51 func funcContains(e *evaluator, args []Value) (Value, error) {51 func funcContains(e *evaluator, args []Value) (Value, error) {
52 left, right := normalize(args[0]), normalize(args[1])52 left, right := normalize(args[0]), normalize(args[1])
53 switch {53 switch {
54 case isPrimitive(left):54 case isPrimitive(left):
55 if isPrimitive(right) {55 if isPrimitive(right) {
56- return Boolean(jsIncludes(jsToLower(CoerceString(left)), jsToLower(CoerceString(right)))), nil56+ return Boolean(jsIncludes(ordinalFold(CoerceString(left)), ordinalFold(CoerceString(right)))), nil
57 }57 }
58 case left.Kind() == KindArray:58 case left.Kind() == KindArray:
59 for _, v := range left.(*Array).items {59 for _, v := range left.(*Array).items {
@@ -70,12 +70,12 @@ func funcContains(e *evaluator, args []Value) (Value, error) {
70 70
71 func funcStartsWith(e *evaluator, args []Value) (Value, error) {71 func funcStartsWith(e *evaluator, args []Value) (Value, error) {
72 ls, rs, ok := primitivePair(args)72 ls, rs, ok := primitivePair(args)
73- return Boolean(ok && jsHasPrefix(toUpperSpecial(ls), toUpperSpecial(rs))), nil73+ return Boolean(ok && jsHasPrefix(ordinalFold(ls), ordinalFold(rs))), nil
74 }74 }
75 75
76 func funcEndsWith(e *evaluator, args []Value) (Value, error) {76 func funcEndsWith(e *evaluator, args []Value) (Value, error) {
77 ls, rs, ok := primitivePair(args)77 ls, rs, ok := primitivePair(args)
78- return Boolean(ok && jsHasSuffix(toUpperSpecial(ls), toUpperSpecial(rs))), nil78+ return Boolean(ok && jsHasSuffix(ordinalFold(ls), ordinalFold(rs))), nil
79 }79 }
80 80
81 // primitivePair returns the string forms of the two arguments, and false81 // primitivePair returns the string forms of the two arguments, and false
A expr/gen/fold.go +61 -0
@@ -0,0 +1,61 @@
1+// SPDX-License-Identifier: MIT
2+
3+//go:build ignore
4+
5+// Command fold reads the "XXXX YYYY" lines printed by `runner.dll --fold`
6+// (see gen/runner) on stdin and writes fold_tables.go: the case folding of
7+// .NET's StringComparison.OrdinalIgnoreCase, code point by code point.
8+package main
9+
10+import (
11+ "bufio"
12+ "flag"
13+ "fmt"
14+ "go/format"
15+ "os"
16+ "strconv"
17+ "strings"
18+)
19+
20+func main() {
21+ out := flag.String("o", "", "output file (default stdout)")
22+ flag.Parse()
23+ var b strings.Builder
24+ b.WriteString("// SPDX-License-Identifier: MIT\n\n// Code generated by gen/fold.go from `runner.dll --fold` (gen/runner); DO NOT EDIT.\n\npackage expr\n\n")
25+ b.WriteString("// ordinalUpper maps a code point to the one that .NET's OrdinalIgnoreCase comparison treats\n// it as, sorted by the first element. Code points that are not listed stand for themselves.\n")
26+ b.WriteString("var ordinalUpper = [...][2]rune{\n")
27+ sc := bufio.NewScanner(os.Stdin)
28+ n := 0
29+ for sc.Scan() {
30+ f := strings.Fields(sc.Text())
31+ if len(f) != 2 {
32+ continue
33+ }
34+ from, err1 := strconv.ParseInt(f[0], 16, 32)
35+ to, err2 := strconv.ParseInt(f[1], 16, 32)
36+ if err1 != nil || err2 != nil {
37+ fmt.Fprintln(os.Stderr, "bad line:", sc.Text())
38+ os.Exit(1)
39+ }
40+ fmt.Fprintf(&b, "\t{0x%04X, 0x%04X},\n", from, to)
41+ n++
42+ }
43+ b.WriteString("}\n")
44+ src, err := format.Source([]byte(b.String()))
45+ if err != nil {
46+ fmt.Fprintln(os.Stderr, err)
47+ os.Exit(1)
48+ }
49+ if n == 0 {
50+ fmt.Fprintln(os.Stderr, "no input")
51+ os.Exit(1)
52+ }
53+ if *out == "" {
54+ os.Stdout.Write(src)
55+ return
56+ }
57+ if err := os.WriteFile(*out, src, 0o644); err != nil {
58+ fmt.Fprintln(os.Stderr, err)
59+ os.Exit(1)
60+ }
61+}
@@ -0,0 +1,61 @@
1+// SPDX-License-Identifier: MIT
2+
3+//go:build ignore
4+
5+// Command fold reads the "XXXX YYYY" lines printed by `runner.dll --fold`
6+// (see gen/runner) on stdin and writes fold_tables.go: the case folding of
7+// .NET's StringComparison.OrdinalIgnoreCase, code point by code point.
8+package main
9+
10+import (
11+ "bufio"
12+ "flag"
13+ "fmt"
14+ "go/format"
15+ "os"
16+ "strconv"
17+ "strings"
18+)
19+
20+func main() {
21+ out := flag.String("o", "", "output file (default stdout)")
22+ flag.Parse()
23+ var b strings.Builder
24+ b.WriteString("// SPDX-License-Identifier: MIT\n\n// Code generated by gen/fold.go from `runner.dll --fold` (gen/runner); DO NOT EDIT.\n\npackage expr\n\n")
25+ b.WriteString("// ordinalUpper maps a code point to the one that .NET's OrdinalIgnoreCase comparison treats\n// it as, sorted by the first element. Code points that are not listed stand for themselves.\n")
26+ b.WriteString("var ordinalUpper = [...][2]rune{\n")
27+ sc := bufio.NewScanner(os.Stdin)
28+ n := 0
29+ for sc.Scan() {
30+ f := strings.Fields(sc.Text())
31+ if len(f) != 2 {
32+ continue
33+ }
34+ from, err1 := strconv.ParseInt(f[0], 16, 32)
35+ to, err2 := strconv.ParseInt(f[1], 16, 32)
36+ if err1 != nil || err2 != nil {
37+ fmt.Fprintln(os.Stderr, "bad line:", sc.Text())
38+ os.Exit(1)
39+ }
40+ fmt.Fprintf(&b, "\t{0x%04X, 0x%04X},\n", from, to)
41+ n++
42+ }
43+ b.WriteString("}\n")
44+ src, err := format.Source([]byte(b.String()))
45+ if err != nil {
46+ fmt.Fprintln(os.Stderr, err)
47+ os.Exit(1)
48+ }
49+ if n == 0 {
50+ fmt.Fprintln(os.Stderr, "no input")
51+ os.Exit(1)
52+ }
53+ if *out == "" {
54+ os.Stdout.Write(src)
55+ return
56+ }
57+ if err := os.WriteFile(*out, src, 0o644); err != nil {
58+ fmt.Fprintln(os.Stderr, err)
59+ os.Exit(1)
60+ }
61+}
M expr/gen/runner/Program.cs +61 -0
@@ -60,6 +60,67 @@ internal static class P
6060
6161 static int Main(string[] args)
6262 {
63+ if (args[0] == "--fold")
64+ {
65+ // Debug aid: the case folding of StringComparison.OrdinalIgnoreCase. Prints "XXXX YYYY" (hexadecimal
66+ // code points) for every code point c whose class representative m(c) differs from c, after checking
67+ // that string.Equals(a, b, OrdinalIgnoreCase) holds exactly when m(a) == m(b) over all the affected
68+ // code points. m(c) is ToUpperInvariant(c) when OrdinalIgnoreCase agrees that they are equal.
69+ var map = new SortedDictionary<int, int>();
70+ for (var c = 0; c <= 0x10FFFF; c++)
71+ {
72+ if (c >= 0xD800 && c <= 0xDFFF) continue;
73+ var str = char.ConvertFromUtf32(c);
74+ var up = str.ToUpperInvariant();
75+ if (up != str && char.ConvertToUtf32(up, 0) is var u && up.Length == char.ConvertFromUtf32(u).Length
76+ && string.Equals(str, up, StringComparison.OrdinalIgnoreCase))
77+ {
78+ map[c] = u;
79+ }
80+ }
81+ var members = new SortedSet<int>(map.Keys);
82+ foreach (var v in map.Values) members.Add(v);
83+ var list = new List<int>(members);
84+ Func<int, int> m = c => map.TryGetValue(c, out var x) ? x : c;
85+ var bad = 0;
86+ foreach (var a in list)
87+ {
88+ foreach (var b in list)
89+ {
90+ var eq = string.Equals(char.ConvertFromUtf32(a), char.ConvertFromUtf32(b), StringComparison.OrdinalIgnoreCase);
91+ if (eq != (m(a) == m(b))) { bad++; if (bad < 10) Console.Error.WriteLine($"inconsistent: {a:X} {b:X}"); }
92+ }
93+ }
94+ // Nothing outside the table may be equal to anything but itself.
95+ for (var c = 0; c <= 0x10FFFF; c++)
96+ {
97+ if (c >= 0xD800 && c <= 0xDFFF) continue;
98+ if (members.Contains(c)) continue;
99+ var str = char.ConvertFromUtf32(c);
100+ foreach (var d in new[] { c ^ 1, c + 1, c - 1 })
101+ {
102+ if (d < 0 || d > 0x10FFFF || (d >= 0xD800 && d <= 0xDFFF)) continue;
103+ if (string.Equals(str, char.ConvertFromUtf32(d), StringComparison.OrdinalIgnoreCase)) { bad++; if (bad < 10) Console.Error.WriteLine($"outside: {c:X} {d:X}"); }
104+ }
105+ }
106+ Console.Error.WriteLine($"{map.Count} mappings, {bad} inconsistencies");
107+ foreach (var kv in map) Console.WriteLine($"{kv.Key:X} {kv.Value:X}");
108+ return bad == 0 ? 0 : 1;
109+ }
110+ if (args[0] == "--cmp")
111+ {
112+ // Debug aid: each input line is two space-separated strings written as dot-separated hexadecimal UTF-16 code
113+ // units; prints Equals, Compare sign, Contains, StartsWith and EndsWith, all OrdinalIgnoreCase.
114+ Func<string, string> parse = h => { var sb = new StringBuilder(); if (h != "-") foreach (var u in h.Split('.')) sb.Append((char)Convert.ToInt32(u, 16)); return sb.ToString(); };
115+ foreach (var line in File.ReadLines(args[1]))
116+ {
117+ var parts = line.Split(' ');
118+ var a = parse(parts[0]);
119+ var b = parse(parts[1]);
120+ Console.WriteLine($"{(string.Equals(a, b, StringComparison.OrdinalIgnoreCase) ? 1 : 0)} {Math.Sign(string.Compare(a, b, StringComparison.OrdinalIgnoreCase))} {(a.IndexOf(b, StringComparison.OrdinalIgnoreCase) >= 0 ? 1 : 0)} {(a.StartsWith(b, StringComparison.OrdinalIgnoreCase) ? 1 : 0)} {(a.EndsWith(b, StringComparison.OrdinalIgnoreCase) ? 1 : 0)}");
121+ }
122+ return 0;
123+ }
63124 if (args[0] == "--g15")
64125 {
65126 // Debug aid: one hexadecimal IEEE 754 bit pattern per input line, the G15 form per output line.
@@ -60,6 +60,67 @@ internal static class P
60 60
61 static int Main(string[] args)61 static int Main(string[] args)
62 {62 {
63+ if (args[0] == "--fold")
64+ {
65+ // Debug aid: the case folding of StringComparison.OrdinalIgnoreCase. Prints "XXXX YYYY" (hexadecimal
66+ // code points) for every code point c whose class representative m(c) differs from c, after checking
67+ // that string.Equals(a, b, OrdinalIgnoreCase) holds exactly when m(a) == m(b) over all the affected
68+ // code points. m(c) is ToUpperInvariant(c) when OrdinalIgnoreCase agrees that they are equal.
69+ var map = new SortedDictionary<int, int>();
70+ for (var c = 0; c <= 0x10FFFF; c++)
71+ {
72+ if (c >= 0xD800 && c <= 0xDFFF) continue;
73+ var str = char.ConvertFromUtf32(c);
74+ var up = str.ToUpperInvariant();
75+ if (up != str && char.ConvertToUtf32(up, 0) is var u && up.Length == char.ConvertFromUtf32(u).Length
76+ && string.Equals(str, up, StringComparison.OrdinalIgnoreCase))
77+ {
78+ map[c] = u;
79+ }
80+ }
81+ var members = new SortedSet<int>(map.Keys);
82+ foreach (var v in map.Values) members.Add(v);
83+ var list = new List<int>(members);
84+ Func<int, int> m = c => map.TryGetValue(c, out var x) ? x : c;
85+ var bad = 0;
86+ foreach (var a in list)
87+ {
88+ foreach (var b in list)
89+ {
90+ var eq = string.Equals(char.ConvertFromUtf32(a), char.ConvertFromUtf32(b), StringComparison.OrdinalIgnoreCase);
91+ if (eq != (m(a) == m(b))) { bad++; if (bad < 10) Console.Error.WriteLine($"inconsistent: {a:X} {b:X}"); }
92+ }
93+ }
94+ // Nothing outside the table may be equal to anything but itself.
95+ for (var c = 0; c <= 0x10FFFF; c++)
96+ {
97+ if (c >= 0xD800 && c <= 0xDFFF) continue;
98+ if (members.Contains(c)) continue;
99+ var str = char.ConvertFromUtf32(c);
100+ foreach (var d in new[] { c ^ 1, c + 1, c - 1 })
101+ {
102+ if (d < 0 || d > 0x10FFFF || (d >= 0xD800 && d <= 0xDFFF)) continue;
103+ if (string.Equals(str, char.ConvertFromUtf32(d), StringComparison.OrdinalIgnoreCase)) { bad++; if (bad < 10) Console.Error.WriteLine($"outside: {c:X} {d:X}"); }
104+ }
105+ }
106+ Console.Error.WriteLine($"{map.Count} mappings, {bad} inconsistencies");
107+ foreach (var kv in map) Console.WriteLine($"{kv.Key:X} {kv.Value:X}");
108+ return bad == 0 ? 0 : 1;
109+ }
110+ if (args[0] == "--cmp")
111+ {
112+ // Debug aid: each input line is two space-separated strings written as dot-separated hexadecimal UTF-16 code
113+ // units; prints Equals, Compare sign, Contains, StartsWith and EndsWith, all OrdinalIgnoreCase.
114+ Func<string, string> parse = h => { var sb = new StringBuilder(); if (h != "-") foreach (var u in h.Split('.')) sb.Append((char)Convert.ToInt32(u, 16)); return sb.ToString(); };
115+ foreach (var line in File.ReadLines(args[1]))
116+ {
117+ var parts = line.Split(' ');
118+ var a = parse(parts[0]);
119+ var b = parse(parts[1]);
120+ Console.WriteLine($"{(string.Equals(a, b, StringComparison.OrdinalIgnoreCase) ? 1 : 0)} {Math.Sign(string.Compare(a, b, StringComparison.OrdinalIgnoreCase))} {(a.IndexOf(b, StringComparison.OrdinalIgnoreCase) >= 0 ? 1 : 0)} {(a.StartsWith(b, StringComparison.OrdinalIgnoreCase) ? 1 : 0)} {(a.EndsWith(b, StringComparison.OrdinalIgnoreCase) ? 1 : 0)}");
121+ }
122+ return 0;
123+ }
63 if (args[0] == "--g15")124 if (args[0] == "--g15")
64 {125 {
65 // Debug aid: one hexadecimal IEEE 754 bit pattern per input line, the G15 form per output line.126 // Debug aid: one hexadecimal IEEE 754 bit pattern per input line, the G15 form per output line.
A expr/gen/runner/ordinal_cases.mjs +41 -0
@@ -0,0 +1,41 @@
1+// SPDX-License-Identifier: MIT
2+//
3+// Writes testdata/ordinal_cases.txt: for pairs of strings chosen around the
4+// differences between .NET's OrdinalIgnoreCase and JavaScript's case mapping,
5+// what the runner's `--cmp` mode answers (equality, ordering, IndexOf,
6+// StartsWith, EndsWith). ordinal_test.go replays it.
7+//
8+// dotnet build -c Release expr/gen/runner -p:RunnerSrc=<runner>/src/Sdk
9+// node expr/gen/runner/ordinal_cases.mjs > expr/testdata/ordinal_cases.txt
10+
11+import { execFileSync } from "node:child_process";
12+import { writeFileSync, mkdtempSync, rmSync } from "node:fs";
13+import { tmpdir } from "node:os";
14+import { join, dirname } from "node:path";
15+import { fileURLToPath } from "node:url";
16+
17+const here = dirname(fileURLToPath(import.meta.url));
18+const words = [
19+ "", "a", "A", "ab", "AB", "abc", "ABC", "Hello", "hELLO", "hello world", "true", "TRUE", "null",
20+ "ß", "SS", "ss", "ẞ", "ʼn", "ʼN", "ffi", "FFI", "ffi", "ı", "I", "i", "İ", "ſ", "s", "S",
21+ "\u212a", "k", "K", "\u212b", "å", "Å", "σ", "ς", "Σ", "ΑΣ", "ας", "ασ", "DŽ", "Dž", "dž", "Lj", "lj",
22+ "é", "É", "e\u0301", "ÿ", "Ÿ", "µ", "μ", "Μ", "ǰ", "J\u030c", "ΐ", "ῼ", "ᾳ", "ᾼ",
23+ "\u00e9", "\u00c9", "Dža", "DŽa", "Ж", "ж", "ა", "Ა", "ꭰ", "Ꭰ", "ᏸ", "Ᏸ", "ⓐ", "Ⓐ", "a", "A",
24+ "\ue000", "\uffff", "\ud83d\ude00", "\ud801\udc00", "\ud801\udc28", "\u{10428}", "\ud800\udc00", "ab\ud83d\ude00", "AB\ud83d\ude00",
25+ "x\u2028y", "x y", "x\u00a0y", "0", "00", "1e3", "-", "_", "a-b", "a_b", "[]", "'",
26+];
27+const hex = s => s.length ? [...s].flatMap(c => { const n = c.codePointAt(0); return n > 0xffff ? [0xd800 + ((n - 0x10000) >> 10), 0xdc00 + ((n - 0x10000) & 0x3ff)] : [n]; }).map(u => u.toString(16).toUpperCase()).join(".") : "-";
28+const lines = [];
29+for (const a of words) for (const b of words) lines.push(`${hex(a)} ${hex(b)}`);
30+const tmp = mkdtempSync(join(tmpdir(), "ordinal-"));
31+writeFileSync(join(tmp, "in.txt"), lines.join("\n") + "\n");
32+const out = execFileSync("dotnet", [join(here, "bin/Release/net9.0/runner.dll"), "--cmp", join(tmp, "in.txt")], { maxBuffer: 1 << 28 }).toString().split("\n").filter(Boolean);
33+rmSync(tmp, { recursive: true });
34+if (out.length !== lines.length) throw new Error("answer count");
35+// Keep every pair that is interesting (some predicate true) and a sample of the rest, to bound the file.
36+const res = [];
37+lines.forEach((l, i) => {
38+ const interesting = out[i] !== "0 0 0 0 0" && out[i] !== "0 -1 0 0 0" && out[i] !== "0 1 0 0 0";
39+ if (interesting || i % 7 === 0) res.push(`${l} ${out[i]}`);
40+});
41+process.stdout.write(res.join("\n") + "\n");
@@ -0,0 +1,41 @@
1+// SPDX-License-Identifier: MIT
2+//
3+// Writes testdata/ordinal_cases.txt: for pairs of strings chosen around the
4+// differences between .NET's OrdinalIgnoreCase and JavaScript's case mapping,
5+// what the runner's `--cmp` mode answers (equality, ordering, IndexOf,
6+// StartsWith, EndsWith). ordinal_test.go replays it.
7+//
8+// dotnet build -c Release expr/gen/runner -p:RunnerSrc=<runner>/src/Sdk
9+// node expr/gen/runner/ordinal_cases.mjs > expr/testdata/ordinal_cases.txt
10+
11+import { execFileSync } from "node:child_process";
12+import { writeFileSync, mkdtempSync, rmSync } from "node:fs";
13+import { tmpdir } from "node:os";
14+import { join, dirname } from "node:path";
15+import { fileURLToPath } from "node:url";
16+
17+const here = dirname(fileURLToPath(import.meta.url));
18+const words = [
19+ "", "a", "A", "ab", "AB", "abc", "ABC", "Hello", "hELLO", "hello world", "true", "TRUE", "null",
20+ "ß", "SS", "ss", "ẞ", "ʼn", "ʼN", "ffi", "FFI", "ffi", "ı", "I", "i", "İ", "ſ", "s", "S",
21+ "\u212a", "k", "K", "\u212b", "å", "Å", "σ", "ς", "Σ", "ΑΣ", "ας", "ασ", "DŽ", "Dž", "dž", "Lj", "lj",
22+ "é", "É", "e\u0301", "ÿ", "Ÿ", "µ", "μ", "Μ", "ǰ", "J\u030c", "ΐ", "ῼ", "ᾳ", "ᾼ",
23+ "\u00e9", "\u00c9", "Dža", "DŽa", "Ж", "ж", "ა", "Ა", "ꭰ", "Ꭰ", "ᏸ", "Ᏸ", "ⓐ", "Ⓐ", "a", "A",
24+ "\ue000", "\uffff", "\ud83d\ude00", "\ud801\udc00", "\ud801\udc28", "\u{10428}", "\ud800\udc00", "ab\ud83d\ude00", "AB\ud83d\ude00",
25+ "x\u2028y", "x y", "x\u00a0y", "0", "00", "1e3", "-", "_", "a-b", "a_b", "[]", "'",
26+];
27+const hex = s => s.length ? [...s].flatMap(c => { const n = c.codePointAt(0); return n > 0xffff ? [0xd800 + ((n - 0x10000) >> 10), 0xdc00 + ((n - 0x10000) & 0x3ff)] : [n]; }).map(u => u.toString(16).toUpperCase()).join(".") : "-";
28+const lines = [];
29+for (const a of words) for (const b of words) lines.push(`${hex(a)} ${hex(b)}`);
30+const tmp = mkdtempSync(join(tmpdir(), "ordinal-"));
31+writeFileSync(join(tmp, "in.txt"), lines.join("\n") + "\n");
32+const out = execFileSync("dotnet", [join(here, "bin/Release/net9.0/runner.dll"), "--cmp", join(tmp, "in.txt")], { maxBuffer: 1 << 28 }).toString().split("\n").filter(Boolean);
33+rmSync(tmp, { recursive: true });
34+if (out.length !== lines.length) throw new Error("answer count");
35+// Keep every pair that is interesting (some predicate true) and a sample of the rest, to bound the file.
36+const res = [];
37+lines.forEach((l, i) => {
38+ const interesting = out[i] !== "0 0 0 0 0" && out[i] !== "0 -1 0 0 0" && out[i] !== "0 1 0 0 0";
39+ if (interesting || i % 7 === 0) res.push(`${l} ${out[i]}`);
40+});
41+process.stdout.write(res.join("\n") + "\n");
M expr/limits_test.go +1 -1
@@ -410,7 +410,7 @@ func TestWTF8Helpers(t *testing.T) {
410410 if got := normalizeWTF8(lo + hi); got != lo+hi {
411411 t.Errorf("reversed pair joined: %q", got)
412412 }
413- if foldKey(hi) != hi || foldKey("A"+hi) != "a"+hi {
413+ if foldKey(hi) != hi || foldKey("a"+hi) != "A"+hi {
414414 t.Error("foldKey")
415415 }
416416 if compareUTF16(hi, "\ue000") >= 0 || compareUTF16(lo, "\ue000") >= 0 || compareUTF16(hi, "\U00010000") >= 0 {
@@ -410,7 +410,7 @@ func TestWTF8Helpers(t *testing.T) {
410 if got := normalizeWTF8(lo + hi); got != lo+hi {410 if got := normalizeWTF8(lo + hi); got != lo+hi {
411 t.Errorf("reversed pair joined: %q", got)411 t.Errorf("reversed pair joined: %q", got)
412 }412 }
413- if foldKey(hi) != hi || foldKey("A"+hi) != "a"+hi {413+ if foldKey(hi) != hi || foldKey("a"+hi) != "A"+hi {
414 t.Error("foldKey")414 t.Error("foldKey")
415 }415 }
416 if compareUTF16(hi, "\ue000") >= 0 || compareUTF16(lo, "\ue000") >= 0 || compareUTF16(hi, "\U00010000") >= 0 {416 if compareUTF16(hi, "\ue000") >= 0 || compareUTF16(lo, "\ue000") >= 0 || compareUTF16(hi, "\U00010000") >= 0 {
A expr/ordinal.go +76 -0
@@ -0,0 +1,76 @@
1+// SPDX-License-Identifier: MIT
2+
3+package expr
4+
5+import (
6+ "sort"
7+ "strings"
8+)
9+
10+// The runner compares and looks up strings with .NET's
11+// StringComparison.OrdinalIgnoreCase and StringComparer.OrdinalIgnoreCase:
12+// every code point is replaced by its simple upper-case form (a per-character
13+// table, not full Unicode case mapping), then the UTF-16 code units are
14+// compared. Sources, all in actions/runner src/Sdk/DTExpressions2/Expressions2:
15+//
16+// == != < <= > >= EvaluationResult.cs AbstractEqual/AbstractGreaterThan/
17+// AbstractLessThan: String.Equals / String.Compare
18+// contains Sdk/Functions/Contains.cs: IndexOf(..., OrdinalIgnoreCase)
19+// startsWith Sdk/Functions/StartsWith.cs
20+// endsWith Sdk/Functions/EndsWith.cs
21+// contexts, functions and dictionary keys:
22+// ExpressionParser.cs ParseContext and
23+// DTPipelines/Pipelines/ContextData/DictionaryContextData.cs
24+// (Dictionary<string,int>(StringComparer.OrdinalIgnoreCase))
25+//
26+// Differences from the JavaScript reference: "ß" is not "SS" (no multi-
27+// character mappings), the Kelvin sign is not "k", the dotless "ı" and the
28+// long "ſ" stay themselves, and contains() uses the same folding as the other
29+// comparisons. fold_tables.go is generated from the runner's own behaviour
30+// (go generate, gen/runner --fold).
31+
32+//go:generate sh -c "dotnet gen/runner/bin/Release/net9.0/runner.dll --fold | go run gen/fold.go -o fold_tables.go"
33+
34+// ordinalFoldRune returns the code point that r is folded to.
35+func ordinalFoldRune(r rune) rune {
36+ if r < 0x80 {
37+ if r >= 'a' && r <= 'z' {
38+ return r - 'a' + 'A'
39+ }
40+ return r
41+ }
42+ i := sort.Search(len(ordinalUpper), func(i int) bool { return ordinalUpper[i][0] >= r })
43+ if i < len(ordinalUpper) && ordinalUpper[i][0] == r {
44+ return ordinalUpper[i][1]
45+ }
46+ return r
47+}
48+
49+// ordinalFold folds s. Bytes that are not UTF-8 become U+FFFD, as everywhere
50+// in this package.
51+func ordinalFold(s string) string {
52+ if isASCII(s) {
53+ return strings.ToUpper(s)
54+ }
55+ var b strings.Builder
56+ b.Grow(len(s))
57+ for i := 0; i < len(s); {
58+ r, w := decodeRune(s[i:])
59+ i += w
60+ writeRune(&b, ordinalFoldRune(r))
61+ }
62+ return b.String()
63+}
64+
65+// ordinalEqual is String.Equals(a, b, OrdinalIgnoreCase).
66+func ordinalEqual(a, b string) bool { return ordinalFold(a) == ordinalFold(b) }
67+
68+// ordinalCompare is Math.Sign(String.Compare(a, b, OrdinalIgnoreCase)). The
69+// runner orders by code point after folding (a supplementary character sorts
70+// after U+E000..U+FFFF, unlike in JavaScript, which compares UTF-16 units),
71+// which is the byte order of UTF-8.
72+func ordinalCompare(a, b string) int { return strings.Compare(ordinalFold(a), ordinalFold(b)) }
73+
74+// foldKey is the case-insensitive form of a dictionary key, context name or
75+// function name.
76+func foldKey(key string) string { return ordinalFold(key) }
@@ -0,0 +1,76 @@
1+// SPDX-License-Identifier: MIT
2+
3+package expr
4+
5+import (
6+ "sort"
7+ "strings"
8+)
9+
10+// The runner compares and looks up strings with .NET's
11+// StringComparison.OrdinalIgnoreCase and StringComparer.OrdinalIgnoreCase:
12+// every code point is replaced by its simple upper-case form (a per-character
13+// table, not full Unicode case mapping), then the UTF-16 code units are
14+// compared. Sources, all in actions/runner src/Sdk/DTExpressions2/Expressions2:
15+//
16+// == != < <= > >= EvaluationResult.cs AbstractEqual/AbstractGreaterThan/
17+// AbstractLessThan: String.Equals / String.Compare
18+// contains Sdk/Functions/Contains.cs: IndexOf(..., OrdinalIgnoreCase)
19+// startsWith Sdk/Functions/StartsWith.cs
20+// endsWith Sdk/Functions/EndsWith.cs
21+// contexts, functions and dictionary keys:
22+// ExpressionParser.cs ParseContext and
23+// DTPipelines/Pipelines/ContextData/DictionaryContextData.cs
24+// (Dictionary<string,int>(StringComparer.OrdinalIgnoreCase))
25+//
26+// Differences from the JavaScript reference: "ß" is not "SS" (no multi-
27+// character mappings), the Kelvin sign is not "k", the dotless "ı" and the
28+// long "ſ" stay themselves, and contains() uses the same folding as the other
29+// comparisons. fold_tables.go is generated from the runner's own behaviour
30+// (go generate, gen/runner --fold).
31+
32+//go:generate sh -c "dotnet gen/runner/bin/Release/net9.0/runner.dll --fold | go run gen/fold.go -o fold_tables.go"
33+
34+// ordinalFoldRune returns the code point that r is folded to.
35+func ordinalFoldRune(r rune) rune {
36+ if r < 0x80 {
37+ if r >= 'a' && r <= 'z' {
38+ return r - 'a' + 'A'
39+ }
40+ return r
41+ }
42+ i := sort.Search(len(ordinalUpper), func(i int) bool { return ordinalUpper[i][0] >= r })
43+ if i < len(ordinalUpper) && ordinalUpper[i][0] == r {
44+ return ordinalUpper[i][1]
45+ }
46+ return r
47+}
48+
49+// ordinalFold folds s. Bytes that are not UTF-8 become U+FFFD, as everywhere
50+// in this package.
51+func ordinalFold(s string) string {
52+ if isASCII(s) {
53+ return strings.ToUpper(s)
54+ }
55+ var b strings.Builder
56+ b.Grow(len(s))
57+ for i := 0; i < len(s); {
58+ r, w := decodeRune(s[i:])
59+ i += w
60+ writeRune(&b, ordinalFoldRune(r))
61+ }
62+ return b.String()
63+}
64+
65+// ordinalEqual is String.Equals(a, b, OrdinalIgnoreCase).
66+func ordinalEqual(a, b string) bool { return ordinalFold(a) == ordinalFold(b) }
67+
68+// ordinalCompare is Math.Sign(String.Compare(a, b, OrdinalIgnoreCase)). The
69+// runner orders by code point after folding (a supplementary character sorts
70+// after U+E000..U+FFFF, unlike in JavaScript, which compares UTF-16 units),
71+// which is the byte order of UTF-8.
72+func ordinalCompare(a, b string) int { return strings.Compare(ordinalFold(a), ordinalFold(b)) }
73+
74+// foldKey is the case-insensitive form of a dictionary key, context name or
75+// function name.
76+func foldKey(key string) string { return ordinalFold(key) }
A expr/ordinal_test.go +73 -0
@@ -0,0 +1,73 @@
1+// SPDX-License-Identifier: MIT
2+
3+package expr
4+
5+import (
6+ "os"
7+ "strings"
8+ "testing"
9+ "unicode/utf16"
10+)
11+
12+// TestOrdinalFoldMatchesRunner replays a few hundred strings through .NET's
13+// StringComparison.OrdinalIgnoreCase, recorded by `runner.dll --cmp` (see
14+// gen/runner), and checks equality, ordering, contains, startsWith and
15+// endsWith. The cases are chosen around what differs from JavaScript: ß, ʼn,
16+// ı, İ, ſ, the Kelvin and Angstrom signs, final sigma, titlecase digraphs,
17+// supplementary letters, and code points on both sides of U+E000.
18+func TestOrdinalFoldMatchesRunner(t *testing.T) {
19+ // "a b want" where a and b are dot-separated UTF-16 code units in hex and
20+ // want is "equal order contains startsWith endsWith" as printed by --cmp.
21+ data, err := os.ReadFile("testdata/ordinal_cases.txt")
22+ if err != nil {
23+ t.Fatal(err)
24+ }
25+ decode := func(h string) string {
26+ if h == "-" {
27+ return ""
28+ }
29+ var units []uint16
30+ for _, u := range strings.Split(h, ".") {
31+ var n uint16
32+ for _, c := range u {
33+ n = n<<4 | uint16(strings.IndexRune("0123456789ABCDEF", c))
34+ }
35+ units = append(units, n)
36+ }
37+ return utf16String(units)
38+ }
39+ n := 0
40+ for _, line := range strings.Split(strings.TrimSpace(string(data)), "\n") {
41+ f := strings.Fields(line)
42+ if len(f) != 7 {
43+ t.Fatalf("bad line %q", line)
44+ }
45+ a, b := decode(f[0]), decode(f[1])
46+ want := strings.Join(f[2:], " ")
47+ b2i := func(v bool) string {
48+ if v {
49+ return "1"
50+ }
51+ return "0"
52+ }
53+ fa, fb := ordinalFold(a), ordinalFold(b)
54+ got := strings.Join([]string{
55+ b2i(ordinalEqual(a, b)),
56+ map[int]string{-1: "-1", 0: "0", 1: "1"}[ordinalCompare(a, b)],
57+ b2i(jsIncludes(fa, fb)),
58+ b2i(jsHasPrefix(fa, fb)),
59+ b2i(jsHasSuffix(fa, fb)),
60+ }, " ")
61+ if got != want {
62+ t.Errorf("%q vs %q (%s %s): got %s, runner %s", a, b, f[0], f[1], got, want)
63+ }
64+ n++
65+ }
66+ if n < 300 {
67+ t.Errorf("only %d cases", n)
68+ }
69+}
70+
71+// utf16String decodes UTF-16 code units. The cases here hold only paired
72+// surrogates.
73+func utf16String(units []uint16) string { return string(utf16.Decode(units)) }
@@ -0,0 +1,73 @@
1+// SPDX-License-Identifier: MIT
2+
3+package expr
4+
5+import (
6+ "os"
7+ "strings"
8+ "testing"
9+ "unicode/utf16"
10+)
11+
12+// TestOrdinalFoldMatchesRunner replays a few hundred strings through .NET's
13+// StringComparison.OrdinalIgnoreCase, recorded by `runner.dll --cmp` (see
14+// gen/runner), and checks equality, ordering, contains, startsWith and
15+// endsWith. The cases are chosen around what differs from JavaScript: ß, ʼn,
16+// ı, İ, ſ, the Kelvin and Angstrom signs, final sigma, titlecase digraphs,
17+// supplementary letters, and code points on both sides of U+E000.
18+func TestOrdinalFoldMatchesRunner(t *testing.T) {
19+ // "a b want" where a and b are dot-separated UTF-16 code units in hex and
20+ // want is "equal order contains startsWith endsWith" as printed by --cmp.
21+ data, err := os.ReadFile("testdata/ordinal_cases.txt")
22+ if err != nil {
23+ t.Fatal(err)
24+ }
25+ decode := func(h string) string {
26+ if h == "-" {
27+ return ""
28+ }
29+ var units []uint16
30+ for _, u := range strings.Split(h, ".") {
31+ var n uint16
32+ for _, c := range u {
33+ n = n<<4 | uint16(strings.IndexRune("0123456789ABCDEF", c))
34+ }
35+ units = append(units, n)
36+ }
37+ return utf16String(units)
38+ }
39+ n := 0
40+ for _, line := range strings.Split(strings.TrimSpace(string(data)), "\n") {
41+ f := strings.Fields(line)
42+ if len(f) != 7 {
43+ t.Fatalf("bad line %q", line)
44+ }
45+ a, b := decode(f[0]), decode(f[1])
46+ want := strings.Join(f[2:], " ")
47+ b2i := func(v bool) string {
48+ if v {
49+ return "1"
50+ }
51+ return "0"
52+ }
53+ fa, fb := ordinalFold(a), ordinalFold(b)
54+ got := strings.Join([]string{
55+ b2i(ordinalEqual(a, b)),
56+ map[int]string{-1: "-1", 0: "0", 1: "1"}[ordinalCompare(a, b)],
57+ b2i(jsIncludes(fa, fb)),
58+ b2i(jsHasPrefix(fa, fb)),
59+ b2i(jsHasSuffix(fa, fb)),
60+ }, " ")
61+ if got != want {
62+ t.Errorf("%q vs %q (%s %s): got %s, runner %s", a, b, f[0], f[1], got, want)
63+ }
64+ n++
65+ }
66+ if n < 300 {
67+ t.Errorf("only %d cases", n)
68+ }
69+}
70+
71+// utf16String decodes UTF-16 code units. The cases here hold only paired
72+// surrogates.
73+func utf16String(units []uint16) string { return string(utf16.Decode(units)) }
M expr/parser.go +9 -9
@@ -22,14 +22,14 @@ type FuncInfo struct {
2222 // by lower-cased name. They take precedence over caller-supplied FuncInfo for
2323 // validation.
2424 var builtinFuncs = map[string]FuncInfo{
25- "case": {"case", 3, math.MaxInt},
26- "contains": {"contains", 2, 2},
27- "endswith": {"endsWith", 2, 2},
28- "format": {"format", 1, 255},
29- "fromjson": {"fromJson", 1, 1},
30- "join": {"join", 1, 2},
31- "startswith": {"startsWith", 2, 2},
32- "tojson": {"toJson", 1, 1},
25+ "CASE": {"case", 3, math.MaxInt},
26+ "CONTAINS": {"contains", 2, 2},
27+ "ENDSWITH": {"endsWith", 2, 2},
28+ "FORMAT": {"format", 1, 255},
29+ "FROMJSON": {"fromJson", 1, 1},
30+ "JOIN": {"join", 1, 2},
31+ "STARTSWITH": {"startsWith", 2, 2},
32+ "TOJSON": {"toJson", 1, 1},
3333 }
3434
3535 // Parse parses the text of one expression (the inside of ${{ }}).
@@ -282,7 +282,7 @@ func arityError(name string, f FuncInfo, argCount int) (ErrorType, bool) {
282282 return ErrorTooFewParameters, true
283283 case f.MaxArgs >= 0 && argCount > f.MaxArgs:
284284 return ErrorTooManyParameters, true
285- case name == "case" && argCount%2 == 0:
285+ case name == "CASE" && argCount%2 == 0:
286286 return ErrorEvenParameters, true
287287 }
288288 return 0, false
@@ -22,14 +22,14 @@ type FuncInfo struct {
22 // by lower-cased name. They take precedence over caller-supplied FuncInfo for22 // by lower-cased name. They take precedence over caller-supplied FuncInfo for
23 // validation.23 // validation.
24 var builtinFuncs = map[string]FuncInfo{24 var builtinFuncs = map[string]FuncInfo{
25- "case": {"case", 3, math.MaxInt},25+ "CASE": {"case", 3, math.MaxInt},
26- "contains": {"contains", 2, 2},26+ "CONTAINS": {"contains", 2, 2},
27- "endswith": {"endsWith", 2, 2},27+ "ENDSWITH": {"endsWith", 2, 2},
28- "format": {"format", 1, 255},28+ "FORMAT": {"format", 1, 255},
29- "fromjson": {"fromJson", 1, 1},29+ "FROMJSON": {"fromJson", 1, 1},
30- "join": {"join", 1, 2},30+ "JOIN": {"join", 1, 2},
31- "startswith": {"startsWith", 2, 2},31+ "STARTSWITH": {"startsWith", 2, 2},
32- "tojson": {"toJson", 1, 1},32+ "TOJSON": {"toJson", 1, 1},
33 }33 }
34 34
35 // Parse parses the text of one expression (the inside of ${{ }}).35 // Parse parses the text of one expression (the inside of ${{ }}).
@@ -282,7 +282,7 @@ func arityError(name string, f FuncInfo, argCount int) (ErrorType, bool) {
282 return ErrorTooFewParameters, true282 return ErrorTooFewParameters, true
283 case f.MaxArgs >= 0 && argCount > f.MaxArgs:283 case f.MaxArgs >= 0 && argCount > f.MaxArgs:
284 return ErrorTooManyParameters, true284 return ErrorTooManyParameters, true
285- case name == "case" && argCount%2 == 0:285+ case name == "CASE" && argCount%2 == 0:
286 return ErrorEvenParameters, true286 return ErrorEvenParameters, true
287 }287 }
288 return 0, false288 return 0, false
A expr/testdata/ordinal_cases.txt +1564 -0
@@ -0,0 +1,1564 @@
1+- - 1 0 1 1 1
2+- 48.65.6C.6C.6F 0 -1 0 0 0
3+- 53.53 0 -1 0 0 0
4+- 66.66.69 0 -1 0 0 0
5+- 53 0 -1 0 0 0
6+- 3C3 0 -1 0 0 0
7+- 1C5 0 -1 0 0 0
8+- FF 0 -1 0 0 0
9+- 390 0 -1 0 0 0
10+- 1C4.61 0 -1 0 0 0
11+- 13F8 0 -1 0 0 0
12+- FFFF 0 -1 0 0 0
13+- 41.42.D83D.DE00 0 -1 0 0 0
14+- 2D 0 -1 0 0 0
15+61 - 0 1 1 1 1
16+61 61 1 0 1 1 1
17+61 41 1 0 1 1 1
18+61 68.45.4C.4C.4F 0 -1 0 0 0
19+61 73.73 0 -1 0 0 0
20+61 131 0 -1 0 0 0
21+61 212A 0 -1 0 0 0
22+61 3C2 0 -1 0 0 0
23+61 1C6 0 -1 0 0 0
24+61 178 0 -1 0 0 0
25+61 1FFC 0 -1 0 0 0
26+61 416 0 -1 0 0 0
27+61 13F0 0 -1 0 0 0
28+61 D83D.DE00 0 -1 0 0 0
29+61 78.2028.79 0 -1 0 0 0
30+61 5F 0 -1 0 0 0
31+41 - 0 1 1 1 1
32+41 61 1 0 1 1 1
33+41 41 1 0 1 1 1
34+41 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 -1 0 0 0
35+41 1E9E 0 -1 0 0 0
36+41 49 0 -1 0 0 0
37+41 6B 0 -1 0 0 0
38+41 3A3 0 -1 0 0 0
39+41 1C8 0 -1 0 0 0
40+41 B5 0 -1 0 0 0
41+41 1FB3 0 -1 0 0 0
42+41 436 0 -1 0 0 0
43+41 24D0 0 -1 0 0 0
44+41 D801.DC00 0 -1 0 0 0
45+41 78.20.79 0 -1 0 0 0
46+41 61.2D.62 0 -1 0 0 0
47+61.62 - 0 1 1 1 1
48+61.62 61 0 1 1 1 0
49+61.62 41 0 1 1 1 0
50+61.62 61.62 1 0 1 1 1
51+61.62 41.42 1 0 1 1 1
52+61.62 74.72.75.65 0 -1 0 0 0
53+61.62 149 0 -1 0 0 0
54+61.62 69 0 -1 0 0 0
55+61.62 4B 0 -1 0 0 0
56+61.62 391.3A3 0 -1 0 0 0
57+61.62 1C9 0 -1 0 0 0
58+61.62 3BC 0 -1 0 0 0
59+61.62 1FBC 0 -1 0 0 0
60+61.62 10D0 0 -1 0 0 0
61+61.62 24B6 0 -1 0 0 0
62+61.62 D801.DC28 0 -1 0 0 0
63+61.62 78.A0.79 0 -1 0 0 0
64+61.62 61.5F.62 0 -1 0 0 0
65+41.42 - 0 1 1 1 1
66+41.42 61 0 1 1 1 0
67+41.42 41 0 1 1 1 0
68+41.42 61.62 1 0 1 1 1
69+41.42 41.42 1 0 1 1 1
70+41.42 54.52.55.45 0 -1 0 0 0
71+41.42 2BC.4E 0 -1 0 0 0
72+41.42 130 0 -1 0 0 0
73+41.42 212B 0 -1 0 0 0
74+41.42 3B1.3C2 0 -1 0 0 0
75+41.42 E9 0 -1 0 0 0
76+41.42 39C 0 -1 0 0 0
77+41.42 E9 0 -1 0 0 0
78+41.42 1C90 0 -1 0 0 0
79+41.42 FF41 0 -1 0 0 0
80+41.42 D801.DC28 0 -1 0 0 0
81+41.42 30 0 1 0 0 0
82+41.42 5B.5D 0 -1 0 0 0
83+61.62.63 - 0 1 1 1 1
84+61.62.63 61 0 1 1 1 0
85+61.62.63 41 0 1 1 1 0
86+61.62.63 61.62 0 1 1 1 0
87+61.62.63 41.42 0 1 1 1 0
88+61.62.63 61.62.63 1 0 1 1 1
89+61.62.63 41.42.43 1 0 1 1 1
90+61.62.63 6E.75.6C.6C 0 -1 0 0 0
91+61.62.63 FB03 0 -1 0 0 0
92+61.62.63 17F 0 -1 0 0 0
93+61.62.63 E5 0 -1 0 0 0
94+61.62.63 3B1.3C3 0 -1 0 0 0
95+61.62.63 C9 0 -1 0 0 0
96+61.62.63 1F0 0 -1 0 0 0
97+61.62.63 C9 0 -1 0 0 0
98+61.62.63 AB70 0 -1 0 0 0
99+61.62.63 FF21 0 -1 0 0 0
100+61.62.63 D800.DC00 0 -1 0 0 0
101+61.62.63 30.30 0 1 0 0 0
102+61.62.63 27 0 1 0 0 0
103+41.42.43 - 0 1 1 1 1
104+41.42.43 61 0 1 1 1 0
105+41.42.43 41 0 1 1 1 0
106+41.42.43 61.62 0 1 1 1 0
107+41.42.43 41.42 0 1 1 1 0
108+41.42.43 61.62.63 1 0 1 1 1
109+41.42.43 41.42.43 1 0 1 1 1
110+41.42.43 DF 0 -1 0 0 0
111+41.42.43 46.46.49 0 -1 0 0 0
112+41.42.43 73 0 -1 0 0 0
113+41.42.43 C5 0 -1 0 0 0
114+41.42.43 1C4 0 -1 0 0 0
115+41.42.43 65.301 0 -1 0 0 0
116+41.42.43 4A.30C 0 -1 0 0 0
117+41.42.43 1C5.61 0 -1 0 0 0
118+41.42.43 13A0 0 -1 0 0 0
119+41.42.43 E000 0 -1 0 0 0
120+41.42.43 61.62.D83D.DE00 0 -1 0 0 0
121+41.42.43 31.65.33 0 1 0 0 0
122+48.65.6C.6C.6F - 0 1 1 1 1
123+48.65.6C.6C.6F 48.65.6C.6C.6F 1 0 1 1 1
124+48.65.6C.6C.6F 68.45.4C.4C.4F 1 0 1 1 1
125+48.65.6C.6C.6F 53.53 0 -1 0 0 0
126+48.65.6C.6C.6F 66.66.69 0 1 0 0 0
127+48.65.6C.6C.6F 53 0 -1 0 0 0
128+48.65.6C.6C.6F 3C3 0 -1 0 0 0
129+48.65.6C.6C.6F 1C5 0 -1 0 0 0
130+48.65.6C.6C.6F FF 0 -1 0 0 0
131+48.65.6C.6C.6F 390 0 -1 0 0 0
132+48.65.6C.6C.6F 1C4.61 0 -1 0 0 0
133+48.65.6C.6C.6F 13F8 0 -1 0 0 0
134+48.65.6C.6C.6F FFFF 0 -1 0 0 0
135+48.65.6C.6C.6F 41.42.D83D.DE00 0 1 0 0 0
136+48.65.6C.6C.6F 2D 0 1 0 0 0
137+68.45.4C.4C.4F - 0 1 1 1 1
138+68.45.4C.4C.4F 61 0 1 0 0 0
139+68.45.4C.4C.4F 48.65.6C.6C.6F 1 0 1 1 1
140+68.45.4C.4C.4F 68.45.4C.4C.4F 1 0 1 1 1
141+68.45.4C.4C.4F 73.73 0 -1 0 0 0
142+68.45.4C.4C.4F 131 0 -1 0 0 0
143+68.45.4C.4C.4F 212A 0 -1 0 0 0
144+68.45.4C.4C.4F 3C2 0 -1 0 0 0
145+68.45.4C.4C.4F 1C6 0 -1 0 0 0
146+68.45.4C.4C.4F 178 0 -1 0 0 0
147+68.45.4C.4C.4F 1FFC 0 -1 0 0 0
148+68.45.4C.4C.4F 416 0 -1 0 0 0
149+68.45.4C.4C.4F 13F0 0 -1 0 0 0
150+68.45.4C.4C.4F D83D.DE00 0 -1 0 0 0
151+68.45.4C.4C.4F 78.2028.79 0 -1 0 0 0
152+68.45.4C.4C.4F 5F 0 -1 0 0 0
153+68.65.6C.6C.6F.20.77.6F.72.6C.64 - 0 1 1 1 1
154+68.65.6C.6C.6F.20.77.6F.72.6C.64 41 0 1 0 0 0
155+68.65.6C.6C.6F.20.77.6F.72.6C.64 48.65.6C.6C.6F 0 1 1 1 0
156+68.65.6C.6C.6F.20.77.6F.72.6C.64 68.45.4C.4C.4F 0 1 1 1 0
157+68.65.6C.6C.6F.20.77.6F.72.6C.64 68.65.6C.6C.6F.20.77.6F.72.6C.64 1 0 1 1 1
158+68.65.6C.6C.6F.20.77.6F.72.6C.64 1E9E 0 -1 0 0 0
159+68.65.6C.6C.6F.20.77.6F.72.6C.64 49 0 -1 0 0 0
160+68.65.6C.6C.6F.20.77.6F.72.6C.64 6B 0 -1 0 0 0
161+68.65.6C.6C.6F.20.77.6F.72.6C.64 3A3 0 -1 0 0 0
162+68.65.6C.6C.6F.20.77.6F.72.6C.64 1C8 0 -1 0 0 0
163+68.65.6C.6C.6F.20.77.6F.72.6C.64 B5 0 -1 0 0 0
164+68.65.6C.6C.6F.20.77.6F.72.6C.64 1FB3 0 -1 0 0 0
165+68.65.6C.6C.6F.20.77.6F.72.6C.64 436 0 -1 0 0 0
166+68.65.6C.6C.6F.20.77.6F.72.6C.64 24D0 0 -1 0 0 0
167+68.65.6C.6C.6F.20.77.6F.72.6C.64 D801.DC00 0 -1 0 0 0
168+68.65.6C.6C.6F.20.77.6F.72.6C.64 78.20.79 0 -1 0 0 0
169+68.65.6C.6C.6F.20.77.6F.72.6C.64 61.2D.62 0 1 0 0 0
170+74.72.75.65 - 0 1 1 1 1
171+74.72.75.65 61.62 0 1 0 0 0
172+74.72.75.65 74.72.75.65 1 0 1 1 1
173+74.72.75.65 54.52.55.45 1 0 1 1 1
174+74.72.75.65 149 0 -1 0 0 0
175+74.72.75.65 69 0 1 0 0 0
176+74.72.75.65 4B 0 1 0 0 0
177+74.72.75.65 391.3A3 0 -1 0 0 0
178+74.72.75.65 1C9 0 -1 0 0 0
179+74.72.75.65 3BC 0 -1 0 0 0
180+74.72.75.65 1FBC 0 -1 0 0 0
181+74.72.75.65 10D0 0 -1 0 0 0
182+74.72.75.65 24B6 0 -1 0 0 0
183+74.72.75.65 D801.DC28 0 -1 0 0 0
184+74.72.75.65 78.A0.79 0 -1 0 0 0
185+74.72.75.65 61.5F.62 0 1 0 0 0
186+54.52.55.45 - 0 1 1 1 1
187+54.52.55.45 41.42 0 1 0 0 0
188+54.52.55.45 74.72.75.65 1 0 1 1 1
189+54.52.55.45 54.52.55.45 1 0 1 1 1
190+54.52.55.45 2BC.4E 0 -1 0 0 0
191+54.52.55.45 130 0 -1 0 0 0
192+54.52.55.45 212B 0 -1 0 0 0
193+54.52.55.45 3B1.3C2 0 -1 0 0 0
194+54.52.55.45 E9 0 -1 0 0 0
195+54.52.55.45 39C 0 -1 0 0 0
196+54.52.55.45 E9 0 -1 0 0 0
197+54.52.55.45 1C90 0 -1 0 0 0
198+54.52.55.45 FF41 0 -1 0 0 0
199+54.52.55.45 D801.DC28 0 -1 0 0 0
200+54.52.55.45 30 0 1 0 0 0
201+54.52.55.45 5B.5D 0 -1 0 0 0
202+6E.75.6C.6C - 0 1 1 1 1
203+6E.75.6C.6C 61.62.63 0 1 0 0 0
204+6E.75.6C.6C 6E.75.6C.6C 1 0 1 1 1
205+6E.75.6C.6C FB03 0 -1 0 0 0
206+6E.75.6C.6C 17F 0 -1 0 0 0
207+6E.75.6C.6C E5 0 -1 0 0 0
208+6E.75.6C.6C 3B1.3C3 0 -1 0 0 0
209+6E.75.6C.6C C9 0 -1 0 0 0
210+6E.75.6C.6C 1F0 0 -1 0 0 0
211+6E.75.6C.6C C9 0 -1 0 0 0
212+6E.75.6C.6C AB70 0 -1 0 0 0
213+6E.75.6C.6C FF21 0 -1 0 0 0
214+6E.75.6C.6C D800.DC00 0 -1 0 0 0
215+6E.75.6C.6C 30.30 0 1 0 0 0
216+6E.75.6C.6C 27 0 1 0 0 0
217+DF - 0 1 1 1 1
218+DF 41.42.43 0 1 0 0 0
219+DF DF 1 0 1 1 1
220+DF 46.46.49 0 1 0 0 0
221+DF 73 0 1 0 0 0
222+DF C5 0 1 0 0 0
223+DF 1C4 0 -1 0 0 0
224+DF 65.301 0 1 0 0 0
225+DF 4A.30C 0 1 0 0 0
226+DF 1C5.61 0 -1 0 0 0
227+DF 13A0 0 -1 0 0 0
228+DF E000 0 -1 0 0 0
229+DF 61.62.D83D.DE00 0 1 0 0 0
230+DF 31.65.33 0 1 0 0 0
231+53.53 - 0 1 1 1 1
232+53.53 48.65.6C.6C.6F 0 1 0 0 0
233+53.53 53.53 1 0 1 1 1
234+53.53 73.73 1 0 1 1 1
235+53.53 66.66.69 0 1 0 0 0
236+53.53 73 0 1 1 1 1
237+53.53 53 0 1 1 1 1
238+53.53 3C3 0 -1 0 0 0
239+53.53 1C5 0 -1 0 0 0
240+53.53 FF 0 -1 0 0 0
241+53.53 390 0 -1 0 0 0
242+53.53 1C4.61 0 -1 0 0 0
243+53.53 13F8 0 -1 0 0 0
244+53.53 FFFF 0 -1 0 0 0
245+53.53 41.42.D83D.DE00 0 1 0 0 0
246+53.53 2D 0 1 0 0 0
247+73.73 - 0 1 1 1 1
248+73.73 61 0 1 0 0 0
249+73.73 68.45.4C.4C.4F 0 1 0 0 0
250+73.73 53.53 1 0 1 1 1
251+73.73 73.73 1 0 1 1 1
252+73.73 131 0 -1 0 0 0
253+73.73 73 0 1 1 1 1
254+73.73 53 0 1 1 1 1
255+73.73 212A 0 -1 0 0 0
256+73.73 3C2 0 -1 0 0 0
257+73.73 1C6 0 -1 0 0 0
258+73.73 178 0 -1 0 0 0
259+73.73 1FFC 0 -1 0 0 0
260+73.73 416 0 -1 0 0 0
261+73.73 13F0 0 -1 0 0 0
262+73.73 D83D.DE00 0 -1 0 0 0
263+73.73 78.2028.79 0 -1 0 0 0
264+73.73 5F 0 -1 0 0 0
265+1E9E - 0 1 1 1 1
266+1E9E 41 0 1 0 0 0
267+1E9E 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
268+1E9E 1E9E 1 0 1 1 1
269+1E9E 49 0 1 0 0 0
270+1E9E 6B 0 1 0 0 0
271+1E9E 3A3 0 1 0 0 0
272+1E9E 1C8 0 1 0 0 0
273+1E9E B5 0 1 0 0 0
274+1E9E 1FB3 0 -1 0 0 0
275+1E9E 436 0 1 0 0 0
276+1E9E 24D0 0 -1 0 0 0
277+1E9E D801.DC00 0 -1 0 0 0
278+1E9E 78.20.79 0 1 0 0 0
279+1E9E 61.2D.62 0 1 0 0 0
280+149 - 0 1 1 1 1
281+149 61.62 0 1 0 0 0
282+149 74.72.75.65 0 1 0 0 0
283+149 149 1 0 1 1 1
284+149 69 0 1 0 0 0
285+149 4B 0 1 0 0 0
286+149 391.3A3 0 -1 0 0 0
287+149 1C9 0 -1 0 0 0
288+149 3BC 0 -1 0 0 0
289+149 1FBC 0 -1 0 0 0
290+149 10D0 0 -1 0 0 0
291+149 24B6 0 -1 0 0 0
292+149 D801.DC28 0 -1 0 0 0
293+149 78.A0.79 0 1 0 0 0
294+149 61.5F.62 0 1 0 0 0
295+2BC.4E - 0 1 1 1 1
296+2BC.4E 41.42 0 1 0 0 0
297+2BC.4E 54.52.55.45 0 1 0 0 0
298+2BC.4E 2BC.4E 1 0 1 1 1
299+2BC.4E 130 0 1 0 0 0
300+2BC.4E 212B 0 -1 0 0 0
301+2BC.4E 3B1.3C2 0 -1 0 0 0
302+2BC.4E E9 0 1 0 0 0
303+2BC.4E 39C 0 -1 0 0 0
304+2BC.4E E9 0 1 0 0 0
305+2BC.4E 1C90 0 -1 0 0 0
306+2BC.4E FF41 0 -1 0 0 0
307+2BC.4E D801.DC28 0 -1 0 0 0
308+2BC.4E 30 0 1 0 0 0
309+2BC.4E 5B.5D 0 1 0 0 0
310+FB03 - 0 1 1 1 1
311+FB03 61.62.63 0 1 0 0 0
312+FB03 6E.75.6C.6C 0 1 0 0 0
313+FB03 FB03 1 0 1 1 1
314+FB03 17F 0 1 0 0 0
315+FB03 E5 0 1 0 0 0
316+FB03 3B1.3C3 0 1 0 0 0
317+FB03 C9 0 1 0 0 0
318+FB03 1F0 0 1 0 0 0
319+FB03 C9 0 1 0 0 0
320+FB03 AB70 0 1 0 0 0
321+FB03 FF21 0 -1 0 0 0
322+FB03 D800.DC00 0 -1 0 0 0
323+FB03 30.30 0 1 0 0 0
324+FB03 27 0 1 0 0 0
325+46.46.49 - 0 1 1 1 1
326+46.46.49 41.42.43 0 1 0 0 0
327+46.46.49 DF 0 -1 0 0 0
328+46.46.49 46.46.49 1 0 1 1 1
329+46.46.49 66.66.69 1 0 1 1 1
330+46.46.49 49 0 -1 1 0 1
331+46.46.49 69 0 -1 1 0 1
332+46.46.49 73 0 -1 0 0 0
333+46.46.49 C5 0 -1 0 0 0
334+46.46.49 1C4 0 -1 0 0 0
335+46.46.49 65.301 0 1 0 0 0
336+46.46.49 4A.30C 0 -1 0 0 0
337+46.46.49 1C5.61 0 -1 0 0 0
338+46.46.49 13A0 0 -1 0 0 0
339+46.46.49 E000 0 -1 0 0 0
340+46.46.49 61.62.D83D.DE00 0 1 0 0 0
341+46.46.49 31.65.33 0 1 0 0 0
342+66.66.69 - 0 1 1 1 1
343+66.66.69 48.65.6C.6C.6F 0 -1 0 0 0
344+66.66.69 53.53 0 -1 0 0 0
345+66.66.69 46.46.49 1 0 1 1 1
346+66.66.69 66.66.69 1 0 1 1 1
347+66.66.69 49 0 -1 1 0 1
348+66.66.69 69 0 -1 1 0 1
349+66.66.69 53 0 -1 0 0 0
350+66.66.69 3C3 0 -1 0 0 0
351+66.66.69 1C5 0 -1 0 0 0
352+66.66.69 FF 0 -1 0 0 0
353+66.66.69 390 0 -1 0 0 0
354+66.66.69 1C4.61 0 -1 0 0 0
355+66.66.69 13F8 0 -1 0 0 0
356+66.66.69 FFFF 0 -1 0 0 0
357+66.66.69 41.42.D83D.DE00 0 1 0 0 0
358+66.66.69 2D 0 1 0 0 0
359+131 - 0 1 1 1 1
360+131 61 0 1 0 0 0
361+131 68.45.4C.4C.4F 0 1 0 0 0
362+131 73.73 0 1 0 0 0
363+131 131 1 0 1 1 1
364+131 212A 0 -1 0 0 0
365+131 3C2 0 -1 0 0 0
366+131 1C6 0 -1 0 0 0
367+131 178 0 -1 0 0 0
368+131 1FFC 0 -1 0 0 0
369+131 416 0 -1 0 0 0
370+131 13F0 0 -1 0 0 0
371+131 D83D.DE00 0 -1 0 0 0
372+131 78.2028.79 0 1 0 0 0
373+131 5F 0 1 0 0 0
374+49 - 0 1 1 1 1
375+49 41 0 1 0 0 0
376+49 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
377+49 1E9E 0 -1 0 0 0
378+49 49 1 0 1 1 1
379+49 69 1 0 1 1 1
380+49 6B 0 -1 0 0 0
381+49 3A3 0 -1 0 0 0
382+49 1C8 0 -1 0 0 0
383+49 B5 0 -1 0 0 0
384+49 1FB3 0 -1 0 0 0
385+49 436 0 -1 0 0 0
386+49 24D0 0 -1 0 0 0
387+49 D801.DC00 0 -1 0 0 0
388+49 78.20.79 0 -1 0 0 0
389+49 61.2D.62 0 1 0 0 0
390+69 - 0 1 1 1 1
391+69 61.62 0 1 0 0 0
392+69 74.72.75.65 0 -1 0 0 0
393+69 149 0 -1 0 0 0
394+69 49 1 0 1 1 1
395+69 69 1 0 1 1 1
396+69 4B 0 -1 0 0 0
397+69 391.3A3 0 -1 0 0 0
398+69 1C9 0 -1 0 0 0
399+69 3BC 0 -1 0 0 0
400+69 1FBC 0 -1 0 0 0
401+69 10D0 0 -1 0 0 0
402+69 24B6 0 -1 0 0 0
403+69 D801.DC28 0 -1 0 0 0
404+69 78.A0.79 0 -1 0 0 0
405+69 61.5F.62 0 1 0 0 0
406+130 - 0 1 1 1 1
407+130 41.42 0 1 0 0 0
408+130 54.52.55.45 0 1 0 0 0
409+130 2BC.4E 0 -1 0 0 0
410+130 130 1 0 1 1 1
411+130 212B 0 -1 0 0 0
412+130 3B1.3C2 0 -1 0 0 0
413+130 E9 0 1 0 0 0
414+130 39C 0 -1 0 0 0
415+130 E9 0 1 0 0 0
416+130 1C90 0 -1 0 0 0
417+130 FF41 0 -1 0 0 0
418+130 D801.DC28 0 -1 0 0 0
419+130 30 0 1 0 0 0
420+130 5B.5D 0 1 0 0 0
421+17F - 0 1 1 1 1
422+17F 61.62.63 0 1 0 0 0
423+17F 6E.75.6C.6C 0 1 0 0 0
424+17F FB03 0 -1 0 0 0
425+17F 17F 1 0 1 1 1
426+17F E5 0 1 0 0 0
427+17F 3B1.3C3 0 -1 0 0 0
428+17F C9 0 1 0 0 0
429+17F 1F0 0 -1 0 0 0
430+17F C9 0 1 0 0 0
431+17F AB70 0 -1 0 0 0
432+17F FF21 0 -1 0 0 0
433+17F D800.DC00 0 -1 0 0 0
434+17F 30.30 0 1 0 0 0
435+17F 27 0 1 0 0 0
436+73 - 0 1 1 1 1
437+73 41.42.43 0 1 0 0 0
438+73 DF 0 -1 0 0 0
439+73 46.46.49 0 1 0 0 0
440+73 73 1 0 1 1 1
441+73 53 1 0 1 1 1
442+73 C5 0 -1 0 0 0
443+73 1C4 0 -1 0 0 0
444+73 65.301 0 1 0 0 0
445+73 4A.30C 0 1 0 0 0
446+73 1C5.61 0 -1 0 0 0
447+73 13A0 0 -1 0 0 0
448+73 E000 0 -1 0 0 0
449+73 61.62.D83D.DE00 0 1 0 0 0
450+73 31.65.33 0 1 0 0 0
451+53 - 0 1 1 1 1
452+53 48.65.6C.6C.6F 0 1 0 0 0
453+53 53.53 0 -1 0 0 0
454+53 66.66.69 0 1 0 0 0
455+53 73 1 0 1 1 1
456+53 53 1 0 1 1 1
457+53 3C3 0 -1 0 0 0
458+53 1C5 0 -1 0 0 0
459+53 FF 0 -1 0 0 0
460+53 390 0 -1 0 0 0
461+53 1C4.61 0 -1 0 0 0
462+53 13F8 0 -1 0 0 0
463+53 FFFF 0 -1 0 0 0
464+53 41.42.D83D.DE00 0 1 0 0 0
465+53 2D 0 1 0 0 0
466+212A - 0 1 1 1 1
467+212A 61 0 1 0 0 0
468+212A 68.45.4C.4C.4F 0 1 0 0 0
469+212A 73.73 0 1 0 0 0
470+212A 131 0 1 0 0 0
471+212A 212A 1 0 1 1 1
472+212A 3C2 0 1 0 0 0
473+212A 1C6 0 1 0 0 0
474+212A 178 0 1 0 0 0
475+212A 1FFC 0 1 0 0 0
476+212A 416 0 1 0 0 0
477+212A 13F0 0 1 0 0 0
478+212A D83D.DE00 0 -1 0 0 0
479+212A 78.2028.79 0 1 0 0 0
480+212A 5F 0 1 0 0 0
481+6B - 0 1 1 1 1
482+6B 41 0 1 0 0 0
483+6B 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
484+6B 1E9E 0 -1 0 0 0
485+6B 49 0 1 0 0 0
486+6B 6B 1 0 1 1 1
487+6B 4B 1 0 1 1 1
488+6B 3A3 0 -1 0 0 0
489+6B 1C8 0 -1 0 0 0
490+6B B5 0 -1 0 0 0
491+6B 1FB3 0 -1 0 0 0
492+6B 436 0 -1 0 0 0
493+6B 24D0 0 -1 0 0 0
494+6B D801.DC00 0 -1 0 0 0
495+6B 78.20.79 0 -1 0 0 0
496+6B 61.2D.62 0 1 0 0 0
497+4B - 0 1 1 1 1
498+4B 61.62 0 1 0 0 0
499+4B 74.72.75.65 0 -1 0 0 0
500+4B 149 0 -1 0 0 0
501+4B 69 0 1 0 0 0
502+4B 6B 1 0 1 1 1
503+4B 4B 1 0 1 1 1
504+4B 391.3A3 0 -1 0 0 0
505+4B 1C9 0 -1 0 0 0
506+4B 3BC 0 -1 0 0 0
507+4B 1FBC 0 -1 0 0 0
508+4B 10D0 0 -1 0 0 0
509+4B 24B6 0 -1 0 0 0
510+4B D801.DC28 0 -1 0 0 0
511+4B 78.A0.79 0 -1 0 0 0
512+4B 61.5F.62 0 1 0 0 0
513+212B - 0 1 1 1 1
514+212B 41.42 0 1 0 0 0
515+212B 54.52.55.45 0 1 0 0 0
516+212B 2BC.4E 0 1 0 0 0
517+212B 130 0 1 0 0 0
518+212B 212B 1 0 1 1 1
519+212B 3B1.3C2 0 1 0 0 0
520+212B E9 0 1 0 0 0
521+212B 39C 0 1 0 0 0
522+212B E9 0 1 0 0 0
523+212B 1C90 0 1 0 0 0
524+212B FF41 0 -1 0 0 0
525+212B D801.DC28 0 -1 0 0 0
526+212B 30 0 1 0 0 0
527+212B 5B.5D 0 1 0 0 0
528+E5 - 0 1 1 1 1
529+E5 61.62.63 0 1 0 0 0
530+E5 6E.75.6C.6C 0 1 0 0 0
531+E5 FB03 0 -1 0 0 0
532+E5 17F 0 -1 0 0 0
533+E5 E5 1 0 1 1 1
534+E5 C5 1 0 1 1 1
535+E5 3B1.3C3 0 -1 0 0 0
536+E5 C9 0 -1 0 0 0
537+E5 1F0 0 -1 0 0 0
538+E5 C9 0 -1 0 0 0
539+E5 AB70 0 -1 0 0 0
540+E5 FF21 0 -1 0 0 0
541+E5 D800.DC00 0 -1 0 0 0
542+E5 30.30 0 1 0 0 0
543+E5 27 0 1 0 0 0
544+C5 - 0 1 1 1 1
545+C5 41.42.43 0 1 0 0 0
546+C5 DF 0 -1 0 0 0
547+C5 46.46.49 0 1 0 0 0
548+C5 73 0 1 0 0 0
549+C5 E5 1 0 1 1 1
550+C5 C5 1 0 1 1 1
551+C5 1C4 0 -1 0 0 0
552+C5 65.301 0 1 0 0 0
553+C5 4A.30C 0 1 0 0 0
554+C5 1C5.61 0 -1 0 0 0
555+C5 13A0 0 -1 0 0 0
556+C5 E000 0 -1 0 0 0
557+C5 61.62.D83D.DE00 0 1 0 0 0
558+C5 31.65.33 0 1 0 0 0
559+3C3 - 0 1 1 1 1
560+3C3 48.65.6C.6C.6F 0 1 0 0 0
561+3C3 53.53 0 1 0 0 0
562+3C3 66.66.69 0 1 0 0 0
563+3C3 53 0 1 0 0 0
564+3C3 3C3 1 0 1 1 1
565+3C3 3C2 1 0 1 1 1
566+3C3 3A3 1 0 1 1 1
567+3C3 1C5 0 1 0 0 0
568+3C3 FF 0 1 0 0 0
569+3C3 390 0 1 0 0 0
570+3C3 1C4.61 0 1 0 0 0
571+3C3 13F8 0 -1 0 0 0
572+3C3 FFFF 0 -1 0 0 0
573+3C3 41.42.D83D.DE00 0 1 0 0 0
574+3C3 2D 0 1 0 0 0
575+3C2 - 0 1 1 1 1
576+3C2 61 0 1 0 0 0
577+3C2 68.45.4C.4C.4F 0 1 0 0 0
578+3C2 73.73 0 1 0 0 0
579+3C2 131 0 1 0 0 0
580+3C2 212A 0 -1 0 0 0
581+3C2 3C3 1 0 1 1 1
582+3C2 3C2 1 0 1 1 1
583+3C2 3A3 1 0 1 1 1
584+3C2 1C6 0 1 0 0 0
585+3C2 178 0 1 0 0 0
586+3C2 1FFC 0 -1 0 0 0
587+3C2 416 0 -1 0 0 0
588+3C2 13F0 0 -1 0 0 0
589+3C2 D83D.DE00 0 -1 0 0 0
590+3C2 78.2028.79 0 1 0 0 0
591+3C2 5F 0 1 0 0 0
592+3A3 - 0 1 1 1 1
593+3A3 41 0 1 0 0 0
594+3A3 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
595+3A3 1E9E 0 -1 0 0 0
596+3A3 49 0 1 0 0 0
597+3A3 6B 0 1 0 0 0
598+3A3 3C3 1 0 1 1 1
599+3A3 3C2 1 0 1 1 1
600+3A3 3A3 1 0 1 1 1
601+3A3 1C8 0 1 0 0 0
602+3A3 B5 0 1 0 0 0
603+3A3 1FB3 0 -1 0 0 0
604+3A3 436 0 -1 0 0 0
605+3A3 24D0 0 -1 0 0 0
606+3A3 D801.DC00 0 -1 0 0 0
607+3A3 78.20.79 0 1 0 0 0
608+3A3 61.2D.62 0 1 0 0 0
609+391.3A3 - 0 1 1 1 1
610+391.3A3 61.62 0 1 0 0 0
611+391.3A3 74.72.75.65 0 1 0 0 0
612+391.3A3 149 0 1 0 0 0
613+391.3A3 69 0 1 0 0 0
614+391.3A3 4B 0 1 0 0 0
615+391.3A3 3C3 0 -1 1 0 1
616+391.3A3 3C2 0 -1 1 0 1
617+391.3A3 3A3 0 -1 1 0 1
618+391.3A3 391.3A3 1 0 1 1 1
619+391.3A3 3B1.3C2 1 0 1 1 1
620+391.3A3 3B1.3C3 1 0 1 1 1
621+391.3A3 1C9 0 1 0 0 0
622+391.3A3 3BC 0 -1 0 0 0
623+391.3A3 1FBC 0 -1 0 0 0
624+391.3A3 10D0 0 -1 0 0 0
625+391.3A3 24B6 0 -1 0 0 0
626+391.3A3 D801.DC28 0 -1 0 0 0
627+391.3A3 78.A0.79 0 1 0 0 0
628+391.3A3 61.5F.62 0 1 0 0 0
629+3B1.3C2 - 0 1 1 1 1
630+3B1.3C2 41.42 0 1 0 0 0
631+3B1.3C2 54.52.55.45 0 1 0 0 0
632+3B1.3C2 2BC.4E 0 1 0 0 0
633+3B1.3C2 130 0 1 0 0 0
634+3B1.3C2 212B 0 -1 0 0 0
635+3B1.3C2 3C3 0 -1 1 0 1
636+3B1.3C2 3C2 0 -1 1 0 1
637+3B1.3C2 3A3 0 -1 1 0 1
638+3B1.3C2 391.3A3 1 0 1 1 1
639+3B1.3C2 3B1.3C2 1 0 1 1 1
640+3B1.3C2 3B1.3C3 1 0 1 1 1
641+3B1.3C2 E9 0 1 0 0 0
642+3B1.3C2 39C 0 -1 0 0 0
643+3B1.3C2 E9 0 1 0 0 0
644+3B1.3C2 1C90 0 -1 0 0 0
645+3B1.3C2 FF41 0 -1 0 0 0
646+3B1.3C2 D801.DC28 0 -1 0 0 0
647+3B1.3C2 30 0 1 0 0 0
648+3B1.3C2 5B.5D 0 1 0 0 0
649+3B1.3C3 - 0 1 1 1 1
650+3B1.3C3 61.62.63 0 1 0 0 0
651+3B1.3C3 6E.75.6C.6C 0 1 0 0 0
652+3B1.3C3 FB03 0 -1 0 0 0
653+3B1.3C3 17F 0 1 0 0 0
654+3B1.3C3 E5 0 1 0 0 0
655+3B1.3C3 3C3 0 -1 1 0 1
656+3B1.3C3 3C2 0 -1 1 0 1
657+3B1.3C3 3A3 0 -1 1 0 1
658+3B1.3C3 391.3A3 1 0 1 1 1
659+3B1.3C3 3B1.3C2 1 0 1 1 1
660+3B1.3C3 3B1.3C3 1 0 1 1 1
661+3B1.3C3 C9 0 1 0 0 0
662+3B1.3C3 1F0 0 1 0 0 0
663+3B1.3C3 C9 0 1 0 0 0
664+3B1.3C3 AB70 0 -1 0 0 0
665+3B1.3C3 FF21 0 -1 0 0 0
666+3B1.3C3 D800.DC00 0 -1 0 0 0
667+3B1.3C3 30.30 0 1 0 0 0
668+3B1.3C3 27 0 1 0 0 0
669+1C4 - 0 1 1 1 1
670+1C4 41.42.43 0 1 0 0 0
671+1C4 DF 0 1 0 0 0
672+1C4 46.46.49 0 1 0 0 0
673+1C4 73 0 1 0 0 0
674+1C4 C5 0 1 0 0 0
675+1C4 1C4 1 0 1 1 1
676+1C4 1C5 1 0 1 1 1
677+1C4 1C6 1 0 1 1 1
678+1C4 65.301 0 1 0 0 0
679+1C4 4A.30C 0 1 0 0 0
680+1C4 1C5.61 0 -1 0 0 0
681+1C4 13A0 0 -1 0 0 0
682+1C4 E000 0 -1 0 0 0
683+1C4 61.62.D83D.DE00 0 1 0 0 0
684+1C4 31.65.33 0 1 0 0 0
685+1C5 - 0 1 1 1 1
686+1C5 48.65.6C.6C.6F 0 1 0 0 0
687+1C5 53.53 0 1 0 0 0
688+1C5 66.66.69 0 1 0 0 0
689+1C5 53 0 1 0 0 0
690+1C5 3C3 0 -1 0 0 0
691+1C5 1C4 1 0 1 1 1
692+1C5 1C5 1 0 1 1 1
693+1C5 1C6 1 0 1 1 1
694+1C5 FF 0 1 0 0 0
695+1C5 390 0 -1 0 0 0
696+1C5 1C4.61 0 -1 0 0 0
697+1C5 13F8 0 -1 0 0 0
698+1C5 FFFF 0 -1 0 0 0
699+1C5 41.42.D83D.DE00 0 1 0 0 0
700+1C5 2D 0 1 0 0 0
701+1C6 - 0 1 1 1 1
702+1C6 61 0 1 0 0 0
703+1C6 68.45.4C.4C.4F 0 1 0 0 0
704+1C6 73.73 0 1 0 0 0
705+1C6 131 0 1 0 0 0
706+1C6 212A 0 -1 0 0 0
707+1C6 3C2 0 -1 0 0 0
708+1C6 1C4 1 0 1 1 1
709+1C6 1C5 1 0 1 1 1
710+1C6 1C6 1 0 1 1 1
711+1C6 178 0 1 0 0 0
712+1C6 1FFC 0 -1 0 0 0
713+1C6 416 0 -1 0 0 0
714+1C6 13F0 0 -1 0 0 0
715+1C6 D83D.DE00 0 -1 0 0 0
716+1C6 78.2028.79 0 1 0 0 0
717+1C6 5F 0 1 0 0 0
718+1C8 - 0 1 1 1 1
719+1C8 41 0 1 0 0 0
720+1C8 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
721+1C8 1E9E 0 -1 0 0 0
722+1C8 49 0 1 0 0 0
723+1C8 6B 0 1 0 0 0
724+1C8 3A3 0 -1 0 0 0
725+1C8 1C8 1 0 1 1 1
726+1C8 1C9 1 0 1 1 1
727+1C8 B5 0 -1 0 0 0
728+1C8 1FB3 0 -1 0 0 0
729+1C8 436 0 -1 0 0 0
730+1C8 24D0 0 -1 0 0 0
731+1C8 D801.DC00 0 -1 0 0 0
732+1C8 78.20.79 0 1 0 0 0
733+1C8 61.2D.62 0 1 0 0 0
734+1C9 - 0 1 1 1 1
735+1C9 61.62 0 1 0 0 0
736+1C9 74.72.75.65 0 1 0 0 0
737+1C9 149 0 1 0 0 0
738+1C9 69 0 1 0 0 0
739+1C9 4B 0 1 0 0 0
740+1C9 391.3A3 0 -1 0 0 0
741+1C9 1C8 1 0 1 1 1
742+1C9 1C9 1 0 1 1 1
743+1C9 3BC 0 -1 0 0 0
744+1C9 1FBC 0 -1 0 0 0
745+1C9 10D0 0 -1 0 0 0
746+1C9 24B6 0 -1 0 0 0
747+1C9 D801.DC28 0 -1 0 0 0
748+1C9 78.A0.79 0 1 0 0 0
749+1C9 61.5F.62 0 1 0 0 0
750+E9 - 0 1 1 1 1
751+E9 41.42 0 1 0 0 0
752+E9 54.52.55.45 0 1 0 0 0
753+E9 2BC.4E 0 -1 0 0 0
754+E9 130 0 -1 0 0 0
755+E9 212B 0 -1 0 0 0
756+E9 3B1.3C2 0 -1 0 0 0
757+E9 E9 1 0 1 1 1
758+E9 C9 1 0 1 1 1
759+E9 39C 0 -1 0 0 0
760+E9 E9 1 0 1 1 1
761+E9 C9 1 0 1 1 1
762+E9 1C90 0 -1 0 0 0
763+E9 FF41 0 -1 0 0 0
764+E9 D801.DC28 0 -1 0 0 0
765+E9 30 0 1 0 0 0
766+E9 5B.5D 0 1 0 0 0
767+C9 - 0 1 1 1 1
768+C9 61.62.63 0 1 0 0 0
769+C9 6E.75.6C.6C 0 1 0 0 0
770+C9 FB03 0 -1 0 0 0
771+C9 17F 0 -1 0 0 0
772+C9 E5 0 1 0 0 0
773+C9 3B1.3C3 0 -1 0 0 0
774+C9 E9 1 0 1 1 1
775+C9 C9 1 0 1 1 1
776+C9 1F0 0 -1 0 0 0
777+C9 E9 1 0 1 1 1
778+C9 C9 1 0 1 1 1
779+C9 AB70 0 -1 0 0 0
780+C9 FF21 0 -1 0 0 0
781+C9 D800.DC00 0 -1 0 0 0
782+C9 30.30 0 1 0 0 0
783+C9 27 0 1 0 0 0
784+65.301 - 0 1 1 1 1
785+65.301 41.42.43 0 1 0 0 0
786+65.301 DF 0 -1 0 0 0
787+65.301 46.46.49 0 -1 0 0 0
788+65.301 73 0 -1 0 0 0
789+65.301 C5 0 -1 0 0 0
790+65.301 1C4 0 -1 0 0 0
791+65.301 65.301 1 0 1 1 1
792+65.301 4A.30C 0 -1 0 0 0
793+65.301 1C5.61 0 -1 0 0 0
794+65.301 13A0 0 -1 0 0 0
795+65.301 E000 0 -1 0 0 0
796+65.301 61.62.D83D.DE00 0 1 0 0 0
797+65.301 31.65.33 0 1 0 0 0
798+FF - 0 1 1 1 1
799+FF 48.65.6C.6C.6F 0 1 0 0 0
800+FF 53.53 0 1 0 0 0
801+FF 66.66.69 0 1 0 0 0
802+FF 53 0 1 0 0 0
803+FF 3C3 0 -1 0 0 0
804+FF 1C5 0 -1 0 0 0
805+FF FF 1 0 1 1 1
806+FF 178 1 0 1 1 1
807+FF 390 0 -1 0 0 0
808+FF 1C4.61 0 -1 0 0 0
809+FF 13F8 0 -1 0 0 0
810+FF FFFF 0 -1 0 0 0
811+FF 41.42.D83D.DE00 0 1 0 0 0
812+FF 2D 0 1 0 0 0
813+178 - 0 1 1 1 1
814+178 61 0 1 0 0 0
815+178 68.45.4C.4C.4F 0 1 0 0 0
816+178 73.73 0 1 0 0 0
817+178 131 0 1 0 0 0
818+178 212A 0 -1 0 0 0
819+178 3C2 0 -1 0 0 0
820+178 1C6 0 -1 0 0 0
821+178 FF 1 0 1 1 1
822+178 178 1 0 1 1 1
823+178 1FFC 0 -1 0 0 0
824+178 416 0 -1 0 0 0
825+178 13F0 0 -1 0 0 0
826+178 D83D.DE00 0 -1 0 0 0
827+178 78.2028.79 0 1 0 0 0
828+178 5F 0 1 0 0 0
829+B5 - 0 1 1 1 1
830+B5 41 0 1 0 0 0
831+B5 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
832+B5 1E9E 0 -1 0 0 0
833+B5 49 0 1 0 0 0
834+B5 6B 0 1 0 0 0
835+B5 3A3 0 -1 0 0 0
836+B5 1C8 0 1 0 0 0
837+B5 B5 1 0 1 1 1
838+B5 3BC 1 0 1 1 1
839+B5 39C 1 0 1 1 1
840+B5 1FB3 0 -1 0 0 0
841+B5 436 0 -1 0 0 0
842+B5 24D0 0 -1 0 0 0
843+B5 D801.DC00 0 -1 0 0 0
844+B5 78.20.79 0 1 0 0 0
845+B5 61.2D.62 0 1 0 0 0
846+3BC - 0 1 1 1 1
847+3BC 61.62 0 1 0 0 0
848+3BC 74.72.75.65 0 1 0 0 0
849+3BC 149 0 1 0 0 0
850+3BC 69 0 1 0 0 0
851+3BC 4B 0 1 0 0 0
852+3BC 391.3A3 0 1 0 0 0
853+3BC 1C9 0 1 0 0 0
854+3BC B5 1 0 1 1 1
855+3BC 3BC 1 0 1 1 1
856+3BC 39C 1 0 1 1 1
857+3BC 1FBC 0 -1 0 0 0
858+3BC 10D0 0 -1 0 0 0
859+3BC 24B6 0 -1 0 0 0
860+3BC D801.DC28 0 -1 0 0 0
861+3BC 78.A0.79 0 1 0 0 0
862+3BC 61.5F.62 0 1 0 0 0
863+39C - 0 1 1 1 1
864+39C 41.42 0 1 0 0 0
865+39C 54.52.55.45 0 1 0 0 0
866+39C 2BC.4E 0 1 0 0 0
867+39C 130 0 1 0 0 0
868+39C 212B 0 -1 0 0 0
869+39C 3B1.3C2 0 1 0 0 0
870+39C E9 0 1 0 0 0
871+39C B5 1 0 1 1 1
872+39C 3BC 1 0 1 1 1
873+39C 39C 1 0 1 1 1
874+39C E9 0 1 0 0 0
875+39C 1C90 0 -1 0 0 0
876+39C FF41 0 -1 0 0 0
877+39C D801.DC28 0 -1 0 0 0
878+39C 30 0 1 0 0 0
879+39C 5B.5D 0 1 0 0 0
880+1F0 - 0 1 1 1 1
881+1F0 61.62.63 0 1 0 0 0
882+1F0 6E.75.6C.6C 0 1 0 0 0
883+1F0 FB03 0 -1 0 0 0
884+1F0 17F 0 1 0 0 0
885+1F0 E5 0 1 0 0 0
886+1F0 3B1.3C3 0 -1 0 0 0
887+1F0 C9 0 1 0 0 0
888+1F0 1F0 1 0 1 1 1
889+1F0 C9 0 1 0 0 0
890+1F0 AB70 0 -1 0 0 0
891+1F0 FF21 0 -1 0 0 0
892+1F0 D800.DC00 0 -1 0 0 0
893+1F0 30.30 0 1 0 0 0
894+1F0 27 0 1 0 0 0
895+4A.30C - 0 1 1 1 1
896+4A.30C 41.42.43 0 1 0 0 0
897+4A.30C DF 0 -1 0 0 0
898+4A.30C 46.46.49 0 1 0 0 0
899+4A.30C 73 0 -1 0 0 0
900+4A.30C C5 0 -1 0 0 0
901+4A.30C 1C4 0 -1 0 0 0
902+4A.30C 65.301 0 1 0 0 0
903+4A.30C 4A.30C 1 0 1 1 1
904+4A.30C 1C5.61 0 -1 0 0 0
905+4A.30C 13A0 0 -1 0 0 0
906+4A.30C E000 0 -1 0 0 0
907+4A.30C 61.62.D83D.DE00 0 1 0 0 0
908+4A.30C 31.65.33 0 1 0 0 0
909+390 - 0 1 1 1 1
910+390 48.65.6C.6C.6F 0 1 0 0 0
911+390 53.53 0 1 0 0 0
912+390 66.66.69 0 1 0 0 0
913+390 53 0 1 0 0 0
914+390 3C3 0 -1 0 0 0
915+390 1C5 0 1 0 0 0
916+390 FF 0 1 0 0 0
917+390 390 1 0 1 1 1
918+390 1C4.61 0 1 0 0 0
919+390 13F8 0 -1 0 0 0
920+390 FFFF 0 -1 0 0 0
921+390 41.42.D83D.DE00 0 1 0 0 0
922+390 2D 0 1 0 0 0
923+1FFC - 0 1 1 1 1
924+1FFC 61 0 1 0 0 0
925+1FFC 68.45.4C.4C.4F 0 1 0 0 0
926+1FFC 73.73 0 1 0 0 0
927+1FFC 131 0 1 0 0 0
928+1FFC 212A 0 -1 0 0 0
929+1FFC 3C2 0 1 0 0 0
930+1FFC 1C6 0 1 0 0 0
931+1FFC 178 0 1 0 0 0
932+1FFC 1FFC 1 0 1 1 1
933+1FFC 416 0 1 0 0 0
934+1FFC 13F0 0 1 0 0 0
935+1FFC D83D.DE00 0 -1 0 0 0
936+1FFC 78.2028.79 0 1 0 0 0
937+1FFC 5F 0 1 0 0 0
938+1FB3 - 0 1 1 1 1
939+1FB3 41 0 1 0 0 0
940+1FB3 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
941+1FB3 1E9E 0 1 0 0 0
942+1FB3 49 0 1 0 0 0
943+1FB3 6B 0 1 0 0 0
944+1FB3 3A3 0 1 0 0 0
945+1FB3 1C8 0 1 0 0 0
946+1FB3 B5 0 1 0 0 0
947+1FB3 1FB3 1 0 1 1 1
948+1FB3 1FBC 1 0 1 1 1
949+1FB3 436 0 1 0 0 0
950+1FB3 24D0 0 -1 0 0 0
951+1FB3 D801.DC00 0 -1 0 0 0
952+1FB3 78.20.79 0 1 0 0 0
953+1FB3 61.2D.62 0 1 0 0 0
954+1FBC - 0 1 1 1 1
955+1FBC 61.62 0 1 0 0 0
956+1FBC 74.72.75.65 0 1 0 0 0
957+1FBC 149 0 1 0 0 0
958+1FBC 69 0 1 0 0 0
959+1FBC 4B 0 1 0 0 0
960+1FBC 391.3A3 0 1 0 0 0
961+1FBC 1C9 0 1 0 0 0
962+1FBC 3BC 0 1 0 0 0
963+1FBC 1FB3 1 0 1 1 1
964+1FBC 1FBC 1 0 1 1 1
965+1FBC 10D0 0 1 0 0 0
966+1FBC 24B6 0 -1 0 0 0
967+1FBC D801.DC28 0 -1 0 0 0
968+1FBC 78.A0.79 0 1 0 0 0
969+1FBC 61.5F.62 0 1 0 0 0
970+E9 - 0 1 1 1 1
971+E9 41.42 0 1 0 0 0
972+E9 54.52.55.45 0 1 0 0 0
973+E9 2BC.4E 0 -1 0 0 0
974+E9 130 0 -1 0 0 0
975+E9 212B 0 -1 0 0 0
976+E9 3B1.3C2 0 -1 0 0 0
977+E9 E9 1 0 1 1 1
978+E9 C9 1 0 1 1 1
979+E9 39C 0 -1 0 0 0
980+E9 E9 1 0 1 1 1
981+E9 C9 1 0 1 1 1
982+E9 1C90 0 -1 0 0 0
983+E9 FF41 0 -1 0 0 0
984+E9 D801.DC28 0 -1 0 0 0
985+E9 30 0 1 0 0 0
986+E9 5B.5D 0 1 0 0 0
987+C9 - 0 1 1 1 1
988+C9 61.62.63 0 1 0 0 0
989+C9 6E.75.6C.6C 0 1 0 0 0
990+C9 FB03 0 -1 0 0 0
991+C9 17F 0 -1 0 0 0
992+C9 E5 0 1 0 0 0
993+C9 3B1.3C3 0 -1 0 0 0
994+C9 E9 1 0 1 1 1
995+C9 C9 1 0 1 1 1
996+C9 1F0 0 -1 0 0 0
997+C9 E9 1 0 1 1 1
998+C9 C9 1 0 1 1 1
999+C9 AB70 0 -1 0 0 0
1000+C9 FF21 0 -1 0 0 0
1001+C9 D800.DC00 0 -1 0 0 0
1002+C9 30.30 0 1 0 0 0
1003+C9 27 0 1 0 0 0
1004+1C5.61 - 0 1 1 1 1
1005+1C5.61 61 0 1 1 0 1
1006+1C5.61 41 0 1 1 0 1
1007+1C5.61 41.42.43 0 1 0 0 0
1008+1C5.61 DF 0 1 0 0 0
1009+1C5.61 46.46.49 0 1 0 0 0
1010+1C5.61 73 0 1 0 0 0
1011+1C5.61 C5 0 1 0 0 0
1012+1C5.61 1C4 0 1 1 1 0
1013+1C5.61 1C5 0 1 1 1 0
1014+1C5.61 1C6 0 1 1 1 0
1015+1C5.61 65.301 0 1 0 0 0
1016+1C5.61 4A.30C 0 1 0 0 0
1017+1C5.61 1C5.61 1 0 1 1 1
1018+1C5.61 1C4.61 1 0 1 1 1
1019+1C5.61 13A0 0 -1 0 0 0
1020+1C5.61 E000 0 -1 0 0 0
1021+1C5.61 61.62.D83D.DE00 0 1 0 0 0
1022+1C5.61 31.65.33 0 1 0 0 0
1023+1C4.61 - 0 1 1 1 1
1024+1C4.61 61 0 1 1 0 1
1025+1C4.61 41 0 1 1 0 1
1026+1C4.61 48.65.6C.6C.6F 0 1 0 0 0
1027+1C4.61 53.53 0 1 0 0 0
1028+1C4.61 66.66.69 0 1 0 0 0
1029+1C4.61 53 0 1 0 0 0
1030+1C4.61 3C3 0 -1 0 0 0
1031+1C4.61 1C4 0 1 1 1 0
1032+1C4.61 1C5 0 1 1 1 0
1033+1C4.61 1C6 0 1 1 1 0
1034+1C4.61 FF 0 1 0 0 0
1035+1C4.61 390 0 -1 0 0 0
1036+1C4.61 1C5.61 1 0 1 1 1
1037+1C4.61 1C4.61 1 0 1 1 1
1038+1C4.61 13F8 0 -1 0 0 0
1039+1C4.61 FFFF 0 -1 0 0 0
1040+1C4.61 41.42.D83D.DE00 0 1 0 0 0
1041+1C4.61 2D 0 1 0 0 0
1042+416 - 0 1 1 1 1
1043+416 61 0 1 0 0 0
1044+416 68.45.4C.4C.4F 0 1 0 0 0
1045+416 73.73 0 1 0 0 0
1046+416 131 0 1 0 0 0
1047+416 212A 0 -1 0 0 0
1048+416 3C2 0 1 0 0 0
1049+416 1C6 0 1 0 0 0
1050+416 178 0 1 0 0 0
1051+416 1FFC 0 -1 0 0 0
1052+416 416 1 0 1 1 1
1053+416 436 1 0 1 1 1
1054+416 13F0 0 -1 0 0 0
1055+416 D83D.DE00 0 -1 0 0 0
1056+416 78.2028.79 0 1 0 0 0
1057+416 5F 0 1 0 0 0
1058+436 - 0 1 1 1 1
1059+436 41 0 1 0 0 0
1060+436 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
1061+436 1E9E 0 -1 0 0 0
1062+436 49 0 1 0 0 0
1063+436 6B 0 1 0 0 0
1064+436 3A3 0 1 0 0 0
1065+436 1C8 0 1 0 0 0
1066+436 B5 0 1 0 0 0
1067+436 1FB3 0 -1 0 0 0
1068+436 416 1 0 1 1 1
1069+436 436 1 0 1 1 1
1070+436 24D0 0 -1 0 0 0
1071+436 D801.DC00 0 -1 0 0 0
1072+436 78.20.79 0 1 0 0 0
1073+436 61.2D.62 0 1 0 0 0
1074+10D0 - 0 1 1 1 1
1075+10D0 61.62 0 1 0 0 0
1076+10D0 74.72.75.65 0 1 0 0 0
1077+10D0 149 0 1 0 0 0
1078+10D0 69 0 1 0 0 0
1079+10D0 4B 0 1 0 0 0
1080+10D0 391.3A3 0 1 0 0 0
1081+10D0 1C9 0 1 0 0 0
1082+10D0 3BC 0 1 0 0 0
1083+10D0 1FBC 0 -1 0 0 0
1084+10D0 10D0 1 0 1 1 1
1085+10D0 1C90 1 0 1 1 1
1086+10D0 24B6 0 -1 0 0 0
1087+10D0 D801.DC28 0 -1 0 0 0
1088+10D0 78.A0.79 0 1 0 0 0
1089+10D0 61.5F.62 0 1 0 0 0
1090+1C90 - 0 1 1 1 1
1091+1C90 41.42 0 1 0 0 0
1092+1C90 54.52.55.45 0 1 0 0 0
1093+1C90 2BC.4E 0 1 0 0 0
1094+1C90 130 0 1 0 0 0
1095+1C90 212B 0 -1 0 0 0
1096+1C90 3B1.3C2 0 1 0 0 0
1097+1C90 E9 0 1 0 0 0
1098+1C90 39C 0 1 0 0 0
1099+1C90 E9 0 1 0 0 0
1100+1C90 10D0 1 0 1 1 1
1101+1C90 1C90 1 0 1 1 1
1102+1C90 FF41 0 -1 0 0 0
1103+1C90 D801.DC28 0 -1 0 0 0
1104+1C90 30 0 1 0 0 0
1105+1C90 5B.5D 0 1 0 0 0
1106+AB70 - 0 1 1 1 1
1107+AB70 61.62.63 0 1 0 0 0
1108+AB70 6E.75.6C.6C 0 1 0 0 0
1109+AB70 FB03 0 -1 0 0 0
1110+AB70 17F 0 1 0 0 0
1111+AB70 E5 0 1 0 0 0
1112+AB70 3B1.3C3 0 1 0 0 0
1113+AB70 C9 0 1 0 0 0
1114+AB70 1F0 0 1 0 0 0
1115+AB70 C9 0 1 0 0 0
1116+AB70 AB70 1 0 1 1 1
1117+AB70 13A0 1 0 1 1 1
1118+AB70 FF21 0 -1 0 0 0
1119+AB70 D800.DC00 0 -1 0 0 0
1120+AB70 30.30 0 1 0 0 0
1121+AB70 27 0 1 0 0 0
1122+13A0 - 0 1 1 1 1
1123+13A0 41.42.43 0 1 0 0 0
1124+13A0 DF 0 1 0 0 0
1125+13A0 46.46.49 0 1 0 0 0
1126+13A0 73 0 1 0 0 0
1127+13A0 C5 0 1 0 0 0
1128+13A0 1C4 0 1 0 0 0
1129+13A0 65.301 0 1 0 0 0
1130+13A0 4A.30C 0 1 0 0 0
1131+13A0 1C5.61 0 1 0 0 0
1132+13A0 AB70 1 0 1 1 1
1133+13A0 13A0 1 0 1 1 1
1134+13A0 E000 0 -1 0 0 0
1135+13A0 61.62.D83D.DE00 0 1 0 0 0
1136+13A0 31.65.33 0 1 0 0 0
1137+13F8 - 0 1 1 1 1
1138+13F8 48.65.6C.6C.6F 0 1 0 0 0
1139+13F8 53.53 0 1 0 0 0
1140+13F8 66.66.69 0 1 0 0 0
1141+13F8 53 0 1 0 0 0
1142+13F8 3C3 0 1 0 0 0
1143+13F8 1C5 0 1 0 0 0
1144+13F8 FF 0 1 0 0 0
1145+13F8 390 0 1 0 0 0
1146+13F8 1C4.61 0 1 0 0 0
1147+13F8 13F8 1 0 1 1 1
1148+13F8 13F0 1 0 1 1 1
1149+13F8 FFFF 0 -1 0 0 0
1150+13F8 41.42.D83D.DE00 0 1 0 0 0
1151+13F8 2D 0 1 0 0 0
1152+13F0 - 0 1 1 1 1
1153+13F0 61 0 1 0 0 0
1154+13F0 68.45.4C.4C.4F 0 1 0 0 0
1155+13F0 73.73 0 1 0 0 0
1156+13F0 131 0 1 0 0 0
1157+13F0 212A 0 -1 0 0 0
1158+13F0 3C2 0 1 0 0 0
1159+13F0 1C6 0 1 0 0 0
1160+13F0 178 0 1 0 0 0
1161+13F0 1FFC 0 -1 0 0 0
1162+13F0 416 0 1 0 0 0
1163+13F0 13F8 1 0 1 1 1
1164+13F0 13F0 1 0 1 1 1
1165+13F0 D83D.DE00 0 -1 0 0 0
1166+13F0 78.2028.79 0 1 0 0 0
1167+13F0 5F 0 1 0 0 0
1168+24D0 - 0 1 1 1 1
1169+24D0 41 0 1 0 0 0
1170+24D0 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
1171+24D0 1E9E 0 1 0 0 0
1172+24D0 49 0 1 0 0 0
1173+24D0 6B 0 1 0 0 0
1174+24D0 3A3 0 1 0 0 0
1175+24D0 1C8 0 1 0 0 0
1176+24D0 B5 0 1 0 0 0
1177+24D0 1FB3 0 1 0 0 0
1178+24D0 436 0 1 0 0 0
1179+24D0 24D0 1 0 1 1 1
1180+24D0 24B6 1 0 1 1 1
1181+24D0 D801.DC00 0 -1 0 0 0
1182+24D0 78.20.79 0 1 0 0 0
1183+24D0 61.2D.62 0 1 0 0 0
1184+24B6 - 0 1 1 1 1
1185+24B6 61.62 0 1 0 0 0
1186+24B6 74.72.75.65 0 1 0 0 0
1187+24B6 149 0 1 0 0 0
1188+24B6 69 0 1 0 0 0
1189+24B6 4B 0 1 0 0 0
1190+24B6 391.3A3 0 1 0 0 0
1191+24B6 1C9 0 1 0 0 0
1192+24B6 3BC 0 1 0 0 0
1193+24B6 1FBC 0 1 0 0 0
1194+24B6 10D0 0 1 0 0 0
1195+24B6 24D0 1 0 1 1 1
1196+24B6 24B6 1 0 1 1 1
1197+24B6 D801.DC28 0 -1 0 0 0
1198+24B6 78.A0.79 0 1 0 0 0
1199+24B6 61.5F.62 0 1 0 0 0
1200+FF41 - 0 1 1 1 1
1201+FF41 41.42 0 1 0 0 0
1202+FF41 54.52.55.45 0 1 0 0 0
1203+FF41 2BC.4E 0 1 0 0 0
1204+FF41 130 0 1 0 0 0
1205+FF41 212B 0 1 0 0 0
1206+FF41 3B1.3C2 0 1 0 0 0
1207+FF41 E9 0 1 0 0 0
1208+FF41 39C 0 1 0 0 0
1209+FF41 E9 0 1 0 0 0
1210+FF41 1C90 0 1 0 0 0
1211+FF41 FF41 1 0 1 1 1
1212+FF41 FF21 1 0 1 1 1
1213+FF41 D801.DC28 0 -1 0 0 0
1214+FF41 30 0 1 0 0 0
1215+FF41 5B.5D 0 1 0 0 0
1216+FF21 - 0 1 1 1 1
1217+FF21 61.62.63 0 1 0 0 0
1218+FF21 6E.75.6C.6C 0 1 0 0 0
1219+FF21 FB03 0 1 0 0 0
1220+FF21 17F 0 1 0 0 0
1221+FF21 E5 0 1 0 0 0
1222+FF21 3B1.3C3 0 1 0 0 0
1223+FF21 C9 0 1 0 0 0
1224+FF21 1F0 0 1 0 0 0
1225+FF21 C9 0 1 0 0 0
1226+FF21 AB70 0 1 0 0 0
1227+FF21 FF41 1 0 1 1 1
1228+FF21 FF21 1 0 1 1 1
1229+FF21 D800.DC00 0 -1 0 0 0
1230+FF21 30.30 0 1 0 0 0
1231+FF21 27 0 1 0 0 0
1232+E000 - 0 1 1 1 1
1233+E000 41.42.43 0 1 0 0 0
1234+E000 DF 0 1 0 0 0
1235+E000 46.46.49 0 1 0 0 0
1236+E000 73 0 1 0 0 0
1237+E000 C5 0 1 0 0 0
1238+E000 1C4 0 1 0 0 0
1239+E000 65.301 0 1 0 0 0
1240+E000 4A.30C 0 1 0 0 0
1241+E000 1C5.61 0 1 0 0 0
1242+E000 13A0 0 1 0 0 0
1243+E000 E000 1 0 1 1 1
1244+E000 61.62.D83D.DE00 0 1 0 0 0
1245+E000 31.65.33 0 1 0 0 0
1246+FFFF - 0 1 1 1 1
1247+FFFF 48.65.6C.6C.6F 0 1 0 0 0
1248+FFFF 53.53 0 1 0 0 0
1249+FFFF 66.66.69 0 1 0 0 0
1250+FFFF 53 0 1 0 0 0
1251+FFFF 3C3 0 1 0 0 0
1252+FFFF 1C5 0 1 0 0 0
1253+FFFF FF 0 1 0 0 0
1254+FFFF 390 0 1 0 0 0
1255+FFFF 1C4.61 0 1 0 0 0
1256+FFFF 13F8 0 1 0 0 0
1257+FFFF FFFF 1 0 1 1 1
1258+FFFF 41.42.D83D.DE00 0 1 0 0 0
1259+FFFF 2D 0 1 0 0 0
1260+D83D.DE00 - 0 1 1 1 1
1261+D83D.DE00 61 0 1 0 0 0
1262+D83D.DE00 68.45.4C.4C.4F 0 1 0 0 0
1263+D83D.DE00 73.73 0 1 0 0 0
1264+D83D.DE00 131 0 1 0 0 0
1265+D83D.DE00 212A 0 1 0 0 0
1266+D83D.DE00 3C2 0 1 0 0 0
1267+D83D.DE00 1C6 0 1 0 0 0
1268+D83D.DE00 178 0 1 0 0 0
1269+D83D.DE00 1FFC 0 1 0 0 0
1270+D83D.DE00 416 0 1 0 0 0
1271+D83D.DE00 13F0 0 1 0 0 0
1272+D83D.DE00 D83D.DE00 1 0 1 1 1
1273+D83D.DE00 78.2028.79 0 1 0 0 0
1274+D83D.DE00 5F 0 1 0 0 0
1275+D801.DC00 - 0 1 1 1 1
1276+D801.DC00 41 0 1 0 0 0
1277+D801.DC00 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
1278+D801.DC00 1E9E 0 1 0 0 0
1279+D801.DC00 49 0 1 0 0 0
1280+D801.DC00 6B 0 1 0 0 0
1281+D801.DC00 3A3 0 1 0 0 0
1282+D801.DC00 1C8 0 1 0 0 0
1283+D801.DC00 B5 0 1 0 0 0
1284+D801.DC00 1FB3 0 1 0 0 0
1285+D801.DC00 436 0 1 0 0 0
1286+D801.DC00 24D0 0 1 0 0 0
1287+D801.DC00 D801.DC00 1 0 1 1 1
1288+D801.DC00 D801.DC28 1 0 1 1 1
1289+D801.DC00 D801.DC28 1 0 1 1 1
1290+D801.DC00 78.20.79 0 1 0 0 0
1291+D801.DC00 61.2D.62 0 1 0 0 0
1292+D801.DC28 - 0 1 1 1 1
1293+D801.DC28 61.62 0 1 0 0 0
1294+D801.DC28 74.72.75.65 0 1 0 0 0
1295+D801.DC28 149 0 1 0 0 0
1296+D801.DC28 69 0 1 0 0 0
1297+D801.DC28 4B 0 1 0 0 0
1298+D801.DC28 391.3A3 0 1 0 0 0
1299+D801.DC28 1C9 0 1 0 0 0
1300+D801.DC28 3BC 0 1 0 0 0
1301+D801.DC28 1FBC 0 1 0 0 0
1302+D801.DC28 10D0 0 1 0 0 0
1303+D801.DC28 24B6 0 1 0 0 0
1304+D801.DC28 D801.DC00 1 0 1 1 1
1305+D801.DC28 D801.DC28 1 0 1 1 1
1306+D801.DC28 D801.DC28 1 0 1 1 1
1307+D801.DC28 78.A0.79 0 1 0 0 0
1308+D801.DC28 61.5F.62 0 1 0 0 0
1309+D801.DC28 - 0 1 1 1 1
1310+D801.DC28 41.42 0 1 0 0 0
1311+D801.DC28 54.52.55.45 0 1 0 0 0
1312+D801.DC28 2BC.4E 0 1 0 0 0
1313+D801.DC28 130 0 1 0 0 0
1314+D801.DC28 212B 0 1 0 0 0
1315+D801.DC28 3B1.3C2 0 1 0 0 0
1316+D801.DC28 E9 0 1 0 0 0
1317+D801.DC28 39C 0 1 0 0 0
1318+D801.DC28 E9 0 1 0 0 0
1319+D801.DC28 1C90 0 1 0 0 0
1320+D801.DC28 FF41 0 1 0 0 0
1321+D801.DC28 D801.DC00 1 0 1 1 1
1322+D801.DC28 D801.DC28 1 0 1 1 1
1323+D801.DC28 D801.DC28 1 0 1 1 1
1324+D801.DC28 30 0 1 0 0 0
1325+D801.DC28 5B.5D 0 1 0 0 0
1326+D800.DC00 - 0 1 1 1 1
1327+D800.DC00 61.62.63 0 1 0 0 0
1328+D800.DC00 6E.75.6C.6C 0 1 0 0 0
1329+D800.DC00 FB03 0 1 0 0 0
1330+D800.DC00 17F 0 1 0 0 0
1331+D800.DC00 E5 0 1 0 0 0
1332+D800.DC00 3B1.3C3 0 1 0 0 0
1333+D800.DC00 C9 0 1 0 0 0
1334+D800.DC00 1F0 0 1 0 0 0
1335+D800.DC00 C9 0 1 0 0 0
1336+D800.DC00 AB70 0 1 0 0 0
1337+D800.DC00 FF21 0 1 0 0 0
1338+D800.DC00 D800.DC00 1 0 1 1 1
1339+D800.DC00 30.30 0 1 0 0 0
1340+D800.DC00 27 0 1 0 0 0
1341+61.62.D83D.DE00 - 0 1 1 1 1
1342+61.62.D83D.DE00 61 0 1 1 1 0
1343+61.62.D83D.DE00 41 0 1 1 1 0
1344+61.62.D83D.DE00 61.62 0 1 1 1 0
1345+61.62.D83D.DE00 41.42 0 1 1 1 0
1346+61.62.D83D.DE00 41.42.43 0 1 0 0 0
1347+61.62.D83D.DE00 DF 0 -1 0 0 0
1348+61.62.D83D.DE00 46.46.49 0 -1 0 0 0
1349+61.62.D83D.DE00 73 0 -1 0 0 0
1350+61.62.D83D.DE00 C5 0 -1 0 0 0
1351+61.62.D83D.DE00 1C4 0 -1 0 0 0
1352+61.62.D83D.DE00 65.301 0 -1 0 0 0
1353+61.62.D83D.DE00 4A.30C 0 -1 0 0 0
1354+61.62.D83D.DE00 1C5.61 0 -1 0 0 0
1355+61.62.D83D.DE00 13A0 0 -1 0 0 0
1356+61.62.D83D.DE00 E000 0 -1 0 0 0
1357+61.62.D83D.DE00 D83D.DE00 0 -1 1 0 1
1358+61.62.D83D.DE00 61.62.D83D.DE00 1 0 1 1 1
1359+61.62.D83D.DE00 41.42.D83D.DE00 1 0 1 1 1
1360+61.62.D83D.DE00 31.65.33 0 1 0 0 0
1361+41.42.D83D.DE00 - 0 1 1 1 1
1362+41.42.D83D.DE00 61 0 1 1 1 0
1363+41.42.D83D.DE00 41 0 1 1 1 0
1364+41.42.D83D.DE00 61.62 0 1 1 1 0
1365+41.42.D83D.DE00 41.42 0 1 1 1 0
1366+41.42.D83D.DE00 48.65.6C.6C.6F 0 -1 0 0 0
1367+41.42.D83D.DE00 53.53 0 -1 0 0 0
1368+41.42.D83D.DE00 66.66.69 0 -1 0 0 0
1369+41.42.D83D.DE00 53 0 -1 0 0 0
1370+41.42.D83D.DE00 3C3 0 -1 0 0 0
1371+41.42.D83D.DE00 1C5 0 -1 0 0 0
1372+41.42.D83D.DE00 FF 0 -1 0 0 0
1373+41.42.D83D.DE00 390 0 -1 0 0 0
1374+41.42.D83D.DE00 1C4.61 0 -1 0 0 0
1375+41.42.D83D.DE00 13F8 0 -1 0 0 0
1376+41.42.D83D.DE00 FFFF 0 -1 0 0 0
1377+41.42.D83D.DE00 D83D.DE00 0 -1 1 0 1
1378+41.42.D83D.DE00 61.62.D83D.DE00 1 0 1 1 1
1379+41.42.D83D.DE00 41.42.D83D.DE00 1 0 1 1 1
1380+41.42.D83D.DE00 2D 0 1 0 0 0
1381+78.2028.79 - 0 1 1 1 1
1382+78.2028.79 61 0 1 0 0 0
1383+78.2028.79 68.45.4C.4C.4F 0 1 0 0 0
1384+78.2028.79 73.73 0 1 0 0 0
1385+78.2028.79 131 0 -1 0 0 0
1386+78.2028.79 212A 0 -1 0 0 0
1387+78.2028.79 3C2 0 -1 0 0 0
1388+78.2028.79 1C6 0 -1 0 0 0
1389+78.2028.79 178 0 -1 0 0 0
1390+78.2028.79 1FFC 0 -1 0 0 0
1391+78.2028.79 416 0 -1 0 0 0
1392+78.2028.79 13F0 0 -1 0 0 0
1393+78.2028.79 D83D.DE00 0 -1 0 0 0
1394+78.2028.79 78.2028.79 1 0 1 1 1
1395+78.2028.79 5F 0 -1 0 0 0
1396+78.20.79 - 0 1 1 1 1
1397+78.20.79 41 0 1 0 0 0
1398+78.20.79 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
1399+78.20.79 1E9E 0 -1 0 0 0
1400+78.20.79 49 0 1 0 0 0
1401+78.20.79 6B 0 1 0 0 0
1402+78.20.79 3A3 0 -1 0 0 0
1403+78.20.79 1C8 0 -1 0 0 0
1404+78.20.79 B5 0 -1 0 0 0
1405+78.20.79 1FB3 0 -1 0 0 0
1406+78.20.79 436 0 -1 0 0 0
1407+78.20.79 24D0 0 -1 0 0 0
1408+78.20.79 D801.DC00 0 -1 0 0 0
1409+78.20.79 78.20.79 1 0 1 1 1
1410+78.20.79 61.2D.62 0 1 0 0 0
1411+78.A0.79 - 0 1 1 1 1
1412+78.A0.79 61.62 0 1 0 0 0
1413+78.A0.79 74.72.75.65 0 1 0 0 0
1414+78.A0.79 149 0 -1 0 0 0
1415+78.A0.79 69 0 1 0 0 0
1416+78.A0.79 4B 0 1 0 0 0
1417+78.A0.79 391.3A3 0 -1 0 0 0
1418+78.A0.79 1C9 0 -1 0 0 0
1419+78.A0.79 3BC 0 -1 0 0 0
1420+78.A0.79 1FBC 0 -1 0 0 0
1421+78.A0.79 10D0 0 -1 0 0 0
1422+78.A0.79 24B6 0 -1 0 0 0
1423+78.A0.79 D801.DC28 0 -1 0 0 0
1424+78.A0.79 78.A0.79 1 0 1 1 1
1425+78.A0.79 61.5F.62 0 1 0 0 0
1426+30 - 0 1 1 1 1
1427+30 41.42 0 -1 0 0 0
1428+30 54.52.55.45 0 -1 0 0 0
1429+30 2BC.4E 0 -1 0 0 0
1430+30 130 0 -1 0 0 0
1431+30 212B 0 -1 0 0 0
1432+30 3B1.3C2 0 -1 0 0 0
1433+30 E9 0 -1 0 0 0
1434+30 39C 0 -1 0 0 0
1435+30 E9 0 -1 0 0 0
1436+30 1C90 0 -1 0 0 0
1437+30 FF41 0 -1 0 0 0
1438+30 D801.DC28 0 -1 0 0 0
1439+30 30 1 0 1 1 1
1440+30 5B.5D 0 -1 0 0 0
1441+30.30 - 0 1 1 1 1
1442+30.30 61.62.63 0 -1 0 0 0
1443+30.30 6E.75.6C.6C 0 -1 0 0 0
1444+30.30 FB03 0 -1 0 0 0
1445+30.30 17F 0 -1 0 0 0
1446+30.30 E5 0 -1 0 0 0
1447+30.30 3B1.3C3 0 -1 0 0 0
1448+30.30 C9 0 -1 0 0 0
1449+30.30 1F0 0 -1 0 0 0
1450+30.30 C9 0 -1 0 0 0
1451+30.30 AB70 0 -1 0 0 0
1452+30.30 FF21 0 -1 0 0 0
1453+30.30 D800.DC00 0 -1 0 0 0
1454+30.30 30 0 1 1 1 1
1455+30.30 30.30 1 0 1 1 1
1456+30.30 27 0 1 0 0 0
1457+31.65.33 - 0 1 1 1 1
1458+31.65.33 41.42.43 0 -1 0 0 0
1459+31.65.33 DF 0 -1 0 0 0
1460+31.65.33 46.46.49 0 -1 0 0 0
1461+31.65.33 73 0 -1 0 0 0
1462+31.65.33 C5 0 -1 0 0 0
1463+31.65.33 1C4 0 -1 0 0 0
1464+31.65.33 65.301 0 -1 0 0 0
1465+31.65.33 4A.30C 0 -1 0 0 0
1466+31.65.33 1C5.61 0 -1 0 0 0
1467+31.65.33 13A0 0 -1 0 0 0
1468+31.65.33 E000 0 -1 0 0 0
1469+31.65.33 61.62.D83D.DE00 0 -1 0 0 0
1470+31.65.33 31.65.33 1 0 1 1 1
1471+2D - 0 1 1 1 1
1472+2D 48.65.6C.6C.6F 0 -1 0 0 0
1473+2D 53.53 0 -1 0 0 0
1474+2D 66.66.69 0 -1 0 0 0
1475+2D 53 0 -1 0 0 0
1476+2D 3C3 0 -1 0 0 0
1477+2D 1C5 0 -1 0 0 0
1478+2D FF 0 -1 0 0 0
1479+2D 390 0 -1 0 0 0
1480+2D 1C4.61 0 -1 0 0 0
1481+2D 13F8 0 -1 0 0 0
1482+2D FFFF 0 -1 0 0 0
1483+2D 41.42.D83D.DE00 0 -1 0 0 0
1484+2D 2D 1 0 1 1 1
1485+5F - 0 1 1 1 1
1486+5F 61 0 1 0 0 0
1487+5F 68.45.4C.4C.4F 0 1 0 0 0
1488+5F 73.73 0 1 0 0 0
1489+5F 131 0 -1 0 0 0
1490+5F 212A 0 -1 0 0 0
1491+5F 3C2 0 -1 0 0 0
1492+5F 1C6 0 -1 0 0 0
1493+5F 178 0 -1 0 0 0
1494+5F 1FFC 0 -1 0 0 0
1495+5F 416 0 -1 0 0 0
1496+5F 13F0 0 -1 0 0 0
1497+5F D83D.DE00 0 -1 0 0 0
1498+5F 78.2028.79 0 1 0 0 0
1499+5F 5F 1 0 1 1 1
1500+61.2D.62 - 0 1 1 1 1
1501+61.2D.62 61 0 1 1 1 0
1502+61.2D.62 41 0 1 1 1 0
1503+61.2D.62 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 -1 0 0 0
1504+61.2D.62 1E9E 0 -1 0 0 0
1505+61.2D.62 49 0 -1 0 0 0
1506+61.2D.62 6B 0 -1 0 0 0
1507+61.2D.62 3A3 0 -1 0 0 0
1508+61.2D.62 1C8 0 -1 0 0 0
1509+61.2D.62 B5 0 -1 0 0 0
1510+61.2D.62 1FB3 0 -1 0 0 0
1511+61.2D.62 436 0 -1 0 0 0
1512+61.2D.62 24D0 0 -1 0 0 0
1513+61.2D.62 D801.DC00 0 -1 0 0 0
1514+61.2D.62 78.20.79 0 -1 0 0 0
1515+61.2D.62 2D 0 1 1 0 0
1516+61.2D.62 61.2D.62 1 0 1 1 1
1517+61.5F.62 - 0 1 1 1 1
1518+61.5F.62 61 0 1 1 1 0
1519+61.5F.62 41 0 1 1 1 0
1520+61.5F.62 61.62 0 1 0 0 0
1521+61.5F.62 74.72.75.65 0 -1 0 0 0
1522+61.5F.62 149 0 -1 0 0 0
1523+61.5F.62 69 0 -1 0 0 0
1524+61.5F.62 4B 0 -1 0 0 0
1525+61.5F.62 391.3A3 0 -1 0 0 0
1526+61.5F.62 1C9 0 -1 0 0 0
1527+61.5F.62 3BC 0 -1 0 0 0
1528+61.5F.62 1FBC 0 -1 0 0 0
1529+61.5F.62 10D0 0 -1 0 0 0
1530+61.5F.62 24B6 0 -1 0 0 0
1531+61.5F.62 D801.DC28 0 -1 0 0 0
1532+61.5F.62 78.A0.79 0 -1 0 0 0
1533+61.5F.62 5F 0 -1 1 0 0
1534+61.5F.62 61.5F.62 1 0 1 1 1
1535+5B.5D - 0 1 1 1 1
1536+5B.5D 41.42 0 1 0 0 0
1537+5B.5D 54.52.55.45 0 1 0 0 0
1538+5B.5D 2BC.4E 0 -1 0 0 0
1539+5B.5D 130 0 -1 0 0 0
1540+5B.5D 212B 0 -1 0 0 0
1541+5B.5D 3B1.3C2 0 -1 0 0 0
1542+5B.5D E9 0 -1 0 0 0
1543+5B.5D 39C 0 -1 0 0 0
1544+5B.5D E9 0 -1 0 0 0
1545+5B.5D 1C90 0 -1 0 0 0
1546+5B.5D FF41 0 -1 0 0 0
1547+5B.5D D801.DC28 0 -1 0 0 0
1548+5B.5D 30 0 1 0 0 0
1549+5B.5D 5B.5D 1 0 1 1 1
1550+27 - 0 1 1 1 1
1551+27 61.62.63 0 -1 0 0 0
1552+27 6E.75.6C.6C 0 -1 0 0 0
1553+27 FB03 0 -1 0 0 0
1554+27 17F 0 -1 0 0 0
1555+27 E5 0 -1 0 0 0
1556+27 3B1.3C3 0 -1 0 0 0
1557+27 C9 0 -1 0 0 0
1558+27 1F0 0 -1 0 0 0
1559+27 C9 0 -1 0 0 0
1560+27 AB70 0 -1 0 0 0
1561+27 FF21 0 -1 0 0 0
1562+27 D800.DC00 0 -1 0 0 0
1563+27 30.30 0 -1 0 0 0
1564+27 27 1 0 1 1 1
@@ -0,0 +1,1564 @@
1+- - 1 0 1 1 1
2+- 48.65.6C.6C.6F 0 -1 0 0 0
3+- 53.53 0 -1 0 0 0
4+- 66.66.69 0 -1 0 0 0
5+- 53 0 -1 0 0 0
6+- 3C3 0 -1 0 0 0
7+- 1C5 0 -1 0 0 0
8+- FF 0 -1 0 0 0
9+- 390 0 -1 0 0 0
10+- 1C4.61 0 -1 0 0 0
11+- 13F8 0 -1 0 0 0
12+- FFFF 0 -1 0 0 0
13+- 41.42.D83D.DE00 0 -1 0 0 0
14+- 2D 0 -1 0 0 0
15+61 - 0 1 1 1 1
16+61 61 1 0 1 1 1
17+61 41 1 0 1 1 1
18+61 68.45.4C.4C.4F 0 -1 0 0 0
19+61 73.73 0 -1 0 0 0
20+61 131 0 -1 0 0 0
21+61 212A 0 -1 0 0 0
22+61 3C2 0 -1 0 0 0
23+61 1C6 0 -1 0 0 0
24+61 178 0 -1 0 0 0
25+61 1FFC 0 -1 0 0 0
26+61 416 0 -1 0 0 0
27+61 13F0 0 -1 0 0 0
28+61 D83D.DE00 0 -1 0 0 0
29+61 78.2028.79 0 -1 0 0 0
30+61 5F 0 -1 0 0 0
31+41 - 0 1 1 1 1
32+41 61 1 0 1 1 1
33+41 41 1 0 1 1 1
34+41 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 -1 0 0 0
35+41 1E9E 0 -1 0 0 0
36+41 49 0 -1 0 0 0
37+41 6B 0 -1 0 0 0
38+41 3A3 0 -1 0 0 0
39+41 1C8 0 -1 0 0 0
40+41 B5 0 -1 0 0 0
41+41 1FB3 0 -1 0 0 0
42+41 436 0 -1 0 0 0
43+41 24D0 0 -1 0 0 0
44+41 D801.DC00 0 -1 0 0 0
45+41 78.20.79 0 -1 0 0 0
46+41 61.2D.62 0 -1 0 0 0
47+61.62 - 0 1 1 1 1
48+61.62 61 0 1 1 1 0
49+61.62 41 0 1 1 1 0
50+61.62 61.62 1 0 1 1 1
51+61.62 41.42 1 0 1 1 1
52+61.62 74.72.75.65 0 -1 0 0 0
53+61.62 149 0 -1 0 0 0
54+61.62 69 0 -1 0 0 0
55+61.62 4B 0 -1 0 0 0
56+61.62 391.3A3 0 -1 0 0 0
57+61.62 1C9 0 -1 0 0 0
58+61.62 3BC 0 -1 0 0 0
59+61.62 1FBC 0 -1 0 0 0
60+61.62 10D0 0 -1 0 0 0
61+61.62 24B6 0 -1 0 0 0
62+61.62 D801.DC28 0 -1 0 0 0
63+61.62 78.A0.79 0 -1 0 0 0
64+61.62 61.5F.62 0 -1 0 0 0
65+41.42 - 0 1 1 1 1
66+41.42 61 0 1 1 1 0
67+41.42 41 0 1 1 1 0
68+41.42 61.62 1 0 1 1 1
69+41.42 41.42 1 0 1 1 1
70+41.42 54.52.55.45 0 -1 0 0 0
71+41.42 2BC.4E 0 -1 0 0 0
72+41.42 130 0 -1 0 0 0
73+41.42 212B 0 -1 0 0 0
74+41.42 3B1.3C2 0 -1 0 0 0
75+41.42 E9 0 -1 0 0 0
76+41.42 39C 0 -1 0 0 0
77+41.42 E9 0 -1 0 0 0
78+41.42 1C90 0 -1 0 0 0
79+41.42 FF41 0 -1 0 0 0
80+41.42 D801.DC28 0 -1 0 0 0
81+41.42 30 0 1 0 0 0
82+41.42 5B.5D 0 -1 0 0 0
83+61.62.63 - 0 1 1 1 1
84+61.62.63 61 0 1 1 1 0
85+61.62.63 41 0 1 1 1 0
86+61.62.63 61.62 0 1 1 1 0
87+61.62.63 41.42 0 1 1 1 0
88+61.62.63 61.62.63 1 0 1 1 1
89+61.62.63 41.42.43 1 0 1 1 1
90+61.62.63 6E.75.6C.6C 0 -1 0 0 0
91+61.62.63 FB03 0 -1 0 0 0
92+61.62.63 17F 0 -1 0 0 0
93+61.62.63 E5 0 -1 0 0 0
94+61.62.63 3B1.3C3 0 -1 0 0 0
95+61.62.63 C9 0 -1 0 0 0
96+61.62.63 1F0 0 -1 0 0 0
97+61.62.63 C9 0 -1 0 0 0
98+61.62.63 AB70 0 -1 0 0 0
99+61.62.63 FF21 0 -1 0 0 0
100+61.62.63 D800.DC00 0 -1 0 0 0
101+61.62.63 30.30 0 1 0 0 0
102+61.62.63 27 0 1 0 0 0
103+41.42.43 - 0 1 1 1 1
104+41.42.43 61 0 1 1 1 0
105+41.42.43 41 0 1 1 1 0
106+41.42.43 61.62 0 1 1 1 0
107+41.42.43 41.42 0 1 1 1 0
108+41.42.43 61.62.63 1 0 1 1 1
109+41.42.43 41.42.43 1 0 1 1 1
110+41.42.43 DF 0 -1 0 0 0
111+41.42.43 46.46.49 0 -1 0 0 0
112+41.42.43 73 0 -1 0 0 0
113+41.42.43 C5 0 -1 0 0 0
114+41.42.43 1C4 0 -1 0 0 0
115+41.42.43 65.301 0 -1 0 0 0
116+41.42.43 4A.30C 0 -1 0 0 0
117+41.42.43 1C5.61 0 -1 0 0 0
118+41.42.43 13A0 0 -1 0 0 0
119+41.42.43 E000 0 -1 0 0 0
120+41.42.43 61.62.D83D.DE00 0 -1 0 0 0
121+41.42.43 31.65.33 0 1 0 0 0
122+48.65.6C.6C.6F - 0 1 1 1 1
123+48.65.6C.6C.6F 48.65.6C.6C.6F 1 0 1 1 1
124+48.65.6C.6C.6F 68.45.4C.4C.4F 1 0 1 1 1
125+48.65.6C.6C.6F 53.53 0 -1 0 0 0
126+48.65.6C.6C.6F 66.66.69 0 1 0 0 0
127+48.65.6C.6C.6F 53 0 -1 0 0 0
128+48.65.6C.6C.6F 3C3 0 -1 0 0 0
129+48.65.6C.6C.6F 1C5 0 -1 0 0 0
130+48.65.6C.6C.6F FF 0 -1 0 0 0
131+48.65.6C.6C.6F 390 0 -1 0 0 0
132+48.65.6C.6C.6F 1C4.61 0 -1 0 0 0
133+48.65.6C.6C.6F 13F8 0 -1 0 0 0
134+48.65.6C.6C.6F FFFF 0 -1 0 0 0
135+48.65.6C.6C.6F 41.42.D83D.DE00 0 1 0 0 0
136+48.65.6C.6C.6F 2D 0 1 0 0 0
137+68.45.4C.4C.4F - 0 1 1 1 1
138+68.45.4C.4C.4F 61 0 1 0 0 0
139+68.45.4C.4C.4F 48.65.6C.6C.6F 1 0 1 1 1
140+68.45.4C.4C.4F 68.45.4C.4C.4F 1 0 1 1 1
141+68.45.4C.4C.4F 73.73 0 -1 0 0 0
142+68.45.4C.4C.4F 131 0 -1 0 0 0
143+68.45.4C.4C.4F 212A 0 -1 0 0 0
144+68.45.4C.4C.4F 3C2 0 -1 0 0 0
145+68.45.4C.4C.4F 1C6 0 -1 0 0 0
146+68.45.4C.4C.4F 178 0 -1 0 0 0
147+68.45.4C.4C.4F 1FFC 0 -1 0 0 0
148+68.45.4C.4C.4F 416 0 -1 0 0 0
149+68.45.4C.4C.4F 13F0 0 -1 0 0 0
150+68.45.4C.4C.4F D83D.DE00 0 -1 0 0 0
151+68.45.4C.4C.4F 78.2028.79 0 -1 0 0 0
152+68.45.4C.4C.4F 5F 0 -1 0 0 0
153+68.65.6C.6C.6F.20.77.6F.72.6C.64 - 0 1 1 1 1
154+68.65.6C.6C.6F.20.77.6F.72.6C.64 41 0 1 0 0 0
155+68.65.6C.6C.6F.20.77.6F.72.6C.64 48.65.6C.6C.6F 0 1 1 1 0
156+68.65.6C.6C.6F.20.77.6F.72.6C.64 68.45.4C.4C.4F 0 1 1 1 0
157+68.65.6C.6C.6F.20.77.6F.72.6C.64 68.65.6C.6C.6F.20.77.6F.72.6C.64 1 0 1 1 1
158+68.65.6C.6C.6F.20.77.6F.72.6C.64 1E9E 0 -1 0 0 0
159+68.65.6C.6C.6F.20.77.6F.72.6C.64 49 0 -1 0 0 0
160+68.65.6C.6C.6F.20.77.6F.72.6C.64 6B 0 -1 0 0 0
161+68.65.6C.6C.6F.20.77.6F.72.6C.64 3A3 0 -1 0 0 0
162+68.65.6C.6C.6F.20.77.6F.72.6C.64 1C8 0 -1 0 0 0
163+68.65.6C.6C.6F.20.77.6F.72.6C.64 B5 0 -1 0 0 0
164+68.65.6C.6C.6F.20.77.6F.72.6C.64 1FB3 0 -1 0 0 0
165+68.65.6C.6C.6F.20.77.6F.72.6C.64 436 0 -1 0 0 0
166+68.65.6C.6C.6F.20.77.6F.72.6C.64 24D0 0 -1 0 0 0
167+68.65.6C.6C.6F.20.77.6F.72.6C.64 D801.DC00 0 -1 0 0 0
168+68.65.6C.6C.6F.20.77.6F.72.6C.64 78.20.79 0 -1 0 0 0
169+68.65.6C.6C.6F.20.77.6F.72.6C.64 61.2D.62 0 1 0 0 0
170+74.72.75.65 - 0 1 1 1 1
171+74.72.75.65 61.62 0 1 0 0 0
172+74.72.75.65 74.72.75.65 1 0 1 1 1
173+74.72.75.65 54.52.55.45 1 0 1 1 1
174+74.72.75.65 149 0 -1 0 0 0
175+74.72.75.65 69 0 1 0 0 0
176+74.72.75.65 4B 0 1 0 0 0
177+74.72.75.65 391.3A3 0 -1 0 0 0
178+74.72.75.65 1C9 0 -1 0 0 0
179+74.72.75.65 3BC 0 -1 0 0 0
180+74.72.75.65 1FBC 0 -1 0 0 0
181+74.72.75.65 10D0 0 -1 0 0 0
182+74.72.75.65 24B6 0 -1 0 0 0
183+74.72.75.65 D801.DC28 0 -1 0 0 0
184+74.72.75.65 78.A0.79 0 -1 0 0 0
185+74.72.75.65 61.5F.62 0 1 0 0 0
186+54.52.55.45 - 0 1 1 1 1
187+54.52.55.45 41.42 0 1 0 0 0
188+54.52.55.45 74.72.75.65 1 0 1 1 1
189+54.52.55.45 54.52.55.45 1 0 1 1 1
190+54.52.55.45 2BC.4E 0 -1 0 0 0
191+54.52.55.45 130 0 -1 0 0 0
192+54.52.55.45 212B 0 -1 0 0 0
193+54.52.55.45 3B1.3C2 0 -1 0 0 0
194+54.52.55.45 E9 0 -1 0 0 0
195+54.52.55.45 39C 0 -1 0 0 0
196+54.52.55.45 E9 0 -1 0 0 0
197+54.52.55.45 1C90 0 -1 0 0 0
198+54.52.55.45 FF41 0 -1 0 0 0
199+54.52.55.45 D801.DC28 0 -1 0 0 0
200+54.52.55.45 30 0 1 0 0 0
201+54.52.55.45 5B.5D 0 -1 0 0 0
202+6E.75.6C.6C - 0 1 1 1 1
203+6E.75.6C.6C 61.62.63 0 1 0 0 0
204+6E.75.6C.6C 6E.75.6C.6C 1 0 1 1 1
205+6E.75.6C.6C FB03 0 -1 0 0 0
206+6E.75.6C.6C 17F 0 -1 0 0 0
207+6E.75.6C.6C E5 0 -1 0 0 0
208+6E.75.6C.6C 3B1.3C3 0 -1 0 0 0
209+6E.75.6C.6C C9 0 -1 0 0 0
210+6E.75.6C.6C 1F0 0 -1 0 0 0
211+6E.75.6C.6C C9 0 -1 0 0 0
212+6E.75.6C.6C AB70 0 -1 0 0 0
213+6E.75.6C.6C FF21 0 -1 0 0 0
214+6E.75.6C.6C D800.DC00 0 -1 0 0 0
215+6E.75.6C.6C 30.30 0 1 0 0 0
216+6E.75.6C.6C 27 0 1 0 0 0
217+DF - 0 1 1 1 1
218+DF 41.42.43 0 1 0 0 0
219+DF DF 1 0 1 1 1
220+DF 46.46.49 0 1 0 0 0
221+DF 73 0 1 0 0 0
222+DF C5 0 1 0 0 0
223+DF 1C4 0 -1 0 0 0
224+DF 65.301 0 1 0 0 0
225+DF 4A.30C 0 1 0 0 0
226+DF 1C5.61 0 -1 0 0 0
227+DF 13A0 0 -1 0 0 0
228+DF E000 0 -1 0 0 0
229+DF 61.62.D83D.DE00 0 1 0 0 0
230+DF 31.65.33 0 1 0 0 0
231+53.53 - 0 1 1 1 1
232+53.53 48.65.6C.6C.6F 0 1 0 0 0
233+53.53 53.53 1 0 1 1 1
234+53.53 73.73 1 0 1 1 1
235+53.53 66.66.69 0 1 0 0 0
236+53.53 73 0 1 1 1 1
237+53.53 53 0 1 1 1 1
238+53.53 3C3 0 -1 0 0 0
239+53.53 1C5 0 -1 0 0 0
240+53.53 FF 0 -1 0 0 0
241+53.53 390 0 -1 0 0 0
242+53.53 1C4.61 0 -1 0 0 0
243+53.53 13F8 0 -1 0 0 0
244+53.53 FFFF 0 -1 0 0 0
245+53.53 41.42.D83D.DE00 0 1 0 0 0
246+53.53 2D 0 1 0 0 0
247+73.73 - 0 1 1 1 1
248+73.73 61 0 1 0 0 0
249+73.73 68.45.4C.4C.4F 0 1 0 0 0
250+73.73 53.53 1 0 1 1 1
251+73.73 73.73 1 0 1 1 1
252+73.73 131 0 -1 0 0 0
253+73.73 73 0 1 1 1 1
254+73.73 53 0 1 1 1 1
255+73.73 212A 0 -1 0 0 0
256+73.73 3C2 0 -1 0 0 0
257+73.73 1C6 0 -1 0 0 0
258+73.73 178 0 -1 0 0 0
259+73.73 1FFC 0 -1 0 0 0
260+73.73 416 0 -1 0 0 0
261+73.73 13F0 0 -1 0 0 0
262+73.73 D83D.DE00 0 -1 0 0 0
263+73.73 78.2028.79 0 -1 0 0 0
264+73.73 5F 0 -1 0 0 0
265+1E9E - 0 1 1 1 1
266+1E9E 41 0 1 0 0 0
267+1E9E 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
268+1E9E 1E9E 1 0 1 1 1
269+1E9E 49 0 1 0 0 0
270+1E9E 6B 0 1 0 0 0
271+1E9E 3A3 0 1 0 0 0
272+1E9E 1C8 0 1 0 0 0
273+1E9E B5 0 1 0 0 0
274+1E9E 1FB3 0 -1 0 0 0
275+1E9E 436 0 1 0 0 0
276+1E9E 24D0 0 -1 0 0 0
277+1E9E D801.DC00 0 -1 0 0 0
278+1E9E 78.20.79 0 1 0 0 0
279+1E9E 61.2D.62 0 1 0 0 0
280+149 - 0 1 1 1 1
281+149 61.62 0 1 0 0 0
282+149 74.72.75.65 0 1 0 0 0
283+149 149 1 0 1 1 1
284+149 69 0 1 0 0 0
285+149 4B 0 1 0 0 0
286+149 391.3A3 0 -1 0 0 0
287+149 1C9 0 -1 0 0 0
288+149 3BC 0 -1 0 0 0
289+149 1FBC 0 -1 0 0 0
290+149 10D0 0 -1 0 0 0
291+149 24B6 0 -1 0 0 0
292+149 D801.DC28 0 -1 0 0 0
293+149 78.A0.79 0 1 0 0 0
294+149 61.5F.62 0 1 0 0 0
295+2BC.4E - 0 1 1 1 1
296+2BC.4E 41.42 0 1 0 0 0
297+2BC.4E 54.52.55.45 0 1 0 0 0
298+2BC.4E 2BC.4E 1 0 1 1 1
299+2BC.4E 130 0 1 0 0 0
300+2BC.4E 212B 0 -1 0 0 0
301+2BC.4E 3B1.3C2 0 -1 0 0 0
302+2BC.4E E9 0 1 0 0 0
303+2BC.4E 39C 0 -1 0 0 0
304+2BC.4E E9 0 1 0 0 0
305+2BC.4E 1C90 0 -1 0 0 0
306+2BC.4E FF41 0 -1 0 0 0
307+2BC.4E D801.DC28 0 -1 0 0 0
308+2BC.4E 30 0 1 0 0 0
309+2BC.4E 5B.5D 0 1 0 0 0
310+FB03 - 0 1 1 1 1
311+FB03 61.62.63 0 1 0 0 0
312+FB03 6E.75.6C.6C 0 1 0 0 0
313+FB03 FB03 1 0 1 1 1
314+FB03 17F 0 1 0 0 0
315+FB03 E5 0 1 0 0 0
316+FB03 3B1.3C3 0 1 0 0 0
317+FB03 C9 0 1 0 0 0
318+FB03 1F0 0 1 0 0 0
319+FB03 C9 0 1 0 0 0
320+FB03 AB70 0 1 0 0 0
321+FB03 FF21 0 -1 0 0 0
322+FB03 D800.DC00 0 -1 0 0 0
323+FB03 30.30 0 1 0 0 0
324+FB03 27 0 1 0 0 0
325+46.46.49 - 0 1 1 1 1
326+46.46.49 41.42.43 0 1 0 0 0
327+46.46.49 DF 0 -1 0 0 0
328+46.46.49 46.46.49 1 0 1 1 1
329+46.46.49 66.66.69 1 0 1 1 1
330+46.46.49 49 0 -1 1 0 1
331+46.46.49 69 0 -1 1 0 1
332+46.46.49 73 0 -1 0 0 0
333+46.46.49 C5 0 -1 0 0 0
334+46.46.49 1C4 0 -1 0 0 0
335+46.46.49 65.301 0 1 0 0 0
336+46.46.49 4A.30C 0 -1 0 0 0
337+46.46.49 1C5.61 0 -1 0 0 0
338+46.46.49 13A0 0 -1 0 0 0
339+46.46.49 E000 0 -1 0 0 0
340+46.46.49 61.62.D83D.DE00 0 1 0 0 0
341+46.46.49 31.65.33 0 1 0 0 0
342+66.66.69 - 0 1 1 1 1
343+66.66.69 48.65.6C.6C.6F 0 -1 0 0 0
344+66.66.69 53.53 0 -1 0 0 0
345+66.66.69 46.46.49 1 0 1 1 1
346+66.66.69 66.66.69 1 0 1 1 1
347+66.66.69 49 0 -1 1 0 1
348+66.66.69 69 0 -1 1 0 1
349+66.66.69 53 0 -1 0 0 0
350+66.66.69 3C3 0 -1 0 0 0
351+66.66.69 1C5 0 -1 0 0 0
352+66.66.69 FF 0 -1 0 0 0
353+66.66.69 390 0 -1 0 0 0
354+66.66.69 1C4.61 0 -1 0 0 0
355+66.66.69 13F8 0 -1 0 0 0
356+66.66.69 FFFF 0 -1 0 0 0
357+66.66.69 41.42.D83D.DE00 0 1 0 0 0
358+66.66.69 2D 0 1 0 0 0
359+131 - 0 1 1 1 1
360+131 61 0 1 0 0 0
361+131 68.45.4C.4C.4F 0 1 0 0 0
362+131 73.73 0 1 0 0 0
363+131 131 1 0 1 1 1
364+131 212A 0 -1 0 0 0
365+131 3C2 0 -1 0 0 0
366+131 1C6 0 -1 0 0 0
367+131 178 0 -1 0 0 0
368+131 1FFC 0 -1 0 0 0
369+131 416 0 -1 0 0 0
370+131 13F0 0 -1 0 0 0
371+131 D83D.DE00 0 -1 0 0 0
372+131 78.2028.79 0 1 0 0 0
373+131 5F 0 1 0 0 0
374+49 - 0 1 1 1 1
375+49 41 0 1 0 0 0
376+49 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
377+49 1E9E 0 -1 0 0 0
378+49 49 1 0 1 1 1
379+49 69 1 0 1 1 1
380+49 6B 0 -1 0 0 0
381+49 3A3 0 -1 0 0 0
382+49 1C8 0 -1 0 0 0
383+49 B5 0 -1 0 0 0
384+49 1FB3 0 -1 0 0 0
385+49 436 0 -1 0 0 0
386+49 24D0 0 -1 0 0 0
387+49 D801.DC00 0 -1 0 0 0
388+49 78.20.79 0 -1 0 0 0
389+49 61.2D.62 0 1 0 0 0
390+69 - 0 1 1 1 1
391+69 61.62 0 1 0 0 0
392+69 74.72.75.65 0 -1 0 0 0
393+69 149 0 -1 0 0 0
394+69 49 1 0 1 1 1
395+69 69 1 0 1 1 1
396+69 4B 0 -1 0 0 0
397+69 391.3A3 0 -1 0 0 0
398+69 1C9 0 -1 0 0 0
399+69 3BC 0 -1 0 0 0
400+69 1FBC 0 -1 0 0 0
401+69 10D0 0 -1 0 0 0
402+69 24B6 0 -1 0 0 0
403+69 D801.DC28 0 -1 0 0 0
404+69 78.A0.79 0 -1 0 0 0
405+69 61.5F.62 0 1 0 0 0
406+130 - 0 1 1 1 1
407+130 41.42 0 1 0 0 0
408+130 54.52.55.45 0 1 0 0 0
409+130 2BC.4E 0 -1 0 0 0
410+130 130 1 0 1 1 1
411+130 212B 0 -1 0 0 0
412+130 3B1.3C2 0 -1 0 0 0
413+130 E9 0 1 0 0 0
414+130 39C 0 -1 0 0 0
415+130 E9 0 1 0 0 0
416+130 1C90 0 -1 0 0 0
417+130 FF41 0 -1 0 0 0
418+130 D801.DC28 0 -1 0 0 0
419+130 30 0 1 0 0 0
420+130 5B.5D 0 1 0 0 0
421+17F - 0 1 1 1 1
422+17F 61.62.63 0 1 0 0 0
423+17F 6E.75.6C.6C 0 1 0 0 0
424+17F FB03 0 -1 0 0 0
425+17F 17F 1 0 1 1 1
426+17F E5 0 1 0 0 0
427+17F 3B1.3C3 0 -1 0 0 0
428+17F C9 0 1 0 0 0
429+17F 1F0 0 -1 0 0 0
430+17F C9 0 1 0 0 0
431+17F AB70 0 -1 0 0 0
432+17F FF21 0 -1 0 0 0
433+17F D800.DC00 0 -1 0 0 0
434+17F 30.30 0 1 0 0 0
435+17F 27 0 1 0 0 0
436+73 - 0 1 1 1 1
437+73 41.42.43 0 1 0 0 0
438+73 DF 0 -1 0 0 0
439+73 46.46.49 0 1 0 0 0
440+73 73 1 0 1 1 1
441+73 53 1 0 1 1 1
442+73 C5 0 -1 0 0 0
443+73 1C4 0 -1 0 0 0
444+73 65.301 0 1 0 0 0
445+73 4A.30C 0 1 0 0 0
446+73 1C5.61 0 -1 0 0 0
447+73 13A0 0 -1 0 0 0
448+73 E000 0 -1 0 0 0
449+73 61.62.D83D.DE00 0 1 0 0 0
450+73 31.65.33 0 1 0 0 0
451+53 - 0 1 1 1 1
452+53 48.65.6C.6C.6F 0 1 0 0 0
453+53 53.53 0 -1 0 0 0
454+53 66.66.69 0 1 0 0 0
455+53 73 1 0 1 1 1
456+53 53 1 0 1 1 1
457+53 3C3 0 -1 0 0 0
458+53 1C5 0 -1 0 0 0
459+53 FF 0 -1 0 0 0
460+53 390 0 -1 0 0 0
461+53 1C4.61 0 -1 0 0 0
462+53 13F8 0 -1 0 0 0
463+53 FFFF 0 -1 0 0 0
464+53 41.42.D83D.DE00 0 1 0 0 0
465+53 2D 0 1 0 0 0
466+212A - 0 1 1 1 1
467+212A 61 0 1 0 0 0
468+212A 68.45.4C.4C.4F 0 1 0 0 0
469+212A 73.73 0 1 0 0 0
470+212A 131 0 1 0 0 0
471+212A 212A 1 0 1 1 1
472+212A 3C2 0 1 0 0 0
473+212A 1C6 0 1 0 0 0
474+212A 178 0 1 0 0 0
475+212A 1FFC 0 1 0 0 0
476+212A 416 0 1 0 0 0
477+212A 13F0 0 1 0 0 0
478+212A D83D.DE00 0 -1 0 0 0
479+212A 78.2028.79 0 1 0 0 0
480+212A 5F 0 1 0 0 0
481+6B - 0 1 1 1 1
482+6B 41 0 1 0 0 0
483+6B 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
484+6B 1E9E 0 -1 0 0 0
485+6B 49 0 1 0 0 0
486+6B 6B 1 0 1 1 1
487+6B 4B 1 0 1 1 1
488+6B 3A3 0 -1 0 0 0
489+6B 1C8 0 -1 0 0 0
490+6B B5 0 -1 0 0 0
491+6B 1FB3 0 -1 0 0 0
492+6B 436 0 -1 0 0 0
493+6B 24D0 0 -1 0 0 0
494+6B D801.DC00 0 -1 0 0 0
495+6B 78.20.79 0 -1 0 0 0
496+6B 61.2D.62 0 1 0 0 0
497+4B - 0 1 1 1 1
498+4B 61.62 0 1 0 0 0
499+4B 74.72.75.65 0 -1 0 0 0
500+4B 149 0 -1 0 0 0
501+4B 69 0 1 0 0 0
502+4B 6B 1 0 1 1 1
503+4B 4B 1 0 1 1 1
504+4B 391.3A3 0 -1 0 0 0
505+4B 1C9 0 -1 0 0 0
506+4B 3BC 0 -1 0 0 0
507+4B 1FBC 0 -1 0 0 0
508+4B 10D0 0 -1 0 0 0
509+4B 24B6 0 -1 0 0 0
510+4B D801.DC28 0 -1 0 0 0
511+4B 78.A0.79 0 -1 0 0 0
512+4B 61.5F.62 0 1 0 0 0
513+212B - 0 1 1 1 1
514+212B 41.42 0 1 0 0 0
515+212B 54.52.55.45 0 1 0 0 0
516+212B 2BC.4E 0 1 0 0 0
517+212B 130 0 1 0 0 0
518+212B 212B 1 0 1 1 1
519+212B 3B1.3C2 0 1 0 0 0
520+212B E9 0 1 0 0 0
521+212B 39C 0 1 0 0 0
522+212B E9 0 1 0 0 0
523+212B 1C90 0 1 0 0 0
524+212B FF41 0 -1 0 0 0
525+212B D801.DC28 0 -1 0 0 0
526+212B 30 0 1 0 0 0
527+212B 5B.5D 0 1 0 0 0
528+E5 - 0 1 1 1 1
529+E5 61.62.63 0 1 0 0 0
530+E5 6E.75.6C.6C 0 1 0 0 0
531+E5 FB03 0 -1 0 0 0
532+E5 17F 0 -1 0 0 0
533+E5 E5 1 0 1 1 1
534+E5 C5 1 0 1 1 1
535+E5 3B1.3C3 0 -1 0 0 0
536+E5 C9 0 -1 0 0 0
537+E5 1F0 0 -1 0 0 0
538+E5 C9 0 -1 0 0 0
539+E5 AB70 0 -1 0 0 0
540+E5 FF21 0 -1 0 0 0
541+E5 D800.DC00 0 -1 0 0 0
542+E5 30.30 0 1 0 0 0
543+E5 27 0 1 0 0 0
544+C5 - 0 1 1 1 1
545+C5 41.42.43 0 1 0 0 0
546+C5 DF 0 -1 0 0 0
547+C5 46.46.49 0 1 0 0 0
548+C5 73 0 1 0 0 0
549+C5 E5 1 0 1 1 1
550+C5 C5 1 0 1 1 1
551+C5 1C4 0 -1 0 0 0
552+C5 65.301 0 1 0 0 0
553+C5 4A.30C 0 1 0 0 0
554+C5 1C5.61 0 -1 0 0 0
555+C5 13A0 0 -1 0 0 0
556+C5 E000 0 -1 0 0 0
557+C5 61.62.D83D.DE00 0 1 0 0 0
558+C5 31.65.33 0 1 0 0 0
559+3C3 - 0 1 1 1 1
560+3C3 48.65.6C.6C.6F 0 1 0 0 0
561+3C3 53.53 0 1 0 0 0
562+3C3 66.66.69 0 1 0 0 0
563+3C3 53 0 1 0 0 0
564+3C3 3C3 1 0 1 1 1
565+3C3 3C2 1 0 1 1 1
566+3C3 3A3 1 0 1 1 1
567+3C3 1C5 0 1 0 0 0
568+3C3 FF 0 1 0 0 0
569+3C3 390 0 1 0 0 0
570+3C3 1C4.61 0 1 0 0 0
571+3C3 13F8 0 -1 0 0 0
572+3C3 FFFF 0 -1 0 0 0
573+3C3 41.42.D83D.DE00 0 1 0 0 0
574+3C3 2D 0 1 0 0 0
575+3C2 - 0 1 1 1 1
576+3C2 61 0 1 0 0 0
577+3C2 68.45.4C.4C.4F 0 1 0 0 0
578+3C2 73.73 0 1 0 0 0
579+3C2 131 0 1 0 0 0
580+3C2 212A 0 -1 0 0 0
581+3C2 3C3 1 0 1 1 1
582+3C2 3C2 1 0 1 1 1
583+3C2 3A3 1 0 1 1 1
584+3C2 1C6 0 1 0 0 0
585+3C2 178 0 1 0 0 0
586+3C2 1FFC 0 -1 0 0 0
587+3C2 416 0 -1 0 0 0
588+3C2 13F0 0 -1 0 0 0
589+3C2 D83D.DE00 0 -1 0 0 0
590+3C2 78.2028.79 0 1 0 0 0
591+3C2 5F 0 1 0 0 0
592+3A3 - 0 1 1 1 1
593+3A3 41 0 1 0 0 0
594+3A3 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
595+3A3 1E9E 0 -1 0 0 0
596+3A3 49 0 1 0 0 0
597+3A3 6B 0 1 0 0 0
598+3A3 3C3 1 0 1 1 1
599+3A3 3C2 1 0 1 1 1
600+3A3 3A3 1 0 1 1 1
601+3A3 1C8 0 1 0 0 0
602+3A3 B5 0 1 0 0 0
603+3A3 1FB3 0 -1 0 0 0
604+3A3 436 0 -1 0 0 0
605+3A3 24D0 0 -1 0 0 0
606+3A3 D801.DC00 0 -1 0 0 0
607+3A3 78.20.79 0 1 0 0 0
608+3A3 61.2D.62 0 1 0 0 0
609+391.3A3 - 0 1 1 1 1
610+391.3A3 61.62 0 1 0 0 0
611+391.3A3 74.72.75.65 0 1 0 0 0
612+391.3A3 149 0 1 0 0 0
613+391.3A3 69 0 1 0 0 0
614+391.3A3 4B 0 1 0 0 0
615+391.3A3 3C3 0 -1 1 0 1
616+391.3A3 3C2 0 -1 1 0 1
617+391.3A3 3A3 0 -1 1 0 1
618+391.3A3 391.3A3 1 0 1 1 1
619+391.3A3 3B1.3C2 1 0 1 1 1
620+391.3A3 3B1.3C3 1 0 1 1 1
621+391.3A3 1C9 0 1 0 0 0
622+391.3A3 3BC 0 -1 0 0 0
623+391.3A3 1FBC 0 -1 0 0 0
624+391.3A3 10D0 0 -1 0 0 0
625+391.3A3 24B6 0 -1 0 0 0
626+391.3A3 D801.DC28 0 -1 0 0 0
627+391.3A3 78.A0.79 0 1 0 0 0
628+391.3A3 61.5F.62 0 1 0 0 0
629+3B1.3C2 - 0 1 1 1 1
630+3B1.3C2 41.42 0 1 0 0 0
631+3B1.3C2 54.52.55.45 0 1 0 0 0
632+3B1.3C2 2BC.4E 0 1 0 0 0
633+3B1.3C2 130 0 1 0 0 0
634+3B1.3C2 212B 0 -1 0 0 0
635+3B1.3C2 3C3 0 -1 1 0 1
636+3B1.3C2 3C2 0 -1 1 0 1
637+3B1.3C2 3A3 0 -1 1 0 1
638+3B1.3C2 391.3A3 1 0 1 1 1
639+3B1.3C2 3B1.3C2 1 0 1 1 1
640+3B1.3C2 3B1.3C3 1 0 1 1 1
641+3B1.3C2 E9 0 1 0 0 0
642+3B1.3C2 39C 0 -1 0 0 0
643+3B1.3C2 E9 0 1 0 0 0
644+3B1.3C2 1C90 0 -1 0 0 0
645+3B1.3C2 FF41 0 -1 0 0 0
646+3B1.3C2 D801.DC28 0 -1 0 0 0
647+3B1.3C2 30 0 1 0 0 0
648+3B1.3C2 5B.5D 0 1 0 0 0
649+3B1.3C3 - 0 1 1 1 1
650+3B1.3C3 61.62.63 0 1 0 0 0
651+3B1.3C3 6E.75.6C.6C 0 1 0 0 0
652+3B1.3C3 FB03 0 -1 0 0 0
653+3B1.3C3 17F 0 1 0 0 0
654+3B1.3C3 E5 0 1 0 0 0
655+3B1.3C3 3C3 0 -1 1 0 1
656+3B1.3C3 3C2 0 -1 1 0 1
657+3B1.3C3 3A3 0 -1 1 0 1
658+3B1.3C3 391.3A3 1 0 1 1 1
659+3B1.3C3 3B1.3C2 1 0 1 1 1
660+3B1.3C3 3B1.3C3 1 0 1 1 1
661+3B1.3C3 C9 0 1 0 0 0
662+3B1.3C3 1F0 0 1 0 0 0
663+3B1.3C3 C9 0 1 0 0 0
664+3B1.3C3 AB70 0 -1 0 0 0
665+3B1.3C3 FF21 0 -1 0 0 0
666+3B1.3C3 D800.DC00 0 -1 0 0 0
667+3B1.3C3 30.30 0 1 0 0 0
668+3B1.3C3 27 0 1 0 0 0
669+1C4 - 0 1 1 1 1
670+1C4 41.42.43 0 1 0 0 0
671+1C4 DF 0 1 0 0 0
672+1C4 46.46.49 0 1 0 0 0
673+1C4 73 0 1 0 0 0
674+1C4 C5 0 1 0 0 0
675+1C4 1C4 1 0 1 1 1
676+1C4 1C5 1 0 1 1 1
677+1C4 1C6 1 0 1 1 1
678+1C4 65.301 0 1 0 0 0
679+1C4 4A.30C 0 1 0 0 0
680+1C4 1C5.61 0 -1 0 0 0
681+1C4 13A0 0 -1 0 0 0
682+1C4 E000 0 -1 0 0 0
683+1C4 61.62.D83D.DE00 0 1 0 0 0
684+1C4 31.65.33 0 1 0 0 0
685+1C5 - 0 1 1 1 1
686+1C5 48.65.6C.6C.6F 0 1 0 0 0
687+1C5 53.53 0 1 0 0 0
688+1C5 66.66.69 0 1 0 0 0
689+1C5 53 0 1 0 0 0
690+1C5 3C3 0 -1 0 0 0
691+1C5 1C4 1 0 1 1 1
692+1C5 1C5 1 0 1 1 1
693+1C5 1C6 1 0 1 1 1
694+1C5 FF 0 1 0 0 0
695+1C5 390 0 -1 0 0 0
696+1C5 1C4.61 0 -1 0 0 0
697+1C5 13F8 0 -1 0 0 0
698+1C5 FFFF 0 -1 0 0 0
699+1C5 41.42.D83D.DE00 0 1 0 0 0
700+1C5 2D 0 1 0 0 0
701+1C6 - 0 1 1 1 1
702+1C6 61 0 1 0 0 0
703+1C6 68.45.4C.4C.4F 0 1 0 0 0
704+1C6 73.73 0 1 0 0 0
705+1C6 131 0 1 0 0 0
706+1C6 212A 0 -1 0 0 0
707+1C6 3C2 0 -1 0 0 0
708+1C6 1C4 1 0 1 1 1
709+1C6 1C5 1 0 1 1 1
710+1C6 1C6 1 0 1 1 1
711+1C6 178 0 1 0 0 0
712+1C6 1FFC 0 -1 0 0 0
713+1C6 416 0 -1 0 0 0
714+1C6 13F0 0 -1 0 0 0
715+1C6 D83D.DE00 0 -1 0 0 0
716+1C6 78.2028.79 0 1 0 0 0
717+1C6 5F 0 1 0 0 0
718+1C8 - 0 1 1 1 1
719+1C8 41 0 1 0 0 0
720+1C8 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
721+1C8 1E9E 0 -1 0 0 0
722+1C8 49 0 1 0 0 0
723+1C8 6B 0 1 0 0 0
724+1C8 3A3 0 -1 0 0 0
725+1C8 1C8 1 0 1 1 1
726+1C8 1C9 1 0 1 1 1
727+1C8 B5 0 -1 0 0 0
728+1C8 1FB3 0 -1 0 0 0
729+1C8 436 0 -1 0 0 0
730+1C8 24D0 0 -1 0 0 0
731+1C8 D801.DC00 0 -1 0 0 0
732+1C8 78.20.79 0 1 0 0 0
733+1C8 61.2D.62 0 1 0 0 0
734+1C9 - 0 1 1 1 1
735+1C9 61.62 0 1 0 0 0
736+1C9 74.72.75.65 0 1 0 0 0
737+1C9 149 0 1 0 0 0
738+1C9 69 0 1 0 0 0
739+1C9 4B 0 1 0 0 0
740+1C9 391.3A3 0 -1 0 0 0
741+1C9 1C8 1 0 1 1 1
742+1C9 1C9 1 0 1 1 1
743+1C9 3BC 0 -1 0 0 0
744+1C9 1FBC 0 -1 0 0 0
745+1C9 10D0 0 -1 0 0 0
746+1C9 24B6 0 -1 0 0 0
747+1C9 D801.DC28 0 -1 0 0 0
748+1C9 78.A0.79 0 1 0 0 0
749+1C9 61.5F.62 0 1 0 0 0
750+E9 - 0 1 1 1 1
751+E9 41.42 0 1 0 0 0
752+E9 54.52.55.45 0 1 0 0 0
753+E9 2BC.4E 0 -1 0 0 0
754+E9 130 0 -1 0 0 0
755+E9 212B 0 -1 0 0 0
756+E9 3B1.3C2 0 -1 0 0 0
757+E9 E9 1 0 1 1 1
758+E9 C9 1 0 1 1 1
759+E9 39C 0 -1 0 0 0
760+E9 E9 1 0 1 1 1
761+E9 C9 1 0 1 1 1
762+E9 1C90 0 -1 0 0 0
763+E9 FF41 0 -1 0 0 0
764+E9 D801.DC28 0 -1 0 0 0
765+E9 30 0 1 0 0 0
766+E9 5B.5D 0 1 0 0 0
767+C9 - 0 1 1 1 1
768+C9 61.62.63 0 1 0 0 0
769+C9 6E.75.6C.6C 0 1 0 0 0
770+C9 FB03 0 -1 0 0 0
771+C9 17F 0 -1 0 0 0
772+C9 E5 0 1 0 0 0
773+C9 3B1.3C3 0 -1 0 0 0
774+C9 E9 1 0 1 1 1
775+C9 C9 1 0 1 1 1
776+C9 1F0 0 -1 0 0 0
777+C9 E9 1 0 1 1 1
778+C9 C9 1 0 1 1 1
779+C9 AB70 0 -1 0 0 0
780+C9 FF21 0 -1 0 0 0
781+C9 D800.DC00 0 -1 0 0 0
782+C9 30.30 0 1 0 0 0
783+C9 27 0 1 0 0 0
784+65.301 - 0 1 1 1 1
785+65.301 41.42.43 0 1 0 0 0
786+65.301 DF 0 -1 0 0 0
787+65.301 46.46.49 0 -1 0 0 0
788+65.301 73 0 -1 0 0 0
789+65.301 C5 0 -1 0 0 0
790+65.301 1C4 0 -1 0 0 0
791+65.301 65.301 1 0 1 1 1
792+65.301 4A.30C 0 -1 0 0 0
793+65.301 1C5.61 0 -1 0 0 0
794+65.301 13A0 0 -1 0 0 0
795+65.301 E000 0 -1 0 0 0
796+65.301 61.62.D83D.DE00 0 1 0 0 0
797+65.301 31.65.33 0 1 0 0 0
798+FF - 0 1 1 1 1
799+FF 48.65.6C.6C.6F 0 1 0 0 0
800+FF 53.53 0 1 0 0 0
801+FF 66.66.69 0 1 0 0 0
802+FF 53 0 1 0 0 0
803+FF 3C3 0 -1 0 0 0
804+FF 1C5 0 -1 0 0 0
805+FF FF 1 0 1 1 1
806+FF 178 1 0 1 1 1
807+FF 390 0 -1 0 0 0
808+FF 1C4.61 0 -1 0 0 0
809+FF 13F8 0 -1 0 0 0
810+FF FFFF 0 -1 0 0 0
811+FF 41.42.D83D.DE00 0 1 0 0 0
812+FF 2D 0 1 0 0 0
813+178 - 0 1 1 1 1
814+178 61 0 1 0 0 0
815+178 68.45.4C.4C.4F 0 1 0 0 0
816+178 73.73 0 1 0 0 0
817+178 131 0 1 0 0 0
818+178 212A 0 -1 0 0 0
819+178 3C2 0 -1 0 0 0
820+178 1C6 0 -1 0 0 0
821+178 FF 1 0 1 1 1
822+178 178 1 0 1 1 1
823+178 1FFC 0 -1 0 0 0
824+178 416 0 -1 0 0 0
825+178 13F0 0 -1 0 0 0
826+178 D83D.DE00 0 -1 0 0 0
827+178 78.2028.79 0 1 0 0 0
828+178 5F 0 1 0 0 0
829+B5 - 0 1 1 1 1
830+B5 41 0 1 0 0 0
831+B5 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
832+B5 1E9E 0 -1 0 0 0
833+B5 49 0 1 0 0 0
834+B5 6B 0 1 0 0 0
835+B5 3A3 0 -1 0 0 0
836+B5 1C8 0 1 0 0 0
837+B5 B5 1 0 1 1 1
838+B5 3BC 1 0 1 1 1
839+B5 39C 1 0 1 1 1
840+B5 1FB3 0 -1 0 0 0
841+B5 436 0 -1 0 0 0
842+B5 24D0 0 -1 0 0 0
843+B5 D801.DC00 0 -1 0 0 0
844+B5 78.20.79 0 1 0 0 0
845+B5 61.2D.62 0 1 0 0 0
846+3BC - 0 1 1 1 1
847+3BC 61.62 0 1 0 0 0
848+3BC 74.72.75.65 0 1 0 0 0
849+3BC 149 0 1 0 0 0
850+3BC 69 0 1 0 0 0
851+3BC 4B 0 1 0 0 0
852+3BC 391.3A3 0 1 0 0 0
853+3BC 1C9 0 1 0 0 0
854+3BC B5 1 0 1 1 1
855+3BC 3BC 1 0 1 1 1
856+3BC 39C 1 0 1 1 1
857+3BC 1FBC 0 -1 0 0 0
858+3BC 10D0 0 -1 0 0 0
859+3BC 24B6 0 -1 0 0 0
860+3BC D801.DC28 0 -1 0 0 0
861+3BC 78.A0.79 0 1 0 0 0
862+3BC 61.5F.62 0 1 0 0 0
863+39C - 0 1 1 1 1
864+39C 41.42 0 1 0 0 0
865+39C 54.52.55.45 0 1 0 0 0
866+39C 2BC.4E 0 1 0 0 0
867+39C 130 0 1 0 0 0
868+39C 212B 0 -1 0 0 0
869+39C 3B1.3C2 0 1 0 0 0
870+39C E9 0 1 0 0 0
871+39C B5 1 0 1 1 1
872+39C 3BC 1 0 1 1 1
873+39C 39C 1 0 1 1 1
874+39C E9 0 1 0 0 0
875+39C 1C90 0 -1 0 0 0
876+39C FF41 0 -1 0 0 0
877+39C D801.DC28 0 -1 0 0 0
878+39C 30 0 1 0 0 0
879+39C 5B.5D 0 1 0 0 0
880+1F0 - 0 1 1 1 1
881+1F0 61.62.63 0 1 0 0 0
882+1F0 6E.75.6C.6C 0 1 0 0 0
883+1F0 FB03 0 -1 0 0 0
884+1F0 17F 0 1 0 0 0
885+1F0 E5 0 1 0 0 0
886+1F0 3B1.3C3 0 -1 0 0 0
887+1F0 C9 0 1 0 0 0
888+1F0 1F0 1 0 1 1 1
889+1F0 C9 0 1 0 0 0
890+1F0 AB70 0 -1 0 0 0
891+1F0 FF21 0 -1 0 0 0
892+1F0 D800.DC00 0 -1 0 0 0
893+1F0 30.30 0 1 0 0 0
894+1F0 27 0 1 0 0 0
895+4A.30C - 0 1 1 1 1
896+4A.30C 41.42.43 0 1 0 0 0
897+4A.30C DF 0 -1 0 0 0
898+4A.30C 46.46.49 0 1 0 0 0
899+4A.30C 73 0 -1 0 0 0
900+4A.30C C5 0 -1 0 0 0
901+4A.30C 1C4 0 -1 0 0 0
902+4A.30C 65.301 0 1 0 0 0
903+4A.30C 4A.30C 1 0 1 1 1
904+4A.30C 1C5.61 0 -1 0 0 0
905+4A.30C 13A0 0 -1 0 0 0
906+4A.30C E000 0 -1 0 0 0
907+4A.30C 61.62.D83D.DE00 0 1 0 0 0
908+4A.30C 31.65.33 0 1 0 0 0
909+390 - 0 1 1 1 1
910+390 48.65.6C.6C.6F 0 1 0 0 0
911+390 53.53 0 1 0 0 0
912+390 66.66.69 0 1 0 0 0
913+390 53 0 1 0 0 0
914+390 3C3 0 -1 0 0 0
915+390 1C5 0 1 0 0 0
916+390 FF 0 1 0 0 0
917+390 390 1 0 1 1 1
918+390 1C4.61 0 1 0 0 0
919+390 13F8 0 -1 0 0 0
920+390 FFFF 0 -1 0 0 0
921+390 41.42.D83D.DE00 0 1 0 0 0
922+390 2D 0 1 0 0 0
923+1FFC - 0 1 1 1 1
924+1FFC 61 0 1 0 0 0
925+1FFC 68.45.4C.4C.4F 0 1 0 0 0
926+1FFC 73.73 0 1 0 0 0
927+1FFC 131 0 1 0 0 0
928+1FFC 212A 0 -1 0 0 0
929+1FFC 3C2 0 1 0 0 0
930+1FFC 1C6 0 1 0 0 0
931+1FFC 178 0 1 0 0 0
932+1FFC 1FFC 1 0 1 1 1
933+1FFC 416 0 1 0 0 0
934+1FFC 13F0 0 1 0 0 0
935+1FFC D83D.DE00 0 -1 0 0 0
936+1FFC 78.2028.79 0 1 0 0 0
937+1FFC 5F 0 1 0 0 0
938+1FB3 - 0 1 1 1 1
939+1FB3 41 0 1 0 0 0
940+1FB3 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
941+1FB3 1E9E 0 1 0 0 0
942+1FB3 49 0 1 0 0 0
943+1FB3 6B 0 1 0 0 0
944+1FB3 3A3 0 1 0 0 0
945+1FB3 1C8 0 1 0 0 0
946+1FB3 B5 0 1 0 0 0
947+1FB3 1FB3 1 0 1 1 1
948+1FB3 1FBC 1 0 1 1 1
949+1FB3 436 0 1 0 0 0
950+1FB3 24D0 0 -1 0 0 0
951+1FB3 D801.DC00 0 -1 0 0 0
952+1FB3 78.20.79 0 1 0 0 0
953+1FB3 61.2D.62 0 1 0 0 0
954+1FBC - 0 1 1 1 1
955+1FBC 61.62 0 1 0 0 0
956+1FBC 74.72.75.65 0 1 0 0 0
957+1FBC 149 0 1 0 0 0
958+1FBC 69 0 1 0 0 0
959+1FBC 4B 0 1 0 0 0
960+1FBC 391.3A3 0 1 0 0 0
961+1FBC 1C9 0 1 0 0 0
962+1FBC 3BC 0 1 0 0 0
963+1FBC 1FB3 1 0 1 1 1
964+1FBC 1FBC 1 0 1 1 1
965+1FBC 10D0 0 1 0 0 0
966+1FBC 24B6 0 -1 0 0 0
967+1FBC D801.DC28 0 -1 0 0 0
968+1FBC 78.A0.79 0 1 0 0 0
969+1FBC 61.5F.62 0 1 0 0 0
970+E9 - 0 1 1 1 1
971+E9 41.42 0 1 0 0 0
972+E9 54.52.55.45 0 1 0 0 0
973+E9 2BC.4E 0 -1 0 0 0
974+E9 130 0 -1 0 0 0
975+E9 212B 0 -1 0 0 0
976+E9 3B1.3C2 0 -1 0 0 0
977+E9 E9 1 0 1 1 1
978+E9 C9 1 0 1 1 1
979+E9 39C 0 -1 0 0 0
980+E9 E9 1 0 1 1 1
981+E9 C9 1 0 1 1 1
982+E9 1C90 0 -1 0 0 0
983+E9 FF41 0 -1 0 0 0
984+E9 D801.DC28 0 -1 0 0 0
985+E9 30 0 1 0 0 0
986+E9 5B.5D 0 1 0 0 0
987+C9 - 0 1 1 1 1
988+C9 61.62.63 0 1 0 0 0
989+C9 6E.75.6C.6C 0 1 0 0 0
990+C9 FB03 0 -1 0 0 0
991+C9 17F 0 -1 0 0 0
992+C9 E5 0 1 0 0 0
993+C9 3B1.3C3 0 -1 0 0 0
994+C9 E9 1 0 1 1 1
995+C9 C9 1 0 1 1 1
996+C9 1F0 0 -1 0 0 0
997+C9 E9 1 0 1 1 1
998+C9 C9 1 0 1 1 1
999+C9 AB70 0 -1 0 0 0
1000+C9 FF21 0 -1 0 0 0
1001+C9 D800.DC00 0 -1 0 0 0
1002+C9 30.30 0 1 0 0 0
1003+C9 27 0 1 0 0 0
1004+1C5.61 - 0 1 1 1 1
1005+1C5.61 61 0 1 1 0 1
1006+1C5.61 41 0 1 1 0 1
1007+1C5.61 41.42.43 0 1 0 0 0
1008+1C5.61 DF 0 1 0 0 0
1009+1C5.61 46.46.49 0 1 0 0 0
1010+1C5.61 73 0 1 0 0 0
1011+1C5.61 C5 0 1 0 0 0
1012+1C5.61 1C4 0 1 1 1 0
1013+1C5.61 1C5 0 1 1 1 0
1014+1C5.61 1C6 0 1 1 1 0
1015+1C5.61 65.301 0 1 0 0 0
1016+1C5.61 4A.30C 0 1 0 0 0
1017+1C5.61 1C5.61 1 0 1 1 1
1018+1C5.61 1C4.61 1 0 1 1 1
1019+1C5.61 13A0 0 -1 0 0 0
1020+1C5.61 E000 0 -1 0 0 0
1021+1C5.61 61.62.D83D.DE00 0 1 0 0 0
1022+1C5.61 31.65.33 0 1 0 0 0
1023+1C4.61 - 0 1 1 1 1
1024+1C4.61 61 0 1 1 0 1
1025+1C4.61 41 0 1 1 0 1
1026+1C4.61 48.65.6C.6C.6F 0 1 0 0 0
1027+1C4.61 53.53 0 1 0 0 0
1028+1C4.61 66.66.69 0 1 0 0 0
1029+1C4.61 53 0 1 0 0 0
1030+1C4.61 3C3 0 -1 0 0 0
1031+1C4.61 1C4 0 1 1 1 0
1032+1C4.61 1C5 0 1 1 1 0
1033+1C4.61 1C6 0 1 1 1 0
1034+1C4.61 FF 0 1 0 0 0
1035+1C4.61 390 0 -1 0 0 0
1036+1C4.61 1C5.61 1 0 1 1 1
1037+1C4.61 1C4.61 1 0 1 1 1
1038+1C4.61 13F8 0 -1 0 0 0
1039+1C4.61 FFFF 0 -1 0 0 0
1040+1C4.61 41.42.D83D.DE00 0 1 0 0 0
1041+1C4.61 2D 0 1 0 0 0
1042+416 - 0 1 1 1 1
1043+416 61 0 1 0 0 0
1044+416 68.45.4C.4C.4F 0 1 0 0 0
1045+416 73.73 0 1 0 0 0
1046+416 131 0 1 0 0 0
1047+416 212A 0 -1 0 0 0
1048+416 3C2 0 1 0 0 0
1049+416 1C6 0 1 0 0 0
1050+416 178 0 1 0 0 0
1051+416 1FFC 0 -1 0 0 0
1052+416 416 1 0 1 1 1
1053+416 436 1 0 1 1 1
1054+416 13F0 0 -1 0 0 0
1055+416 D83D.DE00 0 -1 0 0 0
1056+416 78.2028.79 0 1 0 0 0
1057+416 5F 0 1 0 0 0
1058+436 - 0 1 1 1 1
1059+436 41 0 1 0 0 0
1060+436 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
1061+436 1E9E 0 -1 0 0 0
1062+436 49 0 1 0 0 0
1063+436 6B 0 1 0 0 0
1064+436 3A3 0 1 0 0 0
1065+436 1C8 0 1 0 0 0
1066+436 B5 0 1 0 0 0
1067+436 1FB3 0 -1 0 0 0
1068+436 416 1 0 1 1 1
1069+436 436 1 0 1 1 1
1070+436 24D0 0 -1 0 0 0
1071+436 D801.DC00 0 -1 0 0 0
1072+436 78.20.79 0 1 0 0 0
1073+436 61.2D.62 0 1 0 0 0
1074+10D0 - 0 1 1 1 1
1075+10D0 61.62 0 1 0 0 0
1076+10D0 74.72.75.65 0 1 0 0 0
1077+10D0 149 0 1 0 0 0
1078+10D0 69 0 1 0 0 0
1079+10D0 4B 0 1 0 0 0
1080+10D0 391.3A3 0 1 0 0 0
1081+10D0 1C9 0 1 0 0 0
1082+10D0 3BC 0 1 0 0 0
1083+10D0 1FBC 0 -1 0 0 0
1084+10D0 10D0 1 0 1 1 1
1085+10D0 1C90 1 0 1 1 1
1086+10D0 24B6 0 -1 0 0 0
1087+10D0 D801.DC28 0 -1 0 0 0
1088+10D0 78.A0.79 0 1 0 0 0
1089+10D0 61.5F.62 0 1 0 0 0
1090+1C90 - 0 1 1 1 1
1091+1C90 41.42 0 1 0 0 0
1092+1C90 54.52.55.45 0 1 0 0 0
1093+1C90 2BC.4E 0 1 0 0 0
1094+1C90 130 0 1 0 0 0
1095+1C90 212B 0 -1 0 0 0
1096+1C90 3B1.3C2 0 1 0 0 0
1097+1C90 E9 0 1 0 0 0
1098+1C90 39C 0 1 0 0 0
1099+1C90 E9 0 1 0 0 0
1100+1C90 10D0 1 0 1 1 1
1101+1C90 1C90 1 0 1 1 1
1102+1C90 FF41 0 -1 0 0 0
1103+1C90 D801.DC28 0 -1 0 0 0
1104+1C90 30 0 1 0 0 0
1105+1C90 5B.5D 0 1 0 0 0
1106+AB70 - 0 1 1 1 1
1107+AB70 61.62.63 0 1 0 0 0
1108+AB70 6E.75.6C.6C 0 1 0 0 0
1109+AB70 FB03 0 -1 0 0 0
1110+AB70 17F 0 1 0 0 0
1111+AB70 E5 0 1 0 0 0
1112+AB70 3B1.3C3 0 1 0 0 0
1113+AB70 C9 0 1 0 0 0
1114+AB70 1F0 0 1 0 0 0
1115+AB70 C9 0 1 0 0 0
1116+AB70 AB70 1 0 1 1 1
1117+AB70 13A0 1 0 1 1 1
1118+AB70 FF21 0 -1 0 0 0
1119+AB70 D800.DC00 0 -1 0 0 0
1120+AB70 30.30 0 1 0 0 0
1121+AB70 27 0 1 0 0 0
1122+13A0 - 0 1 1 1 1
1123+13A0 41.42.43 0 1 0 0 0
1124+13A0 DF 0 1 0 0 0
1125+13A0 46.46.49 0 1 0 0 0
1126+13A0 73 0 1 0 0 0
1127+13A0 C5 0 1 0 0 0
1128+13A0 1C4 0 1 0 0 0
1129+13A0 65.301 0 1 0 0 0
1130+13A0 4A.30C 0 1 0 0 0
1131+13A0 1C5.61 0 1 0 0 0
1132+13A0 AB70 1 0 1 1 1
1133+13A0 13A0 1 0 1 1 1
1134+13A0 E000 0 -1 0 0 0
1135+13A0 61.62.D83D.DE00 0 1 0 0 0
1136+13A0 31.65.33 0 1 0 0 0
1137+13F8 - 0 1 1 1 1
1138+13F8 48.65.6C.6C.6F 0 1 0 0 0
1139+13F8 53.53 0 1 0 0 0
1140+13F8 66.66.69 0 1 0 0 0
1141+13F8 53 0 1 0 0 0
1142+13F8 3C3 0 1 0 0 0
1143+13F8 1C5 0 1 0 0 0
1144+13F8 FF 0 1 0 0 0
1145+13F8 390 0 1 0 0 0
1146+13F8 1C4.61 0 1 0 0 0
1147+13F8 13F8 1 0 1 1 1
1148+13F8 13F0 1 0 1 1 1
1149+13F8 FFFF 0 -1 0 0 0
1150+13F8 41.42.D83D.DE00 0 1 0 0 0
1151+13F8 2D 0 1 0 0 0
1152+13F0 - 0 1 1 1 1
1153+13F0 61 0 1 0 0 0
1154+13F0 68.45.4C.4C.4F 0 1 0 0 0
1155+13F0 73.73 0 1 0 0 0
1156+13F0 131 0 1 0 0 0
1157+13F0 212A 0 -1 0 0 0
1158+13F0 3C2 0 1 0 0 0
1159+13F0 1C6 0 1 0 0 0
1160+13F0 178 0 1 0 0 0
1161+13F0 1FFC 0 -1 0 0 0
1162+13F0 416 0 1 0 0 0
1163+13F0 13F8 1 0 1 1 1
1164+13F0 13F0 1 0 1 1 1
1165+13F0 D83D.DE00 0 -1 0 0 0
1166+13F0 78.2028.79 0 1 0 0 0
1167+13F0 5F 0 1 0 0 0
1168+24D0 - 0 1 1 1 1
1169+24D0 41 0 1 0 0 0
1170+24D0 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
1171+24D0 1E9E 0 1 0 0 0
1172+24D0 49 0 1 0 0 0
1173+24D0 6B 0 1 0 0 0
1174+24D0 3A3 0 1 0 0 0
1175+24D0 1C8 0 1 0 0 0
1176+24D0 B5 0 1 0 0 0
1177+24D0 1FB3 0 1 0 0 0
1178+24D0 436 0 1 0 0 0
1179+24D0 24D0 1 0 1 1 1
1180+24D0 24B6 1 0 1 1 1
1181+24D0 D801.DC00 0 -1 0 0 0
1182+24D0 78.20.79 0 1 0 0 0
1183+24D0 61.2D.62 0 1 0 0 0
1184+24B6 - 0 1 1 1 1
1185+24B6 61.62 0 1 0 0 0
1186+24B6 74.72.75.65 0 1 0 0 0
1187+24B6 149 0 1 0 0 0
1188+24B6 69 0 1 0 0 0
1189+24B6 4B 0 1 0 0 0
1190+24B6 391.3A3 0 1 0 0 0
1191+24B6 1C9 0 1 0 0 0
1192+24B6 3BC 0 1 0 0 0
1193+24B6 1FBC 0 1 0 0 0
1194+24B6 10D0 0 1 0 0 0
1195+24B6 24D0 1 0 1 1 1
1196+24B6 24B6 1 0 1 1 1
1197+24B6 D801.DC28 0 -1 0 0 0
1198+24B6 78.A0.79 0 1 0 0 0
1199+24B6 61.5F.62 0 1 0 0 0
1200+FF41 - 0 1 1 1 1
1201+FF41 41.42 0 1 0 0 0
1202+FF41 54.52.55.45 0 1 0 0 0
1203+FF41 2BC.4E 0 1 0 0 0
1204+FF41 130 0 1 0 0 0
1205+FF41 212B 0 1 0 0 0
1206+FF41 3B1.3C2 0 1 0 0 0
1207+FF41 E9 0 1 0 0 0
1208+FF41 39C 0 1 0 0 0
1209+FF41 E9 0 1 0 0 0
1210+FF41 1C90 0 1 0 0 0
1211+FF41 FF41 1 0 1 1 1
1212+FF41 FF21 1 0 1 1 1
1213+FF41 D801.DC28 0 -1 0 0 0
1214+FF41 30 0 1 0 0 0
1215+FF41 5B.5D 0 1 0 0 0
1216+FF21 - 0 1 1 1 1
1217+FF21 61.62.63 0 1 0 0 0
1218+FF21 6E.75.6C.6C 0 1 0 0 0
1219+FF21 FB03 0 1 0 0 0
1220+FF21 17F 0 1 0 0 0
1221+FF21 E5 0 1 0 0 0
1222+FF21 3B1.3C3 0 1 0 0 0
1223+FF21 C9 0 1 0 0 0
1224+FF21 1F0 0 1 0 0 0
1225+FF21 C9 0 1 0 0 0
1226+FF21 AB70 0 1 0 0 0
1227+FF21 FF41 1 0 1 1 1
1228+FF21 FF21 1 0 1 1 1
1229+FF21 D800.DC00 0 -1 0 0 0
1230+FF21 30.30 0 1 0 0 0
1231+FF21 27 0 1 0 0 0
1232+E000 - 0 1 1 1 1
1233+E000 41.42.43 0 1 0 0 0
1234+E000 DF 0 1 0 0 0
1235+E000 46.46.49 0 1 0 0 0
1236+E000 73 0 1 0 0 0
1237+E000 C5 0 1 0 0 0
1238+E000 1C4 0 1 0 0 0
1239+E000 65.301 0 1 0 0 0
1240+E000 4A.30C 0 1 0 0 0
1241+E000 1C5.61 0 1 0 0 0
1242+E000 13A0 0 1 0 0 0
1243+E000 E000 1 0 1 1 1
1244+E000 61.62.D83D.DE00 0 1 0 0 0
1245+E000 31.65.33 0 1 0 0 0
1246+FFFF - 0 1 1 1 1
1247+FFFF 48.65.6C.6C.6F 0 1 0 0 0
1248+FFFF 53.53 0 1 0 0 0
1249+FFFF 66.66.69 0 1 0 0 0
1250+FFFF 53 0 1 0 0 0
1251+FFFF 3C3 0 1 0 0 0
1252+FFFF 1C5 0 1 0 0 0
1253+FFFF FF 0 1 0 0 0
1254+FFFF 390 0 1 0 0 0
1255+FFFF 1C4.61 0 1 0 0 0
1256+FFFF 13F8 0 1 0 0 0
1257+FFFF FFFF 1 0 1 1 1
1258+FFFF 41.42.D83D.DE00 0 1 0 0 0
1259+FFFF 2D 0 1 0 0 0
1260+D83D.DE00 - 0 1 1 1 1
1261+D83D.DE00 61 0 1 0 0 0
1262+D83D.DE00 68.45.4C.4C.4F 0 1 0 0 0
1263+D83D.DE00 73.73 0 1 0 0 0
1264+D83D.DE00 131 0 1 0 0 0
1265+D83D.DE00 212A 0 1 0 0 0
1266+D83D.DE00 3C2 0 1 0 0 0
1267+D83D.DE00 1C6 0 1 0 0 0
1268+D83D.DE00 178 0 1 0 0 0
1269+D83D.DE00 1FFC 0 1 0 0 0
1270+D83D.DE00 416 0 1 0 0 0
1271+D83D.DE00 13F0 0 1 0 0 0
1272+D83D.DE00 D83D.DE00 1 0 1 1 1
1273+D83D.DE00 78.2028.79 0 1 0 0 0
1274+D83D.DE00 5F 0 1 0 0 0
1275+D801.DC00 - 0 1 1 1 1
1276+D801.DC00 41 0 1 0 0 0
1277+D801.DC00 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
1278+D801.DC00 1E9E 0 1 0 0 0
1279+D801.DC00 49 0 1 0 0 0
1280+D801.DC00 6B 0 1 0 0 0
1281+D801.DC00 3A3 0 1 0 0 0
1282+D801.DC00 1C8 0 1 0 0 0
1283+D801.DC00 B5 0 1 0 0 0
1284+D801.DC00 1FB3 0 1 0 0 0
1285+D801.DC00 436 0 1 0 0 0
1286+D801.DC00 24D0 0 1 0 0 0
1287+D801.DC00 D801.DC00 1 0 1 1 1
1288+D801.DC00 D801.DC28 1 0 1 1 1
1289+D801.DC00 D801.DC28 1 0 1 1 1
1290+D801.DC00 78.20.79 0 1 0 0 0
1291+D801.DC00 61.2D.62 0 1 0 0 0
1292+D801.DC28 - 0 1 1 1 1
1293+D801.DC28 61.62 0 1 0 0 0
1294+D801.DC28 74.72.75.65 0 1 0 0 0
1295+D801.DC28 149 0 1 0 0 0
1296+D801.DC28 69 0 1 0 0 0
1297+D801.DC28 4B 0 1 0 0 0
1298+D801.DC28 391.3A3 0 1 0 0 0
1299+D801.DC28 1C9 0 1 0 0 0
1300+D801.DC28 3BC 0 1 0 0 0
1301+D801.DC28 1FBC 0 1 0 0 0
1302+D801.DC28 10D0 0 1 0 0 0
1303+D801.DC28 24B6 0 1 0 0 0
1304+D801.DC28 D801.DC00 1 0 1 1 1
1305+D801.DC28 D801.DC28 1 0 1 1 1
1306+D801.DC28 D801.DC28 1 0 1 1 1
1307+D801.DC28 78.A0.79 0 1 0 0 0
1308+D801.DC28 61.5F.62 0 1 0 0 0
1309+D801.DC28 - 0 1 1 1 1
1310+D801.DC28 41.42 0 1 0 0 0
1311+D801.DC28 54.52.55.45 0 1 0 0 0
1312+D801.DC28 2BC.4E 0 1 0 0 0
1313+D801.DC28 130 0 1 0 0 0
1314+D801.DC28 212B 0 1 0 0 0
1315+D801.DC28 3B1.3C2 0 1 0 0 0
1316+D801.DC28 E9 0 1 0 0 0
1317+D801.DC28 39C 0 1 0 0 0
1318+D801.DC28 E9 0 1 0 0 0
1319+D801.DC28 1C90 0 1 0 0 0
1320+D801.DC28 FF41 0 1 0 0 0
1321+D801.DC28 D801.DC00 1 0 1 1 1
1322+D801.DC28 D801.DC28 1 0 1 1 1
1323+D801.DC28 D801.DC28 1 0 1 1 1
1324+D801.DC28 30 0 1 0 0 0
1325+D801.DC28 5B.5D 0 1 0 0 0
1326+D800.DC00 - 0 1 1 1 1
1327+D800.DC00 61.62.63 0 1 0 0 0
1328+D800.DC00 6E.75.6C.6C 0 1 0 0 0
1329+D800.DC00 FB03 0 1 0 0 0
1330+D800.DC00 17F 0 1 0 0 0
1331+D800.DC00 E5 0 1 0 0 0
1332+D800.DC00 3B1.3C3 0 1 0 0 0
1333+D800.DC00 C9 0 1 0 0 0
1334+D800.DC00 1F0 0 1 0 0 0
1335+D800.DC00 C9 0 1 0 0 0
1336+D800.DC00 AB70 0 1 0 0 0
1337+D800.DC00 FF21 0 1 0 0 0
1338+D800.DC00 D800.DC00 1 0 1 1 1
1339+D800.DC00 30.30 0 1 0 0 0
1340+D800.DC00 27 0 1 0 0 0
1341+61.62.D83D.DE00 - 0 1 1 1 1
1342+61.62.D83D.DE00 61 0 1 1 1 0
1343+61.62.D83D.DE00 41 0 1 1 1 0
1344+61.62.D83D.DE00 61.62 0 1 1 1 0
1345+61.62.D83D.DE00 41.42 0 1 1 1 0
1346+61.62.D83D.DE00 41.42.43 0 1 0 0 0
1347+61.62.D83D.DE00 DF 0 -1 0 0 0
1348+61.62.D83D.DE00 46.46.49 0 -1 0 0 0
1349+61.62.D83D.DE00 73 0 -1 0 0 0
1350+61.62.D83D.DE00 C5 0 -1 0 0 0
1351+61.62.D83D.DE00 1C4 0 -1 0 0 0
1352+61.62.D83D.DE00 65.301 0 -1 0 0 0
1353+61.62.D83D.DE00 4A.30C 0 -1 0 0 0
1354+61.62.D83D.DE00 1C5.61 0 -1 0 0 0
1355+61.62.D83D.DE00 13A0 0 -1 0 0 0
1356+61.62.D83D.DE00 E000 0 -1 0 0 0
1357+61.62.D83D.DE00 D83D.DE00 0 -1 1 0 1
1358+61.62.D83D.DE00 61.62.D83D.DE00 1 0 1 1 1
1359+61.62.D83D.DE00 41.42.D83D.DE00 1 0 1 1 1
1360+61.62.D83D.DE00 31.65.33 0 1 0 0 0
1361+41.42.D83D.DE00 - 0 1 1 1 1
1362+41.42.D83D.DE00 61 0 1 1 1 0
1363+41.42.D83D.DE00 41 0 1 1 1 0
1364+41.42.D83D.DE00 61.62 0 1 1 1 0
1365+41.42.D83D.DE00 41.42 0 1 1 1 0
1366+41.42.D83D.DE00 48.65.6C.6C.6F 0 -1 0 0 0
1367+41.42.D83D.DE00 53.53 0 -1 0 0 0
1368+41.42.D83D.DE00 66.66.69 0 -1 0 0 0
1369+41.42.D83D.DE00 53 0 -1 0 0 0
1370+41.42.D83D.DE00 3C3 0 -1 0 0 0
1371+41.42.D83D.DE00 1C5 0 -1 0 0 0
1372+41.42.D83D.DE00 FF 0 -1 0 0 0
1373+41.42.D83D.DE00 390 0 -1 0 0 0
1374+41.42.D83D.DE00 1C4.61 0 -1 0 0 0
1375+41.42.D83D.DE00 13F8 0 -1 0 0 0
1376+41.42.D83D.DE00 FFFF 0 -1 0 0 0
1377+41.42.D83D.DE00 D83D.DE00 0 -1 1 0 1
1378+41.42.D83D.DE00 61.62.D83D.DE00 1 0 1 1 1
1379+41.42.D83D.DE00 41.42.D83D.DE00 1 0 1 1 1
1380+41.42.D83D.DE00 2D 0 1 0 0 0
1381+78.2028.79 - 0 1 1 1 1
1382+78.2028.79 61 0 1 0 0 0
1383+78.2028.79 68.45.4C.4C.4F 0 1 0 0 0
1384+78.2028.79 73.73 0 1 0 0 0
1385+78.2028.79 131 0 -1 0 0 0
1386+78.2028.79 212A 0 -1 0 0 0
1387+78.2028.79 3C2 0 -1 0 0 0
1388+78.2028.79 1C6 0 -1 0 0 0
1389+78.2028.79 178 0 -1 0 0 0
1390+78.2028.79 1FFC 0 -1 0 0 0
1391+78.2028.79 416 0 -1 0 0 0
1392+78.2028.79 13F0 0 -1 0 0 0
1393+78.2028.79 D83D.DE00 0 -1 0 0 0
1394+78.2028.79 78.2028.79 1 0 1 1 1
1395+78.2028.79 5F 0 -1 0 0 0
1396+78.20.79 - 0 1 1 1 1
1397+78.20.79 41 0 1 0 0 0
1398+78.20.79 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 1 0 0 0
1399+78.20.79 1E9E 0 -1 0 0 0
1400+78.20.79 49 0 1 0 0 0
1401+78.20.79 6B 0 1 0 0 0
1402+78.20.79 3A3 0 -1 0 0 0
1403+78.20.79 1C8 0 -1 0 0 0
1404+78.20.79 B5 0 -1 0 0 0
1405+78.20.79 1FB3 0 -1 0 0 0
1406+78.20.79 436 0 -1 0 0 0
1407+78.20.79 24D0 0 -1 0 0 0
1408+78.20.79 D801.DC00 0 -1 0 0 0
1409+78.20.79 78.20.79 1 0 1 1 1
1410+78.20.79 61.2D.62 0 1 0 0 0
1411+78.A0.79 - 0 1 1 1 1
1412+78.A0.79 61.62 0 1 0 0 0
1413+78.A0.79 74.72.75.65 0 1 0 0 0
1414+78.A0.79 149 0 -1 0 0 0
1415+78.A0.79 69 0 1 0 0 0
1416+78.A0.79 4B 0 1 0 0 0
1417+78.A0.79 391.3A3 0 -1 0 0 0
1418+78.A0.79 1C9 0 -1 0 0 0
1419+78.A0.79 3BC 0 -1 0 0 0
1420+78.A0.79 1FBC 0 -1 0 0 0
1421+78.A0.79 10D0 0 -1 0 0 0
1422+78.A0.79 24B6 0 -1 0 0 0
1423+78.A0.79 D801.DC28 0 -1 0 0 0
1424+78.A0.79 78.A0.79 1 0 1 1 1
1425+78.A0.79 61.5F.62 0 1 0 0 0
1426+30 - 0 1 1 1 1
1427+30 41.42 0 -1 0 0 0
1428+30 54.52.55.45 0 -1 0 0 0
1429+30 2BC.4E 0 -1 0 0 0
1430+30 130 0 -1 0 0 0
1431+30 212B 0 -1 0 0 0
1432+30 3B1.3C2 0 -1 0 0 0
1433+30 E9 0 -1 0 0 0
1434+30 39C 0 -1 0 0 0
1435+30 E9 0 -1 0 0 0
1436+30 1C90 0 -1 0 0 0
1437+30 FF41 0 -1 0 0 0
1438+30 D801.DC28 0 -1 0 0 0
1439+30 30 1 0 1 1 1
1440+30 5B.5D 0 -1 0 0 0
1441+30.30 - 0 1 1 1 1
1442+30.30 61.62.63 0 -1 0 0 0
1443+30.30 6E.75.6C.6C 0 -1 0 0 0
1444+30.30 FB03 0 -1 0 0 0
1445+30.30 17F 0 -1 0 0 0
1446+30.30 E5 0 -1 0 0 0
1447+30.30 3B1.3C3 0 -1 0 0 0
1448+30.30 C9 0 -1 0 0 0
1449+30.30 1F0 0 -1 0 0 0
1450+30.30 C9 0 -1 0 0 0
1451+30.30 AB70 0 -1 0 0 0
1452+30.30 FF21 0 -1 0 0 0
1453+30.30 D800.DC00 0 -1 0 0 0
1454+30.30 30 0 1 1 1 1
1455+30.30 30.30 1 0 1 1 1
1456+30.30 27 0 1 0 0 0
1457+31.65.33 - 0 1 1 1 1
1458+31.65.33 41.42.43 0 -1 0 0 0
1459+31.65.33 DF 0 -1 0 0 0
1460+31.65.33 46.46.49 0 -1 0 0 0
1461+31.65.33 73 0 -1 0 0 0
1462+31.65.33 C5 0 -1 0 0 0
1463+31.65.33 1C4 0 -1 0 0 0
1464+31.65.33 65.301 0 -1 0 0 0
1465+31.65.33 4A.30C 0 -1 0 0 0
1466+31.65.33 1C5.61 0 -1 0 0 0
1467+31.65.33 13A0 0 -1 0 0 0
1468+31.65.33 E000 0 -1 0 0 0
1469+31.65.33 61.62.D83D.DE00 0 -1 0 0 0
1470+31.65.33 31.65.33 1 0 1 1 1
1471+2D - 0 1 1 1 1
1472+2D 48.65.6C.6C.6F 0 -1 0 0 0
1473+2D 53.53 0 -1 0 0 0
1474+2D 66.66.69 0 -1 0 0 0
1475+2D 53 0 -1 0 0 0
1476+2D 3C3 0 -1 0 0 0
1477+2D 1C5 0 -1 0 0 0
1478+2D FF 0 -1 0 0 0
1479+2D 390 0 -1 0 0 0
1480+2D 1C4.61 0 -1 0 0 0
1481+2D 13F8 0 -1 0 0 0
1482+2D FFFF 0 -1 0 0 0
1483+2D 41.42.D83D.DE00 0 -1 0 0 0
1484+2D 2D 1 0 1 1 1
1485+5F - 0 1 1 1 1
1486+5F 61 0 1 0 0 0
1487+5F 68.45.4C.4C.4F 0 1 0 0 0
1488+5F 73.73 0 1 0 0 0
1489+5F 131 0 -1 0 0 0
1490+5F 212A 0 -1 0 0 0
1491+5F 3C2 0 -1 0 0 0
1492+5F 1C6 0 -1 0 0 0
1493+5F 178 0 -1 0 0 0
1494+5F 1FFC 0 -1 0 0 0
1495+5F 416 0 -1 0 0 0
1496+5F 13F0 0 -1 0 0 0
1497+5F D83D.DE00 0 -1 0 0 0
1498+5F 78.2028.79 0 1 0 0 0
1499+5F 5F 1 0 1 1 1
1500+61.2D.62 - 0 1 1 1 1
1501+61.2D.62 61 0 1 1 1 0
1502+61.2D.62 41 0 1 1 1 0
1503+61.2D.62 68.65.6C.6C.6F.20.77.6F.72.6C.64 0 -1 0 0 0
1504+61.2D.62 1E9E 0 -1 0 0 0
1505+61.2D.62 49 0 -1 0 0 0
1506+61.2D.62 6B 0 -1 0 0 0
1507+61.2D.62 3A3 0 -1 0 0 0
1508+61.2D.62 1C8 0 -1 0 0 0
1509+61.2D.62 B5 0 -1 0 0 0
1510+61.2D.62 1FB3 0 -1 0 0 0
1511+61.2D.62 436 0 -1 0 0 0
1512+61.2D.62 24D0 0 -1 0 0 0
1513+61.2D.62 D801.DC00 0 -1 0 0 0
1514+61.2D.62 78.20.79 0 -1 0 0 0
1515+61.2D.62 2D 0 1 1 0 0
1516+61.2D.62 61.2D.62 1 0 1 1 1
1517+61.5F.62 - 0 1 1 1 1
1518+61.5F.62 61 0 1 1 1 0
1519+61.5F.62 41 0 1 1 1 0
1520+61.5F.62 61.62 0 1 0 0 0
1521+61.5F.62 74.72.75.65 0 -1 0 0 0
1522+61.5F.62 149 0 -1 0 0 0
1523+61.5F.62 69 0 -1 0 0 0
1524+61.5F.62 4B 0 -1 0 0 0
1525+61.5F.62 391.3A3 0 -1 0 0 0
1526+61.5F.62 1C9 0 -1 0 0 0
1527+61.5F.62 3BC 0 -1 0 0 0
1528+61.5F.62 1FBC 0 -1 0 0 0
1529+61.5F.62 10D0 0 -1 0 0 0
1530+61.5F.62 24B6 0 -1 0 0 0
1531+61.5F.62 D801.DC28 0 -1 0 0 0
1532+61.5F.62 78.A0.79 0 -1 0 0 0
1533+61.5F.62 5F 0 -1 1 0 0
1534+61.5F.62 61.5F.62 1 0 1 1 1
1535+5B.5D - 0 1 1 1 1
1536+5B.5D 41.42 0 1 0 0 0
1537+5B.5D 54.52.55.45 0 1 0 0 0
1538+5B.5D 2BC.4E 0 -1 0 0 0
1539+5B.5D 130 0 -1 0 0 0
1540+5B.5D 212B 0 -1 0 0 0
1541+5B.5D 3B1.3C2 0 -1 0 0 0
1542+5B.5D E9 0 -1 0 0 0
1543+5B.5D 39C 0 -1 0 0 0
1544+5B.5D E9 0 -1 0 0 0
1545+5B.5D 1C90 0 -1 0 0 0
1546+5B.5D FF41 0 -1 0 0 0
1547+5B.5D D801.DC28 0 -1 0 0 0
1548+5B.5D 30 0 1 0 0 0
1549+5B.5D 5B.5D 1 0 1 1 1
1550+27 - 0 1 1 1 1
1551+27 61.62.63 0 -1 0 0 0
1552+27 6E.75.6C.6C 0 -1 0 0 0
1553+27 FB03 0 -1 0 0 0
1554+27 17F 0 -1 0 0 0
1555+27 E5 0 -1 0 0 0
1556+27 3B1.3C3 0 -1 0 0 0
1557+27 C9 0 -1 0 0 0
1558+27 1F0 0 -1 0 0 0
1559+27 C9 0 -1 0 0 0
1560+27 AB70 0 -1 0 0 0
1561+27 FF21 0 -1 0 0 0
1562+27 D800.DC00 0 -1 0 0 0
1563+27 30.30 0 -1 0 0 0
1564+27 27 1 0 1 1 1

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 3

↑↓ moveenter openesc close