 doc/src/sgml/charset.sgml                          |   10 +
 doc/src/sgml/func.sgml                             |   48 +
 src/backend/catalog/sql_features.txt               |    2 +-
 src/backend/catalog/system_views.sql               |   15 +
 src/backend/parser/gram.y                          |   41 +-
 src/backend/utils/adt/varlena.c                    |  150 +
 src/common/unicode/.gitignore                      |    1 +
 src/common/unicode/Makefile                        |    9 +-
 .../unicode/generate-unicode_normprops_table.pl    |  108 +
 src/common/unicode_norm.c                          |  123 +
 src/include/catalog/catversion.h                   |    2 +-
 src/include/catalog/pg_proc.dat                    |    8 +
 src/include/common/unicode_norm.h                  |   10 +
 src/include/common/unicode_normprops_table.h       | 7749 ++++++++++++++++++++
 src/include/parser/kwlist.h                        |    6 +
 src/test/regress/expected/unicode.out              |   79 +
 src/test/regress/expected/unicode_1.out            |    3 +
 src/test/regress/parallel_schedule                 |    2 +-
 src/test/regress/serial_schedule                   |    1 +
 src/test/regress/sql/unicode.sql                   |   30 +
 src/tools/PerfectHash.pm                           |    4 +-
 21 files changed, 8392 insertions(+), 9 deletions(-)

diff --git a/doc/src/sgml/charset.sgml b/doc/src/sgml/charset.sgml
index 20cdfabd7b..b6023fa459 100644
--- a/doc/src/sgml/charset.sgml
+++ b/doc/src/sgml/charset.sgml
@@ -934,6 +934,16 @@ CREATE COLLATION ignore_accents (provider = icu, locale = 'und-u-ks-level1-kc-tr
      such as pattern matching operations.  Therefore, they should be used
      only in cases where they are specifically wanted.
     </para>
+
+    <tip>
+     <para>
+      To deal with text in different Unicode normalization forms, it is also
+      an option to use the functions/expressions
+      <function>normalize</function> and <literal>is normalized</literal> to
+      preprocess or check the strings, instead of using nondeterministic
+      collations.  There are different trade-offs for each approach.
+     </para>
+    </tip>
    </sect3>
   </sect2>
  </sect1>
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index 7a0bb0c70a..978238f0b9 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -1561,6 +1561,30 @@
        <entry><literal>Value: 42</literal></entry>
       </row>
 
+      <row>
+       <entry>
+        <indexterm>
+         <primary>normalized</primary>
+        </indexterm>
+        <indexterm>
+         <primary>Unicode normalization</primary>
+        </indexterm>
+        <literal><parameter>string</parameter> is <optional>not</optional> <optional><parameter>form</parameter></optional> normalized</literal>
+       </entry>
+       <entry><type>boolean</type></entry>
+       <entry>
+        Checks whether the string is in the specified Unicode normalization
+        form.  The optional parameter specifies the form:
+        <literal>NFC</literal> (default), <literal>NFD</literal>,
+        <literal>NFKC</literal>, <literal>NFKD</literal>.  This expression can
+        only be used if the server encoding is <literal>UTF8</literal>.  Note
+        that checking for normalization using this expression is often faster
+        than normalizing possibly already normalized strings.
+       </entry>
+       <entry><literal>U&amp;'\0061\0308bc' IS NFD NORMALIZED</literal></entry>
+       <entry><literal>true</literal></entry>
+      </row>
+
       <row>
        <entry>
         <indexterm>
@@ -1611,6 +1635,30 @@
        <entry><literal>tom</literal></entry>
       </row>
 
+      <row>
+       <entry>
+        <indexterm>
+         <primary>normalize</primary>
+        </indexterm>
+        <indexterm>
+         <primary>Unicode normalization</primary>
+        </indexterm>
+        <literal><function>normalize(<parameter>string</parameter> <type>text</type>
+        <optional>, <parameter>form</parameter> </optional>)</function></literal>
+       </entry>
+       <entry><type>text</type></entry>
+       <entry>
+        Converts the string in the first argument to the specified Unicode
+        normalization form.  The optional second argument specifies the form
+        as an identifier: <literal>NFC</literal> (default),
+        <literal>NFD</literal>, <literal>NFKC</literal>,
+        <literal>NFKD</literal>.  This function can only be used if the server
+        encoding is <literal>UTF8</literal>.
+       </entry>
+       <entry><literal>normalize(U&amp;'\0061\0308bc', NFC)</literal></entry>
+       <entry><literal>U&amp;'\00E4bc'</literal></entry>
+      </row>
+
       <row>
        <entry>
         <indexterm>
diff --git a/src/backend/catalog/sql_features.txt b/src/backend/catalog/sql_features.txt
index 9f840ddfd2..b0f541dc6b 100644
--- a/src/backend/catalog/sql_features.txt
+++ b/src/backend/catalog/sql_features.txt
@@ -257,7 +257,7 @@ F386	Set identity column generation clause			YES
 F391	Long identifiers			YES	
 F392	Unicode escapes in identifiers			YES	
 F393	Unicode escapes in literals			YES	
-F394	Optional normal form specification			NO	
+F394	Optional normal form specification			YES	
 F401	Extended joined table			YES	
 F401	Extended joined table	01	NATURAL JOIN	YES	
 F401	Extended joined table	02	FULL OUTER JOIN	YES	
diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql
index 5a6dc61630..47b8c1791c 100644
--- a/src/backend/catalog/system_views.sql
+++ b/src/backend/catalog/system_views.sql
@@ -1386,6 +1386,21 @@ LANGUAGE INTERNAL
 STRICT STABLE PARALLEL SAFE
 AS 'jsonb_path_query_first_tz';
 
+-- default normalization form is NFC, per SQL standard
+CREATE OR REPLACE FUNCTION
+  "normalize"(text, text DEFAULT 'NFC')
+RETURNS text
+LANGUAGE internal
+STRICT IMMUTABLE PARALLEL SAFE
+AS 'unicode_normalize_func';
+
+CREATE OR REPLACE FUNCTION
+  is_normalized(text, text DEFAULT 'NFC')
+RETURNS boolean
+LANGUAGE internal
+STRICT IMMUTABLE PARALLEL SAFE
+AS 'unicode_is_normalized';
+
 --
 -- The default permissions for functions mean that anyone can execute them.
 -- A number of functions shouldn't be executable by just anyone, but rather
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 7e384f956c..ac93785b8e 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -444,6 +444,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
 %type <list>	substr_list trim_list
 %type <list>	opt_interval interval_second
 %type <node>	overlay_placing substr_from substr_for
+%type <str>		unicode_normal_form
 
 %type <boolean> opt_instead
 %type <boolean> opt_unique opt_concurrently opt_verbose opt_full
@@ -664,7 +665,8 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
 
 	MAPPING MATCH MATERIALIZED MAXVALUE METHOD MINUTE_P MINVALUE MODE MONTH_P MOVE
 
-	NAME_P NAMES NATIONAL NATURAL NCHAR NEW NEXT NO NONE
+	NAME_P NAMES NATIONAL NATURAL NCHAR NEW NEXT NFC NFD NFKC NFKD NO NONE
+	NORMALIZE NORMALIZED
 	NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLIF
 	NULLS_P NUMERIC
 
@@ -13481,6 +13483,22 @@ a_expr:		c_expr									{ $$ = $1; }
 												 list_make1($1), @2),
 									 @2);
 				}
+			| a_expr IS NORMALIZED								%prec IS
+				{
+					$$ = (Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make1($1), @2);
+				}
+			| a_expr IS unicode_normal_form NORMALIZED			%prec IS
+				{
+					$$ = (Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make2($1, makeStringConst($3, @3)), @2);
+				}
+			| a_expr IS NOT NORMALIZED							%prec IS
+				{
+					$$ = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make1($1), @2), @2);
+				}
+			| a_expr IS NOT unicode_normal_form NORMALIZED		%prec IS
+				{
+					$$ = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make2($1, makeStringConst($4, @4)), @2), @2);
+				}
 			| DEFAULT
 				{
 					/*
@@ -13924,6 +13942,14 @@ func_expr_common_subexpr:
 				{
 					$$ = (Node *) makeFuncCall(SystemFuncName("date_part"), $3, @1);
 				}
+			| NORMALIZE '(' a_expr ')'
+				{
+					$$ = (Node *) makeFuncCall(SystemFuncName("normalize"), list_make1($3), @1);
+				}
+			| NORMALIZE '(' a_expr ',' unicode_normal_form ')'
+				{
+					$$ = (Node *) makeFuncCall(SystemFuncName("normalize"), list_make2($3, makeStringConst($5, @5)), @1);
+				}
 			| OVERLAY '(' overlay_list ')'
 				{
 					/* overlay(A PLACING B FROM C FOR D) is converted to
@@ -14559,6 +14585,13 @@ extract_arg:
 			| Sconst								{ $$ = $1; }
 		;
 
+unicode_normal_form:
+			NFC										{ $$ = "nfc"; }
+			| NFD									{ $$ = "nfd"; }
+			| NFKC									{ $$ = "nfkc"; }
+			| NFKD									{ $$ = "nfkd"; }
+		;
+
 /* OVERLAY() arguments
  * SQL99 defines the OVERLAY() function:
  * o overlay(text placing text from int for int)
@@ -15305,7 +15338,12 @@ unreserved_keyword:
 			| NAMES
 			| NEW
 			| NEXT
+			| NFC
+			| NFD
+			| NFKC
+			| NFKD
 			| NO
+			| NORMALIZED
 			| NOTHING
 			| NOTIFY
 			| NOWAIT
@@ -15484,6 +15522,7 @@ col_name_keyword:
 			| NATIONAL
 			| NCHAR
 			| NONE
+			| NORMALIZE
 			| NULLIF
 			| NUMERIC
 			| OUT_P
diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c
index 907b5ab7b0..0e464950e1 100644
--- a/src/backend/utils/adt/varlena.c
+++ b/src/backend/utils/adt/varlena.c
@@ -22,6 +22,7 @@
 #include "catalog/pg_type.h"
 #include "common/hashfn.h"
 #include "common/int.h"
+#include "common/unicode_norm.h"
 #include "lib/hyperloglog.h"
 #include "libpq/pqformat.h"
 #include "miscadmin.h"
@@ -5976,3 +5977,152 @@ rest_of_char_same(const char *s1, const char *s2, int len)
 #include "levenshtein.c"
 #define LEVENSHTEIN_LESS_EQUAL
 #include "levenshtein.c"
+
+
+/*
+ * Unicode support
+ */
+
+static UnicodeNormalizationForm
+unicode_norm_form_from_string(const char *formstr)
+{
+	UnicodeNormalizationForm form = -1;
+
+	/*
+	 * Might as well check this while we're here.
+	 */
+	if (GetDatabaseEncoding() != PG_UTF8)
+		ereport(ERROR,
+				(errcode(ERRCODE_SYNTAX_ERROR),
+				 errmsg("Unicode normalization can only be performed if server encoding is UTF8")));
+
+	if (pg_strcasecmp(formstr, "NFC") == 0)
+		form = UNICODE_NFC;
+	else if (pg_strcasecmp(formstr, "NFD") == 0)
+		form = UNICODE_NFD;
+	else if (pg_strcasecmp(formstr, "NFKC") == 0)
+		form = UNICODE_NFKC;
+	else if (pg_strcasecmp(formstr, "NFKD") == 0)
+		form = UNICODE_NFKD;
+	else
+		ereport(ERROR,
+				(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+				 errmsg("invalid normalization form: %s", formstr)));
+
+	return form;
+}
+
+Datum
+unicode_normalize_func(PG_FUNCTION_ARGS)
+{
+	text	   *input = PG_GETARG_TEXT_PP(0);
+	char	   *formstr = text_to_cstring(PG_GETARG_TEXT_PP(1));
+	UnicodeNormalizationForm form;
+	int			size;
+	pg_wchar   *input_chars;
+	pg_wchar   *output_chars;
+	unsigned char *p;
+	text	   *result;
+	int			i;
+
+	form = unicode_norm_form_from_string(formstr);
+
+	/* convert to pg_wchar */
+	size = pg_mbstrlen_with_len(VARDATA_ANY(input), VARSIZE_ANY_EXHDR(input));
+	input_chars = palloc((size + 1) * sizeof(pg_wchar));
+	p = (unsigned char *) VARDATA_ANY(input);
+	for (i = 0; i < size; i++)
+	{
+		input_chars[i] = utf8_to_unicode(p);
+		p += pg_utf_mblen(p);
+	}
+	input_chars[i] = (pg_wchar) '\0';
+	Assert((char *) p == VARDATA_ANY(input) + VARSIZE_ANY_EXHDR(input));
+
+	/* action */
+	output_chars = unicode_normalize(form, input_chars);
+
+	/* convert back to UTF-8 string */
+	size = 0;
+	for (pg_wchar *wp = output_chars; *wp; wp++)
+	{
+		unsigned char buf[4];
+
+		unicode_to_utf8(*wp, buf);
+		size += pg_utf_mblen(buf);
+	}
+
+	result = palloc(size + VARHDRSZ);
+	SET_VARSIZE(result, size + VARHDRSZ);
+
+	p = (unsigned char *) VARDATA_ANY(result);
+	for (pg_wchar *wp = output_chars; *wp; wp++)
+	{
+		unicode_to_utf8(*wp, p);
+		p += pg_utf_mblen(p);
+	}
+	Assert((char *) p == (char *) result + size + VARHDRSZ);
+
+	PG_RETURN_TEXT_P(result);
+}
+
+/*
+ * Check whether the string is in the specified Unicode normalization form.
+ *
+ * This is done by convering the string to the specified normal form and then
+ * comparing that to the original string.  To speed that up, we also apply the
+ * "quick check" algorithm specified in UAX #15, which can give a yes or no
+ * answer for many strings by just scanning the string once.
+ *
+ * This function should generally be optimized for the case where the string
+ * is in fact normalized.  In that case, we'll end up looking at the entire
+ * string, so it's probably not worth doing any incremental conversion etc.
+ */
+Datum
+unicode_is_normalized(PG_FUNCTION_ARGS)
+{
+	text	   *input = PG_GETARG_TEXT_PP(0);
+	char	   *formstr = text_to_cstring(PG_GETARG_TEXT_PP(1));
+	UnicodeNormalizationForm form;
+	int			size;
+	pg_wchar   *input_chars;
+	pg_wchar   *output_chars;
+	unsigned char *p;
+	int			i;
+	UnicodeNormalizationQC quickcheck;
+	int			output_size;
+	bool		result;
+
+	form = unicode_norm_form_from_string(formstr);
+
+	/* convert to pg_wchar */
+	size = pg_mbstrlen_with_len(VARDATA_ANY(input), VARSIZE_ANY_EXHDR(input));
+	input_chars = palloc((size + 1) * sizeof(pg_wchar));
+	p = (unsigned char *) VARDATA_ANY(input);
+	for (i = 0; i < size; i++)
+	{
+		input_chars[i] = utf8_to_unicode(p);
+		p += pg_utf_mblen(p);
+	}
+	input_chars[i] = (pg_wchar) '\0';
+	Assert((char *) p == VARDATA_ANY(input) + VARSIZE_ANY_EXHDR(input));
+
+	/* quick check (see UAX #15) */
+	quickcheck = unicode_is_normalized_quickcheck(form, input_chars);
+	if (quickcheck == UNICODE_NORM_QC_YES)
+		PG_RETURN_BOOL(true);
+	else if (quickcheck == UNICODE_NORM_QC_NO)
+		PG_RETURN_BOOL(false);
+
+	/* normalize and compare with original */
+	output_chars = unicode_normalize(form, input_chars);
+
+	output_size = 0;
+	for (pg_wchar *wp = output_chars; *wp; wp++)
+		output_size++;
+
+	result = (size == output_size) &&
+		(memcmp(input_chars, output_chars, size * sizeof(pg_wchar)) == 0);
+
+	PG_RETURN_BOOL(result);
+}
diff --git a/src/common/unicode/.gitignore b/src/common/unicode/.gitignore
index b5a4d84274..512862e538 100644
--- a/src/common/unicode/.gitignore
+++ b/src/common/unicode/.gitignore
@@ -3,5 +3,6 @@
 
 # Downloaded files
 /CompositionExclusions.txt
+/DerivedNormalizationProps.txt
 /NormalizationTest.txt
 /UnicodeData.txt
diff --git a/src/common/unicode/Makefile b/src/common/unicode/Makefile
index ec78aeec2a..7a37ec7b55 100644
--- a/src/common/unicode/Makefile
+++ b/src/common/unicode/Makefile
@@ -18,14 +18,14 @@ LIBS += $(PTHREAD_LIBS)
 # By default, do nothing.
 all:
 
-update-unicode: unicode_norm_table.h unicode_combining_table.h
+update-unicode: unicode_norm_table.h unicode_combining_table.h unicode_normprops_table.h
 	$(MAKE) normalization-check
-	mv unicode_norm_table.h unicode_combining_table.h ../../../src/include/common/
+	mv $^ ../../../src/include/common/
 
 # These files are part of the Unicode Character Database. Download
 # them on demand.  The dependency on Makefile.global is for
 # UNICODE_VERSION.
-UnicodeData.txt CompositionExclusions.txt NormalizationTest.txt: $(top_builddir)/src/Makefile.global
+UnicodeData.txt DerivedNormalizationProps.txt CompositionExclusions.txt NormalizationTest.txt: $(top_builddir)/src/Makefile.global
 	$(DOWNLOAD) https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/$(@F)
 
 # Generation of conversion tables used for string normalization with
@@ -36,6 +36,9 @@ unicode_norm_table.h: generate-unicode_norm_table.pl UnicodeData.txt Composition
 unicode_combining_table.h: generate-unicode_combining_table.pl UnicodeData.txt
 	$(PERL) $^ >$@
 
+unicode_normprops_table.h: generate-unicode_normprops_table.pl DerivedNormalizationProps.txt
+	$(PERL) $^ >$@
+
 # Test suite
 normalization-check: norm_test
 	./norm_test
diff --git a/src/common/unicode/generate-unicode_normprops_table.pl b/src/common/unicode/generate-unicode_normprops_table.pl
new file mode 100644
index 0000000000..aa84bec9c5
--- /dev/null
+++ b/src/common/unicode/generate-unicode_normprops_table.pl
@@ -0,0 +1,108 @@
+#!/usr/bin/perl
+#
+# Generate table of Unicode normalization "quick check" properties
+# (see UAX #15).  Pass DerivedNormalizationProps.txt as argument.  The
+# output is on stdout.
+#
+# Copyright (c) 2020, PostgreSQL Global Development Group
+
+use strict;
+use warnings;
+
+use PerfectHash;
+
+my %data;
+
+print "/* generated by src/common/unicode/generate-unicode_normprops_table.pl, do not edit */\n\n";
+
+print <<EOS;
+typedef int (*QuickCheckHashFunc) (const void *key);
+
+typedef struct
+{
+	const uint32	   *codepoints;
+	QuickCheckHashFunc	hash;
+	int					num_maybes;
+	int					num_codepoints;
+} unicode_norm_info;
+
+EOS
+
+foreach my $line (<ARGV>)
+{
+	chomp $line;
+	$line =~ s/\s*#.*$//;
+	next if $line eq '';
+	my ($codepoint, $prop, $value) = split /\s*;\s*/, $line;
+	next if $prop !~ /_QC/;
+
+	my ($first, $last);
+	if ($codepoint =~ /\.\./)
+	{
+		($first, $last) = split /\.\./, $codepoint;
+	}
+	else
+	{
+		$first = $last = $codepoint;
+	}
+
+	foreach my $cp (hex($first)..hex($last))
+	{
+		$data{$prop}{$cp} = $value;
+	}
+}
+
+# We create a separate array for each normalization form rather than,
+# say, a two-dimensional array, because that array would be very
+# sparse and would create unnecessary overhead especially for the NFC
+# lookup.
+foreach my $prop (sort keys %data)
+{
+	# Don't build the tables for the "D" forms because they are too
+	# big.  See also unicode_is_normalized_quickcheck().
+	next if $prop eq "NFD_QC" || $prop eq "NFKD_QC";
+
+	generate_qc_hash($prop);
+}
+
+
+sub generate_qc_hash
+{
+	my $prop = shift;
+	my %subdata = %{$data{$prop}};
+
+	# collect MAYBE's and NO's separately
+	my @maybes = grep $subdata{$_} eq 'M', keys %subdata;
+	my @noes   = grep $subdata{$_} eq 'N', keys %subdata;
+	my $num_maybes = scalar @maybes;
+
+	# Emit array of hex valus and save the bytes as a string in
+	# network order.
+	my @cp_packed;
+	printf "static const uint32 %s_codepoints[] = {\n", $prop;
+	printf "\t/* MAYBE's */\n";
+	foreach my $cp (sort { $a <=> $b } @maybes)
+	{
+		push @cp_packed, pack('N', $cp);
+		printf "\t0x%04X,\n", $cp;
+	}
+	printf "\t/* NO's */\n";
+	foreach my $cp (sort { $a <=> $b } @noes)
+	{
+		push @cp_packed, pack('N', $cp);
+		printf "\t0x%04X,\n", $cp;
+	}
+	print "};\n\n";
+
+	my $funcname = $prop . '_hash_func';
+	my $f = PerfectHash::generate_hash_function(\@cp_packed, $funcname,
+		fixed_key_length => 4);
+	print "static $f\n";
+
+	printf "static const unicode_norm_info UnicodeNormInfo_%s = {\n", $prop;
+	printf "\t%s_codepoints,\n",           $prop;
+	printf "\t%s,\n",                      $funcname;
+	printf "\t%d,\n",                      $num_maybes;
+	printf "\t%d\n",                       scalar @cp_packed;
+	printf "};\n\n";
+}
diff --git a/src/common/unicode_norm.c b/src/common/unicode_norm.c
index ec5abea6bd..4249de4b33 100644
--- a/src/common/unicode_norm.c
+++ b/src/common/unicode_norm.c
@@ -20,6 +20,9 @@
 
 #include "common/unicode_norm.h"
 #include "common/unicode_norm_table.h"
+#ifndef FRONTEND
+#include "common/unicode_normprops_table.h"
+#endif
 
 #ifndef FRONTEND
 #define ALLOC(size) palloc(size)
@@ -442,3 +445,123 @@ unicode_normalize(UnicodeNormalizationForm form, const pg_wchar *input)
 
 	return recomp_chars;
 }
+
+/*
+ * Normalization "quick check" algorithm; see
+ * <http://www.unicode.org/reports/tr15/#Detecting_Normalization_Forms>
+ */
+
+/* We only need this in the backend. */
+#ifndef FRONTEND
+
+static uint8
+get_canonical_class(pg_wchar ch)
+{
+	pg_unicode_decomposition *entry = get_code_entry(ch);
+
+	if (!entry)
+		return 0;
+	else
+		return entry->comb_class;
+}
+
+/*
+ * Return index to array of code point values for quick check.
+ */
+static int
+qc_lookup(pg_wchar ch, const unicode_norm_info *norminfo)
+{
+	int			h;
+	uint32		hashkey;
+
+	/*
+	 * Compute the hash function. The hash key is the 32-bit wide
+	 * codepoint with the bytes in network order.
+	 */
+	hashkey = htonl(ch);
+	h = norminfo->hash(&hashkey);
+
+	/* An out-of-range result implies no match */
+	if (h < 0 || h >= norminfo->num_codepoints)
+		return -1;
+
+	/*
+	 * Since it's a perfect hash, we need only match to the
+	 * specific codepoint it identifies.
+	 */
+	if (ch != norminfo->codepoints[h])
+		return -1;
+
+	/* Success! */
+	return h;
+}
+
+/*
+ * Look up the normalization quick check character property
+ */
+static UnicodeNormalizationQC
+qc_is_allowed(UnicodeNormalizationForm form, pg_wchar ch)
+{
+	int			idx;
+	unicode_norm_info norminfo;
+
+	switch (form)
+	{
+		case UNICODE_NFC:
+			norminfo = UnicodeNormInfo_NFC_QC;
+			break;
+		case UNICODE_NFKC:
+			norminfo = UnicodeNormInfo_NFKC_QC;
+			break;
+		default:
+			Assert(false);
+			return UNICODE_NORM_QC_MAYBE;
+	}
+
+	idx = qc_lookup(ch, &norminfo);
+	if (idx < 0)
+		return UNICODE_NORM_QC_YES;
+	else if (idx < norminfo.num_maybes)
+		return UNICODE_NORM_QC_MAYBE;
+	else
+		return UNICODE_NORM_QC_NO;
+}
+
+UnicodeNormalizationQC
+unicode_is_normalized_quickcheck(UnicodeNormalizationForm form, const pg_wchar *input)
+{
+	uint8		lastCanonicalClass = 0;
+	UnicodeNormalizationQC result = UNICODE_NORM_QC_YES;
+
+	/*
+	 * For the "D" forms, we don't run the quickcheck.  We don't include the
+	 * lookup tables for those because they are huge, checking for these
+	 * particular forms is less common, and running the slow path is faster
+	 * for the "D" forms than the "C" forms because you don't need to
+	 * recompose, which is slow.
+	 */
+	if (form == UNICODE_NFD || form == UNICODE_NFKD)
+		return UNICODE_NORM_QC_MAYBE;
+
+	for (const pg_wchar *p = input; *p; p++)
+	{
+		pg_wchar	ch = *p;
+		uint8		canonicalClass;
+		UnicodeNormalizationQC check;
+
+		canonicalClass = get_canonical_class(ch);
+		if (lastCanonicalClass > canonicalClass && canonicalClass != 0)
+			return UNICODE_NORM_QC_NO;
+
+		check = qc_is_allowed(form, ch);
+		if (check == UNICODE_NORM_QC_NO)
+			return UNICODE_NORM_QC_NO;
+		else if (check == UNICODE_NORM_QC_MAYBE)
+			result = UNICODE_NORM_QC_MAYBE;
+
+		lastCanonicalClass = canonicalClass;
+	}
+	return result;
+}
+
+#endif			/* !FRONTEND */
diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h
index 8aa18483e4..a205fa663e 100644
--- a/src/include/catalog/catversion.h
+++ b/src/include/catalog/catversion.h
@@ -53,6 +53,6 @@
  */
 
 /*							yyyymmddN */
-#define CATALOG_VERSION_NO	202003241
+#define CATALOG_VERSION_NO	202003261
 
 #endif
diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat
index 87d25d4a4b..69ab3f63f3 100644
--- a/src/include/catalog/pg_proc.dat
+++ b/src/include/catalog/pg_proc.dat
@@ -10819,4 +10819,12 @@
   proname => 'pg_partition_root', prorettype => 'regclass',
   proargtypes => 'regclass', prosrc => 'pg_partition_root' },
 
+{ oid => '4350', descr => 'Unicode normalization',
+  proname => 'normalize', prorettype => 'text',
+  proargtypes => 'text text', prosrc => 'unicode_normalize_func' },
+
+{ oid => '4351', descr => 'check Unicode normalization',
+  proname => 'is_normalized', prorettype => 'bool',
+  proargtypes => 'text text', prosrc => 'unicode_is_normalized' },
+
 ]
diff --git a/src/include/common/unicode_norm.h b/src/include/common/unicode_norm.h
index 9a5e250bcf..731e05bf7d 100644
--- a/src/include/common/unicode_norm.h
+++ b/src/include/common/unicode_norm.h
@@ -24,6 +24,16 @@ typedef enum
 	UNICODE_NFKD = 3,
 } UnicodeNormalizationForm;
 
+/* see UAX #15 */
+typedef enum
+{
+	UNICODE_NORM_QC_NO = 0,
+	UNICODE_NORM_QC_YES = 1,
+	UNICODE_NORM_QC_MAYBE = -1,
+} UnicodeNormalizationQC;
+
 extern pg_wchar *unicode_normalize(UnicodeNormalizationForm form, const pg_wchar *input);
 
+extern UnicodeNormalizationQC unicode_is_normalized_quickcheck(UnicodeNormalizationForm form, const pg_wchar *input);
+
 #endif							/* UNICODE_NORM_H */
diff --git a/src/include/common/unicode_normprops_table.h b/src/include/common/unicode_normprops_table.h
new file mode 100644
index 0000000000..325684a91b
--- /dev/null
+++ b/src/include/common/unicode_normprops_table.h
@@ -0,0 +1,7749 @@
+/* generated by src/common/unicode/generate-unicode_normprops_table.pl, do not edit */
+
+typedef int (*QuickCheckHashFunc) (const void *key);
+
+typedef struct
+{
+	const uint32	   *codepoints;
+	QuickCheckHashFunc	hash;
+	int					num_maybes;
+	int					num_codepoints;
+} unicode_norm_info;
+
+static const uint32 NFC_QC_codepoints[] = {
+	/* MAYBE's */
+	0x0300,
+	0x0301,
+	0x0302,
+	0x0303,
+	0x0304,
+	0x0306,
+	0x0307,
+	0x0308,
+	0x0309,
+	0x030A,
+	0x030B,
+	0x030C,
+	0x030F,
+	0x0311,
+	0x0313,
+	0x0314,
+	0x031B,
+	0x0323,
+	0x0324,
+	0x0325,
+	0x0326,
+	0x0327,
+	0x0328,
+	0x032D,
+	0x032E,
+	0x0330,
+	0x0331,
+	0x0338,
+	0x0342,
+	0x0345,
+	0x0653,
+	0x0654,
+	0x0655,
+	0x093C,
+	0x09BE,
+	0x09D7,
+	0x0B3E,
+	0x0B56,
+	0x0B57,
+	0x0BBE,
+	0x0BD7,
+	0x0C56,
+	0x0CC2,
+	0x0CD5,
+	0x0CD6,
+	0x0D3E,
+	0x0D57,
+	0x0DCA,
+	0x0DCF,
+	0x0DDF,
+	0x102E,
+	0x1161,
+	0x1162,
+	0x1163,
+	0x1164,
+	0x1165,
+	0x1166,
+	0x1167,
+	0x1168,
+	0x1169,
+	0x116A,
+	0x116B,
+	0x116C,
+	0x116D,
+	0x116E,
+	0x116F,
+	0x1170,
+	0x1171,
+	0x1172,
+	0x1173,
+	0x1174,
+	0x1175,
+	0x11A8,
+	0x11A9,
+	0x11AA,
+	0x11AB,
+	0x11AC,
+	0x11AD,
+	0x11AE,
+	0x11AF,
+	0x11B0,
+	0x11B1,
+	0x11B2,
+	0x11B3,
+	0x11B4,
+	0x11B5,
+	0x11B6,
+	0x11B7,
+	0x11B8,
+	0x11B9,
+	0x11BA,
+	0x11BB,
+	0x11BC,
+	0x11BD,
+	0x11BE,
+	0x11BF,
+	0x11C0,
+	0x11C1,
+	0x11C2,
+	0x1B35,
+	0x3099,
+	0x309A,
+	0x110BA,
+	0x11127,
+	0x1133E,
+	0x11357,
+	0x114B0,
+	0x114BA,
+	0x114BD,
+	0x115AF,
+	/* NO's */
+	0x0340,
+	0x0341,
+	0x0343,
+	0x0344,
+	0x0374,
+	0x037E,
+	0x0387,
+	0x0958,
+	0x0959,
+	0x095A,
+	0x095B,
+	0x095C,
+	0x095D,
+	0x095E,
+	0x095F,
+	0x09DC,
+	0x09DD,
+	0x09DF,
+	0x0A33,
+	0x0A36,
+	0x0A59,
+	0x0A5A,
+	0x0A5B,
+	0x0A5E,
+	0x0B5C,
+	0x0B5D,
+	0x0F43,
+	0x0F4D,
+	0x0F52,
+	0x0F57,
+	0x0F5C,
+	0x0F69,
+	0x0F73,
+	0x0F75,
+	0x0F76,
+	0x0F78,
+	0x0F81,
+	0x0F93,
+	0x0F9D,
+	0x0FA2,
+	0x0FA7,
+	0x0FAC,
+	0x0FB9,
+	0x1F71,
+	0x1F73,
+	0x1F75,
+	0x1F77,
+	0x1F79,
+	0x1F7B,
+	0x1F7D,
+	0x1FBB,
+	0x1FBE,
+	0x1FC9,
+	0x1FCB,
+	0x1FD3,
+	0x1FDB,
+	0x1FE3,
+	0x1FEB,
+	0x1FEE,
+	0x1FEF,
+	0x1FF9,
+	0x1FFB,
+	0x1FFD,
+	0x2000,
+	0x2001,
+	0x2126,
+	0x212A,
+	0x212B,
+	0x2329,
+	0x232A,
+	0x2ADC,
+	0xF900,
+	0xF901,
+	0xF902,
+	0xF903,
+	0xF904,
+	0xF905,
+	0xF906,
+	0xF907,
+	0xF908,
+	0xF909,
+	0xF90A,
+	0xF90B,
+	0xF90C,
+	0xF90D,
+	0xF90E,
+	0xF90F,
+	0xF910,
+	0xF911,
+	0xF912,
+	0xF913,
+	0xF914,
+	0xF915,
+	0xF916,
+	0xF917,
+	0xF918,
+	0xF919,
+	0xF91A,
+	0xF91B,
+	0xF91C,
+	0xF91D,
+	0xF91E,
+	0xF91F,
+	0xF920,
+	0xF921,
+	0xF922,
+	0xF923,
+	0xF924,
+	0xF925,
+	0xF926,
+	0xF927,
+	0xF928,
+	0xF929,
+	0xF92A,
+	0xF92B,
+	0xF92C,
+	0xF92D,
+	0xF92E,
+	0xF92F,
+	0xF930,
+	0xF931,
+	0xF932,
+	0xF933,
+	0xF934,
+	0xF935,
+	0xF936,
+	0xF937,
+	0xF938,
+	0xF939,
+	0xF93A,
+	0xF93B,
+	0xF93C,
+	0xF93D,
+	0xF93E,
+	0xF93F,
+	0xF940,
+	0xF941,
+	0xF942,
+	0xF943,
+	0xF944,
+	0xF945,
+	0xF946,
+	0xF947,
+	0xF948,
+	0xF949,
+	0xF94A,
+	0xF94B,
+	0xF94C,
+	0xF94D,
+	0xF94E,
+	0xF94F,
+	0xF950,
+	0xF951,
+	0xF952,
+	0xF953,
+	0xF954,
+	0xF955,
+	0xF956,
+	0xF957,
+	0xF958,
+	0xF959,
+	0xF95A,
+	0xF95B,
+	0xF95C,
+	0xF95D,
+	0xF95E,
+	0xF95F,
+	0xF960,
+	0xF961,
+	0xF962,
+	0xF963,
+	0xF964,
+	0xF965,
+	0xF966,
+	0xF967,
+	0xF968,
+	0xF969,
+	0xF96A,
+	0xF96B,
+	0xF96C,
+	0xF96D,
+	0xF96E,
+	0xF96F,
+	0xF970,
+	0xF971,
+	0xF972,
+	0xF973,
+	0xF974,
+	0xF975,
+	0xF976,
+	0xF977,
+	0xF978,
+	0xF979,
+	0xF97A,
+	0xF97B,
+	0xF97C,
+	0xF97D,
+	0xF97E,
+	0xF97F,
+	0xF980,
+	0xF981,
+	0xF982,
+	0xF983,
+	0xF984,
+	0xF985,
+	0xF986,
+	0xF987,
+	0xF988,
+	0xF989,
+	0xF98A,
+	0xF98B,
+	0xF98C,
+	0xF98D,
+	0xF98E,
+	0xF98F,
+	0xF990,
+	0xF991,
+	0xF992,
+	0xF993,
+	0xF994,
+	0xF995,
+	0xF996,
+	0xF997,
+	0xF998,
+	0xF999,
+	0xF99A,
+	0xF99B,
+	0xF99C,
+	0xF99D,
+	0xF99E,
+	0xF99F,
+	0xF9A0,
+	0xF9A1,
+	0xF9A2,
+	0xF9A3,
+	0xF9A4,
+	0xF9A5,
+	0xF9A6,
+	0xF9A7,
+	0xF9A8,
+	0xF9A9,
+	0xF9AA,
+	0xF9AB,
+	0xF9AC,
+	0xF9AD,
+	0xF9AE,
+	0xF9AF,
+	0xF9B0,
+	0xF9B1,
+	0xF9B2,
+	0xF9B3,
+	0xF9B4,
+	0xF9B5,
+	0xF9B6,
+	0xF9B7,
+	0xF9B8,
+	0xF9B9,
+	0xF9BA,
+	0xF9BB,
+	0xF9BC,
+	0xF9BD,
+	0xF9BE,
+	0xF9BF,
+	0xF9C0,
+	0xF9C1,
+	0xF9C2,
+	0xF9C3,
+	0xF9C4,
+	0xF9C5,
+	0xF9C6,
+	0xF9C7,
+	0xF9C8,
+	0xF9C9,
+	0xF9CA,
+	0xF9CB,
+	0xF9CC,
+	0xF9CD,
+	0xF9CE,
+	0xF9CF,
+	0xF9D0,
+	0xF9D1,
+	0xF9D2,
+	0xF9D3,
+	0xF9D4,
+	0xF9D5,
+	0xF9D6,
+	0xF9D7,
+	0xF9D8,
+	0xF9D9,
+	0xF9DA,
+	0xF9DB,
+	0xF9DC,
+	0xF9DD,
+	0xF9DE,
+	0xF9DF,
+	0xF9E0,
+	0xF9E1,
+	0xF9E2,
+	0xF9E3,
+	0xF9E4,
+	0xF9E5,
+	0xF9E6,
+	0xF9E7,
+	0xF9E8,
+	0xF9E9,
+	0xF9EA,
+	0xF9EB,
+	0xF9EC,
+	0xF9ED,
+	0xF9EE,
+	0xF9EF,
+	0xF9F0,
+	0xF9F1,
+	0xF9F2,
+	0xF9F3,
+	0xF9F4,
+	0xF9F5,
+	0xF9F6,
+	0xF9F7,
+	0xF9F8,
+	0xF9F9,
+	0xF9FA,
+	0xF9FB,
+	0xF9FC,
+	0xF9FD,
+	0xF9FE,
+	0xF9FF,
+	0xFA00,
+	0xFA01,
+	0xFA02,
+	0xFA03,
+	0xFA04,
+	0xFA05,
+	0xFA06,
+	0xFA07,
+	0xFA08,
+	0xFA09,
+	0xFA0A,
+	0xFA0B,
+	0xFA0C,
+	0xFA0D,
+	0xFA10,
+	0xFA12,
+	0xFA15,
+	0xFA16,
+	0xFA17,
+	0xFA18,
+	0xFA19,
+	0xFA1A,
+	0xFA1B,
+	0xFA1C,
+	0xFA1D,
+	0xFA1E,
+	0xFA20,
+	0xFA22,
+	0xFA25,
+	0xFA26,
+	0xFA2A,
+	0xFA2B,
+	0xFA2C,
+	0xFA2D,
+	0xFA2E,
+	0xFA2F,
+	0xFA30,
+	0xFA31,
+	0xFA32,
+	0xFA33,
+	0xFA34,
+	0xFA35,
+	0xFA36,
+	0xFA37,
+	0xFA38,
+	0xFA39,
+	0xFA3A,
+	0xFA3B,
+	0xFA3C,
+	0xFA3D,
+	0xFA3E,
+	0xFA3F,
+	0xFA40,
+	0xFA41,
+	0xFA42,
+	0xFA43,
+	0xFA44,
+	0xFA45,
+	0xFA46,
+	0xFA47,
+	0xFA48,
+	0xFA49,
+	0xFA4A,
+	0xFA4B,
+	0xFA4C,
+	0xFA4D,
+	0xFA4E,
+	0xFA4F,
+	0xFA50,
+	0xFA51,
+	0xFA52,
+	0xFA53,
+	0xFA54,
+	0xFA55,
+	0xFA56,
+	0xFA57,
+	0xFA58,
+	0xFA59,
+	0xFA5A,
+	0xFA5B,
+	0xFA5C,
+	0xFA5D,
+	0xFA5E,
+	0xFA5F,
+	0xFA60,
+	0xFA61,
+	0xFA62,
+	0xFA63,
+	0xFA64,
+	0xFA65,
+	0xFA66,
+	0xFA67,
+	0xFA68,
+	0xFA69,
+	0xFA6A,
+	0xFA6B,
+	0xFA6C,
+	0xFA6D,
+	0xFA70,
+	0xFA71,
+	0xFA72,
+	0xFA73,
+	0xFA74,
+	0xFA75,
+	0xFA76,
+	0xFA77,
+	0xFA78,
+	0xFA79,
+	0xFA7A,
+	0xFA7B,
+	0xFA7C,
+	0xFA7D,
+	0xFA7E,
+	0xFA7F,
+	0xFA80,
+	0xFA81,
+	0xFA82,
+	0xFA83,
+	0xFA84,
+	0xFA85,
+	0xFA86,
+	0xFA87,
+	0xFA88,
+	0xFA89,
+	0xFA8A,
+	0xFA8B,
+	0xFA8C,
+	0xFA8D,
+	0xFA8E,
+	0xFA8F,
+	0xFA90,
+	0xFA91,
+	0xFA92,
+	0xFA93,
+	0xFA94,
+	0xFA95,
+	0xFA96,
+	0xFA97,
+	0xFA98,
+	0xFA99,
+	0xFA9A,
+	0xFA9B,
+	0xFA9C,
+	0xFA9D,
+	0xFA9E,
+	0xFA9F,
+	0xFAA0,
+	0xFAA1,
+	0xFAA2,
+	0xFAA3,
+	0xFAA4,
+	0xFAA5,
+	0xFAA6,
+	0xFAA7,
+	0xFAA8,
+	0xFAA9,
+	0xFAAA,
+	0xFAAB,
+	0xFAAC,
+	0xFAAD,
+	0xFAAE,
+	0xFAAF,
+	0xFAB0,
+	0xFAB1,
+	0xFAB2,
+	0xFAB3,
+	0xFAB4,
+	0xFAB5,
+	0xFAB6,
+	0xFAB7,
+	0xFAB8,
+	0xFAB9,
+	0xFABA,
+	0xFABB,
+	0xFABC,
+	0xFABD,
+	0xFABE,
+	0xFABF,
+	0xFAC0,
+	0xFAC1,
+	0xFAC2,
+	0xFAC3,
+	0xFAC4,
+	0xFAC5,
+	0xFAC6,
+	0xFAC7,
+	0xFAC8,
+	0xFAC9,
+	0xFACA,
+	0xFACB,
+	0xFACC,
+	0xFACD,
+	0xFACE,
+	0xFACF,
+	0xFAD0,
+	0xFAD1,
+	0xFAD2,
+	0xFAD3,
+	0xFAD4,
+	0xFAD5,
+	0xFAD6,
+	0xFAD7,
+	0xFAD8,
+	0xFAD9,
+	0xFB1D,
+	0xFB1F,
+	0xFB2A,
+	0xFB2B,
+	0xFB2C,
+	0xFB2D,
+	0xFB2E,
+	0xFB2F,
+	0xFB30,
+	0xFB31,
+	0xFB32,
+	0xFB33,
+	0xFB34,
+	0xFB35,
+	0xFB36,
+	0xFB38,
+	0xFB39,
+	0xFB3A,
+	0xFB3B,
+	0xFB3C,
+	0xFB3E,
+	0xFB40,
+	0xFB41,
+	0xFB43,
+	0xFB44,
+	0xFB46,
+	0xFB47,
+	0xFB48,
+	0xFB49,
+	0xFB4A,
+	0xFB4B,
+	0xFB4C,
+	0xFB4D,
+	0xFB4E,
+	0x1D15E,
+	0x1D15F,
+	0x1D160,
+	0x1D161,
+	0x1D162,
+	0x1D163,
+	0x1D164,
+	0x1D1BB,
+	0x1D1BC,
+	0x1D1BD,
+	0x1D1BE,
+	0x1D1BF,
+	0x1D1C0,
+	0x2F800,
+	0x2F801,
+	0x2F802,
+	0x2F803,
+	0x2F804,
+	0x2F805,
+	0x2F806,
+	0x2F807,
+	0x2F808,
+	0x2F809,
+	0x2F80A,
+	0x2F80B,
+	0x2F80C,
+	0x2F80D,
+	0x2F80E,
+	0x2F80F,
+	0x2F810,
+	0x2F811,
+	0x2F812,
+	0x2F813,
+	0x2F814,
+	0x2F815,
+	0x2F816,
+	0x2F817,
+	0x2F818,
+	0x2F819,
+	0x2F81A,
+	0x2F81B,
+	0x2F81C,
+	0x2F81D,
+	0x2F81E,
+	0x2F81F,
+	0x2F820,
+	0x2F821,
+	0x2F822,
+	0x2F823,
+	0x2F824,
+	0x2F825,
+	0x2F826,
+	0x2F827,
+	0x2F828,
+	0x2F829,
+	0x2F82A,
+	0x2F82B,
+	0x2F82C,
+	0x2F82D,
+	0x2F82E,
+	0x2F82F,
+	0x2F830,
+	0x2F831,
+	0x2F832,
+	0x2F833,
+	0x2F834,
+	0x2F835,
+	0x2F836,
+	0x2F837,
+	0x2F838,
+	0x2F839,
+	0x2F83A,
+	0x2F83B,
+	0x2F83C,
+	0x2F83D,
+	0x2F83E,
+	0x2F83F,
+	0x2F840,
+	0x2F841,
+	0x2F842,
+	0x2F843,
+	0x2F844,
+	0x2F845,
+	0x2F846,
+	0x2F847,
+	0x2F848,
+	0x2F849,
+	0x2F84A,
+	0x2F84B,
+	0x2F84C,
+	0x2F84D,
+	0x2F84E,
+	0x2F84F,
+	0x2F850,
+	0x2F851,
+	0x2F852,
+	0x2F853,
+	0x2F854,
+	0x2F855,
+	0x2F856,
+	0x2F857,
+	0x2F858,
+	0x2F859,
+	0x2F85A,
+	0x2F85B,
+	0x2F85C,
+	0x2F85D,
+	0x2F85E,
+	0x2F85F,
+	0x2F860,
+	0x2F861,
+	0x2F862,
+	0x2F863,
+	0x2F864,
+	0x2F865,
+	0x2F866,
+	0x2F867,
+	0x2F868,
+	0x2F869,
+	0x2F86A,
+	0x2F86B,
+	0x2F86C,
+	0x2F86D,
+	0x2F86E,
+	0x2F86F,
+	0x2F870,
+	0x2F871,
+	0x2F872,
+	0x2F873,
+	0x2F874,
+	0x2F875,
+	0x2F876,
+	0x2F877,
+	0x2F878,
+	0x2F879,
+	0x2F87A,
+	0x2F87B,
+	0x2F87C,
+	0x2F87D,
+	0x2F87E,
+	0x2F87F,
+	0x2F880,
+	0x2F881,
+	0x2F882,
+	0x2F883,
+	0x2F884,
+	0x2F885,
+	0x2F886,
+	0x2F887,
+	0x2F888,
+	0x2F889,
+	0x2F88A,
+	0x2F88B,
+	0x2F88C,
+	0x2F88D,
+	0x2F88E,
+	0x2F88F,
+	0x2F890,
+	0x2F891,
+	0x2F892,
+	0x2F893,
+	0x2F894,
+	0x2F895,
+	0x2F896,
+	0x2F897,
+	0x2F898,
+	0x2F899,
+	0x2F89A,
+	0x2F89B,
+	0x2F89C,
+	0x2F89D,
+	0x2F89E,
+	0x2F89F,
+	0x2F8A0,
+	0x2F8A1,
+	0x2F8A2,
+	0x2F8A3,
+	0x2F8A4,
+	0x2F8A5,
+	0x2F8A6,
+	0x2F8A7,
+	0x2F8A8,
+	0x2F8A9,
+	0x2F8AA,
+	0x2F8AB,
+	0x2F8AC,
+	0x2F8AD,
+	0x2F8AE,
+	0x2F8AF,
+	0x2F8B0,
+	0x2F8B1,
+	0x2F8B2,
+	0x2F8B3,
+	0x2F8B4,
+	0x2F8B5,
+	0x2F8B6,
+	0x2F8B7,
+	0x2F8B8,
+	0x2F8B9,
+	0x2F8BA,
+	0x2F8BB,
+	0x2F8BC,
+	0x2F8BD,
+	0x2F8BE,
+	0x2F8BF,
+	0x2F8C0,
+	0x2F8C1,
+	0x2F8C2,
+	0x2F8C3,
+	0x2F8C4,
+	0x2F8C5,
+	0x2F8C6,
+	0x2F8C7,
+	0x2F8C8,
+	0x2F8C9,
+	0x2F8CA,
+	0x2F8CB,
+	0x2F8CC,
+	0x2F8CD,
+	0x2F8CE,
+	0x2F8CF,
+	0x2F8D0,
+	0x2F8D1,
+	0x2F8D2,
+	0x2F8D3,
+	0x2F8D4,
+	0x2F8D5,
+	0x2F8D6,
+	0x2F8D7,
+	0x2F8D8,
+	0x2F8D9,
+	0x2F8DA,
+	0x2F8DB,
+	0x2F8DC,
+	0x2F8DD,
+	0x2F8DE,
+	0x2F8DF,
+	0x2F8E0,
+	0x2F8E1,
+	0x2F8E2,
+	0x2F8E3,
+	0x2F8E4,
+	0x2F8E5,
+	0x2F8E6,
+	0x2F8E7,
+	0x2F8E8,
+	0x2F8E9,
+	0x2F8EA,
+	0x2F8EB,
+	0x2F8EC,
+	0x2F8ED,
+	0x2F8EE,
+	0x2F8EF,
+	0x2F8F0,
+	0x2F8F1,
+	0x2F8F2,
+	0x2F8F3,
+	0x2F8F4,
+	0x2F8F5,
+	0x2F8F6,
+	0x2F8F7,
+	0x2F8F8,
+	0x2F8F9,
+	0x2F8FA,
+	0x2F8FB,
+	0x2F8FC,
+	0x2F8FD,
+	0x2F8FE,
+	0x2F8FF,
+	0x2F900,
+	0x2F901,
+	0x2F902,
+	0x2F903,
+	0x2F904,
+	0x2F905,
+	0x2F906,
+	0x2F907,
+	0x2F908,
+	0x2F909,
+	0x2F90A,
+	0x2F90B,
+	0x2F90C,
+	0x2F90D,
+	0x2F90E,
+	0x2F90F,
+	0x2F910,
+	0x2F911,
+	0x2F912,
+	0x2F913,
+	0x2F914,
+	0x2F915,
+	0x2F916,
+	0x2F917,
+	0x2F918,
+	0x2F919,
+	0x2F91A,
+	0x2F91B,
+	0x2F91C,
+	0x2F91D,
+	0x2F91E,
+	0x2F91F,
+	0x2F920,
+	0x2F921,
+	0x2F922,
+	0x2F923,
+	0x2F924,
+	0x2F925,
+	0x2F926,
+	0x2F927,
+	0x2F928,
+	0x2F929,
+	0x2F92A,
+	0x2F92B,
+	0x2F92C,
+	0x2F92D,
+	0x2F92E,
+	0x2F92F,
+	0x2F930,
+	0x2F931,
+	0x2F932,
+	0x2F933,
+	0x2F934,
+	0x2F935,
+	0x2F936,
+	0x2F937,
+	0x2F938,
+	0x2F939,
+	0x2F93A,
+	0x2F93B,
+	0x2F93C,
+	0x2F93D,
+	0x2F93E,
+	0x2F93F,
+	0x2F940,
+	0x2F941,
+	0x2F942,
+	0x2F943,
+	0x2F944,
+	0x2F945,
+	0x2F946,
+	0x2F947,
+	0x2F948,
+	0x2F949,
+	0x2F94A,
+	0x2F94B,
+	0x2F94C,
+	0x2F94D,
+	0x2F94E,
+	0x2F94F,
+	0x2F950,
+	0x2F951,
+	0x2F952,
+	0x2F953,
+	0x2F954,
+	0x2F955,
+	0x2F956,
+	0x2F957,
+	0x2F958,
+	0x2F959,
+	0x2F95A,
+	0x2F95B,
+	0x2F95C,
+	0x2F95D,
+	0x2F95E,
+	0x2F95F,
+	0x2F960,
+	0x2F961,
+	0x2F962,
+	0x2F963,
+	0x2F964,
+	0x2F965,
+	0x2F966,
+	0x2F967,
+	0x2F968,
+	0x2F969,
+	0x2F96A,
+	0x2F96B,
+	0x2F96C,
+	0x2F96D,
+	0x2F96E,
+	0x2F96F,
+	0x2F970,
+	0x2F971,
+	0x2F972,
+	0x2F973,
+	0x2F974,
+	0x2F975,
+	0x2F976,
+	0x2F977,
+	0x2F978,
+	0x2F979,
+	0x2F97A,
+	0x2F97B,
+	0x2F97C,
+	0x2F97D,
+	0x2F97E,
+	0x2F97F,
+	0x2F980,
+	0x2F981,
+	0x2F982,
+	0x2F983,
+	0x2F984,
+	0x2F985,
+	0x2F986,
+	0x2F987,
+	0x2F988,
+	0x2F989,
+	0x2F98A,
+	0x2F98B,
+	0x2F98C,
+	0x2F98D,
+	0x2F98E,
+	0x2F98F,
+	0x2F990,
+	0x2F991,
+	0x2F992,
+	0x2F993,
+	0x2F994,
+	0x2F995,
+	0x2F996,
+	0x2F997,
+	0x2F998,
+	0x2F999,
+	0x2F99A,
+	0x2F99B,
+	0x2F99C,
+	0x2F99D,
+	0x2F99E,
+	0x2F99F,
+	0x2F9A0,
+	0x2F9A1,
+	0x2F9A2,
+	0x2F9A3,
+	0x2F9A4,
+	0x2F9A5,
+	0x2F9A6,
+	0x2F9A7,
+	0x2F9A8,
+	0x2F9A9,
+	0x2F9AA,
+	0x2F9AB,
+	0x2F9AC,
+	0x2F9AD,
+	0x2F9AE,
+	0x2F9AF,
+	0x2F9B0,
+	0x2F9B1,
+	0x2F9B2,
+	0x2F9B3,
+	0x2F9B4,
+	0x2F9B5,
+	0x2F9B6,
+	0x2F9B7,
+	0x2F9B8,
+	0x2F9B9,
+	0x2F9BA,
+	0x2F9BB,
+	0x2F9BC,
+	0x2F9BD,
+	0x2F9BE,
+	0x2F9BF,
+	0x2F9C0,
+	0x2F9C1,
+	0x2F9C2,
+	0x2F9C3,
+	0x2F9C4,
+	0x2F9C5,
+	0x2F9C6,
+	0x2F9C7,
+	0x2F9C8,
+	0x2F9C9,
+	0x2F9CA,
+	0x2F9CB,
+	0x2F9CC,
+	0x2F9CD,
+	0x2F9CE,
+	0x2F9CF,
+	0x2F9D0,
+	0x2F9D1,
+	0x2F9D2,
+	0x2F9D3,
+	0x2F9D4,
+	0x2F9D5,
+	0x2F9D6,
+	0x2F9D7,
+	0x2F9D8,
+	0x2F9D9,
+	0x2F9DA,
+	0x2F9DB,
+	0x2F9DC,
+	0x2F9DD,
+	0x2F9DE,
+	0x2F9DF,
+	0x2F9E0,
+	0x2F9E1,
+	0x2F9E2,
+	0x2F9E3,
+	0x2F9E4,
+	0x2F9E5,
+	0x2F9E6,
+	0x2F9E7,
+	0x2F9E8,
+	0x2F9E9,
+	0x2F9EA,
+	0x2F9EB,
+	0x2F9EC,
+	0x2F9ED,
+	0x2F9EE,
+	0x2F9EF,
+	0x2F9F0,
+	0x2F9F1,
+	0x2F9F2,
+	0x2F9F3,
+	0x2F9F4,
+	0x2F9F5,
+	0x2F9F6,
+	0x2F9F7,
+	0x2F9F8,
+	0x2F9F9,
+	0x2F9FA,
+	0x2F9FB,
+	0x2F9FC,
+	0x2F9FD,
+	0x2F9FE,
+	0x2F9FF,
+	0x2FA00,
+	0x2FA01,
+	0x2FA02,
+	0x2FA03,
+	0x2FA04,
+	0x2FA05,
+	0x2FA06,
+	0x2FA07,
+	0x2FA08,
+	0x2FA09,
+	0x2FA0A,
+	0x2FA0B,
+	0x2FA0C,
+	0x2FA0D,
+	0x2FA0E,
+	0x2FA0F,
+	0x2FA10,
+	0x2FA11,
+	0x2FA12,
+	0x2FA13,
+	0x2FA14,
+	0x2FA15,
+	0x2FA16,
+	0x2FA17,
+	0x2FA18,
+	0x2FA19,
+	0x2FA1A,
+	0x2FA1B,
+	0x2FA1C,
+	0x2FA1D,
+};
+
+static int
+NFC_QC_hash_func(const void *key)
+{
+	static const int16 h[2461] = {
+		  1049,   1050,   1051,   1052,   1053,   1054,   1055,    927,
+		  1057,   1058,   1059,   1060,   1061,   1062,   1063,   1064,
+		   316,   1066,   1067,      0,      0,      0,      0,      0,
+		     0,      0,      0,   1205,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,   1183,   1184,
+		  1185,   1186,   1187,   1188,   1189,   1190,   1191,   1192,
+		  1193,   1194,   1195,   1196,   1197,   1198,   1199,   -369,
+		  -369,   -369,   -369,   -369,   -369,   -369,   -369,   -369,
+		  -369,   -369,   -369,   -369,   -369,   -369,   -369,   -369,
+		  -369,   -369,   -369,   -369,    295,    295,    295,    295,
+		   295,   -369,    295,    295,    295,    295,    295,    295,
+		   295,    295,    295,   -369,    295,     50,   -369,    295,
+		   602,   -369,   -369,   -369,   -369,   -369,   -369,   -369,
+		  -369,   -369,   -369,      7,   -369,   -369,   -369,   -369,
+		  -369,   -369,   -369,   -369,   -369,     51,     52,   -369,
+		  -369,   -369,   -369,     19,    388,   -369,   -369,   -369,
+		  -369,   -369,   -369,   -369,   -369,    436,   -369,   -369,
+		  -369,   -369,   -369,   -369,   -369,   -369,   -369,    437,
+		  -369,     19,    439,    345,   -531,    -99,    345,    345,
+		   345,    345,    345,    345,    345,   -369,    666,    345,
+		   345,    626,   -401,   -530,   -530,   -530,   -530,  32767,
+		  1312,   1313,   1314,   1315,   1316,   1317,   1318,   1319,
+		  1320,   1321,   1322,   1323,   1324,   1325,  32767,  32767,
+		  1326,  32767,   -243,  32767,  32767,   -245,   -245,   -245,
+		  -245,   -245,   -245,   -245,   -245,   -245,   -245,  32767,
+		  -246,  32767,   -247,  32767,  32767,   -249,    415,  32767,
+		 32767,  32767,    412,   -252,    412,    412,    412,    412,
+		   412,    412,    412,    412,    412,   -252,    412,    167,
+		  -252,    412,    719,   -252,   -252,   -252,   -252,   -252,
+		  -252,   -252,   -252,   -252,   -252,    124,   -252,   -252,
+		  -252,   -252,   -252,   -252,   -252,   -252,   -252,    168,
+		   169,   -252,   -252,   -252,   -252,    136,    505,   -252,
+		  -252,   -252,   -252,   -252,   -252,   -252,   -252,    553,
+		  -252,   -252,   -252,   -252,   -252,   -252,   -252,   -252,
+		  -252,    554,   -252,    136,    556,    462,  32767,  32767,
+		   460,    460,    460,    460,    460,    460,    460,   -254,
+		   781,    460,    460,    741,   -286,   -415,   -415,   -415,
+		  -415,   -415,   -415,   -415,   -415,    334,   -415,   -415,
+		  -254,   -254,   -383,   -383,   -383,   -383,   -383,   -254,
+		  -383,   -254,   -383,   -254,   -383,   -383,   -383,   -383,
+		  -254,   -254,   -383,   -383,   -383,   -254,   -383,   -383,
+		  -383,   -254,    773,    111,   -383,   -383,   -383,   -383,
+		  -383,   -493,   -383,   -383,   -383,   -383,   -383,   -383,
+		  -383,   -624,   -383,   -254,   -254,   -254,   -383,   -383,
+		  -254,   -383,   -383,    119,   -383,   -383,   -383,   -213,
+		  -383,   -576,   -254,   -622,   -254,   -265,   -254,   -383,
+		  -383,   -383,   -383,   -834,   -750,   -383,   -383,   -383,
+		  -383,   -383,   -619,   -383,   -383,   -383,   -383,   -383,
+		  -383,   -383,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,    114,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,    115,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,    116,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,   -321,  32767,
+		  -322,  32767,  32767,  32767,    168,  32767,  32767,  32767,
+		 32767,  32767,  32767,   -442,   -332,   -332,   -332,   -332,
+		  -332,   -332,   -332,   -573,   -332,   -203,   -203,   -203,
+		 32767,   -333,   -204,   -333,   -333,    169,  32767,   -334,
+		 32767,   -165,   -335,  32767,   -207,   -575,  32767,   -219,
+		  -208,   -337,   -337,   -337,   -337,   -788,   -704,   -337,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		   180,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,    282,  32767,   -219,  32767,    284,  32767,    115,
+		 32767,    479,  32767,    526,  32767,    170,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,   -460,   -459,    256,   -778,   -456,
+		 32767,   -736,    292,    422,    423,    424,    425,    426,
+		 32767,     33,    427,     34,    428,  32767,    268,    269,
+		 32767,  32767,  32767,     35,  32767,  32767,    399,  32767,
+		 32767,  32767,  32767,     36,  32767,  32767,    271,    272,
+		   402,    403,    404,    276,  32767,  32767,  32767,  32767,
+		  -750,    -87,  32767,    408,    409,  32767,     39,     40,
+		 32767,  32767,  32767,    410,  32767,  32767,  32767,  32767,
+		 32767,      0,  32767,    364,    494,    411,    366,    496,
+		   412,    302,    303,  32767,  32767,    159,    160,    161,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  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,      0,  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,    546,    915,    548,    560,    550,    680,    681,
+		 32767,  32767,  32767,  32767,  32767,  32767,    -84,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,    413,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,     99,   -411,   -411,
+		  -411,   -411,   -411,   -411,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  -1078,  32767,  32767,  32767,  32767,  -1082,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,    103,  32767,  32767,  -1097,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		   102,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		    46,  32767,  32767,  32767,     47,   -633,  32767,  32767,
+		 32767,  32767,  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,   -928,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,   -872,
+		  -743,   -872,   -872,   -370,   -872,   -872,   -872,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,    497,  32767,  32767,    498,  32767,  32767,   -195,
+		  -194,  32767,  32767,  32767,  32767,     34,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,     35,    499,
+		   500,    501,  32767,    125,    126,  32767,    127,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,    818,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,   1109,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,   1563,
+		  1564,   1565,   1566,   1567,   1568,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,    664,    664,    664,    664,    664,      0,
+		   664,    664,    664,    664,    664,    664,    664,    664,
+		   664,      0,    664,    419,      0,    664,    971,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,    376,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,    420,    421,      0,      0,      0,
+		     0,    388,    757,      0,      0,      0,      0,      0,
+		     0,      0,      0,    805,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,    806,      0,    388,
+		   808,    714,   -162,    270,    714,    714,    714,    714,
+		   714,    714,    714,      0,   1035,    714,    714,    995,
+		   -32,   -161,   -161,   -161,   -161,   -161,   -161,   -161,
+		  -161,    588,   -161,   -161,      0,      0,   -129,   -129,
+		  -129,   -129,   -129,      0,   -129,      0,   -129,      0,
+		  -129,   -129,   -129,   -129,      0,      0,   -129,   -129,
+		  -129,      0,   -129,   -129,   -129,      0,   1027,    365,
+		  -129,   -129,   -129,   -129,   -129,   -239,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -370,   -129,      0,
+		     0,      0,   -129,   -129,      0,   -129,   -129,    373,
+		  -129,   -129,   -129,     41,   -129,   -322,      0,   -368,
+		     0,    -11,      0,   -129,   -129,   -129,   -129,   -580,
+		  -496,   -129,   -129,   -129,   -129,   -129,   -365,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -948,   -129,   -129,   -950,
+		  -129,   -129,   -129,   -129,   -129,   -129,      0,   -129,
+		  -129,   -129,      0,    681,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,      0,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,    620,
+		  -129,   -129,    939,    940,    941,    942,    943,  32767,
+		     0,      0,      0,      0,      0,    129,      0,    129,
+		     0,    129,      0,      0,      0,      0,    129,    129,
+		     0,      0,      0,    129,      0,      0,      0,    129,
+		  1156,    494,      0,      0,      0,      0,      0,   -110,
+		     0,      0,      0,      0,      0,      0,      0,   -241,
+		     0,    129,    129,    129,      0,      0,    129,      0,
+		     0,    502,      0,      0,      0,    170,      0,   -193,
+		   129,   -239,    129,    118,    129,      0,      0,      0,
+		     0,   -451,   -367,      0,      0,      0,      0,      0,
+		  -236,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,   -819,      0,
+		     0,   -821,      0,      0,      0,      0,      0,      0,
+		   129,      0,      0,      0,    129,    810,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		   129,      0,      0,      0,      0,      0,      0,      0,
+		     0,    749,      0,      0,   1068,   1069,   1070,   1071,
+		  1072,   1073,   1074,   1075,   -129,   1077,   1078,   1079,
+		  1080,   1081,   1082,   1083,   1084,   1085,   1086,   1087,
+		  1088,   1089,   1090,   1091,   1092,   1093,   1094,   1095,
+		  1096,   1097,   1098,   1099,   1100,   1101,   1102,   1103,
+		  1104,   1105,   1106,   1107,   1108,   1109,   1110,   1111,
+		  1112,   1113,   1114,   1115,   1116,   1117,   1118,   1119,
+		  1120,   1121,   1122,   1123,   1124,   1125,   1126,   1127,
+		  1128,   1129,   1130,   1131,   1132,   1133,   1134,   1135,
+		  1136,   1137,   1138,   1139,   1140,   1141,   1142,   1143,
+		  1144,   1145,   1146,   1147,   1148,   1149,   1150,   1151,
+		  1152,   1153,   1154,   1155,   1156,   1157,   1158,   1159,
+		  1160,   1161,   1162,   1163,   1164,   1165,   1166,   1167,
+		  1168,   1169,   1170,   1171,   1172,   1173,   1174,   1175,
+		  1176,   1177,   1178,   1179,   1180,   1181,   1182,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		 32767,   1200,   1201,   1202,   1203,   1204,      0,   1206,
+		  1207,   1208,   1209,   1210,   1211,   1212,   1213,   1214,
+		  1215,   1216,   1217,   1218,   1219,   1220,   1221,   1222,
+		  1223,   1224,   1225,   1226,   1227,   1228,   1229,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,   -528,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,    137,  32767,
+		 32767,  32767,  32767,    138,  32767,  32767,  32767,  32767,
+		   139,  32767,  32767,  32767,  32767,    140,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,      0,      0,      0,
+		     0,      0,   -664,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,   -664,      0,   -245,   -664,
+		     0,    307,    179,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,    146,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,    147,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,    148,  32767,
+		 32767,  32767,  32767,    149,  32767,  32767,      0,  32767,
+		   150,  32767,  32767,  32767,      0,   -876,   -444,      0,
+		     0,      0,      0,      0,      0,      0,   -714,    321,
+		     0,      0,    281,   -746,   -875,   -875,   -875,   -875,
+		  -875,   -875,   -875,   -875,   -126,   -875,   -875,    193,
+		   194,    195,    196,    197,    198,    199,    200,  -1004,
+		   202,    203,    204,    205,    206,    207,    208,    209,
+		   210,    211,    212,    213,    214,    215,    216,    217,
+		   218,    219,    220,    221,    222,    223,    224,    225,
+		   226,    227,    228,    229,    230,    231,    232,    233,
+		   234,    235,    236,    237,    238,    239,    240,    241,
+		   242,    243,    244,    245,    246,    247,    248,    249,
+		   250,    251,    252,    253,    254,    255,    256,    257,
+		   258,    259,    260,    261,    262,    263,    264,    265,
+		   266,    267,    268,    269,    270,    271,    272,    273,
+		   274,    275,    276,    277,    278,    279,    280,    281,
+		   282,    283,    284,    285,    286,    287,    288,    289,
+		   290,    291,    292,    293,    294,    295,    296,    297,
+		   298,    299,    300,    301,    302,    303,    304,    305,
+		   306,    307,   -875,   -875,   -875,   -875,   -875,   -875,
+		  -875,   -875,   -875,   -875,   -875,   -875,   -875,   -875,
+		  -875,   -875,   -875,    694,    695,    696,    697,    698,
+		   699,    700,    701,    702,    703,    704,    705,    706,
+		   707,    708,    709,    710,    711,    712,    713,    714,
+		    51,     52,     53,     54,     55,    720,     57,     58,
+		    59,     60,     61,     62,     63,     64,     65,    730,
+		    67,    313,    733,     70,   -236,    736,    737,    738,
+		   739,    740,    741,    742,    743,    744,    745,    370,
+		   747,    748,    749,    750,    751,    752,    753,    754,
+		   755,    336,    336,    758,    759,    760,    761,    374,
+		     6,    764,    765,    766,    767,    768,    769,    770,
+		   771,    -33,    773,    774,    775,    776,    777,    778,
+		   779,    780,    781,    -24,    783,    396,    -23,     72,
+		   949,    518,     75,     76,     77,     78,     79,     80,
+		    81,    796,   -238,     84,     85,   -195,    833,    963,
+		   964,    965,    966,    967,    968,    969,    970,    222,
+		   972,    973,    813,    814,    944,    945,    946,    947,
+		   948,    820,    950,    822,    952,    824,    954,    955,
+		   956,    957,    829,    830,    960,    961,    962,    834,
+		   964,    965,    966,    838,   -188,    475,    970,    971,
+		   972,    973,    974,   1085,    976,    977,    978,    979,
+		   980,    981,    982,   1224,    984,    856,    857,    858,
+		   988,    989,    861,    991,    992,    491,    994,    995,
+		   996,    827,    998,   1192,    871,   1240,    873,    885,
+		   875,   1005,   1006,   1007,   1008,   1460,   1377,   1011,
+		  1012,   1013,   1014,   1015,   1252,   1017,   1018,   1019,
+		  1020,   1021,   1022,   1023,   1024,   1025,   1026,   1027,
+		  1028,   1029,   1849,   1031,   1032,   1854,   1034,   1035,
+		  1036,   1037,   1038,   1039,    911,   1041,   1042,   1043,
+		   915,    235,   1046,   1047,   1048,
+	};
+
+	const unsigned char *k = (const unsigned char *) key;
+	size_t		keylen = 4;
+	uint32		a = 0;
+	uint32		b = 0;
+
+	while (keylen--)
+	{
+		unsigned char c = *k++;
+
+		a = a * 127 + c;
+		b = b * 257 + c;
+	}
+	return h[a % 2461] + h[b % 2461];
+}
+
+static const unicode_norm_info UnicodeNormInfo_NFC_QC = {
+	NFC_QC_codepoints,
+	NFC_QC_hash_func,
+	110,
+	1230
+};
+
+static const uint32 NFKC_QC_codepoints[] = {
+	/* MAYBE's */
+	0x0300,
+	0x0301,
+	0x0302,
+	0x0303,
+	0x0304,
+	0x0306,
+	0x0307,
+	0x0308,
+	0x0309,
+	0x030A,
+	0x030B,
+	0x030C,
+	0x030F,
+	0x0311,
+	0x0313,
+	0x0314,
+	0x031B,
+	0x0323,
+	0x0324,
+	0x0325,
+	0x0326,
+	0x0327,
+	0x0328,
+	0x032D,
+	0x032E,
+	0x0330,
+	0x0331,
+	0x0338,
+	0x0342,
+	0x0345,
+	0x0653,
+	0x0654,
+	0x0655,
+	0x093C,
+	0x09BE,
+	0x09D7,
+	0x0B3E,
+	0x0B56,
+	0x0B57,
+	0x0BBE,
+	0x0BD7,
+	0x0C56,
+	0x0CC2,
+	0x0CD5,
+	0x0CD6,
+	0x0D3E,
+	0x0D57,
+	0x0DCA,
+	0x0DCF,
+	0x0DDF,
+	0x102E,
+	0x1161,
+	0x1162,
+	0x1163,
+	0x1164,
+	0x1165,
+	0x1166,
+	0x1167,
+	0x1168,
+	0x1169,
+	0x116A,
+	0x116B,
+	0x116C,
+	0x116D,
+	0x116E,
+	0x116F,
+	0x1170,
+	0x1171,
+	0x1172,
+	0x1173,
+	0x1174,
+	0x1175,
+	0x11A8,
+	0x11A9,
+	0x11AA,
+	0x11AB,
+	0x11AC,
+	0x11AD,
+	0x11AE,
+	0x11AF,
+	0x11B0,
+	0x11B1,
+	0x11B2,
+	0x11B3,
+	0x11B4,
+	0x11B5,
+	0x11B6,
+	0x11B7,
+	0x11B8,
+	0x11B9,
+	0x11BA,
+	0x11BB,
+	0x11BC,
+	0x11BD,
+	0x11BE,
+	0x11BF,
+	0x11C0,
+	0x11C1,
+	0x11C2,
+	0x1B35,
+	0x3099,
+	0x309A,
+	0x110BA,
+	0x11127,
+	0x1133E,
+	0x11357,
+	0x114B0,
+	0x114BA,
+	0x114BD,
+	0x115AF,
+	/* NO's */
+	0x00A0,
+	0x00A8,
+	0x00AA,
+	0x00AF,
+	0x00B2,
+	0x00B3,
+	0x00B4,
+	0x00B5,
+	0x00B8,
+	0x00B9,
+	0x00BA,
+	0x00BC,
+	0x00BD,
+	0x00BE,
+	0x0132,
+	0x0133,
+	0x013F,
+	0x0140,
+	0x0149,
+	0x017F,
+	0x01C4,
+	0x01C5,
+	0x01C6,
+	0x01C7,
+	0x01C8,
+	0x01C9,
+	0x01CA,
+	0x01CB,
+	0x01CC,
+	0x01F1,
+	0x01F2,
+	0x01F3,
+	0x02B0,
+	0x02B1,
+	0x02B2,
+	0x02B3,
+	0x02B4,
+	0x02B5,
+	0x02B6,
+	0x02B7,
+	0x02B8,
+	0x02D8,
+	0x02D9,
+	0x02DA,
+	0x02DB,
+	0x02DC,
+	0x02DD,
+	0x02E0,
+	0x02E1,
+	0x02E2,
+	0x02E3,
+	0x02E4,
+	0x0340,
+	0x0341,
+	0x0343,
+	0x0344,
+	0x0374,
+	0x037A,
+	0x037E,
+	0x0384,
+	0x0385,
+	0x0387,
+	0x03D0,
+	0x03D1,
+	0x03D2,
+	0x03D3,
+	0x03D4,
+	0x03D5,
+	0x03D6,
+	0x03F0,
+	0x03F1,
+	0x03F2,
+	0x03F4,
+	0x03F5,
+	0x03F9,
+	0x0587,
+	0x0675,
+	0x0676,
+	0x0677,
+	0x0678,
+	0x0958,
+	0x0959,
+	0x095A,
+	0x095B,
+	0x095C,
+	0x095D,
+	0x095E,
+	0x095F,
+	0x09DC,
+	0x09DD,
+	0x09DF,
+	0x0A33,
+	0x0A36,
+	0x0A59,
+	0x0A5A,
+	0x0A5B,
+	0x0A5E,
+	0x0B5C,
+	0x0B5D,
+	0x0E33,
+	0x0EB3,
+	0x0EDC,
+	0x0EDD,
+	0x0F0C,
+	0x0F43,
+	0x0F4D,
+	0x0F52,
+	0x0F57,
+	0x0F5C,
+	0x0F69,
+	0x0F73,
+	0x0F75,
+	0x0F76,
+	0x0F77,
+	0x0F78,
+	0x0F79,
+	0x0F81,
+	0x0F93,
+	0x0F9D,
+	0x0FA2,
+	0x0FA7,
+	0x0FAC,
+	0x0FB9,
+	0x10FC,
+	0x1D2C,
+	0x1D2D,
+	0x1D2E,
+	0x1D30,
+	0x1D31,
+	0x1D32,
+	0x1D33,
+	0x1D34,
+	0x1D35,
+	0x1D36,
+	0x1D37,
+	0x1D38,
+	0x1D39,
+	0x1D3A,
+	0x1D3C,
+	0x1D3D,
+	0x1D3E,
+	0x1D3F,
+	0x1D40,
+	0x1D41,
+	0x1D42,
+	0x1D43,
+	0x1D44,
+	0x1D45,
+	0x1D46,
+	0x1D47,
+	0x1D48,
+	0x1D49,
+	0x1D4A,
+	0x1D4B,
+	0x1D4C,
+	0x1D4D,
+	0x1D4F,
+	0x1D50,
+	0x1D51,
+	0x1D52,
+	0x1D53,
+	0x1D54,
+	0x1D55,
+	0x1D56,
+	0x1D57,
+	0x1D58,
+	0x1D59,
+	0x1D5A,
+	0x1D5B,
+	0x1D5C,
+	0x1D5D,
+	0x1D5E,
+	0x1D5F,
+	0x1D60,
+	0x1D61,
+	0x1D62,
+	0x1D63,
+	0x1D64,
+	0x1D65,
+	0x1D66,
+	0x1D67,
+	0x1D68,
+	0x1D69,
+	0x1D6A,
+	0x1D78,
+	0x1D9B,
+	0x1D9C,
+	0x1D9D,
+	0x1D9E,
+	0x1D9F,
+	0x1DA0,
+	0x1DA1,
+	0x1DA2,
+	0x1DA3,
+	0x1DA4,
+	0x1DA5,
+	0x1DA6,
+	0x1DA7,
+	0x1DA8,
+	0x1DA9,
+	0x1DAA,
+	0x1DAB,
+	0x1DAC,
+	0x1DAD,
+	0x1DAE,
+	0x1DAF,
+	0x1DB0,
+	0x1DB1,
+	0x1DB2,
+	0x1DB3,
+	0x1DB4,
+	0x1DB5,
+	0x1DB6,
+	0x1DB7,
+	0x1DB8,
+	0x1DB9,
+	0x1DBA,
+	0x1DBB,
+	0x1DBC,
+	0x1DBD,
+	0x1DBE,
+	0x1DBF,
+	0x1E9A,
+	0x1E9B,
+	0x1F71,
+	0x1F73,
+	0x1F75,
+	0x1F77,
+	0x1F79,
+	0x1F7B,
+	0x1F7D,
+	0x1FBB,
+	0x1FBD,
+	0x1FBE,
+	0x1FBF,
+	0x1FC0,
+	0x1FC1,
+	0x1FC9,
+	0x1FCB,
+	0x1FCD,
+	0x1FCE,
+	0x1FCF,
+	0x1FD3,
+	0x1FDB,
+	0x1FDD,
+	0x1FDE,
+	0x1FDF,
+	0x1FE3,
+	0x1FEB,
+	0x1FED,
+	0x1FEE,
+	0x1FEF,
+	0x1FF9,
+	0x1FFB,
+	0x1FFD,
+	0x1FFE,
+	0x2000,
+	0x2001,
+	0x2002,
+	0x2003,
+	0x2004,
+	0x2005,
+	0x2006,
+	0x2007,
+	0x2008,
+	0x2009,
+	0x200A,
+	0x2011,
+	0x2017,
+	0x2024,
+	0x2025,
+	0x2026,
+	0x202F,
+	0x2033,
+	0x2034,
+	0x2036,
+	0x2037,
+	0x203C,
+	0x203E,
+	0x2047,
+	0x2048,
+	0x2049,
+	0x2057,
+	0x205F,
+	0x2070,
+	0x2071,
+	0x2074,
+	0x2075,
+	0x2076,
+	0x2077,
+	0x2078,
+	0x2079,
+	0x207A,
+	0x207B,
+	0x207C,
+	0x207D,
+	0x207E,
+	0x207F,
+	0x2080,
+	0x2081,
+	0x2082,
+	0x2083,
+	0x2084,
+	0x2085,
+	0x2086,
+	0x2087,
+	0x2088,
+	0x2089,
+	0x208A,
+	0x208B,
+	0x208C,
+	0x208D,
+	0x208E,
+	0x2090,
+	0x2091,
+	0x2092,
+	0x2093,
+	0x2094,
+	0x2095,
+	0x2096,
+	0x2097,
+	0x2098,
+	0x2099,
+	0x209A,
+	0x209B,
+	0x209C,
+	0x20A8,
+	0x2100,
+	0x2101,
+	0x2102,
+	0x2103,
+	0x2105,
+	0x2106,
+	0x2107,
+	0x2109,
+	0x210A,
+	0x210B,
+	0x210C,
+	0x210D,
+	0x210E,
+	0x210F,
+	0x2110,
+	0x2111,
+	0x2112,
+	0x2113,
+	0x2115,
+	0x2116,
+	0x2119,
+	0x211A,
+	0x211B,
+	0x211C,
+	0x211D,
+	0x2120,
+	0x2121,
+	0x2122,
+	0x2124,
+	0x2126,
+	0x2128,
+	0x212A,
+	0x212B,
+	0x212C,
+	0x212D,
+	0x212F,
+	0x2130,
+	0x2131,
+	0x2133,
+	0x2134,
+	0x2135,
+	0x2136,
+	0x2137,
+	0x2138,
+	0x2139,
+	0x213B,
+	0x213C,
+	0x213D,
+	0x213E,
+	0x213F,
+	0x2140,
+	0x2145,
+	0x2146,
+	0x2147,
+	0x2148,
+	0x2149,
+	0x2150,
+	0x2151,
+	0x2152,
+	0x2153,
+	0x2154,
+	0x2155,
+	0x2156,
+	0x2157,
+	0x2158,
+	0x2159,
+	0x215A,
+	0x215B,
+	0x215C,
+	0x215D,
+	0x215E,
+	0x215F,
+	0x2160,
+	0x2161,
+	0x2162,
+	0x2163,
+	0x2164,
+	0x2165,
+	0x2166,
+	0x2167,
+	0x2168,
+	0x2169,
+	0x216A,
+	0x216B,
+	0x216C,
+	0x216D,
+	0x216E,
+	0x216F,
+	0x2170,
+	0x2171,
+	0x2172,
+	0x2173,
+	0x2174,
+	0x2175,
+	0x2176,
+	0x2177,
+	0x2178,
+	0x2179,
+	0x217A,
+	0x217B,
+	0x217C,
+	0x217D,
+	0x217E,
+	0x217F,
+	0x2189,
+	0x222C,
+	0x222D,
+	0x222F,
+	0x2230,
+	0x2329,
+	0x232A,
+	0x2460,
+	0x2461,
+	0x2462,
+	0x2463,
+	0x2464,
+	0x2465,
+	0x2466,
+	0x2467,
+	0x2468,
+	0x2469,
+	0x246A,
+	0x246B,
+	0x246C,
+	0x246D,
+	0x246E,
+	0x246F,
+	0x2470,
+	0x2471,
+	0x2472,
+	0x2473,
+	0x2474,
+	0x2475,
+	0x2476,
+	0x2477,
+	0x2478,
+	0x2479,
+	0x247A,
+	0x247B,
+	0x247C,
+	0x247D,
+	0x247E,
+	0x247F,
+	0x2480,
+	0x2481,
+	0x2482,
+	0x2483,
+	0x2484,
+	0x2485,
+	0x2486,
+	0x2487,
+	0x2488,
+	0x2489,
+	0x248A,
+	0x248B,
+	0x248C,
+	0x248D,
+	0x248E,
+	0x248F,
+	0x2490,
+	0x2491,
+	0x2492,
+	0x2493,
+	0x2494,
+	0x2495,
+	0x2496,
+	0x2497,
+	0x2498,
+	0x2499,
+	0x249A,
+	0x249B,
+	0x249C,
+	0x249D,
+	0x249E,
+	0x249F,
+	0x24A0,
+	0x24A1,
+	0x24A2,
+	0x24A3,
+	0x24A4,
+	0x24A5,
+	0x24A6,
+	0x24A7,
+	0x24A8,
+	0x24A9,
+	0x24AA,
+	0x24AB,
+	0x24AC,
+	0x24AD,
+	0x24AE,
+	0x24AF,
+	0x24B0,
+	0x24B1,
+	0x24B2,
+	0x24B3,
+	0x24B4,
+	0x24B5,
+	0x24B6,
+	0x24B7,
+	0x24B8,
+	0x24B9,
+	0x24BA,
+	0x24BB,
+	0x24BC,
+	0x24BD,
+	0x24BE,
+	0x24BF,
+	0x24C0,
+	0x24C1,
+	0x24C2,
+	0x24C3,
+	0x24C4,
+	0x24C5,
+	0x24C6,
+	0x24C7,
+	0x24C8,
+	0x24C9,
+	0x24CA,
+	0x24CB,
+	0x24CC,
+	0x24CD,
+	0x24CE,
+	0x24CF,
+	0x24D0,
+	0x24D1,
+	0x24D2,
+	0x24D3,
+	0x24D4,
+	0x24D5,
+	0x24D6,
+	0x24D7,
+	0x24D8,
+	0x24D9,
+	0x24DA,
+	0x24DB,
+	0x24DC,
+	0x24DD,
+	0x24DE,
+	0x24DF,
+	0x24E0,
+	0x24E1,
+	0x24E2,
+	0x24E3,
+	0x24E4,
+	0x24E5,
+	0x24E6,
+	0x24E7,
+	0x24E8,
+	0x24E9,
+	0x24EA,
+	0x2A0C,
+	0x2A74,
+	0x2A75,
+	0x2A76,
+	0x2ADC,
+	0x2C7C,
+	0x2C7D,
+	0x2D6F,
+	0x2E9F,
+	0x2EF3,
+	0x2F00,
+	0x2F01,
+	0x2F02,
+	0x2F03,
+	0x2F04,
+	0x2F05,
+	0x2F06,
+	0x2F07,
+	0x2F08,
+	0x2F09,
+	0x2F0A,
+	0x2F0B,
+	0x2F0C,
+	0x2F0D,
+	0x2F0E,
+	0x2F0F,
+	0x2F10,
+	0x2F11,
+	0x2F12,
+	0x2F13,
+	0x2F14,
+	0x2F15,
+	0x2F16,
+	0x2F17,
+	0x2F18,
+	0x2F19,
+	0x2F1A,
+	0x2F1B,
+	0x2F1C,
+	0x2F1D,
+	0x2F1E,
+	0x2F1F,
+	0x2F20,
+	0x2F21,
+	0x2F22,
+	0x2F23,
+	0x2F24,
+	0x2F25,
+	0x2F26,
+	0x2F27,
+	0x2F28,
+	0x2F29,
+	0x2F2A,
+	0x2F2B,
+	0x2F2C,
+	0x2F2D,
+	0x2F2E,
+	0x2F2F,
+	0x2F30,
+	0x2F31,
+	0x2F32,
+	0x2F33,
+	0x2F34,
+	0x2F35,
+	0x2F36,
+	0x2F37,
+	0x2F38,
+	0x2F39,
+	0x2F3A,
+	0x2F3B,
+	0x2F3C,
+	0x2F3D,
+	0x2F3E,
+	0x2F3F,
+	0x2F40,
+	0x2F41,
+	0x2F42,
+	0x2F43,
+	0x2F44,
+	0x2F45,
+	0x2F46,
+	0x2F47,
+	0x2F48,
+	0x2F49,
+	0x2F4A,
+	0x2F4B,
+	0x2F4C,
+	0x2F4D,
+	0x2F4E,
+	0x2F4F,
+	0x2F50,
+	0x2F51,
+	0x2F52,
+	0x2F53,
+	0x2F54,
+	0x2F55,
+	0x2F56,
+	0x2F57,
+	0x2F58,
+	0x2F59,
+	0x2F5A,
+	0x2F5B,
+	0x2F5C,
+	0x2F5D,
+	0x2F5E,
+	0x2F5F,
+	0x2F60,
+	0x2F61,
+	0x2F62,
+	0x2F63,
+	0x2F64,
+	0x2F65,
+	0x2F66,
+	0x2F67,
+	0x2F68,
+	0x2F69,
+	0x2F6A,
+	0x2F6B,
+	0x2F6C,
+	0x2F6D,
+	0x2F6E,
+	0x2F6F,
+	0x2F70,
+	0x2F71,
+	0x2F72,
+	0x2F73,
+	0x2F74,
+	0x2F75,
+	0x2F76,
+	0x2F77,
+	0x2F78,
+	0x2F79,
+	0x2F7A,
+	0x2F7B,
+	0x2F7C,
+	0x2F7D,
+	0x2F7E,
+	0x2F7F,
+	0x2F80,
+	0x2F81,
+	0x2F82,
+	0x2F83,
+	0x2F84,
+	0x2F85,
+	0x2F86,
+	0x2F87,
+	0x2F88,
+	0x2F89,
+	0x2F8A,
+	0x2F8B,
+	0x2F8C,
+	0x2F8D,
+	0x2F8E,
+	0x2F8F,
+	0x2F90,
+	0x2F91,
+	0x2F92,
+	0x2F93,
+	0x2F94,
+	0x2F95,
+	0x2F96,
+	0x2F97,
+	0x2F98,
+	0x2F99,
+	0x2F9A,
+	0x2F9B,
+	0x2F9C,
+	0x2F9D,
+	0x2F9E,
+	0x2F9F,
+	0x2FA0,
+	0x2FA1,
+	0x2FA2,
+	0x2FA3,
+	0x2FA4,
+	0x2FA5,
+	0x2FA6,
+	0x2FA7,
+	0x2FA8,
+	0x2FA9,
+	0x2FAA,
+	0x2FAB,
+	0x2FAC,
+	0x2FAD,
+	0x2FAE,
+	0x2FAF,
+	0x2FB0,
+	0x2FB1,
+	0x2FB2,
+	0x2FB3,
+	0x2FB4,
+	0x2FB5,
+	0x2FB6,
+	0x2FB7,
+	0x2FB8,
+	0x2FB9,
+	0x2FBA,
+	0x2FBB,
+	0x2FBC,
+	0x2FBD,
+	0x2FBE,
+	0x2FBF,
+	0x2FC0,
+	0x2FC1,
+	0x2FC2,
+	0x2FC3,
+	0x2FC4,
+	0x2FC5,
+	0x2FC6,
+	0x2FC7,
+	0x2FC8,
+	0x2FC9,
+	0x2FCA,
+	0x2FCB,
+	0x2FCC,
+	0x2FCD,
+	0x2FCE,
+	0x2FCF,
+	0x2FD0,
+	0x2FD1,
+	0x2FD2,
+	0x2FD3,
+	0x2FD4,
+	0x2FD5,
+	0x3000,
+	0x3036,
+	0x3038,
+	0x3039,
+	0x303A,
+	0x309B,
+	0x309C,
+	0x309F,
+	0x30FF,
+	0x3131,
+	0x3132,
+	0x3133,
+	0x3134,
+	0x3135,
+	0x3136,
+	0x3137,
+	0x3138,
+	0x3139,
+	0x313A,
+	0x313B,
+	0x313C,
+	0x313D,
+	0x313E,
+	0x313F,
+	0x3140,
+	0x3141,
+	0x3142,
+	0x3143,
+	0x3144,
+	0x3145,
+	0x3146,
+	0x3147,
+	0x3148,
+	0x3149,
+	0x314A,
+	0x314B,
+	0x314C,
+	0x314D,
+	0x314E,
+	0x314F,
+	0x3150,
+	0x3151,
+	0x3152,
+	0x3153,
+	0x3154,
+	0x3155,
+	0x3156,
+	0x3157,
+	0x3158,
+	0x3159,
+	0x315A,
+	0x315B,
+	0x315C,
+	0x315D,
+	0x315E,
+	0x315F,
+	0x3160,
+	0x3161,
+	0x3162,
+	0x3163,
+	0x3164,
+	0x3165,
+	0x3166,
+	0x3167,
+	0x3168,
+	0x3169,
+	0x316A,
+	0x316B,
+	0x316C,
+	0x316D,
+	0x316E,
+	0x316F,
+	0x3170,
+	0x3171,
+	0x3172,
+	0x3173,
+	0x3174,
+	0x3175,
+	0x3176,
+	0x3177,
+	0x3178,
+	0x3179,
+	0x317A,
+	0x317B,
+	0x317C,
+	0x317D,
+	0x317E,
+	0x317F,
+	0x3180,
+	0x3181,
+	0x3182,
+	0x3183,
+	0x3184,
+	0x3185,
+	0x3186,
+	0x3187,
+	0x3188,
+	0x3189,
+	0x318A,
+	0x318B,
+	0x318C,
+	0x318D,
+	0x318E,
+	0x3192,
+	0x3193,
+	0x3194,
+	0x3195,
+	0x3196,
+	0x3197,
+	0x3198,
+	0x3199,
+	0x319A,
+	0x319B,
+	0x319C,
+	0x319D,
+	0x319E,
+	0x319F,
+	0x3200,
+	0x3201,
+	0x3202,
+	0x3203,
+	0x3204,
+	0x3205,
+	0x3206,
+	0x3207,
+	0x3208,
+	0x3209,
+	0x320A,
+	0x320B,
+	0x320C,
+	0x320D,
+	0x320E,
+	0x320F,
+	0x3210,
+	0x3211,
+	0x3212,
+	0x3213,
+	0x3214,
+	0x3215,
+	0x3216,
+	0x3217,
+	0x3218,
+	0x3219,
+	0x321A,
+	0x321B,
+	0x321C,
+	0x321D,
+	0x321E,
+	0x3220,
+	0x3221,
+	0x3222,
+	0x3223,
+	0x3224,
+	0x3225,
+	0x3226,
+	0x3227,
+	0x3228,
+	0x3229,
+	0x322A,
+	0x322B,
+	0x322C,
+	0x322D,
+	0x322E,
+	0x322F,
+	0x3230,
+	0x3231,
+	0x3232,
+	0x3233,
+	0x3234,
+	0x3235,
+	0x3236,
+	0x3237,
+	0x3238,
+	0x3239,
+	0x323A,
+	0x323B,
+	0x323C,
+	0x323D,
+	0x323E,
+	0x323F,
+	0x3240,
+	0x3241,
+	0x3242,
+	0x3243,
+	0x3244,
+	0x3245,
+	0x3246,
+	0x3247,
+	0x3250,
+	0x3251,
+	0x3252,
+	0x3253,
+	0x3254,
+	0x3255,
+	0x3256,
+	0x3257,
+	0x3258,
+	0x3259,
+	0x325A,
+	0x325B,
+	0x325C,
+	0x325D,
+	0x325E,
+	0x325F,
+	0x3260,
+	0x3261,
+	0x3262,
+	0x3263,
+	0x3264,
+	0x3265,
+	0x3266,
+	0x3267,
+	0x3268,
+	0x3269,
+	0x326A,
+	0x326B,
+	0x326C,
+	0x326D,
+	0x326E,
+	0x326F,
+	0x3270,
+	0x3271,
+	0x3272,
+	0x3273,
+	0x3274,
+	0x3275,
+	0x3276,
+	0x3277,
+	0x3278,
+	0x3279,
+	0x327A,
+	0x327B,
+	0x327C,
+	0x327D,
+	0x327E,
+	0x3280,
+	0x3281,
+	0x3282,
+	0x3283,
+	0x3284,
+	0x3285,
+	0x3286,
+	0x3287,
+	0x3288,
+	0x3289,
+	0x328A,
+	0x328B,
+	0x328C,
+	0x328D,
+	0x328E,
+	0x328F,
+	0x3290,
+	0x3291,
+	0x3292,
+	0x3293,
+	0x3294,
+	0x3295,
+	0x3296,
+	0x3297,
+	0x3298,
+	0x3299,
+	0x329A,
+	0x329B,
+	0x329C,
+	0x329D,
+	0x329E,
+	0x329F,
+	0x32A0,
+	0x32A1,
+	0x32A2,
+	0x32A3,
+	0x32A4,
+	0x32A5,
+	0x32A6,
+	0x32A7,
+	0x32A8,
+	0x32A9,
+	0x32AA,
+	0x32AB,
+	0x32AC,
+	0x32AD,
+	0x32AE,
+	0x32AF,
+	0x32B0,
+	0x32B1,
+	0x32B2,
+	0x32B3,
+	0x32B4,
+	0x32B5,
+	0x32B6,
+	0x32B7,
+	0x32B8,
+	0x32B9,
+	0x32BA,
+	0x32BB,
+	0x32BC,
+	0x32BD,
+	0x32BE,
+	0x32BF,
+	0x32C0,
+	0x32C1,
+	0x32C2,
+	0x32C3,
+	0x32C4,
+	0x32C5,
+	0x32C6,
+	0x32C7,
+	0x32C8,
+	0x32C9,
+	0x32CA,
+	0x32CB,
+	0x32CC,
+	0x32CD,
+	0x32CE,
+	0x32CF,
+	0x32D0,
+	0x32D1,
+	0x32D2,
+	0x32D3,
+	0x32D4,
+	0x32D5,
+	0x32D6,
+	0x32D7,
+	0x32D8,
+	0x32D9,
+	0x32DA,
+	0x32DB,
+	0x32DC,
+	0x32DD,
+	0x32DE,
+	0x32DF,
+	0x32E0,
+	0x32E1,
+	0x32E2,
+	0x32E3,
+	0x32E4,
+	0x32E5,
+	0x32E6,
+	0x32E7,
+	0x32E8,
+	0x32E9,
+	0x32EA,
+	0x32EB,
+	0x32EC,
+	0x32ED,
+	0x32EE,
+	0x32EF,
+	0x32F0,
+	0x32F1,
+	0x32F2,
+	0x32F3,
+	0x32F4,
+	0x32F5,
+	0x32F6,
+	0x32F7,
+	0x32F8,
+	0x32F9,
+	0x32FA,
+	0x32FB,
+	0x32FC,
+	0x32FD,
+	0x32FE,
+	0x32FF,
+	0x3300,
+	0x3301,
+	0x3302,
+	0x3303,
+	0x3304,
+	0x3305,
+	0x3306,
+	0x3307,
+	0x3308,
+	0x3309,
+	0x330A,
+	0x330B,
+	0x330C,
+	0x330D,
+	0x330E,
+	0x330F,
+	0x3310,
+	0x3311,
+	0x3312,
+	0x3313,
+	0x3314,
+	0x3315,
+	0x3316,
+	0x3317,
+	0x3318,
+	0x3319,
+	0x331A,
+	0x331B,
+	0x331C,
+	0x331D,
+	0x331E,
+	0x331F,
+	0x3320,
+	0x3321,
+	0x3322,
+	0x3323,
+	0x3324,
+	0x3325,
+	0x3326,
+	0x3327,
+	0x3328,
+	0x3329,
+	0x332A,
+	0x332B,
+	0x332C,
+	0x332D,
+	0x332E,
+	0x332F,
+	0x3330,
+	0x3331,
+	0x3332,
+	0x3333,
+	0x3334,
+	0x3335,
+	0x3336,
+	0x3337,
+	0x3338,
+	0x3339,
+	0x333A,
+	0x333B,
+	0x333C,
+	0x333D,
+	0x333E,
+	0x333F,
+	0x3340,
+	0x3341,
+	0x3342,
+	0x3343,
+	0x3344,
+	0x3345,
+	0x3346,
+	0x3347,
+	0x3348,
+	0x3349,
+	0x334A,
+	0x334B,
+	0x334C,
+	0x334D,
+	0x334E,
+	0x334F,
+	0x3350,
+	0x3351,
+	0x3352,
+	0x3353,
+	0x3354,
+	0x3355,
+	0x3356,
+	0x3357,
+	0x3358,
+	0x3359,
+	0x335A,
+	0x335B,
+	0x335C,
+	0x335D,
+	0x335E,
+	0x335F,
+	0x3360,
+	0x3361,
+	0x3362,
+	0x3363,
+	0x3364,
+	0x3365,
+	0x3366,
+	0x3367,
+	0x3368,
+	0x3369,
+	0x336A,
+	0x336B,
+	0x336C,
+	0x336D,
+	0x336E,
+	0x336F,
+	0x3370,
+	0x3371,
+	0x3372,
+	0x3373,
+	0x3374,
+	0x3375,
+	0x3376,
+	0x3377,
+	0x3378,
+	0x3379,
+	0x337A,
+	0x337B,
+	0x337C,
+	0x337D,
+	0x337E,
+	0x337F,
+	0x3380,
+	0x3381,
+	0x3382,
+	0x3383,
+	0x3384,
+	0x3385,
+	0x3386,
+	0x3387,
+	0x3388,
+	0x3389,
+	0x338A,
+	0x338B,
+	0x338C,
+	0x338D,
+	0x338E,
+	0x338F,
+	0x3390,
+	0x3391,
+	0x3392,
+	0x3393,
+	0x3394,
+	0x3395,
+	0x3396,
+	0x3397,
+	0x3398,
+	0x3399,
+	0x339A,
+	0x339B,
+	0x339C,
+	0x339D,
+	0x339E,
+	0x339F,
+	0x33A0,
+	0x33A1,
+	0x33A2,
+	0x33A3,
+	0x33A4,
+	0x33A5,
+	0x33A6,
+	0x33A7,
+	0x33A8,
+	0x33A9,
+	0x33AA,
+	0x33AB,
+	0x33AC,
+	0x33AD,
+	0x33AE,
+	0x33AF,
+	0x33B0,
+	0x33B1,
+	0x33B2,
+	0x33B3,
+	0x33B4,
+	0x33B5,
+	0x33B6,
+	0x33B7,
+	0x33B8,
+	0x33B9,
+	0x33BA,
+	0x33BB,
+	0x33BC,
+	0x33BD,
+	0x33BE,
+	0x33BF,
+	0x33C0,
+	0x33C1,
+	0x33C2,
+	0x33C3,
+	0x33C4,
+	0x33C5,
+	0x33C6,
+	0x33C7,
+	0x33C8,
+	0x33C9,
+	0x33CA,
+	0x33CB,
+	0x33CC,
+	0x33CD,
+	0x33CE,
+	0x33CF,
+	0x33D0,
+	0x33D1,
+	0x33D2,
+	0x33D3,
+	0x33D4,
+	0x33D5,
+	0x33D6,
+	0x33D7,
+	0x33D8,
+	0x33D9,
+	0x33DA,
+	0x33DB,
+	0x33DC,
+	0x33DD,
+	0x33DE,
+	0x33DF,
+	0x33E0,
+	0x33E1,
+	0x33E2,
+	0x33E3,
+	0x33E4,
+	0x33E5,
+	0x33E6,
+	0x33E7,
+	0x33E8,
+	0x33E9,
+	0x33EA,
+	0x33EB,
+	0x33EC,
+	0x33ED,
+	0x33EE,
+	0x33EF,
+	0x33F0,
+	0x33F1,
+	0x33F2,
+	0x33F3,
+	0x33F4,
+	0x33F5,
+	0x33F6,
+	0x33F7,
+	0x33F8,
+	0x33F9,
+	0x33FA,
+	0x33FB,
+	0x33FC,
+	0x33FD,
+	0x33FE,
+	0x33FF,
+	0xA69C,
+	0xA69D,
+	0xA770,
+	0xA7F8,
+	0xA7F9,
+	0xAB5C,
+	0xAB5D,
+	0xAB5E,
+	0xAB5F,
+	0xF900,
+	0xF901,
+	0xF902,
+	0xF903,
+	0xF904,
+	0xF905,
+	0xF906,
+	0xF907,
+	0xF908,
+	0xF909,
+	0xF90A,
+	0xF90B,
+	0xF90C,
+	0xF90D,
+	0xF90E,
+	0xF90F,
+	0xF910,
+	0xF911,
+	0xF912,
+	0xF913,
+	0xF914,
+	0xF915,
+	0xF916,
+	0xF917,
+	0xF918,
+	0xF919,
+	0xF91A,
+	0xF91B,
+	0xF91C,
+	0xF91D,
+	0xF91E,
+	0xF91F,
+	0xF920,
+	0xF921,
+	0xF922,
+	0xF923,
+	0xF924,
+	0xF925,
+	0xF926,
+	0xF927,
+	0xF928,
+	0xF929,
+	0xF92A,
+	0xF92B,
+	0xF92C,
+	0xF92D,
+	0xF92E,
+	0xF92F,
+	0xF930,
+	0xF931,
+	0xF932,
+	0xF933,
+	0xF934,
+	0xF935,
+	0xF936,
+	0xF937,
+	0xF938,
+	0xF939,
+	0xF93A,
+	0xF93B,
+	0xF93C,
+	0xF93D,
+	0xF93E,
+	0xF93F,
+	0xF940,
+	0xF941,
+	0xF942,
+	0xF943,
+	0xF944,
+	0xF945,
+	0xF946,
+	0xF947,
+	0xF948,
+	0xF949,
+	0xF94A,
+	0xF94B,
+	0xF94C,
+	0xF94D,
+	0xF94E,
+	0xF94F,
+	0xF950,
+	0xF951,
+	0xF952,
+	0xF953,
+	0xF954,
+	0xF955,
+	0xF956,
+	0xF957,
+	0xF958,
+	0xF959,
+	0xF95A,
+	0xF95B,
+	0xF95C,
+	0xF95D,
+	0xF95E,
+	0xF95F,
+	0xF960,
+	0xF961,
+	0xF962,
+	0xF963,
+	0xF964,
+	0xF965,
+	0xF966,
+	0xF967,
+	0xF968,
+	0xF969,
+	0xF96A,
+	0xF96B,
+	0xF96C,
+	0xF96D,
+	0xF96E,
+	0xF96F,
+	0xF970,
+	0xF971,
+	0xF972,
+	0xF973,
+	0xF974,
+	0xF975,
+	0xF976,
+	0xF977,
+	0xF978,
+	0xF979,
+	0xF97A,
+	0xF97B,
+	0xF97C,
+	0xF97D,
+	0xF97E,
+	0xF97F,
+	0xF980,
+	0xF981,
+	0xF982,
+	0xF983,
+	0xF984,
+	0xF985,
+	0xF986,
+	0xF987,
+	0xF988,
+	0xF989,
+	0xF98A,
+	0xF98B,
+	0xF98C,
+	0xF98D,
+	0xF98E,
+	0xF98F,
+	0xF990,
+	0xF991,
+	0xF992,
+	0xF993,
+	0xF994,
+	0xF995,
+	0xF996,
+	0xF997,
+	0xF998,
+	0xF999,
+	0xF99A,
+	0xF99B,
+	0xF99C,
+	0xF99D,
+	0xF99E,
+	0xF99F,
+	0xF9A0,
+	0xF9A1,
+	0xF9A2,
+	0xF9A3,
+	0xF9A4,
+	0xF9A5,
+	0xF9A6,
+	0xF9A7,
+	0xF9A8,
+	0xF9A9,
+	0xF9AA,
+	0xF9AB,
+	0xF9AC,
+	0xF9AD,
+	0xF9AE,
+	0xF9AF,
+	0xF9B0,
+	0xF9B1,
+	0xF9B2,
+	0xF9B3,
+	0xF9B4,
+	0xF9B5,
+	0xF9B6,
+	0xF9B7,
+	0xF9B8,
+	0xF9B9,
+	0xF9BA,
+	0xF9BB,
+	0xF9BC,
+	0xF9BD,
+	0xF9BE,
+	0xF9BF,
+	0xF9C0,
+	0xF9C1,
+	0xF9C2,
+	0xF9C3,
+	0xF9C4,
+	0xF9C5,
+	0xF9C6,
+	0xF9C7,
+	0xF9C8,
+	0xF9C9,
+	0xF9CA,
+	0xF9CB,
+	0xF9CC,
+	0xF9CD,
+	0xF9CE,
+	0xF9CF,
+	0xF9D0,
+	0xF9D1,
+	0xF9D2,
+	0xF9D3,
+	0xF9D4,
+	0xF9D5,
+	0xF9D6,
+	0xF9D7,
+	0xF9D8,
+	0xF9D9,
+	0xF9DA,
+	0xF9DB,
+	0xF9DC,
+	0xF9DD,
+	0xF9DE,
+	0xF9DF,
+	0xF9E0,
+	0xF9E1,
+	0xF9E2,
+	0xF9E3,
+	0xF9E4,
+	0xF9E5,
+	0xF9E6,
+	0xF9E7,
+	0xF9E8,
+	0xF9E9,
+	0xF9EA,
+	0xF9EB,
+	0xF9EC,
+	0xF9ED,
+	0xF9EE,
+	0xF9EF,
+	0xF9F0,
+	0xF9F1,
+	0xF9F2,
+	0xF9F3,
+	0xF9F4,
+	0xF9F5,
+	0xF9F6,
+	0xF9F7,
+	0xF9F8,
+	0xF9F9,
+	0xF9FA,
+	0xF9FB,
+	0xF9FC,
+	0xF9FD,
+	0xF9FE,
+	0xF9FF,
+	0xFA00,
+	0xFA01,
+	0xFA02,
+	0xFA03,
+	0xFA04,
+	0xFA05,
+	0xFA06,
+	0xFA07,
+	0xFA08,
+	0xFA09,
+	0xFA0A,
+	0xFA0B,
+	0xFA0C,
+	0xFA0D,
+	0xFA10,
+	0xFA12,
+	0xFA15,
+	0xFA16,
+	0xFA17,
+	0xFA18,
+	0xFA19,
+	0xFA1A,
+	0xFA1B,
+	0xFA1C,
+	0xFA1D,
+	0xFA1E,
+	0xFA20,
+	0xFA22,
+	0xFA25,
+	0xFA26,
+	0xFA2A,
+	0xFA2B,
+	0xFA2C,
+	0xFA2D,
+	0xFA2E,
+	0xFA2F,
+	0xFA30,
+	0xFA31,
+	0xFA32,
+	0xFA33,
+	0xFA34,
+	0xFA35,
+	0xFA36,
+	0xFA37,
+	0xFA38,
+	0xFA39,
+	0xFA3A,
+	0xFA3B,
+	0xFA3C,
+	0xFA3D,
+	0xFA3E,
+	0xFA3F,
+	0xFA40,
+	0xFA41,
+	0xFA42,
+	0xFA43,
+	0xFA44,
+	0xFA45,
+	0xFA46,
+	0xFA47,
+	0xFA48,
+	0xFA49,
+	0xFA4A,
+	0xFA4B,
+	0xFA4C,
+	0xFA4D,
+	0xFA4E,
+	0xFA4F,
+	0xFA50,
+	0xFA51,
+	0xFA52,
+	0xFA53,
+	0xFA54,
+	0xFA55,
+	0xFA56,
+	0xFA57,
+	0xFA58,
+	0xFA59,
+	0xFA5A,
+	0xFA5B,
+	0xFA5C,
+	0xFA5D,
+	0xFA5E,
+	0xFA5F,
+	0xFA60,
+	0xFA61,
+	0xFA62,
+	0xFA63,
+	0xFA64,
+	0xFA65,
+	0xFA66,
+	0xFA67,
+	0xFA68,
+	0xFA69,
+	0xFA6A,
+	0xFA6B,
+	0xFA6C,
+	0xFA6D,
+	0xFA70,
+	0xFA71,
+	0xFA72,
+	0xFA73,
+	0xFA74,
+	0xFA75,
+	0xFA76,
+	0xFA77,
+	0xFA78,
+	0xFA79,
+	0xFA7A,
+	0xFA7B,
+	0xFA7C,
+	0xFA7D,
+	0xFA7E,
+	0xFA7F,
+	0xFA80,
+	0xFA81,
+	0xFA82,
+	0xFA83,
+	0xFA84,
+	0xFA85,
+	0xFA86,
+	0xFA87,
+	0xFA88,
+	0xFA89,
+	0xFA8A,
+	0xFA8B,
+	0xFA8C,
+	0xFA8D,
+	0xFA8E,
+	0xFA8F,
+	0xFA90,
+	0xFA91,
+	0xFA92,
+	0xFA93,
+	0xFA94,
+	0xFA95,
+	0xFA96,
+	0xFA97,
+	0xFA98,
+	0xFA99,
+	0xFA9A,
+	0xFA9B,
+	0xFA9C,
+	0xFA9D,
+	0xFA9E,
+	0xFA9F,
+	0xFAA0,
+	0xFAA1,
+	0xFAA2,
+	0xFAA3,
+	0xFAA4,
+	0xFAA5,
+	0xFAA6,
+	0xFAA7,
+	0xFAA8,
+	0xFAA9,
+	0xFAAA,
+	0xFAAB,
+	0xFAAC,
+	0xFAAD,
+	0xFAAE,
+	0xFAAF,
+	0xFAB0,
+	0xFAB1,
+	0xFAB2,
+	0xFAB3,
+	0xFAB4,
+	0xFAB5,
+	0xFAB6,
+	0xFAB7,
+	0xFAB8,
+	0xFAB9,
+	0xFABA,
+	0xFABB,
+	0xFABC,
+	0xFABD,
+	0xFABE,
+	0xFABF,
+	0xFAC0,
+	0xFAC1,
+	0xFAC2,
+	0xFAC3,
+	0xFAC4,
+	0xFAC5,
+	0xFAC6,
+	0xFAC7,
+	0xFAC8,
+	0xFAC9,
+	0xFACA,
+	0xFACB,
+	0xFACC,
+	0xFACD,
+	0xFACE,
+	0xFACF,
+	0xFAD0,
+	0xFAD1,
+	0xFAD2,
+	0xFAD3,
+	0xFAD4,
+	0xFAD5,
+	0xFAD6,
+	0xFAD7,
+	0xFAD8,
+	0xFAD9,
+	0xFB00,
+	0xFB01,
+	0xFB02,
+	0xFB03,
+	0xFB04,
+	0xFB05,
+	0xFB06,
+	0xFB13,
+	0xFB14,
+	0xFB15,
+	0xFB16,
+	0xFB17,
+	0xFB1D,
+	0xFB1F,
+	0xFB20,
+	0xFB21,
+	0xFB22,
+	0xFB23,
+	0xFB24,
+	0xFB25,
+	0xFB26,
+	0xFB27,
+	0xFB28,
+	0xFB29,
+	0xFB2A,
+	0xFB2B,
+	0xFB2C,
+	0xFB2D,
+	0xFB2E,
+	0xFB2F,
+	0xFB30,
+	0xFB31,
+	0xFB32,
+	0xFB33,
+	0xFB34,
+	0xFB35,
+	0xFB36,
+	0xFB38,
+	0xFB39,
+	0xFB3A,
+	0xFB3B,
+	0xFB3C,
+	0xFB3E,
+	0xFB40,
+	0xFB41,
+	0xFB43,
+	0xFB44,
+	0xFB46,
+	0xFB47,
+	0xFB48,
+	0xFB49,
+	0xFB4A,
+	0xFB4B,
+	0xFB4C,
+	0xFB4D,
+	0xFB4E,
+	0xFB4F,
+	0xFB50,
+	0xFB51,
+	0xFB52,
+	0xFB53,
+	0xFB54,
+	0xFB55,
+	0xFB56,
+	0xFB57,
+	0xFB58,
+	0xFB59,
+	0xFB5A,
+	0xFB5B,
+	0xFB5C,
+	0xFB5D,
+	0xFB5E,
+	0xFB5F,
+	0xFB60,
+	0xFB61,
+	0xFB62,
+	0xFB63,
+	0xFB64,
+	0xFB65,
+	0xFB66,
+	0xFB67,
+	0xFB68,
+	0xFB69,
+	0xFB6A,
+	0xFB6B,
+	0xFB6C,
+	0xFB6D,
+	0xFB6E,
+	0xFB6F,
+	0xFB70,
+	0xFB71,
+	0xFB72,
+	0xFB73,
+	0xFB74,
+	0xFB75,
+	0xFB76,
+	0xFB77,
+	0xFB78,
+	0xFB79,
+	0xFB7A,
+	0xFB7B,
+	0xFB7C,
+	0xFB7D,
+	0xFB7E,
+	0xFB7F,
+	0xFB80,
+	0xFB81,
+	0xFB82,
+	0xFB83,
+	0xFB84,
+	0xFB85,
+	0xFB86,
+	0xFB87,
+	0xFB88,
+	0xFB89,
+	0xFB8A,
+	0xFB8B,
+	0xFB8C,
+	0xFB8D,
+	0xFB8E,
+	0xFB8F,
+	0xFB90,
+	0xFB91,
+	0xFB92,
+	0xFB93,
+	0xFB94,
+	0xFB95,
+	0xFB96,
+	0xFB97,
+	0xFB98,
+	0xFB99,
+	0xFB9A,
+	0xFB9B,
+	0xFB9C,
+	0xFB9D,
+	0xFB9E,
+	0xFB9F,
+	0xFBA0,
+	0xFBA1,
+	0xFBA2,
+	0xFBA3,
+	0xFBA4,
+	0xFBA5,
+	0xFBA6,
+	0xFBA7,
+	0xFBA8,
+	0xFBA9,
+	0xFBAA,
+	0xFBAB,
+	0xFBAC,
+	0xFBAD,
+	0xFBAE,
+	0xFBAF,
+	0xFBB0,
+	0xFBB1,
+	0xFBD3,
+	0xFBD4,
+	0xFBD5,
+	0xFBD6,
+	0xFBD7,
+	0xFBD8,
+	0xFBD9,
+	0xFBDA,
+	0xFBDB,
+	0xFBDC,
+	0xFBDD,
+	0xFBDE,
+	0xFBDF,
+	0xFBE0,
+	0xFBE1,
+	0xFBE2,
+	0xFBE3,
+	0xFBE4,
+	0xFBE5,
+	0xFBE6,
+	0xFBE7,
+	0xFBE8,
+	0xFBE9,
+	0xFBEA,
+	0xFBEB,
+	0xFBEC,
+	0xFBED,
+	0xFBEE,
+	0xFBEF,
+	0xFBF0,
+	0xFBF1,
+	0xFBF2,
+	0xFBF3,
+	0xFBF4,
+	0xFBF5,
+	0xFBF6,
+	0xFBF7,
+	0xFBF8,
+	0xFBF9,
+	0xFBFA,
+	0xFBFB,
+	0xFBFC,
+	0xFBFD,
+	0xFBFE,
+	0xFBFF,
+	0xFC00,
+	0xFC01,
+	0xFC02,
+	0xFC03,
+	0xFC04,
+	0xFC05,
+	0xFC06,
+	0xFC07,
+	0xFC08,
+	0xFC09,
+	0xFC0A,
+	0xFC0B,
+	0xFC0C,
+	0xFC0D,
+	0xFC0E,
+	0xFC0F,
+	0xFC10,
+	0xFC11,
+	0xFC12,
+	0xFC13,
+	0xFC14,
+	0xFC15,
+	0xFC16,
+	0xFC17,
+	0xFC18,
+	0xFC19,
+	0xFC1A,
+	0xFC1B,
+	0xFC1C,
+	0xFC1D,
+	0xFC1E,
+	0xFC1F,
+	0xFC20,
+	0xFC21,
+	0xFC22,
+	0xFC23,
+	0xFC24,
+	0xFC25,
+	0xFC26,
+	0xFC27,
+	0xFC28,
+	0xFC29,
+	0xFC2A,
+	0xFC2B,
+	0xFC2C,
+	0xFC2D,
+	0xFC2E,
+	0xFC2F,
+	0xFC30,
+	0xFC31,
+	0xFC32,
+	0xFC33,
+	0xFC34,
+	0xFC35,
+	0xFC36,
+	0xFC37,
+	0xFC38,
+	0xFC39,
+	0xFC3A,
+	0xFC3B,
+	0xFC3C,
+	0xFC3D,
+	0xFC3E,
+	0xFC3F,
+	0xFC40,
+	0xFC41,
+	0xFC42,
+	0xFC43,
+	0xFC44,
+	0xFC45,
+	0xFC46,
+	0xFC47,
+	0xFC48,
+	0xFC49,
+	0xFC4A,
+	0xFC4B,
+	0xFC4C,
+	0xFC4D,
+	0xFC4E,
+	0xFC4F,
+	0xFC50,
+	0xFC51,
+	0xFC52,
+	0xFC53,
+	0xFC54,
+	0xFC55,
+	0xFC56,
+	0xFC57,
+	0xFC58,
+	0xFC59,
+	0xFC5A,
+	0xFC5B,
+	0xFC5C,
+	0xFC5D,
+	0xFC5E,
+	0xFC5F,
+	0xFC60,
+	0xFC61,
+	0xFC62,
+	0xFC63,
+	0xFC64,
+	0xFC65,
+	0xFC66,
+	0xFC67,
+	0xFC68,
+	0xFC69,
+	0xFC6A,
+	0xFC6B,
+	0xFC6C,
+	0xFC6D,
+	0xFC6E,
+	0xFC6F,
+	0xFC70,
+	0xFC71,
+	0xFC72,
+	0xFC73,
+	0xFC74,
+	0xFC75,
+	0xFC76,
+	0xFC77,
+	0xFC78,
+	0xFC79,
+	0xFC7A,
+	0xFC7B,
+	0xFC7C,
+	0xFC7D,
+	0xFC7E,
+	0xFC7F,
+	0xFC80,
+	0xFC81,
+	0xFC82,
+	0xFC83,
+	0xFC84,
+	0xFC85,
+	0xFC86,
+	0xFC87,
+	0xFC88,
+	0xFC89,
+	0xFC8A,
+	0xFC8B,
+	0xFC8C,
+	0xFC8D,
+	0xFC8E,
+	0xFC8F,
+	0xFC90,
+	0xFC91,
+	0xFC92,
+	0xFC93,
+	0xFC94,
+	0xFC95,
+	0xFC96,
+	0xFC97,
+	0xFC98,
+	0xFC99,
+	0xFC9A,
+	0xFC9B,
+	0xFC9C,
+	0xFC9D,
+	0xFC9E,
+	0xFC9F,
+	0xFCA0,
+	0xFCA1,
+	0xFCA2,
+	0xFCA3,
+	0xFCA4,
+	0xFCA5,
+	0xFCA6,
+	0xFCA7,
+	0xFCA8,
+	0xFCA9,
+	0xFCAA,
+	0xFCAB,
+	0xFCAC,
+	0xFCAD,
+	0xFCAE,
+	0xFCAF,
+	0xFCB0,
+	0xFCB1,
+	0xFCB2,
+	0xFCB3,
+	0xFCB4,
+	0xFCB5,
+	0xFCB6,
+	0xFCB7,
+	0xFCB8,
+	0xFCB9,
+	0xFCBA,
+	0xFCBB,
+	0xFCBC,
+	0xFCBD,
+	0xFCBE,
+	0xFCBF,
+	0xFCC0,
+	0xFCC1,
+	0xFCC2,
+	0xFCC3,
+	0xFCC4,
+	0xFCC5,
+	0xFCC6,
+	0xFCC7,
+	0xFCC8,
+	0xFCC9,
+	0xFCCA,
+	0xFCCB,
+	0xFCCC,
+	0xFCCD,
+	0xFCCE,
+	0xFCCF,
+	0xFCD0,
+	0xFCD1,
+	0xFCD2,
+	0xFCD3,
+	0xFCD4,
+	0xFCD5,
+	0xFCD6,
+	0xFCD7,
+	0xFCD8,
+	0xFCD9,
+	0xFCDA,
+	0xFCDB,
+	0xFCDC,
+	0xFCDD,
+	0xFCDE,
+	0xFCDF,
+	0xFCE0,
+	0xFCE1,
+	0xFCE2,
+	0xFCE3,
+	0xFCE4,
+	0xFCE5,
+	0xFCE6,
+	0xFCE7,
+	0xFCE8,
+	0xFCE9,
+	0xFCEA,
+	0xFCEB,
+	0xFCEC,
+	0xFCED,
+	0xFCEE,
+	0xFCEF,
+	0xFCF0,
+	0xFCF1,
+	0xFCF2,
+	0xFCF3,
+	0xFCF4,
+	0xFCF5,
+	0xFCF6,
+	0xFCF7,
+	0xFCF8,
+	0xFCF9,
+	0xFCFA,
+	0xFCFB,
+	0xFCFC,
+	0xFCFD,
+	0xFCFE,
+	0xFCFF,
+	0xFD00,
+	0xFD01,
+	0xFD02,
+	0xFD03,
+	0xFD04,
+	0xFD05,
+	0xFD06,
+	0xFD07,
+	0xFD08,
+	0xFD09,
+	0xFD0A,
+	0xFD0B,
+	0xFD0C,
+	0xFD0D,
+	0xFD0E,
+	0xFD0F,
+	0xFD10,
+	0xFD11,
+	0xFD12,
+	0xFD13,
+	0xFD14,
+	0xFD15,
+	0xFD16,
+	0xFD17,
+	0xFD18,
+	0xFD19,
+	0xFD1A,
+	0xFD1B,
+	0xFD1C,
+	0xFD1D,
+	0xFD1E,
+	0xFD1F,
+	0xFD20,
+	0xFD21,
+	0xFD22,
+	0xFD23,
+	0xFD24,
+	0xFD25,
+	0xFD26,
+	0xFD27,
+	0xFD28,
+	0xFD29,
+	0xFD2A,
+	0xFD2B,
+	0xFD2C,
+	0xFD2D,
+	0xFD2E,
+	0xFD2F,
+	0xFD30,
+	0xFD31,
+	0xFD32,
+	0xFD33,
+	0xFD34,
+	0xFD35,
+	0xFD36,
+	0xFD37,
+	0xFD38,
+	0xFD39,
+	0xFD3A,
+	0xFD3B,
+	0xFD3C,
+	0xFD3D,
+	0xFD50,
+	0xFD51,
+	0xFD52,
+	0xFD53,
+	0xFD54,
+	0xFD55,
+	0xFD56,
+	0xFD57,
+	0xFD58,
+	0xFD59,
+	0xFD5A,
+	0xFD5B,
+	0xFD5C,
+	0xFD5D,
+	0xFD5E,
+	0xFD5F,
+	0xFD60,
+	0xFD61,
+	0xFD62,
+	0xFD63,
+	0xFD64,
+	0xFD65,
+	0xFD66,
+	0xFD67,
+	0xFD68,
+	0xFD69,
+	0xFD6A,
+	0xFD6B,
+	0xFD6C,
+	0xFD6D,
+	0xFD6E,
+	0xFD6F,
+	0xFD70,
+	0xFD71,
+	0xFD72,
+	0xFD73,
+	0xFD74,
+	0xFD75,
+	0xFD76,
+	0xFD77,
+	0xFD78,
+	0xFD79,
+	0xFD7A,
+	0xFD7B,
+	0xFD7C,
+	0xFD7D,
+	0xFD7E,
+	0xFD7F,
+	0xFD80,
+	0xFD81,
+	0xFD82,
+	0xFD83,
+	0xFD84,
+	0xFD85,
+	0xFD86,
+	0xFD87,
+	0xFD88,
+	0xFD89,
+	0xFD8A,
+	0xFD8B,
+	0xFD8C,
+	0xFD8D,
+	0xFD8E,
+	0xFD8F,
+	0xFD92,
+	0xFD93,
+	0xFD94,
+	0xFD95,
+	0xFD96,
+	0xFD97,
+	0xFD98,
+	0xFD99,
+	0xFD9A,
+	0xFD9B,
+	0xFD9C,
+	0xFD9D,
+	0xFD9E,
+	0xFD9F,
+	0xFDA0,
+	0xFDA1,
+	0xFDA2,
+	0xFDA3,
+	0xFDA4,
+	0xFDA5,
+	0xFDA6,
+	0xFDA7,
+	0xFDA8,
+	0xFDA9,
+	0xFDAA,
+	0xFDAB,
+	0xFDAC,
+	0xFDAD,
+	0xFDAE,
+	0xFDAF,
+	0xFDB0,
+	0xFDB1,
+	0xFDB2,
+	0xFDB3,
+	0xFDB4,
+	0xFDB5,
+	0xFDB6,
+	0xFDB7,
+	0xFDB8,
+	0xFDB9,
+	0xFDBA,
+	0xFDBB,
+	0xFDBC,
+	0xFDBD,
+	0xFDBE,
+	0xFDBF,
+	0xFDC0,
+	0xFDC1,
+	0xFDC2,
+	0xFDC3,
+	0xFDC4,
+	0xFDC5,
+	0xFDC6,
+	0xFDC7,
+	0xFDF0,
+	0xFDF1,
+	0xFDF2,
+	0xFDF3,
+	0xFDF4,
+	0xFDF5,
+	0xFDF6,
+	0xFDF7,
+	0xFDF8,
+	0xFDF9,
+	0xFDFA,
+	0xFDFB,
+	0xFDFC,
+	0xFE10,
+	0xFE11,
+	0xFE12,
+	0xFE13,
+	0xFE14,
+	0xFE15,
+	0xFE16,
+	0xFE17,
+	0xFE18,
+	0xFE19,
+	0xFE30,
+	0xFE31,
+	0xFE32,
+	0xFE33,
+	0xFE34,
+	0xFE35,
+	0xFE36,
+	0xFE37,
+	0xFE38,
+	0xFE39,
+	0xFE3A,
+	0xFE3B,
+	0xFE3C,
+	0xFE3D,
+	0xFE3E,
+	0xFE3F,
+	0xFE40,
+	0xFE41,
+	0xFE42,
+	0xFE43,
+	0xFE44,
+	0xFE47,
+	0xFE48,
+	0xFE49,
+	0xFE4A,
+	0xFE4B,
+	0xFE4C,
+	0xFE4D,
+	0xFE4E,
+	0xFE4F,
+	0xFE50,
+	0xFE51,
+	0xFE52,
+	0xFE54,
+	0xFE55,
+	0xFE56,
+	0xFE57,
+	0xFE58,
+	0xFE59,
+	0xFE5A,
+	0xFE5B,
+	0xFE5C,
+	0xFE5D,
+	0xFE5E,
+	0xFE5F,
+	0xFE60,
+	0xFE61,
+	0xFE62,
+	0xFE63,
+	0xFE64,
+	0xFE65,
+	0xFE66,
+	0xFE68,
+	0xFE69,
+	0xFE6A,
+	0xFE6B,
+	0xFE70,
+	0xFE71,
+	0xFE72,
+	0xFE74,
+	0xFE76,
+	0xFE77,
+	0xFE78,
+	0xFE79,
+	0xFE7A,
+	0xFE7B,
+	0xFE7C,
+	0xFE7D,
+	0xFE7E,
+	0xFE7F,
+	0xFE80,
+	0xFE81,
+	0xFE82,
+	0xFE83,
+	0xFE84,
+	0xFE85,
+	0xFE86,
+	0xFE87,
+	0xFE88,
+	0xFE89,
+	0xFE8A,
+	0xFE8B,
+	0xFE8C,
+	0xFE8D,
+	0xFE8E,
+	0xFE8F,
+	0xFE90,
+	0xFE91,
+	0xFE92,
+	0xFE93,
+	0xFE94,
+	0xFE95,
+	0xFE96,
+	0xFE97,
+	0xFE98,
+	0xFE99,
+	0xFE9A,
+	0xFE9B,
+	0xFE9C,
+	0xFE9D,
+	0xFE9E,
+	0xFE9F,
+	0xFEA0,
+	0xFEA1,
+	0xFEA2,
+	0xFEA3,
+	0xFEA4,
+	0xFEA5,
+	0xFEA6,
+	0xFEA7,
+	0xFEA8,
+	0xFEA9,
+	0xFEAA,
+	0xFEAB,
+	0xFEAC,
+	0xFEAD,
+	0xFEAE,
+	0xFEAF,
+	0xFEB0,
+	0xFEB1,
+	0xFEB2,
+	0xFEB3,
+	0xFEB4,
+	0xFEB5,
+	0xFEB6,
+	0xFEB7,
+	0xFEB8,
+	0xFEB9,
+	0xFEBA,
+	0xFEBB,
+	0xFEBC,
+	0xFEBD,
+	0xFEBE,
+	0xFEBF,
+	0xFEC0,
+	0xFEC1,
+	0xFEC2,
+	0xFEC3,
+	0xFEC4,
+	0xFEC5,
+	0xFEC6,
+	0xFEC7,
+	0xFEC8,
+	0xFEC9,
+	0xFECA,
+	0xFECB,
+	0xFECC,
+	0xFECD,
+	0xFECE,
+	0xFECF,
+	0xFED0,
+	0xFED1,
+	0xFED2,
+	0xFED3,
+	0xFED4,
+	0xFED5,
+	0xFED6,
+	0xFED7,
+	0xFED8,
+	0xFED9,
+	0xFEDA,
+	0xFEDB,
+	0xFEDC,
+	0xFEDD,
+	0xFEDE,
+	0xFEDF,
+	0xFEE0,
+	0xFEE1,
+	0xFEE2,
+	0xFEE3,
+	0xFEE4,
+	0xFEE5,
+	0xFEE6,
+	0xFEE7,
+	0xFEE8,
+	0xFEE9,
+	0xFEEA,
+	0xFEEB,
+	0xFEEC,
+	0xFEED,
+	0xFEEE,
+	0xFEEF,
+	0xFEF0,
+	0xFEF1,
+	0xFEF2,
+	0xFEF3,
+	0xFEF4,
+	0xFEF5,
+	0xFEF6,
+	0xFEF7,
+	0xFEF8,
+	0xFEF9,
+	0xFEFA,
+	0xFEFB,
+	0xFEFC,
+	0xFF01,
+	0xFF02,
+	0xFF03,
+	0xFF04,
+	0xFF05,
+	0xFF06,
+	0xFF07,
+	0xFF08,
+	0xFF09,
+	0xFF0A,
+	0xFF0B,
+	0xFF0C,
+	0xFF0D,
+	0xFF0E,
+	0xFF0F,
+	0xFF10,
+	0xFF11,
+	0xFF12,
+	0xFF13,
+	0xFF14,
+	0xFF15,
+	0xFF16,
+	0xFF17,
+	0xFF18,
+	0xFF19,
+	0xFF1A,
+	0xFF1B,
+	0xFF1C,
+	0xFF1D,
+	0xFF1E,
+	0xFF1F,
+	0xFF20,
+	0xFF21,
+	0xFF22,
+	0xFF23,
+	0xFF24,
+	0xFF25,
+	0xFF26,
+	0xFF27,
+	0xFF28,
+	0xFF29,
+	0xFF2A,
+	0xFF2B,
+	0xFF2C,
+	0xFF2D,
+	0xFF2E,
+	0xFF2F,
+	0xFF30,
+	0xFF31,
+	0xFF32,
+	0xFF33,
+	0xFF34,
+	0xFF35,
+	0xFF36,
+	0xFF37,
+	0xFF38,
+	0xFF39,
+	0xFF3A,
+	0xFF3B,
+	0xFF3C,
+	0xFF3D,
+	0xFF3E,
+	0xFF3F,
+	0xFF40,
+	0xFF41,
+	0xFF42,
+	0xFF43,
+	0xFF44,
+	0xFF45,
+	0xFF46,
+	0xFF47,
+	0xFF48,
+	0xFF49,
+	0xFF4A,
+	0xFF4B,
+	0xFF4C,
+	0xFF4D,
+	0xFF4E,
+	0xFF4F,
+	0xFF50,
+	0xFF51,
+	0xFF52,
+	0xFF53,
+	0xFF54,
+	0xFF55,
+	0xFF56,
+	0xFF57,
+	0xFF58,
+	0xFF59,
+	0xFF5A,
+	0xFF5B,
+	0xFF5C,
+	0xFF5D,
+	0xFF5E,
+	0xFF5F,
+	0xFF60,
+	0xFF61,
+	0xFF62,
+	0xFF63,
+	0xFF64,
+	0xFF65,
+	0xFF66,
+	0xFF67,
+	0xFF68,
+	0xFF69,
+	0xFF6A,
+	0xFF6B,
+	0xFF6C,
+	0xFF6D,
+	0xFF6E,
+	0xFF6F,
+	0xFF70,
+	0xFF71,
+	0xFF72,
+	0xFF73,
+	0xFF74,
+	0xFF75,
+	0xFF76,
+	0xFF77,
+	0xFF78,
+	0xFF79,
+	0xFF7A,
+	0xFF7B,
+	0xFF7C,
+	0xFF7D,
+	0xFF7E,
+	0xFF7F,
+	0xFF80,
+	0xFF81,
+	0xFF82,
+	0xFF83,
+	0xFF84,
+	0xFF85,
+	0xFF86,
+	0xFF87,
+	0xFF88,
+	0xFF89,
+	0xFF8A,
+	0xFF8B,
+	0xFF8C,
+	0xFF8D,
+	0xFF8E,
+	0xFF8F,
+	0xFF90,
+	0xFF91,
+	0xFF92,
+	0xFF93,
+	0xFF94,
+	0xFF95,
+	0xFF96,
+	0xFF97,
+	0xFF98,
+	0xFF99,
+	0xFF9A,
+	0xFF9B,
+	0xFF9C,
+	0xFF9D,
+	0xFF9E,
+	0xFF9F,
+	0xFFA0,
+	0xFFA1,
+	0xFFA2,
+	0xFFA3,
+	0xFFA4,
+	0xFFA5,
+	0xFFA6,
+	0xFFA7,
+	0xFFA8,
+	0xFFA9,
+	0xFFAA,
+	0xFFAB,
+	0xFFAC,
+	0xFFAD,
+	0xFFAE,
+	0xFFAF,
+	0xFFB0,
+	0xFFB1,
+	0xFFB2,
+	0xFFB3,
+	0xFFB4,
+	0xFFB5,
+	0xFFB6,
+	0xFFB7,
+	0xFFB8,
+	0xFFB9,
+	0xFFBA,
+	0xFFBB,
+	0xFFBC,
+	0xFFBD,
+	0xFFBE,
+	0xFFC2,
+	0xFFC3,
+	0xFFC4,
+	0xFFC5,
+	0xFFC6,
+	0xFFC7,
+	0xFFCA,
+	0xFFCB,
+	0xFFCC,
+	0xFFCD,
+	0xFFCE,
+	0xFFCF,
+	0xFFD2,
+	0xFFD3,
+	0xFFD4,
+	0xFFD5,
+	0xFFD6,
+	0xFFD7,
+	0xFFDA,
+	0xFFDB,
+	0xFFDC,
+	0xFFE0,
+	0xFFE1,
+	0xFFE2,
+	0xFFE3,
+	0xFFE4,
+	0xFFE5,
+	0xFFE6,
+	0xFFE8,
+	0xFFE9,
+	0xFFEA,
+	0xFFEB,
+	0xFFEC,
+	0xFFED,
+	0xFFEE,
+	0x1D15E,
+	0x1D15F,
+	0x1D160,
+	0x1D161,
+	0x1D162,
+	0x1D163,
+	0x1D164,
+	0x1D1BB,
+	0x1D1BC,
+	0x1D1BD,
+	0x1D1BE,
+	0x1D1BF,
+	0x1D1C0,
+	0x1D400,
+	0x1D401,
+	0x1D402,
+	0x1D403,
+	0x1D404,
+	0x1D405,
+	0x1D406,
+	0x1D407,
+	0x1D408,
+	0x1D409,
+	0x1D40A,
+	0x1D40B,
+	0x1D40C,
+	0x1D40D,
+	0x1D40E,
+	0x1D40F,
+	0x1D410,
+	0x1D411,
+	0x1D412,
+	0x1D413,
+	0x1D414,
+	0x1D415,
+	0x1D416,
+	0x1D417,
+	0x1D418,
+	0x1D419,
+	0x1D41A,
+	0x1D41B,
+	0x1D41C,
+	0x1D41D,
+	0x1D41E,
+	0x1D41F,
+	0x1D420,
+	0x1D421,
+	0x1D422,
+	0x1D423,
+	0x1D424,
+	0x1D425,
+	0x1D426,
+	0x1D427,
+	0x1D428,
+	0x1D429,
+	0x1D42A,
+	0x1D42B,
+	0x1D42C,
+	0x1D42D,
+	0x1D42E,
+	0x1D42F,
+	0x1D430,
+	0x1D431,
+	0x1D432,
+	0x1D433,
+	0x1D434,
+	0x1D435,
+	0x1D436,
+	0x1D437,
+	0x1D438,
+	0x1D439,
+	0x1D43A,
+	0x1D43B,
+	0x1D43C,
+	0x1D43D,
+	0x1D43E,
+	0x1D43F,
+	0x1D440,
+	0x1D441,
+	0x1D442,
+	0x1D443,
+	0x1D444,
+	0x1D445,
+	0x1D446,
+	0x1D447,
+	0x1D448,
+	0x1D449,
+	0x1D44A,
+	0x1D44B,
+	0x1D44C,
+	0x1D44D,
+	0x1D44E,
+	0x1D44F,
+	0x1D450,
+	0x1D451,
+	0x1D452,
+	0x1D453,
+	0x1D454,
+	0x1D456,
+	0x1D457,
+	0x1D458,
+	0x1D459,
+	0x1D45A,
+	0x1D45B,
+	0x1D45C,
+	0x1D45D,
+	0x1D45E,
+	0x1D45F,
+	0x1D460,
+	0x1D461,
+	0x1D462,
+	0x1D463,
+	0x1D464,
+	0x1D465,
+	0x1D466,
+	0x1D467,
+	0x1D468,
+	0x1D469,
+	0x1D46A,
+	0x1D46B,
+	0x1D46C,
+	0x1D46D,
+	0x1D46E,
+	0x1D46F,
+	0x1D470,
+	0x1D471,
+	0x1D472,
+	0x1D473,
+	0x1D474,
+	0x1D475,
+	0x1D476,
+	0x1D477,
+	0x1D478,
+	0x1D479,
+	0x1D47A,
+	0x1D47B,
+	0x1D47C,
+	0x1D47D,
+	0x1D47E,
+	0x1D47F,
+	0x1D480,
+	0x1D481,
+	0x1D482,
+	0x1D483,
+	0x1D484,
+	0x1D485,
+	0x1D486,
+	0x1D487,
+	0x1D488,
+	0x1D489,
+	0x1D48A,
+	0x1D48B,
+	0x1D48C,
+	0x1D48D,
+	0x1D48E,
+	0x1D48F,
+	0x1D490,
+	0x1D491,
+	0x1D492,
+	0x1D493,
+	0x1D494,
+	0x1D495,
+	0x1D496,
+	0x1D497,
+	0x1D498,
+	0x1D499,
+	0x1D49A,
+	0x1D49B,
+	0x1D49C,
+	0x1D49E,
+	0x1D49F,
+	0x1D4A2,
+	0x1D4A5,
+	0x1D4A6,
+	0x1D4A9,
+	0x1D4AA,
+	0x1D4AB,
+	0x1D4AC,
+	0x1D4AE,
+	0x1D4AF,
+	0x1D4B0,
+	0x1D4B1,
+	0x1D4B2,
+	0x1D4B3,
+	0x1D4B4,
+	0x1D4B5,
+	0x1D4B6,
+	0x1D4B7,
+	0x1D4B8,
+	0x1D4B9,
+	0x1D4BB,
+	0x1D4BD,
+	0x1D4BE,
+	0x1D4BF,
+	0x1D4C0,
+	0x1D4C1,
+	0x1D4C2,
+	0x1D4C3,
+	0x1D4C5,
+	0x1D4C6,
+	0x1D4C7,
+	0x1D4C8,
+	0x1D4C9,
+	0x1D4CA,
+	0x1D4CB,
+	0x1D4CC,
+	0x1D4CD,
+	0x1D4CE,
+	0x1D4CF,
+	0x1D4D0,
+	0x1D4D1,
+	0x1D4D2,
+	0x1D4D3,
+	0x1D4D4,
+	0x1D4D5,
+	0x1D4D6,
+	0x1D4D7,
+	0x1D4D8,
+	0x1D4D9,
+	0x1D4DA,
+	0x1D4DB,
+	0x1D4DC,
+	0x1D4DD,
+	0x1D4DE,
+	0x1D4DF,
+	0x1D4E0,
+	0x1D4E1,
+	0x1D4E2,
+	0x1D4E3,
+	0x1D4E4,
+	0x1D4E5,
+	0x1D4E6,
+	0x1D4E7,
+	0x1D4E8,
+	0x1D4E9,
+	0x1D4EA,
+	0x1D4EB,
+	0x1D4EC,
+	0x1D4ED,
+	0x1D4EE,
+	0x1D4EF,
+	0x1D4F0,
+	0x1D4F1,
+	0x1D4F2,
+	0x1D4F3,
+	0x1D4F4,
+	0x1D4F5,
+	0x1D4F6,
+	0x1D4F7,
+	0x1D4F8,
+	0x1D4F9,
+	0x1D4FA,
+	0x1D4FB,
+	0x1D4FC,
+	0x1D4FD,
+	0x1D4FE,
+	0x1D4FF,
+	0x1D500,
+	0x1D501,
+	0x1D502,
+	0x1D503,
+	0x1D504,
+	0x1D505,
+	0x1D507,
+	0x1D508,
+	0x1D509,
+	0x1D50A,
+	0x1D50D,
+	0x1D50E,
+	0x1D50F,
+	0x1D510,
+	0x1D511,
+	0x1D512,
+	0x1D513,
+	0x1D514,
+	0x1D516,
+	0x1D517,
+	0x1D518,
+	0x1D519,
+	0x1D51A,
+	0x1D51B,
+	0x1D51C,
+	0x1D51E,
+	0x1D51F,
+	0x1D520,
+	0x1D521,
+	0x1D522,
+	0x1D523,
+	0x1D524,
+	0x1D525,
+	0x1D526,
+	0x1D527,
+	0x1D528,
+	0x1D529,
+	0x1D52A,
+	0x1D52B,
+	0x1D52C,
+	0x1D52D,
+	0x1D52E,
+	0x1D52F,
+	0x1D530,
+	0x1D531,
+	0x1D532,
+	0x1D533,
+	0x1D534,
+	0x1D535,
+	0x1D536,
+	0x1D537,
+	0x1D538,
+	0x1D539,
+	0x1D53B,
+	0x1D53C,
+	0x1D53D,
+	0x1D53E,
+	0x1D540,
+	0x1D541,
+	0x1D542,
+	0x1D543,
+	0x1D544,
+	0x1D546,
+	0x1D54A,
+	0x1D54B,
+	0x1D54C,
+	0x1D54D,
+	0x1D54E,
+	0x1D54F,
+	0x1D550,
+	0x1D552,
+	0x1D553,
+	0x1D554,
+	0x1D555,
+	0x1D556,
+	0x1D557,
+	0x1D558,
+	0x1D559,
+	0x1D55A,
+	0x1D55B,
+	0x1D55C,
+	0x1D55D,
+	0x1D55E,
+	0x1D55F,
+	0x1D560,
+	0x1D561,
+	0x1D562,
+	0x1D563,
+	0x1D564,
+	0x1D565,
+	0x1D566,
+	0x1D567,
+	0x1D568,
+	0x1D569,
+	0x1D56A,
+	0x1D56B,
+	0x1D56C,
+	0x1D56D,
+	0x1D56E,
+	0x1D56F,
+	0x1D570,
+	0x1D571,
+	0x1D572,
+	0x1D573,
+	0x1D574,
+	0x1D575,
+	0x1D576,
+	0x1D577,
+	0x1D578,
+	0x1D579,
+	0x1D57A,
+	0x1D57B,
+	0x1D57C,
+	0x1D57D,
+	0x1D57E,
+	0x1D57F,
+	0x1D580,
+	0x1D581,
+	0x1D582,
+	0x1D583,
+	0x1D584,
+	0x1D585,
+	0x1D586,
+	0x1D587,
+	0x1D588,
+	0x1D589,
+	0x1D58A,
+	0x1D58B,
+	0x1D58C,
+	0x1D58D,
+	0x1D58E,
+	0x1D58F,
+	0x1D590,
+	0x1D591,
+	0x1D592,
+	0x1D593,
+	0x1D594,
+	0x1D595,
+	0x1D596,
+	0x1D597,
+	0x1D598,
+	0x1D599,
+	0x1D59A,
+	0x1D59B,
+	0x1D59C,
+	0x1D59D,
+	0x1D59E,
+	0x1D59F,
+	0x1D5A0,
+	0x1D5A1,
+	0x1D5A2,
+	0x1D5A3,
+	0x1D5A4,
+	0x1D5A5,
+	0x1D5A6,
+	0x1D5A7,
+	0x1D5A8,
+	0x1D5A9,
+	0x1D5AA,
+	0x1D5AB,
+	0x1D5AC,
+	0x1D5AD,
+	0x1D5AE,
+	0x1D5AF,
+	0x1D5B0,
+	0x1D5B1,
+	0x1D5B2,
+	0x1D5B3,
+	0x1D5B4,
+	0x1D5B5,
+	0x1D5B6,
+	0x1D5B7,
+	0x1D5B8,
+	0x1D5B9,
+	0x1D5BA,
+	0x1D5BB,
+	0x1D5BC,
+	0x1D5BD,
+	0x1D5BE,
+	0x1D5BF,
+	0x1D5C0,
+	0x1D5C1,
+	0x1D5C2,
+	0x1D5C3,
+	0x1D5C4,
+	0x1D5C5,
+	0x1D5C6,
+	0x1D5C7,
+	0x1D5C8,
+	0x1D5C9,
+	0x1D5CA,
+	0x1D5CB,
+	0x1D5CC,
+	0x1D5CD,
+	0x1D5CE,
+	0x1D5CF,
+	0x1D5D0,
+	0x1D5D1,
+	0x1D5D2,
+	0x1D5D3,
+	0x1D5D4,
+	0x1D5D5,
+	0x1D5D6,
+	0x1D5D7,
+	0x1D5D8,
+	0x1D5D9,
+	0x1D5DA,
+	0x1D5DB,
+	0x1D5DC,
+	0x1D5DD,
+	0x1D5DE,
+	0x1D5DF,
+	0x1D5E0,
+	0x1D5E1,
+	0x1D5E2,
+	0x1D5E3,
+	0x1D5E4,
+	0x1D5E5,
+	0x1D5E6,
+	0x1D5E7,
+	0x1D5E8,
+	0x1D5E9,
+	0x1D5EA,
+	0x1D5EB,
+	0x1D5EC,
+	0x1D5ED,
+	0x1D5EE,
+	0x1D5EF,
+	0x1D5F0,
+	0x1D5F1,
+	0x1D5F2,
+	0x1D5F3,
+	0x1D5F4,
+	0x1D5F5,
+	0x1D5F6,
+	0x1D5F7,
+	0x1D5F8,
+	0x1D5F9,
+	0x1D5FA,
+	0x1D5FB,
+	0x1D5FC,
+	0x1D5FD,
+	0x1D5FE,
+	0x1D5FF,
+	0x1D600,
+	0x1D601,
+	0x1D602,
+	0x1D603,
+	0x1D604,
+	0x1D605,
+	0x1D606,
+	0x1D607,
+	0x1D608,
+	0x1D609,
+	0x1D60A,
+	0x1D60B,
+	0x1D60C,
+	0x1D60D,
+	0x1D60E,
+	0x1D60F,
+	0x1D610,
+	0x1D611,
+	0x1D612,
+	0x1D613,
+	0x1D614,
+	0x1D615,
+	0x1D616,
+	0x1D617,
+	0x1D618,
+	0x1D619,
+	0x1D61A,
+	0x1D61B,
+	0x1D61C,
+	0x1D61D,
+	0x1D61E,
+	0x1D61F,
+	0x1D620,
+	0x1D621,
+	0x1D622,
+	0x1D623,
+	0x1D624,
+	0x1D625,
+	0x1D626,
+	0x1D627,
+	0x1D628,
+	0x1D629,
+	0x1D62A,
+	0x1D62B,
+	0x1D62C,
+	0x1D62D,
+	0x1D62E,
+	0x1D62F,
+	0x1D630,
+	0x1D631,
+	0x1D632,
+	0x1D633,
+	0x1D634,
+	0x1D635,
+	0x1D636,
+	0x1D637,
+	0x1D638,
+	0x1D639,
+	0x1D63A,
+	0x1D63B,
+	0x1D63C,
+	0x1D63D,
+	0x1D63E,
+	0x1D63F,
+	0x1D640,
+	0x1D641,
+	0x1D642,
+	0x1D643,
+	0x1D644,
+	0x1D645,
+	0x1D646,
+	0x1D647,
+	0x1D648,
+	0x1D649,
+	0x1D64A,
+	0x1D64B,
+	0x1D64C,
+	0x1D64D,
+	0x1D64E,
+	0x1D64F,
+	0x1D650,
+	0x1D651,
+	0x1D652,
+	0x1D653,
+	0x1D654,
+	0x1D655,
+	0x1D656,
+	0x1D657,
+	0x1D658,
+	0x1D659,
+	0x1D65A,
+	0x1D65B,
+	0x1D65C,
+	0x1D65D,
+	0x1D65E,
+	0x1D65F,
+	0x1D660,
+	0x1D661,
+	0x1D662,
+	0x1D663,
+	0x1D664,
+	0x1D665,
+	0x1D666,
+	0x1D667,
+	0x1D668,
+	0x1D669,
+	0x1D66A,
+	0x1D66B,
+	0x1D66C,
+	0x1D66D,
+	0x1D66E,
+	0x1D66F,
+	0x1D670,
+	0x1D671,
+	0x1D672,
+	0x1D673,
+	0x1D674,
+	0x1D675,
+	0x1D676,
+	0x1D677,
+	0x1D678,
+	0x1D679,
+	0x1D67A,
+	0x1D67B,
+	0x1D67C,
+	0x1D67D,
+	0x1D67E,
+	0x1D67F,
+	0x1D680,
+	0x1D681,
+	0x1D682,
+	0x1D683,
+	0x1D684,
+	0x1D685,
+	0x1D686,
+	0x1D687,
+	0x1D688,
+	0x1D689,
+	0x1D68A,
+	0x1D68B,
+	0x1D68C,
+	0x1D68D,
+	0x1D68E,
+	0x1D68F,
+	0x1D690,
+	0x1D691,
+	0x1D692,
+	0x1D693,
+	0x1D694,
+	0x1D695,
+	0x1D696,
+	0x1D697,
+	0x1D698,
+	0x1D699,
+	0x1D69A,
+	0x1D69B,
+	0x1D69C,
+	0x1D69D,
+	0x1D69E,
+	0x1D69F,
+	0x1D6A0,
+	0x1D6A1,
+	0x1D6A2,
+	0x1D6A3,
+	0x1D6A4,
+	0x1D6A5,
+	0x1D6A8,
+	0x1D6A9,
+	0x1D6AA,
+	0x1D6AB,
+	0x1D6AC,
+	0x1D6AD,
+	0x1D6AE,
+	0x1D6AF,
+	0x1D6B0,
+	0x1D6B1,
+	0x1D6B2,
+	0x1D6B3,
+	0x1D6B4,
+	0x1D6B5,
+	0x1D6B6,
+	0x1D6B7,
+	0x1D6B8,
+	0x1D6B9,
+	0x1D6BA,
+	0x1D6BB,
+	0x1D6BC,
+	0x1D6BD,
+	0x1D6BE,
+	0x1D6BF,
+	0x1D6C0,
+	0x1D6C1,
+	0x1D6C2,
+	0x1D6C3,
+	0x1D6C4,
+	0x1D6C5,
+	0x1D6C6,
+	0x1D6C7,
+	0x1D6C8,
+	0x1D6C9,
+	0x1D6CA,
+	0x1D6CB,
+	0x1D6CC,
+	0x1D6CD,
+	0x1D6CE,
+	0x1D6CF,
+	0x1D6D0,
+	0x1D6D1,
+	0x1D6D2,
+	0x1D6D3,
+	0x1D6D4,
+	0x1D6D5,
+	0x1D6D6,
+	0x1D6D7,
+	0x1D6D8,
+	0x1D6D9,
+	0x1D6DA,
+	0x1D6DB,
+	0x1D6DC,
+	0x1D6DD,
+	0x1D6DE,
+	0x1D6DF,
+	0x1D6E0,
+	0x1D6E1,
+	0x1D6E2,
+	0x1D6E3,
+	0x1D6E4,
+	0x1D6E5,
+	0x1D6E6,
+	0x1D6E7,
+	0x1D6E8,
+	0x1D6E9,
+	0x1D6EA,
+	0x1D6EB,
+	0x1D6EC,
+	0x1D6ED,
+	0x1D6EE,
+	0x1D6EF,
+	0x1D6F0,
+	0x1D6F1,
+	0x1D6F2,
+	0x1D6F3,
+	0x1D6F4,
+	0x1D6F5,
+	0x1D6F6,
+	0x1D6F7,
+	0x1D6F8,
+	0x1D6F9,
+	0x1D6FA,
+	0x1D6FB,
+	0x1D6FC,
+	0x1D6FD,
+	0x1D6FE,
+	0x1D6FF,
+	0x1D700,
+	0x1D701,
+	0x1D702,
+	0x1D703,
+	0x1D704,
+	0x1D705,
+	0x1D706,
+	0x1D707,
+	0x1D708,
+	0x1D709,
+	0x1D70A,
+	0x1D70B,
+	0x1D70C,
+	0x1D70D,
+	0x1D70E,
+	0x1D70F,
+	0x1D710,
+	0x1D711,
+	0x1D712,
+	0x1D713,
+	0x1D714,
+	0x1D715,
+	0x1D716,
+	0x1D717,
+	0x1D718,
+	0x1D719,
+	0x1D71A,
+	0x1D71B,
+	0x1D71C,
+	0x1D71D,
+	0x1D71E,
+	0x1D71F,
+	0x1D720,
+	0x1D721,
+	0x1D722,
+	0x1D723,
+	0x1D724,
+	0x1D725,
+	0x1D726,
+	0x1D727,
+	0x1D728,
+	0x1D729,
+	0x1D72A,
+	0x1D72B,
+	0x1D72C,
+	0x1D72D,
+	0x1D72E,
+	0x1D72F,
+	0x1D730,
+	0x1D731,
+	0x1D732,
+	0x1D733,
+	0x1D734,
+	0x1D735,
+	0x1D736,
+	0x1D737,
+	0x1D738,
+	0x1D739,
+	0x1D73A,
+	0x1D73B,
+	0x1D73C,
+	0x1D73D,
+	0x1D73E,
+	0x1D73F,
+	0x1D740,
+	0x1D741,
+	0x1D742,
+	0x1D743,
+	0x1D744,
+	0x1D745,
+	0x1D746,
+	0x1D747,
+	0x1D748,
+	0x1D749,
+	0x1D74A,
+	0x1D74B,
+	0x1D74C,
+	0x1D74D,
+	0x1D74E,
+	0x1D74F,
+	0x1D750,
+	0x1D751,
+	0x1D752,
+	0x1D753,
+	0x1D754,
+	0x1D755,
+	0x1D756,
+	0x1D757,
+	0x1D758,
+	0x1D759,
+	0x1D75A,
+	0x1D75B,
+	0x1D75C,
+	0x1D75D,
+	0x1D75E,
+	0x1D75F,
+	0x1D760,
+	0x1D761,
+	0x1D762,
+	0x1D763,
+	0x1D764,
+	0x1D765,
+	0x1D766,
+	0x1D767,
+	0x1D768,
+	0x1D769,
+	0x1D76A,
+	0x1D76B,
+	0x1D76C,
+	0x1D76D,
+	0x1D76E,
+	0x1D76F,
+	0x1D770,
+	0x1D771,
+	0x1D772,
+	0x1D773,
+	0x1D774,
+	0x1D775,
+	0x1D776,
+	0x1D777,
+	0x1D778,
+	0x1D779,
+	0x1D77A,
+	0x1D77B,
+	0x1D77C,
+	0x1D77D,
+	0x1D77E,
+	0x1D77F,
+	0x1D780,
+	0x1D781,
+	0x1D782,
+	0x1D783,
+	0x1D784,
+	0x1D785,
+	0x1D786,
+	0x1D787,
+	0x1D788,
+	0x1D789,
+	0x1D78A,
+	0x1D78B,
+	0x1D78C,
+	0x1D78D,
+	0x1D78E,
+	0x1D78F,
+	0x1D790,
+	0x1D791,
+	0x1D792,
+	0x1D793,
+	0x1D794,
+	0x1D795,
+	0x1D796,
+	0x1D797,
+	0x1D798,
+	0x1D799,
+	0x1D79A,
+	0x1D79B,
+	0x1D79C,
+	0x1D79D,
+	0x1D79E,
+	0x1D79F,
+	0x1D7A0,
+	0x1D7A1,
+	0x1D7A2,
+	0x1D7A3,
+	0x1D7A4,
+	0x1D7A5,
+	0x1D7A6,
+	0x1D7A7,
+	0x1D7A8,
+	0x1D7A9,
+	0x1D7AA,
+	0x1D7AB,
+	0x1D7AC,
+	0x1D7AD,
+	0x1D7AE,
+	0x1D7AF,
+	0x1D7B0,
+	0x1D7B1,
+	0x1D7B2,
+	0x1D7B3,
+	0x1D7B4,
+	0x1D7B5,
+	0x1D7B6,
+	0x1D7B7,
+	0x1D7B8,
+	0x1D7B9,
+	0x1D7BA,
+	0x1D7BB,
+	0x1D7BC,
+	0x1D7BD,
+	0x1D7BE,
+	0x1D7BF,
+	0x1D7C0,
+	0x1D7C1,
+	0x1D7C2,
+	0x1D7C3,
+	0x1D7C4,
+	0x1D7C5,
+	0x1D7C6,
+	0x1D7C7,
+	0x1D7C8,
+	0x1D7C9,
+	0x1D7CA,
+	0x1D7CB,
+	0x1D7CE,
+	0x1D7CF,
+	0x1D7D0,
+	0x1D7D1,
+	0x1D7D2,
+	0x1D7D3,
+	0x1D7D4,
+	0x1D7D5,
+	0x1D7D6,
+	0x1D7D7,
+	0x1D7D8,
+	0x1D7D9,
+	0x1D7DA,
+	0x1D7DB,
+	0x1D7DC,
+	0x1D7DD,
+	0x1D7DE,
+	0x1D7DF,
+	0x1D7E0,
+	0x1D7E1,
+	0x1D7E2,
+	0x1D7E3,
+	0x1D7E4,
+	0x1D7E5,
+	0x1D7E6,
+	0x1D7E7,
+	0x1D7E8,
+	0x1D7E9,
+	0x1D7EA,
+	0x1D7EB,
+	0x1D7EC,
+	0x1D7ED,
+	0x1D7EE,
+	0x1D7EF,
+	0x1D7F0,
+	0x1D7F1,
+	0x1D7F2,
+	0x1D7F3,
+	0x1D7F4,
+	0x1D7F5,
+	0x1D7F6,
+	0x1D7F7,
+	0x1D7F8,
+	0x1D7F9,
+	0x1D7FA,
+	0x1D7FB,
+	0x1D7FC,
+	0x1D7FD,
+	0x1D7FE,
+	0x1D7FF,
+	0x1EE00,
+	0x1EE01,
+	0x1EE02,
+	0x1EE03,
+	0x1EE05,
+	0x1EE06,
+	0x1EE07,
+	0x1EE08,
+	0x1EE09,
+	0x1EE0A,
+	0x1EE0B,
+	0x1EE0C,
+	0x1EE0D,
+	0x1EE0E,
+	0x1EE0F,
+	0x1EE10,
+	0x1EE11,
+	0x1EE12,
+	0x1EE13,
+	0x1EE14,
+	0x1EE15,
+	0x1EE16,
+	0x1EE17,
+	0x1EE18,
+	0x1EE19,
+	0x1EE1A,
+	0x1EE1B,
+	0x1EE1C,
+	0x1EE1D,
+	0x1EE1E,
+	0x1EE1F,
+	0x1EE21,
+	0x1EE22,
+	0x1EE24,
+	0x1EE27,
+	0x1EE29,
+	0x1EE2A,
+	0x1EE2B,
+	0x1EE2C,
+	0x1EE2D,
+	0x1EE2E,
+	0x1EE2F,
+	0x1EE30,
+	0x1EE31,
+	0x1EE32,
+	0x1EE34,
+	0x1EE35,
+	0x1EE36,
+	0x1EE37,
+	0x1EE39,
+	0x1EE3B,
+	0x1EE42,
+	0x1EE47,
+	0x1EE49,
+	0x1EE4B,
+	0x1EE4D,
+	0x1EE4E,
+	0x1EE4F,
+	0x1EE51,
+	0x1EE52,
+	0x1EE54,
+	0x1EE57,
+	0x1EE59,
+	0x1EE5B,
+	0x1EE5D,
+	0x1EE5F,
+	0x1EE61,
+	0x1EE62,
+	0x1EE64,
+	0x1EE67,
+	0x1EE68,
+	0x1EE69,
+	0x1EE6A,
+	0x1EE6C,
+	0x1EE6D,
+	0x1EE6E,
+	0x1EE6F,
+	0x1EE70,
+	0x1EE71,
+	0x1EE72,
+	0x1EE74,
+	0x1EE75,
+	0x1EE76,
+	0x1EE77,
+	0x1EE79,
+	0x1EE7A,
+	0x1EE7B,
+	0x1EE7C,
+	0x1EE7E,
+	0x1EE80,
+	0x1EE81,
+	0x1EE82,
+	0x1EE83,
+	0x1EE84,
+	0x1EE85,
+	0x1EE86,
+	0x1EE87,
+	0x1EE88,
+	0x1EE89,
+	0x1EE8B,
+	0x1EE8C,
+	0x1EE8D,
+	0x1EE8E,
+	0x1EE8F,
+	0x1EE90,
+	0x1EE91,
+	0x1EE92,
+	0x1EE93,
+	0x1EE94,
+	0x1EE95,
+	0x1EE96,
+	0x1EE97,
+	0x1EE98,
+	0x1EE99,
+	0x1EE9A,
+	0x1EE9B,
+	0x1EEA1,
+	0x1EEA2,
+	0x1EEA3,
+	0x1EEA5,
+	0x1EEA6,
+	0x1EEA7,
+	0x1EEA8,
+	0x1EEA9,
+	0x1EEAB,
+	0x1EEAC,
+	0x1EEAD,
+	0x1EEAE,
+	0x1EEAF,
+	0x1EEB0,
+	0x1EEB1,
+	0x1EEB2,
+	0x1EEB3,
+	0x1EEB4,
+	0x1EEB5,
+	0x1EEB6,
+	0x1EEB7,
+	0x1EEB8,
+	0x1EEB9,
+	0x1EEBA,
+	0x1EEBB,
+	0x1F100,
+	0x1F101,
+	0x1F102,
+	0x1F103,
+	0x1F104,
+	0x1F105,
+	0x1F106,
+	0x1F107,
+	0x1F108,
+	0x1F109,
+	0x1F10A,
+	0x1F110,
+	0x1F111,
+	0x1F112,
+	0x1F113,
+	0x1F114,
+	0x1F115,
+	0x1F116,
+	0x1F117,
+	0x1F118,
+	0x1F119,
+	0x1F11A,
+	0x1F11B,
+	0x1F11C,
+	0x1F11D,
+	0x1F11E,
+	0x1F11F,
+	0x1F120,
+	0x1F121,
+	0x1F122,
+	0x1F123,
+	0x1F124,
+	0x1F125,
+	0x1F126,
+	0x1F127,
+	0x1F128,
+	0x1F129,
+	0x1F12A,
+	0x1F12B,
+	0x1F12C,
+	0x1F12D,
+	0x1F12E,
+	0x1F130,
+	0x1F131,
+	0x1F132,
+	0x1F133,
+	0x1F134,
+	0x1F135,
+	0x1F136,
+	0x1F137,
+	0x1F138,
+	0x1F139,
+	0x1F13A,
+	0x1F13B,
+	0x1F13C,
+	0x1F13D,
+	0x1F13E,
+	0x1F13F,
+	0x1F140,
+	0x1F141,
+	0x1F142,
+	0x1F143,
+	0x1F144,
+	0x1F145,
+	0x1F146,
+	0x1F147,
+	0x1F148,
+	0x1F149,
+	0x1F14A,
+	0x1F14B,
+	0x1F14C,
+	0x1F14D,
+	0x1F14E,
+	0x1F14F,
+	0x1F16A,
+	0x1F16B,
+	0x1F16C,
+	0x1F190,
+	0x1F200,
+	0x1F201,
+	0x1F202,
+	0x1F210,
+	0x1F211,
+	0x1F212,
+	0x1F213,
+	0x1F214,
+	0x1F215,
+	0x1F216,
+	0x1F217,
+	0x1F218,
+	0x1F219,
+	0x1F21A,
+	0x1F21B,
+	0x1F21C,
+	0x1F21D,
+	0x1F21E,
+	0x1F21F,
+	0x1F220,
+	0x1F221,
+	0x1F222,
+	0x1F223,
+	0x1F224,
+	0x1F225,
+	0x1F226,
+	0x1F227,
+	0x1F228,
+	0x1F229,
+	0x1F22A,
+	0x1F22B,
+	0x1F22C,
+	0x1F22D,
+	0x1F22E,
+	0x1F22F,
+	0x1F230,
+	0x1F231,
+	0x1F232,
+	0x1F233,
+	0x1F234,
+	0x1F235,
+	0x1F236,
+	0x1F237,
+	0x1F238,
+	0x1F239,
+	0x1F23A,
+	0x1F23B,
+	0x1F240,
+	0x1F241,
+	0x1F242,
+	0x1F243,
+	0x1F244,
+	0x1F245,
+	0x1F246,
+	0x1F247,
+	0x1F248,
+	0x1F250,
+	0x1F251,
+	0x2F800,
+	0x2F801,
+	0x2F802,
+	0x2F803,
+	0x2F804,
+	0x2F805,
+	0x2F806,
+	0x2F807,
+	0x2F808,
+	0x2F809,
+	0x2F80A,
+	0x2F80B,
+	0x2F80C,
+	0x2F80D,
+	0x2F80E,
+	0x2F80F,
+	0x2F810,
+	0x2F811,
+	0x2F812,
+	0x2F813,
+	0x2F814,
+	0x2F815,
+	0x2F816,
+	0x2F817,
+	0x2F818,
+	0x2F819,
+	0x2F81A,
+	0x2F81B,
+	0x2F81C,
+	0x2F81D,
+	0x2F81E,
+	0x2F81F,
+	0x2F820,
+	0x2F821,
+	0x2F822,
+	0x2F823,
+	0x2F824,
+	0x2F825,
+	0x2F826,
+	0x2F827,
+	0x2F828,
+	0x2F829,
+	0x2F82A,
+	0x2F82B,
+	0x2F82C,
+	0x2F82D,
+	0x2F82E,
+	0x2F82F,
+	0x2F830,
+	0x2F831,
+	0x2F832,
+	0x2F833,
+	0x2F834,
+	0x2F835,
+	0x2F836,
+	0x2F837,
+	0x2F838,
+	0x2F839,
+	0x2F83A,
+	0x2F83B,
+	0x2F83C,
+	0x2F83D,
+	0x2F83E,
+	0x2F83F,
+	0x2F840,
+	0x2F841,
+	0x2F842,
+	0x2F843,
+	0x2F844,
+	0x2F845,
+	0x2F846,
+	0x2F847,
+	0x2F848,
+	0x2F849,
+	0x2F84A,
+	0x2F84B,
+	0x2F84C,
+	0x2F84D,
+	0x2F84E,
+	0x2F84F,
+	0x2F850,
+	0x2F851,
+	0x2F852,
+	0x2F853,
+	0x2F854,
+	0x2F855,
+	0x2F856,
+	0x2F857,
+	0x2F858,
+	0x2F859,
+	0x2F85A,
+	0x2F85B,
+	0x2F85C,
+	0x2F85D,
+	0x2F85E,
+	0x2F85F,
+	0x2F860,
+	0x2F861,
+	0x2F862,
+	0x2F863,
+	0x2F864,
+	0x2F865,
+	0x2F866,
+	0x2F867,
+	0x2F868,
+	0x2F869,
+	0x2F86A,
+	0x2F86B,
+	0x2F86C,
+	0x2F86D,
+	0x2F86E,
+	0x2F86F,
+	0x2F870,
+	0x2F871,
+	0x2F872,
+	0x2F873,
+	0x2F874,
+	0x2F875,
+	0x2F876,
+	0x2F877,
+	0x2F878,
+	0x2F879,
+	0x2F87A,
+	0x2F87B,
+	0x2F87C,
+	0x2F87D,
+	0x2F87E,
+	0x2F87F,
+	0x2F880,
+	0x2F881,
+	0x2F882,
+	0x2F883,
+	0x2F884,
+	0x2F885,
+	0x2F886,
+	0x2F887,
+	0x2F888,
+	0x2F889,
+	0x2F88A,
+	0x2F88B,
+	0x2F88C,
+	0x2F88D,
+	0x2F88E,
+	0x2F88F,
+	0x2F890,
+	0x2F891,
+	0x2F892,
+	0x2F893,
+	0x2F894,
+	0x2F895,
+	0x2F896,
+	0x2F897,
+	0x2F898,
+	0x2F899,
+	0x2F89A,
+	0x2F89B,
+	0x2F89C,
+	0x2F89D,
+	0x2F89E,
+	0x2F89F,
+	0x2F8A0,
+	0x2F8A1,
+	0x2F8A2,
+	0x2F8A3,
+	0x2F8A4,
+	0x2F8A5,
+	0x2F8A6,
+	0x2F8A7,
+	0x2F8A8,
+	0x2F8A9,
+	0x2F8AA,
+	0x2F8AB,
+	0x2F8AC,
+	0x2F8AD,
+	0x2F8AE,
+	0x2F8AF,
+	0x2F8B0,
+	0x2F8B1,
+	0x2F8B2,
+	0x2F8B3,
+	0x2F8B4,
+	0x2F8B5,
+	0x2F8B6,
+	0x2F8B7,
+	0x2F8B8,
+	0x2F8B9,
+	0x2F8BA,
+	0x2F8BB,
+	0x2F8BC,
+	0x2F8BD,
+	0x2F8BE,
+	0x2F8BF,
+	0x2F8C0,
+	0x2F8C1,
+	0x2F8C2,
+	0x2F8C3,
+	0x2F8C4,
+	0x2F8C5,
+	0x2F8C6,
+	0x2F8C7,
+	0x2F8C8,
+	0x2F8C9,
+	0x2F8CA,
+	0x2F8CB,
+	0x2F8CC,
+	0x2F8CD,
+	0x2F8CE,
+	0x2F8CF,
+	0x2F8D0,
+	0x2F8D1,
+	0x2F8D2,
+	0x2F8D3,
+	0x2F8D4,
+	0x2F8D5,
+	0x2F8D6,
+	0x2F8D7,
+	0x2F8D8,
+	0x2F8D9,
+	0x2F8DA,
+	0x2F8DB,
+	0x2F8DC,
+	0x2F8DD,
+	0x2F8DE,
+	0x2F8DF,
+	0x2F8E0,
+	0x2F8E1,
+	0x2F8E2,
+	0x2F8E3,
+	0x2F8E4,
+	0x2F8E5,
+	0x2F8E6,
+	0x2F8E7,
+	0x2F8E8,
+	0x2F8E9,
+	0x2F8EA,
+	0x2F8EB,
+	0x2F8EC,
+	0x2F8ED,
+	0x2F8EE,
+	0x2F8EF,
+	0x2F8F0,
+	0x2F8F1,
+	0x2F8F2,
+	0x2F8F3,
+	0x2F8F4,
+	0x2F8F5,
+	0x2F8F6,
+	0x2F8F7,
+	0x2F8F8,
+	0x2F8F9,
+	0x2F8FA,
+	0x2F8FB,
+	0x2F8FC,
+	0x2F8FD,
+	0x2F8FE,
+	0x2F8FF,
+	0x2F900,
+	0x2F901,
+	0x2F902,
+	0x2F903,
+	0x2F904,
+	0x2F905,
+	0x2F906,
+	0x2F907,
+	0x2F908,
+	0x2F909,
+	0x2F90A,
+	0x2F90B,
+	0x2F90C,
+	0x2F90D,
+	0x2F90E,
+	0x2F90F,
+	0x2F910,
+	0x2F911,
+	0x2F912,
+	0x2F913,
+	0x2F914,
+	0x2F915,
+	0x2F916,
+	0x2F917,
+	0x2F918,
+	0x2F919,
+	0x2F91A,
+	0x2F91B,
+	0x2F91C,
+	0x2F91D,
+	0x2F91E,
+	0x2F91F,
+	0x2F920,
+	0x2F921,
+	0x2F922,
+	0x2F923,
+	0x2F924,
+	0x2F925,
+	0x2F926,
+	0x2F927,
+	0x2F928,
+	0x2F929,
+	0x2F92A,
+	0x2F92B,
+	0x2F92C,
+	0x2F92D,
+	0x2F92E,
+	0x2F92F,
+	0x2F930,
+	0x2F931,
+	0x2F932,
+	0x2F933,
+	0x2F934,
+	0x2F935,
+	0x2F936,
+	0x2F937,
+	0x2F938,
+	0x2F939,
+	0x2F93A,
+	0x2F93B,
+	0x2F93C,
+	0x2F93D,
+	0x2F93E,
+	0x2F93F,
+	0x2F940,
+	0x2F941,
+	0x2F942,
+	0x2F943,
+	0x2F944,
+	0x2F945,
+	0x2F946,
+	0x2F947,
+	0x2F948,
+	0x2F949,
+	0x2F94A,
+	0x2F94B,
+	0x2F94C,
+	0x2F94D,
+	0x2F94E,
+	0x2F94F,
+	0x2F950,
+	0x2F951,
+	0x2F952,
+	0x2F953,
+	0x2F954,
+	0x2F955,
+	0x2F956,
+	0x2F957,
+	0x2F958,
+	0x2F959,
+	0x2F95A,
+	0x2F95B,
+	0x2F95C,
+	0x2F95D,
+	0x2F95E,
+	0x2F95F,
+	0x2F960,
+	0x2F961,
+	0x2F962,
+	0x2F963,
+	0x2F964,
+	0x2F965,
+	0x2F966,
+	0x2F967,
+	0x2F968,
+	0x2F969,
+	0x2F96A,
+	0x2F96B,
+	0x2F96C,
+	0x2F96D,
+	0x2F96E,
+	0x2F96F,
+	0x2F970,
+	0x2F971,
+	0x2F972,
+	0x2F973,
+	0x2F974,
+	0x2F975,
+	0x2F976,
+	0x2F977,
+	0x2F978,
+	0x2F979,
+	0x2F97A,
+	0x2F97B,
+	0x2F97C,
+	0x2F97D,
+	0x2F97E,
+	0x2F97F,
+	0x2F980,
+	0x2F981,
+	0x2F982,
+	0x2F983,
+	0x2F984,
+	0x2F985,
+	0x2F986,
+	0x2F987,
+	0x2F988,
+	0x2F989,
+	0x2F98A,
+	0x2F98B,
+	0x2F98C,
+	0x2F98D,
+	0x2F98E,
+	0x2F98F,
+	0x2F990,
+	0x2F991,
+	0x2F992,
+	0x2F993,
+	0x2F994,
+	0x2F995,
+	0x2F996,
+	0x2F997,
+	0x2F998,
+	0x2F999,
+	0x2F99A,
+	0x2F99B,
+	0x2F99C,
+	0x2F99D,
+	0x2F99E,
+	0x2F99F,
+	0x2F9A0,
+	0x2F9A1,
+	0x2F9A2,
+	0x2F9A3,
+	0x2F9A4,
+	0x2F9A5,
+	0x2F9A6,
+	0x2F9A7,
+	0x2F9A8,
+	0x2F9A9,
+	0x2F9AA,
+	0x2F9AB,
+	0x2F9AC,
+	0x2F9AD,
+	0x2F9AE,
+	0x2F9AF,
+	0x2F9B0,
+	0x2F9B1,
+	0x2F9B2,
+	0x2F9B3,
+	0x2F9B4,
+	0x2F9B5,
+	0x2F9B6,
+	0x2F9B7,
+	0x2F9B8,
+	0x2F9B9,
+	0x2F9BA,
+	0x2F9BB,
+	0x2F9BC,
+	0x2F9BD,
+	0x2F9BE,
+	0x2F9BF,
+	0x2F9C0,
+	0x2F9C1,
+	0x2F9C2,
+	0x2F9C3,
+	0x2F9C4,
+	0x2F9C5,
+	0x2F9C6,
+	0x2F9C7,
+	0x2F9C8,
+	0x2F9C9,
+	0x2F9CA,
+	0x2F9CB,
+	0x2F9CC,
+	0x2F9CD,
+	0x2F9CE,
+	0x2F9CF,
+	0x2F9D0,
+	0x2F9D1,
+	0x2F9D2,
+	0x2F9D3,
+	0x2F9D4,
+	0x2F9D5,
+	0x2F9D6,
+	0x2F9D7,
+	0x2F9D8,
+	0x2F9D9,
+	0x2F9DA,
+	0x2F9DB,
+	0x2F9DC,
+	0x2F9DD,
+	0x2F9DE,
+	0x2F9DF,
+	0x2F9E0,
+	0x2F9E1,
+	0x2F9E2,
+	0x2F9E3,
+	0x2F9E4,
+	0x2F9E5,
+	0x2F9E6,
+	0x2F9E7,
+	0x2F9E8,
+	0x2F9E9,
+	0x2F9EA,
+	0x2F9EB,
+	0x2F9EC,
+	0x2F9ED,
+	0x2F9EE,
+	0x2F9EF,
+	0x2F9F0,
+	0x2F9F1,
+	0x2F9F2,
+	0x2F9F3,
+	0x2F9F4,
+	0x2F9F5,
+	0x2F9F6,
+	0x2F9F7,
+	0x2F9F8,
+	0x2F9F9,
+	0x2F9FA,
+	0x2F9FB,
+	0x2F9FC,
+	0x2F9FD,
+	0x2F9FE,
+	0x2F9FF,
+	0x2FA00,
+	0x2FA01,
+	0x2FA02,
+	0x2FA03,
+	0x2FA04,
+	0x2FA05,
+	0x2FA06,
+	0x2FA07,
+	0x2FA08,
+	0x2FA09,
+	0x2FA0A,
+	0x2FA0B,
+	0x2FA0C,
+	0x2FA0D,
+	0x2FA0E,
+	0x2FA0F,
+	0x2FA10,
+	0x2FA11,
+	0x2FA12,
+	0x2FA13,
+	0x2FA14,
+	0x2FA15,
+	0x2FA16,
+	0x2FA17,
+	0x2FA18,
+	0x2FA19,
+	0x2FA1A,
+	0x2FA1B,
+	0x2FA1C,
+	0x2FA1D,
+};
+
+static int
+NFKC_QC_hash_func(const void *key)
+{
+	static const int16 h[9813] = {
+		   117,  -3437,  -3437,  -3437,  -3437,  -3437,    117,    117,
+		   117,    117,    117,    117,    117,  24111,    117,  22273,
+		   117,  20435,    117,    117,    117,    117,    117,    117,
+		   117,    117,    117,    117,    117,    117,    117,    117,
+		   117,    117,    117,    117,    117,    117,    117,    117,
+		   117,    117,    117,    117,    117,    117,    117,    117,
+		   117,    117,    117,    117,    117,    117,   1890,   1891,
+		   117,  32767,      0,    115,    115,    115,    115,    115,
+		   115,    115,   3113,    115,    115,    115,    115,  -3823,
+		 -3823,  -3823,  -3823,  -3823,    -91,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,    141,      0,
+		   -79,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,    -73,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		  7161,      0,   7164,   7165,   7166,    -73,    -73,    -73,
+		   -73,      0,      0,      0,      0,    -72,      0,      0,
+		     0,      0,      0,    -70,      0,      0,      0,      0,
+		     0,   2200,      0,      0,      0,      0,      0,      0,
+		  -143,      0,      0,      0,      0,    -68,    -68,    -68,
+		   110,    -68,    -68,    -68,    289,  32767,  32767,  32767,
+		   111,  32767,    112,  32767,  32767,  32767,  32767,    113,
+		 32767,    124,    125,    115,    116,    117,  32767,  32767,
+		   118,    119,    120,  32767,    121,    122,    126,    127,
+		 32767,  32767,  32767,  32767,  32767,  32767,   4142,   4143,
+		   128,    129,    129,    129,    129,    129,    129,    129,
+		   129,    129,    129,    129,    129,    129,    129,  17654,
+		   129,    129,    129,    129,    129,    129,    129,    129,
+		   129,    129,    129,  10289,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,    129,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,    130,    131,    132,    133,    134,
+		   135,    136,   3307,    138,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		   139,    140,    141,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  -3038,  -3038,  -3038,
+		 -3038,  -2866,  32767,      5,      6,  -2860,  -2859,  -2858,
+		 -3036,  -3036,  32767,  32767,     12,  32767,  -3037,  32767,
+		   125,    125,    352,    125,    125,    125,    125,    125,
+		   125,    125,    125,    125,    282,    125,    125,    125,
+		   125,    285,    125,    125,    125,    125,    287,    125,
+		   125,    125,    125,    288,    125,    125,    125,    125,
+		   125,    125,    125,    125,    125,    125,    125,    125,
+		     0,    125,    125,    125,    125,    125,    125,    125,
+		   125,    125,    125,    125,    125,    125,    125,    125,
+		   125,    125,    125,    125,    125,    125,    125,    125,
+		   125,    125,    125,    125,    125,    125,    125,    125,
+		   125,    125,    125,    125,    125,    125,    125,    125,
+		   125,    125,    125,    125,    125,    125,    125,    125,
+		   125,    125,    125,    125,    125,    125,    125,    125,
+		   125,    125,    125,    125,    125,    125,    125,    125,
+		   125,    125,    125,    125,    125,    125,    125,    125,
+		   125,    125,    125,    125,    125,    125,    125,    125,
+		   125,    125,    125,    125,    125,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,    172,    173,    174,
+		   175,    176,    177,    178,      0,      0,      0,  32767,
+		 32767,      0,      0,      0,   3163,   3163,      0,  32767,
+		 32767,      0,      0,      0,   3167,      0,      0,  32767,
+		 32767,      0,      0,      0,  32767,    179,    180,   3169,
+		  3169,   3169,    183,      0,      0,      0,    184,   3335,
+		     0,   3173,   3173,      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,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,    185,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,     30,     31,  -1042,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,    219,
+		   220,    221,    189,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 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,   2983,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,    190,
+		   191,    192,    193,    194,    195,    196,    197,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,     17,
+		    18,     19,     20,     21,     22,     23,     24,     25,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,     26,
+		    27,     28,     29,     30,     31,  32767,  32767,     32,
+		    33,     34,     35,     36,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767, -21714,  32767,  32767, -19876,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,     34,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,     35,  -3427,
+		 -3427,  -3427,  32767,   3478,   3479,  32767,   3480,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,    -81,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,    -80, -20397,  32767,  32767,  32767,
+		 32767,     90,     91,  32767,  32767,     30,     30,     30,
+		    30,     30,     30,     30,     30,     30,     30,     30,
+		    30,     30,     30,     30,     30,      0,      0,      0,
+		    33,     33,     33,     33,     33,     33,     33,     33,
+		    33,      0,      0,      0,  32767,     32,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      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,   -307,   -307,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,  -7122,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,  -2160,  -2160,      0,      0,
+		     0,      0,      0,      0,  32767,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   2028,   5918,   5491,   5491,   5918,   5918,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,    491,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,  -3577,   -129,   -129,   -129,   -129,  -3489,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,  -1637,  -1637,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,    127,
+		   127,    127,    127,   2600,    127,    127,    127,    127,
+		   127,    127,    127,    127,    127,  -3658,    127,    127,
+		   127,    127,    127,  10262,    127,    127,    127,    127,
+		   127,    127,    127,    127,    127,    127,    127,    127,
+		   127,    127,    127,    127,    127,  -3713,   4130,    229,
+		   129,    129,    129,    129,    129,    129,    129,    129,
+		   129,    129,    129,    129,    129,    129,    129,    129,
+		   129,   6402,  -3732,    258,   3975,    258,    258,    258,
+		   258,    258,    258,    258,    258,    258,    258,    129,
+		   129,    488,    129,    487,    129,    129,    485,    485,
+		   485,    485,    485,    485,    485,    485,    485,    485,
+		  6421,    484,    129,    483,    129,    129,    481,    481,
+		   129,    129,    129,    478,    246,    246,    246,    246,
+		   246,    246,    246,    246,    246,  -3307,    246,  -3308,
+		 -3308,  -3308,  -3308,  -3308,    246,    246,    246,    246,
+		   246,    246,    246,  24240,    246,  22402,    246,  20564,
+		 20564,  20564,   3429,   3429,   3429,  16887,   -638,   -638,
+		     0,      0,      0,      0,      0,  13206,      0,  11368,
+		 11368,   9531,      0,      0,      0,   7691,      0,      0,
+		     0,      0,      0,      0,  -3297,   2173,      0,   2172,
+		   335,    335,      0,      0,      0,      0,  -4245,      0,
+		     0,      0,      0,   -875,      0,  -3349,      0,  -3350,
+		 -3350,      0,      0,   5244,   5245,  -4257,   -746,   -746,
+		 -3732,  -3732,      0,     91,     91,     91,     91,      0,
+		     0,      0,  -4265,      0,      0,      0,      0,      0,
+		     0,      0,      0,     79,    220,     79,      0,     79,
+		 -4268,  -4268,      0,      0,      0,     74,      0,     73,
+		    73,      0,     73,     73,     73,     73,     73,     73,
+		    73,     73,     73,     73,     73,     73,   7234,     73,
+		  7237,   7238,   7239,      0,      0,      0,      0,      0,
+		    72,     72,     72,      0,     72,      0,     71,      0,
+		    70,      0,      0,     69,     69,     41,     68,   2268,
+		    68,     68,     68,     68,     68,     68,    -75,     68,
+		    68,     68,     68,      0,      0,      0,    178,      0,
+		     0,      0,    357,      0,      0,      0,      0,      0,
+		     0,   3633,   3634,   6908,   3636,   3637,   3638,   3639,
+		  3640,   3641,   3642,   3643,   3644,   3645,   3646,   3647,
+		  3648,   3649,   3650,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,     10,
+		    11,   3483,    112,   3485,    113,   3487,    114,   3489,
+		   115,   3491,   3492,   2590,   3494,   3495,   3496,   3497,
+		  3498,   3499,   3500,   3501,   3502,   3503,   3504,   3505,
+		  3506,   3507,   3508,   3509,   3510,   3511,   3512,   3513,
+		  3514,   3515,   3516,   3517,   3518,   3519,   3520,   3521,
+		  3522,   3523,   3524,   3525,   3526,   3527,   3528,   3529,
+		  3530,   3531,  32767,  32767,  32767,  32767,  32767,   2628,
+		  1668,   1669,   1670,   1671,   1672,   1673,   1674,   1675,
+		  1676,   1677,   -286,   1679,   1680,   1681,   1682,   1683,
+		  1684,   1685,   1686,   4334,   3983,   1689,   1690,   1691,
+		-25863, -25862, -24024, -24023, -24022, -22184, -22183, -22182,
+		-20344, -20343, -20342, -18504, -18503, -18502, -16664, -16663,
+		-16662, -14824, -14823, -14822, -12984, -12983, -12982, -11144,
+		-11143, -11142,  -9304,  -9303,  -9302,  -7464,  -7463,  -7462,
+		 -5624,  -5623,  -5622,  -3784,  -3783,  -3782,  -1944,  -1943,
+		 -1942,   -104,   -103,   -102,   1736,   1737,   1738,   3576,
+		 -2019,  -2019,  -2019,   1614,   1615,   4889,   1617,   1618,
+		  1619,   1620,   1621,   1622,   1623,   1624,   1625,   1626,
+		  1627,   1628,   1629,   1630,   1631,   1632,   1633,   1634,
+		  1635,   1636,   1637,   1638,  -2940,   1640,   1641,   1642,
+		  1643,   1644,   1645,   1646,    686,    687,    688,   1650,
+		  1651,   1652,   1653,   1654,   1655,   1656,   1657,   1658,
+		  1659,   1660,   1661,   1662,   1663,   1664,   1665,  -4478,
+		  5657,   1668,  -2048,   1670,   1671,   1672,   1673,   1674,
+		  1675,   1676,   1677,   1678,   1679,   3178,   1681,   1450,
+		  1451,   1452,   1453,   1454,   1455,   1456,   1457,   1458,
+		  1459,   1460,   1461,   1462,   1463,   1464,   1465,   1466,
+		  1467,   1468,   1469,   1470,   1471,   1472,   1473,   1474,
+		  1475,   1476,   1709,   1710,   1711,   1712,   1713,   1714,
+		  1715,   1716,   1717,   5271,   1719,   5274,   5275,   5276,
+		  5277,   5278,   1725,   1726,   1727,   1728,   1729,   1730,
+		  1731, -22262,   1733, -20422,   1735, -18582,   1737,   1738,
+		  1739,   1740,   1741,   1742,   1743,   1744,   1745,   1746,
+		  1747,   1748,   1749,   1750,   1751,   1752,   1753,   1754,
+		  1755,   1756,   1757,   1758,   1759,   1760,   1761,   1762,
+		  1763,   1764,   1765,   1766,   1767,   1768,   1769,   1770,
+		  1771,   1772,      0,      0,   1775,   5994,   5995,   1778,
+		  1779,   1780,   1781,   1782,   1783,   1784,  -1213,   1786,
+		  1787,   1788,   1789,   5728,   5729,   5730,   5731,   5732,
+		  2001,   1911,   1912,   1913,   1914,   1915,   1916,   1917,
+		  1918,   1919,   1920,   1921,   1922,   1923,   1924,   1925,
+		  1926,   1927,   1787,   1929,   2009,   1931,   1932,   1933,
+		  1934,   1935,   1936,   1937,   1938,   1939,   1940,   2014,
+		  1942,   1943,   1944,   1945,   1946,   1947,   1948,   1949,
+		  1950,   1951,   1952,   1953,  -5207,   1955,  -5208,  -5208,
+		 -5208,   2032,   2033,   2034,   2035,   1963,   1964,   1965,
+		  1966,   2039,   1968,   1969,   1970,   1971,   1972,   2043,
+		  1974,   1975,   1976,   1977,   1978,   -221,   1980,   1981,
+		  1982,   1983,   1984,   1985,   2129,   1987,   1988,   1989,
+		  1990,   2059,   2060,   2061,   1884,   2063,   2064,   2065,
+		  1709,   2067,   2068,   2069,   2070,   2071,   2072,  -1560,
+		 -1560,  -4833,  -1560,  -1560,  -1560,  -1560,  -1560,  -1560,
+		 -1560,  -1560,  -1560,  -1560,  -1560,  -1560,  -1560,  -1560,
+		 -1560,   2091,   2092,   2093,   2094,   2095,   2096,   2097,
+		  2098,   2099,   2100,   2101,   2102,   2093,   2093,  -1378,
+		  1994,  -1378,   1995,  -1378,   1996,  -1378,   1997,  -1378,
+		 -1378,   -475,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,
+		 -1378,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,
+		 -1378,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,
+		 -1378,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,
+		 -1378,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,
+		 -1378,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,
+		 -1378,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,
+		 -1378,  -1378,  -1378,    586,  -1378,  -1378,  -1378,  -1378,
+		 -1378,  -1378,  -1378,  -1378,  -4025,  -3673,  -1378,  -1378,
+		 -1378,  26177,  26177,  24340,  24340,  24340,  22503,  22503,
+		 22503,  20666,  20666,  20666,  18829,  18829,  18829,  16992,
+		 16992,  16992,  15155,  15155,  15155,  13318,  13318,  13318,
+		 11481,  11481,  11481,   9644,   9644,   9644,   7807,   7807,
+		  7807,   5970,   5970,   5970,   4133,   4133,   4133,   2296,
+		  2296,   2296,    459,    459,    459,  -1378,  -1378,  -1378,
+		 -1378,  -1378,   1095,  -1378,  -1378,  -1378,  -1378,  -1378,
+		 -1378,  -1378,  -1378,  -1378,  -5163,  -1378,  -1378,  -1378,
+		 -1378,  -1378,   8757,  -1378,  -1378,  -1378,  -1378,  -1378,
+		 -1378,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,  -1378,
+		 -1378,  -1378,  -1378,  -1378,  -5218,   2625,  -1276,  -1376,
+		 -1376,  -1376,  -1376,  -1376,  -1376,  -1376,  -1376,  -1376,
+		 -1376,  -1376,  -1376,  -1376,  -1376,  -1376,  -1376,  -1376,
+		  4897,  -5237,  -1247,   2470,  -1247,  -1247,  -1247,  -1247,
+		 -1247,  -1247,  -1247,  -1247,  -1247,  -1247,  -1376,  -1376,
+		 -1017,  -1376,  -1018,  -1376,  -1376,  -1020,  -1020,  -1020,
+		 -1020,  -1020,  -1020,  -1020,  -1020,  -1020,  -1020,   4916,
+		 -1021,  -1376,  -1022,  -1376,  -1376,  -1024,  -1024,  -1376,
+		 -1376,  -1376,  -1027,  -1259,  -1259,  -1259,  -1259,  -1259,
+		 -1259,  -1259,  -1259,  -1259,  -4812,  -1259,  -4813,  -4813,
+		 -4813,  -4813,  -4813,  -1259,  -1259,  -1259,  -1259,  -1259,
+		 -1259,  -1259,  22735,  -1259,  20897,   2566,  -1616,   2568,
+		  2569,   2570,   2571,   2572,   2573,   2574,   2575,   2576,
+		  2577,   2578,   2579,  -1290,  -1289,  -1288,  -1287,  -1286,
+		 -1285,  -1284,  -1283,   1917,  -1281,   2588,   2589,   2590,
+		  2591,   2592,   2593,   2594,   2595,   2596,  15593,   2598,
+		  2599,   2600,   1681,   1681,   1681,   1681,   1681,   1681,
+		  1681,   1681,   2609,  -1280,   -852,   -851,  -1277,  -1276,
+		  1681,   1681,   1577,   1681,  -2262,   1681,   1681,  -1790,
+		  1582,  -1790,   1583,  -1790,   1584,  -1790,   1585,  -1790,
+		  1681,   1681,  -1792,  -1792,  -1792,  -1792,  -1792,  -1792,
+		 -1792,  -1792,  -1792,  -1792,  -1792,   2690,  32767,   2691,
+		  2692,  -1789,  -1789,  -1789,  -1789,  -1789,  -1789,  -1789,
+		 -1789,  -1789,   2702,   2703,   2704,   2705,   2706,   2486,
+		  2565,  -1782,  32767,   2485,   2711,   2712,   2713,  32767,
+		 32767,  32767,  32767,   2561,   2715,   1641,   1641,   1641,
+		  1641,   1641,   1641,   1641,   1641,   1641,   1641,   1641,
+		  1641,   2726,   2727,   2728,   2729,   2503,   2731,   2732,
+		  2733,   2734,   2735,   2736,   2737,   2738,   2739,   2583,
+		  2741,   2742,   2743,   2744,   2585,   2746,   2747,   2748,
+		  2749,   2588,   2751,   2752,   2753,   2754,   2592,   2756,
+		  2757,   2758,   2759,   2760,   2761,   2762,   2763,   2764,
+		  2765,   2766,   2767,   2893,   2769,   2770,   2771,   2772,
+		  2773,   2774,   2775,   2776,   2777,   2778,   2779,   2780,
+		  2781,   2782,   2783,   2784,   2785,   2786,   2787,   2788,
+		  2789,   2790,   2791,   2792,   2793,   2794,   2795,   2796,
+		  2797,   2798,   2799,   2800,   2801,   2802,   2803,   2804,
+		  2805,   2806,   2807,   2808,   2809,   2810,   2811,   2812,
+		  2813,   2814,   2815,   2816,   2817,   2818,   2819,   2820,
+		  2821,   2822,   2823,   2824,   2825,   2826,   2827,   2828,
+		  2829,   2830,   2831,   2832,   2833,   2834,   2835,   2836,
+		  2837,   2838,   2839,   2840,   2841,   2842,   2843,   2844,
+		  2845,   2846,   2847,   2848,   2849,   2850,   2851,   2852,
+		  2978,   2979,   2980,   2981,   2982,   2983,   2984,   2985,
+		  2986,   2987,   2988,   2989,   2990,   2991,   2992,   2993,
+		  2994,   2995,   2996,   2997,   2998,   2999,   3000,   3001,
+		  3002,   3003,   3004,   3005,   3006,   3007,   3008,   3009,
+		  3010,   3011,   3012,   3013,   3014,   3015,   3016,   3017,
+		  3018,   3019,   3020,   3021,   3022,   3023,   3024,   3025,
+		  3026,   3027,   3028,   3029,   3030,   3031,   3032,   3033,
+		  3034,   3035,   3036,   3037,   3038,   3039,   3040,   3041,
+		  2870,  32767,      0,      0,   2867,   2867,   2867,   3046,
+		  3047,   3048,  32767,      0,   3049,   3050,   3051,   -111,
+		  -110,   3054,  32767,  32767,   3055,   3056,   3057,   -109,
+		  3059,   3060,  32767,  32767,   3061,   3062,   3063,   -108,
+		  -267,   -106,   -105,   -104,   -103,   2884,   3068,   3069,
+		  3070,   -102,   -264,   3072,   -100,    -99,   3075,   3076,
+		  3077,  32767,  32767,  32767,    -98,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,     37,     38,    -97,     39,
+		    40,    -96,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		    41,  32767,  32767,  32767,  32767,   4762,     42,  32767,
+		 32767,  32767,     43,  32767,  32767,  32767,  32767,  32767,
+		    44,     45,  32767,     46,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,    825,  32767,  32767,      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,      0,      0,  -2988,  32767,
+		 -2987,      0,  32767,  32767,  32767,      0,  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,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,     99,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,   3078,   3079,   3080,   3081,   3082,   3083,
+		  3084,  32767,  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,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,   2157,
+		  6047,   5620,   5620,   6047,   6047,      0,      0,      0,
+		     0,      0,      0,      0,      0,    620,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,  -3448,
+		     0,      0,      0,      0,  -3360,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,  -1508,
+		 -1508,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,   -139,
+		  -138,   -137,      0,   -136,   -135,    239,    240,    241,
+		   242,    243,   -124,   -123,   3718,  -4124,      0,   -122,
+		  -121,   -120,   -119,   -118,   -117,   -116,   -115,   -114,
+		  -113,   -112,   -111,   -110,   -109,   -108,   -107,   -106,
+		 -6378,      0,  -6379,  -6379,  -6379,  -6379,      0,  -6379,
+		 -6379,  -6379,  -6379,      0,      0,  -6377,  -6377,  -6377,
+		 -6377,  -6377,  -6377, -10217,   -103,   -458,   -457,   -456,
+		  -455,   -454,   -453,   -452,   -451,   -450,      0,  -3222,
+		 -2319,  -3222,  -3222,  -3222,  -3222,  -3222,  -3222,  -3222,
+		 -3222,  -3222,   3092,    174,   3094,   3095,   3096,   3097,
+		 -3228,   3099,   3100,   3101,   3102,   3103,  -3233,   3105,
+		  3106,   3107,   3108,   3109,   3110,   3111,   3112,   3113,
+		  3114,   3115,   3116,  -3245,  -3245,  -3245,   3120,   3121,
+		  3122,   3123,   3124,   3125,   3126,   3127,  -3253,    178,
+		   179,    298,  -3256,  -3256,    184,  -3257,  -3257,    187,
+		   188,    -62,    -62,  -3261,    192,  -3262,    194,    195,
+		   196,    197,    198,    199,    200,   3151,  -3270,  -3270,
+		 24285,    -49,  -3062,    -49,    -49,    -49,    -49,    -49,
+		   -49,    -49,    -49,   3165,   3166,   3167,  15087,   3169,
+		  3170,   3171,   3172,   3173,   3174,   3175,  11406,   3176,
+		  3177,   3178,   3179,   3180,   3181,   3182,   3183,   3184,
+		  3185,   3186,   3187,   3188,   3189,   3190,   3191,    368,
+		   368,   3194,   3195,  -1471,  -3308,  -3308,  -3308,  -3308,
+		 -3308,   -835,  -3308,  -3308,  -3308,  -3308,  -3308,  -3308,
+		 -3308,  -3308,  -3308,  -7093,  -3308,  -3308,  -3308,  -3308,
+		 -3308,   6827,  -3308,  -3308,  -3308,  -3308,   3223,  -3309,
+		 -3309,  -3309,  -3309,  -3309,  -3309,  -3309,  -3309,  -3309,
+		 -3309,  -3309,  -3309,  -7149,   2965,   3238,   2610,   2611,
+		  2612,   2613,   2614,   2615,   2616,   3246,   2617,  -3318,
+		  2620,   2976,   2623,   2978,   2979,   2628,   2629,   2982,
+		  2983,   2984,   3372,   3253,   3374,   3375,   3376,   3377,
+		  3378,   3379,   3380,   3381,   3382,   3383,   3384,   3385,
+		  3386,   3387,   3267,   3388,   3389,      0,   3391,   3270,
+		  3392,   3393,   3394,   3395, -19238,  32767,   3276,   3277,
+		  3278,   3279,      0,   3399,   3400,   3401,   -146,   3285,
+		  3286,   3287,   -150,   -150,   3290,   -151,   -151,   3293,
+		  3294,   3044,   3044,   -155,   3298,   -156,   3300,   3301,
+		  3302,   3303,   3304,   3305,   3306,   6257,   -164,   -164,
+		 27391,   3057,     44,   3057,   3057,   3057,   3057,   3057,
+		  3057,   3057,   3057,   3057,   2630,   2630,   3057,   3057,
+		   101,    102,    207,    104,   4048,    106,    107,   3579,
+		   208,   3581,    209,   3583,    210,   3585,    211,   3587,
+		  3588,   2686,   3590,   3591,   3592,   3593,   3594,   3595,
+		  3596,   3597,   3598,   3599,   3600,   3601,   3602,   3603,
+		  3604,   3605,   3606,   3607,   3608,   3609,   3610,   3611,
+		  3612,   3613,   3614,   3615,   3616,   3617,   3618,   3619,
+		  3620,   3621,   3622,   3623,   3624,   3625,   3626,   3627,
+		  3628,   3629,   3630,   3631,   3632,   3633,   3634,   3635,
+		  3636,   3637,   3638,   3639,   3640,   3641,   3642,   3643,
+		  3644,   3645,   3646,   1683,   3648,   3649,   3650,   3651,
+		  3652,   3653,   3654,   3655,   6303,   5952,   3658,   3659,
+		  3660, -23894, -23893, -22055, -22054, -22053, -20215, -20214,
+		-20213, -18375, -18374, -18373, -16535, -16534, -16533, -14695,
+		-14694, -14693, -12855, -12854, -12853, -11015, -11014, -11013,
+		 -9175,  -9174,  -9173,  -7335,  -7334,  -7333,  -5495,  -5494,
+		 -5493,  -3655,  -3654,  -3653,  -1815,  -1814,  -1813,     25,
+		    26,     27,   1865,   1866,   1867,   3705,   3706,   3707,
+		  3708,   3709,   1237,   3711,   3712,   3713,   3714,   3715,
+		  3716,   3717,   3718,   3719,   7505,   3721,   3722,   3723,
+		  3724,   3725,  -6409,   3727,   3728,   3729,   3730,   3731,
+		  3732,   3733,   3734,   3735,   3736,   3737,   3738,   3739,
+		  3740,   3741,   3742,   3743,   7584,   -258,   3644,   3745,
+		  3746,   3747,   3748,   3749,   3750,   3751,   3752,   3753,
+		  3754,   3755,   3756,   3757,   3758,   3759,   3760,   3761,
+		 -2511,   7624,   3635,    -81,   3637,   3638,   3639,   3640,
+		  3641,   3642,   3643,   3644,   3645,   3646,   3776,   3777,
+		  3419,   3779,   3422,   3781,   3782,   3427,   3428,   3429,
+		  3430,   3431,   3432,   3433,   3434,   3435,   3436,  -2499,
+		  3439,   3795,   3442,   3797,   3798,   3447,   3448,   3801,
+		  3802,   3803,   3455,   3688,   3689,   3690,   3691,   3692,
+		  3693,   3694,   3695,   3696,   7250,   3698,   7253,   7254,
+		  7255,   7256,   7257,   3704,   3705,   3706,   3707,   3708,
+		  3709,   3710, -20283,   3712, -18443,   3714, -16603, -16602,
+		-16601,    535,    536,    537, -12920,   4606,   4607,   3970,
+		  3971,   3972,   3973,   3974,  -9231,   3976,  -7391,  -7390,
+		 -5552,   3980,   3981,   3982,  -3708,   3984,   3985,   3986,
+		  3987,   3988,   3989,   7287,   1818,   3992,   1821,   3659,
+		  3660,   3996,   3997,   3998,   3999,   8245,   4001,   4002,
+		  4003,   4004,   4880,   4006,   7356,   4008,   7359,   7360,
+		  4011,   4012,  -1231,  -1231,   8272,   4762,   4763,   7750,
+		  7751,   4020,   3930,   3931,   3932,   3933,   4025,   4026,
+		  4027,   8293,   4029,   4030,   4031,   4032,   4033,   4034,
+		  4035,   4036,  32767,  32767,   3958,   4038,   3960,   8308,
+		  8309,   4042,   4043,   4044,   3971,   4046,   3974,   3975,
+		  4049,   3977,   3978,   3979,   3980,   3981,   3982,   3983,
+		  3984,   3985,   3986,   3987,   3988,  -3172,   3990,  -3173,
+		 -3173,  -3173,   4067,   4068,   4069,   4070,   4071,   4000,
+		  4001,   4002,   4075,   4004,   4077,   4007,   4079,   4010,
+		  4081,   4082,   4014,   4015,   4044,   4018,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,    421,    432,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  -1093,  -1093,  -1093,  -1093,
+		 -1093,  -1093,   -132,   -132,   -132,  -1093,  -1093,  -1093,
+		 -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,
+		 -1093,  -1093,  -1093,  -1093,  -1093,   5051,  -5083,  -1093,
+		  2624,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,
+		 -1093,  -1093,  -1093,  -2591,  -1093,   -861,   -861,   -861,
+		  -861,   -861,   -861,   -861,   -861,   -861,   -861,   -861,
+		  -861,   -861,   -861,   -861,   -861,   -861,   -861,   -861,
+		  -861,   -861,   -861,   -861,   -861,   -861,   -861,   -861,
+		 -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,
+		 -1093,  -4646,  -1093,  -4647,  -4647,  -4647,  -4647,  -4647,
+		 -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  22901,
+		 -1093,  21063,  -1093,  19225,  -1093,  -1093,  -1093,  -1093,
+		 -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,
+		 -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,
+		 -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,
+		 -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,  -1093,
+		   680,    681,  -1093,  -5311,  -5311,  -1093,  -1093,  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,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,   7525,   7526,   7656,   7657,
+		  4368,   4369,   4370,   4371,   7666,   7311,   7312,   7313,
+		  7314,   4377,   4378,   4379,   4380,   4381,   4382,   1391,
+		  7329,   7685,   7332,   7687,   7688,   7337,   7338,   7691,
+		  7692,   7693,   7345,   7578,   7579,   7580,   7581,   7582,
+		  7583,   7584,   7585,   7586,  11140,   7588,  11143,  11144,
+		 11145,  11146,  11147,   7594,   7595,   7596,   7597,   7598,
+		  7599,   7600, -16393,   7602, -14553,   7604, -12713, -12712,
+		-12711,   4425,   4426,   4427,  -9030,   8496,   8497,   8498,
+		  8499,   8500,   8501,   8502,   8503,   8504,   8505,   8506,
+		 -1653,   8508,   8509,   8510,   8511,   8512,   8513,   8514,
+		  8515,   8516,   8517,   8518,   8519,   8520,   8521,   8522,
+		  8523,   8524,   8525,   8526,   8527,   8528,   8529,   8530,
+		  8531,   8532,   8533,   8534,   8535,   8536,   8537,   8538,
+		  8539,   8540,   8541,   8542,   8543,   8544,   8545,   8546,
+		  8580,   8548,   8549,   8550,   8551,   8552,   8553,   8554,
+		  8555,   8556,   8557,   8558,   8559,   8560,   8561,   8562,
+		  8563,   8564,   8565,   8566,   4500,   4630,   4631,   4632,
+		  4633,   4634,   4635,   4636,   4637,   7837,   4639,   8578,
+		  8579,   8580,   8581,   8582,   8583,   8584,   8585,   8586,
+		  8587,   8588,   8589,   4652,   7666,   4654,   4655,   4656,
+		  4657,   4658,   4659,   4660,   4661,   4662,   5090,   5091,
+		  4665,   4666,   7623,   7623,   4669,   4670,   4671,   4672,
+		  4673,   4674,   4675,   4676,   4677,   4678,   4679,   4680,
+		  4681,   4682,   4683,   4684,   4685,   4686,   4687,   4688,
+		  4689,   4690,   4691,   4692,   4693,   2569,    732,    732,
+		   732,    732,    732,   3205,    732,    732,    732,    732,
+		   732,    732,    732,    732,    732,  -3053,    732,    732,
+		   732,    732,    732,  10867,    732,    732,    732,    732,
+		   732,    732,    732,    732,    732,    732,    732,    732,
+		   732,    732,    732,    732,    732,  -3108,   4735,    834,
+		   734,    734,    734,    734,    734,    734,    734,    734,
+		   734,    734,    734,    734,   4750,   4750,   4751,   4752,
+		  4753,   4754,   4755,   4756,   4757,   4758,   4759,   4760,
+		  4761,   4762,   4763, -12761,   4765,   4766,   4767,   4768,
+		  4769,   4770,   4771,   4772,   4773,   4774,   4775,  -5384,
+		  4777,   4778,   4779,   4780,   4781,   4782,   4783,   4784,
+		  4785,   4786,   4787,   4788,   4789,   4790,   4791,   4792,
+		  4793,   4794,   4795,   4796,   4797,   4798,   4799,   4800,
+		  4801,   4802,   4803,   4804,   4805,   4806,   4807,   4808,
+		  4809,   4810,   4811,   4812,   4813,   4814,   4815,   4849,
+		  4817,   4818,   4819,   4820,   4821,   4822,   4823,   4824,
+		  4825,   4826,   4827,   4828,   4829,   4830,   4831,   4832,
+		  4833,   4834,   4835,    769,    899,    900,    901,    902,
+		   903,    904,    905,    906,   4106,    908,   4847,   4848,
+		  4849,   4850,   4851,   4852,   4853,   4854,   4855,   4856,
+		  4857,   4858,    921,   3935,    923,    924,    925,    926,
+		   927,    928,    929,    930,    931,   1359,   1360,    934,
+		   935,   3892,   3892,    938,    939,    940,    941,    942,
+		   943,    944,    945,    946,    947,    948,    949,    950,
+		   951,    952,    953,    954,    955,    956,    957,    958,
+		   959,    960,    961,    962,  -1162,  -2999,  -2999,  -2999,
+		 -2999,  -2999,   -526,  -2999,  -2999,  -2999,  -2999,  -2999,
+		 -2999,  -2999,  -2999,  -2999,  -6784,  -2999,  -2999,  -2999,
+		 -2999,  -2999,   7136,  -2999,  -2999,  -2999,  -2999,  -2999,
+		 -2999,  -2999,  -2999,  -2999,  -2999,  -2999,  -2999,  -2999,
+		 -2999,  -2999,  -2999,  -2999,  -6839,   1004,  -2897,  -2997,
+		 -2997,  -2997,  -2997,  -2997,  -2997,  -2997,  -2997,  -2997,
+		 -2997,  -2997,  -2997,  -2997,  -2997,  -2997,  -2997,  -2997,
+		  3276,  -6858,   3278,   3279,   3280,   3281,  -3097,   3283,
+		  3284,      0,   3287,  -3091,  -3090,   3288,   3289,   3290,
+		  3291,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,    688,    689,    690,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,   6313,      0,   2919,
+		     0,      0,      0,      0,   6326,      0,      0,      0,
+		     0,      0,   6337,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,   6362,
+		  6363,   6364,      0,      0,      0,      0,      0,      0,
+		     0,      0,   6381,   2951,   2951,   2833,   6388,   6389,
+		  2950,   6392,   6393,   2950,   2950,   3201,   3202,   6402,
+		  2950,   6405,   2950,   2950,   2950,   2950,   2950,   2950,
+		  2950,      0,   6422,   6423, -21131,   3204,   6218,   3206,
+		  3207,   3208,   3209,   3210,   3211,   3212,   3213,      0,
+		     0,      0, -11919,      0,      0,      0,      0,      0,
+		     0,      0,  -6895,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,   2824,   2825,      0,      0,   4667,
+		  6505,   6506,   6507,   6508,   6509,   4037,   6511,   6512,
+		  6513,   6514,   6515,   6516,   6517,   6518,   6519,  10305,
+		  6521,   6522,   6523,   6524,   6525,  -3609,   6527,   6528,
+		  6529,   6530,      0,   6533,   6534,   6535,   6536,   6537,
+		  6538,   6539,   6540,   6541,   6542,   6543,   6544,  10385,
+		   272,      0,    629,    629,    629,    629,    629,    629,
+		   629,      0,  32767,   6565,    628,  32767,  32767,    271,
+		 32767,  32767,    621,    269,  32767,  32767,   -120,      0,
+		  -120,   -120,  32767,   -121,   -121,   -121,   -121,   -121,
+		  -121,   -121,   -121,   -121,   -121,   -121,      0,  32767,
+		  -121,  32767,   -122,      0,   -121,   -121,   -121,   -121,
+		 22513,  32767,      0,      0,      0,      0,   3280,   -118,
+		  -118,   -118,   3430,      0,      0,      0,   3438,   3439,
+		     0,   3442,   3443,      0,      0,    251,    252,   3452,
+		     0,   3455,      0,      0,      0,      0,      0,      0,
+		     0,  -2950,   3472,   3473, -24081,    254,   3268,    256,
+		   257,    258,    259,    260,    261,    262,    263,    264,
+		   692,    693,    267,    268,   3225,   3225,   3121,   3225,
+		  -718,   3225,   3225,   -246,   3126,      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,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,    694,      0,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  -3278,  -3278,  -3278,  -3278,
+		 32767,  -7064,  -3279,  -3279,      0,  -3280,  -3280,   6855,
+		 -3280,  -3280,  -3280,  -3280,  -3280,  -3280,  -3280,  -3280,
+		 32767,  -3281,  -3281,  32767,  32767,  -3283,  -3283,  -3283,
+		 -3283,  -7123,  32767,  32767,  -3283,  -3283,  -3283,  32767,
+		 -3284,  32767,  -3285,  32767,  -3286,  32767,  -3287,  -3287,
+		 -3287,  -3287,  32767,  -3288,  -3288,   2985,  32767,  -3160,
+		   557,  -3160,  -3160,  -3160,  -3160,  -3160,  32767,  -3161,
+		 -3161,  -3161,  -3161,  -3290,  -3290,      0,      0,      0,
+		     0,  -3294,  -2938,  -2938,  -2938,  -2938,      0,      0,
+		     0,      0,      0,      0,   2992,  -2945,  -3300,  -2946,
+		 -3300,  -3300,  -2948,  -2948,  -3300,  -3300,  -3300,  -2951,
+		 -3183,  -3183,  -3183,  -3183,  -3183,  -3183,  -3183,  -3183,
+		 -3183,  -6736,  -3183,  -6737,  -6737,  -6737,  -6737,  -6737,
+		 -3183,  -3183,  -3183,  -3183,  -3183,  -3183,  -3183,  20811,
+		 -3183,  18973,  -3183,  17135,  17135,  17135,      0,      0,
+		     0,  13458,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,
+		 -4067,  -4067,  -4067,  -4067,  -4067,   6093,  -4067,  -4067,
+		 -4067,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,
+		 -4067,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,
+		 -4067,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,
+		 -4067,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,
+		 -4067,  -4067,  -4067,  -4067,  -4067,  -4100,  -4067,  -4067,
+		 -4067,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,
+		 -4067,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,
+		 -4067,      0,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,  -3328,   -129,  -4067,  -4067,  -4067,  -4067,
+		 -4067,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,  -4067,
+		  -129,  -3142,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -556,   -556,   -129,   -129,  -3085,
+		 -3084,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   1996,   3834,   3835,   3836,   3837,   3838,
+		  1366,   3840,   3841,   3842,   3843,   3844,   3845,   3846,
+		  3847,   3848,   7634,   3850,   3851,   3852,   3853,   3854,
+		 -6280,   3856,   3857,   3858,   3859,   3860,   3861,   3862,
+		  3863,   3864,   3865,   3866,   3867,   3868,   3869,   3870,
+		  3871,   3872,   7713,   -129,   3773,   3874,   3875,   3876,
+		  3877,   3878,   3879,   3880,   3881,   3882,   3883,   3884,
+		  3885,   3886,   3887,   3888,   3889,   3890,  -2382,   7753,
+		 -2382,  -2382,  -2382,  -2382,   3997,  -2382,  -2382,    903,
+		 -2383,   3996,   3996,  -2381,  -2381,  -2381,  -2381,  -2381,
+		 -2381,  -6221,   3893,   3538,   3539,   3540,   3541,   3542,
+		  3543,   3544,   3545,   3546,   3547,  -2388,   3550,   3906,
+		  3553,   3908,   3909,   3558,   3559,   3912,   3913,   3914,
+		  3566,   3799,   3800,   3801,   3802,   3803,   3804,   3805,
+		  3806,   3807,   7361,   3809,   7364,   7365,   7366,   7367,
+		  7368,   3815,   3816,   3817,   3818,   3819,   3820,   3821,
+		-20172,   3823, -18332,      0,   4183,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,   3870,    101,    916,   3868,   3868,   3868,   3868,
+		  3868,    669,   3868,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0, -12996,      0,      0,      0,
+		   920,    921,    922,    923,    924,    925,    926,    927,
+		     0,   3890,   3463,   3463,   3890,   3890,    934,    935,
+		  1040,    937,   4881,    939,    940,   4412,   1041,   4414,
+		  1042,   4416,   1043,   4418,   1044,   4420,    950,    951,
+		  4425,   4426,    954,    955,    956,    957,    958,    959,
+		   960,    961,    962,    963,    964,    965,    966,    967,
+		   968,    969,    970,    971,    972,    973,    974,    975,
+		   976,    977,    978,    979,    980,    981,    982,    983,
+		   984,    985,    986,    987,    988,    989,    990,    991,
+		   992,    993,    -80,    995,    996,    997,    998,    999,
+		  1000,   1001,   1002,   1003,   1004,   1005,   1006,   1007,
+		  1008,   1009,   1010,   1011,   1012,   1013,   1044,   1045,
+		  1046,   1014,   1015,   1016,   1017,   1018,   1019,   1020,
+		  1021,   1022,   1056,   1057,   1058,   1026,   1027,   1060,
+		  1061,   1062,   1063,   1064,   1065,   1066,   1067,   1068,
+		  1069,   1070,   1071,   1072,   1073,   1074,   1075,   1076,
+		  1077,   1078,   1079,   1080,   1081,   1082,   1083,   1084,
+		  1085,   1086,   1087,   1088,   1089,   1090,   1091,   1092,
+		  1093,   1094,   1095,   1096,   1097,   1098,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,   1406,   1407,
+		  1101,   1102,   1103,   1104,   1105,   1106,   1107,   1108,
+		  1109,   1110,   1111,   1112,   8235,   1114,   1115,   1116,
+		  1117,   1118,   1119,   1120,   1121,   1122,   1123,   1124,
+		  1125,   1126,   1127,   1128,   1129,   1130,   1131,   1132,
+		  1133,   1134,   1135,   1136,   1137,   3298,   3299,   1140,
+		  1141,   1142,   1143,   1144,   1145,   1274,   1275,   1276,
+		  1277,   1278,   1279,   1280,   1281,   1282,   1283,   1284,
+		  1285,   1286,   1287,   1288,   1289,   1290,   1291,   1292,
+		  1293,   1294,   1295,   1296,   1297,   1298,   1299,   1300,
+		  1301,   1302,   1303,   1304,   1305,   1306,   1307,   1308,
+		  1309,   1310,   1311,   1312,   1313,   1314,   1315,   1316,
+		  1317,   1318,   1319,   1320,   1321,   1322,   1323,   1324,
+		  1325,   1326,   1327,   1328,   1329,   1330,   1331,   1332,
+		  1333,   1334,   -822,  -4711,  -4283,  -4282,  -4708,  -4707,
+		  1341,   1342,   1343,   1344,   1345,   1346,   1347,   1348,
+		   729,   1350,   1351,   1352,   1353,   1354,   1355,   1356,
+		  1357,   1358,   1359,   1360,   1361,   1362,   1363,   1364,
+		  1365,   1366,   4815,   1368,   1369,   1370,   1371,   4732,
+		  1373,   1374,   1375,   1376,   1377,   1378,   1379,   1380,
+		  1381,   1382,   1383,   1384,   1385,   1386,   1387,   1388,
+		  1389,   1390,   2899,   2900,   1393,   1394,   1395,   1396,
+		  1397,   1398,   1399,   1400,   1401,   1402,   1403,   1404,
+		  1405,   1406,   1407,   1408,   1409,   1410,   1411,   1412,
+		  1413,   1414,   1415,   1416,   1417,   1418,   1419,   1420,
+		  1421,   1422,   1423,   1424,   1425,   1426,   1427,   1428,
+		  1429,   1430,   1431,   1432,   1433,   1434,   1435,   1436,
+		  1437,   1438,   1439,   1440,   1441,   1442,   1443,   1444,
+		  1445,   1446,   1447,   1448,   1449,   1450,   1451,   1452,
+		  1453,   1454,   1594,   1594,   1594,   1458,   1595,   1595,
+		  1222,   1222,   1222,   1222,   1222,   1590,   1590,  -2250,
+		  5593,   1470,   1593,   1593,   1593,   1593,   1593,   1593,
+		  1593,   1593,   1593,   1593,   1593,   1593,   1593,   1593,
+		  1593,   1593,   1593,   7866,   1489,   7869,   7870,   7871,
+		  7872,   1494,   7874,   7875,   7876,   7877,   1499,   1500,
+		  7878,   7879,   7880,   7881,   7882,   7883,  11724,   1611,
+		  1967,   1967,   1967,   1967,   1967,   1967,   1967,   1967,
+		  1967,   1518,   4741,   3839,   4743,   4744,   4745,   4746,
+		  4747,   4748,   4749,   4750,   4751,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  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,      0,  32767,      0,  32767,  32767,  32767,
+		 32767,      0,  32767,  32767,    -11,      0,      0,      0,
+		 32767,  32767,      0,      0,      0,  32767,      0,      0,
+		    -3,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,   3731,
+		  3732,   3733,   3734,  32767,   3735,   3736,   3737,   3738,
+		 -2197,   3741,   4097,   3744,   4099,   4100,   3749,   3750,
+		  4103,   4104,   4105,   3757,   3990,   3991,   3992,   3993,
+		  3994,   3995,   3996,   3997,   3998,   7552,   4000,  32767,
+		  7555,   7556,  32767,   7557,  32767,  32767,   4004,  32767,
+		  4005,   4006,   4007, -19986,   4009, -18146,   4011, -16306,
+		  4013,   4014,  32767,   4015,   4016,   4017,   4018,  32767,
+		  4019,  32767,   4020,  32767,  32767,  32767,  32767,  32767,
+		 32767,   4021,  32767,  32767,  32767,  32767,   4022,  32767,
+		  4023,  32767,   4024,  32767,   4025,   4026,   4027,  32767,
+		  4028,   4029,  32767,   4030,  32767,  32767,   4031,  32767,
+		  4149,  32767,   4035,  32767,   4036,  32767,   4037,  32767,
+		  1040,   4039,  32767,   4040,  32767,  32767,   7979,   7980,
+		  7981,   7982,  32767,   4160,   4161,   4162,   4163,   4164,
+		  4165,   4166,  32767,   4167,   4168,   4169,   4170,  32767,
+		  4171,   4172,   4173,   4174,  32767,   4175,  32767,   4176,
+		  4177,   4178,   4179,   4180,   4181,   4182,   4183,   4184,
+		  4185,  32767,   4186,   4187,   4188,   4189,   4190,   4191,
+		  4192,   4193,   4194,   4195,   4196,   4197,  -2963,   4199,
+		 -2964,  -2964,  -2964,  32767,  32767,  32767,  32767,  32767,
+		  4203,   4204,   4205,  32767,   4206,   4207,   4208,   4209,
+		  4210,  32767,   4211,   4212,   4213,   4214,   4215,   2016,
+		  4217,   4218,   4219,   4220,   4221,   4222,   4366,   4224,
+		  4225,   4226,   4227,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  -3770,      0,      0,  -2951,  32767,  32767,  -2950,
+		 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,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,    -80,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  10508,    373,    373,    373,
+		   373,    373,    373,    373,    373,    373,    373,      0,
+		     0,      0,      0,      0,    368,    368,  -3472,   4371,
+		   470,    370,    370,    370,    370,    370,    370,    370,
+		   370,    370,    370,    370,    370,    370,    370,    370,
+		   370,    370,   6643,  -3491,   6645,   6646,   6647,   6648,
+		   270,   6650,   6651,   6652,   6653,    275,    276,   6654,
+		  6655,   6656,   6657,   6658,   6659,  10500,    387,    743,
+		   743,    743,    743,    743,    743,    743,    743,    743,
+		   743,   6679,    742,    387,    741,    387,    387,    739,
+		   739,    387,    387,    387,      0,    120,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,  32767,      0,      0,   3390,
+		     0,  32767,      0,      0,      0,      0,  22634,   4303,
+		   121,  32767,  32767,  32767,   3398,      0,      0,      0,
+		  3548,    118,    118,      0,   3555,   3556,    117,   3559,
+		  3560,    117,    117,    368,    369,   3569,    117,   3572,
+		   117,    117,    117,    117,    117,    117,    117,  -2833,
+		  3589,   3590, -23964,    371,   3385,    373,    374,    375,
+		   376,    377,    378,    379,    380,    381,    809,    810,
+		   384,    385,   3342,   3342,   3238,   3342,   -601,   3342,
+		  3342,   -129,   3243,   -129,   3244,   -129,   3245,   -129,
+		  3246,   -129,   -129,    774,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   1835,   -129,   -129,
+		  -129,   -129,   -129,   -129,   -129,   -129,  -2776,  -2424,
+		  -129,   -129,   -129,  27426,  27426,  25589,  25589,  25589,
+		 23752,  23752,  23752,  21915,  21915,  21915,  20078,  20078,
+		 20078,  18241,  18241,  18241,  16404,  16404,  16404,  14567,
+		 14567,  14567,  12730,  12730,  12730,  10893,  10893,  10893,
+		  9056,   9056,   9056,   7219,   7219,   7219,   5382,   5382,
+		  5382,   3545,   3545,   3545,   1708,   1708,   1708,   -129,
+		  -129,   -129,  -1966,   3630,   3631,   3632,      0,      0,
+		 -3273,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,   4579,
+		     0,      0,      0,      0,      0,      0,      0,    961,
+		   961,    961,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,   6144,  -3990,      0,   3717,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		 -1498,      0,    232,    232,    232,    232,    232,    232,
+		   232,    232,    232,    232,    232,    232,    232,    232,
+		   232,    232,    232,    232,    232,    232,    232,    232,
+		   232,    232,    232,    232,    232,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,  -3553,      0,
+		 -3554,  -3554,  -3554,  -3554,  -3554,      0,      0,      0,
+		     0,      0,      0,      0,  23994,      0,  22156,      0,
+		 20318,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,   1773,   1774,      0,
+		 -4218,  -4218,      0,      0,      0,      0,      0,      0,
+		     0,   2998,      0,      0,      0,      0,  -3938,  -3938,
+		 -3938,  -3938,  -3938,  -3938,  -3938,  -3938,  -3938,    129,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		 -3199,      0,  -3938,  -3938,  -3938,  -3938,  -3938,  -3938,
+		 -3938,  -3938,  -3938,  -3938,  -3938,  -3938,      0,  -3013,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,   -427,   -427,      0,      0,  -2956,  -2955,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		  2125,   3963,   3964,   3965,   3966,   3967,   1495,   3969,
+		  3970,   3971,   3972,   3973,   3974,   3975,   3976,   3977,
+		  7763,   3979,   3980,   3981,   3982,   3983,  -6151,   3985,
+		  3986,   3987,   3988,   3989,   3990,   3991,   3992,   3993,
+		  3994,   3995,   3996,   3997,   3998,   3999,   4000,   4001,
+		  7842,      0,   3902,   4003,   4004,   4005,   4006,   4007,
+		  4008,   4009,   4010,   4011,   4012,   4013,   4014,     -1,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,  17525,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,  10160,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,    -33,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,   4067,   3938,
+		  3938,   3938,   3938,   3938,   3938,   3938,   3938,    739,
+		  3938,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,   3938,    925,   3938,
+		  3938,   3938,   3938,   3938,   3938,   3938,   3938,   3938,
+		  3511,   3511,   3938,   3938,    982,    983,   1088,    985,
+		  4929,    987,    988,   4460,   1089,   4462,   1090,   4464,
+		  1091,   4466,   1092,   4468,   4469,   3567,   4471,   4472,
+		  4473,   4474,   4475,   4476,   4477,   4478,   4479,   4480,
+		  4481,      0,  32767,      0,      0,   4482,   4483,   4484,
+		  4485,   4486,   4487,   4488,   4489,   4490,      0,      0,
+		     0,      0,      0,    221,    143,   4491,   4492,    225,
+		     0,      0,      0,  32767,  32767,  32767,  32767,    153,
+		     0,   1075,  32767,   1076,  32767,   1077,   1078,   1079,
+		  1080,   1081,   1082,   1083,   1084,      0,      0,      0,
+		     0,    227,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,    157,      0,      0,      0,      0,
+		   160,      0,      0,      0,      0,    162,      0,      0,
+		     0,      0,    163,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,   -125,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      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,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,   -267,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  -6427,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,    -23,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		   -22,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  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,  32767,  32767,  32767,  32767,      0,      0,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		     0,  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,      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,
+		   106,  32767,  32767,      0,      0,      0,      0,      0,
+		     0,      0,  -3170,      0,  32767,    108,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 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,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,    109,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  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,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  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,    928,  -2961,
+		 -2533,  -2532,  -2958,  -2957,      0,      0,   -104,      0,
+		 -3943,      0,      0,  -3471,    -99,  -3471,    -98,  -3471,
+		   -97,  -3471,    -96,  -3471,      0,      0,  -3473,  -3473,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		  1074,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,  32767,  32767,  32767,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		   -33,    -33,    -33,      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,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  32767,
+		 32767,  32767,  32767,  32767,  32767,  32767,  32767,  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,
+		  3372,      0,   3373,      0,   3374,      0,   3375,      0,
+		     0,    903,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,   1964,      0,      0,      0,      0,
+		     0,      0,      0,      0,  -2647,  -2295,      0,      0,
+		     0,  27555,  27555,  25718,  25718,  25718,  23881,  23881,
+		 23881,  22044,  22044,  22044,  20207,  20207,  20207,  18370,
+		 18370,  18370,  16533,  16533,  16533,  14696,  14696,  14696,
+		 12859,  12859,  12859,  11022,  11022,  11022,   9185,   9185,
+		  9185,   7348,   7348,   7348,   5511,   5511,   5511,   3674,
+		  3674,   3674,   1837,   1837,   1837,      0,      0,      0,
+		     0,      0,   2473,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,  -3785,      0,      0,      0,
+		     0,      0,  10135,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,  -3840,  32767,  32767,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		     0,      0,      0,      0,      0,      0,      0,      0,
+		  6273,  -3861,    129,   3846,    129,    129,    129,    129,
+		   129,    129,    129,    129,    129,    129,      0,      0,
+		   359,      0,    358,      0,      0,    356,    356,    356,
+		   356,    356,    356,    356,    356,    356,    356,   6292,
+		   355,      0,    354,      0,      0,    352,    352,      0,
+		     0,      0,    349,    117,    117,    117,    117,    117,
+		   117,    117,    117,    117,  -3436,
+	};
+
+	const unsigned char *k = (const unsigned char *) key;
+	size_t		keylen = 4;
+	uint32		a = 0;
+	uint32		b = 3;
+
+	while (keylen--)
+	{
+		unsigned char c = *k++;
+
+		a = a * 127 + c;
+		b = b * 2053 + c;
+	}
+	return h[a % 9813] + h[b % 9813];
+}
+
+static const unicode_norm_info UnicodeNormInfo_NFKC_QC = {
+	NFKC_QC_codepoints,
+	NFKC_QC_hash_func,
+	110,
+	4906
+};
+
diff --git a/src/include/parser/kwlist.h b/src/include/parser/kwlist.h
index b1184c2d15..08f22ce211 100644
--- a/src/include/parser/kwlist.h
+++ b/src/include/parser/kwlist.h
@@ -260,8 +260,14 @@ PG_KEYWORD("natural", NATURAL, TYPE_FUNC_NAME_KEYWORD)
 PG_KEYWORD("nchar", NCHAR, COL_NAME_KEYWORD)
 PG_KEYWORD("new", NEW, UNRESERVED_KEYWORD)
 PG_KEYWORD("next", NEXT, UNRESERVED_KEYWORD)
+PG_KEYWORD("nfc", NFC, UNRESERVED_KEYWORD)
+PG_KEYWORD("nfd", NFD, UNRESERVED_KEYWORD)
+PG_KEYWORD("nfkc", NFKC, UNRESERVED_KEYWORD)
+PG_KEYWORD("nfkd", NFKD, UNRESERVED_KEYWORD)
 PG_KEYWORD("no", NO, UNRESERVED_KEYWORD)
 PG_KEYWORD("none", NONE, COL_NAME_KEYWORD)
+PG_KEYWORD("normalize", NORMALIZE, COL_NAME_KEYWORD)
+PG_KEYWORD("normalized", NORMALIZED, UNRESERVED_KEYWORD)
 PG_KEYWORD("not", NOT, RESERVED_KEYWORD)
 PG_KEYWORD("nothing", NOTHING, UNRESERVED_KEYWORD)
 PG_KEYWORD("notify", NOTIFY, UNRESERVED_KEYWORD)
diff --git a/src/test/regress/expected/unicode.out b/src/test/regress/expected/unicode.out
new file mode 100644
index 0000000000..3ae8dd4cd9
--- /dev/null
+++ b/src/test/regress/expected/unicode.out
@@ -0,0 +1,79 @@
+SELECT getdatabaseencoding() <> 'UTF8' AS skip_test \gset
+\if :skip_test
+\quit
+\endif
+SELECT U&'\0061\0308bc' <> U&'\00E4bc' COLLATE "C" AS sanity_check;
+ sanity_check 
+--------------
+ t
+(1 row)
+
+SELECT normalize(U&'\0061\0308\24D1c') = U&'\00E4\24D1c' COLLATE "C" AS test_default;
+ test_default 
+--------------
+ t
+(1 row)
+
+SELECT normalize(U&'\0061\0308\24D1c', NFC) = U&'\00E4\24D1c' COLLATE "C" AS test_nfc;
+ test_nfc 
+----------
+ t
+(1 row)
+
+SELECT normalize(U&'\00E4bc', NFC) = U&'\00E4bc' COLLATE "C" AS test_nfc_idem;
+ test_nfc_idem 
+---------------
+ t
+(1 row)
+
+SELECT normalize(U&'\00E4\24D1c', NFD) = U&'\0061\0308\24D1c' COLLATE "C" AS test_nfd;
+ test_nfd 
+----------
+ t
+(1 row)
+
+SELECT normalize(U&'\0061\0308\24D1c', NFKC) = U&'\00E4bc' COLLATE "C" AS test_nfkc;
+ test_nfkc 
+-----------
+ t
+(1 row)
+
+SELECT normalize(U&'\00E4\24D1c', NFKD) = U&'\0061\0308bc' COLLATE "C" AS test_nfkd;
+ test_nfkd 
+-----------
+ t
+(1 row)
+
+SELECT "normalize"('abc', 'def');  -- run-time error
+ERROR:  invalid normalization form: def
+SELECT U&'\00E4\24D1c' IS NORMALIZED AS test_default;
+ test_default 
+--------------
+ t
+(1 row)
+
+SELECT U&'\00E4\24D1c' IS NFC NORMALIZED AS test_nfc;
+ test_nfc 
+----------
+ t
+(1 row)
+
+SELECT num, val,
+    val IS NFC NORMALIZED AS NFC,
+    val IS NFD NORMALIZED AS NFD,
+    val IS NFKC NORMALIZED AS NFKC,
+    val IS NFKD NORMALIZED AS NFKD
+FROM
+  (VALUES (1, U&'\00E4bc'),
+          (2, U&'\0061\0308bc'),
+          (3, U&'\00E4\24D1c'),
+          (4, U&'\0061\0308\24D1c')) vals (num, val)
+ORDER BY num;
+ num | val | nfc | nfd | nfkc | nfkd 
+-----+-----+-----+-----+------+------
+   1 | äbc | t   | f   | t    | f
+   2 | äbc | f   | t   | f    | t
+   3 | äⓑc | t   | f   | f    | f
+   4 | äⓑc | f   | t   | f    | f
+(4 rows)
+
diff --git a/src/test/regress/expected/unicode_1.out b/src/test/regress/expected/unicode_1.out
new file mode 100644
index 0000000000..8505c4fa55
--- /dev/null
+++ b/src/test/regress/expected/unicode_1.out
@@ -0,0 +1,3 @@
+SELECT getdatabaseencoding() <> 'UTF8' AS skip_test \gset
+\if :skip_test
+\quit
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index d2b17dd3ea..a98dba7b2f 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -27,7 +27,7 @@ test: strings numerology point lseg line box path polygon circle date time timet
 # geometry depends on point, lseg, box, path, polygon and circle
 # horology depends on interval, timetz, timestamp, timestamptz
 # ----------
-test: geometry horology regex oidjoins type_sanity opr_sanity misc_sanity comments expressions
+test: geometry horology regex oidjoins type_sanity opr_sanity misc_sanity comments expressions unicode
 
 # ----------
 # These four each depend on the previous one
diff --git a/src/test/regress/serial_schedule b/src/test/regress/serial_schedule
index acba391332..3f66e0b859 100644
--- a/src/test/regress/serial_schedule
+++ b/src/test/regress/serial_schedule
@@ -49,6 +49,7 @@ test: opr_sanity
 test: misc_sanity
 test: comments
 test: expressions
+test: unicode
 test: create_function_1
 test: create_type
 test: create_table
diff --git a/src/test/regress/sql/unicode.sql b/src/test/regress/sql/unicode.sql
new file mode 100644
index 0000000000..4a3d345641
--- /dev/null
+++ b/src/test/regress/sql/unicode.sql
@@ -0,0 +1,30 @@
+SELECT getdatabaseencoding() <> 'UTF8' AS skip_test \gset
+\if :skip_test
+\quit
+\endif
+
+SELECT U&'\0061\0308bc' <> U&'\00E4bc' COLLATE "C" AS sanity_check;
+
+SELECT normalize(U&'\0061\0308\24D1c') = U&'\00E4\24D1c' COLLATE "C" AS test_default;
+SELECT normalize(U&'\0061\0308\24D1c', NFC) = U&'\00E4\24D1c' COLLATE "C" AS test_nfc;
+SELECT normalize(U&'\00E4bc', NFC) = U&'\00E4bc' COLLATE "C" AS test_nfc_idem;
+SELECT normalize(U&'\00E4\24D1c', NFD) = U&'\0061\0308\24D1c' COLLATE "C" AS test_nfd;
+SELECT normalize(U&'\0061\0308\24D1c', NFKC) = U&'\00E4bc' COLLATE "C" AS test_nfkc;
+SELECT normalize(U&'\00E4\24D1c', NFKD) = U&'\0061\0308bc' COLLATE "C" AS test_nfkd;
+
+SELECT "normalize"('abc', 'def');  -- run-time error
+
+SELECT U&'\00E4\24D1c' IS NORMALIZED AS test_default;
+SELECT U&'\00E4\24D1c' IS NFC NORMALIZED AS test_nfc;
+
+SELECT num, val,
+    val IS NFC NORMALIZED AS NFC,
+    val IS NFD NORMALIZED AS NFD,
+    val IS NFKC NORMALIZED AS NFKC,
+    val IS NFKD NORMALIZED AS NFKD
+FROM
+  (VALUES (1, U&'\00E4bc'),
+          (2, U&'\0061\0308bc'),
+          (3, U&'\00E4\24D1c'),
+          (4, U&'\0061\0308\24D1c')) vals (num, val)
+ORDER BY num;
diff --git a/src/tools/PerfectHash.pm b/src/tools/PerfectHash.pm
index 74fb1f2ef6..5e79b6b632 100644
--- a/src/tools/PerfectHash.pm
+++ b/src/tools/PerfectHash.pm
@@ -81,13 +81,13 @@ sub generate_hash_function
 	# to calculate via shift-and-add, so don't change them without care.
 	# (Commonly, random seeds are tried, but we want reproducible results
 	# from this program so we don't do that.)
-	my $hash_mult1 = 31;
+	my $hash_mult1 = 127;
 	my $hash_mult2;
 	my $hash_seed1;
 	my $hash_seed2;
 	my @subresult;
   FIND_PARAMS:
-	foreach (127, 257, 521, 1033, 2053)
+	foreach (31, 257, 521, 1033, 2053)
 	{
 		$hash_mult2 = $_;    # "foreach $hash_mult2" doesn't work
 		for ($hash_seed1 = 0; $hash_seed1 < 10; $hash_seed1++)
