From bc65c8aaaeffe392c9fb55c2228becebcf0cf93e Mon Sep 17 00:00:00 2001 From: John Naylor Date: Wed, 14 Oct 2020 12:38:44 -0400 Subject: [PATCH v1] Optimize unicode decomposition and recomposition Use a perfect hash to look up a codepoint in the decomposition array. Since the order of the array is less important now, this allows us to move all recomposeable codepoints to the front. Linear search now only scans 1/6 of the array, speeding up recomposition accordingly. Normalization is about 4x faster, and testing for normalized strings is about 2x faster. --- .../unicode/generate-unicode_norm_table.pl | 96 +- src/common/unicode_norm.c | 82 +- src/include/common/unicode_norm_table.h | 3638 ++++++++++++----- src/tools/pgindent/exclude_file_patterns | 3 +- 4 files changed, 2796 insertions(+), 1023 deletions(-) diff --git a/src/common/unicode/generate-unicode_norm_table.pl b/src/common/unicode/generate-unicode_norm_table.pl index 7ce15e1a03..ffa47b3638 100644 --- a/src/common/unicode/generate-unicode_norm_table.pl +++ b/src/common/unicode/generate-unicode_norm_table.pl @@ -10,6 +10,10 @@ use strict; use warnings; +use FindBin; +use lib "$FindBin::RealBin/../../tools/"; +use PerfectHash; + my $output_file = "unicode_norm_table.h"; my $FH; @@ -96,6 +100,17 @@ typedef struct * decomposition itself if DECOMP_INLINE */ } pg_unicode_decomposition; +/* Typedef for hash function on quick check table */ +typedef int (*decomp_hash_func) (const void *key); + +/* Information for decomposition lookup with perfect hash function */ +typedef struct +{ + const pg_unicode_decomposition *decomps; + decomp_hash_func hash; + int num_decomps; +} pg_unicode_decompinfo; + #define DECOMP_NO_COMPOSE 0x80 /* don't use for re-composition */ #define DECOMP_INLINE 0x40 /* decomposition is stored inline in * dec_index */ @@ -114,13 +129,18 @@ HEADER my $decomp_index = 0; my $decomp_string = ""; -my $last_code = $characters[-1]->{code}; +# First iterate through the codes in order to derive some values +# and build the output string. foreach my $char (@characters) { my $code = $char->{code}; my $class = $char->{class}; my $decomp = $char->{decomp}; + # Give all entries a default sort order. Later, we will mark entries + # needed for recomposition with an earlier sort order + $char->{sortorder} = 0; + # The character decomposition mapping field in UnicodeData.txt is a list # of unicode codepoints, separated by space. But it can be prefixed with # so-called compatibility formatting tag, like "", or "". @@ -157,25 +177,33 @@ foreach my $char (@characters) && $character_hash{$first_decomp}->{class} != 0) { $flags .= " | DECOMP_NO_COMPOSE"; - $comment = "non-starter decomposition"; + $char->{comment} = "non-starter decomposition"; } else { foreach my $lcode (@composition_exclusion_codes) { - if ($lcode eq $char->{code}) + if ($lcode eq $code) { $flags .= " | DECOMP_NO_COMPOSE"; - $comment = "in exclusion list"; + $char->{comment} = "in exclusion list"; last; } } } + + # Set sortorder for some entries of decomp size 2 so that they + # come before the rest. + # XXX This must match the DECOMPOSITION_NO_COMPOSE C macro above! + # See the inverse lookup in recompose_code() found in + # common/unicode_norm.c. + $char->{sortorder} = -1 + if ($flags !~ /DECOMP_COMPAT/ && $flags !~ /DECOMP_NO_COMPOSE/) } if ($decomp_size == 0) { - print $OUTPUT "\t{0x$code, $class, 0$flags, 0}"; + $char->{output} = sprintf "\t{0x$code, $class, 0$flags, 0}"; } elsif ($decomp_size == 1 && length($first_decomp) <= 4) { @@ -183,11 +211,11 @@ foreach my $char (@characters) # The decomposition consists of a single codepoint, and it fits # in a uint16, so we can store it "inline" in the main table. $flags .= " | DECOMP_INLINE"; - print $OUTPUT "\t{0x$code, $class, 1$flags, 0x$first_decomp}"; + $char->{output} = sprintf "\t{0x$code, $class, 1$flags, 0x$first_decomp}"; } else { - print $OUTPUT + $char->{output} = sprintf "\t{0x$code, $class, $decomp_size$flags, $decomp_index}"; # Now save the decompositions into a dedicated area that will @@ -203,21 +231,18 @@ foreach my $char (@characters) $decomp_index = $decomp_index + $decomp_size; } +} - # Print a comma after all items except the last one. - print $OUTPUT "," unless ($code eq $last_code); - if ($comment ne "") - { +my @code_packed; +foreach my $char (sort recomp_sort @characters) +{ + # Save the code point bytes as a string in network order. + push @code_packed, pack('N', hex($char->{code})); - # If the line is wide already, indent the comment with one tab, - # otherwise with two. This is to make the output match the way - # pgindent would mangle it. (This is quite hacky. To do this - # properly, we should actually track how long the line is so far, - # but this works for now.) - print $OUTPUT "\t" if ($decomp_index < 10); + print $OUTPUT $char->{output}; - print $OUTPUT "\t/* $comment */" if ($comment ne ""); - } + print $OUTPUT ","; + print $OUTPUT "\t/* $char->{comment} */" if ($char->{comment}); print $OUTPUT "\n"; } print $OUTPUT "\n};\n\n"; @@ -231,4 +256,37 @@ $decomp_string }; HEADER +# Emit the definition of the perfect hash function. +my $funcname = 'DecompMain_hash_func'; +my $f = PerfectHash::generate_hash_function(\@code_packed, $funcname, + fixed_key_length => 4); +print $OUTPUT "\n/* Perfect hash function for decomposition */\n"; +print $OUTPUT "static $f\n"; + +# Emit the structure that wraps the hash lookup information into +# one variable. +print $OUTPUT <{code}); + my $bnum = hex($a->{code}); + + return -1 if ($a->{sortorder} < $b->{sortorder}); + return 1 if ($a->{sortorder} > $b->{sortorder}); + + return -1 if $anum < $bnum; + return 0 if $anum == $bnum; + return 1 if $anum > $bnum; +} diff --git a/src/common/unicode_norm.c b/src/common/unicode_norm.c index 4bb6a0f587..99bfab177d 100644 --- a/src/common/unicode_norm.c +++ b/src/common/unicode_norm.c @@ -44,29 +44,37 @@ #define NCOUNT VCOUNT * TCOUNT #define SCOUNT LCOUNT * NCOUNT -/* comparison routine for bsearch() of decomposition lookup table. */ -static int -conv_compare(const void *p1, const void *p2) -{ - uint32 v1, - v2; - - v1 = *(const uint32 *) p1; - v2 = ((const pg_unicode_decomposition *) p2)->codepoint; - return (v1 > v2) ? 1 : ((v1 == v2) ? 0 : -1); -} /* * Get the entry corresponding to code in the decomposition lookup table. */ -static pg_unicode_decomposition * +static const pg_unicode_decomposition * get_code_entry(pg_wchar code) { - return bsearch(&(code), - UnicodeDecompMain, - lengthof(UnicodeDecompMain), - sizeof(pg_unicode_decomposition), - conv_compare); + int h; + uint32 hashkey; + pg_unicode_decompinfo decompinfo = UnicodeDecompInfo; + + /* + * Compute the hash function. The hash key is the codepoint with the bytes + * in network order. + */ + hashkey = pg_hton32(code); + h = decompinfo.hash(&hashkey); + + /* An out-of-range result implies no match */ + if (h < 0 || h >= decompinfo.num_decomps) + return NULL; + + /* + * Since it's a perfect hash, we need only match to the specific codepoint + * it identifies. + */ + if (code != decompinfo.decomps[h].codepoint) + return NULL; + + /* Success! */ + return &decompinfo.decomps[h]; } /* @@ -77,7 +85,7 @@ get_code_entry(pg_wchar code) * is only valid until next call to this function! */ static const pg_wchar * -get_code_decomposition(pg_unicode_decomposition *entry, int *dec_size) +get_code_decomposition(const pg_unicode_decomposition *entry, int *dec_size) { static pg_wchar x; @@ -104,7 +112,7 @@ get_code_decomposition(pg_unicode_decomposition *entry, int *dec_size) static int get_decomposed_size(pg_wchar code, bool compat) { - pg_unicode_decomposition *entry; + const pg_unicode_decomposition *entry; int size = 0; int i; const uint32 *decomp; @@ -197,17 +205,31 @@ recompose_code(uint32 start, uint32 code, uint32 *result) * Do an inverse lookup of the decomposition tables to see if anything * matches. The comparison just needs to be a perfect match on the * sub-table of size two, because the start character has already been - * recomposed partially. + * recomposed partially. The array UnicodeDecompMain should have all + * recomposeable codepoints at the front as a performance optimization. + * See common/generate-unicode_norm_table.pl. */ for (i = 0; i < lengthof(UnicodeDecompMain); i++) { const pg_unicode_decomposition *entry = &UnicodeDecompMain[i]; - if (DECOMPOSITION_SIZE(entry) != 2) - continue; - - if (DECOMPOSITION_NO_COMPOSE(entry)) - continue; + if (DECOMPOSITION_SIZE(entry) != 2 || + DECOMPOSITION_NO_COMPOSE(entry)) + { +#ifdef USE_ASSERT_CHECKING + /* + * Verify that there are no recomposeable codepoints + * from this point forwards. + */ + for (int j = i; j < lengthof(UnicodeDecompMain); j++) + { + entry = &UnicodeDecompMain[j]; + Assert(DECOMPOSITION_SIZE(entry) != 2 || + DECOMPOSITION_NO_COMPOSE(entry)); + } +#endif + break; + } if (start == UnicodeDecomp_codepoints[entry->dec_index] && code == UnicodeDecomp_codepoints[entry->dec_index + 1]) @@ -231,7 +253,7 @@ recompose_code(uint32 start, uint32 code, uint32 *result) static void decompose_code(pg_wchar code, bool compat, pg_wchar **result, int *current) { - pg_unicode_decomposition *entry; + const pg_unicode_decomposition *entry; int i; const uint32 *decomp; int dec_size; @@ -358,8 +380,8 @@ unicode_normalize(UnicodeNormalizationForm form, const pg_wchar *input) pg_wchar prev = decomp_chars[count - 1]; pg_wchar next = decomp_chars[count]; pg_wchar tmp; - pg_unicode_decomposition *prevEntry = get_code_entry(prev); - pg_unicode_decomposition *nextEntry = get_code_entry(next); + const pg_unicode_decomposition *prevEntry = get_code_entry(prev); + const pg_unicode_decomposition *nextEntry = get_code_entry(next); /* * If no entries are found, the character used is either an Hangul @@ -417,7 +439,7 @@ unicode_normalize(UnicodeNormalizationForm form, const pg_wchar *input) for (count = 1; count < decomp_size; count++) { pg_wchar ch = decomp_chars[count]; - pg_unicode_decomposition *ch_entry = get_code_entry(ch); + const pg_unicode_decomposition *ch_entry = get_code_entry(ch); int ch_class = (ch_entry == NULL) ? 0 : ch_entry->comb_class; pg_wchar composite; @@ -458,7 +480,7 @@ unicode_normalize(UnicodeNormalizationForm form, const pg_wchar *input) static uint8 get_canonical_class(pg_wchar ch) { - pg_unicode_decomposition *entry = get_code_entry(ch); + const pg_unicode_decomposition *entry = get_code_entry(ch); if (!entry) return 0; diff --git a/src/include/common/unicode_norm_table.h b/src/include/common/unicode_norm_table.h index 96d43b893c..ad5792dbb7 100644 --- a/src/include/common/unicode_norm_table.h +++ b/src/include/common/unicode_norm_table.h @@ -25,6 +25,17 @@ typedef struct * decomposition itself if DECOMP_INLINE */ } pg_unicode_decomposition; +/* Typedef for hash function on quick check table */ +typedef int (*decomp_hash_func) (const void *key); + +/* Information for decomposition lookup with perfect hash function */ +typedef struct +{ + const pg_unicode_decomposition *decomps; + decomp_hash_func hash; + int num_decomps; +} pg_unicode_decompinfo; + #define DECOMP_NO_COMPOSE 0x80 /* don't use for re-composition */ #define DECOMP_INLINE 0x40 /* decomposition is stored inline in * dec_index */ @@ -38,20 +49,6 @@ typedef struct /* Table of Unicode codepoints and their decompositions */ static const pg_unicode_decomposition UnicodeDecompMain[6604] = { - {0x00A0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0020}, - {0x00A8, 0, 2 | DECOMP_COMPAT, 0}, - {0x00AA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0061}, - {0x00AF, 0, 2 | DECOMP_COMPAT, 2}, - {0x00B2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0032}, - {0x00B3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0033}, - {0x00B4, 0, 2 | DECOMP_COMPAT, 4}, - {0x00B5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03BC}, - {0x00B8, 0, 2 | DECOMP_COMPAT, 6}, - {0x00B9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0031}, - {0x00BA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x006F}, - {0x00BC, 0, 3 | DECOMP_COMPAT, 8}, - {0x00BD, 0, 3 | DECOMP_COMPAT, 11}, - {0x00BE, 0, 3 | DECOMP_COMPAT, 14}, {0x00C0, 0, 2, 17}, {0x00C1, 0, 2, 19}, {0x00C2, 0, 2, 21}, @@ -150,8 +147,6 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x012E, 0, 2, 207}, {0x012F, 0, 2, 209}, {0x0130, 0, 2, 211}, - {0x0132, 0, 2 | DECOMP_COMPAT, 213}, - {0x0133, 0, 2 | DECOMP_COMPAT, 215}, {0x0134, 0, 2, 217}, {0x0135, 0, 2, 219}, {0x0136, 0, 2, 221}, @@ -162,15 +157,12 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x013C, 0, 2, 231}, {0x013D, 0, 2, 233}, {0x013E, 0, 2, 235}, - {0x013F, 0, 2 | DECOMP_COMPAT, 237}, - {0x0140, 0, 2 | DECOMP_COMPAT, 239}, {0x0143, 0, 2, 241}, {0x0144, 0, 2, 243}, {0x0145, 0, 2, 245}, {0x0146, 0, 2, 247}, {0x0147, 0, 2, 249}, {0x0148, 0, 2, 251}, - {0x0149, 0, 2 | DECOMP_COMPAT, 253}, {0x014C, 0, 2, 255}, {0x014D, 0, 2, 257}, {0x014E, 0, 2, 259}, @@ -218,20 +210,10 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x017C, 0, 2, 343}, {0x017D, 0, 2, 345}, {0x017E, 0, 2, 347}, - {0x017F, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0073}, {0x01A0, 0, 2, 349}, {0x01A1, 0, 2, 351}, {0x01AF, 0, 2, 353}, {0x01B0, 0, 2, 355}, - {0x01C4, 0, 2 | DECOMP_COMPAT, 357}, - {0x01C5, 0, 2 | DECOMP_COMPAT, 359}, - {0x01C6, 0, 2 | DECOMP_COMPAT, 361}, - {0x01C7, 0, 2 | DECOMP_COMPAT, 363}, - {0x01C8, 0, 2 | DECOMP_COMPAT, 365}, - {0x01C9, 0, 2 | DECOMP_COMPAT, 367}, - {0x01CA, 0, 2 | DECOMP_COMPAT, 369}, - {0x01CB, 0, 2 | DECOMP_COMPAT, 371}, - {0x01CC, 0, 2 | DECOMP_COMPAT, 373}, {0x01CD, 0, 2, 375}, {0x01CE, 0, 2, 377}, {0x01CF, 0, 2, 379}, @@ -265,9 +247,6 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x01EE, 0, 2, 435}, {0x01EF, 0, 2, 437}, {0x01F0, 0, 2, 439}, - {0x01F1, 0, 2 | DECOMP_COMPAT, 441}, - {0x01F2, 0, 2 | DECOMP_COMPAT, 443}, - {0x01F3, 0, 2 | DECOMP_COMPAT, 445}, {0x01F4, 0, 2, 447}, {0x01F5, 0, 2, 449}, {0x01F8, 0, 2, 451}, @@ -322,144 +301,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x0231, 0, 2, 549}, {0x0232, 0, 2, 551}, {0x0233, 0, 2, 553}, - {0x02B0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0068}, - {0x02B1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0266}, - {0x02B2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x006A}, - {0x02B3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0072}, - {0x02B4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0279}, - {0x02B5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x027B}, - {0x02B6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0281}, - {0x02B7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0077}, - {0x02B8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0079}, - {0x02D8, 0, 2 | DECOMP_COMPAT, 555}, - {0x02D9, 0, 2 | DECOMP_COMPAT, 557}, - {0x02DA, 0, 2 | DECOMP_COMPAT, 559}, - {0x02DB, 0, 2 | DECOMP_COMPAT, 561}, - {0x02DC, 0, 2 | DECOMP_COMPAT, 563}, - {0x02DD, 0, 2 | DECOMP_COMPAT, 565}, - {0x02E0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0263}, - {0x02E1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x006C}, - {0x02E2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0073}, - {0x02E3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0078}, - {0x02E4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0295}, - {0x0300, 230, 0, 0}, - {0x0301, 230, 0, 0}, - {0x0302, 230, 0, 0}, - {0x0303, 230, 0, 0}, - {0x0304, 230, 0, 0}, - {0x0305, 230, 0, 0}, - {0x0306, 230, 0, 0}, - {0x0307, 230, 0, 0}, - {0x0308, 230, 0, 0}, - {0x0309, 230, 0, 0}, - {0x030A, 230, 0, 0}, - {0x030B, 230, 0, 0}, - {0x030C, 230, 0, 0}, - {0x030D, 230, 0, 0}, - {0x030E, 230, 0, 0}, - {0x030F, 230, 0, 0}, - {0x0310, 230, 0, 0}, - {0x0311, 230, 0, 0}, - {0x0312, 230, 0, 0}, - {0x0313, 230, 0, 0}, - {0x0314, 230, 0, 0}, - {0x0315, 232, 0, 0}, - {0x0316, 220, 0, 0}, - {0x0317, 220, 0, 0}, - {0x0318, 220, 0, 0}, - {0x0319, 220, 0, 0}, - {0x031A, 232, 0, 0}, - {0x031B, 216, 0, 0}, - {0x031C, 220, 0, 0}, - {0x031D, 220, 0, 0}, - {0x031E, 220, 0, 0}, - {0x031F, 220, 0, 0}, - {0x0320, 220, 0, 0}, - {0x0321, 202, 0, 0}, - {0x0322, 202, 0, 0}, - {0x0323, 220, 0, 0}, - {0x0324, 220, 0, 0}, - {0x0325, 220, 0, 0}, - {0x0326, 220, 0, 0}, - {0x0327, 202, 0, 0}, - {0x0328, 202, 0, 0}, - {0x0329, 220, 0, 0}, - {0x032A, 220, 0, 0}, - {0x032B, 220, 0, 0}, - {0x032C, 220, 0, 0}, - {0x032D, 220, 0, 0}, - {0x032E, 220, 0, 0}, - {0x032F, 220, 0, 0}, - {0x0330, 220, 0, 0}, - {0x0331, 220, 0, 0}, - {0x0332, 220, 0, 0}, - {0x0333, 220, 0, 0}, - {0x0334, 1, 0, 0}, - {0x0335, 1, 0, 0}, - {0x0336, 1, 0, 0}, - {0x0337, 1, 0, 0}, - {0x0338, 1, 0, 0}, - {0x0339, 220, 0, 0}, - {0x033A, 220, 0, 0}, - {0x033B, 220, 0, 0}, - {0x033C, 220, 0, 0}, - {0x033D, 230, 0, 0}, - {0x033E, 230, 0, 0}, - {0x033F, 230, 0, 0}, - {0x0340, 230, 1 | DECOMP_INLINE, 0x0300}, - {0x0341, 230, 1 | DECOMP_INLINE, 0x0301}, - {0x0342, 230, 0, 0}, - {0x0343, 230, 1 | DECOMP_INLINE, 0x0313}, - {0x0344, 230, 2 | DECOMP_NO_COMPOSE, 567}, /* non-starter decomposition */ - {0x0345, 240, 0, 0}, - {0x0346, 230, 0, 0}, - {0x0347, 220, 0, 0}, - {0x0348, 220, 0, 0}, - {0x0349, 220, 0, 0}, - {0x034A, 230, 0, 0}, - {0x034B, 230, 0, 0}, - {0x034C, 230, 0, 0}, - {0x034D, 220, 0, 0}, - {0x034E, 220, 0, 0}, - {0x0350, 230, 0, 0}, - {0x0351, 230, 0, 0}, - {0x0352, 230, 0, 0}, - {0x0353, 220, 0, 0}, - {0x0354, 220, 0, 0}, - {0x0355, 220, 0, 0}, - {0x0356, 220, 0, 0}, - {0x0357, 230, 0, 0}, - {0x0358, 232, 0, 0}, - {0x0359, 220, 0, 0}, - {0x035A, 220, 0, 0}, - {0x035B, 230, 0, 0}, - {0x035C, 233, 0, 0}, - {0x035D, 234, 0, 0}, - {0x035E, 234, 0, 0}, - {0x035F, 233, 0, 0}, - {0x0360, 234, 0, 0}, - {0x0361, 234, 0, 0}, - {0x0362, 233, 0, 0}, - {0x0363, 230, 0, 0}, - {0x0364, 230, 0, 0}, - {0x0365, 230, 0, 0}, - {0x0366, 230, 0, 0}, - {0x0367, 230, 0, 0}, - {0x0368, 230, 0, 0}, - {0x0369, 230, 0, 0}, - {0x036A, 230, 0, 0}, - {0x036B, 230, 0, 0}, - {0x036C, 230, 0, 0}, - {0x036D, 230, 0, 0}, - {0x036E, 230, 0, 0}, - {0x036F, 230, 0, 0}, - {0x0374, 0, 1 | DECOMP_INLINE, 0x02B9}, - {0x037A, 0, 2 | DECOMP_COMPAT, 569}, - {0x037E, 0, 1 | DECOMP_INLINE, 0x003B}, - {0x0384, 0, 2 | DECOMP_COMPAT, 571}, {0x0385, 0, 2, 573}, {0x0386, 0, 2, 575}, - {0x0387, 0, 1 | DECOMP_INLINE, 0x00B7}, {0x0388, 0, 2, 577}, {0x0389, 0, 2, 579}, {0x038A, 0, 2, 581}, @@ -479,19 +322,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x03CC, 0, 2, 609}, {0x03CD, 0, 2, 611}, {0x03CE, 0, 2, 613}, - {0x03D0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B2}, - {0x03D1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B8}, - {0x03D2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03A5}, {0x03D3, 0, 2, 615}, {0x03D4, 0, 2, 617}, - {0x03D5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C6}, - {0x03D6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C0}, - {0x03F0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03BA}, - {0x03F1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C1}, - {0x03F2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C2}, - {0x03F4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0398}, - {0x03F5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B5}, - {0x03F9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03A3}, {0x0400, 0, 2, 619}, {0x0401, 0, 2, 621}, {0x0403, 0, 2, 623}, @@ -510,11 +342,6 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x045E, 0, 2, 649}, {0x0476, 0, 2, 651}, {0x0477, 0, 2, 653}, - {0x0483, 230, 0, 0}, - {0x0484, 230, 0, 0}, - {0x0485, 230, 0, 0}, - {0x0486, 230, 0, 0}, - {0x0487, 230, 0, 0}, {0x04C1, 0, 2, 655}, {0x04C2, 0, 2, 657}, {0x04D0, 0, 2, 659}, @@ -549,615 +376,51 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x04F5, 0, 2, 717}, {0x04F8, 0, 2, 719}, {0x04F9, 0, 2, 721}, - {0x0587, 0, 2 | DECOMP_COMPAT, 723}, - {0x0591, 220, 0, 0}, - {0x0592, 230, 0, 0}, - {0x0593, 230, 0, 0}, - {0x0594, 230, 0, 0}, - {0x0595, 230, 0, 0}, - {0x0596, 220, 0, 0}, - {0x0597, 230, 0, 0}, - {0x0598, 230, 0, 0}, - {0x0599, 230, 0, 0}, - {0x059A, 222, 0, 0}, - {0x059B, 220, 0, 0}, - {0x059C, 230, 0, 0}, - {0x059D, 230, 0, 0}, - {0x059E, 230, 0, 0}, - {0x059F, 230, 0, 0}, - {0x05A0, 230, 0, 0}, - {0x05A1, 230, 0, 0}, - {0x05A2, 220, 0, 0}, - {0x05A3, 220, 0, 0}, - {0x05A4, 220, 0, 0}, - {0x05A5, 220, 0, 0}, - {0x05A6, 220, 0, 0}, - {0x05A7, 220, 0, 0}, - {0x05A8, 230, 0, 0}, - {0x05A9, 230, 0, 0}, - {0x05AA, 220, 0, 0}, - {0x05AB, 230, 0, 0}, - {0x05AC, 230, 0, 0}, - {0x05AD, 222, 0, 0}, - {0x05AE, 228, 0, 0}, - {0x05AF, 230, 0, 0}, - {0x05B0, 10, 0, 0}, - {0x05B1, 11, 0, 0}, - {0x05B2, 12, 0, 0}, - {0x05B3, 13, 0, 0}, - {0x05B4, 14, 0, 0}, - {0x05B5, 15, 0, 0}, - {0x05B6, 16, 0, 0}, - {0x05B7, 17, 0, 0}, - {0x05B8, 18, 0, 0}, - {0x05B9, 19, 0, 0}, - {0x05BA, 19, 0, 0}, - {0x05BB, 20, 0, 0}, - {0x05BC, 21, 0, 0}, - {0x05BD, 22, 0, 0}, - {0x05BF, 23, 0, 0}, - {0x05C1, 24, 0, 0}, - {0x05C2, 25, 0, 0}, - {0x05C4, 230, 0, 0}, - {0x05C5, 220, 0, 0}, - {0x05C7, 18, 0, 0}, - {0x0610, 230, 0, 0}, - {0x0611, 230, 0, 0}, - {0x0612, 230, 0, 0}, - {0x0613, 230, 0, 0}, - {0x0614, 230, 0, 0}, - {0x0615, 230, 0, 0}, - {0x0616, 230, 0, 0}, - {0x0617, 230, 0, 0}, - {0x0618, 30, 0, 0}, - {0x0619, 31, 0, 0}, - {0x061A, 32, 0, 0}, {0x0622, 0, 2, 725}, {0x0623, 0, 2, 727}, {0x0624, 0, 2, 729}, {0x0625, 0, 2, 731}, {0x0626, 0, 2, 733}, - {0x064B, 27, 0, 0}, - {0x064C, 28, 0, 0}, - {0x064D, 29, 0, 0}, - {0x064E, 30, 0, 0}, - {0x064F, 31, 0, 0}, - {0x0650, 32, 0, 0}, - {0x0651, 33, 0, 0}, - {0x0652, 34, 0, 0}, - {0x0653, 230, 0, 0}, - {0x0654, 230, 0, 0}, - {0x0655, 220, 0, 0}, - {0x0656, 220, 0, 0}, - {0x0657, 230, 0, 0}, - {0x0658, 230, 0, 0}, - {0x0659, 230, 0, 0}, - {0x065A, 230, 0, 0}, - {0x065B, 230, 0, 0}, - {0x065C, 220, 0, 0}, - {0x065D, 230, 0, 0}, - {0x065E, 230, 0, 0}, - {0x065F, 220, 0, 0}, - {0x0670, 35, 0, 0}, - {0x0675, 0, 2 | DECOMP_COMPAT, 735}, - {0x0676, 0, 2 | DECOMP_COMPAT, 737}, - {0x0677, 0, 2 | DECOMP_COMPAT, 739}, - {0x0678, 0, 2 | DECOMP_COMPAT, 741}, {0x06C0, 0, 2, 743}, {0x06C2, 0, 2, 745}, {0x06D3, 0, 2, 747}, - {0x06D6, 230, 0, 0}, - {0x06D7, 230, 0, 0}, - {0x06D8, 230, 0, 0}, - {0x06D9, 230, 0, 0}, - {0x06DA, 230, 0, 0}, - {0x06DB, 230, 0, 0}, - {0x06DC, 230, 0, 0}, - {0x06DF, 230, 0, 0}, - {0x06E0, 230, 0, 0}, - {0x06E1, 230, 0, 0}, - {0x06E2, 230, 0, 0}, - {0x06E3, 220, 0, 0}, - {0x06E4, 230, 0, 0}, - {0x06E7, 230, 0, 0}, - {0x06E8, 230, 0, 0}, - {0x06EA, 220, 0, 0}, - {0x06EB, 230, 0, 0}, - {0x06EC, 230, 0, 0}, - {0x06ED, 220, 0, 0}, - {0x0711, 36, 0, 0}, - {0x0730, 230, 0, 0}, - {0x0731, 220, 0, 0}, - {0x0732, 230, 0, 0}, - {0x0733, 230, 0, 0}, - {0x0734, 220, 0, 0}, - {0x0735, 230, 0, 0}, - {0x0736, 230, 0, 0}, - {0x0737, 220, 0, 0}, - {0x0738, 220, 0, 0}, - {0x0739, 220, 0, 0}, - {0x073A, 230, 0, 0}, - {0x073B, 220, 0, 0}, - {0x073C, 220, 0, 0}, - {0x073D, 230, 0, 0}, - {0x073E, 220, 0, 0}, - {0x073F, 230, 0, 0}, - {0x0740, 230, 0, 0}, - {0x0741, 230, 0, 0}, - {0x0742, 220, 0, 0}, - {0x0743, 230, 0, 0}, - {0x0744, 220, 0, 0}, - {0x0745, 230, 0, 0}, - {0x0746, 220, 0, 0}, - {0x0747, 230, 0, 0}, - {0x0748, 220, 0, 0}, - {0x0749, 230, 0, 0}, - {0x074A, 230, 0, 0}, - {0x07EB, 230, 0, 0}, - {0x07EC, 230, 0, 0}, - {0x07ED, 230, 0, 0}, - {0x07EE, 230, 0, 0}, - {0x07EF, 230, 0, 0}, - {0x07F0, 230, 0, 0}, - {0x07F1, 230, 0, 0}, - {0x07F2, 220, 0, 0}, - {0x07F3, 230, 0, 0}, - {0x07FD, 220, 0, 0}, - {0x0816, 230, 0, 0}, - {0x0817, 230, 0, 0}, - {0x0818, 230, 0, 0}, - {0x0819, 230, 0, 0}, - {0x081B, 230, 0, 0}, - {0x081C, 230, 0, 0}, - {0x081D, 230, 0, 0}, - {0x081E, 230, 0, 0}, - {0x081F, 230, 0, 0}, - {0x0820, 230, 0, 0}, - {0x0821, 230, 0, 0}, - {0x0822, 230, 0, 0}, - {0x0823, 230, 0, 0}, - {0x0825, 230, 0, 0}, - {0x0826, 230, 0, 0}, - {0x0827, 230, 0, 0}, - {0x0829, 230, 0, 0}, - {0x082A, 230, 0, 0}, - {0x082B, 230, 0, 0}, - {0x082C, 230, 0, 0}, - {0x082D, 230, 0, 0}, - {0x0859, 220, 0, 0}, - {0x085A, 220, 0, 0}, - {0x085B, 220, 0, 0}, - {0x08D3, 220, 0, 0}, - {0x08D4, 230, 0, 0}, - {0x08D5, 230, 0, 0}, - {0x08D6, 230, 0, 0}, - {0x08D7, 230, 0, 0}, - {0x08D8, 230, 0, 0}, - {0x08D9, 230, 0, 0}, - {0x08DA, 230, 0, 0}, - {0x08DB, 230, 0, 0}, - {0x08DC, 230, 0, 0}, - {0x08DD, 230, 0, 0}, - {0x08DE, 230, 0, 0}, - {0x08DF, 230, 0, 0}, - {0x08E0, 230, 0, 0}, - {0x08E1, 230, 0, 0}, - {0x08E3, 220, 0, 0}, - {0x08E4, 230, 0, 0}, - {0x08E5, 230, 0, 0}, - {0x08E6, 220, 0, 0}, - {0x08E7, 230, 0, 0}, - {0x08E8, 230, 0, 0}, - {0x08E9, 220, 0, 0}, - {0x08EA, 230, 0, 0}, - {0x08EB, 230, 0, 0}, - {0x08EC, 230, 0, 0}, - {0x08ED, 220, 0, 0}, - {0x08EE, 220, 0, 0}, - {0x08EF, 220, 0, 0}, - {0x08F0, 27, 0, 0}, - {0x08F1, 28, 0, 0}, - {0x08F2, 29, 0, 0}, - {0x08F3, 230, 0, 0}, - {0x08F4, 230, 0, 0}, - {0x08F5, 230, 0, 0}, - {0x08F6, 220, 0, 0}, - {0x08F7, 230, 0, 0}, - {0x08F8, 230, 0, 0}, - {0x08F9, 220, 0, 0}, - {0x08FA, 220, 0, 0}, - {0x08FB, 230, 0, 0}, - {0x08FC, 230, 0, 0}, - {0x08FD, 230, 0, 0}, - {0x08FE, 230, 0, 0}, - {0x08FF, 230, 0, 0}, {0x0929, 0, 2, 749}, {0x0931, 0, 2, 751}, {0x0934, 0, 2, 753}, - {0x093C, 7, 0, 0}, - {0x094D, 9, 0, 0}, - {0x0951, 230, 0, 0}, - {0x0952, 220, 0, 0}, - {0x0953, 230, 0, 0}, - {0x0954, 230, 0, 0}, - {0x0958, 0, 2 | DECOMP_NO_COMPOSE, 755}, /* in exclusion list */ - {0x0959, 0, 2 | DECOMP_NO_COMPOSE, 757}, /* in exclusion list */ - {0x095A, 0, 2 | DECOMP_NO_COMPOSE, 759}, /* in exclusion list */ - {0x095B, 0, 2 | DECOMP_NO_COMPOSE, 761}, /* in exclusion list */ - {0x095C, 0, 2 | DECOMP_NO_COMPOSE, 763}, /* in exclusion list */ - {0x095D, 0, 2 | DECOMP_NO_COMPOSE, 765}, /* in exclusion list */ - {0x095E, 0, 2 | DECOMP_NO_COMPOSE, 767}, /* in exclusion list */ - {0x095F, 0, 2 | DECOMP_NO_COMPOSE, 769}, /* in exclusion list */ - {0x09BC, 7, 0, 0}, {0x09CB, 0, 2, 771}, {0x09CC, 0, 2, 773}, - {0x09CD, 9, 0, 0}, - {0x09DC, 0, 2 | DECOMP_NO_COMPOSE, 775}, /* in exclusion list */ - {0x09DD, 0, 2 | DECOMP_NO_COMPOSE, 777}, /* in exclusion list */ - {0x09DF, 0, 2 | DECOMP_NO_COMPOSE, 779}, /* in exclusion list */ - {0x09FE, 230, 0, 0}, - {0x0A33, 0, 2 | DECOMP_NO_COMPOSE, 781}, /* in exclusion list */ - {0x0A36, 0, 2 | DECOMP_NO_COMPOSE, 783}, /* in exclusion list */ - {0x0A3C, 7, 0, 0}, - {0x0A4D, 9, 0, 0}, - {0x0A59, 0, 2 | DECOMP_NO_COMPOSE, 785}, /* in exclusion list */ - {0x0A5A, 0, 2 | DECOMP_NO_COMPOSE, 787}, /* in exclusion list */ - {0x0A5B, 0, 2 | DECOMP_NO_COMPOSE, 789}, /* in exclusion list */ - {0x0A5E, 0, 2 | DECOMP_NO_COMPOSE, 791}, /* in exclusion list */ - {0x0ABC, 7, 0, 0}, - {0x0ACD, 9, 0, 0}, - {0x0B3C, 7, 0, 0}, {0x0B48, 0, 2, 793}, {0x0B4B, 0, 2, 795}, {0x0B4C, 0, 2, 797}, - {0x0B4D, 9, 0, 0}, - {0x0B5C, 0, 2 | DECOMP_NO_COMPOSE, 799}, /* in exclusion list */ - {0x0B5D, 0, 2 | DECOMP_NO_COMPOSE, 801}, /* in exclusion list */ {0x0B94, 0, 2, 803}, {0x0BCA, 0, 2, 805}, {0x0BCB, 0, 2, 807}, {0x0BCC, 0, 2, 809}, - {0x0BCD, 9, 0, 0}, {0x0C48, 0, 2, 811}, - {0x0C4D, 9, 0, 0}, - {0x0C55, 84, 0, 0}, - {0x0C56, 91, 0, 0}, - {0x0CBC, 7, 0, 0}, {0x0CC0, 0, 2, 813}, {0x0CC7, 0, 2, 815}, {0x0CC8, 0, 2, 817}, {0x0CCA, 0, 2, 819}, {0x0CCB, 0, 2, 821}, - {0x0CCD, 9, 0, 0}, - {0x0D3B, 9, 0, 0}, - {0x0D3C, 9, 0, 0}, {0x0D4A, 0, 2, 823}, {0x0D4B, 0, 2, 825}, {0x0D4C, 0, 2, 827}, - {0x0D4D, 9, 0, 0}, - {0x0DCA, 9, 0, 0}, {0x0DDA, 0, 2, 829}, {0x0DDC, 0, 2, 831}, {0x0DDD, 0, 2, 833}, {0x0DDE, 0, 2, 835}, - {0x0E33, 0, 2 | DECOMP_COMPAT, 837}, - {0x0E38, 103, 0, 0}, - {0x0E39, 103, 0, 0}, - {0x0E3A, 9, 0, 0}, - {0x0E48, 107, 0, 0}, - {0x0E49, 107, 0, 0}, - {0x0E4A, 107, 0, 0}, - {0x0E4B, 107, 0, 0}, - {0x0EB3, 0, 2 | DECOMP_COMPAT, 839}, - {0x0EB8, 118, 0, 0}, - {0x0EB9, 118, 0, 0}, - {0x0EBA, 9, 0, 0}, - {0x0EC8, 122, 0, 0}, - {0x0EC9, 122, 0, 0}, - {0x0ECA, 122, 0, 0}, - {0x0ECB, 122, 0, 0}, - {0x0EDC, 0, 2 | DECOMP_COMPAT, 841}, - {0x0EDD, 0, 2 | DECOMP_COMPAT, 843}, - {0x0F0C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0F0B}, - {0x0F18, 220, 0, 0}, - {0x0F19, 220, 0, 0}, - {0x0F35, 220, 0, 0}, - {0x0F37, 220, 0, 0}, - {0x0F39, 216, 0, 0}, - {0x0F43, 0, 2 | DECOMP_NO_COMPOSE, 845}, /* in exclusion list */ - {0x0F4D, 0, 2 | DECOMP_NO_COMPOSE, 847}, /* in exclusion list */ - {0x0F52, 0, 2 | DECOMP_NO_COMPOSE, 849}, /* in exclusion list */ - {0x0F57, 0, 2 | DECOMP_NO_COMPOSE, 851}, /* in exclusion list */ - {0x0F5C, 0, 2 | DECOMP_NO_COMPOSE, 853}, /* in exclusion list */ - {0x0F69, 0, 2 | DECOMP_NO_COMPOSE, 855}, /* in exclusion list */ - {0x0F71, 129, 0, 0}, - {0x0F72, 130, 0, 0}, - {0x0F73, 0, 2 | DECOMP_NO_COMPOSE, 857}, /* non-starter decomposition */ - {0x0F74, 132, 0, 0}, - {0x0F75, 0, 2 | DECOMP_NO_COMPOSE, 859}, /* non-starter decomposition */ - {0x0F76, 0, 2 | DECOMP_NO_COMPOSE, 861}, /* in exclusion list */ - {0x0F77, 0, 2 | DECOMP_COMPAT, 863}, - {0x0F78, 0, 2 | DECOMP_NO_COMPOSE, 865}, /* in exclusion list */ - {0x0F79, 0, 2 | DECOMP_COMPAT, 867}, - {0x0F7A, 130, 0, 0}, - {0x0F7B, 130, 0, 0}, - {0x0F7C, 130, 0, 0}, - {0x0F7D, 130, 0, 0}, - {0x0F80, 130, 0, 0}, - {0x0F81, 0, 2 | DECOMP_NO_COMPOSE, 869}, /* non-starter decomposition */ - {0x0F82, 230, 0, 0}, - {0x0F83, 230, 0, 0}, - {0x0F84, 9, 0, 0}, - {0x0F86, 230, 0, 0}, - {0x0F87, 230, 0, 0}, - {0x0F93, 0, 2 | DECOMP_NO_COMPOSE, 871}, /* in exclusion list */ - {0x0F9D, 0, 2 | DECOMP_NO_COMPOSE, 873}, /* in exclusion list */ - {0x0FA2, 0, 2 | DECOMP_NO_COMPOSE, 875}, /* in exclusion list */ - {0x0FA7, 0, 2 | DECOMP_NO_COMPOSE, 877}, /* in exclusion list */ - {0x0FAC, 0, 2 | DECOMP_NO_COMPOSE, 879}, /* in exclusion list */ - {0x0FB9, 0, 2 | DECOMP_NO_COMPOSE, 881}, /* in exclusion list */ - {0x0FC6, 220, 0, 0}, {0x1026, 0, 2, 883}, - {0x1037, 7, 0, 0}, - {0x1039, 9, 0, 0}, - {0x103A, 9, 0, 0}, - {0x108D, 220, 0, 0}, - {0x10FC, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x10DC}, - {0x135D, 230, 0, 0}, - {0x135E, 230, 0, 0}, - {0x135F, 230, 0, 0}, - {0x1714, 9, 0, 0}, - {0x1734, 9, 0, 0}, - {0x17D2, 9, 0, 0}, - {0x17DD, 230, 0, 0}, - {0x18A9, 228, 0, 0}, - {0x1939, 222, 0, 0}, - {0x193A, 230, 0, 0}, - {0x193B, 220, 0, 0}, - {0x1A17, 230, 0, 0}, - {0x1A18, 220, 0, 0}, - {0x1A60, 9, 0, 0}, - {0x1A75, 230, 0, 0}, - {0x1A76, 230, 0, 0}, - {0x1A77, 230, 0, 0}, - {0x1A78, 230, 0, 0}, - {0x1A79, 230, 0, 0}, - {0x1A7A, 230, 0, 0}, - {0x1A7B, 230, 0, 0}, - {0x1A7C, 230, 0, 0}, - {0x1A7F, 220, 0, 0}, - {0x1AB0, 230, 0, 0}, - {0x1AB1, 230, 0, 0}, - {0x1AB2, 230, 0, 0}, - {0x1AB3, 230, 0, 0}, - {0x1AB4, 230, 0, 0}, - {0x1AB5, 220, 0, 0}, - {0x1AB6, 220, 0, 0}, - {0x1AB7, 220, 0, 0}, - {0x1AB8, 220, 0, 0}, - {0x1AB9, 220, 0, 0}, - {0x1ABA, 220, 0, 0}, - {0x1ABB, 230, 0, 0}, - {0x1ABC, 230, 0, 0}, - {0x1ABD, 220, 0, 0}, - {0x1ABF, 220, 0, 0}, - {0x1AC0, 220, 0, 0}, {0x1B06, 0, 2, 885}, {0x1B08, 0, 2, 887}, {0x1B0A, 0, 2, 889}, {0x1B0C, 0, 2, 891}, {0x1B0E, 0, 2, 893}, {0x1B12, 0, 2, 895}, - {0x1B34, 7, 0, 0}, {0x1B3B, 0, 2, 897}, {0x1B3D, 0, 2, 899}, {0x1B40, 0, 2, 901}, {0x1B41, 0, 2, 903}, {0x1B43, 0, 2, 905}, - {0x1B44, 9, 0, 0}, - {0x1B6B, 230, 0, 0}, - {0x1B6C, 220, 0, 0}, - {0x1B6D, 230, 0, 0}, - {0x1B6E, 230, 0, 0}, - {0x1B6F, 230, 0, 0}, - {0x1B70, 230, 0, 0}, - {0x1B71, 230, 0, 0}, - {0x1B72, 230, 0, 0}, - {0x1B73, 230, 0, 0}, - {0x1BAA, 9, 0, 0}, - {0x1BAB, 9, 0, 0}, - {0x1BE6, 7, 0, 0}, - {0x1BF2, 9, 0, 0}, - {0x1BF3, 9, 0, 0}, - {0x1C37, 7, 0, 0}, - {0x1CD0, 230, 0, 0}, - {0x1CD1, 230, 0, 0}, - {0x1CD2, 230, 0, 0}, - {0x1CD4, 1, 0, 0}, - {0x1CD5, 220, 0, 0}, - {0x1CD6, 220, 0, 0}, - {0x1CD7, 220, 0, 0}, - {0x1CD8, 220, 0, 0}, - {0x1CD9, 220, 0, 0}, - {0x1CDA, 230, 0, 0}, - {0x1CDB, 230, 0, 0}, - {0x1CDC, 220, 0, 0}, - {0x1CDD, 220, 0, 0}, - {0x1CDE, 220, 0, 0}, - {0x1CDF, 220, 0, 0}, - {0x1CE0, 230, 0, 0}, - {0x1CE2, 1, 0, 0}, - {0x1CE3, 1, 0, 0}, - {0x1CE4, 1, 0, 0}, - {0x1CE5, 1, 0, 0}, - {0x1CE6, 1, 0, 0}, - {0x1CE7, 1, 0, 0}, - {0x1CE8, 1, 0, 0}, - {0x1CED, 220, 0, 0}, - {0x1CF4, 230, 0, 0}, - {0x1CF8, 230, 0, 0}, - {0x1CF9, 230, 0, 0}, - {0x1D2C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0041}, - {0x1D2D, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x00C6}, - {0x1D2E, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0042}, - {0x1D30, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0044}, - {0x1D31, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0045}, - {0x1D32, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x018E}, - {0x1D33, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0047}, - {0x1D34, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0048}, - {0x1D35, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0049}, - {0x1D36, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004A}, - {0x1D37, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004B}, - {0x1D38, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004C}, - {0x1D39, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004D}, - {0x1D3A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004E}, - {0x1D3C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004F}, - {0x1D3D, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0222}, - {0x1D3E, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0050}, - {0x1D3F, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0052}, - {0x1D40, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0054}, - {0x1D41, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0055}, - {0x1D42, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0057}, - {0x1D43, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0061}, - {0x1D44, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0250}, - {0x1D45, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0251}, - {0x1D46, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D02}, - {0x1D47, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0062}, - {0x1D48, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0064}, - {0x1D49, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0065}, - {0x1D4A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0259}, - {0x1D4B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x025B}, - {0x1D4C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x025C}, - {0x1D4D, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0067}, - {0x1D4F, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x006B}, - {0x1D50, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x006D}, - {0x1D51, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x014B}, - {0x1D52, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x006F}, - {0x1D53, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0254}, - {0x1D54, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D16}, - {0x1D55, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D17}, - {0x1D56, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0070}, - {0x1D57, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0074}, - {0x1D58, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0075}, - {0x1D59, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D1D}, - {0x1D5A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x026F}, - {0x1D5B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0076}, - {0x1D5C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D25}, - {0x1D5D, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B2}, - {0x1D5E, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B3}, - {0x1D5F, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B4}, - {0x1D60, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C6}, - {0x1D61, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C7}, - {0x1D62, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0069}, - {0x1D63, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0072}, - {0x1D64, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0075}, - {0x1D65, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0076}, - {0x1D66, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B2}, - {0x1D67, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B3}, - {0x1D68, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C1}, - {0x1D69, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C6}, - {0x1D6A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C7}, - {0x1D78, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x043D}, - {0x1D9B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0252}, - {0x1D9C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0063}, - {0x1D9D, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0255}, - {0x1D9E, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x00F0}, - {0x1D9F, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x025C}, - {0x1DA0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0066}, - {0x1DA1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x025F}, - {0x1DA2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0261}, - {0x1DA3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0265}, - {0x1DA4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0268}, - {0x1DA5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0269}, - {0x1DA6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x026A}, - {0x1DA7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D7B}, - {0x1DA8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x029D}, - {0x1DA9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x026D}, - {0x1DAA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D85}, - {0x1DAB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x029F}, - {0x1DAC, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0271}, - {0x1DAD, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0270}, - {0x1DAE, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0272}, - {0x1DAF, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0273}, - {0x1DB0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0274}, - {0x1DB1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0275}, - {0x1DB2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0278}, - {0x1DB3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0282}, - {0x1DB4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0283}, - {0x1DB5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x01AB}, - {0x1DB6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0289}, - {0x1DB7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x028A}, - {0x1DB8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D1C}, - {0x1DB9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x028B}, - {0x1DBA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x028C}, - {0x1DBB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x007A}, - {0x1DBC, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0290}, - {0x1DBD, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0291}, - {0x1DBE, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0292}, - {0x1DBF, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B8}, - {0x1DC0, 230, 0, 0}, - {0x1DC1, 230, 0, 0}, - {0x1DC2, 220, 0, 0}, - {0x1DC3, 230, 0, 0}, - {0x1DC4, 230, 0, 0}, - {0x1DC5, 230, 0, 0}, - {0x1DC6, 230, 0, 0}, - {0x1DC7, 230, 0, 0}, - {0x1DC8, 230, 0, 0}, - {0x1DC9, 230, 0, 0}, - {0x1DCA, 220, 0, 0}, - {0x1DCB, 230, 0, 0}, - {0x1DCC, 230, 0, 0}, - {0x1DCD, 234, 0, 0}, - {0x1DCE, 214, 0, 0}, - {0x1DCF, 220, 0, 0}, - {0x1DD0, 202, 0, 0}, - {0x1DD1, 230, 0, 0}, - {0x1DD2, 230, 0, 0}, - {0x1DD3, 230, 0, 0}, - {0x1DD4, 230, 0, 0}, - {0x1DD5, 230, 0, 0}, - {0x1DD6, 230, 0, 0}, - {0x1DD7, 230, 0, 0}, - {0x1DD8, 230, 0, 0}, - {0x1DD9, 230, 0, 0}, - {0x1DDA, 230, 0, 0}, - {0x1DDB, 230, 0, 0}, - {0x1DDC, 230, 0, 0}, - {0x1DDD, 230, 0, 0}, - {0x1DDE, 230, 0, 0}, - {0x1DDF, 230, 0, 0}, - {0x1DE0, 230, 0, 0}, - {0x1DE1, 230, 0, 0}, - {0x1DE2, 230, 0, 0}, - {0x1DE3, 230, 0, 0}, - {0x1DE4, 230, 0, 0}, - {0x1DE5, 230, 0, 0}, - {0x1DE6, 230, 0, 0}, - {0x1DE7, 230, 0, 0}, - {0x1DE8, 230, 0, 0}, - {0x1DE9, 230, 0, 0}, - {0x1DEA, 230, 0, 0}, - {0x1DEB, 230, 0, 0}, - {0x1DEC, 230, 0, 0}, - {0x1DED, 230, 0, 0}, - {0x1DEE, 230, 0, 0}, - {0x1DEF, 230, 0, 0}, - {0x1DF0, 230, 0, 0}, - {0x1DF1, 230, 0, 0}, - {0x1DF2, 230, 0, 0}, - {0x1DF3, 230, 0, 0}, - {0x1DF4, 230, 0, 0}, - {0x1DF5, 230, 0, 0}, - {0x1DF6, 232, 0, 0}, - {0x1DF7, 228, 0, 0}, - {0x1DF8, 228, 0, 0}, - {0x1DF9, 220, 0, 0}, - {0x1DFB, 230, 0, 0}, - {0x1DFC, 233, 0, 0}, - {0x1DFD, 220, 0, 0}, - {0x1DFE, 230, 0, 0}, - {0x1DFF, 220, 0, 0}, {0x1E00, 0, 2, 907}, {0x1E01, 0, 2, 909}, {0x1E02, 0, 2, 911}, @@ -1312,7 +575,6 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x1E97, 0, 2, 1209}, {0x1E98, 0, 2, 1211}, {0x1E99, 0, 2, 1213}, - {0x1E9A, 0, 2 | DECOMP_COMPAT, 1215}, {0x1E9B, 0, 2, 1217}, {0x1EA0, 0, 2, 1219}, {0x1EA1, 0, 2, 1221}, @@ -1505,136 +767,1000 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x1F6E, 0, 2, 1595}, {0x1F6F, 0, 2, 1597}, {0x1F70, 0, 2, 1599}, + {0x1F72, 0, 2, 1601}, + {0x1F74, 0, 2, 1603}, + {0x1F76, 0, 2, 1605}, + {0x1F78, 0, 2, 1607}, + {0x1F7A, 0, 2, 1609}, + {0x1F7C, 0, 2, 1611}, + {0x1F80, 0, 2, 1613}, + {0x1F81, 0, 2, 1615}, + {0x1F82, 0, 2, 1617}, + {0x1F83, 0, 2, 1619}, + {0x1F84, 0, 2, 1621}, + {0x1F85, 0, 2, 1623}, + {0x1F86, 0, 2, 1625}, + {0x1F87, 0, 2, 1627}, + {0x1F88, 0, 2, 1629}, + {0x1F89, 0, 2, 1631}, + {0x1F8A, 0, 2, 1633}, + {0x1F8B, 0, 2, 1635}, + {0x1F8C, 0, 2, 1637}, + {0x1F8D, 0, 2, 1639}, + {0x1F8E, 0, 2, 1641}, + {0x1F8F, 0, 2, 1643}, + {0x1F90, 0, 2, 1645}, + {0x1F91, 0, 2, 1647}, + {0x1F92, 0, 2, 1649}, + {0x1F93, 0, 2, 1651}, + {0x1F94, 0, 2, 1653}, + {0x1F95, 0, 2, 1655}, + {0x1F96, 0, 2, 1657}, + {0x1F97, 0, 2, 1659}, + {0x1F98, 0, 2, 1661}, + {0x1F99, 0, 2, 1663}, + {0x1F9A, 0, 2, 1665}, + {0x1F9B, 0, 2, 1667}, + {0x1F9C, 0, 2, 1669}, + {0x1F9D, 0, 2, 1671}, + {0x1F9E, 0, 2, 1673}, + {0x1F9F, 0, 2, 1675}, + {0x1FA0, 0, 2, 1677}, + {0x1FA1, 0, 2, 1679}, + {0x1FA2, 0, 2, 1681}, + {0x1FA3, 0, 2, 1683}, + {0x1FA4, 0, 2, 1685}, + {0x1FA5, 0, 2, 1687}, + {0x1FA6, 0, 2, 1689}, + {0x1FA7, 0, 2, 1691}, + {0x1FA8, 0, 2, 1693}, + {0x1FA9, 0, 2, 1695}, + {0x1FAA, 0, 2, 1697}, + {0x1FAB, 0, 2, 1699}, + {0x1FAC, 0, 2, 1701}, + {0x1FAD, 0, 2, 1703}, + {0x1FAE, 0, 2, 1705}, + {0x1FAF, 0, 2, 1707}, + {0x1FB0, 0, 2, 1709}, + {0x1FB1, 0, 2, 1711}, + {0x1FB2, 0, 2, 1713}, + {0x1FB3, 0, 2, 1715}, + {0x1FB4, 0, 2, 1717}, + {0x1FB6, 0, 2, 1719}, + {0x1FB7, 0, 2, 1721}, + {0x1FB8, 0, 2, 1723}, + {0x1FB9, 0, 2, 1725}, + {0x1FBA, 0, 2, 1727}, + {0x1FBC, 0, 2, 1729}, + {0x1FC1, 0, 2, 1737}, + {0x1FC2, 0, 2, 1739}, + {0x1FC3, 0, 2, 1741}, + {0x1FC4, 0, 2, 1743}, + {0x1FC6, 0, 2, 1745}, + {0x1FC7, 0, 2, 1747}, + {0x1FC8, 0, 2, 1749}, + {0x1FCA, 0, 2, 1751}, + {0x1FCC, 0, 2, 1753}, + {0x1FCD, 0, 2, 1755}, + {0x1FCE, 0, 2, 1757}, + {0x1FCF, 0, 2, 1759}, + {0x1FD0, 0, 2, 1761}, + {0x1FD1, 0, 2, 1763}, + {0x1FD2, 0, 2, 1765}, + {0x1FD6, 0, 2, 1767}, + {0x1FD7, 0, 2, 1769}, + {0x1FD8, 0, 2, 1771}, + {0x1FD9, 0, 2, 1773}, + {0x1FDA, 0, 2, 1775}, + {0x1FDD, 0, 2, 1777}, + {0x1FDE, 0, 2, 1779}, + {0x1FDF, 0, 2, 1781}, + {0x1FE0, 0, 2, 1783}, + {0x1FE1, 0, 2, 1785}, + {0x1FE2, 0, 2, 1787}, + {0x1FE4, 0, 2, 1789}, + {0x1FE5, 0, 2, 1791}, + {0x1FE6, 0, 2, 1793}, + {0x1FE7, 0, 2, 1795}, + {0x1FE8, 0, 2, 1797}, + {0x1FE9, 0, 2, 1799}, + {0x1FEA, 0, 2, 1801}, + {0x1FEC, 0, 2, 1803}, + {0x1FED, 0, 2, 1805}, + {0x1FF2, 0, 2, 1807}, + {0x1FF3, 0, 2, 1809}, + {0x1FF4, 0, 2, 1811}, + {0x1FF6, 0, 2, 1813}, + {0x1FF7, 0, 2, 1815}, + {0x1FF8, 0, 2, 1817}, + {0x1FFA, 0, 2, 1819}, + {0x1FFC, 0, 2, 1821}, + {0x219A, 0, 2, 1983}, + {0x219B, 0, 2, 1985}, + {0x21AE, 0, 2, 1987}, + {0x21CD, 0, 2, 1989}, + {0x21CE, 0, 2, 1991}, + {0x21CF, 0, 2, 1993}, + {0x2204, 0, 2, 1995}, + {0x2209, 0, 2, 1997}, + {0x220C, 0, 2, 1999}, + {0x2224, 0, 2, 2001}, + {0x2226, 0, 2, 2003}, + {0x2241, 0, 2, 2015}, + {0x2244, 0, 2, 2017}, + {0x2247, 0, 2, 2019}, + {0x2249, 0, 2, 2021}, + {0x2260, 0, 2, 2023}, + {0x2262, 0, 2, 2025}, + {0x226D, 0, 2, 2027}, + {0x226E, 0, 2, 2029}, + {0x226F, 0, 2, 2031}, + {0x2270, 0, 2, 2033}, + {0x2271, 0, 2, 2035}, + {0x2274, 0, 2, 2037}, + {0x2275, 0, 2, 2039}, + {0x2278, 0, 2, 2041}, + {0x2279, 0, 2, 2043}, + {0x2280, 0, 2, 2045}, + {0x2281, 0, 2, 2047}, + {0x2284, 0, 2, 2049}, + {0x2285, 0, 2, 2051}, + {0x2288, 0, 2, 2053}, + {0x2289, 0, 2, 2055}, + {0x22AC, 0, 2, 2057}, + {0x22AD, 0, 2, 2059}, + {0x22AE, 0, 2, 2061}, + {0x22AF, 0, 2, 2063}, + {0x22E0, 0, 2, 2065}, + {0x22E1, 0, 2, 2067}, + {0x22E2, 0, 2, 2069}, + {0x22E3, 0, 2, 2071}, + {0x22EA, 0, 2, 2073}, + {0x22EB, 0, 2, 2075}, + {0x22EC, 0, 2, 2077}, + {0x22ED, 0, 2, 2079}, + {0x304C, 0, 2, 2317}, + {0x304E, 0, 2, 2319}, + {0x3050, 0, 2, 2321}, + {0x3052, 0, 2, 2323}, + {0x3054, 0, 2, 2325}, + {0x3056, 0, 2, 2327}, + {0x3058, 0, 2, 2329}, + {0x305A, 0, 2, 2331}, + {0x305C, 0, 2, 2333}, + {0x305E, 0, 2, 2335}, + {0x3060, 0, 2, 2337}, + {0x3062, 0, 2, 2339}, + {0x3065, 0, 2, 2341}, + {0x3067, 0, 2, 2343}, + {0x3069, 0, 2, 2345}, + {0x3070, 0, 2, 2347}, + {0x3071, 0, 2, 2349}, + {0x3073, 0, 2, 2351}, + {0x3074, 0, 2, 2353}, + {0x3076, 0, 2, 2355}, + {0x3077, 0, 2, 2357}, + {0x3079, 0, 2, 2359}, + {0x307A, 0, 2, 2361}, + {0x307C, 0, 2, 2363}, + {0x307D, 0, 2, 2365}, + {0x3094, 0, 2, 2367}, + {0x309E, 0, 2, 2373}, + {0x30AC, 0, 2, 2377}, + {0x30AE, 0, 2, 2379}, + {0x30B0, 0, 2, 2381}, + {0x30B2, 0, 2, 2383}, + {0x30B4, 0, 2, 2385}, + {0x30B6, 0, 2, 2387}, + {0x30B8, 0, 2, 2389}, + {0x30BA, 0, 2, 2391}, + {0x30BC, 0, 2, 2393}, + {0x30BE, 0, 2, 2395}, + {0x30C0, 0, 2, 2397}, + {0x30C2, 0, 2, 2399}, + {0x30C5, 0, 2, 2401}, + {0x30C7, 0, 2, 2403}, + {0x30C9, 0, 2, 2405}, + {0x30D0, 0, 2, 2407}, + {0x30D1, 0, 2, 2409}, + {0x30D3, 0, 2, 2411}, + {0x30D4, 0, 2, 2413}, + {0x30D6, 0, 2, 2415}, + {0x30D7, 0, 2, 2417}, + {0x30D9, 0, 2, 2419}, + {0x30DA, 0, 2, 2421}, + {0x30DC, 0, 2, 2423}, + {0x30DD, 0, 2, 2425}, + {0x30F4, 0, 2, 2427}, + {0x30F7, 0, 2, 2429}, + {0x30F8, 0, 2, 2431}, + {0x30F9, 0, 2, 2433}, + {0x30FA, 0, 2, 2435}, + {0x30FE, 0, 2, 2437}, + {0x1109A, 0, 2, 4776}, + {0x1109C, 0, 2, 4778}, + {0x110AB, 0, 2, 4780}, + {0x1112E, 0, 2, 4782}, + {0x1112F, 0, 2, 4784}, + {0x1134B, 0, 2, 4786}, + {0x1134C, 0, 2, 4788}, + {0x114BB, 0, 2, 4790}, + {0x114BC, 0, 2, 4792}, + {0x114BE, 0, 2, 4794}, + {0x115BA, 0, 2, 4796}, + {0x115BB, 0, 2, 4798}, + {0x11938, 0, 2, 4800}, + {0x00A0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0020}, + {0x00A8, 0, 2 | DECOMP_COMPAT, 0}, + {0x00AA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0061}, + {0x00AF, 0, 2 | DECOMP_COMPAT, 2}, + {0x00B2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0032}, + {0x00B3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0033}, + {0x00B4, 0, 2 | DECOMP_COMPAT, 4}, + {0x00B5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03BC}, + {0x00B8, 0, 2 | DECOMP_COMPAT, 6}, + {0x00B9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0031}, + {0x00BA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x006F}, + {0x00BC, 0, 3 | DECOMP_COMPAT, 8}, + {0x00BD, 0, 3 | DECOMP_COMPAT, 11}, + {0x00BE, 0, 3 | DECOMP_COMPAT, 14}, + {0x0132, 0, 2 | DECOMP_COMPAT, 213}, + {0x0133, 0, 2 | DECOMP_COMPAT, 215}, + {0x013F, 0, 2 | DECOMP_COMPAT, 237}, + {0x0140, 0, 2 | DECOMP_COMPAT, 239}, + {0x0149, 0, 2 | DECOMP_COMPAT, 253}, + {0x017F, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0073}, + {0x01C4, 0, 2 | DECOMP_COMPAT, 357}, + {0x01C5, 0, 2 | DECOMP_COMPAT, 359}, + {0x01C6, 0, 2 | DECOMP_COMPAT, 361}, + {0x01C7, 0, 2 | DECOMP_COMPAT, 363}, + {0x01C8, 0, 2 | DECOMP_COMPAT, 365}, + {0x01C9, 0, 2 | DECOMP_COMPAT, 367}, + {0x01CA, 0, 2 | DECOMP_COMPAT, 369}, + {0x01CB, 0, 2 | DECOMP_COMPAT, 371}, + {0x01CC, 0, 2 | DECOMP_COMPAT, 373}, + {0x01F1, 0, 2 | DECOMP_COMPAT, 441}, + {0x01F2, 0, 2 | DECOMP_COMPAT, 443}, + {0x01F3, 0, 2 | DECOMP_COMPAT, 445}, + {0x02B0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0068}, + {0x02B1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0266}, + {0x02B2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x006A}, + {0x02B3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0072}, + {0x02B4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0279}, + {0x02B5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x027B}, + {0x02B6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0281}, + {0x02B7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0077}, + {0x02B8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0079}, + {0x02D8, 0, 2 | DECOMP_COMPAT, 555}, + {0x02D9, 0, 2 | DECOMP_COMPAT, 557}, + {0x02DA, 0, 2 | DECOMP_COMPAT, 559}, + {0x02DB, 0, 2 | DECOMP_COMPAT, 561}, + {0x02DC, 0, 2 | DECOMP_COMPAT, 563}, + {0x02DD, 0, 2 | DECOMP_COMPAT, 565}, + {0x02E0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0263}, + {0x02E1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x006C}, + {0x02E2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0073}, + {0x02E3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0078}, + {0x02E4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0295}, + {0x0300, 230, 0, 0}, + {0x0301, 230, 0, 0}, + {0x0302, 230, 0, 0}, + {0x0303, 230, 0, 0}, + {0x0304, 230, 0, 0}, + {0x0305, 230, 0, 0}, + {0x0306, 230, 0, 0}, + {0x0307, 230, 0, 0}, + {0x0308, 230, 0, 0}, + {0x0309, 230, 0, 0}, + {0x030A, 230, 0, 0}, + {0x030B, 230, 0, 0}, + {0x030C, 230, 0, 0}, + {0x030D, 230, 0, 0}, + {0x030E, 230, 0, 0}, + {0x030F, 230, 0, 0}, + {0x0310, 230, 0, 0}, + {0x0311, 230, 0, 0}, + {0x0312, 230, 0, 0}, + {0x0313, 230, 0, 0}, + {0x0314, 230, 0, 0}, + {0x0315, 232, 0, 0}, + {0x0316, 220, 0, 0}, + {0x0317, 220, 0, 0}, + {0x0318, 220, 0, 0}, + {0x0319, 220, 0, 0}, + {0x031A, 232, 0, 0}, + {0x031B, 216, 0, 0}, + {0x031C, 220, 0, 0}, + {0x031D, 220, 0, 0}, + {0x031E, 220, 0, 0}, + {0x031F, 220, 0, 0}, + {0x0320, 220, 0, 0}, + {0x0321, 202, 0, 0}, + {0x0322, 202, 0, 0}, + {0x0323, 220, 0, 0}, + {0x0324, 220, 0, 0}, + {0x0325, 220, 0, 0}, + {0x0326, 220, 0, 0}, + {0x0327, 202, 0, 0}, + {0x0328, 202, 0, 0}, + {0x0329, 220, 0, 0}, + {0x032A, 220, 0, 0}, + {0x032B, 220, 0, 0}, + {0x032C, 220, 0, 0}, + {0x032D, 220, 0, 0}, + {0x032E, 220, 0, 0}, + {0x032F, 220, 0, 0}, + {0x0330, 220, 0, 0}, + {0x0331, 220, 0, 0}, + {0x0332, 220, 0, 0}, + {0x0333, 220, 0, 0}, + {0x0334, 1, 0, 0}, + {0x0335, 1, 0, 0}, + {0x0336, 1, 0, 0}, + {0x0337, 1, 0, 0}, + {0x0338, 1, 0, 0}, + {0x0339, 220, 0, 0}, + {0x033A, 220, 0, 0}, + {0x033B, 220, 0, 0}, + {0x033C, 220, 0, 0}, + {0x033D, 230, 0, 0}, + {0x033E, 230, 0, 0}, + {0x033F, 230, 0, 0}, + {0x0340, 230, 1 | DECOMP_INLINE, 0x0300}, + {0x0341, 230, 1 | DECOMP_INLINE, 0x0301}, + {0x0342, 230, 0, 0}, + {0x0343, 230, 1 | DECOMP_INLINE, 0x0313}, + {0x0344, 230, 2 | DECOMP_NO_COMPOSE, 567}, /* non-starter decomposition */ + {0x0345, 240, 0, 0}, + {0x0346, 230, 0, 0}, + {0x0347, 220, 0, 0}, + {0x0348, 220, 0, 0}, + {0x0349, 220, 0, 0}, + {0x034A, 230, 0, 0}, + {0x034B, 230, 0, 0}, + {0x034C, 230, 0, 0}, + {0x034D, 220, 0, 0}, + {0x034E, 220, 0, 0}, + {0x0350, 230, 0, 0}, + {0x0351, 230, 0, 0}, + {0x0352, 230, 0, 0}, + {0x0353, 220, 0, 0}, + {0x0354, 220, 0, 0}, + {0x0355, 220, 0, 0}, + {0x0356, 220, 0, 0}, + {0x0357, 230, 0, 0}, + {0x0358, 232, 0, 0}, + {0x0359, 220, 0, 0}, + {0x035A, 220, 0, 0}, + {0x035B, 230, 0, 0}, + {0x035C, 233, 0, 0}, + {0x035D, 234, 0, 0}, + {0x035E, 234, 0, 0}, + {0x035F, 233, 0, 0}, + {0x0360, 234, 0, 0}, + {0x0361, 234, 0, 0}, + {0x0362, 233, 0, 0}, + {0x0363, 230, 0, 0}, + {0x0364, 230, 0, 0}, + {0x0365, 230, 0, 0}, + {0x0366, 230, 0, 0}, + {0x0367, 230, 0, 0}, + {0x0368, 230, 0, 0}, + {0x0369, 230, 0, 0}, + {0x036A, 230, 0, 0}, + {0x036B, 230, 0, 0}, + {0x036C, 230, 0, 0}, + {0x036D, 230, 0, 0}, + {0x036E, 230, 0, 0}, + {0x036F, 230, 0, 0}, + {0x0374, 0, 1 | DECOMP_INLINE, 0x02B9}, + {0x037A, 0, 2 | DECOMP_COMPAT, 569}, + {0x037E, 0, 1 | DECOMP_INLINE, 0x003B}, + {0x0384, 0, 2 | DECOMP_COMPAT, 571}, + {0x0387, 0, 1 | DECOMP_INLINE, 0x00B7}, + {0x03D0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B2}, + {0x03D1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B8}, + {0x03D2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03A5}, + {0x03D5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C6}, + {0x03D6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C0}, + {0x03F0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03BA}, + {0x03F1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C1}, + {0x03F2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C2}, + {0x03F4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0398}, + {0x03F5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B5}, + {0x03F9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03A3}, + {0x0483, 230, 0, 0}, + {0x0484, 230, 0, 0}, + {0x0485, 230, 0, 0}, + {0x0486, 230, 0, 0}, + {0x0487, 230, 0, 0}, + {0x0587, 0, 2 | DECOMP_COMPAT, 723}, + {0x0591, 220, 0, 0}, + {0x0592, 230, 0, 0}, + {0x0593, 230, 0, 0}, + {0x0594, 230, 0, 0}, + {0x0595, 230, 0, 0}, + {0x0596, 220, 0, 0}, + {0x0597, 230, 0, 0}, + {0x0598, 230, 0, 0}, + {0x0599, 230, 0, 0}, + {0x059A, 222, 0, 0}, + {0x059B, 220, 0, 0}, + {0x059C, 230, 0, 0}, + {0x059D, 230, 0, 0}, + {0x059E, 230, 0, 0}, + {0x059F, 230, 0, 0}, + {0x05A0, 230, 0, 0}, + {0x05A1, 230, 0, 0}, + {0x05A2, 220, 0, 0}, + {0x05A3, 220, 0, 0}, + {0x05A4, 220, 0, 0}, + {0x05A5, 220, 0, 0}, + {0x05A6, 220, 0, 0}, + {0x05A7, 220, 0, 0}, + {0x05A8, 230, 0, 0}, + {0x05A9, 230, 0, 0}, + {0x05AA, 220, 0, 0}, + {0x05AB, 230, 0, 0}, + {0x05AC, 230, 0, 0}, + {0x05AD, 222, 0, 0}, + {0x05AE, 228, 0, 0}, + {0x05AF, 230, 0, 0}, + {0x05B0, 10, 0, 0}, + {0x05B1, 11, 0, 0}, + {0x05B2, 12, 0, 0}, + {0x05B3, 13, 0, 0}, + {0x05B4, 14, 0, 0}, + {0x05B5, 15, 0, 0}, + {0x05B6, 16, 0, 0}, + {0x05B7, 17, 0, 0}, + {0x05B8, 18, 0, 0}, + {0x05B9, 19, 0, 0}, + {0x05BA, 19, 0, 0}, + {0x05BB, 20, 0, 0}, + {0x05BC, 21, 0, 0}, + {0x05BD, 22, 0, 0}, + {0x05BF, 23, 0, 0}, + {0x05C1, 24, 0, 0}, + {0x05C2, 25, 0, 0}, + {0x05C4, 230, 0, 0}, + {0x05C5, 220, 0, 0}, + {0x05C7, 18, 0, 0}, + {0x0610, 230, 0, 0}, + {0x0611, 230, 0, 0}, + {0x0612, 230, 0, 0}, + {0x0613, 230, 0, 0}, + {0x0614, 230, 0, 0}, + {0x0615, 230, 0, 0}, + {0x0616, 230, 0, 0}, + {0x0617, 230, 0, 0}, + {0x0618, 30, 0, 0}, + {0x0619, 31, 0, 0}, + {0x061A, 32, 0, 0}, + {0x064B, 27, 0, 0}, + {0x064C, 28, 0, 0}, + {0x064D, 29, 0, 0}, + {0x064E, 30, 0, 0}, + {0x064F, 31, 0, 0}, + {0x0650, 32, 0, 0}, + {0x0651, 33, 0, 0}, + {0x0652, 34, 0, 0}, + {0x0653, 230, 0, 0}, + {0x0654, 230, 0, 0}, + {0x0655, 220, 0, 0}, + {0x0656, 220, 0, 0}, + {0x0657, 230, 0, 0}, + {0x0658, 230, 0, 0}, + {0x0659, 230, 0, 0}, + {0x065A, 230, 0, 0}, + {0x065B, 230, 0, 0}, + {0x065C, 220, 0, 0}, + {0x065D, 230, 0, 0}, + {0x065E, 230, 0, 0}, + {0x065F, 220, 0, 0}, + {0x0670, 35, 0, 0}, + {0x0675, 0, 2 | DECOMP_COMPAT, 735}, + {0x0676, 0, 2 | DECOMP_COMPAT, 737}, + {0x0677, 0, 2 | DECOMP_COMPAT, 739}, + {0x0678, 0, 2 | DECOMP_COMPAT, 741}, + {0x06D6, 230, 0, 0}, + {0x06D7, 230, 0, 0}, + {0x06D8, 230, 0, 0}, + {0x06D9, 230, 0, 0}, + {0x06DA, 230, 0, 0}, + {0x06DB, 230, 0, 0}, + {0x06DC, 230, 0, 0}, + {0x06DF, 230, 0, 0}, + {0x06E0, 230, 0, 0}, + {0x06E1, 230, 0, 0}, + {0x06E2, 230, 0, 0}, + {0x06E3, 220, 0, 0}, + {0x06E4, 230, 0, 0}, + {0x06E7, 230, 0, 0}, + {0x06E8, 230, 0, 0}, + {0x06EA, 220, 0, 0}, + {0x06EB, 230, 0, 0}, + {0x06EC, 230, 0, 0}, + {0x06ED, 220, 0, 0}, + {0x0711, 36, 0, 0}, + {0x0730, 230, 0, 0}, + {0x0731, 220, 0, 0}, + {0x0732, 230, 0, 0}, + {0x0733, 230, 0, 0}, + {0x0734, 220, 0, 0}, + {0x0735, 230, 0, 0}, + {0x0736, 230, 0, 0}, + {0x0737, 220, 0, 0}, + {0x0738, 220, 0, 0}, + {0x0739, 220, 0, 0}, + {0x073A, 230, 0, 0}, + {0x073B, 220, 0, 0}, + {0x073C, 220, 0, 0}, + {0x073D, 230, 0, 0}, + {0x073E, 220, 0, 0}, + {0x073F, 230, 0, 0}, + {0x0740, 230, 0, 0}, + {0x0741, 230, 0, 0}, + {0x0742, 220, 0, 0}, + {0x0743, 230, 0, 0}, + {0x0744, 220, 0, 0}, + {0x0745, 230, 0, 0}, + {0x0746, 220, 0, 0}, + {0x0747, 230, 0, 0}, + {0x0748, 220, 0, 0}, + {0x0749, 230, 0, 0}, + {0x074A, 230, 0, 0}, + {0x07EB, 230, 0, 0}, + {0x07EC, 230, 0, 0}, + {0x07ED, 230, 0, 0}, + {0x07EE, 230, 0, 0}, + {0x07EF, 230, 0, 0}, + {0x07F0, 230, 0, 0}, + {0x07F1, 230, 0, 0}, + {0x07F2, 220, 0, 0}, + {0x07F3, 230, 0, 0}, + {0x07FD, 220, 0, 0}, + {0x0816, 230, 0, 0}, + {0x0817, 230, 0, 0}, + {0x0818, 230, 0, 0}, + {0x0819, 230, 0, 0}, + {0x081B, 230, 0, 0}, + {0x081C, 230, 0, 0}, + {0x081D, 230, 0, 0}, + {0x081E, 230, 0, 0}, + {0x081F, 230, 0, 0}, + {0x0820, 230, 0, 0}, + {0x0821, 230, 0, 0}, + {0x0822, 230, 0, 0}, + {0x0823, 230, 0, 0}, + {0x0825, 230, 0, 0}, + {0x0826, 230, 0, 0}, + {0x0827, 230, 0, 0}, + {0x0829, 230, 0, 0}, + {0x082A, 230, 0, 0}, + {0x082B, 230, 0, 0}, + {0x082C, 230, 0, 0}, + {0x082D, 230, 0, 0}, + {0x0859, 220, 0, 0}, + {0x085A, 220, 0, 0}, + {0x085B, 220, 0, 0}, + {0x08D3, 220, 0, 0}, + {0x08D4, 230, 0, 0}, + {0x08D5, 230, 0, 0}, + {0x08D6, 230, 0, 0}, + {0x08D7, 230, 0, 0}, + {0x08D8, 230, 0, 0}, + {0x08D9, 230, 0, 0}, + {0x08DA, 230, 0, 0}, + {0x08DB, 230, 0, 0}, + {0x08DC, 230, 0, 0}, + {0x08DD, 230, 0, 0}, + {0x08DE, 230, 0, 0}, + {0x08DF, 230, 0, 0}, + {0x08E0, 230, 0, 0}, + {0x08E1, 230, 0, 0}, + {0x08E3, 220, 0, 0}, + {0x08E4, 230, 0, 0}, + {0x08E5, 230, 0, 0}, + {0x08E6, 220, 0, 0}, + {0x08E7, 230, 0, 0}, + {0x08E8, 230, 0, 0}, + {0x08E9, 220, 0, 0}, + {0x08EA, 230, 0, 0}, + {0x08EB, 230, 0, 0}, + {0x08EC, 230, 0, 0}, + {0x08ED, 220, 0, 0}, + {0x08EE, 220, 0, 0}, + {0x08EF, 220, 0, 0}, + {0x08F0, 27, 0, 0}, + {0x08F1, 28, 0, 0}, + {0x08F2, 29, 0, 0}, + {0x08F3, 230, 0, 0}, + {0x08F4, 230, 0, 0}, + {0x08F5, 230, 0, 0}, + {0x08F6, 220, 0, 0}, + {0x08F7, 230, 0, 0}, + {0x08F8, 230, 0, 0}, + {0x08F9, 220, 0, 0}, + {0x08FA, 220, 0, 0}, + {0x08FB, 230, 0, 0}, + {0x08FC, 230, 0, 0}, + {0x08FD, 230, 0, 0}, + {0x08FE, 230, 0, 0}, + {0x08FF, 230, 0, 0}, + {0x093C, 7, 0, 0}, + {0x094D, 9, 0, 0}, + {0x0951, 230, 0, 0}, + {0x0952, 220, 0, 0}, + {0x0953, 230, 0, 0}, + {0x0954, 230, 0, 0}, + {0x0958, 0, 2 | DECOMP_NO_COMPOSE, 755}, /* in exclusion list */ + {0x0959, 0, 2 | DECOMP_NO_COMPOSE, 757}, /* in exclusion list */ + {0x095A, 0, 2 | DECOMP_NO_COMPOSE, 759}, /* in exclusion list */ + {0x095B, 0, 2 | DECOMP_NO_COMPOSE, 761}, /* in exclusion list */ + {0x095C, 0, 2 | DECOMP_NO_COMPOSE, 763}, /* in exclusion list */ + {0x095D, 0, 2 | DECOMP_NO_COMPOSE, 765}, /* in exclusion list */ + {0x095E, 0, 2 | DECOMP_NO_COMPOSE, 767}, /* in exclusion list */ + {0x095F, 0, 2 | DECOMP_NO_COMPOSE, 769}, /* in exclusion list */ + {0x09BC, 7, 0, 0}, + {0x09CD, 9, 0, 0}, + {0x09DC, 0, 2 | DECOMP_NO_COMPOSE, 775}, /* in exclusion list */ + {0x09DD, 0, 2 | DECOMP_NO_COMPOSE, 777}, /* in exclusion list */ + {0x09DF, 0, 2 | DECOMP_NO_COMPOSE, 779}, /* in exclusion list */ + {0x09FE, 230, 0, 0}, + {0x0A33, 0, 2 | DECOMP_NO_COMPOSE, 781}, /* in exclusion list */ + {0x0A36, 0, 2 | DECOMP_NO_COMPOSE, 783}, /* in exclusion list */ + {0x0A3C, 7, 0, 0}, + {0x0A4D, 9, 0, 0}, + {0x0A59, 0, 2 | DECOMP_NO_COMPOSE, 785}, /* in exclusion list */ + {0x0A5A, 0, 2 | DECOMP_NO_COMPOSE, 787}, /* in exclusion list */ + {0x0A5B, 0, 2 | DECOMP_NO_COMPOSE, 789}, /* in exclusion list */ + {0x0A5E, 0, 2 | DECOMP_NO_COMPOSE, 791}, /* in exclusion list */ + {0x0ABC, 7, 0, 0}, + {0x0ACD, 9, 0, 0}, + {0x0B3C, 7, 0, 0}, + {0x0B4D, 9, 0, 0}, + {0x0B5C, 0, 2 | DECOMP_NO_COMPOSE, 799}, /* in exclusion list */ + {0x0B5D, 0, 2 | DECOMP_NO_COMPOSE, 801}, /* in exclusion list */ + {0x0BCD, 9, 0, 0}, + {0x0C4D, 9, 0, 0}, + {0x0C55, 84, 0, 0}, + {0x0C56, 91, 0, 0}, + {0x0CBC, 7, 0, 0}, + {0x0CCD, 9, 0, 0}, + {0x0D3B, 9, 0, 0}, + {0x0D3C, 9, 0, 0}, + {0x0D4D, 9, 0, 0}, + {0x0DCA, 9, 0, 0}, + {0x0E33, 0, 2 | DECOMP_COMPAT, 837}, + {0x0E38, 103, 0, 0}, + {0x0E39, 103, 0, 0}, + {0x0E3A, 9, 0, 0}, + {0x0E48, 107, 0, 0}, + {0x0E49, 107, 0, 0}, + {0x0E4A, 107, 0, 0}, + {0x0E4B, 107, 0, 0}, + {0x0EB3, 0, 2 | DECOMP_COMPAT, 839}, + {0x0EB8, 118, 0, 0}, + {0x0EB9, 118, 0, 0}, + {0x0EBA, 9, 0, 0}, + {0x0EC8, 122, 0, 0}, + {0x0EC9, 122, 0, 0}, + {0x0ECA, 122, 0, 0}, + {0x0ECB, 122, 0, 0}, + {0x0EDC, 0, 2 | DECOMP_COMPAT, 841}, + {0x0EDD, 0, 2 | DECOMP_COMPAT, 843}, + {0x0F0C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0F0B}, + {0x0F18, 220, 0, 0}, + {0x0F19, 220, 0, 0}, + {0x0F35, 220, 0, 0}, + {0x0F37, 220, 0, 0}, + {0x0F39, 216, 0, 0}, + {0x0F43, 0, 2 | DECOMP_NO_COMPOSE, 845}, /* in exclusion list */ + {0x0F4D, 0, 2 | DECOMP_NO_COMPOSE, 847}, /* in exclusion list */ + {0x0F52, 0, 2 | DECOMP_NO_COMPOSE, 849}, /* in exclusion list */ + {0x0F57, 0, 2 | DECOMP_NO_COMPOSE, 851}, /* in exclusion list */ + {0x0F5C, 0, 2 | DECOMP_NO_COMPOSE, 853}, /* in exclusion list */ + {0x0F69, 0, 2 | DECOMP_NO_COMPOSE, 855}, /* in exclusion list */ + {0x0F71, 129, 0, 0}, + {0x0F72, 130, 0, 0}, + {0x0F73, 0, 2 | DECOMP_NO_COMPOSE, 857}, /* non-starter decomposition */ + {0x0F74, 132, 0, 0}, + {0x0F75, 0, 2 | DECOMP_NO_COMPOSE, 859}, /* non-starter decomposition */ + {0x0F76, 0, 2 | DECOMP_NO_COMPOSE, 861}, /* in exclusion list */ + {0x0F77, 0, 2 | DECOMP_COMPAT, 863}, + {0x0F78, 0, 2 | DECOMP_NO_COMPOSE, 865}, /* in exclusion list */ + {0x0F79, 0, 2 | DECOMP_COMPAT, 867}, + {0x0F7A, 130, 0, 0}, + {0x0F7B, 130, 0, 0}, + {0x0F7C, 130, 0, 0}, + {0x0F7D, 130, 0, 0}, + {0x0F80, 130, 0, 0}, + {0x0F81, 0, 2 | DECOMP_NO_COMPOSE, 869}, /* non-starter decomposition */ + {0x0F82, 230, 0, 0}, + {0x0F83, 230, 0, 0}, + {0x0F84, 9, 0, 0}, + {0x0F86, 230, 0, 0}, + {0x0F87, 230, 0, 0}, + {0x0F93, 0, 2 | DECOMP_NO_COMPOSE, 871}, /* in exclusion list */ + {0x0F9D, 0, 2 | DECOMP_NO_COMPOSE, 873}, /* in exclusion list */ + {0x0FA2, 0, 2 | DECOMP_NO_COMPOSE, 875}, /* in exclusion list */ + {0x0FA7, 0, 2 | DECOMP_NO_COMPOSE, 877}, /* in exclusion list */ + {0x0FAC, 0, 2 | DECOMP_NO_COMPOSE, 879}, /* in exclusion list */ + {0x0FB9, 0, 2 | DECOMP_NO_COMPOSE, 881}, /* in exclusion list */ + {0x0FC6, 220, 0, 0}, + {0x1037, 7, 0, 0}, + {0x1039, 9, 0, 0}, + {0x103A, 9, 0, 0}, + {0x108D, 220, 0, 0}, + {0x10FC, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x10DC}, + {0x135D, 230, 0, 0}, + {0x135E, 230, 0, 0}, + {0x135F, 230, 0, 0}, + {0x1714, 9, 0, 0}, + {0x1734, 9, 0, 0}, + {0x17D2, 9, 0, 0}, + {0x17DD, 230, 0, 0}, + {0x18A9, 228, 0, 0}, + {0x1939, 222, 0, 0}, + {0x193A, 230, 0, 0}, + {0x193B, 220, 0, 0}, + {0x1A17, 230, 0, 0}, + {0x1A18, 220, 0, 0}, + {0x1A60, 9, 0, 0}, + {0x1A75, 230, 0, 0}, + {0x1A76, 230, 0, 0}, + {0x1A77, 230, 0, 0}, + {0x1A78, 230, 0, 0}, + {0x1A79, 230, 0, 0}, + {0x1A7A, 230, 0, 0}, + {0x1A7B, 230, 0, 0}, + {0x1A7C, 230, 0, 0}, + {0x1A7F, 220, 0, 0}, + {0x1AB0, 230, 0, 0}, + {0x1AB1, 230, 0, 0}, + {0x1AB2, 230, 0, 0}, + {0x1AB3, 230, 0, 0}, + {0x1AB4, 230, 0, 0}, + {0x1AB5, 220, 0, 0}, + {0x1AB6, 220, 0, 0}, + {0x1AB7, 220, 0, 0}, + {0x1AB8, 220, 0, 0}, + {0x1AB9, 220, 0, 0}, + {0x1ABA, 220, 0, 0}, + {0x1ABB, 230, 0, 0}, + {0x1ABC, 230, 0, 0}, + {0x1ABD, 220, 0, 0}, + {0x1ABF, 220, 0, 0}, + {0x1AC0, 220, 0, 0}, + {0x1B34, 7, 0, 0}, + {0x1B44, 9, 0, 0}, + {0x1B6B, 230, 0, 0}, + {0x1B6C, 220, 0, 0}, + {0x1B6D, 230, 0, 0}, + {0x1B6E, 230, 0, 0}, + {0x1B6F, 230, 0, 0}, + {0x1B70, 230, 0, 0}, + {0x1B71, 230, 0, 0}, + {0x1B72, 230, 0, 0}, + {0x1B73, 230, 0, 0}, + {0x1BAA, 9, 0, 0}, + {0x1BAB, 9, 0, 0}, + {0x1BE6, 7, 0, 0}, + {0x1BF2, 9, 0, 0}, + {0x1BF3, 9, 0, 0}, + {0x1C37, 7, 0, 0}, + {0x1CD0, 230, 0, 0}, + {0x1CD1, 230, 0, 0}, + {0x1CD2, 230, 0, 0}, + {0x1CD4, 1, 0, 0}, + {0x1CD5, 220, 0, 0}, + {0x1CD6, 220, 0, 0}, + {0x1CD7, 220, 0, 0}, + {0x1CD8, 220, 0, 0}, + {0x1CD9, 220, 0, 0}, + {0x1CDA, 230, 0, 0}, + {0x1CDB, 230, 0, 0}, + {0x1CDC, 220, 0, 0}, + {0x1CDD, 220, 0, 0}, + {0x1CDE, 220, 0, 0}, + {0x1CDF, 220, 0, 0}, + {0x1CE0, 230, 0, 0}, + {0x1CE2, 1, 0, 0}, + {0x1CE3, 1, 0, 0}, + {0x1CE4, 1, 0, 0}, + {0x1CE5, 1, 0, 0}, + {0x1CE6, 1, 0, 0}, + {0x1CE7, 1, 0, 0}, + {0x1CE8, 1, 0, 0}, + {0x1CED, 220, 0, 0}, + {0x1CF4, 230, 0, 0}, + {0x1CF8, 230, 0, 0}, + {0x1CF9, 230, 0, 0}, + {0x1D2C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0041}, + {0x1D2D, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x00C6}, + {0x1D2E, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0042}, + {0x1D30, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0044}, + {0x1D31, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0045}, + {0x1D32, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x018E}, + {0x1D33, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0047}, + {0x1D34, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0048}, + {0x1D35, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0049}, + {0x1D36, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004A}, + {0x1D37, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004B}, + {0x1D38, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004C}, + {0x1D39, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004D}, + {0x1D3A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004E}, + {0x1D3C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004F}, + {0x1D3D, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0222}, + {0x1D3E, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0050}, + {0x1D3F, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0052}, + {0x1D40, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0054}, + {0x1D41, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0055}, + {0x1D42, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0057}, + {0x1D43, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0061}, + {0x1D44, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0250}, + {0x1D45, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0251}, + {0x1D46, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D02}, + {0x1D47, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0062}, + {0x1D48, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0064}, + {0x1D49, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0065}, + {0x1D4A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0259}, + {0x1D4B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x025B}, + {0x1D4C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x025C}, + {0x1D4D, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0067}, + {0x1D4F, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x006B}, + {0x1D50, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x006D}, + {0x1D51, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x014B}, + {0x1D52, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x006F}, + {0x1D53, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0254}, + {0x1D54, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D16}, + {0x1D55, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D17}, + {0x1D56, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0070}, + {0x1D57, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0074}, + {0x1D58, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0075}, + {0x1D59, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D1D}, + {0x1D5A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x026F}, + {0x1D5B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0076}, + {0x1D5C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D25}, + {0x1D5D, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B2}, + {0x1D5E, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B3}, + {0x1D5F, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B4}, + {0x1D60, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C6}, + {0x1D61, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C7}, + {0x1D62, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0069}, + {0x1D63, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0072}, + {0x1D64, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0075}, + {0x1D65, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0076}, + {0x1D66, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B2}, + {0x1D67, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B3}, + {0x1D68, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C1}, + {0x1D69, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C6}, + {0x1D6A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03C7}, + {0x1D78, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x043D}, + {0x1D9B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0252}, + {0x1D9C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0063}, + {0x1D9D, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0255}, + {0x1D9E, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x00F0}, + {0x1D9F, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x025C}, + {0x1DA0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0066}, + {0x1DA1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x025F}, + {0x1DA2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0261}, + {0x1DA3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0265}, + {0x1DA4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0268}, + {0x1DA5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0269}, + {0x1DA6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x026A}, + {0x1DA7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D7B}, + {0x1DA8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x029D}, + {0x1DA9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x026D}, + {0x1DAA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D85}, + {0x1DAB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x029F}, + {0x1DAC, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0271}, + {0x1DAD, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0270}, + {0x1DAE, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0272}, + {0x1DAF, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0273}, + {0x1DB0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0274}, + {0x1DB1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0275}, + {0x1DB2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0278}, + {0x1DB3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0282}, + {0x1DB4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0283}, + {0x1DB5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x01AB}, + {0x1DB6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0289}, + {0x1DB7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x028A}, + {0x1DB8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1D1C}, + {0x1DB9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x028B}, + {0x1DBA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x028C}, + {0x1DBB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x007A}, + {0x1DBC, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0290}, + {0x1DBD, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0291}, + {0x1DBE, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0292}, + {0x1DBF, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x03B8}, + {0x1DC0, 230, 0, 0}, + {0x1DC1, 230, 0, 0}, + {0x1DC2, 220, 0, 0}, + {0x1DC3, 230, 0, 0}, + {0x1DC4, 230, 0, 0}, + {0x1DC5, 230, 0, 0}, + {0x1DC6, 230, 0, 0}, + {0x1DC7, 230, 0, 0}, + {0x1DC8, 230, 0, 0}, + {0x1DC9, 230, 0, 0}, + {0x1DCA, 220, 0, 0}, + {0x1DCB, 230, 0, 0}, + {0x1DCC, 230, 0, 0}, + {0x1DCD, 234, 0, 0}, + {0x1DCE, 214, 0, 0}, + {0x1DCF, 220, 0, 0}, + {0x1DD0, 202, 0, 0}, + {0x1DD1, 230, 0, 0}, + {0x1DD2, 230, 0, 0}, + {0x1DD3, 230, 0, 0}, + {0x1DD4, 230, 0, 0}, + {0x1DD5, 230, 0, 0}, + {0x1DD6, 230, 0, 0}, + {0x1DD7, 230, 0, 0}, + {0x1DD8, 230, 0, 0}, + {0x1DD9, 230, 0, 0}, + {0x1DDA, 230, 0, 0}, + {0x1DDB, 230, 0, 0}, + {0x1DDC, 230, 0, 0}, + {0x1DDD, 230, 0, 0}, + {0x1DDE, 230, 0, 0}, + {0x1DDF, 230, 0, 0}, + {0x1DE0, 230, 0, 0}, + {0x1DE1, 230, 0, 0}, + {0x1DE2, 230, 0, 0}, + {0x1DE3, 230, 0, 0}, + {0x1DE4, 230, 0, 0}, + {0x1DE5, 230, 0, 0}, + {0x1DE6, 230, 0, 0}, + {0x1DE7, 230, 0, 0}, + {0x1DE8, 230, 0, 0}, + {0x1DE9, 230, 0, 0}, + {0x1DEA, 230, 0, 0}, + {0x1DEB, 230, 0, 0}, + {0x1DEC, 230, 0, 0}, + {0x1DED, 230, 0, 0}, + {0x1DEE, 230, 0, 0}, + {0x1DEF, 230, 0, 0}, + {0x1DF0, 230, 0, 0}, + {0x1DF1, 230, 0, 0}, + {0x1DF2, 230, 0, 0}, + {0x1DF3, 230, 0, 0}, + {0x1DF4, 230, 0, 0}, + {0x1DF5, 230, 0, 0}, + {0x1DF6, 232, 0, 0}, + {0x1DF7, 228, 0, 0}, + {0x1DF8, 228, 0, 0}, + {0x1DF9, 220, 0, 0}, + {0x1DFB, 230, 0, 0}, + {0x1DFC, 233, 0, 0}, + {0x1DFD, 220, 0, 0}, + {0x1DFE, 230, 0, 0}, + {0x1DFF, 220, 0, 0}, + {0x1E9A, 0, 2 | DECOMP_COMPAT, 1215}, {0x1F71, 0, 1 | DECOMP_INLINE, 0x03AC}, - {0x1F72, 0, 2, 1601}, {0x1F73, 0, 1 | DECOMP_INLINE, 0x03AD}, - {0x1F74, 0, 2, 1603}, {0x1F75, 0, 1 | DECOMP_INLINE, 0x03AE}, - {0x1F76, 0, 2, 1605}, {0x1F77, 0, 1 | DECOMP_INLINE, 0x03AF}, - {0x1F78, 0, 2, 1607}, {0x1F79, 0, 1 | DECOMP_INLINE, 0x03CC}, - {0x1F7A, 0, 2, 1609}, {0x1F7B, 0, 1 | DECOMP_INLINE, 0x03CD}, - {0x1F7C, 0, 2, 1611}, {0x1F7D, 0, 1 | DECOMP_INLINE, 0x03CE}, - {0x1F80, 0, 2, 1613}, - {0x1F81, 0, 2, 1615}, - {0x1F82, 0, 2, 1617}, - {0x1F83, 0, 2, 1619}, - {0x1F84, 0, 2, 1621}, - {0x1F85, 0, 2, 1623}, - {0x1F86, 0, 2, 1625}, - {0x1F87, 0, 2, 1627}, - {0x1F88, 0, 2, 1629}, - {0x1F89, 0, 2, 1631}, - {0x1F8A, 0, 2, 1633}, - {0x1F8B, 0, 2, 1635}, - {0x1F8C, 0, 2, 1637}, - {0x1F8D, 0, 2, 1639}, - {0x1F8E, 0, 2, 1641}, - {0x1F8F, 0, 2, 1643}, - {0x1F90, 0, 2, 1645}, - {0x1F91, 0, 2, 1647}, - {0x1F92, 0, 2, 1649}, - {0x1F93, 0, 2, 1651}, - {0x1F94, 0, 2, 1653}, - {0x1F95, 0, 2, 1655}, - {0x1F96, 0, 2, 1657}, - {0x1F97, 0, 2, 1659}, - {0x1F98, 0, 2, 1661}, - {0x1F99, 0, 2, 1663}, - {0x1F9A, 0, 2, 1665}, - {0x1F9B, 0, 2, 1667}, - {0x1F9C, 0, 2, 1669}, - {0x1F9D, 0, 2, 1671}, - {0x1F9E, 0, 2, 1673}, - {0x1F9F, 0, 2, 1675}, - {0x1FA0, 0, 2, 1677}, - {0x1FA1, 0, 2, 1679}, - {0x1FA2, 0, 2, 1681}, - {0x1FA3, 0, 2, 1683}, - {0x1FA4, 0, 2, 1685}, - {0x1FA5, 0, 2, 1687}, - {0x1FA6, 0, 2, 1689}, - {0x1FA7, 0, 2, 1691}, - {0x1FA8, 0, 2, 1693}, - {0x1FA9, 0, 2, 1695}, - {0x1FAA, 0, 2, 1697}, - {0x1FAB, 0, 2, 1699}, - {0x1FAC, 0, 2, 1701}, - {0x1FAD, 0, 2, 1703}, - {0x1FAE, 0, 2, 1705}, - {0x1FAF, 0, 2, 1707}, - {0x1FB0, 0, 2, 1709}, - {0x1FB1, 0, 2, 1711}, - {0x1FB2, 0, 2, 1713}, - {0x1FB3, 0, 2, 1715}, - {0x1FB4, 0, 2, 1717}, - {0x1FB6, 0, 2, 1719}, - {0x1FB7, 0, 2, 1721}, - {0x1FB8, 0, 2, 1723}, - {0x1FB9, 0, 2, 1725}, - {0x1FBA, 0, 2, 1727}, {0x1FBB, 0, 1 | DECOMP_INLINE, 0x0386}, - {0x1FBC, 0, 2, 1729}, {0x1FBD, 0, 2 | DECOMP_COMPAT, 1731}, {0x1FBE, 0, 1 | DECOMP_INLINE, 0x03B9}, {0x1FBF, 0, 2 | DECOMP_COMPAT, 1733}, {0x1FC0, 0, 2 | DECOMP_COMPAT, 1735}, - {0x1FC1, 0, 2, 1737}, - {0x1FC2, 0, 2, 1739}, - {0x1FC3, 0, 2, 1741}, - {0x1FC4, 0, 2, 1743}, - {0x1FC6, 0, 2, 1745}, - {0x1FC7, 0, 2, 1747}, - {0x1FC8, 0, 2, 1749}, {0x1FC9, 0, 1 | DECOMP_INLINE, 0x0388}, - {0x1FCA, 0, 2, 1751}, {0x1FCB, 0, 1 | DECOMP_INLINE, 0x0389}, - {0x1FCC, 0, 2, 1753}, - {0x1FCD, 0, 2, 1755}, - {0x1FCE, 0, 2, 1757}, - {0x1FCF, 0, 2, 1759}, - {0x1FD0, 0, 2, 1761}, - {0x1FD1, 0, 2, 1763}, - {0x1FD2, 0, 2, 1765}, {0x1FD3, 0, 1 | DECOMP_INLINE, 0x0390}, - {0x1FD6, 0, 2, 1767}, - {0x1FD7, 0, 2, 1769}, - {0x1FD8, 0, 2, 1771}, - {0x1FD9, 0, 2, 1773}, - {0x1FDA, 0, 2, 1775}, {0x1FDB, 0, 1 | DECOMP_INLINE, 0x038A}, - {0x1FDD, 0, 2, 1777}, - {0x1FDE, 0, 2, 1779}, - {0x1FDF, 0, 2, 1781}, - {0x1FE0, 0, 2, 1783}, - {0x1FE1, 0, 2, 1785}, - {0x1FE2, 0, 2, 1787}, {0x1FE3, 0, 1 | DECOMP_INLINE, 0x03B0}, - {0x1FE4, 0, 2, 1789}, - {0x1FE5, 0, 2, 1791}, - {0x1FE6, 0, 2, 1793}, - {0x1FE7, 0, 2, 1795}, - {0x1FE8, 0, 2, 1797}, - {0x1FE9, 0, 2, 1799}, - {0x1FEA, 0, 2, 1801}, {0x1FEB, 0, 1 | DECOMP_INLINE, 0x038E}, - {0x1FEC, 0, 2, 1803}, - {0x1FED, 0, 2, 1805}, {0x1FEE, 0, 1 | DECOMP_INLINE, 0x0385}, {0x1FEF, 0, 1 | DECOMP_INLINE, 0x0060}, - {0x1FF2, 0, 2, 1807}, - {0x1FF3, 0, 2, 1809}, - {0x1FF4, 0, 2, 1811}, - {0x1FF6, 0, 2, 1813}, - {0x1FF7, 0, 2, 1815}, - {0x1FF8, 0, 2, 1817}, {0x1FF9, 0, 1 | DECOMP_INLINE, 0x038C}, - {0x1FFA, 0, 2, 1819}, {0x1FFB, 0, 1 | DECOMP_INLINE, 0x038F}, - {0x1FFC, 0, 2, 1821}, {0x1FFD, 0, 1 | DECOMP_INLINE, 0x00B4}, {0x1FFE, 0, 2 | DECOMP_COMPAT, 1823}, {0x2000, 0, 1 | DECOMP_INLINE, 0x2002}, @@ -1839,54 +1965,10 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x217E, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0064}, {0x217F, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x006D}, {0x2189, 0, 3 | DECOMP_COMPAT, 1980}, - {0x219A, 0, 2, 1983}, - {0x219B, 0, 2, 1985}, - {0x21AE, 0, 2, 1987}, - {0x21CD, 0, 2, 1989}, - {0x21CE, 0, 2, 1991}, - {0x21CF, 0, 2, 1993}, - {0x2204, 0, 2, 1995}, - {0x2209, 0, 2, 1997}, - {0x220C, 0, 2, 1999}, - {0x2224, 0, 2, 2001}, - {0x2226, 0, 2, 2003}, {0x222C, 0, 2 | DECOMP_COMPAT, 2005}, {0x222D, 0, 3 | DECOMP_COMPAT, 2007}, {0x222F, 0, 2 | DECOMP_COMPAT, 2010}, {0x2230, 0, 3 | DECOMP_COMPAT, 2012}, - {0x2241, 0, 2, 2015}, - {0x2244, 0, 2, 2017}, - {0x2247, 0, 2, 2019}, - {0x2249, 0, 2, 2021}, - {0x2260, 0, 2, 2023}, - {0x2262, 0, 2, 2025}, - {0x226D, 0, 2, 2027}, - {0x226E, 0, 2, 2029}, - {0x226F, 0, 2, 2031}, - {0x2270, 0, 2, 2033}, - {0x2271, 0, 2, 2035}, - {0x2274, 0, 2, 2037}, - {0x2275, 0, 2, 2039}, - {0x2278, 0, 2, 2041}, - {0x2279, 0, 2, 2043}, - {0x2280, 0, 2, 2045}, - {0x2281, 0, 2, 2047}, - {0x2284, 0, 2, 2049}, - {0x2285, 0, 2, 2051}, - {0x2288, 0, 2, 2053}, - {0x2289, 0, 2, 2055}, - {0x22AC, 0, 2, 2057}, - {0x22AD, 0, 2, 2059}, - {0x22AE, 0, 2, 2061}, - {0x22AF, 0, 2, 2063}, - {0x22E0, 0, 2, 2065}, - {0x22E1, 0, 2, 2067}, - {0x22E2, 0, 2, 2069}, - {0x22E3, 0, 2, 2071}, - {0x22EA, 0, 2, 2073}, - {0x22EB, 0, 2, 2075}, - {0x22EC, 0, 2, 2077}, - {0x22ED, 0, 2, 2079}, {0x2329, 0, 1 | DECOMP_INLINE, 0x3008}, {0x232A, 0, 1 | DECOMP_INLINE, 0x3009}, {0x2460, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0031}, @@ -2299,69 +2381,11 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x3038, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5341}, {0x3039, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5344}, {0x303A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5345}, - {0x304C, 0, 2, 2317}, - {0x304E, 0, 2, 2319}, - {0x3050, 0, 2, 2321}, - {0x3052, 0, 2, 2323}, - {0x3054, 0, 2, 2325}, - {0x3056, 0, 2, 2327}, - {0x3058, 0, 2, 2329}, - {0x305A, 0, 2, 2331}, - {0x305C, 0, 2, 2333}, - {0x305E, 0, 2, 2335}, - {0x3060, 0, 2, 2337}, - {0x3062, 0, 2, 2339}, - {0x3065, 0, 2, 2341}, - {0x3067, 0, 2, 2343}, - {0x3069, 0, 2, 2345}, - {0x3070, 0, 2, 2347}, - {0x3071, 0, 2, 2349}, - {0x3073, 0, 2, 2351}, - {0x3074, 0, 2, 2353}, - {0x3076, 0, 2, 2355}, - {0x3077, 0, 2, 2357}, - {0x3079, 0, 2, 2359}, - {0x307A, 0, 2, 2361}, - {0x307C, 0, 2, 2363}, - {0x307D, 0, 2, 2365}, - {0x3094, 0, 2, 2367}, {0x3099, 8, 0, 0}, {0x309A, 8, 0, 0}, {0x309B, 0, 2 | DECOMP_COMPAT, 2369}, {0x309C, 0, 2 | DECOMP_COMPAT, 2371}, - {0x309E, 0, 2, 2373}, {0x309F, 0, 2 | DECOMP_COMPAT, 2375}, - {0x30AC, 0, 2, 2377}, - {0x30AE, 0, 2, 2379}, - {0x30B0, 0, 2, 2381}, - {0x30B2, 0, 2, 2383}, - {0x30B4, 0, 2, 2385}, - {0x30B6, 0, 2, 2387}, - {0x30B8, 0, 2, 2389}, - {0x30BA, 0, 2, 2391}, - {0x30BC, 0, 2, 2393}, - {0x30BE, 0, 2, 2395}, - {0x30C0, 0, 2, 2397}, - {0x30C2, 0, 2, 2399}, - {0x30C5, 0, 2, 2401}, - {0x30C7, 0, 2, 2403}, - {0x30C9, 0, 2, 2405}, - {0x30D0, 0, 2, 2407}, - {0x30D1, 0, 2, 2409}, - {0x30D3, 0, 2, 2411}, - {0x30D4, 0, 2, 2413}, - {0x30D6, 0, 2, 2415}, - {0x30D7, 0, 2, 2417}, - {0x30D9, 0, 2, 2419}, - {0x30DA, 0, 2, 2421}, - {0x30DC, 0, 2, 2423}, - {0x30DD, 0, 2, 2425}, - {0x30F4, 0, 2, 2427}, - {0x30F7, 0, 2, 2429}, - {0x30F8, 0, 2, 2431}, - {0x30F9, 0, 2, 2433}, - {0x30FA, 0, 2, 2435}, - {0x30FE, 0, 2, 2437}, {0x30FF, 0, 2 | DECOMP_COMPAT, 2439}, {0x3131, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1100}, {0x3132, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x1101}, @@ -4626,16 +4650,11 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x10F50, 220, 0, 0}, {0x11046, 9, 0, 0}, {0x1107F, 9, 0, 0}, - {0x1109A, 0, 2, 4776}, - {0x1109C, 0, 2, 4778}, - {0x110AB, 0, 2, 4780}, {0x110B9, 9, 0, 0}, {0x110BA, 7, 0, 0}, {0x11100, 230, 0, 0}, {0x11101, 230, 0, 0}, {0x11102, 230, 0, 0}, - {0x1112E, 0, 2, 4782}, - {0x1112F, 0, 2, 4784}, {0x11133, 9, 0, 0}, {0x11134, 9, 0, 0}, {0x11173, 7, 0, 0}, @@ -4647,8 +4666,6 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x112EA, 9, 0, 0}, {0x1133B, 7, 0, 0}, {0x1133C, 7, 0, 0}, - {0x1134B, 0, 2, 4786}, - {0x1134C, 0, 2, 4788}, {0x1134D, 9, 0, 0}, {0x11366, 230, 0, 0}, {0x11367, 230, 0, 0}, @@ -4665,13 +4682,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x11442, 9, 0, 0}, {0x11446, 7, 0, 0}, {0x1145E, 230, 0, 0}, - {0x114BB, 0, 2, 4790}, - {0x114BC, 0, 2, 4792}, - {0x114BE, 0, 2, 4794}, {0x114C2, 9, 0, 0}, {0x114C3, 7, 0, 0}, - {0x115BA, 0, 2, 4796}, - {0x115BB, 0, 2, 4798}, {0x115BF, 9, 0, 0}, {0x115C0, 7, 0, 0}, {0x1163F, 9, 0, 0}, @@ -4680,7 +4692,6 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x1172B, 9, 0, 0}, {0x11839, 9, 0, 0}, {0x1183A, 7, 0, 0}, - {0x11938, 0, 2, 4800}, {0x1193D, 9, 0, 0}, {0x1193E, 9, 0, 0}, {0x11943, 7, 0, 0}, @@ -6641,7 +6652,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6604] = {0x2FA1A, 0, 1 | DECOMP_INLINE, 0x9F0F}, {0x2FA1B, 0, 1 | DECOMP_INLINE, 0x9F16}, {0x2FA1C, 0, 1 | DECOMP_INLINE, 0x9F3B}, - {0x2FA1D, 0, 1, 5091} + {0x2FA1D, 0, 1, 5091}, }; @@ -8935,3 +8946,1684 @@ static const uint32 UnicodeDecomp_codepoints[5092] = /* 5090 */ 0x2A291, /* 5091 */ 0x2A600 }; + +/* Perfect hash function for decomposition */ +static int +DecompMain_hash_func(const void *key) +{ + static const int16 h[13209] = { + 0, 759, 4790, 4791, 0, 0, 0, 0, + 0, 0, 0, 0, 2904, 2904, 0, 0, + 2905, 2905, -1432, 2813, 2904, 2904, 2904, -5133, + 3611, 3612, -5178, -5178, -5133, 1803, 1803, 884, + 4427, 4428, -4370, -4370, -4325, -4325, 2661, 98, + -4279, -4325, -4325, -4325, -4325, -4325, 2661, 2661, + 797, 4401, 4402, 4403, 1096, 1052, 1053, 1054, + -8722, 4413, 17622, 2664, 2664, 2664, 6412, 6413, + 6414, 6415, 6416, 6417, 5646, 1892, -5094, -4319, + 4472, -5343, -5343, 4432, 4433, -5343, -5343, -6309, + -3007, 2556, -5343, -5343, -3628, -3628, -3628, -3628, + -906, 0, 0, -10611, -10566, 2887, 2888, 2889, + 2890, 2891, -9616, -3636, -8844, -8844, -1858, -5333, + -8797, -9755, 310, -5333, -8842, -5333, -1855, 152, + 316, 2907, 2908, -2239, 2910, 2911, 2912, 2913, + 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, + 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, + 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, + 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, + 2946, 2947, 32767, 32767, 32767, 32767, 32767, 32767, + -7767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 942, 32767, 989, 32767, 32767, 32767, 32767, 990, + 32767, 32767, -7733, -7733, -4425, -4380, 32767, 32767, + -7735, -7735, -20943, 32767, -17642, -14340, -14340, 32767, + -11994, -8692, -8692, -8692, -8692, -8692, 32767, 52, + -8738, -8738, -8693, -8693, -8693, -8693, 59, 60, + 32767, -8739, -8694, -8694, -8694, -8694, -8694, 32767, + 32767, -8696, -8696, -8696, -8696, -8696, 32767, 32767, + 26, 27, -3280, -3324, 30, 31, 32767, 32, + 13241, 9940, 9941, 6640, 6641, 3340, 3341, 40, + 0, 41, 42, 43, -8700, -8700, 91, 32767, + 32767, 47, 48, 49, -8702, -8702, 32767, 97, + 32767, 53, 54, 55, 56, 2136, 3875, -537, + 4904, 61, 62, 63, 64, 65, 66, 67, + 68, 32767, 32767, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 32767, + 32767, 89, 90, 91, 92, 93, 94, 95, + -8661, -8661, 32767, -7805, -7805, -8664, -8664, -8664, + -8664, 32767, 57, 58, 59, 60, -3247, -3291, + 912, 913, 32767, 32767, 13271, 9970, 9971, 6670, + 6671, 3370, 4216, 32767, 32767, 69, 70, 71, + -8672, -8672, 119, 32767, 32767, 75, 76, 77, + -8674, -8674, 125, 126, 82, -2585, -2585, -2585, + -2585, -5751, -2585, -2585, 135, -2585, 137, 32767, + 32767, 7255, 139, -3159, -3158, -3157, -13759, -7669, + -552, -3155, 147, -3154, -5365, 150, -3153, -3152, + -3151, -3150, -3149, -3148, -3147, -2520, -3145, -3144, + 960, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4717, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 3673, 3674, 2144, 2145, 2146, 2147, 2148, + 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, + 2157, 2158, -5459, -5459, -3599, -3599, -3599, -3599, + -3599, 2665, -3599, -3599, -3599, -3599, -3599, -3599, + -3599, -3599, 3706, -3600, -6989, -6989, 1755, 1756, + -7034, -7034, -6989, -53, -53, -972, 1766, 1767, + -7031, -7031, -6986, -6986, 0, -2563, -6940, -6986, + -6986, -6986, -6986, -6986, 0, 0, 1738, 1739, + 1740, 1741, -1566, -1610, -1609, 0, 1748, 1749, + 14958, 0, 0, 0, 3748, 3749, 3750, 3751, + 3752, 3753, 3754, 0, -6986, -6986, 1805, 1806, + 1762, 1763, 1764, -8012, -8012, -8978, -5676, -113, + -8012, -113, -2456, -6203, -6203, -6203, -6203, -6203, + -6203, -5431, -1676, 5311, 4537, -4253, 5563, 5564, + -4210, -4210, 5567, 5568, 6535, 3234, -2328, 5572, + 5573, 3859, 3860, 3861, 3862, 1141, 2056, 9931, + 10847, 10803, 3868, 3869, 3870, 328, 328, 9127, + 3874, 9083, 9084, 2099, 5575, 9040, 9999, -65, + 5579, 9089, 5581, 2104, 98, -65, 1271, 12459, + 3669, 3669, 3714, 3714, 3714, 13491, 13492, 14459, + 11158, 5596, 13496, 5598, 7942, 11690, 11691, 11692, + 11693, 11694, 11695, 10924, 7170, 184, 959, 9750, + -65, -65, 9710, 9711, -65, -65, -1031, 2271, + 7834, -65, -65, 1650, 1650, 1650, 1650, 4372, + 3458, -4416, -5331, -5286, 1650, 1650, 1650, 5193, + 5194, -3604, 1650, -3558, -3558, 3428, -47, -3511, + -4469, 5596, -47, -3556, -47, 3431, 5438, 5602, + 4267, -6920, 1871, 1872, 1828, 1829, 1830, -7946, + -7946, -8912, -5610, -47, -7946, -47, -2390, -6137, + -6137, -6137, -6137, -6137, -6137, -5365, -1610, 5377, + 4603, -4187, 5629, 5630, -4144, -4144, 5633, 5634, + 6601, 3300, -2262, 5638, 5639, 3925, 3926, 3927, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, -2367, -2367, 935, 976, 936, 936, + 936, 9680, 9681, 32767, 32767, 3099, 32767, 3098, + 3098, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 911, 911, 911, 911, 911, 911, + 32767, 32767, 909, 909, 909, 909, 909, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 993, 994, -1216, 996, 997, + 998, 7401, -800, 11149, 5060, -2056, 5062, 1005, + 5063, -4365, 5064, 5065, 5066, 1011, 559, 1013, + 1014, 1015, 908, 561, 1018, -2743, 1534, 1021, + 1022, 1023, 1024, 566, 1026, 6103, 1028, 1029, + 1030, 1031, 1032, 1033, 1034, 1035, -2737, -2737, + -2737, 1039, 1040, 1041, 1042, 1043, 1044, 1045, + 1046, 1047, 1048, 1049, 1050, 1051, -6236, 1053, + 1054, 1055, 1056, 1057, 1058, 1059, 72, 1061, + 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, + 1070, 1071, 32767, 1072, 1073, -2802, -2801, -2800, + -2799, 1078, -2796, -2795, -2794, 1544, -664, -2791, + -2790, -2789, 5249, -3494, -2579, 5296, 6212, 6168, + -767, -766, -765, -4307, -4307, 4492, -761, 4448, + 4449, -2536, 940, 32767, 0, 32767, 32767, 4451, + -1318, -1318, -1318, 32767, 32767, -672, 506, 506, + 0, -928, 32767, 32767, 32767, 32767, 32767, 949, + 252, 96, 3294, 6187, 6188, 256, 32767, -6362, + 32767, 258, 259, 260, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 32767, 0, + 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 32767, 261, -5575, 263, + -5574, 265, -4744, 267, 32767, -3183, 32767, 32767, + 32767, 32767, -3187, 32767, 32767, 32767, 32767, 0, + 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 268, -11680, -5590, + 1527, -5590, 1527, -4754, 4675, -4753, -5592, -5592, + -4755, -4755, 4681, 0, 0, 0, 4682, 4683, + 4684, 4685, 4686, 4687, 0, 0, 32767, 32767, + 0, 0, -4560, 0, 4688, 4689, 4690, 4691, + 4692, 4693, 4694, 4695, -706, -706, 4696, -4775, + -4775, 4699, 4700, 4701, -4777, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 275, 0, 32767, 277, + 32767, 32767, 0, 278, 32767, 32767, 32767, 0, + 279, 280, 281, 32767, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 4703, 4704, 4705, 4706, 32767, + 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 4655, 4656, 4657, 4658, + 4659, 4712, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 283, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 284, 285, 32767, 286, + 32767, 32767, 32767, 287, 32767, 32767, 32767, 32767, + 288, 289, 290, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2998, 2998, 2998, + 2998, 2998, 2998, 2998, 32767, 32767, 32767, 32767, + 32767, 32767, 291, 292, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1120, + 1121, 1122, 1123, 1124, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 4713, 4714, 4715, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 293, 294, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 295, 296, 297, 298, + 32767, 32767, 299, 300, 32767, 32767, 301, 302, + 303, 304, 305, 306, 32767, 32767, 307, 308, + 309, 310, 311, 312, 32767, 32767, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 736, -753, 738, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 764, 765, 766, 767, + 768, 769, 770, 771, 772, 773, 774, 775, + 776, 777, 778, 779, 780, 781, 782, 783, + 9637, 785, 887, 787, 4022, 789, 9648, 791, + 4028, 793, 794, 9658, 796, 797, 798, 799, + 800, 801, 802, 803, 804, 805, 806, 807, + 0, 0, 4407, 4452, 816, -73, 818, 819, + 8149, -4948, -4948, -4948, -4948, 2009, 0, 0, + 0, 0, 0, 0, 838, 839, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32767, 32767, 32767, 32767, 32767, 0, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, -2274, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, -2283, -2283, + -2283, -2283, -2283, -2283, -2283, -2283, -2283, -2283, + -2283, -2283, -3665, -2283, -2283, -2283, -2283, -2283, + -2283, -2283, -2283, -2283, -2283, -2283, -2283, -2283, + -2283, -2283, -2283, -2283, -2283, -2283, -2283, -2283, + -2283, -2283, -2283, -2283, -2283, -2283, -2283, -2283, + -2283, -2283, -2283, 32767, -2284, 32767, -2285, -2285, + 32767, -2286, -2286, 32767, -2287, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 1177, 1178, + 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, + 1187, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 327, 328, 329, 330, 331, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, -265, -265, -265, 1833, 1192, 1193, 1194, + -3856, -3812, -3812, -3812, -3812, -3812, -3856, -3856, + -3856, 1204, 1205, 1206, 1207, 1208, 32767, 32767, + 32767, 32767, -3865, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 4716, 4717, 4718, 4719, + 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, + 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, + 3252, 4737, 4738, 4739, 4740, 4741, 4742, 4376, + 4744, 4377, 3133, 3134, 4379, 4379, 3137, 4380, + 3267, 4753, 4754, 4755, 4756, 4757, 4758, 4759, + 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, + 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, + 4776, 4777, 4778, 4779, 4780, 4781, 6561, 6562, + 6563, 12193, 6565, 6566, 4788, 4789, 4790, 3305, + 4772, 3305, 4794, 3305, 4796, 4797, 4798, 3305, + 4800, 32767, 0, 4802, 4803, 4804, 4805, 4806, + 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, + 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, + 4823, 4824, 4825, 4826, 4827, 4828, 13682, 4830, + 4932, 4832, 8067, 4834, 13693, 4836, 8073, 4838, + 4839, 13703, 4841, 4842, 4843, 4844, 4845, 4846, + 4847, 4848, 4849, 4850, 4851, 4852, 1186, 4854, + 4855, 4856, 4857, 3968, 4859, 4860, 12190, -907, + -907, -907, -907, -907, -907, 4868, 4869, 4870, + 4871, 32767, 4872, 4873, 32767, 32767, 4874, 32767, + 1233, 4875, 4876, 32767, 32767, 4877, 4878, 4879, + 8126, 32767, 4881, 4882, 4883, 6698, 6699, 7945, + 6701, 4888, 9388, 7949, 4891, 4892, 32767, 4893, + 32767, 4894, 4895, 4896, 4897, 4898, 4899, 3517, + 3518, 3519, 3520, 3521, 4904, 3523, 3524, 3525, + 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, + 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, + 3542, 3543, 4926, 8206, 4928, 8209, 4930, 4931, + 4932, 4933, 4934, 4935, 8222, 4937, 4938, 8225, + 8226, 4941, 4942, 4943, 0, 4945, 8230, 0, + 0, 4949, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32767, -127, -127, -127, + 7202, -127, -127, 0, -128, -128, -128, -128, + 0, 32767, -130, 4971, -129, 5613, 5614, 5615, + 4976, 5618, 32767, 5619, 5620, 5621, 4981, 5624, + 4983, 4984, 32767, 5630, 5631, -1986, -1986, -126, + -126, 5078, 4992, 5037, 5038, 5039, 5040, 5041, + 5086, 5087, 5088, 5089, -2239, 5091, 5092, 5093, + 5094, 5095, 5096, 5097, 5098, 5099, 5100, 0, + 5101, -640, -640, -640, 0, -641, -641, -641, + -641, -641, 0, -642, 0, 0, 32767, -645, + -645, 6973, 6974, 5115, 5116, -87, 0, -44, + -44, -44, -44, -44, -88, -88, -88, -88, + 7241, -88, -88, -88, -88, -88, -88, -88, + -88, -88, -88, -88, -88, 5654, 5655, 5656, + 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, + 5665, 5666, 5667, 5668, 5669, -1948, -1948, -88, + -88, 5116, 5117, 5074, 5075, 5076, 5077, 5078, + 5123, 5124, 5125, 5126, -2202, 5128, 5129, 5130, + 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, + 5139, -602, -602, -602, -602, -602, -602, -602, + -602, -602, -602, -602, -602, -602, -602, -602, + -602, 7016, 7017, 5158, 5159, -44, -44, 0, + 0, 0, 0, 0, -44, -44, -44, -44, + 7285, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, 5698, 5699, 5700, + 5701, 5702, 5703, 5704, 5705, 5706, 5707, 5708, + 5709, 5710, 5711, 5712, 5713, -1904, -1904, -44, + -44, 5160, 5161, 5118, 5119, 5120, 5121, 5122, + 5167, 5168, 5169, 5170, -2158, 5172, 5173, 5174, + 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, + 5183, -558, -558, -558, -558, -558, -558, -558, + -558, -558, -558, -558, -558, -558, -558, -558, + -558, 7060, 7061, 5202, 5203, 0, 0, 44, + 44, 44, 44, 44, 0, 0, 0, 0, + 7329, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5742, 5743, 5744, + 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, + 5753, 5754, 5755, 5756, 5757, -1860, -1860, 0, + 0, 0, 0, 0, 6264, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -3389, + -3389, 5355, 5356, -3434, -3434, -3389, -3389, -3389, + -3389, 5363, 5364, -3434, -3434, -3389, -3389, -3389, + -3345, -3345, -3391, -3391, -3391, -3391, -3391, -3391, + -3391, 5331, 5332, 5333, 5334, 2027, 1983, 5337, + 5338, 5339, 5340, 18549, 15248, 15249, 11948, 11949, + 8648, 8649, 5348, 5349, 5350, 5351, 5352, -3391, + -3391, 5400, 5401, 5357, 5358, 5359, 5360, -3391, + -3391, 5408, 5409, 5365, 5366, 5367, 5324, 5325, + 5372, 5373, 5374, 5375, 5376, 5377, 5378, -3343, + -3343, -3343, -3343, -35, 10, -3343, -3343, -3343, + -3343, -16551, -13249, -13249, -9947, -9947, -6645, -6645, + -3343, -3343, -3343, -3343, -3343, 5401, 5402, -3388, + -3388, -3343, -3343, -3343, -3343, 5409, 5410, -3388, + -3388, -3343, -3343, -3343, -3299, -3299, -3345, -3345, + -3345, -3345, -3345, -3345, -3345, 5377, 5378, 5379, + 5380, 2073, 2029, 5383, 5384, 5385, 5386, 18595, + 15294, 15295, 11994, 11995, 8694, 8695, 5394, 5395, + 5396, 5397, 5398, -3345, -3345, 5446, 5447, 5403, + 5404, 5405, 5406, -3345, -3345, 5454, 5455, 5411, + 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, + 5420, 5421, 5422, -3299, -3299, -3299, -3299, 9, + 54, -3299, -3299, -3299, -3299, -16507, -13205, -13205, + -9903, -9903, -6601, -6601, -3299, -3299, -3299, -3299, + -3299, 5445, 5446, -3344, -3344, -3299, -3299, -3299, + -3299, 5453, 5454, -3344, -3344, -3299, -3299, -3299, + -3299, -3299, -3299, -3299, -3299, -3299, -3299, -3299, + -3299, 5423, 5424, 5425, 5426, 2119, 2075, 5429, + 5430, 5431, 5432, 18641, 15340, 15341, 12040, 12041, + 8740, 8741, 5440, 5441, 5442, 5443, 5444, -3299, + -3299, 5492, 5493, 5449, 5450, 5451, 5452, -3299, + -3299, 5500, 5501, 5457, 2790, 2790, 2790, 2790, + -376, 2790, 2790, 5510, 2790, 5512, 12630, 5514, + 12632, 5516, 2218, 2219, 2220, -8382, -2292, 4825, + 2222, 5524, 2223, 12, 5527, 2224, 2225, 2226, + 2227, 2228, 2229, 2230, 2857, 2232, 2233, 5538, + 2234, 5540, 2235, 5542, 5543, 2236, -3299, -3299, + -3299, 5548, 5549, -3299, -3299, 2790, 2790, 2790, + 5555, 5556, 5557, 2790, 2790, 2790, 2790, 2790, + 2790, 2790, 2790, 2790, 2790, 2790, 2790, 2790, + 9083, 9084, 2790, 2790, 2790, 2790, 2790, 2790, + 2790, 2790, 2790, 2790, 2790, 2790, 3549, 7580, + 7581, 2790, 2790, 2790, 2790, 2790, 2790, 2790, + 2790, 5694, 5694, 2790, 2790, 5695, 5695, 1358, + 5603, 5694, 5694, 5694, -2343, 6401, 6402, -2388, + -2388, -2343, 4593, 4593, 3674, 7217, 7218, -1580, + -1580, -1535, -1535, 5451, 2888, -1489, -1535, -1535, + -1535, -1535, -1535, 5451, 5451, 3587, 7191, 7192, + 7193, 3886, 3842, 3843, 3844, -5932, 7203, 20412, + 5454, 5454, 5454, 9202, 9203, 9204, 9205, 9206, + 9207, 8436, 4682, -2304, -1529, 7262, -2553, -2553, + 7222, 7223, -2553, 32767, 32767, -219, 5344, -2555, + -2555, -840, -840, -840, -840, 1882, 2788, 2788, + -7823, -7778, 5675, 5676, 5677, 5678, 5679, -6828, + -848, -6056, -6056, 930, -2545, -6009, -6967, 3098, + -2545, -6054, -2545, 933, 2940, 3104, 5695, 5696, + 549, 5698, 5699, 5700, 5701, 5702, 5703, 5704, + 5705, 5706, 5707, 5708, 5709, 5710, 5711, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, -1250, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 7502, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, -1419, 32767, 32767, + 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 4580, 4581, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 912, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, -129, 32767, 32767, -131, -131, + 896, 0, 32767, 32767, 32767, -2616, 32767, 32767, + 32767, 32767, 32767, 32767, 0, 0, 32767, 882, + 882, 32767, 0, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -197, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 5757, 5758, 5759, 0, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, -4071, -4071, -12944, -4071, 32767, + -4072, -4072, -9647, 32767, 0, 0, 5401, 0, + 0, -4068, -4068, -4068, 0, -2329, -4067, 346, + -4068, -5246, 32767, 32767, -4575, -5503, -4069, -4069, + -4069, 32767, 32767, -4071, -4071, -950, 32767, -950, + 32767, -4073, 0, -4074, 32767, 0, 0, 0, + 0, 32767, 0, 0, 0, 32767, 0, 0, + 0, 0, 0, 0, 0, 32767, 0, 0, + 0, 0, 0, 0, 32767, 32767, 32767, 32767, + 0, 0, 0, 0, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -4337, -2128, 0, 0, 0, + -8037, 707, -207, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 1760, 32767, -2024, 32767, 32767, 1761, + 1762, 1763, 1764, 1765, 1766, 10620, 1768, 1870, + 1770, 1374, 32767, 32767, 32767, -2908, -2952, 32767, + 32767, 1375, -3204, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 579, 32767, 32767, 32767, 32767, 32767, -3995, + -3995, -3995, 2962, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, -2645, 831, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 4613, 4614, + 32767, 32767, 0, 276, 32767, 0, 32767, 32767, + 32767, 0, 32767, 32767, 32767, 32767, 0, 0, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, -4423, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 1377, 32767, 32767, 2963, 2964, 32767, 32767, 32767, + 32767, 32767, 32767, 349, 350, 32767, -531, -530, + 32767, 1378, 32767, 0, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 0, 32767, 0, 32767, 32767, + 32767, 0, 32767, 32767, 32767, 32767, 0, 0, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 0, 0, + 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, -187, -187, -187, + -187, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + -5344, -5344, 32767, 32767, 2965, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -5827, + -5827, -5827, -4802, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 0, 0, 0, 32767, 32767, + 0, 0, 32767, 32767, 0, 0, 0, 0, + 0, 0, 32767, 32767, 0, 0, 0, 0, + 0, 0, 32767, 32767, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, + 32767, 32767, -411, 1079, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -877, + 32767, 6064, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2966, 2967, 32767, 1382, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2968, 32767, 32767, 32767, -9358, + 32767, -9314, -9314, -9314, 32767, 32767, 32767, 32767, + 32767, 32767, -768, 7132, 7133, 32767, 32767, 32767, + 32767, 2697, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 0, 0, 0, 32767, 32767, 32767, 32767, + 32767, -1181, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, -4100, 0, 9000, + 9001, 0, 0, 0, 0, 0, 0, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -1245, 0, + 0, -1244, -1243, 0, -1242, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3268, + 0, 4651, 32767, 32767, 0, 4651, 0, 4652, + 0, 4653, 0, 4654, 0, 4655, 0, 4656, + 1389, 4656, 0, 4657, 0, 4658, 0, 0, + 4660, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32767, 0, 0, 0, + 0, 32767, 32767, 32767, 32767, 0, 0, 8233, + 32767, 0, 32767, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 4220, 4221, 0, 0, 0, 0, 0, 3305, + 0, 0, 3307, 3307, 3307, 3307, 0, 0, + 0, 3310, 1901, 0, 0, 0, 0, 0, + 0, -1319, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7618, 7619, 7620, + 3, 3, 1863, 1863, 7067, 7068, 7025, 7026, + 7027, 7028, 7029, 7074, 7075, 7076, 7077, -251, + 7079, 7080, 7081, 7082, 7083, 7084, 7085, 7086, + 7087, 7088, 7089, 7090, 1349, 1349, 1349, 1349, + 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, + 1349, 1349, 1349, 1349, 8967, 8968, 7109, 7110, + 1907, 1907, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2989, 2990, 2991, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 0, 0, 1401, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1402, + 2331, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 1449, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 1404, 32767, 1405, 32767, + 1406, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 1407, 32767, 32767, 32767, 32767, 32767, + 32767, 4588, 4589, 4590, 4591, 4592, 4593, 4594, + 4595, 4596, 4597, 4598, 32767, 32767, 1410, 32767, + 32767, 32767, 32767, 1411, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 7002, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 6168, -3267, 1415, 1416, 1417, -3264, -3264, -3264, + -3264, -3264, -3264, 1424, 1425, -4183, 32767, 1426, + 1427, 5988, 1429, -3258, 32767, -3259, -3259, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 1390, 32767, + 32767, 32767, -3268, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 1434, 32767, 32767, 32767, + 32767, 1435, 32767, 32767, 32767, 32767, 1436, 32767, + 32767, 32767, 32767, 1437, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 1438, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, -3218, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 7380, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 360, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1440, + 32767, 1441, -4485, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 10733, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4484, + 32767, 4531, 4532, 4533, 32767, 32767, -2452, -587, + 32767, 32767, 32767, 32767, 32767, -842, -842, 3659, + -4200, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 928, 32767, + 929, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 930, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 4601, 4602, 32767, + 32767, 32767, 32767, 32767, 32767, 2071, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 1444, 32767, 32767, 32767, + 0, 32767, 0, 32767, 32767, -2192, 1107, 1107, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 3005, 3006, 3007, 3008, + 32767, 32767, 32767, 931, -340, 32767, 32767, 32767, + -1180, 5937, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 4608, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 0, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 3010, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 4609, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2880, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, -11659, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, -5062, 32767, 32767, -5109, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, -4115, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4639, + 32767, 32767, 32767, 4640, 4641, 4642, 17851, 32767, + 32767, 32767, 11248, 7947, 7948, 4647, 4648, 4649, + 4650, 4651, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 4611, 8686, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 1270, 4897, 4898, 4899, 11619, 4901, 4902, 32767, + 4903, 4904, 4905, 4906, 4907, 9707, -879, 1269, + 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, + 1269, 32767, 32767, 4920, 4921, 3637, -2451, -1436, + 4925, 4926, 32767, 7319, 7320, 32767, 7321, 7322, + 7323, 7324, 5319, 32767, 32767, 32767, -1435, -1434, + 32767, -7726, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 384, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 20109, 16808, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3219, 3220, 6903, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + -5258, -5258, -5258, -5258, -5258, -5258, -5258, 0, + 0, 0, 0, 0, 0, -1825, -1825, -1825, + -15033, -11731, -11731, -8429, 0, 0, 0, -1828, + -1828, -1828, -1828, -1828, 0, 0, 0, 0, + 0, 0, 0, 0, 32767, 32767, 32767, 32767, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -2079, -3817, 596, -4844, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32767, 32767, 0, + 0, 0, 0, 0, 0, 0, 8757, 8758, + 8759, 8760, 8761, 8762, 8763, 8764, 8765, 8766, + 45, 45, 45, 45, 3353, 3398, 45, 45, + 45, 45, -13163, -9861, -9861, -6559, -6559, -3257, + -3257, 45, 45, 45, 45, 45, 8789, 8790, + 0, 0, 45, 45, 45, 45, 8797, 8798, + 0, 0, 45, 2713, 2714, 2715, 2716, 5883, + 2718, 2719, 0, 2721, 0, -7117, 0, -7117, + 0, 3299, 3299, 3299, 13902, 7813, 697, 3301, + 0, 3302, 5514, 0, 3304, 3304, 3304, 3304, + 3304, 3304, 3304, 2678, 3304, 3304, 0, 3305, + 0, 3306, 0, 0, 3308, 8844, 8845, 8846, + 0, 0, 8849, 8850, 2762, 2763, 2764, 0, + 0, 0, 2768, 2769, 2770, 2771, 2772, 2773, + 2774, 2775, 2776, 2777, 2778, 2779, 2780, -3512, + -3512, 2783, 2784, 2785, 2786, 2787, 2788, 2789, + 2790, 2791, 2792, 2793, 2794, 2036, -1994, -1994, + 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, + -98, -97, 2808, 2809, -95, -94, 4244, 0, + -90, -89, -88, 7950, -793, -793, 7998, 7999, + 7955, 1020, 1021, 1941, -1601, -1601, 7198, 7199, + 7155, 7156, 171, 2735, 7113, 7160, 7161, 7162, + 7163, 7164, 179, 180, 2045, -1558, -1558, -1558, + 1750, 1795, 1795, 1795, 11572, -1562, -14770, 189, + 190, 191, -3556, -3556, -3556, -3556, -3556, -3556, + -2784, 971, 7958, 7184, -1606, 8210, 8211, -1563, + -1563, 8214, 8215, 9182, 5881, 319, 8219, 8220, + 6506, 6507, 6508, 6509, 3788, 2883, 2884, 13496, + 13452, 0, 0, 0, 0, 0, 12508, 6529, + 11738, 11739, 4754, 8230, 11695, 12654, 2590, 8234, + 11744, 8236, 4759, 2753, 2590, 0, 0, 5148, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 0, 0, 0, 0, 10878, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 0, 1408, + 0, 0, 32767, 32767, 32767, 32767, 32767, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5760, 0, 0, 0, 0, 0, 32767, + 0, 32767, 0, 0, 32767, 0, 0, 32767, + 0, 3520, 3521, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1657, 1658, 1659, 1660, -5668, 1662, 1663, 1664, + 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, + 1673, -4068, -4068, -4068, -4068, -4068, -4068, -4068, + -4068, -4068, -4068, -4068, -4068, -4068, -4068, -4068, + -4068, 3550, 3551, 1692, 3595, 3596, 3597, -3469, + -3469, -3469, -3469, -3469, -3513, -3513, -3513, -3513, + 3816, -3513, -3513, -3513, -3513, 3612, 3613, 3614, + 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, + 3623, 3624, 3625, 3626, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 0, 0, + -6719, 0, 0, -6678, 0, 0, 0, 0, + 0, -4799, 5788, 3641, 3642, 3643, 3644, 3645, + 3646, 3647, 3648, 3649, 3650, 3651, 3652, 0, + 0, 1285, 7374, 6360, 0, 0, 3660, -2392, + -2392, 3663, -2392, -2392, -2392, -2392, -386, -2392, + -2555, 3671, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, + 32767, 6685, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 4638, 4639, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 4600, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 1383, 32767, 32767, + 32767, 32767, 1384, -1883, 1386, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 4640, 32767, + 32767, 32767, 1387, -3268, 0, -3266, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 1391, 32767, 32767, + 32767, 32767, 1392, 1393, 1394, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, -5630, -5630, -5630, -5630, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, -5690, -5690, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 1515, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, -9707, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 0, 0, 32767, 32767, 4641, 4642, 32767, + 32767, 32767, 32767, 32767, 4630, 32767, 32767, 32767, + -4214, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 1852, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 1452, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, -8247, -4945, 32767, + -7282, 32767, 32767, 32767, -1875, -1875, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 0, 0, 0, 0, 0, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 1453, 1454, 1455, -642, 0, 0, + 0, 5051, 5008, 5009, 5010, 5011, 5012, 5057, + 5058, 5059, 0, 0, 0, 0, 0, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -3509, + 32767, 32767, 32767, 32767, -3513, -3513, -3513, -3513, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -4466, + 32767, -4467, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, -4482, 32767, 32767, -3605, -3605, -3605, + -3605, -3605, -3605, -3605, 32767, 32767, -3607, -12460, + -3607, -3708, -3607, -6841, 32767, 32767, -3609, -6845, + 32767, -3610, -12473, -3610, -3610, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 4646, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 1456, 1457, 0, 32767, 0, 32767, 0, + 32767, 0, 32767, 0, 32767, 32767, 32767, 0, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 1857, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -2932, 0, 32767, + 0, 32767, 0, 32767, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1416, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32767, 0, 0, 0, 1459, + 1460, 1461, 1462, 1463, 1464, 1465, 1466, 0, + 0, 1467, 0, 1489, 0, 1491, 1492, 1493, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 5489, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 0, 0, + 0, 32767, 3616, 1469, 1470, 1471, 1472, 1473, + 1474, 1475, 1476, 1477, 1478, 1479, 1480, -2172, + 1496, -888, 5201, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 115, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 116, + 117, 361, 32767, 362, 32767, 363, 32767, 364, + 32767, 365, 32767, 32767, 32767, 366, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1484, + 0, 0, 0, 0, 0, 0, 367, 0, + 368, 1613, 1613, 369, 370, 1613, 371, 1485, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -1779, -1779, -1779, + -7408, -1779, -1779, 0, 0, 0, 1486, 20, + 1488, 0, 1490, 0, 0, 0, 1494, 0, + 32767, 4801, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -8853, 0, -101, + 0, -3234, 0, -8858, 0, -3236, 0, 0, + -8863, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3667, 0, 0, + 0, 0, 890, 0, 0, -7329, 5769, 5770, + 5771, 5772, 5773, 5774, 0, 0, 0, 0, + 32767, 0, 0, 32767, 32767, 0, 32767, 32767, + 0, 0, 32767, 32767, 0, 0, 0, -3246, + 32767, 0, 0, 0, -1814, -1814, -3059, -1814, + 0, -4499, -3059, 0, 0, 32767, 0, 32767, + 0, 0, 0, 0, 0, 0, 1383, 0, + 1382, 1382, 1382, 0, 1382, 1382, 1382, 1382, + 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, + 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, + 1382, 0, -3279, 0, -3280, 0, 0, 0, + 0, 0, 0, -3286, 0, 0, -3286, -3286, + 0, 0, 0, 4944, 0, -3284, 4947, 4948, + 0, 4950, 4951, 4952, 4953, 4954, 4955, 4956, + 4957, 4958, 4959, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, + 32767, 32767, 0, 0, 0, 0, 32767, 32767, + 32767, 0, 0, 1500, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4650, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 6703, + 6704, 6705, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 13097, 0, 0, + 0, 0, 0, 0, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, -3442, 1502, -3442, 32767, + 1504, 1505, -3443, 1507, 1508, 1509, 1510, 1511, + 1512, 1513, 1514, 1515, 1516, 32767, 1644, 1645, + 1646, -5682, 1648, 1649, 1523, 32767, 32767, 32767, + 32767, 1524, 32767, 32767, 32767, 32767, 32767, 32767, + -4090, 32767, 32767, 32767, -4093, -4093, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 0, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 1528, 1529, 1530, 32767, 1531, 1532, 1533, + 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, + 32767, 1542, 1543, 1544, 1545, 1546, 1547, 1548, + 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, + 1557, 1558, 1559, 32767, 1560, 1561, 1562, 1563, + 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, + 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, + 1580, 1581, 1582, 1583, 1584, 1585, 1586, -365, + -365, 32767, 32767, 32767, 32767, -413, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 1588, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + -410, 1590, -2995, -2995, 1593, 1594, 1595, 1596, + 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, + 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, + 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, + 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, + 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, + 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, + 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, + 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, + 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, + 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, + 1677, 1678, 1679, 1680, 1681, 1682, 1683, 32767, + 1684, 1685, 1686, 1687, 1688, 32767, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 0, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, + -19647, -16345, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, + -2741, -2741, -6423, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 5750, 5751, + 5752, 5753, 5754, 5755, 5756, 499, 500, 501, + 502, 503, 504, 2330, 2331, 2332, 15541, 12240, + 12241, 8940, 512, 513, 514, 2343, 2344, 2345, + 2346, 2347, 520, 521, 522, 523, 524, 525, + 1689, 526, 32767, 32767, 32767, 32767, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, + 593, 2673, 4412, 0, 5441, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 6706, + 6707, 6708, 6709, 3402, 3358, 6712, 6713, 6714, + 6715, 19924, 16623, 16624, 13323, 13324, 10023, 10024, + 6723, 6724, 6725, 6726, 6727, 32767, 32767, 6773, + 6774, 6730, 6731, 6732, 6733, 32767, 32767, 6779, + 6780, 6736, 4069, 4069, 4069, 4069, 903, 4069, + 4069, 6789, 4069, 6791, 13909, 6793, 13911, 6795, + 3497, 3498, 3499, -7103, -1013, 6104, 3501, 6803, + 3502, 1291, 672, -8578, -5276, -5276, -1974, -1974, + -1974, -1974, -1974, 6770, 6771, 0, 0, -1976, + -1976, -1976, -1976, 6776, 6777, 32767, 1725, -1978, + 690, 691, 692, 693, 3860, 695, 696, 32767, + 697, 32767, -9142, 32767, -9143, 0, 1272, 1272, + 1272, 11875, 5786, -1330, 1274, -2027, 1275, 3487, + -2027, 1277, 1277, 1277, 1277, 1277, 1277, 1277, + 1623, 1276, 2248, -2029, 2248, -2030, 2248, -2031, + -1059, 1276, 7784, 6812, 7785, 32767, 32767, 6813, + 6814, 726, 727, 728, -2036, -2036, -2036, 732, + 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, -5548, -5548, 747, 748, + 749, 750, 751, 752, 753, 754, 755, 756, + 757, 758, 0, -4030, -4030, 762, 763, 764, + 765, 766, 767, 768, 769, -2134, -2133, 772, + 773, -2131, -2130, 2208, 0, -2127, -2126, -2125, + 5913, -2830, -1915, 5960, 6876, 6832, -103, -102, + -101, -3643, -3643, 5156, -97, 5112, 5113, -1872, + 1604, 5069, 6028, 5116, 5117, 5118, 5119, -1866, + -1865, 0, -2697, 0, -298, -298, -253, -253, + -253, 9524, -2708, 32767, -1861, -1860, -1859, -5606, + -5606, -5606, -4709, -5607, -5607, -4835, -1080, 5907, + 5133, -3657, 7050, 6159, -3615, -2725, 7052, 0, + 32767, 3825, -1737, 6163, 32767, 4449, 4450, 4451, + 5338, 1730, 1711, 825, 12323, 12279, 32767, 32767, + 6990, 3689, 3690, 3691, 3692, 3693, -5050, -5050, + 1722, 1723, 3700, 32767, 32767, 1586, 0, -7565, + 0, 0, 1431, 1595, 260, -10927, 0, -2134, + -2178, -2177, 32767, 32767, 0, 0, 2211, 0, + 0, 0, -6402, 1800, -10148, -4058, 3059, -4058, + 0, -4057, 5372, -4056, -4056, -4056, 0, 453, + 0, 0, 0, 108, 456, 0, 3762, -514, + 0, 0, 0, 0, 459, 0, -5076, 0, + 0, 0, 0, 0, 0, 0, 0, 3773, + 3774, 3775, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7288, + 0, 0, 0, 0, 0, 0, 0, 988, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32767, 0, 0, 3876, 3876, + 3876, 3876, 0, 3875, 3875, 3875, -462, 1747, + 3875, 3875, 3875, -4162, 4582, 3668, -4206, -5121, + -5076, 1860, 1860, 1860, 5403, 5404, -3394, 1860, + -3348, -3348, 3638, 163, -3301, -4259, -3346, 162, + -3347, -3347, 3639, 3639, 1775, 4473, 1777, 2076, + 2077, 2033, 2034, 2035, -7741, -7741, -8707, -5405, + 158, 0, 157, -2186, -5933, -5933, 0, -5934, + 6619, -5935, 0, 0, 0, 32767, 32767, 32767, + 5826, 32767, 32767, 32767, 32767, 6793, 32767, -2071, + 32767, 5829, 32767, 5830, 5831, 5832, 32767, 5833, + 5834, 32767, 5835, 32767, 32767, -4499, 0, 5837, + 0, 5838, 0, 5010, 0, 5840, 32767, 10263, + 199, 1786, 9352, 1788, 1789, 359, 196, 1532, + 12720, 1794, 3929, 3974, 3974, 3974, 13751, 13752, + 14719, -413, 5855, 13755, 5857, 8201, 0, 11949, + 5860, -1256, 5862, 1805, 5863, -3565, 5864, 5865, + 5866, 5867, 5868, 5869, 5870, 5871, 5872, 5873, + 32767, 5874, 5875, 5876, 5877, 5878, 5879, 5880, + 5881, 5882, 5883, 14757, 5885, 5886, 5887, 5888, + 11464, 5890, 1818, 1819, -3581, 1821, 1822, 5891, + 5892, 5893, 1826, 4156, 5895, 5896, 5897, 7076, + 32767, 5899, 6406, 7335, 5902, 5903, 5904, 5905, + 5906, 5907, 5908, 2788, 5910, 2789, 5912, 5913, + 5914, 5915, 32767, 1842, 1843, 1844, 1845, 32767, + 1846, 1847, 1848, 32767, 1849, 1850, 1851, 1852, + 1853, 1854, 1855, 32767, 1856, 1857, 1858, 1859, + 1860, 1861, 32767, 32767, 32767, 32767, 1862, 1863, + 1864, 1865, 1866, 32767, 32767, 32767, 32767, 32767, + 32767, 1867, 1868, 1869, 1870, 1871, 1872, 1873, + 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, + 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, + 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, + 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, + 1906, 6244, 4036, 1909, 1910, 1911, 9949, 1206, + 2121, 9996, 10912, 10868, 3933, 3934, 3935, 393, + 393, 9192, 3939, 9148, 9149, 2164, 5640, 9105, + 10064, 0, 5644, 9154, 5646, 2169, 163, 0, + 1336, 12524, 3734, 3734, 3779, 3779, 3779, 13556, + 13557, 14524, 11223, 5661, 13561, 5663, 8007, 11755, + 11756, 11757, 11758, 11759, 11760, 10989, 7235, 249, + 1024, 9815, 0, 0, 9775, 9776, 0, 0, + -966, 2336, 7899, 0, 0, 32767, 0, 0, + 0, 32767, 0, 0, 32767, 0, 32767, 32767, + 10335, 32767, 0, 32767, 0, 32767, 829, 3475, + 0, -3464, -4422, 5643, 0, -3509, 0, 3478, + 5485, 5649, 4314, -6873, 1918, 1919, 1875, 1876, + 1877, -7899, -7899, -8865, -5563, 0, -7899, 0, + -2343, -6090, -6090, 0, 7117, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -8873, 0, + 0, 0, 0, -5575, 0, 0, 3168, 32767, + 32767, 0, 0, 0, 0, 0, 1738, 0, + 0, 0, -1178, 0, 0, -506, -1434, 0, + 0, 0, 0, 0, 0, 0, 3121, 0, + 3122, 0, 0, 0, 0, 0, 4202, 17411, + 0, 14110, 10809, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -5629, 0, 0, 3169, 32767, + 32767, 3125, 32767, 3126, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, -8912, 32767, -5611, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -5621, + -5621, 3131, 3132, -5666, 0, 0, -5623, -5623, + 0, 0, -5625, -5625, 32767, 32767, 32767, 32767, + 32767, 32767, 3092, 3093, 32767, 32767, -259, 3095, + 32767, 32767, 3096, 16305, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 10260, 3144, + 10262, 3146, 9428, 0, 9429, 10269, 10270, 9434, + 9435, 0, 32767, 32767, 32767, 0, 0, 0, + 0, 0, 0, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 0, 0, 0, 0, + 0, 0, 0, 32767, 32767, 0, 9472, 9473, + 0, 0, 0, 9479, 32767, 32767, 32767, 32767, + 32767, 32767, -2417, 8186, 2097, -5019, 32767, 0, + 32767, 32767, 32767, 32767, -2418, -2418, -2418, -2418, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 0, 0, 0, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 52, 52, 52, 52, 52, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 1920, 1921, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 171, 172, 173, 174, 175, 176, 177, 178, + 179, -5562, -5562, -5562, -5562, -5562, -5562, -5562, + -5562, -5562, -5562, -5562, -5562, -5562, -5562, -5562, + -5562, 2056, 2057, 198, 2101, 2102, 2103, -4963, + 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, + 32767, 5916, 5917, 5918, 5919, 5920, 5921, 5922, + 5923, 5924, 8857, 5926, 32767, 32767, 0, 32767, + 0, 5927, 5928, 5929, 5930, 5931, 5932, 5933, + 5934, 5935, 5936, 5937, 5938, 5939, 5940, 4525, + 5942, 5943, 5944, 5945, 5946, 5947, 5948, 5949, + 5950, 5951, 5952, 5953, 5954, 5955, 5956, 5957, + 32767, 5958, 5959, 5960, 4502, 4502, 4502, 4502, + 4502, 4502, 4502, 4502, 5969, 5970, 4504, 5972, + 4484, 5974, 4484, 4484, 4484, 5978, 5979, 5980, + 5981, 5982, 5983, 5984, 5985, 5986, 5987, 5988, + 5989, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2285, 32767, 32767, 32767, + 32767, 32767, 32767, 5990, 5991, 5992, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 5993, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 7023, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 1922, 1923, 1924, 1925, + 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, + 1934, 1935, 1200, 2690, 1200, 1939, 1940, 1941, + 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, + 1950, 1951, 1188, 1188, 1188, 1188, 1188, 1188, + 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, + 1188, 1188, 1188, 1188, 1188, 1188, -7665, 1188, + 1087, 1188, -2046, 1188, -7670, 1188, -2048, 1188, + 1188, -7675, 1188, 1188, 1188, 1188, 1188, 1188, + 1188, 1188, 1188, 1188, 1188, 1188, 1996, 1997, + -2409, -2453, 1184, 2074, 1184, 1184, -6145, 6953, + 6954, 6955, 6956, 0, 2010, 2011, 2012, 2013, + 2014, 2015, 1178, 1178, 2018, 2019, 2020, 2021, + 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, + 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, + 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, + 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, + 2054, 2055, 2056, 2057, 2058, 2059, 2060, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 0, 0, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 0, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 1315, 1272, 1273, 1274, 32767, 1275, + 1320, 1321, 1322, 1323, -6005, 1325, 1326, 1327, + 32767, 1328, 1329, 1330, 32767, 1331, 1332, 1333, + 1334, -4407, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 6052, 0, 0, 6055, + 0, 0, 0, 0, 2006, 0, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 1850, 1851, 1852, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -4054, + -4054, -4054, -4054, 4690, 4691, -4099, -4099, -4054, + -4054, -4054, -4054, 4698, 4699, -4099, 32767, -4055, + -4055, -4055, -4011, -4011, -4057, -4057, -4057, -4057, + -4057, -4057, -4057, 4665, 4666, 4667, 4668, 1361, + 1317, 4671, 4672, 4673, 4674, 17883, 14582, 14583, + 11282, 11283, 7982, 7983, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 0, 0, + 0, 32767, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32767, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 32767, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1952, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 1999, 0, 4586, + 4587, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32767, 0, 0, 0, + 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 5204, 5161, 5162, 5163, 5164, 5165, 5210, 5211, + 5212, 5213, -2115, 5215, 5216, 5217, 5218, 5219, + 5220, 5221, 5222, 5223, 5224, 5225, 5226, -515, + -515, -515, -515, -515, -515, -515, -515, -515, + -515, -515, -515, -515, -515, -515, -515, 7103, + 7104, 5245, 5246, 5247, 5248, 5249, -1014, 5251, + 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, + 5260, 8650, 8651, -92, -92, 8699, 8700, 8656, + 8657, 8658, 8659, -92, -92, 8707, 8708, 8664, + 8665, 8666, 8623, 8624, 8671, 8672, 8673, 8674, + 8675, 8676, 8677, -44, -44, -44, -44, 3264, + 3309, -44, -44, -44, -44, -13252, -9950, -9950, + -6648, -6648, -3346, -3346, -44, -44, -44, -44, + -44, 8700, 8701, -89, -89, -44, -44, -44, + -44, 8708, 8709, -89, -89, -44, -44, -44, + 0, 0, -46, -46, -46, -46, -46, -46, + -46, 8676, 8677, 8678, 8679, 5372, 5328, 8682, + 8683, 8684, 8685, 21894, 18593, 18594, 15293, 15294, + 11993, 11994, 8693, 8694, 8695, 8696, 8697, -46, + -46, 8745, 8746, 8702, 8703, 8704, 8705, -46, + -46, 8753, 8754, 8710, 8711, 8712, 8713, 8714, + 8715, 8716, 8717, 8718, 8719, 8720, 8721, 0, + 0, 0, 0, 3308, 3353, 0, 0, 0, + 0, -13208, -9906, -9906, -6604, -6604, -3302, -3302, + 0, 0, 0, 0, 0, 8744, 8745, -45, + -45, 0, 0, 0, 0, 8752, 8753, -45, + -45, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8722, 8723, 8724, + 8725, 5418, 5374, 8728, 8729, 8730, 8731, 21940, + 18639, 18640, 15339, 15340, 12039, 12040, 8739, 8740, + 8741, 8742, 8743, 0, 0, 8791, 8792, 8748, + 8749, 8750, 8751, 0, 0, 8799, 8800, 8756, + 6089, 6089, 6089, 6089, 2923, 6089, 6089, 8809, + 6089, 8811, 15929, 8813, 15931, 8815, 5517, 5518, + 5519, -5083, 1007, 8124, 5521, 8823, 5522, 3311, + 8826, 5523, 5524, 5525, 5526, 5527, 5528, 5529, + 6156, 5531, 5532, 8837, 5533, 8839, 5534, 8841, + 8842, 5535, 0, 0, 0, 8847, 8848, 0, + 0, 0, 13200, 9900, 9900, 6600, 6600, 3300, + 3300, 0, 0, 0, -10416, -3299, 0, 0, + 0, 10603, 32767, 32767, 0, 32767, 0, 32767, + 32767, 0, 0, 0, 0, 0, 0, 0, + -626, 0, 0, 32767, 0, 32767, 0, 32767, + 32767, 0, 0, 32767, 32767, 32767, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32767, 32767, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -1382, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 0, 0, 0, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, -2928, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, + 0, 0, 0, 0, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, -4090, 1652, 1653, 32767, 32767, 2061, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 1610, 32767, 32767, 6150, 6151, 6152, 411, + 411, 411, 411, 411, 411, 411, 411, 411, + 411, 411, 411, 411, 411, 411, 411, 8029, + 8030, 6171, 6172, 969, 969, 1013, 1013, 1013, + 1013, 1013, 969, 969, 969, 969, 8298, 969, + 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 6711, 6712, 6713, 6714, 6715, + 6716, 6717, 6718, 6719, 6720, 6721, 6722, 6723, + 6724, 6725, 6726, -891, -891, 969, 969, 6173, + 6174, 6131, 6132, 6133, 6134, 6135, 6180, 6181, + 6182, 6183, -1145, 6185, 6186, 6187, 6188, 6189, + 6190, 6191, 6192, 6193, 6194, 6195, 6196, 455, + 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 8073, + 8074, 6215, 6216, 1013, 1013, 1057, 1057, 1057, + 1057, 1057, 1013, 1013, 1013, 1013, 8342, 1013, + 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, + 1013, 1013, 1013, 6755, 6756, 6757, 6758, 6759, + 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, + 6768, 6769, 6770, -847, -847, 1013, 1013, 6217, + 6218, 6175, 6176, 6177, 6178, 6179, 6224, 6225, + 6226, 6227, -1101, 6229, 6230, 6231, 6232, 6233, + 6234, 6235, 6236, 6237, 6238, 6239, 6240, 499, + 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 8117, + 8118, 6259, 6260, 6261, 6262, 6263, 0, 6265, + 6266, 6267, 6268, 6269, 6270, 6271, 6272, 6273, + 6274, 9664, 9665, 922, 922, 9713, 9714, 9670, + 9671, 9672, 9673, 922, 922, 9721, 9722, 9678, + 9679, 9680, 9637, 9638, 9685, 9686, 9687, 9688, + 9689, 9690, 9691, 970, 970, 970, 970, 4278, + 4323, 970, 970, 970, 970, -12238, -8936, -8936, + -5634, -5634, -2332, -2332, -2332, -2332, -2332, 6412, + 6413, -2377, -2377, -2332, -2332, -2332, -2332, 6420, + 6421, -2377, -2377, -2332, -2332, -2332, -2288, -2288, + -2334, -2334, -2334, -2334, -2334, -2334, -2334, 6388, + 6389, 6390, 6391, 3084, 3040, 6394, 6395, 6396, + 6397, 19606, 16305, 16306, 13005, 13006, 9705, 9706, + 6405, 6406, 6407, 6408, 6409, -2334, -2334, 6457, + 6458, 6414, 6415, 6416, 6417, -2334, -2334, 6465, + 6466, 6422, 6423, 6424, 6381, 6382, 6429, 6430, + 6431, 6432, 6433, 6434, 6435, -2286, -2286, -2286, + -2286, 1022, 1067, -2286, -2286, -2286, -2286, -15494, + -12192, -12192, -8890, -8890, -5588, -5588, -2286, -2286, + -2286, -2286, -2286, 6458, 6459, -2331, -2331, -2286, + -2286, -2286, -2286, 6466, 6467, -2331, -2331, -2286, + -2286, -2286, -2286, -2286, -2286, -2286, -2286, -2286, + -2286, -2286, -2286, 6436, 6437, 6438, 6439, 3132, + 3088, 6442, 6443, 6444, 6445, 19654, 16353, 16354, + 13053, 13054, 9753, 9754, 6453, 6454, 6455, 6456, + 6457, -2286, -2286, 6505, 6506, 6462, 6463, 6464, + 6465, -2286, -2286, 6513, 6514, 6470, 6471, 6472, + 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, + 6481, -2240, -2240, -2240, -2240, 1068, 1113, -2240, + -2240, -2240, -2240, -15448, -12146, -12146, -8844, -8844, + -5542, -5542, -2240, -2240, -2240, -2240, -2240, 6504, + 6505, -2285, -2285, -2240, -2240, -2240, -2240, 6512, + 6513, -2285, -2285, -2240, 428, 429, 430, 431, + 3598, 433, 434, -2285, 436, -2285, -9402, -2285, + -9402, -2285, 1014, 1014, 1014, 11617, 5528, -1588, + 1016, -2285, 1017, 3229, -2285, 1019, 1019, 1019, + 1019, 1019, 1019, 1019, 393, 1019, 1019, -2285, + 1020, -2285, 1021, -2285, -2285, 1023, 6559, 6560, + 6561, -2285, -2285, 6564, 6565, 6566, -6633, -3332, + -3331, -30, -29, 3272, 3273, 3274, 13691, 6575, + 3277, 3278, 3279, -7323, -1233, 5884, 3281, 6583, + 3282, 1071, 6586, 3283, 3284, 3285, 3286, 3287, + 3288, 3289, 3916, 3291, 3292, 6597, 3293, 6599, + 3294, 6601, 6602, 3295, 3296, 32767, 32767, 32767, + 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, + 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, + 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, + 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, + 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, + 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, + 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, + 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, + 3361, 3362, 3363, 3364, 32767, 32767, 3365, 3366, + 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, + 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, + 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, + 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, + 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, + 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, + 3415, 3416, 3417, 3418, 3419, 3420, 4803, 3422, + 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, + 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, + 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, + 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, + 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, + 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 3471, + 3472, 3473, 3474, 3475, -7402, 3477, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 3478, 3479, 2072, 3481, 3482, 32767, + 32767, 32767, 32767, 32767, 3483, 3484, 3485, 3486, + 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, + 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, + 3503, 3504, 3505, 3506, 3507, 3508, 32767, 3509, + 3510, 3511, 3512, 3513, 32767, 3514, 32767, 3515, + 3516, 32767, 3517, 3518, 32767, 3519, 0, 0, + 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, + 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, + 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, + 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, + 3554, 3555, 3556, 3557, 3558, 1902, 1902, 1902, + 1902, 9231, 1902, 1902, 1902, 1902, 1902, 1902, + 1902, 1902, 1902, 1902, 1902, 1902, 7644, 7645, + 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, + 7654, 7655, 7656, 7657, 7658, 7659, 42, 42, + 1902, 0, 0, 0, 7067, 7068, 7069, 7070, + 7071, 7116, 7117, 7118, 7119, -209, 7121, 7122, + 7123, 7124, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3627, 3628, 3629, 10349, 3631, 3632, + 10311, 3634, 3635, 3636, 3637, 3638, 8438, -2148, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3653, 3654, 2370, -3718, + -2703, 3658, 3659, 0, 6053, 6054, 0, 6056, + 6057, 6058, 6059, 4054, 6061, 6225, 0, 0, + 3672, 0, 0, 1531, 1531, 1531, 1531, 1531, + 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, + 1531, 1531, 9149, 9150, 7291, 7292, 7293, 7294, + 7295, 1032, 7297, 7298, 7299, 7300, 7301, 7302, + 7303, 7304, 0, 7307, 10697, 10698, 1955, 1955, + 10746, 10747, 10703, 3768, 3769, 4689, 1952, 1952, + 10751, 10752, 10708, 10709, 3724, 6288, 10666, 10713, + 10714, 10715, 10716, 10717, 3732, 3733, 1996, 1996, + 1996, 1996, 5304, 5349, 5349, 3741, 1994, 1994, + -11214, 3745, 3746, 3747, 0, 0, 0, 0, + 0, 0, 0, 3755, 10742, 10743, 1953, 1953, + 1998, 1998, 1998, 11775, 11776, 12743, 9442, 3880, + 11780, 3882, 6226, 9974, 9975, 9976, 9977, 9978, + 9979, 9208, 5454, -1532, -757, 8034, -1781, -1781, + 7994, 7995, -1781, -1781, -2747, 555, 6118, -1781, + -1781, -66, -66, -66, -66, 2656, 1742, -6132, + -7047, -7002, -66, -66, -66, 3477, 3478, -5320, + -66, -5274, -5274, 1712, -1763, -5227, -6185, 3880, + -1763, -5272, -1763, 1715, 3722, 3886, 2551, -8636, + 155, 156, 112, 113, 114, -9662, -9662, -10628, + -7326, -1763, -9662, -1763, -4106, -7853, -7853, -7853, + -7853, -7853, -7853, -7081, -3326, 3661, 2887, -5903, + 3913, 3914, -5860, -5860, 3917, 3918, 4885, 1584, + -3978, 3922, 3923, 2209, 2210, 2211, 2212, -509, + 406, 8281, 9197, 9153, 2218, 2219, 2220, -1322, + -1322, 7477, 2224, 7433, 7434, 449, 3925, 7390, + 8349, -1715, 3929, 7439, 3931, 454, -1552, -1715, + -379, 10809, 2019, 2019, 2064, 2064, 2064, 11841, + 11842, 12809, 9508, 3946, 11846, 3948, 6292, 10040, + 10041, 10042, 10043, 10044, 10045, 9274, 5520, -1466, + -691, 8100, -1715, -1715, 8060, 8061, -1715, -1715, + -2681, 621, 6184, -1715, -1715, 0, 0, 0, + 0, 2722, 1808, -6066, -6981, -6936, 0, 0, + 0, 3543, 3544, -5254, 0, -5208, -5208, 1778, + -1697, -5161, -6119, 3946, -1697, -5206, -1697, 1781, + 3788, 3952, 2617, -8570, 221, 222, 178, 179, + 180, -9596, -9596, -10562, -7260, -1697, -9596, -1697, + -4040, -7787, -7787, -7787, -7787, -7787, -7787, -7015, + -3260, 3727, 2953, -5837, 3979, 3980, -5794, -5794, + 3983, 3984, 4951, 1650, -3912, 3988, 3989, 2275, + 2276, 2277, 2278, -443, 472, 8347, 9263, 9219, + 2284, 2285, 2286, -1256, -1256, 7543, 2290, 7499, + 7500, 515, 3991, 7456, 8415, -1649, 3995, 7505, + 3997, 520, -1486, -1649, -313, 10875, 2085, 2085, + 2130, 2130, 2130, 11907, 11908, 12875, 9574, 4012, + 11912, 4014, 6358, 10106, 10107, 4018, -3098, 4020, + 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, + 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, + 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, + 12918, 4046, 4047, 4048, 4049, 9625, 4051, 4052, + 885, 32767, 32767, 4054, 4055, 4056, 4057, 4058, + 2321, 4060, 4061, 4062, 5241, 4064, 4065, 4572, + 5501, 4068, 4069, 4070, 4071, 4072, 4073, 4074, + 954, 4076, 955, 4078, 4079, 4080, 4081, 4082, + -119, -13327, 4085, -10024, -6722, 4088, 4089, 4090, + 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, + 4099, 4100, 4101, 4102, 4103, 9733, 4105, 4106, + 938, 32767, 32767, 32767, 32767, 32767, 2328, 32767, + 2329, 2330, 2331, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 870, 32767, 871, 32767, + 872, 32767, 873, 32767, 874, 32767, 875, 32767, + 876, 9729, 9730, 979, 979, 9778, 4113, 4114, + 9738, 9739, 4117, 4118, 9744, 9745, 32767, 883, + 32767, 884, 32767, 32767, 32767, 32767, 32767, 32767, + 885, 886, 32767, 887, 888, 32767, 889, 0, + 32767, 891, 8221, 4122, -4877, -4877, 4125, 4126, + 4127, 4128, 4129, 4130, 32767, 32767, 32767, 32767, + 32767, 32767, 4131, 4132, 4133, 4134, 4135, 4136, + 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, + 4145, 4146, 4147, 5393, 4149, 4150, 5395, 5395, + 4153, 5396, 4155, 4156, 4157, 4158, 4159, 4160, + 4161, 4162, 4163, 4164, 897, 4166, -484, 32767, + 899, 4168, -482, 4170, -481, 4172, -480, 4174, + -479, 4176, -478, 4178, -477, 32767, -476, 4181, + -475, 4183, -474, 4185, 4186, -473, 4188, 4189, + 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, + 4198, 913, 4199, 4200, 4201, 4202, 916, 917, + 32767, 918, 4203, 4204, -4028, 921, 4206, 32767, + 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, + 4215, 4216, 4217, 4218, 4219, 0, 0, 4222, + 4223, 4224, 4225, 4226, 922, 4228, 4229, 923, + 924, 925, 926, 4234, 4235, 4236, 927, 2337, + 4239, 4240, 4241, 4242, 4243, 4244, 5564, 4246, + 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, + 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, + 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, + 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, + 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, + 4287, 4288, -3329, -3329, -3329, 4289, 4290, 2431, + 2432, -2771, -2771, -2727, -2727, -2727, -2727, -2727, + -2771, -2771, -2771, -2771, 4558, -2771, -2771, -2771, + -2771, -2771, -2771, -2771, -2771, -2771, -2771, -2771, + -2771, 2971, 2972, 2973, 2974, 2975, 2976, 2977, + 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, + 2986, -4631, -4631, -2771, -2771, 2433, 2434, 2391, + 2392, 2393, 2394, 2395, 2440, 2441, 2442, 2443, + -4885, 2445, 2446, 2447, 2448, 2449, 2450, 2451, + 2452, 2453, 2454, 2455, 2456, -3285, -3285, -3285, + -3285, -3285, -3285, -3285, -3285, -3285, -3285, -3285, + -3285, -3285, -3285, -3285, -3285, 4333, 4334, 2475, + 4378, 4379, 4380, -2686, -2686, -2686, -2686, -2686, + -2730, -2730, -2730, -2730, 4599, -2730, -2730, -2730, + -2730, 4395, 4396, 4397, 4398, 4399, 4400, 4401, + 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, + 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, + 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, + 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, + 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, + 4442, 816, 816, 816, -5903, 816, 816, -5862, + 816, 816, 816, 816, 816, -3983, 6604, 4457, + 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, + 4466, 4467, 4468, 816, 816, 2101, 8190, 7176, + 816, 816, 4476, -1576, -1576, 4479, -1576, -1576, + -1576, -1576, 430, -1576, -1739, 4487, 4488, 817, + 4490, 4491, 2961, 2962, 2963, 2964, 2965, 2966, + 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, + 2975, -4642, -4642, -2782, -2782, -2782, -2782, -2782, + 3482, -2782, -2782, -2782, -2782, -2782, -2782, -2782, + -2782, 4523, -2783, -6172, -6172, 2572, 2573, -6217, + -6217, -6172, -6172, -6172, -6172, 2580, 2581, -6217, + -6217, -6172, -6172, -6172, -6128, -6128, -6174, -6174, + -6174, -6174, -6174, -6174, -6174, 2548, 2549, 2550, + 2551, -756, -800, 2554, 2555, 2556, 2557, 15766, + 12465, 12466, 32767, 4553, 4554, 4555, 4556, 4557, + 4558, 4559, 2561, -6182, -6182, 2609, 2610, 2566, + 2567, 2568, 2569, -6182, -6182, 2617, 2618, 2574, + 2575, 2576, 2533, 2534, 2581, 2582, 2583, 2584, + 2585, 2586, 2587, -6134, -6134, -6134, -6134, -2826, + -2781, -6134, -6134, -6134, -6134, -19342, -16040, -16040, + -12738, -12738, -9436, -9436, -6134, -6134, -6134, -6134, + -6134, 32767, 2610, -6180, -6180, -6135, -6135, -6135, + -6135, 2617, 2618, -6180, -6180, -6135, -6135, -6135, + -6135, -6135, -6135, -6135, -6135, -6135, -6135, -6135, + -6135, 2587, 2588, 2589, 2590, -717, -761, 2593, + 2594, 2595, 2596, 15805, 12504, 12505, 9204, 9205, + 5904, 5905, 2604, 2605, 2606, 2607, 2608, -6135, + -6135, 2656, 2657, 2613, 2614, 2615, 2616, -6135, + -6135, 2664, 2665, 2621, 2622, 2623, 2624, 2625, + 2626, 2627, 2628, 2629, 2630, 2631, 2632, -6089, + -6089, -6089, -6089, -2781, -2736, -6089, -6089, -6089, + -6089, -19297, -15995, -15995, -12693, -12693, -9391, -9391, + -6089, -6089, -6089, -6089, -6089, 2655, 2656, -6134, + -6134, -6089, -6089, -6089, -6089, 2663, 2664, -6134, + -6134, -6089, -3421, -3420, -3419, -3418, -251, -3416, + -3415, -6134, -3413, -6134, -13251, -6134, -13251, -6134, + -2835, -2835, -2835, 7768, 1679, -5437, -2833, -6134, + -2832, -620, 0, 9251, 5950, 5951, 2650, 2651, + 2652, 2653, 2654, -6089, -6089, 2702, 2703, 2659, + 2660, 2661, 2662, -6089, -6089, 2710, 2711, 2667, + 0, 0, 0, 0, -3166, 0, 0, 2720, + 0, 2722, 9840, 2724, 9842, 2726, -572, -571, + -570, -11172, -5082, 2035, -568, 2734, -567, -2778, + 2737, -566, -565, -564, -563, -562, -561, -560, + 67, -558, -557, 2748, -556, 2750, -555, 2752, + 2753, -554, -6089, -6089, -6089, 2758, 2759, -6089, + -6089, 0, 0, 0, 2765, 2766, 2767, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6293, 6294, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, + }; + + const unsigned char *k = (const unsigned char *) key; + size_t keylen = 4; + uint32 a = 0; + uint32 b = 1; + + while (keylen--) + { + unsigned char c = *k++; + + a = a * 257 + c; + b = b * 8191 + c; + } + return h[a % 13209] + h[b % 13209]; +} + +/* Hash lookup information for decomposition */ +static const pg_unicode_decompinfo UnicodeDecompInfo = { + UnicodeDecompMain, + DecompMain_hash_func, + 6604 +}; diff --git a/src/tools/pgindent/exclude_file_patterns b/src/tools/pgindent/exclude_file_patterns index 86bdd9d6dc..f7e771a7e6 100644 --- a/src/tools/pgindent/exclude_file_patterns +++ b/src/tools/pgindent/exclude_file_patterns @@ -18,9 +18,10 @@ src/backend/utils/fmgrprotos\.h$ # they match pgindent style, they'd look worse not better, so exclude them. kwlist_d\.h$ # -# This is generated by the scripts from src/common/unicode/. It uses +# These are generated by the scripts from src/common/unicode/. They use # hash functions generated by PerfectHash.pm whose format looks worse with # pgindent. +src/include/common/unicode_norm_table\.h$ src/include/common/unicode_normprops_table\.h$ # # Exclude ecpg test files to avoid breaking the ecpg regression tests -- 2.22.0