diff options
-rwxr-xr-x | gen/prop/bmg | 159 | ||||
-rwxr-xr-x | gen/prop/bpb | 157 | ||||
-rwxr-xr-x | gen/prop/bpt | 2 | ||||
-rwxr-xr-x | gen/prop/ccc | 2 | ||||
-rwxr-xr-x | gen/prop/ea | 166 | ||||
-rwxr-xr-x | gen/prop/equideo | 156 | ||||
-rw-r--r-- | include/unicode/prop.h | 42 | ||||
-rw-r--r-- | lib/unicode/prop/uprop_get_bmg.c | 1328 | ||||
-rw-r--r-- | lib/unicode/prop/uprop_get_bpb.c | 936 | ||||
-rw-r--r-- | lib/unicode/prop/uprop_get_ea.c | 5595 | ||||
-rw-r--r-- | lib/unicode/prop/uprop_get_equideo.c | 691 |
11 files changed, 6831 insertions, 2403 deletions
diff --git a/gen/prop/bmg b/gen/prop/bmg index 67124cd..61df16f 100755 --- a/gen/prop/bmg +++ b/gen/prop/bmg @@ -1,54 +1,105 @@ -#!/bin/sh - -set -e -cd "${0%/*}/../.." -exec >lib/unicode/prop/uprop_get_bmg.c - -gawk ' -BEGIN { - FS = " *(; *|#.*)" - - print "/* This file is autogenerated by gen/prop/bmg; DO NOT EDIT. */" - print "" - print "#include \"_bsearch.h\"" - print "#include \"macros.h\"" - print "#include \"rune.h\"" - print "#include \"unicode/prop.h\"" - print "" -} - -/^[^#]/ { - props[strtonum("0X" $1)] = strtonum("0X" $2) -} - -END { - print "static constexpr rune lookup_lat1[] = {" - for (i = 0; i < 0x100; i++) { - if (i % 8 == 0) - printf "\t" - printf "0x%02X,%s", (props[i] ? props[i] : 0), \ - i % 8 == 7 ? "\n" : " " - } - print "};" - print "" - print "static const struct {" - print "\trune k, v;" - print "} lookup[] = {" - - for (i = 0x100; i <= 0x10FFFF; i++) { - if (!props[i]) - continue - printf "\t{RUNE_C(0x%06X), RUNE_C(0x%06X)},\n", i, props[i] - } - - print "};" - print "" - print "_MLIB_DEFINE_BSEARCH_KV(rune, lookup, 0)" - print "" - print "rune" - print "uprop_get_bmg(rune ch)" - print "{" - print "\treturn ch < lengthof(lookup_lat1) ? lookup_lat1[ch] : mlib_lookup_kv(ch);" - print "}" -} -' data/BidiMirroring +#!/usr/bin/python3 + +import math + +from wcwidth import wcswidth + +from lib import * + + +longest = 0 + +def parse(file: str) -> list[bool]: + global longest + + xs = ['0'] * 0x110000 + with open(file, 'r') as f: + for line in f.readlines(): + if len(line.strip()) == 0 or line[0] == '#': + continue + + parts = line.split(';') + ranges = [int(x, 16) for x in parts[0].strip().split('..')] + prop = int(parts[1].split('#')[0].strip(), 16) + prop = ("U'" if prop > 0x7F else "'") + chr(prop) + "'" + longest = max(longest, wcswidth(prop)) + + for i in range(ranges[0], ranges[len(ranges) - 1] + 1): + xs[i] = prop + return xs + +def genfile(cs: list[tuple[bool, ...]], blksize: int) -> None: + Cs = cs + cs = list(dict.fromkeys(Cs)) + + print('''\ +/* This file is autogenerated by gen/prop/bmg; DO NOT EDIT. */ + +#include "unicode/prop.h" +''') + + print(f'static constexpr {typename(len(cs) - 1)} stage1[] = {{') + for i, c in enumerate(Cs): + print(f'%c%{len(str(len(cs) - 1))}d,' % ('\t' if i % 16 == 0 else ' ', cs.index(c)), end='') + if i % 16 == 15: + print() + print('};') + + print() + + ppc = columns(blksize, longest + 1) + print(f'static constexpr rune stage2[][{blksize}] = {{') + for c in cs: + for i in range(blksize // ppc): + print('\t{' if i == 0 else '\t ', end='') + for j in range(ppc): + print(c[i*ppc + j], end='') + if i < blksize // ppc - 1 or j < ppc - 1: + print(',', end='') + if j < ppc - 1: + print(' ' * (longest + 1 - wcswidth(c[i*ppc + j])), end='') + if i < blksize // ppc - 1: + print() + print('},') + print('};') + + print() + + print(f'''\ +rune +uprop_get_bmg(rune ch) +{{ + rune hc = stage2[stage1[ch / {blksize}]][ch % {blksize}]; + return hc == 0 ? ch : hc; +}}''') + +def main() -> None: + cwd_init() + xs = parse('data/BidiMirroring') + + blksize = -1 + smallest = math.inf + + for bs in powers_of_2(): + if bs > len(xs): + break + Cs = [tuple(x) for x in chunks(xs, bs)] + cs = set(Cs) + + sz_s1 = len(Cs) * isize(len(cs) - 1) + sz_s2 = len(cs) * bs * 4 + sz = sz_s1 + sz_s2 + + if sz < smallest: + smallest = sz + blksize = bs + + Cs = [tuple(x) for x in chunks(xs, blksize)] + with open('lib/unicode/prop/uprop_get_bmg.c', 'w') as f: + sys.stdout = f + genfile(Cs, blksize) + + report_size(len(xs), smallest) + +if __name__ == '__main__': + main() diff --git a/gen/prop/bpb b/gen/prop/bpb index 8c0b696..7cbaa66 100755 --- a/gen/prop/bpb +++ b/gen/prop/bpb @@ -1,52 +1,105 @@ -#!/bin/sh - -set -e -cd "${0%/*}/../.." -exec >lib/unicode/prop/uprop_get_bpb.c - -gawk ' -BEGIN { - FS = " *(; *|#.*)" - - print "/* This file is autogenerated by gen/prop/bpb; DO NOT EDIT. */" - print "" - print "#include \"_bsearch.h\"" - print "#include \"macros.h\"" - print "#include \"rune.h\"" - print "#include \"unicode/prop.h\"" - print "" -} - -/^[^#]/ { - props[strtonum("0X" $1)] = strtonum("0X" $2) -} - -END { - print "static constexpr rune lookup_lat1[] = {" - for (i = 0; i < 0x100; i++) { - if (i % 8 == 0) - printf "\t" - printf "0x%02X,%s", props[i] ? props[i] : 0, i % 8 == 7 ? "\n" : " " - } - print "};" - print "" - print "static const struct {" - print "\trune k, v;" - print "} lookup[] = {" - - for (i = 0x100; i <= 0x10FFFF; i++) { - if (props[i]) - printf "\t{RUNE_C(0x%06X), RUNE_C(0x%06X)},\n", i, props[i] - } - - print "};" - print "" - print "_MLIB_DEFINE_BSEARCH_KV(rune, lookup, 0)" - print "" - print "rune" - print "uprop_get_bpb(rune ch)" - print "{" - print "\treturn ch < lengthof(lookup_lat1) ? lookup_lat1[ch] : mlib_lookup_kv(ch);" - print "}" -} -' data/BidiBrackets +#!/usr/bin/python3 + +import math + +from wcwidth import wcswidth + +from lib import * + + +longest = 0 + +def parse(file: str) -> list[bool]: + global longest + + xs = ['0'] * 0x110000 + with open(file, 'r') as f: + for line in f.readlines(): + if len(line.strip()) == 0 or line[0] == '#': + continue + + parts = line.split(';') + ranges = [int(x, 16) for x in parts[0].strip().split('..')] + prop = int(parts[1].split('#')[0].strip(), 16) + prop = ("U'" if prop > 0x7F else "'") + chr(prop) + "'" + longest = max(longest, wcswidth(prop)) + + for i in range(ranges[0], ranges[len(ranges) - 1] + 1): + xs[i] = prop + return xs + +def genfile(cs: list[tuple[bool, ...]], blksize: int) -> None: + Cs = cs + cs = list(dict.fromkeys(Cs)) + + print('''\ +/* This file is autogenerated by gen/prop/bpb; DO NOT EDIT. */ + +#include "unicode/prop.h" +''') + + print(f'static constexpr {typename(len(cs) - 1)} stage1[] = {{') + for i, c in enumerate(Cs): + print(f'%c%{len(str(len(cs) - 1))}d,' % ('\t' if i % 16 == 0 else ' ', cs.index(c)), end='') + if i % 16 == 15: + print() + print('};') + + print() + + ppc = columns(blksize, longest + 1) + print(f'static constexpr rune stage2[][{blksize}] = {{') + for c in cs: + for i in range(blksize // ppc): + print('\t{' if i == 0 else '\t ', end='') + for j in range(ppc): + print(c[i*ppc + j], end='') + if i < blksize // ppc - 1 or j < ppc - 1: + print(',', end='') + if j < ppc - 1: + print(' ' * (longest + 1 - wcswidth(c[i*ppc + j])), end='') + if i < blksize // ppc - 1: + print() + print('},') + print('};') + + print() + + print(f'''\ +rune +uprop_get_bpb(rune ch) +{{ + rune hc = stage2[stage1[ch / {blksize}]][ch % {blksize}]; + return hc == 0 ? ch : hc; +}}''') + +def main() -> None: + cwd_init() + xs = parse('data/BidiBrackets') + + blksize = -1 + smallest = math.inf + + for bs in powers_of_2(): + if bs > len(xs): + break + Cs = [tuple(x) for x in chunks(xs, bs)] + cs = set(Cs) + + sz_s1 = len(Cs) * isize(len(cs) - 1) + sz_s2 = len(cs) * bs * 4 + sz = sz_s1 + sz_s2 + + if sz < smallest: + smallest = sz + blksize = bs + + Cs = [tuple(x) for x in chunks(xs, blksize)] + with open('lib/unicode/prop/uprop_get_bpb.c', 'w') as f: + sys.stdout = f + genfile(Cs, blksize) + + report_size(len(xs), smallest) + +if __name__ == '__main__': + main() diff --git a/gen/prop/bpt b/gen/prop/bpt index 72a9215..e2db55d 100755 --- a/gen/prop/bpt +++ b/gen/prop/bpt @@ -83,7 +83,7 @@ def main() -> None: cs = set(Cs) sz_s1 = len(Cs) * isize(len(cs) - 1) - sz_s2 = len(cs) * bs * 2 + sz_s2 = len(cs) * bs sz = sz_s1 + sz_s2 if sz < smallest: diff --git a/gen/prop/ccc b/gen/prop/ccc index 5339748..bc073ae 100755 --- a/gen/prop/ccc +++ b/gen/prop/ccc @@ -147,7 +147,7 @@ def main() -> None: cs = set(Cs) sz_s1 = len(Cs) * isize(len(cs) - 1) - sz_s2 = len(cs) * bs * 4 + sz_s2 = len(cs) * bs * 2 sz = sz_s1 + sz_s2 if sz < smallest: diff --git a/gen/prop/ea b/gen/prop/ea index 0d7f357..1e0211a 100755 --- a/gen/prop/ea +++ b/gen/prop/ea @@ -1,65 +1,101 @@ -#!/bin/sh - -set -e -cd "${0%/*}/../.." -exec >lib/unicode/prop/uprop_get_ea.c - -gawk ' -BEGIN { - FS = "( *#.*| *; +)" - - print "/* This file is autogenerated by gen/prop/ea; DO NOT EDIT. */" - print "" - print "#include \"_bsearch.h\"" - print "#include \"macros.h\"" - print "#include \"rune.h\"" - print "#include \"unicode/prop.h\"" - print "" -} - -/^[^#]/ { - n = split($1, a, /\.\./) - lo = strtonum("0X" a[1]) - hi = strtonum("0X" a[n]) - - for (i = lo; i <= hi; i++) { - gsub(/^; /, "", $2) - props[i] = "EA_" toupper($2) - } -} - -END { - print "static constexpr enum uprop_ea lookup_lat1[] = {" - for (i = 0; i < 0x100; i++) { - if (i % 8 == 0) - printf "\t" - printf "%-6s%s", (props[i] ? props[i] : "EA_NA") ",", \ - i % 8 == 7 ? "\n" : " " - } - print "};" - print "" - print "static const struct {" - print "\trune lo, hi;" - print "\tenum uprop_ea val;" - print "} lookup[] = {" - - for (i = 0x100; i <= 0x10FFFF; i++) { - if (!props[i]) - continue - lo = i - while (props[lo] == props[i + 1]) - i++ - printf "\t{RUNE_C(0x%06X), RUNE_C(0x%06X), %s},\n", lo, i, props[i] - } - - print "};" - print "" - print "_MLIB_DEFINE_BSEARCH(enum uprop_ea, lookup, EA_NA)" - print "" - print "enum uprop_ea" - print "uprop_get_ea(rune ch)" - print "{" - print "\treturn ch < lengthof(lookup_lat1) ? lookup_lat1[ch] : mlib_lookup(ch);" - print "}" -} -' data/DerivedEastAsianWidth | sed 's/\s*$//' +#!/usr/bin/python3 + +import math + +from lib import * + + +longest = 0 + +def parse(file: str) -> list[bool]: + global longest + + xs = ['EA_NA'] * 0x110000 + with open(file, 'r') as f: + for line in f.readlines(): + if len(line.strip()) == 0 or line[0] == '#': + continue + + parts = line.split(';') + ranges = [int(x, 16) for x in parts[0].strip().split('..')] + prop = 'EA_' + parts[1].split('#')[0].strip().upper() + longest = max(longest, len(prop)) + + for i in range(ranges[0], ranges[len(ranges) - 1] + 1): + xs[i] = prop + return xs + +def genfile(cs: list[tuple[bool, ...]], blksize: int) -> None: + Cs = cs + cs = list(dict.fromkeys(Cs)) + + print('''\ +/* This file is autogenerated by gen/prop/ea; DO NOT EDIT. */ + +#include "unicode/prop.h" +''') + + print(f'static constexpr {typename(len(cs) - 1)} stage1[] = {{') + for i, c in enumerate(Cs): + print(f'%c%{len(str(len(cs) - 1))}d,' % ('\t' if i % 16 == 0 else ' ', cs.index(c)), end='') + if i % 16 == 15: + print() + print('};') + + print() + + ppc = columns(blksize, longest + 1) + print(f'static constexpr enum uprop_ea stage2[][{blksize}] = {{') + for c in cs: + for i in range(blksize // ppc): + print('\t{' if i == 0 else '\t ', end='') + for j in range(ppc): + print(c[i*ppc + j], end='') + if i < blksize // ppc - 1 or j < ppc - 1: + print(',', end='') + if j < ppc - 1: + print(' ' * (longest + 1 - len(c[i*ppc + j])), end='') + if i < blksize // ppc - 1: + print() + print('},') + print('};') + + print() + + print(f'''\ +enum uprop_ea +uprop_get_ea(rune ch) +{{ + return stage2[stage1[ch / {blksize}]][ch % {blksize}]; +}}''') + +def main() -> None: + cwd_init() + xs = parse('data/DerivedEastAsianWidth') + + blksize = -1 + smallest = math.inf + + for bs in powers_of_2(): + if bs > len(xs): + break + Cs = [tuple(x) for x in chunks(xs, bs)] + cs = set(Cs) + + sz_s1 = len(Cs) * isize(len(cs) - 1) + sz_s2 = len(cs) * bs + sz = sz_s1 + sz_s2 + + if sz < smallest: + smallest = sz + blksize = bs + + Cs = [tuple(x) for x in chunks(xs, blksize)] + with open('lib/unicode/prop/uprop_get_ea.c', 'w') as f: + sys.stdout = f + genfile(Cs, blksize) + + report_size(len(xs), smallest) + +if __name__ == '__main__': + main() diff --git a/gen/prop/equideo b/gen/prop/equideo index 4f3ad2a..b1f5866 100755 --- a/gen/prop/equideo +++ b/gen/prop/equideo @@ -1,51 +1,105 @@ -#!/bin/sh - -set -e -cd "${0%/*}/../.." -exec >lib/unicode/prop/uprop_get_equideo.c - -gawk ' -BEGIN { - FS = "[ ;]+" - - print "/* This file is autogenerated by gen/prop/equideo; DO NOT EDIT. */" - print "" - print "#include \"_bsearch.h\"" - print "#include \"macros.h\"" - print "#include \"rune.h\"" - print "#include \"unicode/prop.h\"" - print "" -} - -/^[A-F0-9]{4}/ { - n = split($1, a, /\.\./) - lo = strtonum("0X" a[1]) - hi = strtonum("0X" a[n]) - - for (i = lo; i <= hi; i++) - props[i] = strtonum("0X" $2) -} - -END { - print "static const struct {" - print "\trune k, v;" - print "} lookup[] = {" - - for (i = 0; i <= 0x10FFFF; i++) { - if (props[i]) - printf "\t{RUNE_C(0x%06X), RUNE_C(0x%06X)},\n", i, props[i] - } - - print "};" - print "" - print "_MLIB_DEFINE_BSEARCH_KV(rune, lookup, \x27\\0\x27)" - print "" - print "rune" - print "uprop_get_equideo(rune ch)" - print "{" - print "\treturn ch < lookup[0].k || ch > lookup[lengthof(lookup) - 1].k" - print "\t\t? \x27\\0\x27" - print "\t\t: mlib_lookup_kv(ch);" - print "}" -} -' data/EquivalentUnifiedIdeograph +#!/usr/bin/python3 + +import math + +from wcwidth import wcswidth + +from lib import * + + +longest = 0 + +def parse(file: str) -> list[bool]: + global longest + + xs = ['0'] * 0x110000 + with open(file, 'r') as f: + for line in f.readlines(): + if len(line.strip()) == 0 or line[0] == '#': + continue + + parts = line.split(';') + ranges = [int(x, 16) for x in parts[0].strip().split('..')] + prop = int(parts[1].split('#')[0].strip(), 16) + prop = ("U'" if prop > 0x7F else "'") + chr(prop) + "'" + longest = max(longest, wcswidth(prop)) + + for i in range(ranges[0], ranges[len(ranges) - 1] + 1): + xs[i] = prop + return xs + +def genfile(cs: list[tuple[bool, ...]], blksize: int) -> None: + Cs = cs + cs = list(dict.fromkeys(Cs)) + + print('''\ +/* This file is autogenerated by gen/prop/equideo; DO NOT EDIT. */ + +#include "unicode/prop.h" +''') + + print(f'static constexpr {typename(len(cs) - 1)} stage1[] = {{') + for i, c in enumerate(Cs): + print(f'%c%{len(str(len(cs) - 1))}d,' % ('\t' if i % 16 == 0 else ' ', cs.index(c)), end='') + if i % 16 == 15: + print() + print('};') + + print() + + ppc = columns(blksize, longest + 1) + print(f'static constexpr rune stage2[][{blksize}] = {{') + for c in cs: + for i in range(blksize // ppc): + print('\t{' if i == 0 else '\t ', end='') + for j in range(ppc): + print(c[i*ppc + j], end='') + if i < blksize // ppc - 1 or j < ppc - 1: + print(',', end='') + if j < ppc - 1: + print(' ' * (longest + 1 - wcswidth(c[i*ppc + j])), end='') + if i < blksize // ppc - 1: + print() + print('},') + print('};') + + print() + + print(f'''\ +rune +uprop_get_equideo(rune ch) +{{ + rune hc = stage2[stage1[ch / {blksize}]][ch % {blksize}]; + return hc == 0 ? ch : hc; +}}''') + +def main() -> None: + cwd_init() + xs = parse('data/EquivalentUnifiedIdeograph') + + blksize = -1 + smallest = math.inf + + for bs in powers_of_2(): + if bs > len(xs): + break + Cs = [tuple(x) for x in chunks(xs, bs)] + cs = set(Cs) + + sz_s1 = len(Cs) * isize(len(cs) - 1) + sz_s2 = len(cs) * bs * 4 + sz = sz_s1 + sz_s2 + + if sz < smallest: + smallest = sz + blksize = bs + + Cs = [tuple(x) for x in chunks(xs, blksize)] + with open('lib/unicode/prop/uprop_get_equideo.c', 'w') as f: + sys.stdout = f + genfile(Cs, blksize) + + report_size(len(xs), smallest) + +if __name__ == '__main__': + main() diff --git a/include/unicode/prop.h b/include/unicode/prop.h index 840a83e..94382c0 100644 --- a/include/unicode/prop.h +++ b/include/unicode/prop.h @@ -565,27 +565,6 @@ enum uprop_ea : uint_least8_t { EA_W, /* Narrow */ }; -enum uprop_gcb : uint_least8_t { - GCB_XX = 0, /* Other */ - GCB_CN, /* Control */ - GCB_CR, /* CR */ - GCB_EB, /* E Base */ - GCB_EBG, /* E Base GAZ */ - GCB_EM, /* E Modifier */ - GCB_EX, /* Extend */ - GCB_GAZ, /* Glue After Zwj */ - GCB_L, /* L */ - GCB_LF, /* LF */ - GCB_LV, /* LV */ - GCB_LVT, /* LVT */ - GCB_PP, /* Prepend */ - GCB_RI, /* Regional Indicator */ - GCB_SM, /* SpacingMark */ - GCB_T, /* T */ - GCB_V, /* V */ - GCB_ZWJ, /* ZWJ */ -}; - enum [[clang::flag_enum]] uprop_gc : uint_least32_t { GC_CN = UINT32_C(1) << 0, /* Not Assigned */ GC_CC = UINT32_C(1) << 1, /* Control */ @@ -629,6 +608,27 @@ enum [[clang::flag_enum]] uprop_gc : uint_least32_t { GC_Z = GC_ZL | GC_ZP | GC_ZS, /* Separator */ }; +enum uprop_gcb : uint_least8_t { + GCB_XX = 0, /* Other */ + GCB_CN, /* Control */ + GCB_CR, /* CR */ + GCB_EB, /* E Base */ + GCB_EBG, /* E Base GAZ */ + GCB_EM, /* E Modifier */ + GCB_EX, /* Extend */ + GCB_GAZ, /* Glue After Zwj */ + GCB_L, /* L */ + GCB_LF, /* LF */ + GCB_LV, /* LV */ + GCB_LVT, /* LVT */ + GCB_PP, /* Prepend */ + GCB_RI, /* Regional Indicator */ + GCB_SM, /* SpacingMark */ + GCB_T, /* T */ + GCB_V, /* V */ + GCB_ZWJ, /* ZWJ */ +}; + enum uprop_hst : uint_least8_t { HST_NA = 0, /* Not Applicable */ HST_L, /* Leading Jamo */ diff --git a/lib/unicode/prop/uprop_get_bmg.c b/lib/unicode/prop/uprop_get_bmg.c index 2242f01..221ea06 100644 --- a/lib/unicode/prop/uprop_get_bmg.c +++ b/lib/unicode/prop/uprop_get_bmg.c @@ -1,472 +1,880 @@ /* This file is autogenerated by gen/prop/bmg; DO NOT EDIT. */ -#include "_bsearch.h" -#include "macros.h" -#include "rune.h" #include "unicode/prop.h" -static constexpr rune lookup_lat1[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x29, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x3C, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x5D, 0x00, 0x5B, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7D, 0x00, 0x7B, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +static constexpr uint8_t stage1[] = { + 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 5, 6, 2, 2, 7, 8, 9, 2, 2, 2, 2, 2, 2, 2, 10, 11, + 2, 2, 2, 12, 13, 14, 2, 15, 2, 2, 2, 2, 16, 2, 2, 2, + 17, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 18, 2, 19, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, }; -static const struct { - rune k, v; -} lookup[] = { - {RUNE_C(0x000F3A), RUNE_C(0x000F3B)}, - {RUNE_C(0x000F3B), RUNE_C(0x000F3A)}, - {RUNE_C(0x000F3C), RUNE_C(0x000F3D)}, - {RUNE_C(0x000F3D), RUNE_C(0x000F3C)}, - {RUNE_C(0x00169B), RUNE_C(0x00169C)}, - {RUNE_C(0x00169C), RUNE_C(0x00169B)}, - {RUNE_C(0x002039), RUNE_C(0x00203A)}, - {RUNE_C(0x00203A), RUNE_C(0x002039)}, - {RUNE_C(0x002045), RUNE_C(0x002046)}, - {RUNE_C(0x002046), RUNE_C(0x002045)}, - {RUNE_C(0x00207D), RUNE_C(0x00207E)}, - {RUNE_C(0x00207E), RUNE_C(0x00207D)}, - {RUNE_C(0x00208D), RUNE_C(0x00208E)}, - {RUNE_C(0x00208E), RUNE_C(0x00208D)}, - {RUNE_C(0x002208), RUNE_C(0x00220B)}, - {RUNE_C(0x002209), RUNE_C(0x00220C)}, - {RUNE_C(0x00220A), RUNE_C(0x00220D)}, - {RUNE_C(0x00220B), RUNE_C(0x002208)}, - {RUNE_C(0x00220C), RUNE_C(0x002209)}, - {RUNE_C(0x00220D), RUNE_C(0x00220A)}, - {RUNE_C(0x002215), RUNE_C(0x0029F5)}, - {RUNE_C(0x00221F), RUNE_C(0x002BFE)}, - {RUNE_C(0x002220), RUNE_C(0x0029A3)}, - {RUNE_C(0x002221), RUNE_C(0x00299B)}, - {RUNE_C(0x002222), RUNE_C(0x0029A0)}, - {RUNE_C(0x002224), RUNE_C(0x002AEE)}, - {RUNE_C(0x00223C), RUNE_C(0x00223D)}, - {RUNE_C(0x00223D), RUNE_C(0x00223C)}, - {RUNE_C(0x002243), RUNE_C(0x0022CD)}, - {RUNE_C(0x002245), RUNE_C(0x00224C)}, - {RUNE_C(0x00224C), RUNE_C(0x002245)}, - {RUNE_C(0x002252), RUNE_C(0x002253)}, - {RUNE_C(0x002253), RUNE_C(0x002252)}, - {RUNE_C(0x002254), RUNE_C(0x002255)}, - {RUNE_C(0x002255), RUNE_C(0x002254)}, - {RUNE_C(0x002264), RUNE_C(0x002265)}, - {RUNE_C(0x002265), RUNE_C(0x002264)}, - {RUNE_C(0x002266), RUNE_C(0x002267)}, - {RUNE_C(0x002267), RUNE_C(0x002266)}, - {RUNE_C(0x002268), RUNE_C(0x002269)}, - {RUNE_C(0x002269), RUNE_C(0x002268)}, - {RUNE_C(0x00226A), RUNE_C(0x00226B)}, - {RUNE_C(0x00226B), RUNE_C(0x00226A)}, - {RUNE_C(0x00226E), RUNE_C(0x00226F)}, - {RUNE_C(0x00226F), RUNE_C(0x00226E)}, - {RUNE_C(0x002270), RUNE_C(0x002271)}, - {RUNE_C(0x002271), RUNE_C(0x002270)}, - {RUNE_C(0x002272), RUNE_C(0x002273)}, - {RUNE_C(0x002273), RUNE_C(0x002272)}, - {RUNE_C(0x002274), RUNE_C(0x002275)}, - {RUNE_C(0x002275), RUNE_C(0x002274)}, - {RUNE_C(0x002276), RUNE_C(0x002277)}, - {RUNE_C(0x002277), RUNE_C(0x002276)}, - {RUNE_C(0x002278), RUNE_C(0x002279)}, - {RUNE_C(0x002279), RUNE_C(0x002278)}, - {RUNE_C(0x00227A), RUNE_C(0x00227B)}, - {RUNE_C(0x00227B), RUNE_C(0x00227A)}, - {RUNE_C(0x00227C), RUNE_C(0x00227D)}, - {RUNE_C(0x00227D), RUNE_C(0x00227C)}, - {RUNE_C(0x00227E), RUNE_C(0x00227F)}, - {RUNE_C(0x00227F), RUNE_C(0x00227E)}, - {RUNE_C(0x002280), RUNE_C(0x002281)}, - {RUNE_C(0x002281), RUNE_C(0x002280)}, - {RUNE_C(0x002282), RUNE_C(0x002283)}, - {RUNE_C(0x002283), RUNE_C(0x002282)}, - {RUNE_C(0x002284), RUNE_C(0x002285)}, - {RUNE_C(0x002285), RUNE_C(0x002284)}, - {RUNE_C(0x002286), RUNE_C(0x002287)}, - {RUNE_C(0x002287), RUNE_C(0x002286)}, - {RUNE_C(0x002288), RUNE_C(0x002289)}, - {RUNE_C(0x002289), RUNE_C(0x002288)}, - {RUNE_C(0x00228A), RUNE_C(0x00228B)}, - {RUNE_C(0x00228B), RUNE_C(0x00228A)}, - {RUNE_C(0x00228F), RUNE_C(0x002290)}, - {RUNE_C(0x002290), RUNE_C(0x00228F)}, - {RUNE_C(0x002291), RUNE_C(0x002292)}, - {RUNE_C(0x002292), RUNE_C(0x002291)}, - {RUNE_C(0x002298), RUNE_C(0x0029B8)}, - {RUNE_C(0x0022A2), RUNE_C(0x0022A3)}, - {RUNE_C(0x0022A3), RUNE_C(0x0022A2)}, - {RUNE_C(0x0022A6), RUNE_C(0x002ADE)}, - {RUNE_C(0x0022A8), RUNE_C(0x002AE4)}, - {RUNE_C(0x0022A9), RUNE_C(0x002AE3)}, - {RUNE_C(0x0022AB), RUNE_C(0x002AE5)}, - {RUNE_C(0x0022B0), RUNE_C(0x0022B1)}, - {RUNE_C(0x0022B1), RUNE_C(0x0022B0)}, - {RUNE_C(0x0022B2), RUNE_C(0x0022B3)}, - {RUNE_C(0x0022B3), RUNE_C(0x0022B2)}, - {RUNE_C(0x0022B4), RUNE_C(0x0022B5)}, - {RUNE_C(0x0022B5), RUNE_C(0x0022B4)}, - {RUNE_C(0x0022B6), RUNE_C(0x0022B7)}, - {RUNE_C(0x0022B7), RUNE_C(0x0022B6)}, - {RUNE_C(0x0022B8), RUNE_C(0x0027DC)}, - {RUNE_C(0x0022C9), RUNE_C(0x0022CA)}, - {RUNE_C(0x0022CA), RUNE_C(0x0022C9)}, - {RUNE_C(0x0022CB), RUNE_C(0x0022CC)}, - {RUNE_C(0x0022CC), RUNE_C(0x0022CB)}, - {RUNE_C(0x0022CD), RUNE_C(0x002243)}, - {RUNE_C(0x0022D0), RUNE_C(0x0022D1)}, - {RUNE_C(0x0022D1), RUNE_C(0x0022D0)}, - {RUNE_C(0x0022D6), RUNE_C(0x0022D7)}, - {RUNE_C(0x0022D7), RUNE_C(0x0022D6)}, - {RUNE_C(0x0022D8), RUNE_C(0x0022D9)}, - {RUNE_C(0x0022D9), RUNE_C(0x0022D8)}, - {RUNE_C(0x0022DA), RUNE_C(0x0022DB)}, - {RUNE_C(0x0022DB), RUNE_C(0x0022DA)}, - {RUNE_C(0x0022DC), RUNE_C(0x0022DD)}, - {RUNE_C(0x0022DD), RUNE_C(0x0022DC)}, - {RUNE_C(0x0022DE), RUNE_C(0x0022DF)}, - {RUNE_C(0x0022DF), RUNE_C(0x0022DE)}, - {RUNE_C(0x0022E0), RUNE_C(0x0022E1)}, - {RUNE_C(0x0022E1), RUNE_C(0x0022E0)}, - {RUNE_C(0x0022E2), RUNE_C(0x0022E3)}, - {RUNE_C(0x0022E3), RUNE_C(0x0022E2)}, - {RUNE_C(0x0022E4), RUNE_C(0x0022E5)}, - {RUNE_C(0x0022E5), RUNE_C(0x0022E4)}, - {RUNE_C(0x0022E6), RUNE_C(0x0022E7)}, - {RUNE_C(0x0022E7), RUNE_C(0x0022E6)}, - {RUNE_C(0x0022E8), RUNE_C(0x0022E9)}, - {RUNE_C(0x0022E9), RUNE_C(0x0022E8)}, - {RUNE_C(0x0022EA), RUNE_C(0x0022EB)}, - {RUNE_C(0x0022EB), RUNE_C(0x0022EA)}, - {RUNE_C(0x0022EC), RUNE_C(0x0022ED)}, - {RUNE_C(0x0022ED), RUNE_C(0x0022EC)}, - {RUNE_C(0x0022F0), RUNE_C(0x0022F1)}, - {RUNE_C(0x0022F1), RUNE_C(0x0022F0)}, - {RUNE_C(0x0022F2), RUNE_C(0x0022FA)}, - {RUNE_C(0x0022F3), RUNE_C(0x0022FB)}, - {RUNE_C(0x0022F4), RUNE_C(0x0022FC)}, - {RUNE_C(0x0022F6), RUNE_C(0x0022FD)}, - {RUNE_C(0x0022F7), RUNE_C(0x0022FE)}, - {RUNE_C(0x0022FA), RUNE_C(0x0022F2)}, - {RUNE_C(0x0022FB), RUNE_C(0x0022F3)}, - {RUNE_C(0x0022FC), RUNE_C(0x0022F4)}, - {RUNE_C(0x0022FD), RUNE_C(0x0022F6)}, - {RUNE_C(0x0022FE), RUNE_C(0x0022F7)}, - {RUNE_C(0x002308), RUNE_C(0x002309)}, - {RUNE_C(0x002309), RUNE_C(0x002308)}, - {RUNE_C(0x00230A), RUNE_C(0x00230B)}, - {RUNE_C(0x00230B), RUNE_C(0x00230A)}, - {RUNE_C(0x002329), RUNE_C(0x00232A)}, - {RUNE_C(0x00232A), RUNE_C(0x002329)}, - {RUNE_C(0x002768), RUNE_C(0x002769)}, - {RUNE_C(0x002769), RUNE_C(0x002768)}, - {RUNE_C(0x00276A), RUNE_C(0x00276B)}, - {RUNE_C(0x00276B), RUNE_C(0x00276A)}, - {RUNE_C(0x00276C), RUNE_C(0x00276D)}, - {RUNE_C(0x00276D), RUNE_C(0x00276C)}, - {RUNE_C(0x00276E), RUNE_C(0x00276F)}, - {RUNE_C(0x00276F), RUNE_C(0x00276E)}, - {RUNE_C(0x002770), RUNE_C(0x002771)}, - {RUNE_C(0x002771), RUNE_C(0x002770)}, - {RUNE_C(0x002772), RUNE_C(0x002773)}, - {RUNE_C(0x002773), RUNE_C(0x002772)}, - {RUNE_C(0x002774), RUNE_C(0x002775)}, - {RUNE_C(0x002775), RUNE_C(0x002774)}, - {RUNE_C(0x0027C3), RUNE_C(0x0027C4)}, - {RUNE_C(0x0027C4), RUNE_C(0x0027C3)}, - {RUNE_C(0x0027C5), RUNE_C(0x0027C6)}, - {RUNE_C(0x0027C6), RUNE_C(0x0027C5)}, - {RUNE_C(0x0027C8), RUNE_C(0x0027C9)}, - {RUNE_C(0x0027C9), RUNE_C(0x0027C8)}, - {RUNE_C(0x0027CB), RUNE_C(0x0027CD)}, - {RUNE_C(0x0027CD), RUNE_C(0x0027CB)}, - {RUNE_C(0x0027D5), RUNE_C(0x0027D6)}, - {RUNE_C(0x0027D6), RUNE_C(0x0027D5)}, - {RUNE_C(0x0027DC), RUNE_C(0x0022B8)}, - {RUNE_C(0x0027DD), RUNE_C(0x0027DE)}, - {RUNE_C(0x0027DE), RUNE_C(0x0027DD)}, - {RUNE_C(0x0027E2), RUNE_C(0x0027E3)}, - {RUNE_C(0x0027E3), RUNE_C(0x0027E2)}, - {RUNE_C(0x0027E4), RUNE_C(0x0027E5)}, - {RUNE_C(0x0027E5), RUNE_C(0x0027E4)}, - {RUNE_C(0x0027E6), RUNE_C(0x0027E7)}, - {RUNE_C(0x0027E7), RUNE_C(0x0027E6)}, - {RUNE_C(0x0027E8), RUNE_C(0x0027E9)}, - {RUNE_C(0x0027E9), RUNE_C(0x0027E8)}, - {RUNE_C(0x0027EA), RUNE_C(0x0027EB)}, - {RUNE_C(0x0027EB), RUNE_C(0x0027EA)}, - {RUNE_C(0x0027EC), RUNE_C(0x0027ED)}, - {RUNE_C(0x0027ED), RUNE_C(0x0027EC)}, - {RUNE_C(0x0027EE), RUNE_C(0x0027EF)}, - {RUNE_C(0x0027EF), RUNE_C(0x0027EE)}, - {RUNE_C(0x002983), RUNE_C(0x002984)}, - {RUNE_C(0x002984), RUNE_C(0x002983)}, - {RUNE_C(0x002985), RUNE_C(0x002986)}, - {RUNE_C(0x002986), RUNE_C(0x002985)}, - {RUNE_C(0x002987), RUNE_C(0x002988)}, - {RUNE_C(0x002988), RUNE_C(0x002987)}, - {RUNE_C(0x002989), RUNE_C(0x00298A)}, - {RUNE_C(0x00298A), RUNE_C(0x002989)}, - {RUNE_C(0x00298B), RUNE_C(0x00298C)}, - {RUNE_C(0x00298C), RUNE_C(0x00298B)}, - {RUNE_C(0x00298D), RUNE_C(0x002990)}, - {RUNE_C(0x00298E), RUNE_C(0x00298F)}, - {RUNE_C(0x00298F), RUNE_C(0x00298E)}, - {RUNE_C(0x002990), RUNE_C(0x00298D)}, - {RUNE_C(0x002991), RUNE_C(0x002992)}, - {RUNE_C(0x002992), RUNE_C(0x002991)}, - {RUNE_C(0x002993), RUNE_C(0x002994)}, - {RUNE_C(0x002994), RUNE_C(0x002993)}, - {RUNE_C(0x002995), RUNE_C(0x002996)}, - {RUNE_C(0x002996), RUNE_C(0x002995)}, - {RUNE_C(0x002997), RUNE_C(0x002998)}, - {RUNE_C(0x002998), RUNE_C(0x002997)}, - {RUNE_C(0x00299B), RUNE_C(0x002221)}, - {RUNE_C(0x0029A0), RUNE_C(0x002222)}, - {RUNE_C(0x0029A3), RUNE_C(0x002220)}, - {RUNE_C(0x0029A4), RUNE_C(0x0029A5)}, - {RUNE_C(0x0029A5), RUNE_C(0x0029A4)}, - {RUNE_C(0x0029A8), RUNE_C(0x0029A9)}, - {RUNE_C(0x0029A9), RUNE_C(0x0029A8)}, - {RUNE_C(0x0029AA), RUNE_C(0x0029AB)}, - {RUNE_C(0x0029AB), RUNE_C(0x0029AA)}, - {RUNE_C(0x0029AC), RUNE_C(0x0029AD)}, - {RUNE_C(0x0029AD), RUNE_C(0x0029AC)}, - {RUNE_C(0x0029AE), RUNE_C(0x0029AF)}, - {RUNE_C(0x0029AF), RUNE_C(0x0029AE)}, - {RUNE_C(0x0029B8), RUNE_C(0x002298)}, - {RUNE_C(0x0029C0), RUNE_C(0x0029C1)}, - {RUNE_C(0x0029C1), RUNE_C(0x0029C0)}, - {RUNE_C(0x0029C4), RUNE_C(0x0029C5)}, - {RUNE_C(0x0029C5), RUNE_C(0x0029C4)}, - {RUNE_C(0x0029CF), RUNE_C(0x0029D0)}, - {RUNE_C(0x0029D0), RUNE_C(0x0029CF)}, - {RUNE_C(0x0029D1), RUNE_C(0x0029D2)}, - {RUNE_C(0x0029D2), RUNE_C(0x0029D1)}, - {RUNE_C(0x0029D4), RUNE_C(0x0029D5)}, - {RUNE_C(0x0029D5), RUNE_C(0x0029D4)}, - {RUNE_C(0x0029D8), RUNE_C(0x0029D9)}, - {RUNE_C(0x0029D9), RUNE_C(0x0029D8)}, - {RUNE_C(0x0029DA), RUNE_C(0x0029DB)}, - {RUNE_C(0x0029DB), RUNE_C(0x0029DA)}, - {RUNE_C(0x0029E8), RUNE_C(0x0029E9)}, - {RUNE_C(0x0029E9), RUNE_C(0x0029E8)}, - {RUNE_C(0x0029F5), RUNE_C(0x002215)}, - {RUNE_C(0x0029F8), RUNE_C(0x0029F9)}, - {RUNE_C(0x0029F9), RUNE_C(0x0029F8)}, - {RUNE_C(0x0029FC), RUNE_C(0x0029FD)}, - {RUNE_C(0x0029FD), RUNE_C(0x0029FC)}, - {RUNE_C(0x002A2B), RUNE_C(0x002A2C)}, - {RUNE_C(0x002A2C), RUNE_C(0x002A2B)}, - {RUNE_C(0x002A2D), RUNE_C(0x002A2E)}, - {RUNE_C(0x002A2E), RUNE_C(0x002A2D)}, - {RUNE_C(0x002A34), RUNE_C(0x002A35)}, - {RUNE_C(0x002A35), RUNE_C(0x002A34)}, - {RUNE_C(0x002A3C), RUNE_C(0x002A3D)}, - {RUNE_C(0x002A3D), RUNE_C(0x002A3C)}, - {RUNE_C(0x002A64), RUNE_C(0x002A65)}, - {RUNE_C(0x002A65), RUNE_C(0x002A64)}, - {RUNE_C(0x002A79), RUNE_C(0x002A7A)}, - {RUNE_C(0x002A7A), RUNE_C(0x002A79)}, - {RUNE_C(0x002A7B), RUNE_C(0x002A7C)}, - {RUNE_C(0x002A7C), RUNE_C(0x002A7B)}, - {RUNE_C(0x002A7D), RUNE_C(0x002A7E)}, - {RUNE_C(0x002A7E), RUNE_C(0x002A7D)}, - {RUNE_C(0x002A7F), RUNE_C(0x002A80)}, - {RUNE_C(0x002A80), RUNE_C(0x002A7F)}, - {RUNE_C(0x002A81), RUNE_C(0x002A82)}, - {RUNE_C(0x002A82), RUNE_C(0x002A81)}, - {RUNE_C(0x002A83), RUNE_C(0x002A84)}, - {RUNE_C(0x002A84), RUNE_C(0x002A83)}, - {RUNE_C(0x002A85), RUNE_C(0x002A86)}, - {RUNE_C(0x002A86), RUNE_C(0x002A85)}, - {RUNE_C(0x002A87), RUNE_C(0x002A88)}, - {RUNE_C(0x002A88), RUNE_C(0x002A87)}, - {RUNE_C(0x002A89), RUNE_C(0x002A8A)}, - {RUNE_C(0x002A8A), RUNE_C(0x002A89)}, - {RUNE_C(0x002A8B), RUNE_C(0x002A8C)}, - {RUNE_C(0x002A8C), RUNE_C(0x002A8B)}, - {RUNE_C(0x002A8D), RUNE_C(0x002A8E)}, - {RUNE_C(0x002A8E), RUNE_C(0x002A8D)}, - {RUNE_C(0x002A8F), RUNE_C(0x002A90)}, - {RUNE_C(0x002A90), RUNE_C(0x002A8F)}, - {RUNE_C(0x002A91), RUNE_C(0x002A92)}, - {RUNE_C(0x002A92), RUNE_C(0x002A91)}, - {RUNE_C(0x002A93), RUNE_C(0x002A94)}, - {RUNE_C(0x002A94), RUNE_C(0x002A93)}, - {RUNE_C(0x002A95), RUNE_C(0x002A96)}, - {RUNE_C(0x002A96), RUNE_C(0x002A95)}, - {RUNE_C(0x002A97), RUNE_C(0x002A98)}, - {RUNE_C(0x002A98), RUNE_C(0x002A97)}, - {RUNE_C(0x002A99), RUNE_C(0x002A9A)}, - {RUNE_C(0x002A9A), RUNE_C(0x002A99)}, - {RUNE_C(0x002A9B), RUNE_C(0x002A9C)}, - {RUNE_C(0x002A9C), RUNE_C(0x002A9B)}, - {RUNE_C(0x002A9D), RUNE_C(0x002A9E)}, - {RUNE_C(0x002A9E), RUNE_C(0x002A9D)}, - {RUNE_C(0x002A9F), RUNE_C(0x002AA0)}, - {RUNE_C(0x002AA0), RUNE_C(0x002A9F)}, - {RUNE_C(0x002AA1), RUNE_C(0x002AA2)}, - {RUNE_C(0x002AA2), RUNE_C(0x002AA1)}, - {RUNE_C(0x002AA6), RUNE_C(0x002AA7)}, - {RUNE_C(0x002AA7), RUNE_C(0x002AA6)}, - {RUNE_C(0x002AA8), RUNE_C(0x002AA9)}, - {RUNE_C(0x002AA9), RUNE_C(0x002AA8)}, - {RUNE_C(0x002AAA), RUNE_C(0x002AAB)}, - {RUNE_C(0x002AAB), RUNE_C(0x002AAA)}, - {RUNE_C(0x002AAC), RUNE_C(0x002AAD)}, - {RUNE_C(0x002AAD), RUNE_C(0x002AAC)}, - {RUNE_C(0x002AAF), RUNE_C(0x002AB0)}, - {RUNE_C(0x002AB0), RUNE_C(0x002AAF)}, - {RUNE_C(0x002AB1), RUNE_C(0x002AB2)}, - {RUNE_C(0x002AB2), RUNE_C(0x002AB1)}, - {RUNE_C(0x002AB3), RUNE_C(0x002AB4)}, - {RUNE_C(0x002AB4), RUNE_C(0x002AB3)}, - {RUNE_C(0x002AB5), RUNE_C(0x002AB6)}, - {RUNE_C(0x002AB6), RUNE_C(0x002AB5)}, - {RUNE_C(0x002AB7), RUNE_C(0x002AB8)}, - {RUNE_C(0x002AB8), RUNE_C(0x002AB7)}, - {RUNE_C(0x002AB9), RUNE_C(0x002ABA)}, - {RUNE_C(0x002ABA), RUNE_C(0x002AB9)}, - {RUNE_C(0x002ABB), RUNE_C(0x002ABC)}, - {RUNE_C(0x002ABC), RUNE_C(0x002ABB)}, - {RUNE_C(0x002ABD), RUNE_C(0x002ABE)}, - {RUNE_C(0x002ABE), RUNE_C(0x002ABD)}, - {RUNE_C(0x002ABF), RUNE_C(0x002AC0)}, - {RUNE_C(0x002AC0), RUNE_C(0x002ABF)}, - {RUNE_C(0x002AC1), RUNE_C(0x002AC2)}, - {RUNE_C(0x002AC2), RUNE_C(0x002AC1)}, - {RUNE_C(0x002AC3), RUNE_C(0x002AC4)}, - {RUNE_C(0x002AC4), RUNE_C(0x002AC3)}, - {RUNE_C(0x002AC5), RUNE_C(0x002AC6)}, - {RUNE_C(0x002AC6), RUNE_C(0x002AC5)}, - {RUNE_C(0x002AC7), RUNE_C(0x002AC8)}, - {RUNE_C(0x002AC8), RUNE_C(0x002AC7)}, - {RUNE_C(0x002AC9), RUNE_C(0x002ACA)}, - {RUNE_C(0x002ACA), RUNE_C(0x002AC9)}, - {RUNE_C(0x002ACB), RUNE_C(0x002ACC)}, - {RUNE_C(0x002ACC), RUNE_C(0x002ACB)}, - {RUNE_C(0x002ACD), RUNE_C(0x002ACE)}, - {RUNE_C(0x002ACE), RUNE_C(0x002ACD)}, - {RUNE_C(0x002ACF), RUNE_C(0x002AD0)}, - {RUNE_C(0x002AD0), RUNE_C(0x002ACF)}, - {RUNE_C(0x002AD1), RUNE_C(0x002AD2)}, - {RUNE_C(0x002AD2), RUNE_C(0x002AD1)}, - {RUNE_C(0x002AD3), RUNE_C(0x002AD4)}, - {RUNE_C(0x002AD4), RUNE_C(0x002AD3)}, - {RUNE_C(0x002AD5), RUNE_C(0x002AD6)}, - {RUNE_C(0x002AD6), RUNE_C(0x002AD5)}, - {RUNE_C(0x002ADE), RUNE_C(0x0022A6)}, - {RUNE_C(0x002AE3), RUNE_C(0x0022A9)}, - {RUNE_C(0x002AE4), RUNE_C(0x0022A8)}, - {RUNE_C(0x002AE5), RUNE_C(0x0022AB)}, - {RUNE_C(0x002AEC), RUNE_C(0x002AED)}, - {RUNE_C(0x002AED), RUNE_C(0x002AEC)}, - {RUNE_C(0x002AEE), RUNE_C(0x002224)}, - {RUNE_C(0x002AF7), RUNE_C(0x002AF8)}, - {RUNE_C(0x002AF8), RUNE_C(0x002AF7)}, - {RUNE_C(0x002AF9), RUNE_C(0x002AFA)}, - {RUNE_C(0x002AFA), RUNE_C(0x002AF9)}, - {RUNE_C(0x002BFE), RUNE_C(0x00221F)}, - {RUNE_C(0x002E02), RUNE_C(0x002E03)}, - {RUNE_C(0x002E03), RUNE_C(0x002E02)}, - {RUNE_C(0x002E04), RUNE_C(0x002E05)}, - {RUNE_C(0x002E05), RUNE_C(0x002E04)}, - {RUNE_C(0x002E09), RUNE_C(0x002E0A)}, - {RUNE_C(0x002E0A), RUNE_C(0x002E09)}, - {RUNE_C(0x002E0C), RUNE_C(0x002E0D)}, - {RUNE_C(0x002E0D), RUNE_C(0x002E0C)}, - {RUNE_C(0x002E1C), RUNE_C(0x002E1D)}, - {RUNE_C(0x002E1D), RUNE_C(0x002E1C)}, - {RUNE_C(0x002E20), RUNE_C(0x002E21)}, - {RUNE_C(0x002E21), RUNE_C(0x002E20)}, - {RUNE_C(0x002E22), RUNE_C(0x002E23)}, - {RUNE_C(0x002E23), RUNE_C(0x002E22)}, - {RUNE_C(0x002E24), RUNE_C(0x002E25)}, - {RUNE_C(0x002E25), RUNE_C(0x002E24)}, - {RUNE_C(0x002E26), RUNE_C(0x002E27)}, - {RUNE_C(0x002E27), RUNE_C(0x002E26)}, - {RUNE_C(0x002E28), RUNE_C(0x002E29)}, - {RUNE_C(0x002E29), RUNE_C(0x002E28)}, - {RUNE_C(0x002E55), RUNE_C(0x002E56)}, - {RUNE_C(0x002E56), RUNE_C(0x002E55)}, - {RUNE_C(0x002E57), RUNE_C(0x002E58)}, - {RUNE_C(0x002E58), RUNE_C(0x002E57)}, - {RUNE_C(0x002E59), RUNE_C(0x002E5A)}, - {RUNE_C(0x002E5A), RUNE_C(0x002E59)}, - {RUNE_C(0x002E5B), RUNE_C(0x002E5C)}, - {RUNE_C(0x002E5C), RUNE_C(0x002E5B)}, - {RUNE_C(0x003008), RUNE_C(0x003009)}, - {RUNE_C(0x003009), RUNE_C(0x003008)}, - {RUNE_C(0x00300A), RUNE_C(0x00300B)}, - {RUNE_C(0x00300B), RUNE_C(0x00300A)}, - {RUNE_C(0x00300C), RUNE_C(0x00300D)}, - {RUNE_C(0x00300D), RUNE_C(0x00300C)}, - {RUNE_C(0x00300E), RUNE_C(0x00300F)}, - {RUNE_C(0x00300F), RUNE_C(0x00300E)}, - {RUNE_C(0x003010), RUNE_C(0x003011)}, - {RUNE_C(0x003011), RUNE_C(0x003010)}, - {RUNE_C(0x003014), RUNE_C(0x003015)}, - {RUNE_C(0x003015), RUNE_C(0x003014)}, - {RUNE_C(0x003016), RUNE_C(0x003017)}, - {RUNE_C(0x003017), RUNE_C(0x003016)}, - {RUNE_C(0x003018), RUNE_C(0x003019)}, - {RUNE_C(0x003019), RUNE_C(0x003018)}, - {RUNE_C(0x00301A), RUNE_C(0x00301B)}, - {RUNE_C(0x00301B), RUNE_C(0x00301A)}, - {RUNE_C(0x00FE59), RUNE_C(0x00FE5A)}, - {RUNE_C(0x00FE5A), RUNE_C(0x00FE59)}, - {RUNE_C(0x00FE5B), RUNE_C(0x00FE5C)}, - {RUNE_C(0x00FE5C), RUNE_C(0x00FE5B)}, - {RUNE_C(0x00FE5D), RUNE_C(0x00FE5E)}, - {RUNE_C(0x00FE5E), RUNE_C(0x00FE5D)}, - {RUNE_C(0x00FE64), RUNE_C(0x00FE65)}, - {RUNE_C(0x00FE65), RUNE_C(0x00FE64)}, - {RUNE_C(0x00FF08), RUNE_C(0x00FF09)}, - {RUNE_C(0x00FF09), RUNE_C(0x00FF08)}, - {RUNE_C(0x00FF1C), RUNE_C(0x00FF1E)}, - {RUNE_C(0x00FF1E), RUNE_C(0x00FF1C)}, - {RUNE_C(0x00FF3B), RUNE_C(0x00FF3D)}, - {RUNE_C(0x00FF3D), RUNE_C(0x00FF3B)}, - {RUNE_C(0x00FF5B), RUNE_C(0x00FF5D)}, - {RUNE_C(0x00FF5D), RUNE_C(0x00FF5B)}, - {RUNE_C(0x00FF5F), RUNE_C(0x00FF60)}, - {RUNE_C(0x00FF60), RUNE_C(0x00FF5F)}, - {RUNE_C(0x00FF62), RUNE_C(0x00FF63)}, - {RUNE_C(0x00FF63), RUNE_C(0x00FF62)}, +static constexpr rune stage2[][128] = { + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + ')', '(', 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, '>', 0, '<', 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, ']', 0, '[', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, '}', 0, '{', 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, U'»', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, U'«', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, U'༻', U'༺', U'༽', U'༼', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, U'᚜', U'᚛', 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, U'›', U'‹', 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, U'⁆', U'⁅', 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, U'⁾', U'⁽', 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, U'₎', U'₍', 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + U'∋', U'∌', U'∍', U'∈', U'∉', U'∊', 0, 0, + 0, 0, 0, 0, 0, U'⧵', 0, 0, + 0, 0, 0, 0, 0, 0, 0, U'⯾', + U'⦣', U'⦛', U'⦠', 0, U'⫮', 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, U'∽', U'∼', 0, 0, + 0, 0, 0, U'⋍', 0, U'≌', 0, 0, + 0, 0, 0, 0, U'≅', 0, 0, 0, + 0, 0, U'≓', U'≒', U'≕', U'≔', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, U'≥', U'≤', U'≧', U'≦', + U'≩', U'≨', U'≫', U'≪', 0, 0, U'≯', U'≮', + U'≱', U'≰', U'≳', U'≲', U'≵', U'≴', U'≷', U'≶', + U'≹', U'≸', U'≻', U'≺', U'≽', U'≼', U'≿', U'≾'}, + {U'⊁', U'⊀', U'⊃', U'⊂', U'⊅', U'⊄', U'⊇', U'⊆', + U'⊉', U'⊈', U'⊋', U'⊊', 0, 0, 0, U'⊐', + U'⊏', U'⊒', U'⊑', 0, 0, 0, 0, 0, + U'⦸', 0, 0, 0, 0, 0, 0, 0, + 0, 0, U'⊣', U'⊢', 0, 0, U'⫞', 0, + U'⫤', U'⫣', 0, U'⫥', 0, 0, 0, 0, + U'⊱', U'⊰', U'⊳', U'⊲', U'⊵', U'⊴', U'⊷', U'⊶', + U'⟜', 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, U'⋊', U'⋉', U'⋌', U'⋋', U'≃', 0, 0, + U'⋑', U'⋐', 0, 0, 0, 0, U'⋗', U'⋖', + U'⋙', U'⋘', U'⋛', U'⋚', U'⋝', U'⋜', U'⋟', U'⋞', + U'⋡', U'⋠', U'⋣', U'⋢', U'⋥', U'⋤', U'⋧', U'⋦', + U'⋩', U'⋨', U'⋫', U'⋪', U'⋭', U'⋬', 0, 0, + U'⋱', U'⋰', U'⋺', U'⋻', U'⋼', 0, U'⋽', U'⋾', + 0, 0, U'⋲', U'⋳', U'⋴', U'⋶', U'⋷', 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + U'⌉', U'⌈', U'⌋', U'⌊', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, U'〉', U'〈', 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + U'❩', U'❨', U'❫', U'❪', U'❭', U'❬', U'❯', U'❮', + U'❱', U'❰', U'❳', U'❲', U'❵', U'❴', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, U'⟄', U'⟃', U'⟆', U'⟅', 0, + U'⟉', U'⟈', 0, U'⟍', 0, U'⟋', 0, 0, + 0, 0, 0, 0, 0, U'⟖', U'⟕', 0, + 0, 0, 0, 0, U'⊸', U'⟞', U'⟝', 0, + 0, 0, U'⟣', U'⟢', U'⟥', U'⟤', U'⟧', U'⟦', + U'⟩', U'⟨', U'⟫', U'⟪', U'⟭', U'⟬', U'⟯', U'⟮', + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, U'⦄', U'⦃', U'⦆', U'⦅', U'⦈', + U'⦇', U'⦊', U'⦉', U'⦌', U'⦋', U'⦐', U'⦏', U'⦎', + U'⦍', U'⦒', U'⦑', U'⦔', U'⦓', U'⦖', U'⦕', U'⦘', + U'⦗', 0, 0, U'∡', 0, 0, 0, 0, + U'∢', 0, 0, U'∠', U'⦥', U'⦤', 0, 0, + U'⦩', U'⦨', U'⦫', U'⦪', U'⦭', U'⦬', U'⦯', U'⦮', + 0, 0, 0, 0, 0, 0, 0, 0, + U'⊘', 0, 0, 0, 0, 0, 0, 0, + U'⧁', U'⧀', 0, 0, U'⧅', U'⧄', 0, 0, + 0, 0, 0, 0, 0, 0, 0, U'⧐', + U'⧏', U'⧒', U'⧑', 0, U'⧕', U'⧔', 0, 0, + U'⧙', U'⧘', U'⧛', U'⧚', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + U'⧩', U'⧨', 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, U'∕', 0, 0, + U'⧹', U'⧸', 0, 0, U'⧽', U'⧼', 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, U'⨬', U'⨫', U'⨮', U'⨭', 0, + 0, 0, 0, 0, U'⨵', U'⨴', 0, 0, + 0, 0, 0, 0, U'⨽', U'⨼', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, U'⩥', U'⩤', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, U'⩺', U'⩹', U'⩼', U'⩻', U'⩾', U'⩽', U'⪀'}, + {U'⩿', U'⪂', U'⪁', U'⪄', U'⪃', U'⪆', U'⪅', U'⪈', + U'⪇', U'⪊', U'⪉', U'⪌', U'⪋', U'⪎', U'⪍', U'⪐', + U'⪏', U'⪒', U'⪑', U'⪔', U'⪓', U'⪖', U'⪕', U'⪘', + U'⪗', U'⪚', U'⪙', U'⪜', U'⪛', U'⪞', U'⪝', U'⪠', + U'⪟', U'⪢', U'⪡', 0, 0, 0, U'⪧', U'⪦', + U'⪩', U'⪨', U'⪫', U'⪪', U'⪭', U'⪬', 0, U'⪰', + U'⪯', U'⪲', U'⪱', U'⪴', U'⪳', U'⪶', U'⪵', U'⪸', + U'⪷', U'⪺', U'⪹', U'⪼', U'⪻', U'⪾', U'⪽', U'⫀', + U'⪿', U'⫂', U'⫁', U'⫄', U'⫃', U'⫆', U'⫅', U'⫈', + U'⫇', U'⫊', U'⫉', U'⫌', U'⫋', U'⫎', U'⫍', U'⫐', + U'⫏', U'⫒', U'⫑', U'⫔', U'⫓', U'⫖', U'⫕', 0, + 0, 0, 0, 0, 0, 0, U'⊦', 0, + 0, 0, 0, U'⊩', U'⊨', U'⊫', 0, 0, + 0, 0, 0, 0, U'⫭', U'⫬', U'∤', 0, + 0, 0, 0, 0, 0, 0, 0, U'⫸', + U'⫷', U'⫺', U'⫹', 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, U'∟', 0}, + {0, 0, U'⸃', U'⸂', U'⸅', U'⸄', 0, 0, + 0, U'⸊', U'⸉', 0, U'⸍', U'⸌', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, U'⸝', U'⸜', 0, 0, + U'⸡', U'⸠', U'⸣', U'⸢', U'⸥', U'⸤', U'⸧', U'⸦', + U'⸩', U'⸨', 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, U'⹖', U'⹕', U'⹘', + U'⹗', U'⹚', U'⹙', U'⹜', U'⹛', 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + U'〉', U'〈', U'》', U'《', U'」', U'「', U'』', U'『', + U'】', U'【', 0, 0, U'〕', U'〔', U'〗', U'〖', + U'〙', U'〘', U'〛', U'〚', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, U'﹚', U'﹙', U'﹜', U'﹛', U'﹞', U'﹝', 0, + 0, 0, 0, 0, U'﹥', U'﹤', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + U')', U'(', 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, U'>', 0, U'<', 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, U']', 0, U'[', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, U'}', 0, U'{', 0, U'⦆', + U'⦅', 0, U'」', U'「', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, }; -_MLIB_DEFINE_BSEARCH_KV(rune, lookup, 0) - rune uprop_get_bmg(rune ch) { - return ch < lengthof(lookup_lat1) ? lookup_lat1[ch] : mlib_lookup_kv(ch); + rune hc = stage2[stage1[ch / 128]][ch % 128]; + return hc == 0 ? ch : hc; } diff --git a/lib/unicode/prop/uprop_get_bpb.c b/lib/unicode/prop/uprop_get_bpb.c index 2b7eb10..3dba028 100644 --- a/lib/unicode/prop/uprop_get_bpb.c +++ b/lib/unicode/prop/uprop_get_bpb.c @@ -1,176 +1,784 @@ /* This file is autogenerated by gen/prop/bpb; DO NOT EDIT. */ -#include "_bsearch.h" -#include "macros.h" -#include "rune.h" #include "unicode/prop.h" -static constexpr rune lookup_lat1[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x29, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x5D, 0x00, 0x5B, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7D, 0x00, 0x7B, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +static constexpr uint8_t stage1[] = { + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 4, 5, 1, 1, 1, 1, 6, 1, 1, 1, 1, 1, 1, 1, 7, 8, + 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 10, 1, 1, 1, + 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 1, 13, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }; -static const struct { - rune k, v; -} lookup[] = { - {RUNE_C(0x000F3A), RUNE_C(0x000F3B)}, - {RUNE_C(0x000F3B), RUNE_C(0x000F3A)}, - {RUNE_C(0x000F3C), RUNE_C(0x000F3D)}, - {RUNE_C(0x000F3D), RUNE_C(0x000F3C)}, - {RUNE_C(0x00169B), RUNE_C(0x00169C)}, - {RUNE_C(0x00169C), RUNE_C(0x00169B)}, - {RUNE_C(0x002045), RUNE_C(0x002046)}, - {RUNE_C(0x002046), RUNE_C(0x002045)}, - {RUNE_C(0x00207D), RUNE_C(0x00207E)}, - {RUNE_C(0x00207E), RUNE_C(0x00207D)}, - {RUNE_C(0x00208D), RUNE_C(0x00208E)}, - {RUNE_C(0x00208E), RUNE_C(0x00208D)}, - {RUNE_C(0x002308), RUNE_C(0x002309)}, - {RUNE_C(0x002309), RUNE_C(0x002308)}, - {RUNE_C(0x00230A), RUNE_C(0x00230B)}, - {RUNE_C(0x00230B), RUNE_C(0x00230A)}, - {RUNE_C(0x002329), RUNE_C(0x00232A)}, - {RUNE_C(0x00232A), RUNE_C(0x002329)}, - {RUNE_C(0x002768), RUNE_C(0x002769)}, - {RUNE_C(0x002769), RUNE_C(0x002768)}, - {RUNE_C(0x00276A), RUNE_C(0x00276B)}, - {RUNE_C(0x00276B), RUNE_C(0x00276A)}, - {RUNE_C(0x00276C), RUNE_C(0x00276D)}, - {RUNE_C(0x00276D), RUNE_C(0x00276C)}, - {RUNE_C(0x00276E), RUNE_C(0x00276F)}, - {RUNE_C(0x00276F), RUNE_C(0x00276E)}, - {RUNE_C(0x002770), RUNE_C(0x002771)}, - {RUNE_C(0x002771), RUNE_C(0x002770)}, - {RUNE_C(0x002772), RUNE_C(0x002773)}, - {RUNE_C(0x002773), RUNE_C(0x002772)}, - {RUNE_C(0x002774), RUNE_C(0x002775)}, - {RUNE_C(0x002775), RUNE_C(0x002774)}, - {RUNE_C(0x0027C5), RUNE_C(0x0027C6)}, - {RUNE_C(0x0027C6), RUNE_C(0x0027C5)}, - {RUNE_C(0x0027E6), RUNE_C(0x0027E7)}, - {RUNE_C(0x0027E7), RUNE_C(0x0027E6)}, - {RUNE_C(0x0027E8), RUNE_C(0x0027E9)}, - {RUNE_C(0x0027E9), RUNE_C(0x0027E8)}, - {RUNE_C(0x0027EA), RUNE_C(0x0027EB)}, - {RUNE_C(0x0027EB), RUNE_C(0x0027EA)}, - {RUNE_C(0x0027EC), RUNE_C(0x0027ED)}, - {RUNE_C(0x0027ED), RUNE_C(0x0027EC)}, - {RUNE_C(0x0027EE), RUNE_C(0x0027EF)}, - {RUNE_C(0x0027EF), RUNE_C(0x0027EE)}, - {RUNE_C(0x002983), RUNE_C(0x002984)}, - {RUNE_C(0x002984), RUNE_C(0x002983)}, - {RUNE_C(0x002985), RUNE_C(0x002986)}, - {RUNE_C(0x002986), RUNE_C(0x002985)}, - {RUNE_C(0x002987), RUNE_C(0x002988)}, - {RUNE_C(0x002988), RUNE_C(0x002987)}, - {RUNE_C(0x002989), RUNE_C(0x00298A)}, - {RUNE_C(0x00298A), RUNE_C(0x002989)}, - {RUNE_C(0x00298B), RUNE_C(0x00298C)}, - {RUNE_C(0x00298C), RUNE_C(0x00298B)}, - {RUNE_C(0x00298D), RUNE_C(0x002990)}, - {RUNE_C(0x00298E), RUNE_C(0x00298F)}, - {RUNE_C(0x00298F), RUNE_C(0x00298E)}, - {RUNE_C(0x002990), RUNE_C(0x00298D)}, - {RUNE_C(0x002991), RUNE_C(0x002992)}, - {RUNE_C(0x002992), RUNE_C(0x002991)}, - {RUNE_C(0x002993), RUNE_C(0x002994)}, - {RUNE_C(0x002994), RUNE_C(0x002993)}, - {RUNE_C(0x002995), RUNE_C(0x002996)}, - {RUNE_C(0x002996), RUNE_C(0x002995)}, - {RUNE_C(0x002997), RUNE_C(0x002998)}, - {RUNE_C(0x002998), RUNE_C(0x002997)}, - {RUNE_C(0x0029D8), RUNE_C(0x0029D9)}, - {RUNE_C(0x0029D9), RUNE_C(0x0029D8)}, - {RUNE_C(0x0029DA), RUNE_C(0x0029DB)}, - {RUNE_C(0x0029DB), RUNE_C(0x0029DA)}, - {RUNE_C(0x0029FC), RUNE_C(0x0029FD)}, - {RUNE_C(0x0029FD), RUNE_C(0x0029FC)}, - {RUNE_C(0x002E22), RUNE_C(0x002E23)}, - {RUNE_C(0x002E23), RUNE_C(0x002E22)}, - {RUNE_C(0x002E24), RUNE_C(0x002E25)}, - {RUNE_C(0x002E25), RUNE_C(0x002E24)}, - {RUNE_C(0x002E26), RUNE_C(0x002E27)}, - {RUNE_C(0x002E27), RUNE_C(0x002E26)}, - {RUNE_C(0x002E28), RUNE_C(0x002E29)}, - {RUNE_C(0x002E29), RUNE_C(0x002E28)}, - {RUNE_C(0x002E55), RUNE_C(0x002E56)}, - {RUNE_C(0x002E56), RUNE_C(0x002E55)}, - {RUNE_C(0x002E57), RUNE_C(0x002E58)}, - {RUNE_C(0x002E58), RUNE_C(0x002E57)}, - {RUNE_C(0x002E59), RUNE_C(0x002E5A)}, - {RUNE_C(0x002E5A), RUNE_C(0x002E59)}, - {RUNE_C(0x002E5B), RUNE_C(0x002E5C)}, - {RUNE_C(0x002E5C), RUNE_C(0x002E5B)}, - {RUNE_C(0x003008), RUNE_C(0x003009)}, - {RUNE_C(0x003009), RUNE_C(0x003008)}, - {RUNE_C(0x00300A), RUNE_C(0x00300B)}, - {RUNE_C(0x00300B), RUNE_C(0x00300A)}, - {RUNE_C(0x00300C), RUNE_C(0x00300D)}, - {RUNE_C(0x00300D), RUNE_C(0x00300C)}, - {RUNE_C(0x00300E), RUNE_C(0x00300F)}, - {RUNE_C(0x00300F), RUNE_C(0x00300E)}, - {RUNE_C(0x003010), RUNE_C(0x003011)}, - {RUNE_C(0x003011), RUNE_C(0x003010)}, - {RUNE_C(0x003014), RUNE_C(0x003015)}, - {RUNE_C(0x003015), RUNE_C(0x003014)}, - {RUNE_C(0x003016), RUNE_C(0x003017)}, - {RUNE_C(0x003017), RUNE_C(0x003016)}, - {RUNE_C(0x003018), RUNE_C(0x003019)}, - {RUNE_C(0x003019), RUNE_C(0x003018)}, - {RUNE_C(0x00301A), RUNE_C(0x00301B)}, - {RUNE_C(0x00301B), RUNE_C(0x00301A)}, - {RUNE_C(0x00FE59), RUNE_C(0x00FE5A)}, - {RUNE_C(0x00FE5A), RUNE_C(0x00FE59)}, - {RUNE_C(0x00FE5B), RUNE_C(0x00FE5C)}, - {RUNE_C(0x00FE5C), RUNE_C(0x00FE5B)}, - {RUNE_C(0x00FE5D), RUNE_C(0x00FE5E)}, - {RUNE_C(0x00FE5E), RUNE_C(0x00FE5D)}, - {RUNE_C(0x00FF08), RUNE_C(0x00FF09)}, - {RUNE_C(0x00FF09), RUNE_C(0x00FF08)}, - {RUNE_C(0x00FF3B), RUNE_C(0x00FF3D)}, - {RUNE_C(0x00FF3D), RUNE_C(0x00FF3B)}, - {RUNE_C(0x00FF5B), RUNE_C(0x00FF5D)}, - {RUNE_C(0x00FF5D), RUNE_C(0x00FF5B)}, - {RUNE_C(0x00FF5F), RUNE_C(0x00FF60)}, - {RUNE_C(0x00FF60), RUNE_C(0x00FF5F)}, - {RUNE_C(0x00FF62), RUNE_C(0x00FF63)}, - {RUNE_C(0x00FF63), RUNE_C(0x00FF62)}, +static constexpr rune stage2[][128] = { + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + ')', '(', 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, ']', 0, '[', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, '}', 0, '{', 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, U'༻', U'༺', U'༽', U'༼', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, U'᚜', U'᚛', 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, U'⁆', U'⁅', 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, U'⁾', U'⁽', 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, U'₎', U'₍', 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + U'⌉', U'⌈', U'⌋', U'⌊', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, U'〉', U'〈', 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + U'❩', U'❨', U'❫', U'❪', U'❭', U'❬', U'❯', U'❮', + U'❱', U'❰', U'❳', U'❲', U'❵', U'❴', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, U'⟆', U'⟅', 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, U'⟧', U'⟦', + U'⟩', U'⟨', U'⟫', U'⟪', U'⟭', U'⟬', U'⟯', U'⟮', + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, U'⦄', U'⦃', U'⦆', U'⦅', U'⦈', + U'⦇', U'⦊', U'⦉', U'⦌', U'⦋', U'⦐', U'⦏', U'⦎', + U'⦍', U'⦒', U'⦑', U'⦔', U'⦓', U'⦖', U'⦕', U'⦘', + U'⦗', 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + U'⧙', U'⧘', U'⧛', U'⧚', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, U'⧽', U'⧼', 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, U'⸣', U'⸢', U'⸥', U'⸤', U'⸧', U'⸦', + U'⸩', U'⸨', 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, U'⹖', U'⹕', U'⹘', + U'⹗', U'⹚', U'⹙', U'⹜', U'⹛', 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + U'〉', U'〈', U'》', U'《', U'」', U'「', U'』', U'『', + U'】', U'【', 0, 0, U'〕', U'〔', U'〗', U'〖', + U'〙', U'〘', U'〛', U'〚', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, U'﹚', U'﹙', U'﹜', U'﹛', U'﹞', U'﹝', 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + U')', U'(', 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, U']', 0, U'[', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, U'}', 0, U'{', 0, U'⦆', + U'⦅', 0, U'」', U'「', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, }; -_MLIB_DEFINE_BSEARCH_KV(rune, lookup, 0) - rune uprop_get_bpb(rune ch) { - return ch < lengthof(lookup_lat1) ? lookup_lat1[ch] : mlib_lookup_kv(ch); + rune hc = stage2[stage1[ch / 128]][ch % 128]; + return hc == 0 ? ch : hc; } diff --git a/lib/unicode/prop/uprop_get_ea.c b/lib/unicode/prop/uprop_get_ea.c index 07642a7..a0a9a82 100644 --- a/lib/unicode/prop/uprop_get_ea.c +++ b/lib/unicode/prop/uprop_get_ea.c @@ -1,1188 +1,4431 @@ /* This file is autogenerated by gen/prop/ea; DO NOT EDIT. */ -#include "_bsearch.h" -#include "macros.h" -#include "rune.h" #include "unicode/prop.h" -static constexpr enum uprop_ea lookup_lat1[] = { - EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, - EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, - EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, - EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, - EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, - EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, - EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, - EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, - EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, - EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, - EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, - EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, - EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, - EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, - EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, - EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, - EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, - EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, - EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, - EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, - EA_N, EA_A, EA_NA, EA_NA, EA_A, EA_NA, EA_NA, EA_A, - EA_A, EA_N, EA_A, EA_N, EA_NA, EA_A, EA_A, EA_NA, - EA_A, EA_A, EA_A, EA_A, EA_A, EA_N, EA_A, EA_A, - EA_A, EA_A, EA_A, EA_N, EA_A, EA_A, EA_A, EA_A, - EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, EA_N, - EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, - EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, - EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, EA_A, - EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, EA_A, EA_N, - EA_A, EA_A, EA_A, EA_N, EA_A, EA_A, EA_N, EA_N, - EA_A, EA_N, EA_A, EA_A, EA_N, EA_N, EA_N, EA_A, - EA_A, EA_A, EA_A, EA_N, EA_A, EA_N, EA_A, EA_N, +static constexpr uint8_t stage1[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 9, 9, 12, 13, + 14, 15, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 9, 29, 30, 9, 31, 32, 33, 34, 9, 9, 9, 9, 9, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 9, 9, 9, 9, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 9, 9, 9, 66, 9, 9, 67, 68, 9, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 81, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 82, 9, 9, 83, 84, 9, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 94, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 74, 74, 97, 98, 99, 100, 9, 9, 9, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 95, 110, 111, 112, 9, 113, 114, 115, 9, 9, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 95, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 95, 140, 141, 95, 142, 143, 144, 145, 95, + 146, 147, 148, 149, 150, 151, 152, 95, 153, 154, 155, 156, 95, 157, 158, 159, + 9, 9, 9, 9, 9, 9, 9, 160, 161, 9, 162, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 163, + 9, 9, 9, 9, 9, 9, 9, 9, 164, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 9, 9, 9, 9, 165, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 9, 9, 9, 9, 166, 167, 168, 169, 95, 95, 95, 95, 170, 171, 172, 173, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 174, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 175, 176, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 177, + 74, 74, 178, 74, 74, 179, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 180, 181, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 182, 162, + 9, 183, 184, 185, 186, 187, 188, 95, 189, 190, 191, 9, 9, 192, 9, 193, + 9, 9, 9, 9, 9, 194, 95, 95, 95, 95, 95, 95, 95, 95, 195, 95, + 196, 197, 198, 95, 95, 199, 95, 95, 95, 200, 95, 95, 95, 95, 95, 201, + 9, 202, 203, 95, 95, 95, 95, 95, 204, 205, 206, 95, 207, 208, 95, 95, + 209, 210, 211, 212, 213, 95, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 74, 227, 228, 9, 229, 95, 95, 95, 95, 95, 95, 95, 95, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 230, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 231, 74, + 232, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 233, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 234, 74, 74, 74, 74, 235, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 74, 74, 74, 74, 236, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 237, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 238, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 239, 95, 96, 240, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 241, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 241, }; -static const struct { - rune lo, hi; - enum uprop_ea val; -} lookup[] = { - {RUNE_C(0x000100), RUNE_C(0x000100), EA_N}, - {RUNE_C(0x000101), RUNE_C(0x000101), EA_A}, - {RUNE_C(0x000102), RUNE_C(0x000110), EA_N}, - {RUNE_C(0x000111), RUNE_C(0x000111), EA_A}, - {RUNE_C(0x000112), RUNE_C(0x000112), EA_N}, - {RUNE_C(0x000113), RUNE_C(0x000113), EA_A}, - {RUNE_C(0x000114), RUNE_C(0x00011A), EA_N}, - {RUNE_C(0x00011B), RUNE_C(0x00011B), EA_A}, - {RUNE_C(0x00011C), RUNE_C(0x000125), EA_N}, - {RUNE_C(0x000126), RUNE_C(0x000127), EA_A}, - {RUNE_C(0x000128), RUNE_C(0x00012A), EA_N}, - {RUNE_C(0x00012B), RUNE_C(0x00012B), EA_A}, - {RUNE_C(0x00012C), RUNE_C(0x000130), EA_N}, - {RUNE_C(0x000131), RUNE_C(0x000133), EA_A}, - {RUNE_C(0x000134), RUNE_C(0x000137), EA_N}, - {RUNE_C(0x000138), RUNE_C(0x000138), EA_A}, - {RUNE_C(0x000139), RUNE_C(0x00013E), EA_N}, - {RUNE_C(0x00013F), RUNE_C(0x000142), EA_A}, - {RUNE_C(0x000143), RUNE_C(0x000143), EA_N}, - {RUNE_C(0x000144), RUNE_C(0x000144), EA_A}, - {RUNE_C(0x000145), RUNE_C(0x000147), EA_N}, - {RUNE_C(0x000148), RUNE_C(0x00014B), EA_A}, - {RUNE_C(0x00014C), RUNE_C(0x00014C), EA_N}, - {RUNE_C(0x00014D), RUNE_C(0x00014D), EA_A}, - {RUNE_C(0x00014E), RUNE_C(0x000151), EA_N}, - {RUNE_C(0x000152), RUNE_C(0x000153), EA_A}, - {RUNE_C(0x000154), RUNE_C(0x000165), EA_N}, - {RUNE_C(0x000166), RUNE_C(0x000167), EA_A}, - {RUNE_C(0x000168), RUNE_C(0x00016A), EA_N}, - {RUNE_C(0x00016B), RUNE_C(0x00016B), EA_A}, - {RUNE_C(0x00016C), RUNE_C(0x0001CD), EA_N}, - {RUNE_C(0x0001CE), RUNE_C(0x0001CE), EA_A}, - {RUNE_C(0x0001CF), RUNE_C(0x0001CF), EA_N}, - {RUNE_C(0x0001D0), RUNE_C(0x0001D0), EA_A}, - {RUNE_C(0x0001D1), RUNE_C(0x0001D1), EA_N}, - {RUNE_C(0x0001D2), RUNE_C(0x0001D2), EA_A}, - {RUNE_C(0x0001D3), RUNE_C(0x0001D3), EA_N}, - {RUNE_C(0x0001D4), RUNE_C(0x0001D4), EA_A}, - {RUNE_C(0x0001D5), RUNE_C(0x0001D5), EA_N}, - {RUNE_C(0x0001D6), RUNE_C(0x0001D6), EA_A}, - {RUNE_C(0x0001D7), RUNE_C(0x0001D7), EA_N}, - {RUNE_C(0x0001D8), RUNE_C(0x0001D8), EA_A}, - {RUNE_C(0x0001D9), RUNE_C(0x0001D9), EA_N}, - {RUNE_C(0x0001DA), RUNE_C(0x0001DA), EA_A}, - {RUNE_C(0x0001DB), RUNE_C(0x0001DB), EA_N}, - {RUNE_C(0x0001DC), RUNE_C(0x0001DC), EA_A}, - {RUNE_C(0x0001DD), RUNE_C(0x000250), EA_N}, - {RUNE_C(0x000251), RUNE_C(0x000251), EA_A}, - {RUNE_C(0x000252), RUNE_C(0x000260), EA_N}, - {RUNE_C(0x000261), RUNE_C(0x000261), EA_A}, - {RUNE_C(0x000262), RUNE_C(0x0002C3), EA_N}, - {RUNE_C(0x0002C4), RUNE_C(0x0002C4), EA_A}, - {RUNE_C(0x0002C5), RUNE_C(0x0002C6), EA_N}, - {RUNE_C(0x0002C7), RUNE_C(0x0002C7), EA_A}, - {RUNE_C(0x0002C8), RUNE_C(0x0002C8), EA_N}, - {RUNE_C(0x0002C9), RUNE_C(0x0002CB), EA_A}, - {RUNE_C(0x0002CC), RUNE_C(0x0002CC), EA_N}, - {RUNE_C(0x0002CD), RUNE_C(0x0002CD), EA_A}, - {RUNE_C(0x0002CE), RUNE_C(0x0002CF), EA_N}, - {RUNE_C(0x0002D0), RUNE_C(0x0002D0), EA_A}, - {RUNE_C(0x0002D1), RUNE_C(0x0002D7), EA_N}, - {RUNE_C(0x0002D8), RUNE_C(0x0002DB), EA_A}, - {RUNE_C(0x0002DC), RUNE_C(0x0002DC), EA_N}, - {RUNE_C(0x0002DD), RUNE_C(0x0002DD), EA_A}, - {RUNE_C(0x0002DE), RUNE_C(0x0002DE), EA_N}, - {RUNE_C(0x0002DF), RUNE_C(0x0002DF), EA_A}, - {RUNE_C(0x0002E0), RUNE_C(0x0002FF), EA_N}, - {RUNE_C(0x000300), RUNE_C(0x00036F), EA_A}, - {RUNE_C(0x000370), RUNE_C(0x000377), EA_N}, - {RUNE_C(0x00037A), RUNE_C(0x00037F), EA_N}, - {RUNE_C(0x000384), RUNE_C(0x00038A), EA_N}, - {RUNE_C(0x00038C), RUNE_C(0x00038C), EA_N}, - {RUNE_C(0x00038E), RUNE_C(0x000390), EA_N}, - {RUNE_C(0x000391), RUNE_C(0x0003A1), EA_A}, - {RUNE_C(0x0003A3), RUNE_C(0x0003A9), EA_A}, - {RUNE_C(0x0003AA), RUNE_C(0x0003B0), EA_N}, - {RUNE_C(0x0003B1), RUNE_C(0x0003C1), EA_A}, - {RUNE_C(0x0003C2), RUNE_C(0x0003C2), EA_N}, - {RUNE_C(0x0003C3), RUNE_C(0x0003C9), EA_A}, - {RUNE_C(0x0003CA), RUNE_C(0x000400), EA_N}, - {RUNE_C(0x000401), RUNE_C(0x000401), EA_A}, - {RUNE_C(0x000402), RUNE_C(0x00040F), EA_N}, - {RUNE_C(0x000410), RUNE_C(0x00044F), EA_A}, - {RUNE_C(0x000450), RUNE_C(0x000450), EA_N}, - {RUNE_C(0x000451), RUNE_C(0x000451), EA_A}, - {RUNE_C(0x000452), RUNE_C(0x00052F), EA_N}, - {RUNE_C(0x000531), RUNE_C(0x000556), EA_N}, - {RUNE_C(0x000559), RUNE_C(0x00058A), EA_N}, - {RUNE_C(0x00058D), RUNE_C(0x00058F), EA_N}, - {RUNE_C(0x000591), RUNE_C(0x0005C7), EA_N}, - {RUNE_C(0x0005D0), RUNE_C(0x0005EA), EA_N}, - {RUNE_C(0x0005EF), RUNE_C(0x0005F4), EA_N}, - {RUNE_C(0x000600), RUNE_C(0x00070D), EA_N}, - {RUNE_C(0x00070F), RUNE_C(0x00074A), EA_N}, - {RUNE_C(0x00074D), RUNE_C(0x0007B1), EA_N}, - {RUNE_C(0x0007C0), RUNE_C(0x0007FA), EA_N}, - {RUNE_C(0x0007FD), RUNE_C(0x00082D), EA_N}, - {RUNE_C(0x000830), RUNE_C(0x00083E), EA_N}, - {RUNE_C(0x000840), RUNE_C(0x00085B), EA_N}, - {RUNE_C(0x00085E), RUNE_C(0x00085E), EA_N}, - {RUNE_C(0x000860), RUNE_C(0x00086A), EA_N}, - {RUNE_C(0x000870), RUNE_C(0x00088E), EA_N}, - {RUNE_C(0x000890), RUNE_C(0x000891), EA_N}, - {RUNE_C(0x000898), RUNE_C(0x000983), EA_N}, - {RUNE_C(0x000985), RUNE_C(0x00098C), EA_N}, - {RUNE_C(0x00098F), RUNE_C(0x000990), EA_N}, - {RUNE_C(0x000993), RUNE_C(0x0009A8), EA_N}, - {RUNE_C(0x0009AA), RUNE_C(0x0009B0), EA_N}, - {RUNE_C(0x0009B2), RUNE_C(0x0009B2), EA_N}, - {RUNE_C(0x0009B6), RUNE_C(0x0009B9), EA_N}, - {RUNE_C(0x0009BC), RUNE_C(0x0009C4), EA_N}, - {RUNE_C(0x0009C7), RUNE_C(0x0009C8), EA_N}, - {RUNE_C(0x0009CB), RUNE_C(0x0009CE), EA_N}, - {RUNE_C(0x0009D7), RUNE_C(0x0009D7), EA_N}, - {RUNE_C(0x0009DC), RUNE_C(0x0009DD), EA_N}, - {RUNE_C(0x0009DF), RUNE_C(0x0009E3), EA_N}, - {RUNE_C(0x0009E6), RUNE_C(0x0009FE), EA_N}, - {RUNE_C(0x000A01), RUNE_C(0x000A03), EA_N}, - {RUNE_C(0x000A05), RUNE_C(0x000A0A), EA_N}, - {RUNE_C(0x000A0F), RUNE_C(0x000A10), EA_N}, - {RUNE_C(0x000A13), RUNE_C(0x000A28), EA_N}, - {RUNE_C(0x000A2A), RUNE_C(0x000A30), EA_N}, - {RUNE_C(0x000A32), RUNE_C(0x000A33), EA_N}, - {RUNE_C(0x000A35), RUNE_C(0x000A36), EA_N}, - {RUNE_C(0x000A38), RUNE_C(0x000A39), EA_N}, - {RUNE_C(0x000A3C), RUNE_C(0x000A3C), EA_N}, - {RUNE_C(0x000A3E), RUNE_C(0x000A42), EA_N}, - {RUNE_C(0x000A47), RUNE_C(0x000A48), EA_N}, - {RUNE_C(0x000A4B), RUNE_C(0x000A4D), EA_N}, - {RUNE_C(0x000A51), RUNE_C(0x000A51), EA_N}, - {RUNE_C(0x000A59), RUNE_C(0x000A5C), EA_N}, - {RUNE_C(0x000A5E), RUNE_C(0x000A5E), EA_N}, - {RUNE_C(0x000A66), RUNE_C(0x000A76), EA_N}, - {RUNE_C(0x000A81), RUNE_C(0x000A83), EA_N}, - {RUNE_C(0x000A85), RUNE_C(0x000A8D), EA_N}, - {RUNE_C(0x000A8F), RUNE_C(0x000A91), EA_N}, - {RUNE_C(0x000A93), RUNE_C(0x000AA8), EA_N}, - {RUNE_C(0x000AAA), RUNE_C(0x000AB0), EA_N}, - {RUNE_C(0x000AB2), RUNE_C(0x000AB3), EA_N}, - {RUNE_C(0x000AB5), RUNE_C(0x000AB9), EA_N}, - {RUNE_C(0x000ABC), RUNE_C(0x000AC5), EA_N}, - {RUNE_C(0x000AC7), RUNE_C(0x000AC9), EA_N}, - {RUNE_C(0x000ACB), RUNE_C(0x000ACD), EA_N}, - {RUNE_C(0x000AD0), RUNE_C(0x000AD0), EA_N}, - {RUNE_C(0x000AE0), RUNE_C(0x000AE3), EA_N}, - {RUNE_C(0x000AE6), RUNE_C(0x000AF1), EA_N}, - {RUNE_C(0x000AF9), RUNE_C(0x000AFF), EA_N}, - {RUNE_C(0x000B01), RUNE_C(0x000B03), EA_N}, - {RUNE_C(0x000B05), RUNE_C(0x000B0C), EA_N}, - {RUNE_C(0x000B0F), RUNE_C(0x000B10), EA_N}, - {RUNE_C(0x000B13), RUNE_C(0x000B28), EA_N}, - {RUNE_C(0x000B2A), RUNE_C(0x000B30), EA_N}, - {RUNE_C(0x000B32), RUNE_C(0x000B33), EA_N}, - {RUNE_C(0x000B35), RUNE_C(0x000B39), EA_N}, - {RUNE_C(0x000B3C), RUNE_C(0x000B44), EA_N}, - {RUNE_C(0x000B47), RUNE_C(0x000B48), EA_N}, - {RUNE_C(0x000B4B), RUNE_C(0x000B4D), EA_N}, - {RUNE_C(0x000B55), RUNE_C(0x000B57), EA_N}, - {RUNE_C(0x000B5C), RUNE_C(0x000B5D), EA_N}, - {RUNE_C(0x000B5F), RUNE_C(0x000B63), EA_N}, - {RUNE_C(0x000B66), RUNE_C(0x000B77), EA_N}, - {RUNE_C(0x000B82), RUNE_C(0x000B83), EA_N}, - {RUNE_C(0x000B85), RUNE_C(0x000B8A), EA_N}, - {RUNE_C(0x000B8E), RUNE_C(0x000B90), EA_N}, - {RUNE_C(0x000B92), RUNE_C(0x000B95), EA_N}, - {RUNE_C(0x000B99), RUNE_C(0x000B9A), EA_N}, - {RUNE_C(0x000B9C), RUNE_C(0x000B9C), EA_N}, - {RUNE_C(0x000B9E), RUNE_C(0x000B9F), EA_N}, - {RUNE_C(0x000BA3), RUNE_C(0x000BA4), EA_N}, - {RUNE_C(0x000BA8), RUNE_C(0x000BAA), EA_N}, - {RUNE_C(0x000BAE), RUNE_C(0x000BB9), EA_N}, - {RUNE_C(0x000BBE), RUNE_C(0x000BC2), EA_N}, - {RUNE_C(0x000BC6), RUNE_C(0x000BC8), EA_N}, - {RUNE_C(0x000BCA), RUNE_C(0x000BCD), EA_N}, - {RUNE_C(0x000BD0), RUNE_C(0x000BD0), EA_N}, - {RUNE_C(0x000BD7), RUNE_C(0x000BD7), EA_N}, - {RUNE_C(0x000BE6), RUNE_C(0x000BFA), EA_N}, - {RUNE_C(0x000C00), RUNE_C(0x000C0C), EA_N}, - {RUNE_C(0x000C0E), RUNE_C(0x000C10), EA_N}, - {RUNE_C(0x000C12), RUNE_C(0x000C28), EA_N}, - {RUNE_C(0x000C2A), RUNE_C(0x000C39), EA_N}, - {RUNE_C(0x000C3C), RUNE_C(0x000C44), EA_N}, - {RUNE_C(0x000C46), RUNE_C(0x000C48), EA_N}, - {RUNE_C(0x000C4A), RUNE_C(0x000C4D), EA_N}, - {RUNE_C(0x000C55), RUNE_C(0x000C56), EA_N}, - {RUNE_C(0x000C58), RUNE_C(0x000C5A), EA_N}, - {RUNE_C(0x000C5D), RUNE_C(0x000C5D), EA_N}, - {RUNE_C(0x000C60), RUNE_C(0x000C63), EA_N}, - {RUNE_C(0x000C66), RUNE_C(0x000C6F), EA_N}, - {RUNE_C(0x000C77), RUNE_C(0x000C8C), EA_N}, - {RUNE_C(0x000C8E), RUNE_C(0x000C90), EA_N}, - {RUNE_C(0x000C92), RUNE_C(0x000CA8), EA_N}, - {RUNE_C(0x000CAA), RUNE_C(0x000CB3), EA_N}, - {RUNE_C(0x000CB5), RUNE_C(0x000CB9), EA_N}, - {RUNE_C(0x000CBC), RUNE_C(0x000CC4), EA_N}, - {RUNE_C(0x000CC6), RUNE_C(0x000CC8), EA_N}, - {RUNE_C(0x000CCA), RUNE_C(0x000CCD), EA_N}, - {RUNE_C(0x000CD5), RUNE_C(0x000CD6), EA_N}, - {RUNE_C(0x000CDD), RUNE_C(0x000CDE), EA_N}, - {RUNE_C(0x000CE0), RUNE_C(0x000CE3), EA_N}, - {RUNE_C(0x000CE6), RUNE_C(0x000CEF), EA_N}, - {RUNE_C(0x000CF1), RUNE_C(0x000CF3), EA_N}, - {RUNE_C(0x000D00), RUNE_C(0x000D0C), EA_N}, - {RUNE_C(0x000D0E), RUNE_C(0x000D10), EA_N}, - {RUNE_C(0x000D12), RUNE_C(0x000D44), EA_N}, - {RUNE_C(0x000D46), RUNE_C(0x000D48), EA_N}, - {RUNE_C(0x000D4A), RUNE_C(0x000D4F), EA_N}, - {RUNE_C(0x000D54), RUNE_C(0x000D63), EA_N}, - {RUNE_C(0x000D66), RUNE_C(0x000D7F), EA_N}, - {RUNE_C(0x000D81), RUNE_C(0x000D83), EA_N}, - {RUNE_C(0x000D85), RUNE_C(0x000D96), EA_N}, - {RUNE_C(0x000D9A), RUNE_C(0x000DB1), EA_N}, - {RUNE_C(0x000DB3), RUNE_C(0x000DBB), EA_N}, - {RUNE_C(0x000DBD), RUNE_C(0x000DBD), EA_N}, - {RUNE_C(0x000DC0), RUNE_C(0x000DC6), EA_N}, - {RUNE_C(0x000DCA), RUNE_C(0x000DCA), EA_N}, - {RUNE_C(0x000DCF), RUNE_C(0x000DD4), EA_N}, - {RUNE_C(0x000DD6), RUNE_C(0x000DD6), EA_N}, - {RUNE_C(0x000DD8), RUNE_C(0x000DDF), EA_N}, - {RUNE_C(0x000DE6), RUNE_C(0x000DEF), EA_N}, - {RUNE_C(0x000DF2), RUNE_C(0x000DF4), EA_N}, - {RUNE_C(0x000E01), RUNE_C(0x000E3A), EA_N}, - {RUNE_C(0x000E3F), RUNE_C(0x000E5B), EA_N}, - {RUNE_C(0x000E81), RUNE_C(0x000E82), EA_N}, - {RUNE_C(0x000E84), RUNE_C(0x000E84), EA_N}, - {RUNE_C(0x000E86), RUNE_C(0x000E8A), EA_N}, - {RUNE_C(0x000E8C), RUNE_C(0x000EA3), EA_N}, - {RUNE_C(0x000EA5), RUNE_C(0x000EA5), EA_N}, - {RUNE_C(0x000EA7), RUNE_C(0x000EBD), EA_N}, - {RUNE_C(0x000EC0), RUNE_C(0x000EC4), EA_N}, - {RUNE_C(0x000EC6), RUNE_C(0x000EC6), EA_N}, - {RUNE_C(0x000EC8), RUNE_C(0x000ECE), EA_N}, - {RUNE_C(0x000ED0), RUNE_C(0x000ED9), EA_N}, - {RUNE_C(0x000EDC), RUNE_C(0x000EDF), EA_N}, - {RUNE_C(0x000F00), RUNE_C(0x000F47), EA_N}, - {RUNE_C(0x000F49), RUNE_C(0x000F6C), EA_N}, - {RUNE_C(0x000F71), RUNE_C(0x000F97), EA_N}, - {RUNE_C(0x000F99), RUNE_C(0x000FBC), EA_N}, - {RUNE_C(0x000FBE), RUNE_C(0x000FCC), EA_N}, - {RUNE_C(0x000FCE), RUNE_C(0x000FDA), EA_N}, - {RUNE_C(0x001000), RUNE_C(0x0010C5), EA_N}, - {RUNE_C(0x0010C7), RUNE_C(0x0010C7), EA_N}, - {RUNE_C(0x0010CD), RUNE_C(0x0010CD), EA_N}, - {RUNE_C(0x0010D0), RUNE_C(0x0010FF), EA_N}, - {RUNE_C(0x001100), RUNE_C(0x00115F), EA_W}, - {RUNE_C(0x001160), RUNE_C(0x001248), EA_N}, - {RUNE_C(0x00124A), RUNE_C(0x00124D), EA_N}, - {RUNE_C(0x001250), RUNE_C(0x001256), EA_N}, - {RUNE_C(0x001258), RUNE_C(0x001258), EA_N}, - {RUNE_C(0x00125A), RUNE_C(0x00125D), EA_N}, - {RUNE_C(0x001260), RUNE_C(0x001288), EA_N}, - {RUNE_C(0x00128A), RUNE_C(0x00128D), EA_N}, - {RUNE_C(0x001290), RUNE_C(0x0012B0), EA_N}, - {RUNE_C(0x0012B2), RUNE_C(0x0012B5), EA_N}, - {RUNE_C(0x0012B8), RUNE_C(0x0012BE), EA_N}, - {RUNE_C(0x0012C0), RUNE_C(0x0012C0), EA_N}, - {RUNE_C(0x0012C2), RUNE_C(0x0012C5), EA_N}, - {RUNE_C(0x0012C8), RUNE_C(0x0012D6), EA_N}, - {RUNE_C(0x0012D8), RUNE_C(0x001310), EA_N}, - {RUNE_C(0x001312), RUNE_C(0x001315), EA_N}, - {RUNE_C(0x001318), RUNE_C(0x00135A), EA_N}, - {RUNE_C(0x00135D), RUNE_C(0x00137C), EA_N}, - {RUNE_C(0x001380), RUNE_C(0x001399), EA_N}, - {RUNE_C(0x0013A0), RUNE_C(0x0013F5), EA_N}, - {RUNE_C(0x0013F8), RUNE_C(0x0013FD), EA_N}, - {RUNE_C(0x001400), RUNE_C(0x00169C), EA_N}, - {RUNE_C(0x0016A0), RUNE_C(0x0016F8), EA_N}, - {RUNE_C(0x001700), RUNE_C(0x001715), EA_N}, - {RUNE_C(0x00171F), RUNE_C(0x001736), EA_N}, - {RUNE_C(0x001740), RUNE_C(0x001753), EA_N}, - {RUNE_C(0x001760), RUNE_C(0x00176C), EA_N}, - {RUNE_C(0x00176E), RUNE_C(0x001770), EA_N}, - {RUNE_C(0x001772), RUNE_C(0x001773), EA_N}, - {RUNE_C(0x001780), RUNE_C(0x0017DD), EA_N}, - {RUNE_C(0x0017E0), RUNE_C(0x0017E9), EA_N}, - {RUNE_C(0x0017F0), RUNE_C(0x0017F9), EA_N}, - {RUNE_C(0x001800), RUNE_C(0x001819), EA_N}, - {RUNE_C(0x001820), RUNE_C(0x001878), EA_N}, - {RUNE_C(0x001880), RUNE_C(0x0018AA), EA_N}, - {RUNE_C(0x0018B0), RUNE_C(0x0018F5), EA_N}, - {RUNE_C(0x001900), RUNE_C(0x00191E), EA_N}, - {RUNE_C(0x001920), RUNE_C(0x00192B), EA_N}, - {RUNE_C(0x001930), RUNE_C(0x00193B), EA_N}, - {RUNE_C(0x001940), RUNE_C(0x001940), EA_N}, - {RUNE_C(0x001944), RUNE_C(0x00196D), EA_N}, - {RUNE_C(0x001970), RUNE_C(0x001974), EA_N}, - {RUNE_C(0x001980), RUNE_C(0x0019AB), EA_N}, - {RUNE_C(0x0019B0), RUNE_C(0x0019C9), EA_N}, - {RUNE_C(0x0019D0), RUNE_C(0x0019DA), EA_N}, - {RUNE_C(0x0019DE), RUNE_C(0x001A1B), EA_N}, - {RUNE_C(0x001A1E), RUNE_C(0x001A5E), EA_N}, - {RUNE_C(0x001A60), RUNE_C(0x001A7C), EA_N}, - {RUNE_C(0x001A7F), RUNE_C(0x001A89), EA_N}, - {RUNE_C(0x001A90), RUNE_C(0x001A99), EA_N}, - {RUNE_C(0x001AA0), RUNE_C(0x001AAD), EA_N}, - {RUNE_C(0x001AB0), RUNE_C(0x001ACE), EA_N}, - {RUNE_C(0x001B00), RUNE_C(0x001B4C), EA_N}, - {RUNE_C(0x001B50), RUNE_C(0x001B7E), EA_N}, - {RUNE_C(0x001B80), RUNE_C(0x001BF3), EA_N}, - {RUNE_C(0x001BFC), RUNE_C(0x001C37), EA_N}, - {RUNE_C(0x001C3B), RUNE_C(0x001C49), EA_N}, - {RUNE_C(0x001C4D), RUNE_C(0x001C88), EA_N}, - {RUNE_C(0x001C90), RUNE_C(0x001CBA), EA_N}, - {RUNE_C(0x001CBD), RUNE_C(0x001CC7), EA_N}, - {RUNE_C(0x001CD0), RUNE_C(0x001CFA), EA_N}, - {RUNE_C(0x001D00), RUNE_C(0x001F15), EA_N}, - {RUNE_C(0x001F18), RUNE_C(0x001F1D), EA_N}, - {RUNE_C(0x001F20), RUNE_C(0x001F45), EA_N}, - {RUNE_C(0x001F48), RUNE_C(0x001F4D), EA_N}, - {RUNE_C(0x001F50), RUNE_C(0x001F57), EA_N}, - {RUNE_C(0x001F59), RUNE_C(0x001F59), EA_N}, - {RUNE_C(0x001F5B), RUNE_C(0x001F5B), EA_N}, - {RUNE_C(0x001F5D), RUNE_C(0x001F5D), EA_N}, - {RUNE_C(0x001F5F), RUNE_C(0x001F7D), EA_N}, - {RUNE_C(0x001F80), RUNE_C(0x001FB4), EA_N}, - {RUNE_C(0x001FB6), RUNE_C(0x001FC4), EA_N}, - {RUNE_C(0x001FC6), RUNE_C(0x001FD3), EA_N}, - {RUNE_C(0x001FD6), RUNE_C(0x001FDB), EA_N}, - {RUNE_C(0x001FDD), RUNE_C(0x001FEF), EA_N}, - {RUNE_C(0x001FF2), RUNE_C(0x001FF4), EA_N}, - {RUNE_C(0x001FF6), RUNE_C(0x001FFE), EA_N}, - {RUNE_C(0x002000), RUNE_C(0x00200F), EA_N}, - {RUNE_C(0x002010), RUNE_C(0x002010), EA_A}, - {RUNE_C(0x002011), RUNE_C(0x002012), EA_N}, - {RUNE_C(0x002013), RUNE_C(0x002016), EA_A}, - {RUNE_C(0x002017), RUNE_C(0x002017), EA_N}, - {RUNE_C(0x002018), RUNE_C(0x002019), EA_A}, - {RUNE_C(0x00201A), RUNE_C(0x00201B), EA_N}, - {RUNE_C(0x00201C), RUNE_C(0x00201D), EA_A}, - {RUNE_C(0x00201E), RUNE_C(0x00201F), EA_N}, - {RUNE_C(0x002020), RUNE_C(0x002022), EA_A}, - {RUNE_C(0x002023), RUNE_C(0x002023), EA_N}, - {RUNE_C(0x002024), RUNE_C(0x002027), EA_A}, - {RUNE_C(0x002028), RUNE_C(0x00202F), EA_N}, - {RUNE_C(0x002030), RUNE_C(0x002030), EA_A}, - {RUNE_C(0x002031), RUNE_C(0x002031), EA_N}, - {RUNE_C(0x002032), RUNE_C(0x002033), EA_A}, - {RUNE_C(0x002034), RUNE_C(0x002034), EA_N}, - {RUNE_C(0x002035), RUNE_C(0x002035), EA_A}, - {RUNE_C(0x002036), RUNE_C(0x00203A), EA_N}, - {RUNE_C(0x00203B), RUNE_C(0x00203B), EA_A}, - {RUNE_C(0x00203C), RUNE_C(0x00203D), EA_N}, - {RUNE_C(0x00203E), RUNE_C(0x00203E), EA_A}, - {RUNE_C(0x00203F), RUNE_C(0x002064), EA_N}, - {RUNE_C(0x002066), RUNE_C(0x002071), EA_N}, - {RUNE_C(0x002074), RUNE_C(0x002074), EA_A}, - {RUNE_C(0x002075), RUNE_C(0x00207E), EA_N}, - {RUNE_C(0x00207F), RUNE_C(0x00207F), EA_A}, - {RUNE_C(0x002080), RUNE_C(0x002080), EA_N}, - {RUNE_C(0x002081), RUNE_C(0x002084), EA_A}, - {RUNE_C(0x002085), RUNE_C(0x00208E), EA_N}, - {RUNE_C(0x002090), RUNE_C(0x00209C), EA_N}, - {RUNE_C(0x0020A0), RUNE_C(0x0020A8), EA_N}, - {RUNE_C(0x0020A9), RUNE_C(0x0020A9), EA_H}, - {RUNE_C(0x0020AA), RUNE_C(0x0020AB), EA_N}, - {RUNE_C(0x0020AC), RUNE_C(0x0020AC), EA_A}, - {RUNE_C(0x0020AD), RUNE_C(0x0020C0), EA_N}, - {RUNE_C(0x0020D0), RUNE_C(0x0020F0), EA_N}, - {RUNE_C(0x002100), RUNE_C(0x002102), EA_N}, - {RUNE_C(0x002103), RUNE_C(0x002103), EA_A}, - {RUNE_C(0x002104), RUNE_C(0x002104), EA_N}, - {RUNE_C(0x002105), RUNE_C(0x002105), EA_A}, - {RUNE_C(0x002106), RUNE_C(0x002108), EA_N}, - {RUNE_C(0x002109), RUNE_C(0x002109), EA_A}, - {RUNE_C(0x00210A), RUNE_C(0x002112), EA_N}, - {RUNE_C(0x002113), RUNE_C(0x002113), EA_A}, - {RUNE_C(0x002114), RUNE_C(0x002115), EA_N}, - {RUNE_C(0x002116), RUNE_C(0x002116), EA_A}, - {RUNE_C(0x002117), RUNE_C(0x002120), EA_N}, - {RUNE_C(0x002121), RUNE_C(0x002122), EA_A}, - {RUNE_C(0x002123), RUNE_C(0x002125), EA_N}, - {RUNE_C(0x002126), RUNE_C(0x002126), EA_A}, - {RUNE_C(0x002127), RUNE_C(0x00212A), EA_N}, - {RUNE_C(0x00212B), RUNE_C(0x00212B), EA_A}, - {RUNE_C(0x00212C), RUNE_C(0x002152), EA_N}, - {RUNE_C(0x002153), RUNE_C(0x002154), EA_A}, - {RUNE_C(0x002155), RUNE_C(0x00215A), EA_N}, - {RUNE_C(0x00215B), RUNE_C(0x00215E), EA_A}, - {RUNE_C(0x00215F), RUNE_C(0x00215F), EA_N}, - {RUNE_C(0x002160), RUNE_C(0x00216B), EA_A}, - {RUNE_C(0x00216C), RUNE_C(0x00216F), EA_N}, - {RUNE_C(0x002170), RUNE_C(0x002179), EA_A}, - {RUNE_C(0x00217A), RUNE_C(0x002188), EA_N}, - {RUNE_C(0x002189), RUNE_C(0x002189), EA_A}, - {RUNE_C(0x00218A), RUNE_C(0x00218B), EA_N}, - {RUNE_C(0x002190), RUNE_C(0x002199), EA_A}, - {RUNE_C(0x00219A), RUNE_C(0x0021B7), EA_N}, - {RUNE_C(0x0021B8), RUNE_C(0x0021B9), EA_A}, - {RUNE_C(0x0021BA), RUNE_C(0x0021D1), EA_N}, - {RUNE_C(0x0021D2), RUNE_C(0x0021D2), EA_A}, - {RUNE_C(0x0021D3), RUNE_C(0x0021D3), EA_N}, - {RUNE_C(0x0021D4), RUNE_C(0x0021D4), EA_A}, - {RUNE_C(0x0021D5), RUNE_C(0x0021E6), EA_N}, - {RUNE_C(0x0021E7), RUNE_C(0x0021E7), EA_A}, - {RUNE_C(0x0021E8), RUNE_C(0x0021FF), EA_N}, - {RUNE_C(0x002200), RUNE_C(0x002200), EA_A}, - {RUNE_C(0x002201), RUNE_C(0x002201), EA_N}, - {RUNE_C(0x002202), RUNE_C(0x002203), EA_A}, - {RUNE_C(0x002204), RUNE_C(0x002206), EA_N}, - {RUNE_C(0x002207), RUNE_C(0x002208), EA_A}, - {RUNE_C(0x002209), RUNE_C(0x00220A), EA_N}, - {RUNE_C(0x00220B), RUNE_C(0x00220B), EA_A}, - {RUNE_C(0x00220C), RUNE_C(0x00220E), EA_N}, - {RUNE_C(0x00220F), RUNE_C(0x00220F), EA_A}, - {RUNE_C(0x002210), RUNE_C(0x002210), EA_N}, - {RUNE_C(0x002211), RUNE_C(0x002211), EA_A}, - {RUNE_C(0x002212), RUNE_C(0x002214), EA_N}, - {RUNE_C(0x002215), RUNE_C(0x002215), EA_A}, - {RUNE_C(0x002216), RUNE_C(0x002219), EA_N}, - {RUNE_C(0x00221A), RUNE_C(0x00221A), EA_A}, - {RUNE_C(0x00221B), RUNE_C(0x00221C), EA_N}, - {RUNE_C(0x00221D), RUNE_C(0x002220), EA_A}, - {RUNE_C(0x002221), RUNE_C(0x002222), EA_N}, - {RUNE_C(0x002223), RUNE_C(0x002223), EA_A}, - {RUNE_C(0x002224), RUNE_C(0x002224), EA_N}, - {RUNE_C(0x002225), RUNE_C(0x002225), EA_A}, - {RUNE_C(0x002226), RUNE_C(0x002226), EA_N}, - {RUNE_C(0x002227), RUNE_C(0x00222C), EA_A}, - {RUNE_C(0x00222D), RUNE_C(0x00222D), EA_N}, - {RUNE_C(0x00222E), RUNE_C(0x00222E), EA_A}, - {RUNE_C(0x00222F), RUNE_C(0x002233), EA_N}, - {RUNE_C(0x002234), RUNE_C(0x002237), EA_A}, - {RUNE_C(0x002238), RUNE_C(0x00223B), EA_N}, - {RUNE_C(0x00223C), RUNE_C(0x00223D), EA_A}, - {RUNE_C(0x00223E), RUNE_C(0x002247), EA_N}, - {RUNE_C(0x002248), RUNE_C(0x002248), EA_A}, - {RUNE_C(0x002249), RUNE_C(0x00224B), EA_N}, - {RUNE_C(0x00224C), RUNE_C(0x00224C), EA_A}, - {RUNE_C(0x00224D), RUNE_C(0x002251), EA_N}, - {RUNE_C(0x002252), RUNE_C(0x002252), EA_A}, - {RUNE_C(0x002253), RUNE_C(0x00225F), EA_N}, - {RUNE_C(0x002260), RUNE_C(0x002261), EA_A}, - {RUNE_C(0x002262), RUNE_C(0x002263), EA_N}, - {RUNE_C(0x002264), RUNE_C(0x002267), EA_A}, - {RUNE_C(0x002268), RUNE_C(0x002269), EA_N}, - {RUNE_C(0x00226A), RUNE_C(0x00226B), EA_A}, - {RUNE_C(0x00226C), RUNE_C(0x00226D), EA_N}, - {RUNE_C(0x00226E), RUNE_C(0x00226F), EA_A}, - {RUNE_C(0x002270), RUNE_C(0x002281), EA_N}, - {RUNE_C(0x002282), RUNE_C(0x002283), EA_A}, - {RUNE_C(0x002284), RUNE_C(0x002285), EA_N}, - {RUNE_C(0x002286), RUNE_C(0x002287), EA_A}, - {RUNE_C(0x002288), RUNE_C(0x002294), EA_N}, - {RUNE_C(0x002295), RUNE_C(0x002295), EA_A}, - {RUNE_C(0x002296), RUNE_C(0x002298), EA_N}, - {RUNE_C(0x002299), RUNE_C(0x002299), EA_A}, - {RUNE_C(0x00229A), RUNE_C(0x0022A4), EA_N}, - {RUNE_C(0x0022A5), RUNE_C(0x0022A5), EA_A}, - {RUNE_C(0x0022A6), RUNE_C(0x0022BE), EA_N}, - {RUNE_C(0x0022BF), RUNE_C(0x0022BF), EA_A}, - {RUNE_C(0x0022C0), RUNE_C(0x002311), EA_N}, - {RUNE_C(0x002312), RUNE_C(0x002312), EA_A}, - {RUNE_C(0x002313), RUNE_C(0x002319), EA_N}, - {RUNE_C(0x00231A), RUNE_C(0x00231B), EA_W}, - {RUNE_C(0x00231C), RUNE_C(0x002328), EA_N}, - {RUNE_C(0x002329), RUNE_C(0x00232A), EA_W}, - {RUNE_C(0x00232B), RUNE_C(0x0023E8), EA_N}, - {RUNE_C(0x0023E9), RUNE_C(0x0023EC), EA_W}, - {RUNE_C(0x0023ED), RUNE_C(0x0023EF), EA_N}, - {RUNE_C(0x0023F0), RUNE_C(0x0023F0), EA_W}, - {RUNE_C(0x0023F1), RUNE_C(0x0023F2), EA_N}, - {RUNE_C(0x0023F3), RUNE_C(0x0023F3), EA_W}, - {RUNE_C(0x0023F4), RUNE_C(0x002426), EA_N}, - {RUNE_C(0x002440), RUNE_C(0x00244A), EA_N}, - {RUNE_C(0x002460), RUNE_C(0x0024E9), EA_A}, - {RUNE_C(0x0024EA), RUNE_C(0x0024EA), EA_N}, - {RUNE_C(0x0024EB), RUNE_C(0x00254B), EA_A}, - {RUNE_C(0x00254C), RUNE_C(0x00254F), EA_N}, - {RUNE_C(0x002550), RUNE_C(0x002573), EA_A}, - {RUNE_C(0x002574), RUNE_C(0x00257F), EA_N}, - {RUNE_C(0x002580), RUNE_C(0x00258F), EA_A}, - {RUNE_C(0x002590), RUNE_C(0x002591), EA_N}, - {RUNE_C(0x002592), RUNE_C(0x002595), EA_A}, - {RUNE_C(0x002596), RUNE_C(0x00259F), EA_N}, - {RUNE_C(0x0025A0), RUNE_C(0x0025A1), EA_A}, - {RUNE_C(0x0025A2), RUNE_C(0x0025A2), EA_N}, - {RUNE_C(0x0025A3), RUNE_C(0x0025A9), EA_A}, - {RUNE_C(0x0025AA), RUNE_C(0x0025B1), EA_N}, - {RUNE_C(0x0025B2), RUNE_C(0x0025B3), EA_A}, - {RUNE_C(0x0025B4), RUNE_C(0x0025B5), EA_N}, - {RUNE_C(0x0025B6), RUNE_C(0x0025B7), EA_A}, - {RUNE_C(0x0025B8), RUNE_C(0x0025BB), EA_N}, - {RUNE_C(0x0025BC), RUNE_C(0x0025BD), EA_A}, - {RUNE_C(0x0025BE), RUNE_C(0x0025BF), EA_N}, - {RUNE_C(0x0025C0), RUNE_C(0x0025C1), EA_A}, - {RUNE_C(0x0025C2), RUNE_C(0x0025C5), EA_N}, - {RUNE_C(0x0025C6), RUNE_C(0x0025C8), EA_A}, - {RUNE_C(0x0025C9), RUNE_C(0x0025CA), EA_N}, - {RUNE_C(0x0025CB), RUNE_C(0x0025CB), EA_A}, - {RUNE_C(0x0025CC), RUNE_C(0x0025CD), EA_N}, - {RUNE_C(0x0025CE), RUNE_C(0x0025D1), EA_A}, - {RUNE_C(0x0025D2), RUNE_C(0x0025E1), EA_N}, - {RUNE_C(0x0025E2), RUNE_C(0x0025E5), EA_A}, - {RUNE_C(0x0025E6), RUNE_C(0x0025EE), EA_N}, - {RUNE_C(0x0025EF), RUNE_C(0x0025EF), EA_A}, - {RUNE_C(0x0025F0), RUNE_C(0x0025FC), EA_N}, - {RUNE_C(0x0025FD), RUNE_C(0x0025FE), EA_W}, - {RUNE_C(0x0025FF), RUNE_C(0x002604), EA_N}, - {RUNE_C(0x002605), RUNE_C(0x002606), EA_A}, - {RUNE_C(0x002607), RUNE_C(0x002608), EA_N}, - {RUNE_C(0x002609), RUNE_C(0x002609), EA_A}, - {RUNE_C(0x00260A), RUNE_C(0x00260D), EA_N}, - {RUNE_C(0x00260E), RUNE_C(0x00260F), EA_A}, - {RUNE_C(0x002610), RUNE_C(0x002613), EA_N}, - {RUNE_C(0x002614), RUNE_C(0x002615), EA_W}, - {RUNE_C(0x002616), RUNE_C(0x00261B), EA_N}, - {RUNE_C(0x00261C), RUNE_C(0x00261C), EA_A}, - {RUNE_C(0x00261D), RUNE_C(0x00261D), EA_N}, - {RUNE_C(0x00261E), RUNE_C(0x00261E), EA_A}, - {RUNE_C(0x00261F), RUNE_C(0x00263F), EA_N}, - {RUNE_C(0x002640), RUNE_C(0x002640), EA_A}, - {RUNE_C(0x002641), RUNE_C(0x002641), EA_N}, - {RUNE_C(0x002642), RUNE_C(0x002642), EA_A}, - {RUNE_C(0x002643), RUNE_C(0x002647), EA_N}, - {RUNE_C(0x002648), RUNE_C(0x002653), EA_W}, - {RUNE_C(0x002654), RUNE_C(0x00265F), EA_N}, - {RUNE_C(0x002660), RUNE_C(0x002661), EA_A}, - {RUNE_C(0x002662), RUNE_C(0x002662), EA_N}, - {RUNE_C(0x002663), RUNE_C(0x002665), EA_A}, - {RUNE_C(0x002666), RUNE_C(0x002666), EA_N}, - {RUNE_C(0x002667), RUNE_C(0x00266A), EA_A}, - {RUNE_C(0x00266B), RUNE_C(0x00266B), EA_N}, - {RUNE_C(0x00266C), RUNE_C(0x00266D), EA_A}, - {RUNE_C(0x00266E), RUNE_C(0x00266E), EA_N}, - {RUNE_C(0x00266F), RUNE_C(0x00266F), EA_A}, - {RUNE_C(0x002670), RUNE_C(0x00267E), EA_N}, - {RUNE_C(0x00267F), RUNE_C(0x00267F), EA_W}, - {RUNE_C(0x002680), RUNE_C(0x002692), EA_N}, - {RUNE_C(0x002693), RUNE_C(0x002693), EA_W}, - {RUNE_C(0x002694), RUNE_C(0x00269D), EA_N}, - {RUNE_C(0x00269E), RUNE_C(0x00269F), EA_A}, - {RUNE_C(0x0026A0), RUNE_C(0x0026A0), EA_N}, - {RUNE_C(0x0026A1), RUNE_C(0x0026A1), EA_W}, - {RUNE_C(0x0026A2), RUNE_C(0x0026A9), EA_N}, - {RUNE_C(0x0026AA), RUNE_C(0x0026AB), EA_W}, - {RUNE_C(0x0026AC), RUNE_C(0x0026BC), EA_N}, - {RUNE_C(0x0026BD), RUNE_C(0x0026BE), EA_W}, - {RUNE_C(0x0026BF), RUNE_C(0x0026BF), EA_A}, - {RUNE_C(0x0026C0), RUNE_C(0x0026C3), EA_N}, - {RUNE_C(0x0026C4), RUNE_C(0x0026C5), EA_W}, - {RUNE_C(0x0026C6), RUNE_C(0x0026CD), EA_A}, - {RUNE_C(0x0026CE), RUNE_C(0x0026CE), EA_W}, - {RUNE_C(0x0026CF), RUNE_C(0x0026D3), EA_A}, - {RUNE_C(0x0026D4), RUNE_C(0x0026D4), EA_W}, - {RUNE_C(0x0026D5), RUNE_C(0x0026E1), EA_A}, - {RUNE_C(0x0026E2), RUNE_C(0x0026E2), EA_N}, - {RUNE_C(0x0026E3), RUNE_C(0x0026E3), EA_A}, - {RUNE_C(0x0026E4), RUNE_C(0x0026E7), EA_N}, - {RUNE_C(0x0026E8), RUNE_C(0x0026E9), EA_A}, - {RUNE_C(0x0026EA), RUNE_C(0x0026EA), EA_W}, - {RUNE_C(0x0026EB), RUNE_C(0x0026F1), EA_A}, - {RUNE_C(0x0026F2), RUNE_C(0x0026F3), EA_W}, - {RUNE_C(0x0026F4), RUNE_C(0x0026F4), EA_A}, - {RUNE_C(0x0026F5), RUNE_C(0x0026F5), EA_W}, - {RUNE_C(0x0026F6), RUNE_C(0x0026F9), EA_A}, - {RUNE_C(0x0026FA), RUNE_C(0x0026FA), EA_W}, - {RUNE_C(0x0026FB), RUNE_C(0x0026FC), EA_A}, - {RUNE_C(0x0026FD), RUNE_C(0x0026FD), EA_W}, - {RUNE_C(0x0026FE), RUNE_C(0x0026FF), EA_A}, - {RUNE_C(0x002700), RUNE_C(0x002704), EA_N}, - {RUNE_C(0x002705), RUNE_C(0x002705), EA_W}, - {RUNE_C(0x002706), RUNE_C(0x002709), EA_N}, - {RUNE_C(0x00270A), RUNE_C(0x00270B), EA_W}, - {RUNE_C(0x00270C), RUNE_C(0x002727), EA_N}, - {RUNE_C(0x002728), RUNE_C(0x002728), EA_W}, - {RUNE_C(0x002729), RUNE_C(0x00273C), EA_N}, - {RUNE_C(0x00273D), RUNE_C(0x00273D), EA_A}, - {RUNE_C(0x00273E), RUNE_C(0x00274B), EA_N}, - {RUNE_C(0x00274C), RUNE_C(0x00274C), EA_W}, - {RUNE_C(0x00274D), RUNE_C(0x00274D), EA_N}, - {RUNE_C(0x00274E), RUNE_C(0x00274E), EA_W}, - {RUNE_C(0x00274F), RUNE_C(0x002752), EA_N}, - {RUNE_C(0x002753), RUNE_C(0x002755), EA_W}, - {RUNE_C(0x002756), RUNE_C(0x002756), EA_N}, - {RUNE_C(0x002757), RUNE_C(0x002757), EA_W}, - {RUNE_C(0x002758), RUNE_C(0x002775), EA_N}, - {RUNE_C(0x002776), RUNE_C(0x00277F), EA_A}, - {RUNE_C(0x002780), RUNE_C(0x002794), EA_N}, - {RUNE_C(0x002795), RUNE_C(0x002797), EA_W}, - {RUNE_C(0x002798), RUNE_C(0x0027AF), EA_N}, - {RUNE_C(0x0027B0), RUNE_C(0x0027B0), EA_W}, - {RUNE_C(0x0027B1), RUNE_C(0x0027BE), EA_N}, - {RUNE_C(0x0027BF), RUNE_C(0x0027BF), EA_W}, - {RUNE_C(0x0027C0), RUNE_C(0x0027E5), EA_N}, - {RUNE_C(0x0027E6), RUNE_C(0x0027ED), EA_NA}, - {RUNE_C(0x0027EE), RUNE_C(0x002984), EA_N}, - {RUNE_C(0x002985), RUNE_C(0x002986), EA_NA}, - {RUNE_C(0x002987), RUNE_C(0x002B1A), EA_N}, - {RUNE_C(0x002B1B), RUNE_C(0x002B1C), EA_W}, - {RUNE_C(0x002B1D), RUNE_C(0x002B4F), EA_N}, - {RUNE_C(0x002B50), RUNE_C(0x002B50), EA_W}, - {RUNE_C(0x002B51), RUNE_C(0x002B54), EA_N}, - {RUNE_C(0x002B55), RUNE_C(0x002B55), EA_W}, - {RUNE_C(0x002B56), RUNE_C(0x002B59), EA_A}, - {RUNE_C(0x002B5A), RUNE_C(0x002B73), EA_N}, - {RUNE_C(0x002B76), RUNE_C(0x002B95), EA_N}, - {RUNE_C(0x002B97), RUNE_C(0x002CF3), EA_N}, - {RUNE_C(0x002CF9), RUNE_C(0x002D25), EA_N}, - {RUNE_C(0x002D27), RUNE_C(0x002D27), EA_N}, - {RUNE_C(0x002D2D), RUNE_C(0x002D2D), EA_N}, - {RUNE_C(0x002D30), RUNE_C(0x002D67), EA_N}, - {RUNE_C(0x002D6F), RUNE_C(0x002D70), EA_N}, - {RUNE_C(0x002D7F), RUNE_C(0x002D96), EA_N}, - {RUNE_C(0x002DA0), RUNE_C(0x002DA6), EA_N}, - {RUNE_C(0x002DA8), RUNE_C(0x002DAE), EA_N}, - {RUNE_C(0x002DB0), RUNE_C(0x002DB6), EA_N}, - {RUNE_C(0x002DB8), RUNE_C(0x002DBE), EA_N}, - {RUNE_C(0x002DC0), RUNE_C(0x002DC6), EA_N}, - {RUNE_C(0x002DC8), RUNE_C(0x002DCE), EA_N}, - {RUNE_C(0x002DD0), RUNE_C(0x002DD6), EA_N}, - {RUNE_C(0x002DD8), RUNE_C(0x002DDE), EA_N}, - {RUNE_C(0x002DE0), RUNE_C(0x002E5D), EA_N}, - {RUNE_C(0x002E80), RUNE_C(0x002E99), EA_W}, - {RUNE_C(0x002E9B), RUNE_C(0x002EF3), EA_W}, - {RUNE_C(0x002F00), RUNE_C(0x002FD5), EA_W}, - {RUNE_C(0x002FF0), RUNE_C(0x002FFF), EA_W}, - {RUNE_C(0x003000), RUNE_C(0x003000), EA_F}, - {RUNE_C(0x003001), RUNE_C(0x00303E), EA_W}, - {RUNE_C(0x00303F), RUNE_C(0x00303F), EA_N}, - {RUNE_C(0x003041), RUNE_C(0x003096), EA_W}, - {RUNE_C(0x003099), RUNE_C(0x0030FF), EA_W}, - {RUNE_C(0x003105), RUNE_C(0x00312F), EA_W}, - {RUNE_C(0x003131), RUNE_C(0x00318E), EA_W}, - {RUNE_C(0x003190), RUNE_C(0x0031E3), EA_W}, - {RUNE_C(0x0031EF), RUNE_C(0x00321E), EA_W}, - {RUNE_C(0x003220), RUNE_C(0x003247), EA_W}, - {RUNE_C(0x003248), RUNE_C(0x00324F), EA_A}, - {RUNE_C(0x003250), RUNE_C(0x004DBF), EA_W}, - {RUNE_C(0x004DC0), RUNE_C(0x004DFF), EA_N}, - {RUNE_C(0x004E00), RUNE_C(0x00A48C), EA_W}, - {RUNE_C(0x00A490), RUNE_C(0x00A4C6), EA_W}, - {RUNE_C(0x00A4D0), RUNE_C(0x00A62B), EA_N}, - {RUNE_C(0x00A640), RUNE_C(0x00A6F7), EA_N}, - {RUNE_C(0x00A700), RUNE_C(0x00A7CA), EA_N}, - {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1), EA_N}, - {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3), EA_N}, - {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9), EA_N}, - {RUNE_C(0x00A7F2), RUNE_C(0x00A82C), EA_N}, - {RUNE_C(0x00A830), RUNE_C(0x00A839), EA_N}, - {RUNE_C(0x00A840), RUNE_C(0x00A877), EA_N}, - {RUNE_C(0x00A880), RUNE_C(0x00A8C5), EA_N}, - {RUNE_C(0x00A8CE), RUNE_C(0x00A8D9), EA_N}, - {RUNE_C(0x00A8E0), RUNE_C(0x00A953), EA_N}, - {RUNE_C(0x00A95F), RUNE_C(0x00A95F), EA_N}, - {RUNE_C(0x00A960), RUNE_C(0x00A97C), EA_W}, - {RUNE_C(0x00A980), RUNE_C(0x00A9CD), EA_N}, - {RUNE_C(0x00A9CF), RUNE_C(0x00A9D9), EA_N}, - {RUNE_C(0x00A9DE), RUNE_C(0x00A9FE), EA_N}, - {RUNE_C(0x00AA00), RUNE_C(0x00AA36), EA_N}, - {RUNE_C(0x00AA40), RUNE_C(0x00AA4D), EA_N}, - {RUNE_C(0x00AA50), RUNE_C(0x00AA59), EA_N}, - {RUNE_C(0x00AA5C), RUNE_C(0x00AAC2), EA_N}, - {RUNE_C(0x00AADB), RUNE_C(0x00AAF6), EA_N}, - {RUNE_C(0x00AB01), RUNE_C(0x00AB06), EA_N}, - {RUNE_C(0x00AB09), RUNE_C(0x00AB0E), EA_N}, - {RUNE_C(0x00AB11), RUNE_C(0x00AB16), EA_N}, - {RUNE_C(0x00AB20), RUNE_C(0x00AB26), EA_N}, - {RUNE_C(0x00AB28), RUNE_C(0x00AB2E), EA_N}, - {RUNE_C(0x00AB30), RUNE_C(0x00AB6B), EA_N}, - {RUNE_C(0x00AB70), RUNE_C(0x00ABED), EA_N}, - {RUNE_C(0x00ABF0), RUNE_C(0x00ABF9), EA_N}, - {RUNE_C(0x00AC00), RUNE_C(0x00D7A3), EA_W}, - {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6), EA_N}, - {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB), EA_N}, - {RUNE_C(0x00E000), RUNE_C(0x00F8FF), EA_A}, - {RUNE_C(0x00F900), RUNE_C(0x00FA6D), EA_W}, - {RUNE_C(0x00FA70), RUNE_C(0x00FAD9), EA_W}, - {RUNE_C(0x00FB00), RUNE_C(0x00FB06), EA_N}, - {RUNE_C(0x00FB13), RUNE_C(0x00FB17), EA_N}, - {RUNE_C(0x00FB1D), RUNE_C(0x00FB36), EA_N}, - {RUNE_C(0x00FB38), RUNE_C(0x00FB3C), EA_N}, - {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E), EA_N}, - {RUNE_C(0x00FB40), RUNE_C(0x00FB41), EA_N}, - {RUNE_C(0x00FB43), RUNE_C(0x00FB44), EA_N}, - {RUNE_C(0x00FB46), RUNE_C(0x00FBC2), EA_N}, - {RUNE_C(0x00FBD3), RUNE_C(0x00FD8F), EA_N}, - {RUNE_C(0x00FD92), RUNE_C(0x00FDC7), EA_N}, - {RUNE_C(0x00FDCF), RUNE_C(0x00FDCF), EA_N}, - {RUNE_C(0x00FDF0), RUNE_C(0x00FDFF), EA_N}, - {RUNE_C(0x00FE00), RUNE_C(0x00FE0F), EA_A}, - {RUNE_C(0x00FE10), RUNE_C(0x00FE19), EA_W}, - {RUNE_C(0x00FE20), RUNE_C(0x00FE2F), EA_N}, - {RUNE_C(0x00FE30), RUNE_C(0x00FE52), EA_W}, - {RUNE_C(0x00FE54), RUNE_C(0x00FE66), EA_W}, - {RUNE_C(0x00FE68), RUNE_C(0x00FE6B), EA_W}, - {RUNE_C(0x00FE70), RUNE_C(0x00FE74), EA_N}, - {RUNE_C(0x00FE76), RUNE_C(0x00FEFC), EA_N}, - {RUNE_C(0x00FEFF), RUNE_C(0x00FEFF), EA_N}, - {RUNE_C(0x00FF01), RUNE_C(0x00FF60), EA_F}, - {RUNE_C(0x00FF61), RUNE_C(0x00FFBE), EA_H}, - {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7), EA_H}, - {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF), EA_H}, - {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7), EA_H}, - {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC), EA_H}, - {RUNE_C(0x00FFE0), RUNE_C(0x00FFE6), EA_F}, - {RUNE_C(0x00FFE8), RUNE_C(0x00FFEE), EA_H}, - {RUNE_C(0x00FFF9), RUNE_C(0x00FFFC), EA_N}, - {RUNE_C(0x00FFFD), RUNE_C(0x00FFFD), EA_A}, - {RUNE_C(0x010000), RUNE_C(0x01000B), EA_N}, - {RUNE_C(0x01000D), RUNE_C(0x010026), EA_N}, - {RUNE_C(0x010028), RUNE_C(0x01003A), EA_N}, - {RUNE_C(0x01003C), RUNE_C(0x01003D), EA_N}, - {RUNE_C(0x01003F), RUNE_C(0x01004D), EA_N}, - {RUNE_C(0x010050), RUNE_C(0x01005D), EA_N}, - {RUNE_C(0x010080), RUNE_C(0x0100FA), EA_N}, - {RUNE_C(0x010100), RUNE_C(0x010102), EA_N}, - {RUNE_C(0x010107), RUNE_C(0x010133), EA_N}, - {RUNE_C(0x010137), RUNE_C(0x01018E), EA_N}, - {RUNE_C(0x010190), RUNE_C(0x01019C), EA_N}, - {RUNE_C(0x0101A0), RUNE_C(0x0101A0), EA_N}, - {RUNE_C(0x0101D0), RUNE_C(0x0101FD), EA_N}, - {RUNE_C(0x010280), RUNE_C(0x01029C), EA_N}, - {RUNE_C(0x0102A0), RUNE_C(0x0102D0), EA_N}, - {RUNE_C(0x0102E0), RUNE_C(0x0102FB), EA_N}, - {RUNE_C(0x010300), RUNE_C(0x010323), EA_N}, - {RUNE_C(0x01032D), RUNE_C(0x01034A), EA_N}, - {RUNE_C(0x010350), RUNE_C(0x01037A), EA_N}, - {RUNE_C(0x010380), RUNE_C(0x01039D), EA_N}, - {RUNE_C(0x01039F), RUNE_C(0x0103C3), EA_N}, - {RUNE_C(0x0103C8), RUNE_C(0x0103D5), EA_N}, - {RUNE_C(0x010400), RUNE_C(0x01049D), EA_N}, - {RUNE_C(0x0104A0), RUNE_C(0x0104A9), EA_N}, - {RUNE_C(0x0104B0), RUNE_C(0x0104D3), EA_N}, - {RUNE_C(0x0104D8), RUNE_C(0x0104FB), EA_N}, - {RUNE_C(0x010500), RUNE_C(0x010527), EA_N}, - {RUNE_C(0x010530), RUNE_C(0x010563), EA_N}, - {RUNE_C(0x01056F), RUNE_C(0x01057A), EA_N}, - {RUNE_C(0x01057C), RUNE_C(0x01058A), EA_N}, - {RUNE_C(0x01058C), RUNE_C(0x010592), EA_N}, - {RUNE_C(0x010594), RUNE_C(0x010595), EA_N}, - {RUNE_C(0x010597), RUNE_C(0x0105A1), EA_N}, - {RUNE_C(0x0105A3), RUNE_C(0x0105B1), EA_N}, - {RUNE_C(0x0105B3), RUNE_C(0x0105B9), EA_N}, - {RUNE_C(0x0105BB), RUNE_C(0x0105BC), EA_N}, - {RUNE_C(0x010600), RUNE_C(0x010736), EA_N}, - {RUNE_C(0x010740), RUNE_C(0x010755), EA_N}, - {RUNE_C(0x010760), RUNE_C(0x010767), EA_N}, - {RUNE_C(0x010780), RUNE_C(0x010785), EA_N}, - {RUNE_C(0x010787), RUNE_C(0x0107B0), EA_N}, - {RUNE_C(0x0107B2), RUNE_C(0x0107BA), EA_N}, - {RUNE_C(0x010800), RUNE_C(0x010805), EA_N}, - {RUNE_C(0x010808), RUNE_C(0x010808), EA_N}, - {RUNE_C(0x01080A), RUNE_C(0x010835), EA_N}, - {RUNE_C(0x010837), RUNE_C(0x010838), EA_N}, - {RUNE_C(0x01083C), RUNE_C(0x01083C), EA_N}, - {RUNE_C(0x01083F), RUNE_C(0x010855), EA_N}, - {RUNE_C(0x010857), RUNE_C(0x01089E), EA_N}, - {RUNE_C(0x0108A7), RUNE_C(0x0108AF), EA_N}, - {RUNE_C(0x0108E0), RUNE_C(0x0108F2), EA_N}, - {RUNE_C(0x0108F4), RUNE_C(0x0108F5), EA_N}, - {RUNE_C(0x0108FB), RUNE_C(0x01091B), EA_N}, - {RUNE_C(0x01091F), RUNE_C(0x010939), EA_N}, - {RUNE_C(0x01093F), RUNE_C(0x01093F), EA_N}, - {RUNE_C(0x010980), RUNE_C(0x0109B7), EA_N}, - {RUNE_C(0x0109BC), RUNE_C(0x0109CF), EA_N}, - {RUNE_C(0x0109D2), RUNE_C(0x010A03), EA_N}, - {RUNE_C(0x010A05), RUNE_C(0x010A06), EA_N}, - {RUNE_C(0x010A0C), RUNE_C(0x010A13), EA_N}, - {RUNE_C(0x010A15), RUNE_C(0x010A17), EA_N}, - {RUNE_C(0x010A19), RUNE_C(0x010A35), EA_N}, - {RUNE_C(0x010A38), RUNE_C(0x010A3A), EA_N}, - {RUNE_C(0x010A3F), RUNE_C(0x010A48), EA_N}, - {RUNE_C(0x010A50), RUNE_C(0x010A58), EA_N}, - {RUNE_C(0x010A60), RUNE_C(0x010A9F), EA_N}, - {RUNE_C(0x010AC0), RUNE_C(0x010AE6), EA_N}, - {RUNE_C(0x010AEB), RUNE_C(0x010AF6), EA_N}, - {RUNE_C(0x010B00), RUNE_C(0x010B35), EA_N}, - {RUNE_C(0x010B39), RUNE_C(0x010B55), EA_N}, - {RUNE_C(0x010B58), RUNE_C(0x010B72), EA_N}, - {RUNE_C(0x010B78), RUNE_C(0x010B91), EA_N}, - {RUNE_C(0x010B99), RUNE_C(0x010B9C), EA_N}, - {RUNE_C(0x010BA9), RUNE_C(0x010BAF), EA_N}, - {RUNE_C(0x010C00), RUNE_C(0x010C48), EA_N}, - {RUNE_C(0x010C80), RUNE_C(0x010CB2), EA_N}, - {RUNE_C(0x010CC0), RUNE_C(0x010CF2), EA_N}, - {RUNE_C(0x010CFA), RUNE_C(0x010D27), EA_N}, - {RUNE_C(0x010D30), RUNE_C(0x010D39), EA_N}, - {RUNE_C(0x010E60), RUNE_C(0x010E7E), EA_N}, - {RUNE_C(0x010E80), RUNE_C(0x010EA9), EA_N}, - {RUNE_C(0x010EAB), RUNE_C(0x010EAD), EA_N}, - {RUNE_C(0x010EB0), RUNE_C(0x010EB1), EA_N}, - {RUNE_C(0x010EFD), RUNE_C(0x010F27), EA_N}, - {RUNE_C(0x010F30), RUNE_C(0x010F59), EA_N}, - {RUNE_C(0x010F70), RUNE_C(0x010F89), EA_N}, - {RUNE_C(0x010FB0), RUNE_C(0x010FCB), EA_N}, - {RUNE_C(0x010FE0), RUNE_C(0x010FF6), EA_N}, - {RUNE_C(0x011000), RUNE_C(0x01104D), EA_N}, - {RUNE_C(0x011052), RUNE_C(0x011075), EA_N}, - {RUNE_C(0x01107F), RUNE_C(0x0110C2), EA_N}, - {RUNE_C(0x0110CD), RUNE_C(0x0110CD), EA_N}, - {RUNE_C(0x0110D0), RUNE_C(0x0110E8), EA_N}, - {RUNE_C(0x0110F0), RUNE_C(0x0110F9), EA_N}, - {RUNE_C(0x011100), RUNE_C(0x011134), EA_N}, - {RUNE_C(0x011136), RUNE_C(0x011147), EA_N}, - {RUNE_C(0x011150), RUNE_C(0x011176), EA_N}, - {RUNE_C(0x011180), RUNE_C(0x0111DF), EA_N}, - {RUNE_C(0x0111E1), RUNE_C(0x0111F4), EA_N}, - {RUNE_C(0x011200), RUNE_C(0x011211), EA_N}, - {RUNE_C(0x011213), RUNE_C(0x011241), EA_N}, - {RUNE_C(0x011280), RUNE_C(0x011286), EA_N}, - {RUNE_C(0x011288), RUNE_C(0x011288), EA_N}, - {RUNE_C(0x01128A), RUNE_C(0x01128D), EA_N}, - {RUNE_C(0x01128F), RUNE_C(0x01129D), EA_N}, - {RUNE_C(0x01129F), RUNE_C(0x0112A9), EA_N}, - {RUNE_C(0x0112B0), RUNE_C(0x0112EA), EA_N}, - {RUNE_C(0x0112F0), RUNE_C(0x0112F9), EA_N}, - {RUNE_C(0x011300), RUNE_C(0x011303), EA_N}, - {RUNE_C(0x011305), RUNE_C(0x01130C), EA_N}, - {RUNE_C(0x01130F), RUNE_C(0x011310), EA_N}, - {RUNE_C(0x011313), RUNE_C(0x011328), EA_N}, - {RUNE_C(0x01132A), RUNE_C(0x011330), EA_N}, - {RUNE_C(0x011332), RUNE_C(0x011333), EA_N}, - {RUNE_C(0x011335), RUNE_C(0x011339), EA_N}, - {RUNE_C(0x01133B), RUNE_C(0x011344), EA_N}, - {RUNE_C(0x011347), RUNE_C(0x011348), EA_N}, - {RUNE_C(0x01134B), RUNE_C(0x01134D), EA_N}, - {RUNE_C(0x011350), RUNE_C(0x011350), EA_N}, - {RUNE_C(0x011357), RUNE_C(0x011357), EA_N}, - {RUNE_C(0x01135D), RUNE_C(0x011363), EA_N}, - {RUNE_C(0x011366), RUNE_C(0x01136C), EA_N}, - {RUNE_C(0x011370), RUNE_C(0x011374), EA_N}, - {RUNE_C(0x011400), RUNE_C(0x01145B), EA_N}, - {RUNE_C(0x01145D), RUNE_C(0x011461), EA_N}, - {RUNE_C(0x011480), RUNE_C(0x0114C7), EA_N}, - {RUNE_C(0x0114D0), RUNE_C(0x0114D9), EA_N}, - {RUNE_C(0x011580), RUNE_C(0x0115B5), EA_N}, - {RUNE_C(0x0115B8), RUNE_C(0x0115DD), EA_N}, - {RUNE_C(0x011600), RUNE_C(0x011644), EA_N}, - {RUNE_C(0x011650), RUNE_C(0x011659), EA_N}, - {RUNE_C(0x011660), RUNE_C(0x01166C), EA_N}, - {RUNE_C(0x011680), RUNE_C(0x0116B9), EA_N}, - {RUNE_C(0x0116C0), RUNE_C(0x0116C9), EA_N}, - {RUNE_C(0x011700), RUNE_C(0x01171A), EA_N}, - {RUNE_C(0x01171D), RUNE_C(0x01172B), EA_N}, - {RUNE_C(0x011730), RUNE_C(0x011746), EA_N}, - {RUNE_C(0x011800), RUNE_C(0x01183B), EA_N}, - {RUNE_C(0x0118A0), RUNE_C(0x0118F2), EA_N}, - {RUNE_C(0x0118FF), RUNE_C(0x011906), EA_N}, - {RUNE_C(0x011909), RUNE_C(0x011909), EA_N}, - {RUNE_C(0x01190C), RUNE_C(0x011913), EA_N}, - {RUNE_C(0x011915), RUNE_C(0x011916), EA_N}, - {RUNE_C(0x011918), RUNE_C(0x011935), EA_N}, - {RUNE_C(0x011937), RUNE_C(0x011938), EA_N}, - {RUNE_C(0x01193B), RUNE_C(0x011946), EA_N}, - {RUNE_C(0x011950), RUNE_C(0x011959), EA_N}, - {RUNE_C(0x0119A0), RUNE_C(0x0119A7), EA_N}, - {RUNE_C(0x0119AA), RUNE_C(0x0119D7), EA_N}, - {RUNE_C(0x0119DA), RUNE_C(0x0119E4), EA_N}, - {RUNE_C(0x011A00), RUNE_C(0x011A47), EA_N}, - {RUNE_C(0x011A50), RUNE_C(0x011AA2), EA_N}, - {RUNE_C(0x011AB0), RUNE_C(0x011AF8), EA_N}, - {RUNE_C(0x011B00), RUNE_C(0x011B09), EA_N}, - {RUNE_C(0x011C00), RUNE_C(0x011C08), EA_N}, - {RUNE_C(0x011C0A), RUNE_C(0x011C36), EA_N}, - {RUNE_C(0x011C38), RUNE_C(0x011C45), EA_N}, - {RUNE_C(0x011C50), RUNE_C(0x011C6C), EA_N}, - {RUNE_C(0x011C70), RUNE_C(0x011C8F), EA_N}, - {RUNE_C(0x011C92), RUNE_C(0x011CA7), EA_N}, - {RUNE_C(0x011CA9), RUNE_C(0x011CB6), EA_N}, - {RUNE_C(0x011D00), RUNE_C(0x011D06), EA_N}, - {RUNE_C(0x011D08), RUNE_C(0x011D09), EA_N}, - {RUNE_C(0x011D0B), RUNE_C(0x011D36), EA_N}, - {RUNE_C(0x011D3A), RUNE_C(0x011D3A), EA_N}, - {RUNE_C(0x011D3C), RUNE_C(0x011D3D), EA_N}, - {RUNE_C(0x011D3F), RUNE_C(0x011D47), EA_N}, - {RUNE_C(0x011D50), RUNE_C(0x011D59), EA_N}, - {RUNE_C(0x011D60), RUNE_C(0x011D65), EA_N}, - {RUNE_C(0x011D67), RUNE_C(0x011D68), EA_N}, - {RUNE_C(0x011D6A), RUNE_C(0x011D8E), EA_N}, - {RUNE_C(0x011D90), RUNE_C(0x011D91), EA_N}, - {RUNE_C(0x011D93), RUNE_C(0x011D98), EA_N}, - {RUNE_C(0x011DA0), RUNE_C(0x011DA9), EA_N}, - {RUNE_C(0x011EE0), RUNE_C(0x011EF8), EA_N}, - {RUNE_C(0x011F00), RUNE_C(0x011F10), EA_N}, - {RUNE_C(0x011F12), RUNE_C(0x011F3A), EA_N}, - {RUNE_C(0x011F3E), RUNE_C(0x011F59), EA_N}, - {RUNE_C(0x011FB0), RUNE_C(0x011FB0), EA_N}, - {RUNE_C(0x011FC0), RUNE_C(0x011FF1), EA_N}, - {RUNE_C(0x011FFF), RUNE_C(0x012399), EA_N}, - {RUNE_C(0x012400), RUNE_C(0x01246E), EA_N}, - {RUNE_C(0x012470), RUNE_C(0x012474), EA_N}, - {RUNE_C(0x012480), RUNE_C(0x012543), EA_N}, - {RUNE_C(0x012F90), RUNE_C(0x012FF2), EA_N}, - {RUNE_C(0x013000), RUNE_C(0x013455), EA_N}, - {RUNE_C(0x014400), RUNE_C(0x014646), EA_N}, - {RUNE_C(0x016800), RUNE_C(0x016A38), EA_N}, - {RUNE_C(0x016A40), RUNE_C(0x016A5E), EA_N}, - {RUNE_C(0x016A60), RUNE_C(0x016A69), EA_N}, - {RUNE_C(0x016A6E), RUNE_C(0x016ABE), EA_N}, - {RUNE_C(0x016AC0), RUNE_C(0x016AC9), EA_N}, - {RUNE_C(0x016AD0), RUNE_C(0x016AED), EA_N}, - {RUNE_C(0x016AF0), RUNE_C(0x016AF5), EA_N}, - {RUNE_C(0x016B00), RUNE_C(0x016B45), EA_N}, - {RUNE_C(0x016B50), RUNE_C(0x016B59), EA_N}, - {RUNE_C(0x016B5B), RUNE_C(0x016B61), EA_N}, - {RUNE_C(0x016B63), RUNE_C(0x016B77), EA_N}, - {RUNE_C(0x016B7D), RUNE_C(0x016B8F), EA_N}, - {RUNE_C(0x016E40), RUNE_C(0x016E9A), EA_N}, - {RUNE_C(0x016F00), RUNE_C(0x016F4A), EA_N}, - {RUNE_C(0x016F4F), RUNE_C(0x016F87), EA_N}, - {RUNE_C(0x016F8F), RUNE_C(0x016F9F), EA_N}, - {RUNE_C(0x016FE0), RUNE_C(0x016FE4), EA_W}, - {RUNE_C(0x016FF0), RUNE_C(0x016FF1), EA_W}, - {RUNE_C(0x017000), RUNE_C(0x0187F7), EA_W}, - {RUNE_C(0x018800), RUNE_C(0x018CD5), EA_W}, - {RUNE_C(0x018D00), RUNE_C(0x018D08), EA_W}, - {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3), EA_W}, - {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB), EA_W}, - {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE), EA_W}, - {RUNE_C(0x01B000), RUNE_C(0x01B122), EA_W}, - {RUNE_C(0x01B132), RUNE_C(0x01B132), EA_W}, - {RUNE_C(0x01B150), RUNE_C(0x01B152), EA_W}, - {RUNE_C(0x01B155), RUNE_C(0x01B155), EA_W}, - {RUNE_C(0x01B164), RUNE_C(0x01B167), EA_W}, - {RUNE_C(0x01B170), RUNE_C(0x01B2FB), EA_W}, - {RUNE_C(0x01BC00), RUNE_C(0x01BC6A), EA_N}, - {RUNE_C(0x01BC70), RUNE_C(0x01BC7C), EA_N}, - {RUNE_C(0x01BC80), RUNE_C(0x01BC88), EA_N}, - {RUNE_C(0x01BC90), RUNE_C(0x01BC99), EA_N}, - {RUNE_C(0x01BC9C), RUNE_C(0x01BCA3), EA_N}, - {RUNE_C(0x01CF00), RUNE_C(0x01CF2D), EA_N}, - {RUNE_C(0x01CF30), RUNE_C(0x01CF46), EA_N}, - {RUNE_C(0x01CF50), RUNE_C(0x01CFC3), EA_N}, - {RUNE_C(0x01D000), RUNE_C(0x01D0F5), EA_N}, - {RUNE_C(0x01D100), RUNE_C(0x01D126), EA_N}, - {RUNE_C(0x01D129), RUNE_C(0x01D1EA), EA_N}, - {RUNE_C(0x01D200), RUNE_C(0x01D245), EA_N}, - {RUNE_C(0x01D2C0), RUNE_C(0x01D2D3), EA_N}, - {RUNE_C(0x01D2E0), RUNE_C(0x01D2F3), EA_N}, - {RUNE_C(0x01D300), RUNE_C(0x01D356), EA_N}, - {RUNE_C(0x01D360), RUNE_C(0x01D378), EA_N}, - {RUNE_C(0x01D400), RUNE_C(0x01D454), EA_N}, - {RUNE_C(0x01D456), RUNE_C(0x01D49C), EA_N}, - {RUNE_C(0x01D49E), RUNE_C(0x01D49F), EA_N}, - {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2), EA_N}, - {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6), EA_N}, - {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC), EA_N}, - {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9), EA_N}, - {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB), EA_N}, - {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3), EA_N}, - {RUNE_C(0x01D4C5), RUNE_C(0x01D505), EA_N}, - {RUNE_C(0x01D507), RUNE_C(0x01D50A), EA_N}, - {RUNE_C(0x01D50D), RUNE_C(0x01D514), EA_N}, - {RUNE_C(0x01D516), RUNE_C(0x01D51C), EA_N}, - {RUNE_C(0x01D51E), RUNE_C(0x01D539), EA_N}, - {RUNE_C(0x01D53B), RUNE_C(0x01D53E), EA_N}, - {RUNE_C(0x01D540), RUNE_C(0x01D544), EA_N}, - {RUNE_C(0x01D546), RUNE_C(0x01D546), EA_N}, - {RUNE_C(0x01D54A), RUNE_C(0x01D550), EA_N}, - {RUNE_C(0x01D552), RUNE_C(0x01D6A5), EA_N}, - {RUNE_C(0x01D6A8), RUNE_C(0x01D7CB), EA_N}, - {RUNE_C(0x01D7CE), RUNE_C(0x01DA8B), EA_N}, - {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F), EA_N}, - {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF), EA_N}, - {RUNE_C(0x01DF00), RUNE_C(0x01DF1E), EA_N}, - {RUNE_C(0x01DF25), RUNE_C(0x01DF2A), EA_N}, - {RUNE_C(0x01E000), RUNE_C(0x01E006), EA_N}, - {RUNE_C(0x01E008), RUNE_C(0x01E018), EA_N}, - {RUNE_C(0x01E01B), RUNE_C(0x01E021), EA_N}, - {RUNE_C(0x01E023), RUNE_C(0x01E024), EA_N}, - {RUNE_C(0x01E026), RUNE_C(0x01E02A), EA_N}, - {RUNE_C(0x01E030), RUNE_C(0x01E06D), EA_N}, - {RUNE_C(0x01E08F), RUNE_C(0x01E08F), EA_N}, - {RUNE_C(0x01E100), RUNE_C(0x01E12C), EA_N}, - {RUNE_C(0x01E130), RUNE_C(0x01E13D), EA_N}, - {RUNE_C(0x01E140), RUNE_C(0x01E149), EA_N}, - {RUNE_C(0x01E14E), RUNE_C(0x01E14F), EA_N}, - {RUNE_C(0x01E290), RUNE_C(0x01E2AE), EA_N}, - {RUNE_C(0x01E2C0), RUNE_C(0x01E2F9), EA_N}, - {RUNE_C(0x01E2FF), RUNE_C(0x01E2FF), EA_N}, - {RUNE_C(0x01E4D0), RUNE_C(0x01E4F9), EA_N}, - {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6), EA_N}, - {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB), EA_N}, - {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE), EA_N}, - {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE), EA_N}, - {RUNE_C(0x01E800), RUNE_C(0x01E8C4), EA_N}, - {RUNE_C(0x01E8C7), RUNE_C(0x01E8D6), EA_N}, - {RUNE_C(0x01E900), RUNE_C(0x01E94B), EA_N}, - {RUNE_C(0x01E950), RUNE_C(0x01E959), EA_N}, - {RUNE_C(0x01E95E), RUNE_C(0x01E95F), EA_N}, - {RUNE_C(0x01EC71), RUNE_C(0x01ECB4), EA_N}, - {RUNE_C(0x01ED01), RUNE_C(0x01ED3D), EA_N}, - {RUNE_C(0x01EE00), RUNE_C(0x01EE03), EA_N}, - {RUNE_C(0x01EE05), RUNE_C(0x01EE1F), EA_N}, - {RUNE_C(0x01EE21), RUNE_C(0x01EE22), EA_N}, - {RUNE_C(0x01EE24), RUNE_C(0x01EE24), EA_N}, - {RUNE_C(0x01EE27), RUNE_C(0x01EE27), EA_N}, - {RUNE_C(0x01EE29), RUNE_C(0x01EE32), EA_N}, - {RUNE_C(0x01EE34), RUNE_C(0x01EE37), EA_N}, - {RUNE_C(0x01EE39), RUNE_C(0x01EE39), EA_N}, - {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B), EA_N}, - {RUNE_C(0x01EE42), RUNE_C(0x01EE42), EA_N}, - {RUNE_C(0x01EE47), RUNE_C(0x01EE47), EA_N}, - {RUNE_C(0x01EE49), RUNE_C(0x01EE49), EA_N}, - {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B), EA_N}, - {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F), EA_N}, - {RUNE_C(0x01EE51), RUNE_C(0x01EE52), EA_N}, - {RUNE_C(0x01EE54), RUNE_C(0x01EE54), EA_N}, - {RUNE_C(0x01EE57), RUNE_C(0x01EE57), EA_N}, - {RUNE_C(0x01EE59), RUNE_C(0x01EE59), EA_N}, - {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B), EA_N}, - {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D), EA_N}, - {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F), EA_N}, - {RUNE_C(0x01EE61), RUNE_C(0x01EE62), EA_N}, - {RUNE_C(0x01EE64), RUNE_C(0x01EE64), EA_N}, - {RUNE_C(0x01EE67), RUNE_C(0x01EE6A), EA_N}, - {RUNE_C(0x01EE6C), RUNE_C(0x01EE72), EA_N}, - {RUNE_C(0x01EE74), RUNE_C(0x01EE77), EA_N}, - {RUNE_C(0x01EE79), RUNE_C(0x01EE7C), EA_N}, - {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E), EA_N}, - {RUNE_C(0x01EE80), RUNE_C(0x01EE89), EA_N}, - {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B), EA_N}, - {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3), EA_N}, - {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9), EA_N}, - {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB), EA_N}, - {RUNE_C(0x01EEF0), RUNE_C(0x01EEF1), EA_N}, - {RUNE_C(0x01F000), RUNE_C(0x01F003), EA_N}, - {RUNE_C(0x01F004), RUNE_C(0x01F004), EA_W}, - {RUNE_C(0x01F005), RUNE_C(0x01F02B), EA_N}, - {RUNE_C(0x01F030), RUNE_C(0x01F093), EA_N}, - {RUNE_C(0x01F0A0), RUNE_C(0x01F0AE), EA_N}, - {RUNE_C(0x01F0B1), RUNE_C(0x01F0BF), EA_N}, - {RUNE_C(0x01F0C1), RUNE_C(0x01F0CE), EA_N}, - {RUNE_C(0x01F0CF), RUNE_C(0x01F0CF), EA_W}, - {RUNE_C(0x01F0D1), RUNE_C(0x01F0F5), EA_N}, - {RUNE_C(0x01F100), RUNE_C(0x01F10A), EA_A}, - {RUNE_C(0x01F10B), RUNE_C(0x01F10F), EA_N}, - {RUNE_C(0x01F110), RUNE_C(0x01F12D), EA_A}, - {RUNE_C(0x01F12E), RUNE_C(0x01F12F), EA_N}, - {RUNE_C(0x01F130), RUNE_C(0x01F169), EA_A}, - {RUNE_C(0x01F16A), RUNE_C(0x01F16F), EA_N}, - {RUNE_C(0x01F170), RUNE_C(0x01F18D), EA_A}, - {RUNE_C(0x01F18E), RUNE_C(0x01F18E), EA_W}, - {RUNE_C(0x01F18F), RUNE_C(0x01F190), EA_A}, - {RUNE_C(0x01F191), RUNE_C(0x01F19A), EA_W}, - {RUNE_C(0x01F19B), RUNE_C(0x01F1AC), EA_A}, - {RUNE_C(0x01F1AD), RUNE_C(0x01F1AD), EA_N}, - {RUNE_C(0x01F1E6), RUNE_C(0x01F1FF), EA_N}, - {RUNE_C(0x01F200), RUNE_C(0x01F202), EA_W}, - {RUNE_C(0x01F210), RUNE_C(0x01F23B), EA_W}, - {RUNE_C(0x01F240), RUNE_C(0x01F248), EA_W}, - {RUNE_C(0x01F250), RUNE_C(0x01F251), EA_W}, - {RUNE_C(0x01F260), RUNE_C(0x01F265), EA_W}, - {RUNE_C(0x01F300), RUNE_C(0x01F320), EA_W}, - {RUNE_C(0x01F321), RUNE_C(0x01F32C), EA_N}, - {RUNE_C(0x01F32D), RUNE_C(0x01F335), EA_W}, - {RUNE_C(0x01F336), RUNE_C(0x01F336), EA_N}, - {RUNE_C(0x01F337), RUNE_C(0x01F37C), EA_W}, - {RUNE_C(0x01F37D), RUNE_C(0x01F37D), EA_N}, - {RUNE_C(0x01F37E), RUNE_C(0x01F393), EA_W}, - {RUNE_C(0x01F394), RUNE_C(0x01F39F), EA_N}, - {RUNE_C(0x01F3A0), RUNE_C(0x01F3CA), EA_W}, - {RUNE_C(0x01F3CB), RUNE_C(0x01F3CE), EA_N}, - {RUNE_C(0x01F3CF), RUNE_C(0x01F3D3), EA_W}, - {RUNE_C(0x01F3D4), RUNE_C(0x01F3DF), EA_N}, - {RUNE_C(0x01F3E0), RUNE_C(0x01F3F0), EA_W}, - {RUNE_C(0x01F3F1), RUNE_C(0x01F3F3), EA_N}, - {RUNE_C(0x01F3F4), RUNE_C(0x01F3F4), EA_W}, - {RUNE_C(0x01F3F5), RUNE_C(0x01F3F7), EA_N}, - {RUNE_C(0x01F3F8), RUNE_C(0x01F43E), EA_W}, - {RUNE_C(0x01F43F), RUNE_C(0x01F43F), EA_N}, - {RUNE_C(0x01F440), RUNE_C(0x01F440), EA_W}, - {RUNE_C(0x01F441), RUNE_C(0x01F441), EA_N}, - {RUNE_C(0x01F442), RUNE_C(0x01F4FC), EA_W}, - {RUNE_C(0x01F4FD), RUNE_C(0x01F4FE), EA_N}, - {RUNE_C(0x01F4FF), RUNE_C(0x01F53D), EA_W}, - {RUNE_C(0x01F53E), RUNE_C(0x01F54A), EA_N}, - {RUNE_C(0x01F54B), RUNE_C(0x01F54E), EA_W}, - {RUNE_C(0x01F54F), RUNE_C(0x01F54F), EA_N}, - {RUNE_C(0x01F550), RUNE_C(0x01F567), EA_W}, - {RUNE_C(0x01F568), RUNE_C(0x01F579), EA_N}, - {RUNE_C(0x01F57A), RUNE_C(0x01F57A), EA_W}, - {RUNE_C(0x01F57B), RUNE_C(0x01F594), EA_N}, - {RUNE_C(0x01F595), RUNE_C(0x01F596), EA_W}, - {RUNE_C(0x01F597), RUNE_C(0x01F5A3), EA_N}, - {RUNE_C(0x01F5A4), RUNE_C(0x01F5A4), EA_W}, - {RUNE_C(0x01F5A5), RUNE_C(0x01F5FA), EA_N}, - {RUNE_C(0x01F5FB), RUNE_C(0x01F64F), EA_W}, - {RUNE_C(0x01F650), RUNE_C(0x01F67F), EA_N}, - {RUNE_C(0x01F680), RUNE_C(0x01F6C5), EA_W}, - {RUNE_C(0x01F6C6), RUNE_C(0x01F6CB), EA_N}, - {RUNE_C(0x01F6CC), RUNE_C(0x01F6CC), EA_W}, - {RUNE_C(0x01F6CD), RUNE_C(0x01F6CF), EA_N}, - {RUNE_C(0x01F6D0), RUNE_C(0x01F6D2), EA_W}, - {RUNE_C(0x01F6D3), RUNE_C(0x01F6D4), EA_N}, - {RUNE_C(0x01F6D5), RUNE_C(0x01F6D7), EA_W}, - {RUNE_C(0x01F6DC), RUNE_C(0x01F6DF), EA_W}, - {RUNE_C(0x01F6E0), RUNE_C(0x01F6EA), EA_N}, - {RUNE_C(0x01F6EB), RUNE_C(0x01F6EC), EA_W}, - {RUNE_C(0x01F6F0), RUNE_C(0x01F6F3), EA_N}, - {RUNE_C(0x01F6F4), RUNE_C(0x01F6FC), EA_W}, - {RUNE_C(0x01F700), RUNE_C(0x01F776), EA_N}, - {RUNE_C(0x01F77B), RUNE_C(0x01F7D9), EA_N}, - {RUNE_C(0x01F7E0), RUNE_C(0x01F7EB), EA_W}, - {RUNE_C(0x01F7F0), RUNE_C(0x01F7F0), EA_W}, - {RUNE_C(0x01F800), RUNE_C(0x01F80B), EA_N}, - {RUNE_C(0x01F810), RUNE_C(0x01F847), EA_N}, - {RUNE_C(0x01F850), RUNE_C(0x01F859), EA_N}, - {RUNE_C(0x01F860), RUNE_C(0x01F887), EA_N}, - {RUNE_C(0x01F890), RUNE_C(0x01F8AD), EA_N}, - {RUNE_C(0x01F8B0), RUNE_C(0x01F8B1), EA_N}, - {RUNE_C(0x01F900), RUNE_C(0x01F90B), EA_N}, - {RUNE_C(0x01F90C), RUNE_C(0x01F93A), EA_W}, - {RUNE_C(0x01F93B), RUNE_C(0x01F93B), EA_N}, - {RUNE_C(0x01F93C), RUNE_C(0x01F945), EA_W}, - {RUNE_C(0x01F946), RUNE_C(0x01F946), EA_N}, - {RUNE_C(0x01F947), RUNE_C(0x01F9FF), EA_W}, - {RUNE_C(0x01FA00), RUNE_C(0x01FA53), EA_N}, - {RUNE_C(0x01FA60), RUNE_C(0x01FA6D), EA_N}, - {RUNE_C(0x01FA70), RUNE_C(0x01FA7C), EA_W}, - {RUNE_C(0x01FA80), RUNE_C(0x01FA88), EA_W}, - {RUNE_C(0x01FA90), RUNE_C(0x01FABD), EA_W}, - {RUNE_C(0x01FABF), RUNE_C(0x01FAC5), EA_W}, - {RUNE_C(0x01FACE), RUNE_C(0x01FADB), EA_W}, - {RUNE_C(0x01FAE0), RUNE_C(0x01FAE8), EA_W}, - {RUNE_C(0x01FAF0), RUNE_C(0x01FAF8), EA_W}, - {RUNE_C(0x01FB00), RUNE_C(0x01FB92), EA_N}, - {RUNE_C(0x01FB94), RUNE_C(0x01FBCA), EA_N}, - {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9), EA_N}, - {RUNE_C(0x020000), RUNE_C(0x02A6DF), EA_W}, - {RUNE_C(0x02A700), RUNE_C(0x02B739), EA_W}, - {RUNE_C(0x02B740), RUNE_C(0x02B81D), EA_W}, - {RUNE_C(0x02B820), RUNE_C(0x02CEA1), EA_W}, - {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0), EA_W}, - {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D), EA_W}, - {RUNE_C(0x02F800), RUNE_C(0x02FA1D), EA_W}, - {RUNE_C(0x030000), RUNE_C(0x03134A), EA_W}, - {RUNE_C(0x031350), RUNE_C(0x0323AF), EA_W}, - {RUNE_C(0x0E0001), RUNE_C(0x0E0001), EA_N}, - {RUNE_C(0x0E0020), RUNE_C(0x0E007F), EA_N}, - {RUNE_C(0x0E0100), RUNE_C(0x0E01EF), EA_A}, - {RUNE_C(0x0F0000), RUNE_C(0x0FFFFD), EA_A}, - {RUNE_C(0x100000), RUNE_C(0x10FFFD), EA_A}, +static constexpr enum uprop_ea stage2[][128] = { + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_A, EA_NA, EA_NA, EA_A, EA_NA, EA_NA, EA_A, + EA_A, EA_N, EA_A, EA_N, EA_NA, EA_A, EA_A, EA_NA, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_N, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_N, EA_A, EA_A, EA_A, EA_A, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, + EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, EA_A, + EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, EA_A, EA_N, + EA_A, EA_A, EA_A, EA_N, EA_A, EA_A, EA_N, EA_N, + EA_A, EA_N, EA_A, EA_A, EA_N, EA_N, EA_N, EA_A, + EA_A, EA_A, EA_A, EA_N, EA_A, EA_N, EA_A, EA_N}, + {EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_A, EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, EA_A, + EA_N, EA_N, EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_A, EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, + EA_A, EA_A, EA_A, EA_N, EA_A, EA_N, EA_N, EA_N, + EA_A, EA_A, EA_A, EA_A, EA_N, EA_A, EA_N, EA_N, + EA_N, EA_N, EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, EA_A, + EA_N, EA_N, EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, EA_N, + EA_A, EA_N, EA_A, EA_N, EA_A, EA_N, EA_A, EA_N, + EA_A, EA_N, EA_A, EA_N, EA_A, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_A, EA_N, EA_N, EA_A, + EA_N, EA_A, EA_A, EA_A, EA_N, EA_A, EA_N, EA_N, + EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_A, EA_A, EA_A, EA_N, EA_A, EA_N, EA_A, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_NA, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_N, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, + EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, + EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA}, + {EA_NA, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_NA, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, + EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, + EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_N, EA_N, EA_NA, EA_N, EA_NA, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_NA, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_N, EA_N, EA_NA, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_NA, EA_N, EA_NA, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_N, EA_N, EA_A, EA_A, EA_A, EA_A, EA_N, + EA_A, EA_A, EA_N, EA_N, EA_A, EA_A, EA_N, EA_N, + EA_A, EA_A, EA_A, EA_N, EA_A, EA_A, EA_A, EA_A, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_N, EA_A, EA_A, EA_N, EA_A, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_A, EA_N, EA_N, EA_A, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_A, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A}, + {EA_N, EA_A, EA_A, EA_A, EA_A, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_H, EA_N, EA_N, EA_A, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_A, EA_N, EA_A, EA_N, EA_N, + EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_A, EA_N, EA_N, EA_A, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_A, EA_A, EA_N, EA_N, EA_N, EA_A, EA_N, + EA_N, EA_N, EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_A, EA_A, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_A, EA_A, EA_A, EA_A, EA_N, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_A, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_A, EA_N, EA_A, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_A, EA_N, EA_A, EA_A, EA_N, EA_N, EA_N, EA_A, + EA_A, EA_N, EA_N, EA_A, EA_N, EA_N, EA_N, EA_A, + EA_N, EA_A, EA_N, EA_N, EA_N, EA_A, EA_N, EA_N, + EA_N, EA_N, EA_A, EA_N, EA_N, EA_A, EA_A, EA_A, + EA_A, EA_N, EA_N, EA_A, EA_N, EA_A, EA_N, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_N, EA_A, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_A, EA_A, EA_A, EA_A, + EA_N, EA_N, EA_N, EA_N, EA_A, EA_A, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_N, EA_N, EA_N, EA_A, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_A, EA_N, EA_N, EA_A, EA_A, EA_A, EA_A, + EA_N, EA_N, EA_A, EA_A, EA_N, EA_N, EA_A, EA_A, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_A, EA_A, EA_N, EA_N, EA_A, EA_A, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, EA_N, EA_N, + EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_W, EA_W, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_W, EA_W, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_W, EA_W, EA_W, EA_W, EA_N, EA_N, EA_N, + EA_W, EA_N, EA_N, EA_W, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A}, + {EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_N, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A}, + {EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_N, EA_N, EA_A, EA_A, EA_A, EA_A, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_A, EA_N, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_A, EA_A, EA_N, EA_N, EA_A, EA_A, + EA_N, EA_N, EA_N, EA_N, EA_A, EA_A, EA_N, EA_N, + EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, EA_A, EA_A, + EA_A, EA_N, EA_N, EA_A, EA_N, EA_N, EA_A, EA_A, + EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_A, EA_A, EA_A, EA_A, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_W, EA_W, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, EA_A, EA_N, + EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, EA_A, EA_A, + EA_N, EA_N, EA_N, EA_N, EA_W, EA_W, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_A, EA_N, EA_A, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_A, EA_N, EA_A, EA_A, EA_A, EA_N, EA_A, + EA_A, EA_A, EA_A, EA_N, EA_A, EA_A, EA_N, EA_A, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_W}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_W, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, EA_A, + EA_N, EA_W, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_W, EA_W, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_W, EA_W, EA_A, + EA_N, EA_N, EA_N, EA_N, EA_W, EA_W, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_W, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_W, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_N, EA_A, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_A, EA_W, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_W, EA_W, EA_A, EA_W, EA_A, EA_A, + EA_A, EA_A, EA_W, EA_A, EA_A, EA_W, EA_A, EA_A}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_W, EA_N, EA_N, + EA_N, EA_N, EA_W, EA_W, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_W, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_W, EA_N, EA_W, EA_N, + EA_N, EA_N, EA_N, EA_W, EA_W, EA_W, EA_N, EA_W, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_W, EA_W, EA_W, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_W, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_W, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_W, EA_W, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_W, EA_N, EA_N, EA_N, EA_N, EA_W, EA_A, EA_A, + EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_NA, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_F, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_N, + EA_NA, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, + EA_NA, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_NA, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_NA, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_NA, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_NA, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N}, + {EA_NA, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, + EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, + EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, + EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, + EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, + EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, + EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, + EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, + EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, + EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, + EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, + EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, + EA_F, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, + EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, + EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, + EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H}, + {EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, + EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, + EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, + EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, + EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, + EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, + EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, + EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_NA, + EA_NA, EA_NA, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, + EA_NA, EA_NA, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, + EA_NA, EA_NA, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, + EA_NA, EA_NA, EA_H, EA_H, EA_H, EA_NA, EA_NA, EA_NA, + EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_F, EA_NA, + EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_H, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_A, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_N, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, + EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, + EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_N, EA_NA, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_NA, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_NA, EA_W, EA_W, EA_NA}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_W, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_W, EA_W, EA_W, EA_W, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_NA, EA_NA, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_NA, + EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_N, EA_NA, EA_N, EA_NA, EA_NA, EA_N, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_NA, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, + EA_NA, EA_N, EA_NA, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_N, EA_NA, EA_N, EA_NA, EA_NA, EA_N, + EA_NA, EA_N, EA_NA, EA_N, EA_NA, EA_N, EA_NA, EA_N, + EA_NA, EA_N, EA_N, EA_NA, EA_N, EA_NA, EA_NA, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_W, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_W, + EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_N, EA_N, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A}, + {EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_W, EA_A, + EA_A, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_N, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_N, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_N, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_N, EA_N, EA_N, EA_N, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_N, EA_N, EA_N, EA_W, EA_N, EA_N, EA_N, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_N, + EA_W, EA_N, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_N, EA_N, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_W, EA_W, EA_W, EA_W, EA_N, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_W, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_W, EA_W, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_W, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_W, EA_N, EA_N, EA_N, + EA_W, EA_W, EA_W, EA_N, EA_N, EA_W, EA_W, EA_W, + EA_NA, EA_NA, EA_NA, EA_NA, EA_W, EA_W, EA_W, EA_W, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_W, EA_W, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, + EA_NA, EA_NA, EA_NA, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_N, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_N, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W}, + {EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, EA_W, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_NA, EA_N, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, + EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N, EA_N}, + {EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, + EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA, EA_NA}, + {EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, + EA_A, EA_A, EA_A, EA_A, EA_A, EA_A, EA_NA, EA_NA}, }; -_MLIB_DEFINE_BSEARCH(enum uprop_ea, lookup, EA_NA) - enum uprop_ea uprop_get_ea(rune ch) { - return ch < lengthof(lookup_lat1) ? lookup_lat1[ch] : mlib_lookup(ch); + return stage2[stage1[ch / 128]][ch % 128]; } diff --git a/lib/unicode/prop/uprop_get_equideo.c b/lib/unicode/prop/uprop_get_equideo.c index 17d147b..04b7c4f 100644 --- a/lib/unicode/prop/uprop_get_equideo.c +++ b/lib/unicode/prop/uprop_get_equideo.c @@ -1,369 +1,344 @@ /* This file is autogenerated by gen/prop/equideo; DO NOT EDIT. */ -#include "_bsearch.h" -#include "macros.h" -#include "rune.h" #include "unicode/prop.h" -static const struct { - rune k, v; -} lookup[] = { - {RUNE_C(0x002E81), RUNE_C(0x005382)}, - {RUNE_C(0x002E82), RUNE_C(0x004E5B)}, - {RUNE_C(0x002E83), RUNE_C(0x004E5A)}, - {RUNE_C(0x002E84), RUNE_C(0x004E59)}, - {RUNE_C(0x002E85), RUNE_C(0x004EBB)}, - {RUNE_C(0x002E86), RUNE_C(0x005182)}, - {RUNE_C(0x002E87), RUNE_C(0x020628)}, - {RUNE_C(0x002E88), RUNE_C(0x005200)}, - {RUNE_C(0x002E89), RUNE_C(0x005202)}, - {RUNE_C(0x002E8A), RUNE_C(0x00535C)}, - {RUNE_C(0x002E8B), RUNE_C(0x00353E)}, - {RUNE_C(0x002E8C), RUNE_C(0x005C0F)}, - {RUNE_C(0x002E8D), RUNE_C(0x005C0F)}, - {RUNE_C(0x002E8E), RUNE_C(0x005140)}, - {RUNE_C(0x002E8F), RUNE_C(0x005C23)}, - {RUNE_C(0x002E90), RUNE_C(0x005C22)}, - {RUNE_C(0x002E91), RUNE_C(0x021BC2)}, - {RUNE_C(0x002E92), RUNE_C(0x005DF3)}, - {RUNE_C(0x002E93), RUNE_C(0x005E7A)}, - {RUNE_C(0x002E94), RUNE_C(0x005F51)}, - {RUNE_C(0x002E95), RUNE_C(0x02B739)}, - {RUNE_C(0x002E96), RUNE_C(0x005FC4)}, - {RUNE_C(0x002E97), RUNE_C(0x005FC3)}, - {RUNE_C(0x002E98), RUNE_C(0x00624C)}, - {RUNE_C(0x002E99), RUNE_C(0x006535)}, - {RUNE_C(0x002E9B), RUNE_C(0x0065E1)}, - {RUNE_C(0x002E9C), RUNE_C(0x0065E5)}, - {RUNE_C(0x002E9D), RUNE_C(0x006708)}, - {RUNE_C(0x002E9E), RUNE_C(0x006B7A)}, - {RUNE_C(0x002E9F), RUNE_C(0x006BCD)}, - {RUNE_C(0x002EA0), RUNE_C(0x006C11)}, - {RUNE_C(0x002EA1), RUNE_C(0x006C35)}, - {RUNE_C(0x002EA2), RUNE_C(0x006C3A)}, - {RUNE_C(0x002EA3), RUNE_C(0x00706C)}, - {RUNE_C(0x002EA4), RUNE_C(0x00722B)}, - {RUNE_C(0x002EA5), RUNE_C(0x00722B)}, - {RUNE_C(0x002EA6), RUNE_C(0x004E2C)}, - {RUNE_C(0x002EA7), RUNE_C(0x00725B)}, - {RUNE_C(0x002EA8), RUNE_C(0x0072AD)}, - {RUNE_C(0x002EA9), RUNE_C(0x00738B)}, - {RUNE_C(0x002EAA), RUNE_C(0x024D14)}, - {RUNE_C(0x002EAB), RUNE_C(0x0076EE)}, - {RUNE_C(0x002EAC), RUNE_C(0x00793A)}, - {RUNE_C(0x002EAD), RUNE_C(0x00793B)}, - {RUNE_C(0x002EAE), RUNE_C(0x025AD7)}, - {RUNE_C(0x002EAF), RUNE_C(0x007CF9)}, - {RUNE_C(0x002EB0), RUNE_C(0x007E9F)}, - {RUNE_C(0x002EB1), RUNE_C(0x007F53)}, - {RUNE_C(0x002EB2), RUNE_C(0x007F52)}, - {RUNE_C(0x002EB3), RUNE_C(0x0034C1)}, - {RUNE_C(0x002EB4), RUNE_C(0x005197)}, - {RUNE_C(0x002EB5), RUNE_C(0x02626B)}, - {RUNE_C(0x002EB6), RUNE_C(0x007F8A)}, - {RUNE_C(0x002EB7), RUNE_C(0x02634C)}, - {RUNE_C(0x002EB8), RUNE_C(0x02634B)}, - {RUNE_C(0x002EB9), RUNE_C(0x008002)}, - {RUNE_C(0x002EBA), RUNE_C(0x008080)}, - {RUNE_C(0x002EBB), RUNE_C(0x00807F)}, - {RUNE_C(0x002EBC), RUNE_C(0x008089)}, - {RUNE_C(0x002EBD), RUNE_C(0x026951)}, - {RUNE_C(0x002EBE), RUNE_C(0x008279)}, - {RUNE_C(0x002EBF), RUNE_C(0x008279)}, - {RUNE_C(0x002EC0), RUNE_C(0x008279)}, - {RUNE_C(0x002EC1), RUNE_C(0x00864E)}, - {RUNE_C(0x002EC2), RUNE_C(0x008864)}, - {RUNE_C(0x002EC3), RUNE_C(0x008980)}, - {RUNE_C(0x002EC4), RUNE_C(0x00897F)}, - {RUNE_C(0x002EC5), RUNE_C(0x0089C1)}, - {RUNE_C(0x002EC6), RUNE_C(0x0089D2)}, - {RUNE_C(0x002EC7), RUNE_C(0x0278B2)}, - {RUNE_C(0x002EC8), RUNE_C(0x008BA0)}, - {RUNE_C(0x002EC9), RUNE_C(0x008D1D)}, - {RUNE_C(0x002ECA), RUNE_C(0x027FB7)}, - {RUNE_C(0x002ECB), RUNE_C(0x008F66)}, - {RUNE_C(0x002ECC), RUNE_C(0x008FB6)}, - {RUNE_C(0x002ECD), RUNE_C(0x008FB6)}, - {RUNE_C(0x002ECE), RUNE_C(0x008FB6)}, - {RUNE_C(0x002ECF), RUNE_C(0x009091)}, - {RUNE_C(0x002ED0), RUNE_C(0x009485)}, - {RUNE_C(0x002ED1), RUNE_C(0x009577)}, - {RUNE_C(0x002ED2), RUNE_C(0x009578)}, - {RUNE_C(0x002ED3), RUNE_C(0x00957F)}, - {RUNE_C(0x002ED4), RUNE_C(0x0095E8)}, - {RUNE_C(0x002ED5), RUNE_C(0x028E0F)}, - {RUNE_C(0x002ED6), RUNE_C(0x00961D)}, - {RUNE_C(0x002ED7), RUNE_C(0x0096E8)}, - {RUNE_C(0x002ED8), RUNE_C(0x009752)}, - {RUNE_C(0x002ED9), RUNE_C(0x0097E6)}, - {RUNE_C(0x002EDA), RUNE_C(0x009875)}, - {RUNE_C(0x002EDB), RUNE_C(0x0098CE)}, - {RUNE_C(0x002EDC), RUNE_C(0x0098DE)}, - {RUNE_C(0x002EDD), RUNE_C(0x0098DF)}, - {RUNE_C(0x002EDE), RUNE_C(0x02967F)}, - {RUNE_C(0x002EDF), RUNE_C(0x0098E0)}, - {RUNE_C(0x002EE0), RUNE_C(0x009963)}, - {RUNE_C(0x002EE1), RUNE_C(0x029810)}, - {RUNE_C(0x002EE2), RUNE_C(0x009A6C)}, - {RUNE_C(0x002EE3), RUNE_C(0x009AA8)}, - {RUNE_C(0x002EE4), RUNE_C(0x009B3C)}, - {RUNE_C(0x002EE5), RUNE_C(0x009C7C)}, - {RUNE_C(0x002EE6), RUNE_C(0x009E1F)}, - {RUNE_C(0x002EE7), RUNE_C(0x005364)}, - {RUNE_C(0x002EE8), RUNE_C(0x009EA6)}, - {RUNE_C(0x002EE9), RUNE_C(0x009EC4)}, - {RUNE_C(0x002EEA), RUNE_C(0x009EFE)}, - {RUNE_C(0x002EEB), RUNE_C(0x006589)}, - {RUNE_C(0x002EEC), RUNE_C(0x009F50)}, - {RUNE_C(0x002EED), RUNE_C(0x006B6F)}, - {RUNE_C(0x002EEE), RUNE_C(0x009F7F)}, - {RUNE_C(0x002EEF), RUNE_C(0x007ADC)}, - {RUNE_C(0x002EF0), RUNE_C(0x009F99)}, - {RUNE_C(0x002EF1), RUNE_C(0x009F9C)}, - {RUNE_C(0x002EF2), RUNE_C(0x004E80)}, - {RUNE_C(0x002EF3), RUNE_C(0x009F9F)}, - {RUNE_C(0x002F00), RUNE_C(0x004E00)}, - {RUNE_C(0x002F01), RUNE_C(0x004E28)}, - {RUNE_C(0x002F02), RUNE_C(0x004E36)}, - {RUNE_C(0x002F03), RUNE_C(0x004E3F)}, - {RUNE_C(0x002F04), RUNE_C(0x004E59)}, - {RUNE_C(0x002F05), RUNE_C(0x004E85)}, - {RUNE_C(0x002F06), RUNE_C(0x004E8C)}, - {RUNE_C(0x002F07), RUNE_C(0x004EA0)}, - {RUNE_C(0x002F08), RUNE_C(0x004EBA)}, - {RUNE_C(0x002F09), RUNE_C(0x00513F)}, - {RUNE_C(0x002F0A), RUNE_C(0x005165)}, - {RUNE_C(0x002F0B), RUNE_C(0x00516B)}, - {RUNE_C(0x002F0C), RUNE_C(0x005182)}, - {RUNE_C(0x002F0D), RUNE_C(0x005196)}, - {RUNE_C(0x002F0E), RUNE_C(0x0051AB)}, - {RUNE_C(0x002F0F), RUNE_C(0x0051E0)}, - {RUNE_C(0x002F10), RUNE_C(0x0051F5)}, - {RUNE_C(0x002F11), RUNE_C(0x005200)}, - {RUNE_C(0x002F12), RUNE_C(0x00529B)}, - {RUNE_C(0x002F13), RUNE_C(0x0052F9)}, - {RUNE_C(0x002F14), RUNE_C(0x005315)}, - {RUNE_C(0x002F15), RUNE_C(0x00531A)}, - {RUNE_C(0x002F16), RUNE_C(0x005338)}, - {RUNE_C(0x002F17), RUNE_C(0x005341)}, - {RUNE_C(0x002F18), RUNE_C(0x00535C)}, - {RUNE_C(0x002F19), RUNE_C(0x005369)}, - {RUNE_C(0x002F1A), RUNE_C(0x005382)}, - {RUNE_C(0x002F1B), RUNE_C(0x0053B6)}, - {RUNE_C(0x002F1C), RUNE_C(0x0053C8)}, - {RUNE_C(0x002F1D), RUNE_C(0x0053E3)}, - {RUNE_C(0x002F1E), RUNE_C(0x0056D7)}, - {RUNE_C(0x002F1F), RUNE_C(0x00571F)}, - {RUNE_C(0x002F20), RUNE_C(0x0058EB)}, - {RUNE_C(0x002F21), RUNE_C(0x005902)}, - {RUNE_C(0x002F22), RUNE_C(0x00590A)}, - {RUNE_C(0x002F23), RUNE_C(0x005915)}, - {RUNE_C(0x002F24), RUNE_C(0x005927)}, - {RUNE_C(0x002F25), RUNE_C(0x005973)}, - {RUNE_C(0x002F26), RUNE_C(0x005B50)}, - {RUNE_C(0x002F27), RUNE_C(0x005B80)}, - {RUNE_C(0x002F28), RUNE_C(0x005BF8)}, - {RUNE_C(0x002F29), RUNE_C(0x005C0F)}, - {RUNE_C(0x002F2A), RUNE_C(0x005C22)}, - {RUNE_C(0x002F2B), RUNE_C(0x005C38)}, - {RUNE_C(0x002F2C), RUNE_C(0x005C6E)}, - {RUNE_C(0x002F2D), RUNE_C(0x005C71)}, - {RUNE_C(0x002F2E), RUNE_C(0x005DDB)}, - {RUNE_C(0x002F2F), RUNE_C(0x005DE5)}, - {RUNE_C(0x002F30), RUNE_C(0x005DF1)}, - {RUNE_C(0x002F31), RUNE_C(0x005DFE)}, - {RUNE_C(0x002F32), RUNE_C(0x005E72)}, - {RUNE_C(0x002F33), RUNE_C(0x005E7A)}, - {RUNE_C(0x002F34), RUNE_C(0x005E7F)}, - {RUNE_C(0x002F35), RUNE_C(0x005EF4)}, - {RUNE_C(0x002F36), RUNE_C(0x005EFE)}, - {RUNE_C(0x002F37), RUNE_C(0x005F0B)}, - {RUNE_C(0x002F38), RUNE_C(0x005F13)}, - {RUNE_C(0x002F39), RUNE_C(0x005F50)}, - {RUNE_C(0x002F3A), RUNE_C(0x005F61)}, - {RUNE_C(0x002F3B), RUNE_C(0x005F73)}, - {RUNE_C(0x002F3C), RUNE_C(0x005FC3)}, - {RUNE_C(0x002F3D), RUNE_C(0x006208)}, - {RUNE_C(0x002F3E), RUNE_C(0x006236)}, - {RUNE_C(0x002F3F), RUNE_C(0x00624B)}, - {RUNE_C(0x002F40), RUNE_C(0x00652F)}, - {RUNE_C(0x002F41), RUNE_C(0x006534)}, - {RUNE_C(0x002F42), RUNE_C(0x006587)}, - {RUNE_C(0x002F43), RUNE_C(0x006597)}, - {RUNE_C(0x002F44), RUNE_C(0x0065A4)}, - {RUNE_C(0x002F45), RUNE_C(0x0065B9)}, - {RUNE_C(0x002F46), RUNE_C(0x0065E0)}, - {RUNE_C(0x002F47), RUNE_C(0x0065E5)}, - {RUNE_C(0x002F48), RUNE_C(0x0066F0)}, - {RUNE_C(0x002F49), RUNE_C(0x006708)}, - {RUNE_C(0x002F4A), RUNE_C(0x006728)}, - {RUNE_C(0x002F4B), RUNE_C(0x006B20)}, - {RUNE_C(0x002F4C), RUNE_C(0x006B62)}, - {RUNE_C(0x002F4D), RUNE_C(0x006B79)}, - {RUNE_C(0x002F4E), RUNE_C(0x006BB3)}, - {RUNE_C(0x002F4F), RUNE_C(0x006BCB)}, - {RUNE_C(0x002F50), RUNE_C(0x006BD4)}, - {RUNE_C(0x002F51), RUNE_C(0x006BDB)}, - {RUNE_C(0x002F52), RUNE_C(0x006C0F)}, - {RUNE_C(0x002F53), RUNE_C(0x006C14)}, - {RUNE_C(0x002F54), RUNE_C(0x006C34)}, - {RUNE_C(0x002F55), RUNE_C(0x00706B)}, - {RUNE_C(0x002F56), RUNE_C(0x00722A)}, - {RUNE_C(0x002F57), RUNE_C(0x007236)}, - {RUNE_C(0x002F58), RUNE_C(0x00723B)}, - {RUNE_C(0x002F59), RUNE_C(0x00723F)}, - {RUNE_C(0x002F5A), RUNE_C(0x007247)}, - {RUNE_C(0x002F5B), RUNE_C(0x007259)}, - {RUNE_C(0x002F5C), RUNE_C(0x00725B)}, - {RUNE_C(0x002F5D), RUNE_C(0x0072AC)}, - {RUNE_C(0x002F5E), RUNE_C(0x007384)}, - {RUNE_C(0x002F5F), RUNE_C(0x007389)}, - {RUNE_C(0x002F60), RUNE_C(0x0074DC)}, - {RUNE_C(0x002F61), RUNE_C(0x0074E6)}, - {RUNE_C(0x002F62), RUNE_C(0x007518)}, - {RUNE_C(0x002F63), RUNE_C(0x00751F)}, - {RUNE_C(0x002F64), RUNE_C(0x007528)}, - {RUNE_C(0x002F65), RUNE_C(0x007530)}, - {RUNE_C(0x002F66), RUNE_C(0x00758B)}, - {RUNE_C(0x002F67), RUNE_C(0x007592)}, - {RUNE_C(0x002F68), RUNE_C(0x007676)}, - {RUNE_C(0x002F69), RUNE_C(0x00767D)}, - {RUNE_C(0x002F6A), RUNE_C(0x0076AE)}, - {RUNE_C(0x002F6B), RUNE_C(0x0076BF)}, - {RUNE_C(0x002F6C), RUNE_C(0x0076EE)}, - {RUNE_C(0x002F6D), RUNE_C(0x0077DB)}, - {RUNE_C(0x002F6E), RUNE_C(0x0077E2)}, - {RUNE_C(0x002F6F), RUNE_C(0x0077F3)}, - {RUNE_C(0x002F70), RUNE_C(0x00793A)}, - {RUNE_C(0x002F71), RUNE_C(0x0079B8)}, - {RUNE_C(0x002F72), RUNE_C(0x0079BE)}, - {RUNE_C(0x002F73), RUNE_C(0x007A74)}, - {RUNE_C(0x002F74), RUNE_C(0x007ACB)}, - {RUNE_C(0x002F75), RUNE_C(0x007AF9)}, - {RUNE_C(0x002F76), RUNE_C(0x007C73)}, - {RUNE_C(0x002F77), RUNE_C(0x007CF8)}, - {RUNE_C(0x002F78), RUNE_C(0x007F36)}, - {RUNE_C(0x002F79), RUNE_C(0x007F51)}, - {RUNE_C(0x002F7A), RUNE_C(0x007F8A)}, - {RUNE_C(0x002F7B), RUNE_C(0x007FBD)}, - {RUNE_C(0x002F7C), RUNE_C(0x008001)}, - {RUNE_C(0x002F7D), RUNE_C(0x00800C)}, - {RUNE_C(0x002F7E), RUNE_C(0x008012)}, - {RUNE_C(0x002F7F), RUNE_C(0x008033)}, - {RUNE_C(0x002F80), RUNE_C(0x00807F)}, - {RUNE_C(0x002F81), RUNE_C(0x008089)}, - {RUNE_C(0x002F82), RUNE_C(0x0081E3)}, - {RUNE_C(0x002F83), RUNE_C(0x0081EA)}, - {RUNE_C(0x002F84), RUNE_C(0x0081F3)}, - {RUNE_C(0x002F85), RUNE_C(0x0081FC)}, - {RUNE_C(0x002F86), RUNE_C(0x00820C)}, - {RUNE_C(0x002F87), RUNE_C(0x00821B)}, - {RUNE_C(0x002F88), RUNE_C(0x00821F)}, - {RUNE_C(0x002F89), RUNE_C(0x00826E)}, - {RUNE_C(0x002F8A), RUNE_C(0x008272)}, - {RUNE_C(0x002F8B), RUNE_C(0x008278)}, - {RUNE_C(0x002F8C), RUNE_C(0x00864D)}, - {RUNE_C(0x002F8D), RUNE_C(0x00866B)}, - {RUNE_C(0x002F8E), RUNE_C(0x008840)}, - {RUNE_C(0x002F8F), RUNE_C(0x00884C)}, - {RUNE_C(0x002F90), RUNE_C(0x008863)}, - {RUNE_C(0x002F91), RUNE_C(0x00897E)}, - {RUNE_C(0x002F92), RUNE_C(0x00898B)}, - {RUNE_C(0x002F93), RUNE_C(0x0089D2)}, - {RUNE_C(0x002F94), RUNE_C(0x008A00)}, - {RUNE_C(0x002F95), RUNE_C(0x008C37)}, - {RUNE_C(0x002F96), RUNE_C(0x008C46)}, - {RUNE_C(0x002F97), RUNE_C(0x008C55)}, - {RUNE_C(0x002F98), RUNE_C(0x008C78)}, - {RUNE_C(0x002F99), RUNE_C(0x008C9D)}, - {RUNE_C(0x002F9A), RUNE_C(0x008D64)}, - {RUNE_C(0x002F9B), RUNE_C(0x008D70)}, - {RUNE_C(0x002F9C), RUNE_C(0x008DB3)}, - {RUNE_C(0x002F9D), RUNE_C(0x008EAB)}, - {RUNE_C(0x002F9E), RUNE_C(0x008ECA)}, - {RUNE_C(0x002F9F), RUNE_C(0x008F9B)}, - {RUNE_C(0x002FA0), RUNE_C(0x008FB0)}, - {RUNE_C(0x002FA1), RUNE_C(0x008FB5)}, - {RUNE_C(0x002FA2), RUNE_C(0x009091)}, - {RUNE_C(0x002FA3), RUNE_C(0x009149)}, - {RUNE_C(0x002FA4), RUNE_C(0x0091C6)}, - {RUNE_C(0x002FA5), RUNE_C(0x0091CC)}, - {RUNE_C(0x002FA6), RUNE_C(0x0091D1)}, - {RUNE_C(0x002FA7), RUNE_C(0x009577)}, - {RUNE_C(0x002FA8), RUNE_C(0x009580)}, - {RUNE_C(0x002FA9), RUNE_C(0x00961C)}, - {RUNE_C(0x002FAA), RUNE_C(0x0096B6)}, - {RUNE_C(0x002FAB), RUNE_C(0x0096B9)}, - {RUNE_C(0x002FAC), RUNE_C(0x0096E8)}, - {RUNE_C(0x002FAD), RUNE_C(0x009751)}, - {RUNE_C(0x002FAE), RUNE_C(0x00975E)}, - {RUNE_C(0x002FAF), RUNE_C(0x009762)}, - {RUNE_C(0x002FB0), RUNE_C(0x009769)}, - {RUNE_C(0x002FB1), RUNE_C(0x0097CB)}, - {RUNE_C(0x002FB2), RUNE_C(0x0097ED)}, - {RUNE_C(0x002FB3), RUNE_C(0x0097F3)}, - {RUNE_C(0x002FB4), RUNE_C(0x009801)}, - {RUNE_C(0x002FB5), RUNE_C(0x0098A8)}, - {RUNE_C(0x002FB6), RUNE_C(0x0098DB)}, - {RUNE_C(0x002FB7), RUNE_C(0x0098DF)}, - {RUNE_C(0x002FB8), RUNE_C(0x009996)}, - {RUNE_C(0x002FB9), RUNE_C(0x009999)}, - {RUNE_C(0x002FBA), RUNE_C(0x0099AC)}, - {RUNE_C(0x002FBB), RUNE_C(0x009AA8)}, - {RUNE_C(0x002FBC), RUNE_C(0x009AD8)}, - {RUNE_C(0x002FBD), RUNE_C(0x009ADF)}, - {RUNE_C(0x002FBE), RUNE_C(0x009B25)}, - {RUNE_C(0x002FBF), RUNE_C(0x009B2F)}, - {RUNE_C(0x002FC0), RUNE_C(0x009B32)}, - {RUNE_C(0x002FC1), RUNE_C(0x009B3C)}, - {RUNE_C(0x002FC2), RUNE_C(0x009B5A)}, - {RUNE_C(0x002FC3), RUNE_C(0x009CE5)}, - {RUNE_C(0x002FC4), RUNE_C(0x009E75)}, - {RUNE_C(0x002FC5), RUNE_C(0x009E7F)}, - {RUNE_C(0x002FC6), RUNE_C(0x009EA5)}, - {RUNE_C(0x002FC7), RUNE_C(0x009EBB)}, - {RUNE_C(0x002FC8), RUNE_C(0x009EC3)}, - {RUNE_C(0x002FC9), RUNE_C(0x009ECD)}, - {RUNE_C(0x002FCA), RUNE_C(0x009ED1)}, - {RUNE_C(0x002FCB), RUNE_C(0x009EF9)}, - {RUNE_C(0x002FCC), RUNE_C(0x009EFD)}, - {RUNE_C(0x002FCD), RUNE_C(0x009F0E)}, - {RUNE_C(0x002FCE), RUNE_C(0x009F13)}, - {RUNE_C(0x002FCF), RUNE_C(0x009F20)}, - {RUNE_C(0x002FD0), RUNE_C(0x009F3B)}, - {RUNE_C(0x002FD1), RUNE_C(0x009F4A)}, - {RUNE_C(0x002FD2), RUNE_C(0x009F52)}, - {RUNE_C(0x002FD3), RUNE_C(0x009F8D)}, - {RUNE_C(0x002FD4), RUNE_C(0x009F9C)}, - {RUNE_C(0x002FD5), RUNE_C(0x009FA0)}, - {RUNE_C(0x0031C6), RUNE_C(0x0200CC)}, - {RUNE_C(0x0031CF), RUNE_C(0x004E40)}, - {RUNE_C(0x0031D0), RUNE_C(0x004E00)}, - {RUNE_C(0x0031D1), RUNE_C(0x004E28)}, - {RUNE_C(0x0031D2), RUNE_C(0x004E3F)}, - {RUNE_C(0x0031D3), RUNE_C(0x004E3F)}, - {RUNE_C(0x0031D4), RUNE_C(0x004E36)}, - {RUNE_C(0x0031D5), RUNE_C(0x0200CD)}, - {RUNE_C(0x0031D6), RUNE_C(0x004E5B)}, - {RUNE_C(0x0031D7), RUNE_C(0x0200CA)}, - {RUNE_C(0x0031D8), RUNE_C(0x0200CE)}, - {RUNE_C(0x0031D9), RUNE_C(0x02010C)}, - {RUNE_C(0x0031DA), RUNE_C(0x004E85)}, - {RUNE_C(0x0031DB), RUNE_C(0x021FE8)}, - {RUNE_C(0x0031DC), RUNE_C(0x0200CB)}, - {RUNE_C(0x0031DD), RUNE_C(0x004E40)}, - {RUNE_C(0x0031DE), RUNE_C(0x0200D1)}, - {RUNE_C(0x0031DF), RUNE_C(0x004E5A)}, - {RUNE_C(0x0031E0), RUNE_C(0x004E59)}, - {RUNE_C(0x0031E1), RUNE_C(0x02010E)}, +static constexpr uint8_t stage1[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -_MLIB_DEFINE_BSEARCH_KV(rune, lookup, '\0') +static constexpr rune stage2[][512] = { + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, U'厂', U'乛', U'乚', U'乙', U'亻', U'冂', U'𠘨', + U'刀', U'刂', U'卜', U'㔾', U'小', U'小', U'兀', U'尣', + U'尢', U'𡯂', U'巳', U'幺', U'彑', U'𫜹', U'忄', U'心', + U'扌', U'攵', 0, U'旡', U'日', U'月', U'歺', U'母', + U'民', U'氵', U'氺', U'灬', U'爫', U'爫', U'丬', U'牛', + U'犭', U'王', U'𤴔', U'目', U'示', U'礻', U'𥫗', U'糹', + U'纟', U'罓', U'罒', U'㓁', U'冗', U'𦉫', U'羊', U'𦍌', + U'𦍋', U'耂', U'肀', U'聿', U'肉', U'𦥑', U'艹', U'艹', + U'艹', U'虎', U'衤', U'覀', U'西', U'见', U'角', U'𧢲', + U'讠', U'贝', U'𧾷', U'车', U'辶', U'辶', U'辶', U'邑', + U'钅', U'長', U'镸', U'长', U'门', U'𨸏', U'阝', U'雨', + U'青', U'韦', U'页', U'风', U'飞', U'食', U'𩙿', U'飠', + U'饣', U'𩠐', U'马', U'骨', U'鬼', U'鱼', U'鸟', U'卤', + U'麦', U'黄', U'黾', U'斉', U'齐', U'歯', U'齿', U'竜', + U'龙', U'龜', U'亀', U'龟', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + U'一', U'丨', U'丶', U'丿', U'乙', U'亅', U'二', U'亠', + U'人', U'儿', U'入', U'八', U'冂', U'冖', U'冫', U'几', + U'凵', U'刀', U'力', U'勹', U'匕', U'匚', U'匸', U'十', + U'卜', U'卩', U'厂', U'厶', U'又', U'口', U'囗', U'土', + U'士', U'夂', U'夊', U'夕', U'大', U'女', U'子', U'宀', + U'寸', U'小', U'尢', U'尸', U'屮', U'山', U'巛', U'工', + U'己', U'巾', U'干', U'幺', U'广', U'廴', U'廾', U'弋', + U'弓', U'彐', U'彡', U'彳', U'心', U'戈', U'戶', U'手', + U'支', U'攴', U'文', U'斗', U'斤', U'方', U'无', U'日', + U'曰', U'月', U'木', U'欠', U'止', U'歹', U'殳', U'毋', + U'比', U'毛', U'氏', U'气', U'水', U'火', U'爪', U'父', + U'爻', U'爿', U'片', U'牙', U'牛', U'犬', U'玄', U'玉', + U'瓜', U'瓦', U'甘', U'生', U'用', U'田', U'疋', U'疒', + U'癶', U'白', U'皮', U'皿', U'目', U'矛', U'矢', U'石', + U'示', U'禸', U'禾', U'穴', U'立', U'竹', U'米', U'糸', + U'缶', U'网', U'羊', U'羽', U'老', U'而', U'耒', U'耳', + U'聿', U'肉', U'臣', U'自', U'至', U'臼', U'舌', U'舛', + U'舟', U'艮', U'色', U'艸', U'虍', U'虫', U'血', U'行', + U'衣', U'襾', U'見', U'角', U'言', U'谷', U'豆', U'豕', + U'豸', U'貝', U'赤', U'走', U'足', U'身', U'車', U'辛', + U'辰', U'辵', U'邑', U'酉', U'釆', U'里', U'金', U'長', + U'門', U'阜', U'隶', U'隹', U'雨', U'靑', U'非', U'面', + U'革', U'韋', U'韭', U'音', U'頁', U'風', U'飛', U'食', + U'首', U'香', U'馬', U'骨', U'高', U'髟', U'鬥', U'鬯', + U'鬲', U'鬼', U'魚', U'鳥', U'鹵', U'鹿', U'麥', U'麻', + U'黃', U'黍', U'黑', U'黹', U'黽', U'鼎', U'鼓', U'鼠', + U'鼻', U'齊', U'齒', U'龍', U'龜', U'龠', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, U'𠃌', 0, + 0, 0, 0, 0, 0, 0, 0, U'乀', + U'一', U'丨', U'丿', U'丿', U'丶', U'𠃍', U'乛', U'𠃊', + U'𠃎', U'𠄌', U'亅', U'𡿨', U'𠃋', U'乀', U'𠃑', U'乚', + U'乙', U'𠄎', 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, +}; rune uprop_get_equideo(rune ch) { - return ch < lookup[0].k || ch > lookup[lengthof(lookup) - 1].k - ? '\0' - : mlib_lookup_kv(ch); + rune hc = stage2[stage1[ch / 512]][ch % 512]; + return hc == 0 ? ch : hc; } |