Update Unicode data to Unicode 16.0.0

Started by Peter Eisentrautabout 1 year ago69 messages
#1Peter Eisentraut
peter@eisentraut.org
1 attachment(s)

Here is the patch to update the Unicode data to version 16.0.0.

Normally, this would have been routine, but a few months ago there was
some debate about how this should be handled. [0]/messages/by-id/d75d2d0d1d2bd45b2c332c47e3e0a67f0640b49c.camel@j-davis.com AFAICT, the consensus
was to go ahead with it, but I just wanted to notify it here to be clear.

[0]: /messages/by-id/d75d2d0d1d2bd45b2c332c47e3e0a67f0640b49c.camel@j-davis.com
/messages/by-id/d75d2d0d1d2bd45b2c332c47e3e0a67f0640b49c.camel@j-davis.com

Attachments:

0001-Update-Unicode-data-to-Unicode-16.0.0.patchtext/plain; charset=UTF-8; name=0001-Update-Unicode-data-to-Unicode-16.0.0.patchDownload
From 02e87860043876c37fd26cc9ae5133e0c3217991 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Mon, 11 Nov 2024 07:21:48 +0100
Subject: [PATCH] Update Unicode data to Unicode 16.0.0

---
 src/Makefile.global.in                        |    2 +-
 src/common/unicode/meson.build                |    2 +-
 src/include/common/unicode_case_table.h       |   56 +-
 src/include/common/unicode_category_table.h   |  184 +-
 .../common/unicode_east_asian_fw_table.h      |   20 +-
 src/include/common/unicode_nonspacing_table.h |   18 +-
 src/include/common/unicode_norm_hashfunc.h    | 4530 +++++++++--------
 src/include/common/unicode_norm_table.h       |  884 ++--
 src/include/common/unicode_normprops_table.h  | 2617 +++++-----
 src/include/common/unicode_version.h          |    2 +-
 10 files changed, 4370 insertions(+), 3945 deletions(-)

diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 0f38d712d15..dea611b4d9e 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -357,7 +357,7 @@ DOWNLOAD = wget -O $@ --no-use-server-timestamps
 # Pick a release from here: <https://www.unicode.org/Public/>.  Note
 # that the most recent release listed there is often a pre-release;
 # don't pick that one, except for testing.
-UNICODE_VERSION = 15.1.0
+UNICODE_VERSION = 16.0.0
 
 # Pick a release from here: <http://cldr.unicode.org/index/downloads>
 CLDR_VERSION = 45
diff --git a/src/common/unicode/meson.build b/src/common/unicode/meson.build
index 38dac59672e..5e37af0b4a8 100644
--- a/src/common/unicode/meson.build
+++ b/src/common/unicode/meson.build
@@ -1,6 +1,6 @@
 # Copyright (c) 2022-2024, PostgreSQL Global Development Group
 
-UNICODE_VERSION = '15.1.0'
+UNICODE_VERSION = '16.0.0'
 
 unicode_data = {}
 unicode_baseurl = 'https://www.unicode.org/Public/@0@/ucd/@1@'
diff --git a/src/include/common/unicode_case_table.h b/src/include/common/unicode_case_table.h
index eeda0458399..e734468ea6a 100644
--- a/src/include/common/unicode_case_table.h
+++ b/src/include/common/unicode_case_table.h
@@ -38,7 +38,7 @@ typedef struct
  * Case mapping table. Dense for codepoints < 0x80 (enabling fast lookup),
  * sparse for higher codepoints (requiring scan or binary search).
  */
-static const pg_case_map case_map[2955] =
+static const pg_case_map case_map[3009] =
 {
 	/* begin dense entries for codepoints < 0x80 */
 	{0x000000, {[CaseLower] = 0x000000,[CaseTitle] = 0x000000,[CaseUpper] = 0x000000}},
@@ -385,6 +385,7 @@ static const pg_case_map case_map[2955] =
 	{0x000198, {[CaseLower] = 0x000199,[CaseTitle] = 0x000198,[CaseUpper] = 0x000198}},
 	{0x000199, {[CaseLower] = 0x000199,[CaseTitle] = 0x000198,[CaseUpper] = 0x000198}},
 	{0x00019a, {[CaseLower] = 0x00019a,[CaseTitle] = 0x00023d,[CaseUpper] = 0x00023d}},
+	{0x00019b, {[CaseLower] = 0x00019b,[CaseTitle] = 0x00a7dc,[CaseUpper] = 0x00a7dc}},
 	{0x00019c, {[CaseLower] = 0x00026f,[CaseTitle] = 0x00019c,[CaseUpper] = 0x00019c}},
 	{0x00019d, {[CaseLower] = 0x000272,[CaseTitle] = 0x00019d,[CaseUpper] = 0x00019d}},
 	{0x00019e, {[CaseLower] = 0x00019e,[CaseTitle] = 0x000220,[CaseUpper] = 0x000220}},
@@ -561,6 +562,7 @@ static const pg_case_map case_map[2955] =
 	{0x000260, {[CaseLower] = 0x000260,[CaseTitle] = 0x000193,[CaseUpper] = 0x000193}},
 	{0x000261, {[CaseLower] = 0x000261,[CaseTitle] = 0x00a7ac,[CaseUpper] = 0x00a7ac}},
 	{0x000263, {[CaseLower] = 0x000263,[CaseTitle] = 0x000194,[CaseUpper] = 0x000194}},
+	{0x000264, {[CaseLower] = 0x000264,[CaseTitle] = 0x00a7cb,[CaseUpper] = 0x00a7cb}},
 	{0x000265, {[CaseLower] = 0x000265,[CaseTitle] = 0x00a78d,[CaseUpper] = 0x00a78d}},
 	{0x000266, {[CaseLower] = 0x000266,[CaseTitle] = 0x00a7aa,[CaseUpper] = 0x00a7aa}},
 	{0x000268, {[CaseLower] = 0x000268,[CaseTitle] = 0x000197,[CaseUpper] = 0x000197}},
@@ -1266,6 +1268,8 @@ static const pg_case_map case_map[2955] =
 	{0x001c86, {[CaseLower] = 0x001c86,[CaseTitle] = 0x00042a,[CaseUpper] = 0x00042a}},
 	{0x001c87, {[CaseLower] = 0x001c87,[CaseTitle] = 0x000462,[CaseUpper] = 0x000462}},
 	{0x001c88, {[CaseLower] = 0x001c88,[CaseTitle] = 0x00a64a,[CaseUpper] = 0x00a64a}},
+	{0x001c89, {[CaseLower] = 0x001c8a,[CaseTitle] = 0x001c89,[CaseUpper] = 0x001c89}},
+	{0x001c8a, {[CaseLower] = 0x001c8a,[CaseTitle] = 0x001c89,[CaseUpper] = 0x001c89}},
 	{0x001c90, {[CaseLower] = 0x0010d0,[CaseTitle] = 0x001c90,[CaseUpper] = 0x001c90}},
 	{0x001c91, {[CaseLower] = 0x0010d1,[CaseTitle] = 0x001c91,[CaseUpper] = 0x001c91}},
 	{0x001c92, {[CaseLower] = 0x0010d2,[CaseTitle] = 0x001c92,[CaseUpper] = 0x001c92}},
@@ -2337,12 +2341,18 @@ static const pg_case_map case_map[2955] =
 	{0x00a7c8, {[CaseLower] = 0x00a7c8,[CaseTitle] = 0x00a7c7,[CaseUpper] = 0x00a7c7}},
 	{0x00a7c9, {[CaseLower] = 0x00a7ca,[CaseTitle] = 0x00a7c9,[CaseUpper] = 0x00a7c9}},
 	{0x00a7ca, {[CaseLower] = 0x00a7ca,[CaseTitle] = 0x00a7c9,[CaseUpper] = 0x00a7c9}},
+	{0x00a7cb, {[CaseLower] = 0x000264,[CaseTitle] = 0x00a7cb,[CaseUpper] = 0x00a7cb}},
+	{0x00a7cc, {[CaseLower] = 0x00a7cd,[CaseTitle] = 0x00a7cc,[CaseUpper] = 0x00a7cc}},
+	{0x00a7cd, {[CaseLower] = 0x00a7cd,[CaseTitle] = 0x00a7cc,[CaseUpper] = 0x00a7cc}},
 	{0x00a7d0, {[CaseLower] = 0x00a7d1,[CaseTitle] = 0x00a7d0,[CaseUpper] = 0x00a7d0}},
 	{0x00a7d1, {[CaseLower] = 0x00a7d1,[CaseTitle] = 0x00a7d0,[CaseUpper] = 0x00a7d0}},
 	{0x00a7d6, {[CaseLower] = 0x00a7d7,[CaseTitle] = 0x00a7d6,[CaseUpper] = 0x00a7d6}},
 	{0x00a7d7, {[CaseLower] = 0x00a7d7,[CaseTitle] = 0x00a7d6,[CaseUpper] = 0x00a7d6}},
 	{0x00a7d8, {[CaseLower] = 0x00a7d9,[CaseTitle] = 0x00a7d8,[CaseUpper] = 0x00a7d8}},
 	{0x00a7d9, {[CaseLower] = 0x00a7d9,[CaseTitle] = 0x00a7d8,[CaseUpper] = 0x00a7d8}},
+	{0x00a7da, {[CaseLower] = 0x00a7db,[CaseTitle] = 0x00a7da,[CaseUpper] = 0x00a7da}},
+	{0x00a7db, {[CaseLower] = 0x00a7db,[CaseTitle] = 0x00a7da,[CaseUpper] = 0x00a7da}},
+	{0x00a7dc, {[CaseLower] = 0x00019b,[CaseTitle] = 0x00a7dc,[CaseUpper] = 0x00a7dc}},
 	{0x00a7f5, {[CaseLower] = 0x00a7f6,[CaseTitle] = 0x00a7f5,[CaseUpper] = 0x00a7f5}},
 	{0x00a7f6, {[CaseLower] = 0x00a7f6,[CaseTitle] = 0x00a7f5,[CaseUpper] = 0x00a7f5}},
 	{0x00ab53, {[CaseLower] = 0x00ab53,[CaseTitle] = 0x00a7b3,[CaseUpper] = 0x00a7b3}},
@@ -2802,6 +2812,50 @@ static const pg_case_map case_map[2955] =
 	{0x010cf0, {[CaseLower] = 0x010cf0,[CaseTitle] = 0x010cb0,[CaseUpper] = 0x010cb0}},
 	{0x010cf1, {[CaseLower] = 0x010cf1,[CaseTitle] = 0x010cb1,[CaseUpper] = 0x010cb1}},
 	{0x010cf2, {[CaseLower] = 0x010cf2,[CaseTitle] = 0x010cb2,[CaseUpper] = 0x010cb2}},
+	{0x010d50, {[CaseLower] = 0x010d70,[CaseTitle] = 0x010d50,[CaseUpper] = 0x010d50}},
+	{0x010d51, {[CaseLower] = 0x010d71,[CaseTitle] = 0x010d51,[CaseUpper] = 0x010d51}},
+	{0x010d52, {[CaseLower] = 0x010d72,[CaseTitle] = 0x010d52,[CaseUpper] = 0x010d52}},
+	{0x010d53, {[CaseLower] = 0x010d73,[CaseTitle] = 0x010d53,[CaseUpper] = 0x010d53}},
+	{0x010d54, {[CaseLower] = 0x010d74,[CaseTitle] = 0x010d54,[CaseUpper] = 0x010d54}},
+	{0x010d55, {[CaseLower] = 0x010d75,[CaseTitle] = 0x010d55,[CaseUpper] = 0x010d55}},
+	{0x010d56, {[CaseLower] = 0x010d76,[CaseTitle] = 0x010d56,[CaseUpper] = 0x010d56}},
+	{0x010d57, {[CaseLower] = 0x010d77,[CaseTitle] = 0x010d57,[CaseUpper] = 0x010d57}},
+	{0x010d58, {[CaseLower] = 0x010d78,[CaseTitle] = 0x010d58,[CaseUpper] = 0x010d58}},
+	{0x010d59, {[CaseLower] = 0x010d79,[CaseTitle] = 0x010d59,[CaseUpper] = 0x010d59}},
+	{0x010d5a, {[CaseLower] = 0x010d7a,[CaseTitle] = 0x010d5a,[CaseUpper] = 0x010d5a}},
+	{0x010d5b, {[CaseLower] = 0x010d7b,[CaseTitle] = 0x010d5b,[CaseUpper] = 0x010d5b}},
+	{0x010d5c, {[CaseLower] = 0x010d7c,[CaseTitle] = 0x010d5c,[CaseUpper] = 0x010d5c}},
+	{0x010d5d, {[CaseLower] = 0x010d7d,[CaseTitle] = 0x010d5d,[CaseUpper] = 0x010d5d}},
+	{0x010d5e, {[CaseLower] = 0x010d7e,[CaseTitle] = 0x010d5e,[CaseUpper] = 0x010d5e}},
+	{0x010d5f, {[CaseLower] = 0x010d7f,[CaseTitle] = 0x010d5f,[CaseUpper] = 0x010d5f}},
+	{0x010d60, {[CaseLower] = 0x010d80,[CaseTitle] = 0x010d60,[CaseUpper] = 0x010d60}},
+	{0x010d61, {[CaseLower] = 0x010d81,[CaseTitle] = 0x010d61,[CaseUpper] = 0x010d61}},
+	{0x010d62, {[CaseLower] = 0x010d82,[CaseTitle] = 0x010d62,[CaseUpper] = 0x010d62}},
+	{0x010d63, {[CaseLower] = 0x010d83,[CaseTitle] = 0x010d63,[CaseUpper] = 0x010d63}},
+	{0x010d64, {[CaseLower] = 0x010d84,[CaseTitle] = 0x010d64,[CaseUpper] = 0x010d64}},
+	{0x010d65, {[CaseLower] = 0x010d85,[CaseTitle] = 0x010d65,[CaseUpper] = 0x010d65}},
+	{0x010d70, {[CaseLower] = 0x010d70,[CaseTitle] = 0x010d50,[CaseUpper] = 0x010d50}},
+	{0x010d71, {[CaseLower] = 0x010d71,[CaseTitle] = 0x010d51,[CaseUpper] = 0x010d51}},
+	{0x010d72, {[CaseLower] = 0x010d72,[CaseTitle] = 0x010d52,[CaseUpper] = 0x010d52}},
+	{0x010d73, {[CaseLower] = 0x010d73,[CaseTitle] = 0x010d53,[CaseUpper] = 0x010d53}},
+	{0x010d74, {[CaseLower] = 0x010d74,[CaseTitle] = 0x010d54,[CaseUpper] = 0x010d54}},
+	{0x010d75, {[CaseLower] = 0x010d75,[CaseTitle] = 0x010d55,[CaseUpper] = 0x010d55}},
+	{0x010d76, {[CaseLower] = 0x010d76,[CaseTitle] = 0x010d56,[CaseUpper] = 0x010d56}},
+	{0x010d77, {[CaseLower] = 0x010d77,[CaseTitle] = 0x010d57,[CaseUpper] = 0x010d57}},
+	{0x010d78, {[CaseLower] = 0x010d78,[CaseTitle] = 0x010d58,[CaseUpper] = 0x010d58}},
+	{0x010d79, {[CaseLower] = 0x010d79,[CaseTitle] = 0x010d59,[CaseUpper] = 0x010d59}},
+	{0x010d7a, {[CaseLower] = 0x010d7a,[CaseTitle] = 0x010d5a,[CaseUpper] = 0x010d5a}},
+	{0x010d7b, {[CaseLower] = 0x010d7b,[CaseTitle] = 0x010d5b,[CaseUpper] = 0x010d5b}},
+	{0x010d7c, {[CaseLower] = 0x010d7c,[CaseTitle] = 0x010d5c,[CaseUpper] = 0x010d5c}},
+	{0x010d7d, {[CaseLower] = 0x010d7d,[CaseTitle] = 0x010d5d,[CaseUpper] = 0x010d5d}},
+	{0x010d7e, {[CaseLower] = 0x010d7e,[CaseTitle] = 0x010d5e,[CaseUpper] = 0x010d5e}},
+	{0x010d7f, {[CaseLower] = 0x010d7f,[CaseTitle] = 0x010d5f,[CaseUpper] = 0x010d5f}},
+	{0x010d80, {[CaseLower] = 0x010d80,[CaseTitle] = 0x010d60,[CaseUpper] = 0x010d60}},
+	{0x010d81, {[CaseLower] = 0x010d81,[CaseTitle] = 0x010d61,[CaseUpper] = 0x010d61}},
+	{0x010d82, {[CaseLower] = 0x010d82,[CaseTitle] = 0x010d62,[CaseUpper] = 0x010d62}},
+	{0x010d83, {[CaseLower] = 0x010d83,[CaseTitle] = 0x010d63,[CaseUpper] = 0x010d63}},
+	{0x010d84, {[CaseLower] = 0x010d84,[CaseTitle] = 0x010d64,[CaseUpper] = 0x010d64}},
+	{0x010d85, {[CaseLower] = 0x010d85,[CaseTitle] = 0x010d65,[CaseUpper] = 0x010d65}},
 	{0x0118a0, {[CaseLower] = 0x0118c0,[CaseTitle] = 0x0118a0,[CaseUpper] = 0x0118a0}},
 	{0x0118a1, {[CaseLower] = 0x0118c1,[CaseTitle] = 0x0118a1,[CaseUpper] = 0x0118a1}},
 	{0x0118a2, {[CaseLower] = 0x0118c2,[CaseTitle] = 0x0118a2,[CaseUpper] = 0x0118a2}},
diff --git a/src/include/common/unicode_category_table.h b/src/include/common/unicode_category_table.h
index 65ea5141fca..f0bda25c422 100644
--- a/src/include/common/unicode_category_table.h
+++ b/src/include/common/unicode_category_table.h
@@ -696,7 +696,7 @@ static const pg_unicode_properties unicode_opt_ascii[128] =
 };
 
 /* table of Unicode codepoint ranges and their categories */
-static const pg_category_range unicode_categories[3302] =
+static const pg_category_range unicode_categories[3368] =
 {
 	{0x000000, 0x00001f, PG_U_CONTROL},
 	{0x000020, 0x000020, PG_U_SPACE_SEPARATOR},
@@ -1408,7 +1408,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x000888, 0x000888, PG_U_MODIFIER_SYMBOL},
 	{0x000889, 0x00088e, PG_U_OTHER_LETTER},
 	{0x000890, 0x000891, PG_U_FORMAT},
-	{0x000898, 0x00089f, PG_U_NONSPACING_MARK},
+	{0x000897, 0x00089f, PG_U_NONSPACING_MARK},
 	{0x0008a0, 0x0008c8, PG_U_OTHER_LETTER},
 	{0x0008c9, 0x0008c9, PG_U_MODIFIER_LETTER},
 	{0x0008ca, 0x0008e1, PG_U_NONSPACING_MARK},
@@ -1887,12 +1887,13 @@ static const pg_category_range unicode_categories[3302] =
 	{0x001b42, 0x001b42, PG_U_NONSPACING_MARK},
 	{0x001b43, 0x001b44, PG_U_SPACING_MARK},
 	{0x001b45, 0x001b4c, PG_U_OTHER_LETTER},
+	{0x001b4e, 0x001b4f, PG_U_OTHER_PUNCTUATION},
 	{0x001b50, 0x001b59, PG_U_DECIMAL_NUMBER},
 	{0x001b5a, 0x001b60, PG_U_OTHER_PUNCTUATION},
 	{0x001b61, 0x001b6a, PG_U_OTHER_SYMBOL},
 	{0x001b6b, 0x001b73, PG_U_NONSPACING_MARK},
 	{0x001b74, 0x001b7c, PG_U_OTHER_SYMBOL},
-	{0x001b7d, 0x001b7e, PG_U_OTHER_PUNCTUATION},
+	{0x001b7d, 0x001b7f, PG_U_OTHER_PUNCTUATION},
 	{0x001b80, 0x001b81, PG_U_NONSPACING_MARK},
 	{0x001b82, 0x001b82, PG_U_SPACING_MARK},
 	{0x001b83, 0x001ba0, PG_U_OTHER_LETTER},
@@ -1927,6 +1928,8 @@ static const pg_category_range unicode_categories[3302] =
 	{0x001c78, 0x001c7d, PG_U_MODIFIER_LETTER},
 	{0x001c7e, 0x001c7f, PG_U_OTHER_PUNCTUATION},
 	{0x001c80, 0x001c88, PG_U_LOWERCASE_LETTER},
+	{0x001c89, 0x001c89, PG_U_UPPERCASE_LETTER},
+	{0x001c8a, 0x001c8a, PG_U_LOWERCASE_LETTER},
 	{0x001c90, 0x001cba, PG_U_UPPERCASE_LETTER},
 	{0x001cbd, 0x001cbf, PG_U_UPPERCASE_LETTER},
 	{0x001cc0, 0x001cc7, PG_U_OTHER_PUNCTUATION},
@@ -2378,7 +2381,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x00239b, 0x0023b3, PG_U_MATH_SYMBOL},
 	{0x0023b4, 0x0023db, PG_U_OTHER_SYMBOL},
 	{0x0023dc, 0x0023e1, PG_U_MATH_SYMBOL},
-	{0x0023e2, 0x002426, PG_U_OTHER_SYMBOL},
+	{0x0023e2, 0x002429, PG_U_OTHER_SYMBOL},
 	{0x002440, 0x00244a, PG_U_OTHER_SYMBOL},
 	{0x002460, 0x00249b, PG_U_OTHER_NUMBER},
 	{0x00249c, 0x0024e9, PG_U_OTHER_SYMBOL},
@@ -2719,7 +2722,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x003192, 0x003195, PG_U_OTHER_NUMBER},
 	{0x003196, 0x00319f, PG_U_OTHER_SYMBOL},
 	{0x0031a0, 0x0031bf, PG_U_OTHER_LETTER},
-	{0x0031c0, 0x0031e3, PG_U_OTHER_SYMBOL},
+	{0x0031c0, 0x0031e5, PG_U_OTHER_SYMBOL},
 	{0x0031ef, 0x0031ef, PG_U_OTHER_SYMBOL},
 	{0x0031f0, 0x0031ff, PG_U_OTHER_LETTER},
 	{0x003200, 0x00321e, PG_U_OTHER_SYMBOL},
@@ -2983,6 +2986,8 @@ static const pg_category_range unicode_categories[3302] =
 	{0x00a7c8, 0x00a7c8, PG_U_LOWERCASE_LETTER},
 	{0x00a7c9, 0x00a7c9, PG_U_UPPERCASE_LETTER},
 	{0x00a7ca, 0x00a7ca, PG_U_LOWERCASE_LETTER},
+	{0x00a7cb, 0x00a7cc, PG_U_UPPERCASE_LETTER},
+	{0x00a7cd, 0x00a7cd, PG_U_LOWERCASE_LETTER},
 	{0x00a7d0, 0x00a7d0, PG_U_UPPERCASE_LETTER},
 	{0x00a7d1, 0x00a7d1, PG_U_LOWERCASE_LETTER},
 	{0x00a7d3, 0x00a7d3, PG_U_LOWERCASE_LETTER},
@@ -2991,6 +2996,9 @@ static const pg_category_range unicode_categories[3302] =
 	{0x00a7d7, 0x00a7d7, PG_U_LOWERCASE_LETTER},
 	{0x00a7d8, 0x00a7d8, PG_U_UPPERCASE_LETTER},
 	{0x00a7d9, 0x00a7d9, PG_U_LOWERCASE_LETTER},
+	{0x00a7da, 0x00a7da, PG_U_UPPERCASE_LETTER},
+	{0x00a7db, 0x00a7db, PG_U_LOWERCASE_LETTER},
+	{0x00a7dc, 0x00a7dc, PG_U_UPPERCASE_LETTER},
 	{0x00a7f2, 0x00a7f4, PG_U_MODIFIER_LETTER},
 	{0x00a7f5, 0x00a7f5, PG_U_UPPERCASE_LETTER},
 	{0x00a7f6, 0x00a7f6, PG_U_LOWERCASE_LETTER},
@@ -3306,6 +3314,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x0105a3, 0x0105b1, PG_U_LOWERCASE_LETTER},
 	{0x0105b3, 0x0105b9, PG_U_LOWERCASE_LETTER},
 	{0x0105bb, 0x0105bc, PG_U_LOWERCASE_LETTER},
+	{0x0105c0, 0x0105f3, PG_U_OTHER_LETTER},
 	{0x010600, 0x010736, PG_U_OTHER_LETTER},
 	{0x010740, 0x010755, PG_U_OTHER_LETTER},
 	{0x010760, 0x010767, PG_U_OTHER_LETTER},
@@ -3376,12 +3385,23 @@ static const pg_category_range unicode_categories[3302] =
 	{0x010d00, 0x010d23, PG_U_OTHER_LETTER},
 	{0x010d24, 0x010d27, PG_U_NONSPACING_MARK},
 	{0x010d30, 0x010d39, PG_U_DECIMAL_NUMBER},
+	{0x010d40, 0x010d49, PG_U_DECIMAL_NUMBER},
+	{0x010d4a, 0x010d4d, PG_U_OTHER_LETTER},
+	{0x010d4e, 0x010d4e, PG_U_MODIFIER_LETTER},
+	{0x010d4f, 0x010d4f, PG_U_OTHER_LETTER},
+	{0x010d50, 0x010d65, PG_U_UPPERCASE_LETTER},
+	{0x010d69, 0x010d6d, PG_U_NONSPACING_MARK},
+	{0x010d6e, 0x010d6e, PG_U_DASH_PUNCTUATION},
+	{0x010d6f, 0x010d6f, PG_U_MODIFIER_LETTER},
+	{0x010d70, 0x010d85, PG_U_LOWERCASE_LETTER},
+	{0x010d8e, 0x010d8f, PG_U_MATH_SYMBOL},
 	{0x010e60, 0x010e7e, PG_U_OTHER_NUMBER},
 	{0x010e80, 0x010ea9, PG_U_OTHER_LETTER},
 	{0x010eab, 0x010eac, PG_U_NONSPACING_MARK},
 	{0x010ead, 0x010ead, PG_U_DASH_PUNCTUATION},
 	{0x010eb0, 0x010eb1, PG_U_OTHER_LETTER},
-	{0x010efd, 0x010eff, PG_U_NONSPACING_MARK},
+	{0x010ec2, 0x010ec4, PG_U_OTHER_LETTER},
+	{0x010efc, 0x010eff, PG_U_NONSPACING_MARK},
 	{0x010f00, 0x010f1c, PG_U_OTHER_LETTER},
 	{0x010f1d, 0x010f26, PG_U_OTHER_NUMBER},
 	{0x010f27, 0x010f27, PG_U_OTHER_LETTER},
@@ -3497,6 +3517,26 @@ static const pg_category_range unicode_categories[3302] =
 	{0x011362, 0x011363, PG_U_SPACING_MARK},
 	{0x011366, 0x01136c, PG_U_NONSPACING_MARK},
 	{0x011370, 0x011374, PG_U_NONSPACING_MARK},
+	{0x011380, 0x011389, PG_U_OTHER_LETTER},
+	{0x01138b, 0x01138b, PG_U_OTHER_LETTER},
+	{0x01138e, 0x01138e, PG_U_OTHER_LETTER},
+	{0x011390, 0x0113b5, PG_U_OTHER_LETTER},
+	{0x0113b7, 0x0113b7, PG_U_OTHER_LETTER},
+	{0x0113b8, 0x0113ba, PG_U_SPACING_MARK},
+	{0x0113bb, 0x0113c0, PG_U_NONSPACING_MARK},
+	{0x0113c2, 0x0113c2, PG_U_SPACING_MARK},
+	{0x0113c5, 0x0113c5, PG_U_SPACING_MARK},
+	{0x0113c7, 0x0113ca, PG_U_SPACING_MARK},
+	{0x0113cc, 0x0113cd, PG_U_SPACING_MARK},
+	{0x0113ce, 0x0113ce, PG_U_NONSPACING_MARK},
+	{0x0113cf, 0x0113cf, PG_U_SPACING_MARK},
+	{0x0113d0, 0x0113d0, PG_U_NONSPACING_MARK},
+	{0x0113d1, 0x0113d1, PG_U_OTHER_LETTER},
+	{0x0113d2, 0x0113d2, PG_U_NONSPACING_MARK},
+	{0x0113d3, 0x0113d3, PG_U_OTHER_LETTER},
+	{0x0113d4, 0x0113d5, PG_U_OTHER_PUNCTUATION},
+	{0x0113d7, 0x0113d8, PG_U_OTHER_PUNCTUATION},
+	{0x0113e1, 0x0113e2, PG_U_NONSPACING_MARK},
 	{0x011400, 0x011434, PG_U_OTHER_LETTER},
 	{0x011435, 0x011437, PG_U_SPACING_MARK},
 	{0x011438, 0x01143f, PG_U_NONSPACING_MARK},
@@ -3556,8 +3596,11 @@ static const pg_category_range unicode_categories[3302] =
 	{0x0116b8, 0x0116b8, PG_U_OTHER_LETTER},
 	{0x0116b9, 0x0116b9, PG_U_OTHER_PUNCTUATION},
 	{0x0116c0, 0x0116c9, PG_U_DECIMAL_NUMBER},
+	{0x0116d0, 0x0116e3, PG_U_DECIMAL_NUMBER},
 	{0x011700, 0x01171a, PG_U_OTHER_LETTER},
-	{0x01171d, 0x01171f, PG_U_NONSPACING_MARK},
+	{0x01171d, 0x01171d, PG_U_NONSPACING_MARK},
+	{0x01171e, 0x01171e, PG_U_SPACING_MARK},
+	{0x01171f, 0x01171f, PG_U_NONSPACING_MARK},
 	{0x011720, 0x011721, PG_U_SPACING_MARK},
 	{0x011722, 0x011725, PG_U_NONSPACING_MARK},
 	{0x011726, 0x011726, PG_U_SPACING_MARK},
@@ -3627,6 +3670,9 @@ static const pg_category_range unicode_categories[3302] =
 	{0x011a9e, 0x011aa2, PG_U_OTHER_PUNCTUATION},
 	{0x011ab0, 0x011af8, PG_U_OTHER_LETTER},
 	{0x011b00, 0x011b09, PG_U_OTHER_PUNCTUATION},
+	{0x011bc0, 0x011be0, PG_U_OTHER_LETTER},
+	{0x011be1, 0x011be1, PG_U_OTHER_PUNCTUATION},
+	{0x011bf0, 0x011bf9, PG_U_DECIMAL_NUMBER},
 	{0x011c00, 0x011c08, PG_U_OTHER_LETTER},
 	{0x011c0a, 0x011c2e, PG_U_OTHER_LETTER},
 	{0x011c2f, 0x011c2f, PG_U_SPACING_MARK},
@@ -3685,6 +3731,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x011f42, 0x011f42, PG_U_NONSPACING_MARK},
 	{0x011f43, 0x011f4f, PG_U_OTHER_PUNCTUATION},
 	{0x011f50, 0x011f59, PG_U_DECIMAL_NUMBER},
+	{0x011f5a, 0x011f5a, PG_U_NONSPACING_MARK},
 	{0x011fb0, 0x011fb0, PG_U_OTHER_LETTER},
 	{0x011fc0, 0x011fd4, PG_U_OTHER_NUMBER},
 	{0x011fd5, 0x011fdc, PG_U_OTHER_SYMBOL},
@@ -3702,7 +3749,13 @@ static const pg_category_range unicode_categories[3302] =
 	{0x013440, 0x013440, PG_U_NONSPACING_MARK},
 	{0x013441, 0x013446, PG_U_OTHER_LETTER},
 	{0x013447, 0x013455, PG_U_NONSPACING_MARK},
+	{0x013460, 0x0143fa, PG_U_OTHER_LETTER},
 	{0x014400, 0x014646, PG_U_OTHER_LETTER},
+	{0x016100, 0x01611d, PG_U_OTHER_LETTER},
+	{0x01611e, 0x016129, PG_U_NONSPACING_MARK},
+	{0x01612a, 0x01612c, PG_U_SPACING_MARK},
+	{0x01612d, 0x01612f, PG_U_NONSPACING_MARK},
+	{0x016130, 0x016139, PG_U_DECIMAL_NUMBER},
 	{0x016800, 0x016a38, PG_U_OTHER_LETTER},
 	{0x016a40, 0x016a5e, PG_U_OTHER_LETTER},
 	{0x016a60, 0x016a69, PG_U_DECIMAL_NUMBER},
@@ -3723,6 +3776,11 @@ static const pg_category_range unicode_categories[3302] =
 	{0x016b5b, 0x016b61, PG_U_OTHER_NUMBER},
 	{0x016b63, 0x016b77, PG_U_OTHER_LETTER},
 	{0x016b7d, 0x016b8f, PG_U_OTHER_LETTER},
+	{0x016d40, 0x016d42, PG_U_MODIFIER_LETTER},
+	{0x016d43, 0x016d6a, PG_U_OTHER_LETTER},
+	{0x016d6b, 0x016d6c, PG_U_MODIFIER_LETTER},
+	{0x016d6d, 0x016d6f, PG_U_OTHER_PUNCTUATION},
+	{0x016d70, 0x016d79, PG_U_DECIMAL_NUMBER},
 	{0x016e40, 0x016e5f, PG_U_UPPERCASE_LETTER},
 	{0x016e60, 0x016e7f, PG_U_LOWERCASE_LETTER},
 	{0x016e80, 0x016e96, PG_U_OTHER_NUMBER},
@@ -3740,7 +3798,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x016ff0, 0x016ff1, PG_U_SPACING_MARK},
 	{0x017000, 0x0187f7, PG_U_OTHER_LETTER},
 	{0x018800, 0x018cd5, PG_U_OTHER_LETTER},
-	{0x018d00, 0x018d08, PG_U_OTHER_LETTER},
+	{0x018cff, 0x018d08, PG_U_OTHER_LETTER},
 	{0x01aff0, 0x01aff3, PG_U_MODIFIER_LETTER},
 	{0x01aff5, 0x01affb, PG_U_MODIFIER_LETTER},
 	{0x01affd, 0x01affe, PG_U_MODIFIER_LETTER},
@@ -3758,6 +3816,9 @@ static const pg_category_range unicode_categories[3302] =
 	{0x01bc9d, 0x01bc9e, PG_U_NONSPACING_MARK},
 	{0x01bc9f, 0x01bc9f, PG_U_OTHER_PUNCTUATION},
 	{0x01bca0, 0x01bca3, PG_U_FORMAT},
+	{0x01cc00, 0x01ccef, PG_U_OTHER_SYMBOL},
+	{0x01ccf0, 0x01ccf9, PG_U_DECIMAL_NUMBER},
+	{0x01cd00, 0x01ceb3, PG_U_OTHER_SYMBOL},
 	{0x01cf00, 0x01cf2d, PG_U_NONSPACING_MARK},
 	{0x01cf30, 0x01cf46, PG_U_NONSPACING_MARK},
 	{0x01cf50, 0x01cfc3, PG_U_OTHER_SYMBOL},
@@ -3891,6 +3952,11 @@ static const pg_category_range unicode_categories[3302] =
 	{0x01e4eb, 0x01e4eb, PG_U_MODIFIER_LETTER},
 	{0x01e4ec, 0x01e4ef, PG_U_NONSPACING_MARK},
 	{0x01e4f0, 0x01e4f9, PG_U_DECIMAL_NUMBER},
+	{0x01e5d0, 0x01e5ed, PG_U_OTHER_LETTER},
+	{0x01e5ee, 0x01e5ef, PG_U_NONSPACING_MARK},
+	{0x01e5f0, 0x01e5f0, PG_U_OTHER_LETTER},
+	{0x01e5f1, 0x01e5fa, PG_U_DECIMAL_NUMBER},
+	{0x01e5ff, 0x01e5ff, PG_U_OTHER_PUNCTUATION},
 	{0x01e7e0, 0x01e7e6, PG_U_OTHER_LETTER},
 	{0x01e7e8, 0x01e7eb, PG_U_OTHER_LETTER},
 	{0x01e7ed, 0x01e7ee, PG_U_OTHER_LETTER},
@@ -3973,18 +4039,18 @@ static const pg_category_range unicode_categories[3302] =
 	{0x01f850, 0x01f859, PG_U_OTHER_SYMBOL},
 	{0x01f860, 0x01f887, PG_U_OTHER_SYMBOL},
 	{0x01f890, 0x01f8ad, PG_U_OTHER_SYMBOL},
-	{0x01f8b0, 0x01f8b1, PG_U_OTHER_SYMBOL},
+	{0x01f8b0, 0x01f8bb, PG_U_OTHER_SYMBOL},
+	{0x01f8c0, 0x01f8c1, PG_U_OTHER_SYMBOL},
 	{0x01f900, 0x01fa53, PG_U_OTHER_SYMBOL},
 	{0x01fa60, 0x01fa6d, PG_U_OTHER_SYMBOL},
 	{0x01fa70, 0x01fa7c, PG_U_OTHER_SYMBOL},
-	{0x01fa80, 0x01fa88, PG_U_OTHER_SYMBOL},
-	{0x01fa90, 0x01fabd, PG_U_OTHER_SYMBOL},
-	{0x01fabf, 0x01fac5, PG_U_OTHER_SYMBOL},
-	{0x01face, 0x01fadb, PG_U_OTHER_SYMBOL},
-	{0x01fae0, 0x01fae8, PG_U_OTHER_SYMBOL},
+	{0x01fa80, 0x01fa89, PG_U_OTHER_SYMBOL},
+	{0x01fa8f, 0x01fac6, PG_U_OTHER_SYMBOL},
+	{0x01face, 0x01fadc, PG_U_OTHER_SYMBOL},
+	{0x01fadf, 0x01fae9, PG_U_OTHER_SYMBOL},
 	{0x01faf0, 0x01faf8, PG_U_OTHER_SYMBOL},
 	{0x01fb00, 0x01fb92, PG_U_OTHER_SYMBOL},
-	{0x01fb94, 0x01fbca, PG_U_OTHER_SYMBOL},
+	{0x01fb94, 0x01fbef, PG_U_OTHER_SYMBOL},
 	{0x01fbf0, 0x01fbf9, PG_U_DECIMAL_NUMBER},
 	{0x020000, 0x02a6df, PG_U_OTHER_LETTER},
 	{0x02a700, 0x02b739, PG_U_OTHER_LETTER},
@@ -4003,7 +4069,7 @@ static const pg_category_range unicode_categories[3302] =
 };
 
 /* table of Unicode codepoint ranges of Alphabetic characters */
-static const pg_unicode_range unicode_alphabetic[1141] =
+static const pg_unicode_range unicode_alphabetic[1179] =
 {
 	{0x000041, 0x00005a},
 	{0x000061, 0x00007a},
@@ -4025,6 +4091,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x0002ec, 0x0002ec},
 	{0x0002ee, 0x0002ee},
 	{0x000345, 0x000345},
+	{0x000363, 0x00036f},
 	{0x000370, 0x000373},
 	{0x000374, 0x000374},
 	{0x000376, 0x000377},
@@ -4088,6 +4155,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x000860, 0x00086a},
 	{0x000870, 0x000887},
 	{0x000889, 0x00088e},
+	{0x000897, 0x000897},
 	{0x0008a0, 0x0008c8},
 	{0x0008c9, 0x0008c9},
 	{0x0008d4, 0x0008df},
@@ -4455,7 +4523,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x001c4d, 0x001c4f},
 	{0x001c5a, 0x001c77},
 	{0x001c78, 0x001c7d},
-	{0x001c80, 0x001c88},
+	{0x001c80, 0x001c8a},
 	{0x001c90, 0x001cba},
 	{0x001cbd, 0x001cbf},
 	{0x001ce9, 0x001cec},
@@ -4468,7 +4536,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x001d78, 0x001d78},
 	{0x001d79, 0x001d9a},
 	{0x001d9b, 0x001dbf},
-	{0x001de7, 0x001df4},
+	{0x001dd3, 0x001df4},
 	{0x001e00, 0x001f15},
 	{0x001f18, 0x001f1d},
 	{0x001f20, 0x001f45},
@@ -4575,10 +4643,10 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x00a788, 0x00a788},
 	{0x00a78b, 0x00a78e},
 	{0x00a78f, 0x00a78f},
-	{0x00a790, 0x00a7ca},
+	{0x00a790, 0x00a7cd},
 	{0x00a7d0, 0x00a7d1},
 	{0x00a7d3, 0x00a7d3},
-	{0x00a7d5, 0x00a7d9},
+	{0x00a7d5, 0x00a7dc},
 	{0x00a7f2, 0x00a7f4},
 	{0x00a7f5, 0x00a7f6},
 	{0x00a7f7, 0x00a7f7},
@@ -4743,6 +4811,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x0105a3, 0x0105b1},
 	{0x0105b3, 0x0105b9},
 	{0x0105bb, 0x0105bc},
+	{0x0105c0, 0x0105f3},
 	{0x010600, 0x010736},
 	{0x010740, 0x010755},
 	{0x010760, 0x010767},
@@ -4783,9 +4852,18 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x010cc0, 0x010cf2},
 	{0x010d00, 0x010d23},
 	{0x010d24, 0x010d27},
+	{0x010d4a, 0x010d4d},
+	{0x010d4e, 0x010d4e},
+	{0x010d4f, 0x010d4f},
+	{0x010d50, 0x010d65},
+	{0x010d69, 0x010d69},
+	{0x010d6f, 0x010d6f},
+	{0x010d70, 0x010d85},
 	{0x010e80, 0x010ea9},
 	{0x010eab, 0x010eac},
 	{0x010eb0, 0x010eb1},
+	{0x010ec2, 0x010ec4},
+	{0x010efc, 0x010efc},
 	{0x010f00, 0x010f1c},
 	{0x010f27, 0x010f27},
 	{0x010f30, 0x010f45},
@@ -4866,6 +4944,19 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x011357, 0x011357},
 	{0x01135d, 0x011361},
 	{0x011362, 0x011363},
+	{0x011380, 0x011389},
+	{0x01138b, 0x01138b},
+	{0x01138e, 0x01138e},
+	{0x011390, 0x0113b5},
+	{0x0113b7, 0x0113b7},
+	{0x0113b8, 0x0113ba},
+	{0x0113bb, 0x0113c0},
+	{0x0113c2, 0x0113c2},
+	{0x0113c5, 0x0113c5},
+	{0x0113c7, 0x0113ca},
+	{0x0113cc, 0x0113cd},
+	{0x0113d1, 0x0113d1},
+	{0x0113d3, 0x0113d3},
 	{0x011400, 0x011434},
 	{0x011435, 0x011437},
 	{0x011438, 0x01143f},
@@ -4908,7 +4999,9 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x0116b0, 0x0116b5},
 	{0x0116b8, 0x0116b8},
 	{0x011700, 0x01171a},
-	{0x01171d, 0x01171f},
+	{0x01171d, 0x01171d},
+	{0x01171e, 0x01171e},
+	{0x01171f, 0x01171f},
 	{0x011720, 0x011721},
 	{0x011722, 0x011725},
 	{0x011726, 0x011726},
@@ -4956,6 +5049,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x011a97, 0x011a97},
 	{0x011a9d, 0x011a9d},
 	{0x011ab0, 0x011af8},
+	{0x011bc0, 0x011be0},
 	{0x011c00, 0x011c08},
 	{0x011c0a, 0x011c2e},
 	{0x011c2f, 0x011c2f},
@@ -5009,7 +5103,12 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x012f90, 0x012ff0},
 	{0x013000, 0x01342f},
 	{0x013441, 0x013446},
+	{0x013460, 0x0143fa},
 	{0x014400, 0x014646},
+	{0x016100, 0x01611d},
+	{0x01611e, 0x016129},
+	{0x01612a, 0x01612c},
+	{0x01612d, 0x01612e},
 	{0x016800, 0x016a38},
 	{0x016a40, 0x016a5e},
 	{0x016a70, 0x016abe},
@@ -5018,6 +5117,9 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x016b40, 0x016b43},
 	{0x016b63, 0x016b77},
 	{0x016b7d, 0x016b8f},
+	{0x016d40, 0x016d42},
+	{0x016d43, 0x016d6a},
+	{0x016d6b, 0x016d6c},
 	{0x016e40, 0x016e7f},
 	{0x016f00, 0x016f4a},
 	{0x016f4f, 0x016f4f},
@@ -5030,7 +5132,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x016ff0, 0x016ff1},
 	{0x017000, 0x0187f7},
 	{0x018800, 0x018cd5},
-	{0x018d00, 0x018d08},
+	{0x018cff, 0x018d08},
 	{0x01aff0, 0x01aff3},
 	{0x01aff5, 0x01affb},
 	{0x01affd, 0x01affe},
@@ -5093,6 +5195,8 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x01e2c0, 0x01e2eb},
 	{0x01e4d0, 0x01e4ea},
 	{0x01e4eb, 0x01e4eb},
+	{0x01e5d0, 0x01e5ed},
+	{0x01e5f0, 0x01e5f0},
 	{0x01e7e0, 0x01e7e6},
 	{0x01e7e8, 0x01e7eb},
 	{0x01e7ed, 0x01e7ee},
@@ -5149,7 +5253,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 };
 
 /* table of Unicode codepoint ranges of Lowercase characters */
-static const pg_unicode_range unicode_lowercase[686] =
+static const pg_unicode_range unicode_lowercase[690] =
 {
 	{0x000061, 0x00007a},
 	{0x0000aa, 0x0000aa},
@@ -5433,6 +5537,7 @@ static const pg_unicode_range unicode_lowercase[686] =
 	{0x0010fd, 0x0010ff},
 	{0x0013f8, 0x0013fd},
 	{0x001c80, 0x001c88},
+	{0x001c8a, 0x001c8a},
 	{0x001d00, 0x001d2b},
 	{0x001d2c, 0x001d6a},
 	{0x001d6b, 0x001d77},
@@ -5774,11 +5879,13 @@ static const pg_unicode_range unicode_lowercase[686] =
 	{0x00a7c3, 0x00a7c3},
 	{0x00a7c8, 0x00a7c8},
 	{0x00a7ca, 0x00a7ca},
+	{0x00a7cd, 0x00a7cd},
 	{0x00a7d1, 0x00a7d1},
 	{0x00a7d3, 0x00a7d3},
 	{0x00a7d5, 0x00a7d5},
 	{0x00a7d7, 0x00a7d7},
 	{0x00a7d9, 0x00a7d9},
+	{0x00a7db, 0x00a7db},
 	{0x00a7f2, 0x00a7f4},
 	{0x00a7f6, 0x00a7f6},
 	{0x00a7f8, 0x00a7f9},
@@ -5802,6 +5909,7 @@ static const pg_unicode_range unicode_lowercase[686] =
 	{0x010787, 0x0107b0},
 	{0x0107b2, 0x0107ba},
 	{0x010cc0, 0x010cf2},
+	{0x010d70, 0x010d85},
 	{0x0118c0, 0x0118df},
 	{0x016e60, 0x016e7f},
 	{0x01d41a, 0x01d433},
@@ -5840,7 +5948,7 @@ static const pg_unicode_range unicode_lowercase[686] =
 };
 
 /* table of Unicode codepoint ranges of Uppercase characters */
-static const pg_unicode_range unicode_uppercase[651] =
+static const pg_unicode_range unicode_uppercase[656] =
 {
 	{0x000041, 0x00005a},
 	{0x0000c0, 0x0000d6},
@@ -6118,6 +6226,7 @@ static const pg_unicode_range unicode_uppercase[651] =
 	{0x0010c7, 0x0010c7},
 	{0x0010cd, 0x0010cd},
 	{0x0013a0, 0x0013f5},
+	{0x001c89, 0x001c89},
 	{0x001c90, 0x001cba},
 	{0x001cbd, 0x001cbf},
 	{0x001e00, 0x001e00},
@@ -6444,9 +6553,12 @@ static const pg_unicode_range unicode_uppercase[651] =
 	{0x00a7c2, 0x00a7c2},
 	{0x00a7c4, 0x00a7c7},
 	{0x00a7c9, 0x00a7c9},
+	{0x00a7cb, 0x00a7cc},
 	{0x00a7d0, 0x00a7d0},
 	{0x00a7d6, 0x00a7d6},
 	{0x00a7d8, 0x00a7d8},
+	{0x00a7da, 0x00a7da},
+	{0x00a7dc, 0x00a7dc},
 	{0x00a7f5, 0x00a7f5},
 	{0x00ff21, 0x00ff3a},
 	{0x010400, 0x010427},
@@ -6456,6 +6568,7 @@ static const pg_unicode_range unicode_uppercase[651] =
 	{0x01058c, 0x010592},
 	{0x010594, 0x010595},
 	{0x010c80, 0x010cb2},
+	{0x010d50, 0x010d65},
 	{0x0118a0, 0x0118bf},
 	{0x016e40, 0x016e5f},
 	{0x01d400, 0x01d419},
@@ -6496,7 +6609,7 @@ static const pg_unicode_range unicode_uppercase[651] =
 };
 
 /* table of Unicode codepoint ranges of Case_Ignorable characters */
-static const pg_unicode_range unicode_case_ignorable[491] =
+static const pg_unicode_range unicode_case_ignorable[506] =
 {
 	{0x000027, 0x000027},
 	{0x00002e, 0x00002e},
@@ -6565,7 +6678,7 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x000859, 0x00085b},
 	{0x000888, 0x000888},
 	{0x000890, 0x000891},
-	{0x000898, 0x00089f},
+	{0x000897, 0x00089f},
 	{0x0008c9, 0x0008c9},
 	{0x0008ca, 0x0008e1},
 	{0x0008e2, 0x0008e2},
@@ -6846,8 +6959,11 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x010a3f, 0x010a3f},
 	{0x010ae5, 0x010ae6},
 	{0x010d24, 0x010d27},
+	{0x010d4e, 0x010d4e},
+	{0x010d69, 0x010d6d},
+	{0x010d6f, 0x010d6f},
 	{0x010eab, 0x010eac},
-	{0x010efd, 0x010eff},
+	{0x010efc, 0x010eff},
 	{0x010f46, 0x010f50},
 	{0x010f82, 0x010f85},
 	{0x011001, 0x011001},
@@ -6880,6 +6996,11 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x011340, 0x011340},
 	{0x011366, 0x01136c},
 	{0x011370, 0x011374},
+	{0x0113bb, 0x0113c0},
+	{0x0113ce, 0x0113ce},
+	{0x0113d0, 0x0113d0},
+	{0x0113d2, 0x0113d2},
+	{0x0113e1, 0x0113e2},
 	{0x011438, 0x01143f},
 	{0x011442, 0x011444},
 	{0x011446, 0x011446},
@@ -6899,7 +7020,8 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x0116ad, 0x0116ad},
 	{0x0116b0, 0x0116b5},
 	{0x0116b7, 0x0116b7},
-	{0x01171d, 0x01171f},
+	{0x01171d, 0x01171d},
+	{0x01171f, 0x01171f},
 	{0x011722, 0x011725},
 	{0x011727, 0x01172b},
 	{0x01182f, 0x011837},
@@ -6938,12 +7060,17 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x011f36, 0x011f3a},
 	{0x011f40, 0x011f40},
 	{0x011f42, 0x011f42},
+	{0x011f5a, 0x011f5a},
 	{0x013430, 0x01343f},
 	{0x013440, 0x013440},
 	{0x013447, 0x013455},
+	{0x01611e, 0x016129},
+	{0x01612d, 0x01612f},
 	{0x016af0, 0x016af4},
 	{0x016b30, 0x016b36},
 	{0x016b40, 0x016b43},
+	{0x016d40, 0x016d42},
+	{0x016d6b, 0x016d6c},
 	{0x016f4f, 0x016f4f},
 	{0x016f8f, 0x016f92},
 	{0x016f93, 0x016f9f},
@@ -6982,6 +7109,7 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x01e2ec, 0x01e2ef},
 	{0x01e4eb, 0x01e4eb},
 	{0x01e4ec, 0x01e4ef},
+	{0x01e5ee, 0x01e5ef},
 	{0x01e8d0, 0x01e8d6},
 	{0x01e944, 0x01e94a},
 	{0x01e94b, 0x01e94b},
diff --git a/src/include/common/unicode_east_asian_fw_table.h b/src/include/common/unicode_east_asian_fw_table.h
index dcd1f136eb7..db8bd0ad897 100644
--- a/src/include/common/unicode_east_asian_fw_table.h
+++ b/src/include/common/unicode_east_asian_fw_table.h
@@ -9,8 +9,10 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x23F3, 0x23F3},
 	{0x25FD, 0x25FE},
 	{0x2614, 0x2615},
+	{0x2630, 0x2637},
 	{0x2648, 0x2653},
 	{0x267F, 0x267F},
+	{0x268A, 0x268F},
 	{0x2693, 0x2693},
 	{0x26A1, 0x26A1},
 	{0x26AA, 0x26AB},
@@ -44,11 +46,10 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x3099, 0x30FF},
 	{0x3105, 0x312F},
 	{0x3131, 0x318E},
-	{0x3190, 0x31E3},
+	{0x3190, 0x31E5},
 	{0x31EF, 0x321E},
 	{0x3220, 0x3247},
-	{0x3250, 0x4DBF},
-	{0x4E00, 0xA48C},
+	{0x3250, 0xA48C},
 	{0xA490, 0xA4C6},
 	{0xA960, 0xA97C},
 	{0xAC00, 0xD7A3},
@@ -63,7 +64,7 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x16FF0, 0x16FF1},
 	{0x17000, 0x187F7},
 	{0x18800, 0x18CD5},
-	{0x18D00, 0x18D08},
+	{0x18CFF, 0x18D08},
 	{0x1AFF0, 0x1AFF3},
 	{0x1AFF5, 0x1AFFB},
 	{0x1AFFD, 0x1AFFE},
@@ -73,6 +74,8 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x1B155, 0x1B155},
 	{0x1B164, 0x1B167},
 	{0x1B170, 0x1B2FB},
+	{0x1D300, 0x1D356},
+	{0x1D360, 0x1D376},
 	{0x1F004, 0x1F004},
 	{0x1F0CF, 0x1F0CF},
 	{0x1F18E, 0x1F18E},
@@ -113,11 +116,10 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x1F93C, 0x1F945},
 	{0x1F947, 0x1F9FF},
 	{0x1FA70, 0x1FA7C},
-	{0x1FA80, 0x1FA88},
-	{0x1FA90, 0x1FABD},
-	{0x1FABF, 0x1FAC5},
-	{0x1FACE, 0x1FADB},
-	{0x1FAE0, 0x1FAE8},
+	{0x1FA80, 0x1FA89},
+	{0x1FA8F, 0x1FAC6},
+	{0x1FACE, 0x1FADC},
+	{0x1FADF, 0x1FAE9},
 	{0x1FAF0, 0x1FAF8},
 	{0x20000, 0x2FFFD},
 	{0x30000, 0x3FFFD},
diff --git a/src/include/common/unicode_nonspacing_table.h b/src/include/common/unicode_nonspacing_table.h
index 8d00e127fcd..d67f5b3f281 100644
--- a/src/include/common/unicode_nonspacing_table.h
+++ b/src/include/common/unicode_nonspacing_table.h
@@ -210,8 +210,9 @@ static const struct mbinterval nonspacing[] = {
 	{0x10A38, 0x10A3F},
 	{0x10AE5, 0x10AE6},
 	{0x10D24, 0x10D27},
+	{0x10D69, 0x10D6D},
 	{0x10EAB, 0x10EAC},
-	{0x10EFD, 0x10EFF},
+	{0x10EFC, 0x10EFF},
 	{0x10F46, 0x10F50},
 	{0x10F82, 0x10F85},
 	{0x11001, 0x11001},
@@ -242,6 +243,11 @@ static const struct mbinterval nonspacing[] = {
 	{0x1133B, 0x1133C},
 	{0x11340, 0x11340},
 	{0x11366, 0x11374},
+	{0x113BB, 0x113C0},
+	{0x113CE, 0x113CE},
+	{0x113D0, 0x113D0},
+	{0x113D2, 0x113D2},
+	{0x113E1, 0x113E2},
 	{0x11438, 0x1143F},
 	{0x11442, 0x11444},
 	{0x11446, 0x11446},
@@ -261,7 +267,8 @@ static const struct mbinterval nonspacing[] = {
 	{0x116AD, 0x116AD},
 	{0x116B0, 0x116B5},
 	{0x116B7, 0x116B7},
-	{0x1171D, 0x1171F},
+	{0x1171D, 0x1171D},
+	{0x1171F, 0x1171F},
 	{0x11722, 0x11725},
 	{0x11727, 0x1172B},
 	{0x1182F, 0x11837},
@@ -295,15 +302,19 @@ static const struct mbinterval nonspacing[] = {
 	{0x11F36, 0x11F3A},
 	{0x11F40, 0x11F40},
 	{0x11F42, 0x11F42},
+	{0x11F5A, 0x11F5A},
 	{0x13430, 0x13440},
 	{0x13447, 0x13455},
+	{0x1611E, 0x16129},
+	{0x1612D, 0x1612F},
 	{0x16AF0, 0x16AF4},
 	{0x16B30, 0x16B36},
 	{0x16F4F, 0x16F4F},
 	{0x16F8F, 0x16F92},
 	{0x16FE4, 0x16FE4},
 	{0x1BC9D, 0x1BC9E},
-	{0x1BCA0, 0x1CF46},
+	{0x1BCA0, 0x1BCA3},
+	{0x1CF00, 0x1CF46},
 	{0x1D167, 0x1D169},
 	{0x1D173, 0x1D182},
 	{0x1D185, 0x1D18B},
@@ -320,6 +331,7 @@ static const struct mbinterval nonspacing[] = {
 	{0x1E2AE, 0x1E2AE},
 	{0x1E2EC, 0x1E2EF},
 	{0x1E4EC, 0x1E4EF},
+	{0x1E5EE, 0x1E5EF},
 	{0x1E8D0, 0x1E8D6},
 	{0x1E944, 0x1E94A},
 	{0xE0001, 0xE01EF},
diff --git a/src/include/common/unicode_norm_hashfunc.h b/src/include/common/unicode_norm_hashfunc.h
index 0913ea1c658..be5bef0ea27 100644
--- a/src/include/common/unicode_norm_hashfunc.h
+++ b/src/include/common/unicode_norm_hashfunc.h
@@ -41,702 +41,662 @@ typedef struct
 static int
 Decomp_hash_func(const void *key)
 {
-	static const int16 h[13551] = {
-		6102,  6103,  6104,  6105,  6106,  11163, 11164, 9247,
-		3108,  32767, 32767, 5839,  5840,  11166, 3130,  3130,
-		3130,  3130,  -1926, -1926, 9274,  9275,  9276,  9277,
-		9278,  473,   473,   6107,  0,     6110,  6111,  -1569,
-		9287,  9288,  9289,  9290,  9291,  9292,  9293,  9294,
-		9295,  11077, 11078, 11079, 11080, 9300,  9301,  9302,
-		9303,  9304,  9305,  9306,  9307,  9308,  9309,  9310,
-		9311,  9312,  9313,  9314,  9315,  9316,  9317,  9318,
-		9319,  9320,  4265,  4266,  -1834, 4268,  4269,  4270,
-		4271,  4272,  9329,  9330,  7413,  1274,  1274,  1274,
-		5264,  1274,  9337,  1301,  1301,  1301,  1301,  8982,
-		-3754, 11381, 11382, 11383, 11384, 10049, 11386, 5605,
-		5606,  5607,  5608,  5609,  5610,  5611,  5612,  465,
-		465,   5617,  5618,  5619,  5620,  5621,  5622,  5623,
-		465,   465,   465,   465,   465,   465,   465,   465,
-		465,   465,   465,   465,   465,   465,   465,   465,
-		465,   465,   465,   465,   465,   465,   465,   465,
-		465,   465,   465,   465,   465,   465,   5256,  5256,
-		-10103,5256,  465,   465,   5256,  5256,  465,   5939,
-		465,   465,   465,   465,   465,   0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     -71,   0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     -884,  -884,  -884,  -884,  -884,  -884,
-		0,     -885,  -885,  -885,  -885,  -885,  -885,  0,
-		0,     -886,  -886,  -886,  -886,  -886,  -4378, 0,
-		-888,  -888,  422,   -888,  -888,  -888,  0,     -7896,
-		-7896, -7896, 0,     0,     0,     0,     0,     1463,
-		1463,  1463,  1463,  2951,  1464,  1464,  -18469,1464,
-		1464,  1464,  1464,  1464,  1464,  1464,  1464,  1464,
-		1215,  1216,  1464,  1464,  1464,  1464,  1464,  1464,
-		1464,  1464,  0,     1465,  1465,  1465,  80,    1464,
-		1464,  1464,  7565,  1464,  1464,  1464,  1464,  1464,
-		88,    89,    90,    91,    92,    93,    94,    95,
-		96,    97,    98,    99,    100,   101,   102,   32767,
-		32767, 103,   104,   105,   106,   107,   108,   109,
-		110,   111,   32767, 112,   113,   114,   115,   116,
-		117,   32767, 118,   119,   120,   121,   122,   123,
-		124,   0,     0,     0,     126,   0,     0,     0,
-		0,     0,     0,     0,     4145,  4146,  4147,  4148,
-		4149,  4150,  4151,  4152,  4153,  4154,  0,     0,
-		0,     0,     0,     0,     4155,  4156,  4157,  4158,
-		4159,  4160,  4161,  4162,  4163,  4164,  4165,  4166,
-		4167,  4168,  4169,  4170,  4171,  4172,  4173,  4174,
-		4175,  4176,  4177,  4178,  4179,  4180,  4181,  4182,
-		4183,  4184,  4185,  4186,  4187,  4188,  4189,  179,
-		180,   32767, 32767, 4192,  4193,  4194,  4195,  4196,
-		4197,  4198,  4199,  4200,  4201,  4202,  4203,  32767,
-		4204,  4205,  4206,  4207,  4208,  4209,  4210,  4211,
-		4212,  4213,  4214,  4215,  4216,  4217,  4218,  4219,
-		4220,  4221,  4222,  32767, 4223,  4224,  4225,  4226,
-		32767, 32767, 32767, 32767, 4227,  4228,  4229,  32767,
-		-4545, -5662, -5662, -5662, -5662, -5662, -5662, -5662,
-		-5662, 4238,  4239,  -5664, -5664, -5664, -5664, -5664,
-		-5664, -5664, -5664, 4248,  4249,  4250,  4251,  4252,
-		4253,  -6935, -1879, -1879, 4222,  -1879, -1879, -1879,
-		-1879, -1879, -6935, -6935, 4265,  4266,  4267,  4268,
-		4269,  -4536, -4536, 1098,  1099,  1100,  1101,  -6579,
-		4277,  4278,  4279,  4280,  4281,  4282,  4283,  4284,
-		4285,  6067,  6068,  6069,  6070,  4290,  4291,  4292,
-		4293,  4294,  4295,  4296,  4297,  4298,  4299,  4300,
-		4301,  4302,  4303,  4304,  4305,  4306,  4307,  4308,
-		4309,  4310,  -745,  -744,  -6844, -742,  -741,  -740,
-		-739,  -738,  4319,  4320,  2403,  -3736, -3736, -3736,
-		254,   -3736, 4327,  -3709, -3709, 4330,  0,     0,
-		0,     0,     0,     0,     0,     -2997, -2997, 2705,
-		2705,  2705,  2705,  2705,  2705,  2705,  2705,  2705,
-		0,     0,     0,     0,     0,     0,     -4452, 0,
-		0,     0,     0,     0,     2716,  0,     0,     0,
-		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 1841,
-		32767, 32767, 4710,  32767, 0,     32767, 32767, 0,
+	static const int16 h[13687] = {
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 0,     32767, 32767, 32767, 32767, 0,
+		0,     0,     0,     32767, 0,     0,     32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
-		32767, 1845,  32767, 32767, 32767, 32767, 32767, 0,
-		0,     32767, 0,     0,     32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 1850,  32767, 32767, 0,
-		32767, 32767, 0,     32767, 1853,  32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 0,     32767, 0,     32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		0,     0,     284,   285,   286,   287,   288,   289,
-		290,   291,   292,   0,     0,     32767, 32767, 32767,
-		32767, 32767, 32767, 0,     0,     32767, 32767, 0,
-		0,     32767, 32767, 0,     0,     32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 567,   567,   567,   567,   -1649, -4447,
-		32767, 32767, 566,   566,   -1644, 566,   566,   32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
-		0,     -1144, 0,     32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 0,     0,
-		0,     0,     0,     304,   305,   306,   -2209, -2208,
-		309,   2223,  311,   312,   313,   314,   315,   316,
-		317,   318,   319,   320,   321,   322,   323,   324,
-		325,   326,   -550,  328,   329,   330,   331,   332,
-		333,   334,   335,   0,     0,     0,     0,     340,
-		341,   342,   343,   -534,  345,   0,     0,     0,
-		0,     -6511, 351,   352,   353,   354,   355,   356,
-		357,   358,   359,   360,   361,   362,   363,   364,
-		365,   366,   367,   368,   369,   370,   371,   372,
-		373,   374,   375,   376,   377,   378,   379,   380,
-		381,   382,   32767, 383,   384,   385,   386,   387,
-		388,   389,   390,   391,   392,   393,   394,   395,
-		396,   397,   398,   399,   400,   401,   402,   403,
-		404,   405,   406,   407,   408,   4654,  410,   4655,
-		412,   413,   414,   32767, 32767, 32767, 32767, 415,
-		32767, 32767, 32767, 32767, 32767, 416,   32767, 32767,
-		32767, -464,  32767, 32767, 32767, 32767, 32767, 418,
-		419,   420,   421,   422,   423,   424,   32767, 425,
-		32767, 426,   427,   428,   32767, 32767, 32767, 32767,
-		4656,  4657,  4658,  32767, 32767, 32767, 32767, 4659,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 429,   430,   431,
-		432,   433,   434,   435,   32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -2290, -2290, -2290,
-		-2290, -2290, 32767, -2291, -2291, -2291, -2291, -2291,
-		-2291, 2502,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 733,   733,   733,   32767, 732,
-		732,   32767, 32767, 32767, 729,   32767, 0,     0,
-		32767, 32767, 32767, 32767, -241,  -241,  32767, -242,
-		32767, 32767, 32767, -4550, 32767, 32767, 32767, 32767,
-		-249,  -1737, -1737, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -1747, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -291,  32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 4660,  4661,  32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		3982,  3982,  3982,  32767, -1149, -1148, 32767, -1147,
-		32767, 32767, 32767, -1146, 32767, 32767, 32767, 32767,
-		-1145, -1144, -1143, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, -4642, -1836, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, -1839,
-		-4651, -1838, -1838, 476,   32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 4708,  4709,  32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -4703, -1851, 32767,
-		32767, 32767, 32767, 32767, 4710,  4711,  4712,  32767,
-		32767, 32767, 32767, 32767, -1857, -4716, -1856, -4716,
-		32767, 32767, -4718, -1855, 32767, 32767, -4720, -905,
-		-4720, -4720, -4720, -4720, 32767, 32767, -894,  -893,
-		4714,  4715,  4716,  1689,  8219,  4719,  -4724, -1850,
-		-1850, 3912,  4721,  4722,  4723,  4724,  -4724, -4724,
-		-4724, -4724, 32767, 32767, -4726, -4726, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		-1149, -1396, -1395, -1394, -1393, -1392, -1391, -1390,
-		-1389, 76,    -1388, -1387, -1386, 0,     -1383, -1382,
-		32767, 32767, -1381, -1380, -1379, -1378, -1377, 0,
+		0,     0,     0,     32767, 0,     32767, 0,     32767,
+		0,     32767, 0,     32767, 0,     32767, 0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     32767, 32767,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     32767, 0,     0,     0,     0,     0,     0,
-		32767, 0,     0,     0,     0,     0,     0,     0,
-		125,   32767, 32767, 0,     127,   128,   129,   130,
-		131,   132,   32767, 32767, -4013, -4013, -4013, -4013,
-		-4013, -4013, 32767, 32767, -4015, 140,   141,   142,
-		143,   144,   145,   -4009, -4009, -4009, -4009, -4009,
-		-4009, -4009, -4009, -4009, -4009, -4009, 32767, 32767,
-		-4011, -4011, -4011, -4011, -4011, -4011, -4011, -4011,
-		-4011, -4011, -4011, -4011, -4011, -4011, -4011, -4011,
-		-4011, -4011, -4011, -4011, -4011, -4011, 0,     0,
-		-2541, 32767, 32767, 32767, 32767, 32767, 512,   513,
-		514,   515,   516,   517,   -441,  -441,  520,   521,
-		522,   523,   524,   525,   526,   527,   528,   529,
-		530,   531,   532,   533,   534,   535,   536,   537,
-		-4040, -4040, 540,   541,   542,   543,   544,   545,
-		546,   547,   548,   549,   550,   551,   552,   4728,
-		5846,  555,   556,   32767, 557,   32767, 558,   559,
-		32767, 560,   561,   32767, 562,   32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -4065, -4065, -4065, -4065,
-		7124,  2069,  2070,  -4030, 2072,  2073,  2074,  2075,
-		2076,  7133,  7134,  -4065, -4065, -4065, -4065, -4065,
-		4741,  4742,  -891,  -891,  -891,  32767, 6789,  -4066,
-		-4066, -4066, -4066, -4066, 32767, 32767, -4068, -4068,
-		-5849, -5849, -5849, -5849, -4068, -4068, -4068, -4068,
-		-4068, -4068, -4068, -4068, -4068, -4068, 5832,  5833,
-		-4070, -4070, -4070, -4070, -4070, -4070, -4070, -4070,
-		5842,  5843,  5844,  5845,  5846,  5847,  -5341, -285,
-		-285,  5816,  -285,  -285,  -285,  -285,  -285,  -5341,
-		-5341, 5859,  5860,  5861,  5862,  5863,  -2942, -2942,
-		2692,  2693,  2694,  2695,  -4985, 5871,  5872,  5873,
-		5874,  5875,  5876,  5877,  5878,  5879,  7661,  7662,
-		7663,  7664,  5884,  5885,  5886,  5887,  5888,  5889,
-		5890,  5891,  5892,  5893,  5894,  5895,  5896,  5897,
-		5898,  5899,  5900,  5901,  5902,  5903,  5904,  849,
-		850,   -5250, 852,   853,   854,   855,   856,   5913,
-		5914,  3997,  -2142, -2142, 590,   591,   592,   5918,
-		-2118, -2118, -2118, -2118, 5563,  -7173, 7962,  7963,
-		7964,  7965,  6630,  7967,  2186,  32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 4034,  32767,
-		32767, 32767, 5815,  5816,  5817,  5818,  5819,  5820,
-		5821,  32767, 5822,  5823,  5824,  5825,  5826,  5827,
-		5828,  5829,  -272,  -272,  -272,  -272,  -272,  -5328,
-		-5328, -3410, 2730,  2731,  0,     0,     0,     -5325,
-		2712,  2713,  2714,  2715,  -4965, 7772,  -3427, 32767,
-		-3428, -3428, -3428, 5378,  5379,  32767, 32767, 32767,
-		32767, 32767, -3434, -3434, -3434, -3434, -3434, -3434,
-		-3434, -3434, -3434, -5215, -5215, -5215, -5215, -3434,
-		-3434, -3434, -3434, -3434, -3434, -3434, -3434, -3434,
-		-3434, -3434, -3434, -3434, -3434, -3434, -3434, -3434,
-		-3434, -3434, -3434, -3434, 1622,  1622,  7723,  1622,
-		1622,  1622,  1622,  1622,  -3434, -3434, -1516, 4624,
-		4625,  4626,  637,   4628,  -3434, 4603,  4604,  4605,
-		4606,  -3074, 9663,  -5471, -5471, -5471, -5471, -4135,
-		618,   -4134, -4134, 32767, 32767, 621,   622,   32767,
-		623,   624,   625,   626,   32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 4039,  32767,
-		4040,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 5450,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, -4019, 32767, 32767, 4042,  -3994, -3994, -3994,
-		-3994, 3687,  -9049, 32767, 32767, 6086,  6087,  4752,
-		0,     4753,  4754,  32767, 32767, 0,     0,     32767,
-		0,     0,     0,     0,     32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 6862,
-		6863,  6864,  6865,  1810,  1811,  -4289, 1813,  1814,
-		1815,  1816,  1817,  6874,  6875,  4958,  -1181, -1181,
-		-1181, 2809,  -1181, 6882,  -1154, -1154, -1154, -1154,
-		6527,  -6209, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 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,
-		82,    32767, 32767, 11618, 11619, 11620, 5919,  5920,
-		5921,  5922,  32767, 32767, 786,   32767, 32767, 787,
-		788,   789,   32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		790,   791,   32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, -1151, -1151, -1151, -1151, -1151, -1151,
-		-1151, -1400, -1399, 32767, 32767, 32767, 32767, 32767,
-		792,   32767, 32767, 32767, -1159, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4666,
-		4667,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 665,   666,
-		667,   668,   32767, 669,   670,   671,   672,   673,
-		674,   675,   676,   677,   32767, 678,   679,   680,
-		32767, 681,   682,   683,   684,   685,   -1578, -5751,
-		-5751, -5751, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		-1193, 32767, 32767, 32767, 32767, -5986, -5986, -5986,
-		-5986, -5986, -5986, -5986, -5986, -5986, -5986, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 686,   687,   688,   32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -174,  1314,  -173,
-		-173,  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,     32767, 32767, 32767, 32767, 0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		32767, 32767, 0,     32767, 32767, 0,     0,     0,
+		0,     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,
-		689,   690,   691,   692,   693,   694,   695,   696,
-		32767, 32767, 32767, 4671,  4672,  4673,  4674,  4675,
-		4676,  4677,  4678,  4679,  4680,  4681,  32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, -1552, -1552, 32767, 32767, 32767, 32767, 32767,
-		32767, 0,     697,   533,   533,   700,   701,   702,
-		703,   704,   705,   706,   707,   708,   709,   710,
-		711,   712,   713,   714,   715,   716,   717,   4682,
-		6946,  2158,  4685,  721,   722,   723,   724,   725,
-		726,   727,   728,   729,   730,   731,   732,   733,
-		734,   735,   736,   737,   738,   739,   740,   741,
-		742,   743,   744,   745,   746,   747,   748,   749,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 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, 5923,  32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 4215,  32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 4181,  32767, 32767, -1922, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 4218,  32767, 32767,
-		32767, 32767, 2986,  32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 4219,  32767,
-		32767, 32767, 6001,  4221,  4222,  4223,  32767, 32767,
-		32767, 4224,  4225,  4226,  4227,  4228,  4229,  4230,
-		4231,  5925,  5926,  5927,  32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 1170,  32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		1,     32767, 2,     32767, 32767, 32767, 32767, 2792,
+		32767, 32767, 4,     5,     6,     7,     32767, 32767,
+		8,     9,     10,    32767, 11,    12,    13,    1734,
+		14,    -822,  -822,  17,    18,    3020,  1739,  3021,
+		3022,  3023,  1110,  24,    3024,  3025,  27,    -3019,
+		32767, 29,    30,    3026,  3027,  33,    34,    5016,
+		1754,  -4252, 36,    37,    -4254, -4254, -4254, 32767,
+		40,    41,    42,    43,    44,    45,    1912,  46,
+		47,    48,    49,    50,    51,    52,    53,    54,
+		1770,  55,    606,   57,    58,    59,    60,    1776,
+		1777,  61,    62,    63,    64,    65,    32767, 66,
+		32767, -1290, 6662,  3534,  3534,  3534,  -172,  3322,
+		-170,  -169,  -168,  -167,  3331,  1788,  0,     1790,
+		1791,  1792,  1793,  1794,  1795,  1796,  1797,  1798,
+		1799,  3354,  1801,  1802,  -964,  -964,  -964,  -964,
+		1807,  4976,  4976,  4976,  4976,  4976,  4976,  1814,
+		1815,  4974,  2192,  11244, 2194,  11245, 0,     0,
+		1605,  11251, 0,     11252, 0,     0,     3571,  3571,
+		-47,   -47,   0,     0,     -124,  -123,  -122,  -4877,
+		-4877, -119,  32767, 32767, -118,  0,     -116,  -11032,
+		-114,  -113,  -112,  32767, 32767, -887,  -110,  -109,
+		-885,  -107,  5320,  32767, 32767, -105,  -882,  5328,
+		-102,  -101,  -100,  -99,   -4221, -4221, -4221, -95,
+		-94,   -93,   -92,   -4221, -4221, -4221, -4221, 32767,
+		32767, -4223, -4223, -4223, -4223, -4223, -4223, -4223,
+		-4223, -5481, -4223, -4223, -4223, -4223, -4223, -4223,
+		-4223, -4223, -4223, -4223, -4223, -4223, -4223, -4223,
+		-5495, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 1839,  1840,  1841,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 4663,  4664,  32767,
+		32767, -4255, -4255, 32767, 0,     0,     32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		-4268, -4268, 5881,  5882,  4722,  5884,  5885,  5886,
+		5887,  32767, 5888,  5889,  5890,  5891,  5892,  5893,
+		5894,  5895,  5896,  5897,  5898,  185,   186,   -3976,
+		-3976, -3976, -3976, 6000,  6001,  6002,  6003,  6004,
+		6005,  6006,  198,   5911,  -3968, -3968, -826,  -3968,
+		-3968, -3968, -3968, -3968, 208,   209,   32767, -3967,
+		-3967, -3032, -3967, -3967, -3030, 5922,  5923,  -813,
+		5925,  5926,  219,   220,   5929,  5930,  5931,  224,
+		-4290, -4290, -4290, -4290, -4290, -4290, -4290, 5940,
+		5941,  -4292, -4292, -4292, -4292, -4292, -4292, -4292,
+		-4292, 5950,  5951,  0,     0,     0,     0,     245,
+		0,     0,     0,     0,     0,     0,     0,     253,
+		254,   255,   256,   -635,  258,   259,   260,   261,
+		262,   263,   0,     265,   266,   267,   0,     0,
+		268,   269,   32767, 32767, 32767, 32767, 32767, 32767,
+		270,   271,   272,   273,   274,   275,   276,   277,
+		278,   279,   280,   281,   282,   283,   32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 5981,  32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -901,  32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 767,   32767, 32767,
-		32767, 32767, 32767, 32767, -5005, -4757, -4757, 32767,
-		32767, 32767, -4760, -4760, 68,    68,    68,    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, 287,   32767, 32767, 32767, 58,    58,    32767,
-		57,    32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		4689,  32767, 4690,  32767, 32767, 32767, 32767, -1717,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 4691,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 6903,
-		4693,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 2763,
+		975,   32767, 32767, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     289,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     4382,  4382,  4382,  0,     7408,
+		4383,  4383,  0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		-4027, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     -1642, -1641, -1640, -1639,
+		-1638, 3694,  -1636, 3697,  3698,  3699,  0,     0,
+		-1627, 0,     0,     -1622, -1621, 0,     6198,  -1616,
+		-1615, -1614, -1613, 0,     -1610, -1609, -1608, 0,
+		0,     0,     0,     0,     0,     9558,  -10546,0,
+		6270,  6271,  6272,  6273,  6274,  6275,  -3369, 6277,
+		6545,  6279,  9583,  6281,  -1402, -1402, 6284,  6285,
+		304,   1947,  1947,  1947,  1947,  1947,  -3384, 1947,
+		-3385, -3385, -3385, 315,   316,   1944,  318,   319,
+		1942,  1942,  322,   -5875, 1940,  1940,  1940,  1940,
+		328,   1939,  1939,  1939,  332,   333,   334,   335,
+		336,   337,   -9220, 10885, 340,   -5929, -5929, -5929,
+		-5929, -5929, -5929, 3716,  -5929, -6196, -5929, -9232,
+		-5929, 1755,  1756,  -5929, -5929, 53,    -1589, -1588,
+		-1587, -1586, -1585, 3747,  -1583, 3750,  3751,  3752,
+		53,    53,    -1574, 53,    53,    -1569, -1568, 53,
+		6251,  -1563, -1562, -1561, -1560, 53,    -1557, 5101,
+		-1556, 52,    52,    52,    52,    52,    52,    9610,
+		-10494,52,    6322,  6323,  6324,  6325,  6326,  6327,
+		-3317, 6329,  6597,  6331,  9635,  6333,  -1350, -1350,
+		6336,  6337,  356,   1999,  1999,  1999,  1999,  1999,
+		0,     0,     -2173, -3888, -3337, -5616, 0,     0,
+		432,   -2164, 1985,  0,     0,     0,     1980,  0,
+		0,     0,     0,     -1319, -4683, 1975,  368,   369,
+		370,   371,   372,   0,     -9185, 0,     374,   -5895,
+		-5895, 0,     0,     0,     0,     864,   437,   -16,
+		-16,   440,   32767, 441,   442,   443,   -13,   445,
+		446,   447,   32767, 32767, 32767, 32767, 32767, 6042,
+		6043,  6044,  6045,  430,   431,   0,     2597,  -1551,
+		435,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 448,   449,   450,   32767, 451,
+		452,   32767, 32767, 32767, 453,   0,     0,     0,
+		0,     0,     -428,  0,     454,   455,   0,     456,
+		0,     0,     0,     457,   0,     0,     0,     0,
+		458,   459,   460,   0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		3733,  3734,  0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     462,   0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     463,   464,   0,     465,
+		0,     0,     0,     466,   0,     0,     0,     0,
+		467,   0,     469,   0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     5493,  0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		5530,  0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     -4339, -4339, 0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     -7353, -7353, -7353, -5439,
+		0,     0,     -7353, -4354, 0,     0,     485,   486,
+		487,   488,   489,   490,   0,     0,     491,   492,
+		493,   494,   -2541, -5542, 0,     0,     -5544, -5544,
+		-3630, -2543, -5542, -5542, -2543, 504,   -2543, -2543,
+		-2543, -5538, 0,     0,     -2545, -2545, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 775,   32767, 32767,
-		776,   32767, 32767, 32767, 32767, 32767, 777,   32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 778,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 779,   780,   781,   32767, 4694,
-		4695,  4696,  32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 4697,  4698,  32767,
-		32767, 32767, 4699,  4700,  32767, 32767, 32767, 2428,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 2995,  2996,  2997,  2998,  2999,
-		2696,  2696,  2696,  5212,  5212,  2696,  783,   2696,
-		2696,  2696,  2696,  2696,  2696,  32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 784,
-		32767, 32767, 4701,  32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 3448,
+		3448,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 3013,
-		3014,  3015,  32767, 32767, 32767, 0,     0,     32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 2139,  2140,  -808,
-		681,   682,   683,   684,   32767, 32767, 32767, 2633,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 3016,
-		685,   686,   936,   936,   689,   32767, 32767, 32767,
-		32767, 32767, 690,   691,   692,   693,   694,   695,
-		696,   697,   698,   699,   -5401, 701,   702,   703,
-		704,   705,   706,   707,   -779,  709,   80,    -7189,
-		-7189, -7189, 0,     0,     32767, 0,     0,     0,
-		0,     0,     32767, 0,     32767, 0,     0,     32767,
-		0,     0,     32767, 0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
+		32767, 32767, 32767, 32767, -3213, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 2540,  2540,
+		2540,  2540,  2540,  0,     4830,  4831,  -307,  -307,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     4166,  0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     1310,  0,
-		0,     0,     0,     -7007, -7007, 0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     6538,
-		6539,  6540,  6541,  6542,  6543,  2371,  6545,  6546,
-		6547,  6548,  6549,  0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     1693,  0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     -31,   0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     -796,  -795,
+		-794,  -793,  -792,  -791,  1061,  1062,  1063,  1064,
+		1065,  0,     0,     0,     0,     0,     0,     0,
+		-785,  -784,  -783,  -782,  -4016, 0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     -1097, -1096, -1095, -5270, -5270, -1094, -1093,
+		-1092, -2026, -1090, -1089, -2025, -2024, -765,  -4241,
+		-10978,-10978,-5270, -5270, -10978,-10978,0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     3849,  0,
+		0,     0,     0,     3854,  2311,  523,   2313,  0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		-6893, 0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     -6902, 0,     0,     0,
-		0,     -2600, 0,     1974,  1974,  0,     0,     0,
-		0,     -6912, -5556, 0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     3019,  0,     3020,
-		3021,  3022,  0,     0,     3023,  3024,  0,     0,
-		0,     0,     0,     2206,  3026,  0,     3027,  0,
-		0,     0,     32767, 32767, 0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		-3504, 0,     0,     0,     -6893, 0,     0,     5606,
-		0,     0,     0,     3028,  -3501, 0,     -3500, -3499,
-		0,     808,   0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     32767, 0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		32767, 32767, 0,     0,     0,     0,     0,     0,
-		32767, 0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     1619,  1620,  32767, 32767, 1621,  1622,
-		1623,  32767, 1624,  1625,  1626,  1627,  1628,  1629,
-		0,     0,     1632,  32767, 32767, 32767, 32767, 32767,
+		0,     0,     0,     32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 5994,  4146,  4146,  5997,  32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		2970,  32767, 32767, 32767, 32767, 1264,  1264,  1264,
+		2215,  2216,  2217,  2218,  2219,  2220,  2221,  32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 5792,  32767,
+		362,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 3029,  3030,  3031,  3032,  32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 3033,
-		-1994, 810,   32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 811,
-		1188,  -1999, 814,   32767, 32767, 32767, 32767, 32767,
+		32767, -3774, 32767, 32767, -3776, -3776, -3776, -3776,
+		-5034, -3776, -3776, 32767, 32767, -3778, -3778, -3778,
+		-3778, -3778, -3778, 32767, 32767, -3780, -3780, 32767,
+		-5053, -3781, -3781, -3781, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, -157,  32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		627,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 4695,  32767,
+		32767, 2985,  2986,  32767, 32767, 32767, 32767, 628,
+		629,   630,   631,   632,   633,   -5911, 635,   636,
+		637,   638,   639,   640,   641,   642,   643,   644,
+		645,   646,   647,   648,   649,   650,   651,   652,
+		653,   654,   32767, 32767, 32767, 32767, 32767, 32767,
+		-2208, 32767, 8339,  32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 4699,  32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4700,
+		4701,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 2778,  32767, 32767, 32767,
-		2775,  32767, 0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     -2863, -2863, -2863, -2863,
-		-2863, 0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     986,   0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     815,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     817,   818,   819,   0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     -2752, 0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     4452,  0,
-		4451,  0,     0,     0,     4448,  4732,  0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     2022,  0,     32767, 32767, 32767,
-		32767, -7994, 32767, 32767, 32767, 32767, -4824, -4824,
-		2857,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, -8011, -8011,
-		-8011, -8011, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 5998,  0,     32767,
+		32767, 32767, 32767, 0,     0,     32767, 32767, 32767,
+		32767, 0,     2987,  32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -1459,
+		-1459, -1459, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, -1496, -2931, 32767,
+		32767, 32767, 655,   656,   657,   658,   659,   660,
+		661,   662,   663,   32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 664,   32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, -251,  -251,  -251,  -251,  -251,  -251,  4127,
-		3239,  3239,  4549,  4549,  32767, 32767, 32767, 32767,
-		32767, -3773, 4123,  4123,  4123,  4123,  4123,  5586,
-		5586,  5586,  5586,  7074,  5587,  5587,  -14346,5587,
-		5587,  5587,  5587,  5587,  5587,  5587,  5587,  5587,
-		5338,  0,     0,     0,     0,     0,     0,     0,
-		32767, 0,     4131,  0,     0,     0,     0,     0,
-		0,     828,   0,     0,     0,     0,     829,   830,
-		-3958, 0,     0,     8614,  4312,  0,     0,     0,
-		0,     0,     4619,  0,     0,     0,     832,   833,
-		834,   835,   32767, 32767, 32767, 32767, -215,  -215,
-		4094,  4630,  -213,  -213,  -213,  32767, 32767, 32767,
-		32767, 32767, -3542, -2653, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, -21505,-1572, -1572, 32767, 32767,
-		32767, 32767, 32767, 32767, 0,     32767, 0,     32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 0,     32767, 32767,
+		32767, 32767, 4743,  32767, 32767, 32767, -3717, -3716,
+		667,   -6740, 32767, -3714, 670,   671,   672,   673,
+		674,   675,   676,   677,   32767, 678,   679,   680,
+		32767, 681,   4709,  683,   684,   685,   2990,  32767,
+		32767, 32767, 2991,  2992,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, -977,  32767, -2211, 0,     32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 4386,  4386,  -2210,
-		-2209, 32767, 4735,  4736,  32767, 32767, 32767, 32767,
+		32767, 538,   32767, 32767, 32767, 32767, -1583, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -5881, 32767, 4018,  32767,
-		-5885, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 4020,  1382,  1382,  1382,  1382,  1382,
-		5938,  32767, 32767, 32767, -2118, 32767, 32767, 32767,
-		32767, 4022,  32767, 32767, 32767, 32767, -4783, 32767,
-		32767, 32767, 32767, 850,   32767, 32767, 32767, 32767,
+		32767, 686,   -5583, -5583, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -1622,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		5806,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		4026,  4027,  4028,  4029,  4030,  4031,  4032,  4033,
-		4034,  4035,  4036,  4037,  4038,  32767, 32767, -1017,
-		-1016, -7116, -1014, -1013, 32767, -1012, -1011, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4710,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, -3993, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 4737,  302,   32767, 32767, 32767,
-		32767, 303,   32767, 32767, 32767, 32767, 306,   32767,
-		32767, 32767, 32767, 307,   32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 5939,
-		-4862, 5941,  -388,  -388,  -388,  -388,  32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -4874, 32767, 32767,
+		4679,  4711,  4681,  4682,  4683,  4684,  4685,  4686,
+		4687,  4688,  4689,  0,     0,     32767, 0,     32767,
+		32767, 32767, 0,     5257,  32767, 32767, 32767, 6885,
+		6619,  9923,  6621,  -1062, -1062, 6624,  6625,  644,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 1637,  32767, 1637,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 4690,  4691,  4692,  4693,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 4015,  -5630, -5897, -5630, -8933, -5630,
+		2054,  2055,  -5630, -5630, 352,   -1290, -1289, -1288,
+		-1287, -1286, 714,   715,   2889,  4605,  4055,  6335,
+		720,   721,   32767, 2886,  -1262, 724,   725,   726,
+		-1253, 728,   729,   730,   731,   2051,  5416,  -1241,
+		367,   367,   367,   367,   367,   740,   9926,  742,
+		369,   6639,  6640,  746,   747,   748,   749,   -114,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, -8006, -8006, -2024, -3666, -3665,
+		-3664, -3663, -3662, 1670,  -3660, 1673,  1674,  1675,
+		-2024, -2024, -3651, -2024, -2024, 32767, 32767, 32767,
+		32767, 32767, -2866, 32767, 32767, -2865, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, -2866, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, -2866, 32767,
+		32767, 32767, -4485, -4485, 758,   759,   32767, 32767,
+		32767, 760,   -2863, -2862, -2861, -2860, -2859, -2858,
+		-2857, 32767, 32767, 32767, 32767, 32767, 32767, 3014,
+		3015,  3016,  32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
-		0,     0,     2516,  2516,  0,     -1913, 0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     877,   0,
-		0,     0,     0,     0,     0,     0,     0,     336,
-		337,   338,   339,   0,     0,     0,     0,     878,
-		0,     346,   347,   348,   349,   6861,  0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     32767, 0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     -4245, 0,     -4244, 0,     0,     0,     32767,
-		32767, 32767, 32767, 0,     32767, 32767, 32767, 32767,
-		3833,  0,     32767, 32767, 32767, 881,   32767, 32767,
-		32767, 0,     32767, 0,     0,     0,     0,     0,
-		0,     0,     32767, 0,     32767, 0,     0,     0,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 0,     0,     32767, 32767, 32767, 32767, 3017,
 		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, 2713,  -2075, -2074, -2073,
-		-2072, -2071, -2070, 2720,  -2068, -2067, -2066, 2724,
-		2725,  2726,  2727,  2728,  2729,  2730,  2731,  2732,
-		2733,  2734,  2735,  2736,  2737,  -2055, -2054, 2740,
-		-2052, 2742,  2743,  2744,  2745,  2746,  2747,  -1630,
-		-741,  -740,  -2049, -2048, -738,  -737,  -1624, 6273,
-		6274,  -291,  -290,  -289,  -288,  -287,  -286,  -285,
-		-284,  -283,  -282,  -281,  -280,  -279,  -278,  -277,
-		-276,  2772,  0,     0,     0,     0,     2779,  -5015,
-		-269,  -268,  0,     0,     -2210, 0,     0,     -262,
-		-261,  -260,  -259,  -258,  0,     0,     0,     0,
+		32767, 2180,  2180,  32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 768,   32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 769,   770,   771,   32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
+		32767, 32767, 32767, 32767, 32767, 772,   773,   32767,
+		774,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 3018,
+		32767, 32767, 0,     32767, 4716,  4717,  32767, 32767,
+		32767, 32767, 32767, 32767, 3019,  0,     3919,  0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     32767, 0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     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, 3643,
+		32767, 32767, 3641,  32767, 32767, 0,     0,     -3355,
+		0,     0,     0,     0,     1998,  0,     0,     0,
+		0,     0,     0,     -3366, -3366, -3366, 0,     0,
+		-3368, 0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     32767, 0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     2040,  2040,
-		2040,  0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     3365,  0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     676,   0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     32767,
-		32767, 32767, 32767, 32767, 32767, 0,     0,     0,
-		0,     0,     0,     0,     0,     32767, 32767, 32767,
+		0,     0,     0,     0,     0,     0,     677,   0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     13799, 0,     0,     0,     9279,  2994,  32767,
+		8461,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		1755,  32767, 32767, 32767, 32767, 32767, 32767, 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,
-		165,   166,   0,     0,     0,     0,     0,     0,
+		32767, 32767, 32767, 3196,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -4700,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -3816,
+		360,   361,   362,   -572,  364,   365,   -571,  -570,
+		689,   -2787, -9524, -9524, -3816, -3816, -9524, -9524,
+		-9524, -3816, 699,   700,   701,   702,   703,   704,
+		705,   706,   707,   8659,  5531,  5531,  5531,  32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 0,     32767,
+		32767, 32767, 32767, 32767, 32767, 4746,  4747,  32767,
+		4748,  32767, 32767, 32767, 4749,  -507,  -507,  -507,
+		-507,  -507,  -507,  -507,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -872,
+		32767, 32767, 3030,  3031,  3032,  3033,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, -3585, -3585, -3585,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     -3964, -6227, -1438, 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,     32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 2824,  2825,  5791,  3454,
-		3455,  3456,  32767, 10734, -115,  3459,  1375,  32767,
-		32767, 3461,  10743, 5953,  3464,  3465,  3466,  3467,
-		10751, 32767, 10753, 3470,  3471,  3472,  3473,  3474,
-		3475,  32767, 3476,  5980,  10770, 5982,  7789,  7790,
-		3482,  0,     2797,  0,     2798,  0,     2799,  0,
-		2800,  0,     2801,  0,     2802,  0,     2803,  0,
-		2804,  0,     0,     2806,  0,     2807,  32767, 2807,
-		0,     0,     0,     32767, 0,     0,     -376,  2812,
-		0,     32767, 2812,  32767, 32767, 32767, 0,     2811,
-		2811,  0,     2812,  2812,  0,     32767, 0,     0,
+		0,     0,     0,     0,     0,     -10784,-5076, -561,
+		-560,  0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     2833,  0,     0,     0,     0,     3781,
-		2837,  3782,  2837,  0,     3784,  3785,  0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     2850,  0,     2851,  0,     2852,  0,
-		2853,  0,     2854,  0,     2855,  0,     2856,  0,
-		2857,  0,     2858,  0,     2859,  0,     2860,  0,
-		2861,  0,     0,     2863,  0,     2864,  0,     3815,
-		0,     0,     0,     0,     0,     0,     3828,  3829,
-		9436,  9437,  9438,  6411,  2873,  2873,  0,     2874,
-		2874,  8636,  9445,  9446,  9447,  9448,  0,     0,
+		2304,  2304,  0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     2897,  0,     0,     660,   7421,  7236,
-		2899,  0,     0,     0,     2902,  816,   0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     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, 2013,  32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 5486,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 4750,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		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,     -3368, -3368,
+		798,   32767, -372,  -372,  -372,  -372,  -372,  -372,
+		0,     1160,  0,     0,     0,     0,     0,     0,
+		1161,  0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     5714,  5714,  9877,  9878,  9879,  9880,  0,
+		0,     -97,   -97,   -97,   -97,   -97,   5712,  0,
+		0,     9880,  6739,  0,     9882,  9883,  9884,  9885,
+		5710,  0,     3820,  679,   0,     0,     9886,  9887,
+		8951,  0,     0,     6737,  0,     0,     5708,  5708,
+		0,     0,     0,     5708,  10223, 10224, 10225, 10226,
+		10227, 10228, 10229, 0,     0,     10234, 10235, 10236,
+		10237, 10238, 10239, 10240, 10241, 0,     0,     5952,
+		5953,  5954,  5955,  5711,  5957,  5958,  5959,  5960,
+		5961,  5962,  5963,  5711,  5711,  5711,  5711,  6603,
+		5711,  5711,  5711,  5711,  5711,  5711,  5975,  5711,
+		5711,  5711,  5979,  5980,  32767, 32767, 32767, 32767,
+		803,   32767, 32767, 32767, 804,   32767, 32767, 32767,
+		32767, 32767, 32767, 805,   806,   32767, 807,   808,
+		32767, 809,   0,     5999,  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, 1389,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 840,   841,   32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		842,   32767, 843,   32767, 844,   32767, 32767, 32767,
+		32767, 32767, 0,     0,     10606, 0,     845,   5378,
+		0,     0,     0,     0,     1113,  1113,  1113,  1113,
+		1113,  1113,  1113,  1113,  1113,  -6838, -3709, -3708,
+		-3707, 0,     -3493, 0,     0,     0,     0,     -3497,
+		-1953, -164,  -1953, -1953, 5407,  5408,  -1955, -1955,
+		-1955, -1955, -1955, -1955, -3509, -1955, -1955, 812,
+		813,   814,   815,   -1955, -5123, -5122, -5121, -5120,
+		-5119, -5118, -14675,5430,  -5115, -2332, -11383,-2332,
+		-11382,-136,  -135,  -1739, -11384,-11651,-11384,-131,
+		-130,  -3700, -3699, -80,   5447,  -126,  -125,  0,
+		0,     0,     4756,  4757,  0,     5456,  -1715, 0,
+		-117,  0,     10917, 0,     0,     0,     5465,  5466,
+		776,   0,     0,     777,   0,     -5426, 5473,  5474,
+		0,     778,   -5431, 0,     0,     0,     0,     4123,
+		4124,  4125,  0,     0,     0,     0,     4130,  4131,
+		4132,  4133,  4134,  4135,  4136,  4137,  4138,  4139,
+		4140,  4141,  4142,  4143,  5402,  4145,  4146,  4147,
+		4148,  4149,  4150,  4151,  4152,  4153,  4154,  4155,
+		4156,  4157,  4158,  5431,  5432,  4161,  4162,  4163,
+		4164,  4165,  4166,  4167,  4168,  4169,  4170,  4171,
+		4172,  4173,  4174,  4175,  4176,  4177,  4178,  4179,
+		32767, 32767, 4180,  4181,  4182,  4183,  4184,  4185,
+		4186,  4187,  4188,  4189,  4190,  4191,  4192,  6044,
+		6045,  6046,  6047,  6048,  4198,  4199,  4200,  4201,
+		4202,  4203,  4204,  4205,  4206,  4207,  4208,  974,
+		4210,  11136, 3906,  3907,  3908,  3909,  3910,  3911,
+		3912,  3913,  3914,  3915,  3916,  3917,  5988,  5989,
+		0,     0,     3919,  3920,  3921,  3922,  -6053, -6053,
+		-6053, -6053, -6053, -6053, -6053, -244,  -5956, 3924,
+		3925,  784,   3927,  3928,  3929,  3930,  3931,  -244,
+		-244,  3932,  3933,  3934,  3000,  3936,  3937,  3001,
+		3002,  4261,  785,   -5952, -5952, -244,  -244,  -5952,
+		-5952, -5952, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, -5739, -408,
+		-408,  -408,  32767, 32767, 32767, 32767, 3724,  823,
+		824,   32767, 32767, 32767, 32767, 32767, 32767, -421,
+		-2028, -2027, -2026, -2025, -2024, 517,   -4312, -4312,
+		827,   828,   522,   523,   524,   525,   526,   527,
+		528,   529,   530,   531,   532,   533,   534,   535,
+		536,   537,   538,   539,   540,   541,   542,   543,
+		544,   545,   546,   547,   548,   -3617, 550,   551,
+		552,   553,   554,   555,   556,   32767, 557,   32767,
+		558,   559,   32767, 560,   561,   32767, 562,   32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     32767, 32767, 32767,
+		32767, 32767, 32767, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     -1191, -1191,
+		-1191, -2792, 0,     0,     0,     0,     -2791, -2790,
+		-4408, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     -2791, -2790,
+		-2789, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     837,   838,   0,     0,     -3001, 3038,
+		-3001, -3001, -3001, -1087, 0,     -2999, -2999, 0,
+		3047,  0,     0,     0,     -2995, -2995, 0,     0,
+		0,     0,     4287,  0,     0,     4292,  4293,  0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     -550,  0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     3918,  0,     0,     0,     0,     9976,  0,
+		0,     0,     0,     -6065, -6065, 0,     0,     0,
+		0,     3142,  0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     935,   0,     0,     937,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     9645,  0,     -267,  0,     -3303, 0,
+		7684,  7685,  0,     0,     5982,  4340,  4341,  4342,
+		4343,  4344,  9676,  4346,  4347,  9679,  9680,  4350,
+		4351,  4352,  4353,  4354,  4355,  4356,  4357,  4358,
+		4359,  4360,  4361,  4362,  4363,  4364,  4365,  4366,
+		5974,  5974,  5974,  5974,  5974,  5974,  15532, -4572,
+		5974,  3192,  12244, 3194,  12245, 12246, 12247, 2603,
+		12249, 12517, 12251, 999,   12252, 4569,  4569,  12255,
+		12256, 6275,  7918,  7918,  7918,  7918,  7918,  2587,
+		7918,  2586,  2586,  2586,  6286,  6287,  7915,  6289,
+		6290,  7913,  7913,  6293,  96,    7911,  7911,  7911,
+		7911,  6299,  7910,  1253,  7911,  6304,  6305,  6306,
+		6307,  6308,  6309,  -3248, 16857, 6312,  43,    43,
+		43,    43,    43,    43,    9688,  43,    -224,  43,
+		-3260, 43,    7727,  7728,  43,    43,    6025,  1253,
+		6234,  1253,  6384,  6385,  10526, -3272, 1253,  6388,
+		10531, 1253,  1253,  1253,  1253,  6392,  6393,  0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     6053,  6054,  6055,
+		6056,  6057,  6058,  32767, 6059,  6060,  6061,  6062,
+		32767, 6063,  32767, 6064,  32767, 32767, 32767, 4761,
+		32767, 32767, 6065,  32767, 4762,  4763,  32767, 9404,
+		32767, 6067,  4764,  6068,  32767, 6069,  6070,  6071,
+		32767, 6072,  6073,  32767, 6074,  32767, 32767, 6075,
+		32767, 6076,  32767, 6077,  32767, 6078,  32767, 6079,
+		32767, 4374,  4374,  32767, 4373,  32767, 32767, 5324,
+		5325,  5326,  5327,  32767, 6087,  6088,  6089,  6090,
+		6091,  3057,  6093,  32767, 6094,  4376,  -4013, 4376,
+		32767, 4375,  4375,  4375,  4375,  32767, 4374,  32767,
+		4373,  6104,  6105,  6106,  6107,  6108,  6109,  6110,
+		6111,  -3652, 881,   -645,  -645,  -1903, 6116,  6117,
+		6118,  4399,  4400,  4401,  6122,  6123,  3567,  3567,
+		4406,  6127,  7410,  6129,  32767, 32767, 32767, 32767,
+		32767, 7409,  7410,  4412,  32767, 6133,  4414,  4415,
+		6136,  6137,  32767, 4420,  9402,  6140,  134,   134,
+		13933, 134,   134,   134,   9413,  4429,  6149,  4432,
+		6151,  4435,  6153,  6304,  6305,  6306,  6307,  6308,
+		6309,  6310,  6311,  6312,  6313,  6314,  1068,  6316,
+		5378,  6318,  5379,  6320,  803,   6322,  -2232, 6324,
+		6325,  6326,  1074,  6328,  6329,  6330,  6331,  6332,
+		6333,  6334,  6335,  6336,  6337,  6338,  6339,  6340,
+		6341,  6342,  6343,  6344,  6345,  6346,  6347,  6348,
+		6349,  6350,  6351,  6352,  6353,  6354,  6355,  6356,
+		6357,  6358,  6359,  6360,  5417,  6362,  6363,  6364,
+		6365,  6366,  6367,  5423,  6369,  5424,  6371,  6372,
+		5426,  5426,  6375,  5427,  5427,  6378,  6379,  6380,
+		6381,  6382,  6383,  6384,  6385,  6386,  6387,  6388,
+		6389,  6390,  6391,  6392,  6393,  6394,  6395,  6396,
+		6397,  6398,  6399,  6400,  6401,  6402,  6403,  6404,
+		6405,  6406,  6407,  6408,  6409,  6410,  6411,  6412,
+		6413,  6414,  6415,  6416,  6417,  6418,  6419,  6420,
+		6421,  6422,  7182,  5465,  6425,  6426,  6427,  6428,
+		6429,  6430,  6431,  6432,  6433,  6434,  6435,  6436,
+		6437,  6438,  6439,  6440,  6441,  6442,  6443,  6444,
+		6445,  6446,  6447,  6448,  6449,  6450,  6451,  6452,
+		6453,  6454,  6455,  6456,  6457,  6458,  6459,  6460,
+		6461,  6462,  6463,  6464,  6465,  6466,  6467,  6468,
+		6469,  6470,  6471,  6472,  6473,  6474,  6475,  6476,
+		6477,  6478,  5519,  5519,  6481,  6482,  6483,  6484,
+		6485,  6486,  6487,  6488,  6489,  6490,  6491,  6492,
+		6493,  6494,  6495,  6496,  6497,  6498,  6499,  6500,
+		6501,  6502,  6503,  6504,  6505,  6506,  6507,  6508,
+		6509,  6510,  6511,  6512,  6513,  6514,  6515,  6516,
+		6517,  6518,  6519,  6520,  6521,  6522,  6523,  6524,
+		6525,  6526,  6527,  6528,  6529,  6530,  6531,  6532,
+		6533,  1330,  6535,  6536,  6537,  6538,  5577,  6540,
+		6541,  6542,  6543,  6544,  6545,  6546,  6547,  6548,
+		6549,  6550,  5588,  5588,  6553,  6554,  6555,  6556,
+		32767, 6557,  1728,  1728,  6867,  6868,  6562,  6563,
+		6564,  6565,  6566,  6567,  6568,  6569,  6570,  6571,
+		6572,  6573,  6574,  6575,  6576,  6577,  6578,  6579,
+		6580,  6581,  6582,  6583,  6584,  6585,  6586,  6587,
+		6588,  2423,  6590,  6591,  6592,  6593,  6594,  6595,
+		6596,  6597,  6598,  6599,  6600,  6601,  6602,  6603,
+		6604,  6605,  6606,  6607,  6608,  6609,  6610,  6611,
+		6612,  6613,  6614,  6615,  6616,  6617,  6618,  6619,
+		6620,  6621,  6622,  6623,  6624,  6625,  6626,  6627,
+		6628,  6629,  6630,  6631,  6632,  6633,  6634,  6635,
+		6636,  6637,  6638,  6639,  6640,  6641,  6642,  6643,
+		6644,  6645,  6646,  6647,  6648,  6649,  6650,  6651,
+		6652,  6653,  6654,  6655,  6656,  6657,  6658,  6659,
+		6660,  6661,  6693,  6663,  6664,  6665,  6666,  6667,
+		6668,  6669,  6670,  6671,  6672,  6673,  6674,  6675,
+		6676,  6677,  6678,  6679,  7476,  7476,  7476,  7476,
+		7476,  7476,  5625,  5625,  5625,  5625,  5625,  6691,
+		6692,  6693,  6694,  6695,  6696,  6697,  7483,  7483,
+		7483,  7483,  10718, 6703,  6704,  6705,  6706,  6707,
+		6708,  6709,  6710,  6711,  6712,  6713,  6714,  6715,
+		6716,  6717,  6718,  6719,  6720,  6721,  6722,  6723,
+		6724,  6725,  6726,  6727,  6728,  6729,  6730,  6731,
+		6732,  6733,  6734,  6735,  6736,  6737,  6738,  7836,
+		7836,  7836,  12012, 12013, 7838,  7838,  7838,  8773,
+		7838,  7838,  8775,  8775,  7517,  10994, 17732, 17733,
+		12026, 12027, 17736, 17737, 6760,  6761,  6762,  6763,
+		6764,  6765,  6766,  6767,  6768,  6769,  6770,  6771,
+		6772,  6773,  6774,  6775,  2927,  6777,  6778,  6779,
+		6780,  2927,  4471,  6260,  4471,  6785,  6786,  6787,
+		6788,  6789,  6790,  6791,  6792,  6793,  6794,  6795,
+		6796,  6797,  6798,  6799,  6800,  6801,  6802,  6803,
+		6804,  6805,  6806,  6807,  6808,  6809,  6810,  6811,
+		6812,  32767, 3411,  5540,  5541,  3411,  12221, 3411,
+		3411,  3411,  3411,  5548,  5549,  5550,  5551,  5552,
+		5553,  5554,  5555,  5556,  5557,  5558,  5559,  5560,
+		5561,  5562,  5563,  5564,  5565,  5566,  5567,  5568,
+		32767, 32767, 32767, 32767, 32767, 32767, 3915,  32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 6155,  6156,  6157,  6158,  6159,
+		6160,  6161,  6162,  6163,  6164,  6165,  32767, 32767,
+		32767, 32767, 32767, 6166,  6167,  6168,  6169,  6170,
+		6171,  6172,  6173,  6174,  6175,  6176,  6177,  6178,
+		6179,  6180,  4615,  4616,  4617,  4618,  4619,  6186,
+		6187,  6188,  6189,  6190,  6191,  6192,  6193,  6194,
+		6195,  6196,  32767, 6197,  6198,  6199,  6200,  6201,
+		7637,  4495,  4495,  6205,  4052,  4052,  6208,  6209,
+		6210,  6211,  6212,  6213,  6214,  6215,  6216,  6217,
+		6218,  6219,  6220,  6221,  6222,  6223,  6224,  6225,
+		6226,  6227,  6228,  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, 6229,  6230,  6231,
 		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, 6232,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		1009,  -417,  -417,  -417,  32767, 3553,  -9183, 5952,
-		5953,  5954,  5955,  4620,  5957,  176,   177,   178,
-		179,   180,   181,   182,   183,   -4964, -4964, 188,
-		189,   190,   191,   192,   193,   194,   -4964, -4964,
-		32767, -4965, -4965, 32767, -4966, 32767, 32767, -4968,
-		32767, -4969, -4969, -4969, -4969, -4969, -4969, -4969,
-		-4969, -4969, -4969, 32767, -4970, -4970, -4970, -4970,
-		32767, -4971, 32767, -4972, 32767, 32767, 32767, 32767,
-		32767, 32767, -187,  32767, 32767, 32767, 32767, -4980,
-		32767, -4981, 32767, -4982, 32767, -194,  -194,  -194,
-		32767, -195,  -195,  32767, -196,  32767, 32767, -4987,
-		32767, -4988, 32767, -4989, 32767, -4990, 32767, -4991,
-		32767, -4992, -4992, 0,     -4993, 32767, 32767, -4995,
-		-202,  -4995, -4995, 32767, -4996, -4996, -4996, -618,
-		-1506, -1506, -196,  32767, -1506, -1506, -618,  -8514,
-		32767, -8515, -619,  -619,  -619,  32767, 6034,  32767,
-		-455,  -455,  -455,  -455,  -455,  -455,  -455,  -455,
-		-455,  -455,  32767, -456,  -456,  -456,  -456,  -456,
-		-456,  -456,  -456,  -456,  -456,  -456,  -456,  -456,
-		-456,  -456,  -456,  -456,  32767, 32767, 32767, 32767,
-		32767, -461,  -461,  -461,  32767, -7469, -462,  -462,
-		-462,  -462,  32767, -463,  -463,  -463,  -463,  -463,
-		6075,  6076,  6077,  6078,  6079,  6080,  1908,  6082,
-		6083,  6084,  6085,  6086,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		884,   885,   886,   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, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 5994,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 6233,  6234,  6235,  32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 6236,  6237,  6238,  6239,
+		6240,  6241,  6242,  6243,  6244,  6245,  6246,  6247,
+		6248,  6249,  6250,  6251,  6252,  6253,  6254,  6255,
+		6256,  6257,  6258,  6259,  6260,  6261,  6262,  6263,
+		6264,  6265,  6266,  6267,  6268,  6269,  6270,  6271,
+		6272,  6273,  6274,  6275,  6276,  6277,  6278,  6279,
+		32767, 32767, 32767, 32767, 6280,  6281,  6282,  6283,
+		6284,  6285,  6286,  6287,  6288,  4770,  32767, 4771,
+		4772,  32767, 32767, 32767, 6289,  6290,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, -5160, 2071,
+		2071,  2071,  2071,  32767, 2070,  2070,  2070,  2070,
+		2070,  2070,  2070,  0,     0,     6236,  6237,  2075,
+		2075,  2075,  2075,  12051, 12052, 12053, 12054, 12055,
+		12056, 12057, 6249,  11962, 2083,  2083,  5225,  2083,
+		2083,  2083,  2083,  2083,  6259,  6260,  2085,  2085,
+		2085,  3020,  2085,  2085,  3022,  3022,  32767, 5240,
+		11978, 11979, 6272,  6273,  11982, 11983, 11984, 6277,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 4773,  32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, -9650, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 4751,  32767, 32767, -6842, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -750,428 +710,137 @@ Decomp_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 415,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 0,     0,     0,     0,
+		32767, 32767, 32767, 32767, 32767, 32767, -2468, -2468,
+		-2468, -2468, -2468, -2468, -2468, -2468, -2468, -2468,
+		-2468, -2468, -2468, -2468, -2468, -2468, -2468, -2468,
+		2089,  2090,  2091,  -2465, -2465, -2465, -2465, -2465,
+		-2465, 2098,  2099,  -2463, -2463, -2463, -2463, -2463,
+		-2463, 2106,  2107,  -2461, -2461, -2461, -2461, -2461,
+		-2461, 0,     0,     -2459, -2459, -2459, 2119,  2120,
+		2121,  -2456, 2123,  2124,  2125,  2126,  2127,  2128,
+		0,     0,     2131,  -6678, 2133,  2134,  2135,  2136,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     2158,  2159,  2160,
+		2161,  2162,  2163,  2164,  2165,  2166,  2167,  2168,
+		2169,  2170,  2171,  2172,  2173,  2174,  2175,  2176,
+		2177,  2178,  2179,  2180,  2181,  -2412, -2412, -2412,
+		-2412, -2412, 2187,  2188,  2025,  2190,  2191,  2192,
+		2193,  2194,  2195,  2196,  2197,  2198,  2199,  2200,
+		2201,  2202,  2203,  2204,  2205,  2206,  2207,  2208,
+		2209,  2210,  2211,  2212,  2213,  2214,  2215,  2216,
+		2217,  2218,  2219,  2220,  2221,  0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		3990,  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, 0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     2002,  2002,  2002,  0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     32767, 32767, 0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     4118,  0,
-		0,     0,     0,     0,     0,     0,     4126,  0,
-		0,     2728,  0,     0,     32767, 32767, 32767, 32767,
-		32767, 0,     5928,  5929,  5930,  5931,  0,     32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 4755,  32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 4132,  4133,  4134,  4135,
-		4136,  4137,  4138,  4139,  4140,  4141,  4142,  4143,
-		4144,  32767, 32767, 886,   5880,  32767, 32767, 32767,
-		32767, 32767, 32767, 1132,  1132,  1132,  1132,  32767,
-		6280,  1129,  1129,  32767, 1128,  1128,  1128,  1128,
-		6287,  6288,  6289,  6290,  6291,  6292,  6293,  32767,
-		6294,  6295,  32767, 1343,  6296,  6297,  6298,  6299,
-		6300,  32767, 32767, 6301,  6302,  6303,  32767, 6304,
-		32767, 6305,  32767, 6306,  32767, 6307,  1517,  1518,
-		16878, 32767, 6311,  6312,  1522,  32767, 6314,  1524,
-		1525,  6315,  6316,  6317,  6318,  32767, 6319,  1531,
-		1532,  1533,  1534,  1535,  32767, 32767, 32767, 32767,
-		1536,  6326,  6327,  6328,  6329,  32767, 0,     32767,
-		0,     10802, 0,     6330,  6331,  6332,  6333,  1541,
-		1542,  6336,  1544,  6338,  6339,  6340,  6341,  6342,
-		6343,  1966,  2855,  2856,  1547,  1548,  2858,  2859,
-		1972,  9869,  9870,  9871,  1976,  1977,  1978,  1979,
-		1980,  518,   519,   520,   521,   -966,  522,   523,
-		20457, 525,   526,   527,   528,   529,   530,   531,
-		532,   533,   783,   6122,  6123,  6124,  6125,  6126,
-		6127,  6128,  32767, 6129,  1999,  6131,  6132,  6133,
-		6134,  6135,  6136,  5309,  6138,  6139,  6140,  6141,
-		5313,  5313,  10102, 6145,  6146,  -2467, 1836,  6149,
-		6150,  6151,  6152,  6153,  1535,  6155,  6156,  6157,
-		5326,  5326,  5326,  32767, 32767, 32767, 32767, 32767,
-		32767, 1837,  32767, 1741,  32767, 32767, 32767, 32767,
-		10538, 10539, 9184,  9185,  6237,  7726,  7727,  7728,
-		7729,  7730,  6243,  7731,  7732,  27666, 7734,  7735,
-		7736,  7737,  7738,  7739,  7740,  7741,  7742,  7992,
-		7992,  7745,  7746,  7747,  7748,  7749,  7750,  7751,
-		7752,  7753,  7754,  7755,  7756,  7757,  7758,  7759,
-		7760,  1660,  7762,  7763,  7764,  7765,  7766,  7767,
-		7768,  6282,  7770,  7141,  -128,  -128,  -128,  7768,
-		7768,  7768,  4803,  7141,  7141,  7141,  5529,  -136,
-		10714, 7141,  9226,  -10707,4652,  7141,  -140,  4651,
-		7141,  7141,  7141,  7141,  -142,  5529,  -143,  7141,
-		7141,  7141,  6315,  7140,  7140,  6318,  6319,  4635,
-		6321,  6322,  6323,  6324,  6325,  6326,  6327,  6328,
-		6329,  6330,  9168,  9169,  9170,  15325, 15078, 15079,
-		9174,  9175,  9176,  6539,  9178,  9179,  9180,  6344,
-		6345,  6346,  6347,  8761,  6349,  6350,  6351,  9193,
-		9194,  9195,  4634,  4634,  9196,  9197,  9198,  -1165,
-		-1165, -1165, 4937,  6364,  6365,  6366,  10077, 2397,
-		15134, 0,     0,     0,     0,     1336,  0,     5782,
-		5782,  5782,  5782,  5782,  5782,  5782,  5782,  10930,
-		10931, 5780,  5780,  5780,  5780,  5780,  5780,  5780,
-		10939, 10940, 10941, 10942, 10943, 10944, 10945, 10946,
-		10947, 10948, 10949, 10950, 10951, 10952, 10953, 10954,
-		10955, 10956, 10957, 10958, 10959, 10960, 10961, 10962,
-		10963, 10964, 10965, 10966, 10967, 10968, 6178,  6179,
-		21539, 6181,  10973, 10974, 6184,  6185,  10977, 6187,
-		6188,  10978, 10979, 10980, 10981, 10982, 10983, 6195,
-		6196,  6197,  6198,  6199,  6200,  10990, 6202,  6203,
-		6204,  10994, 10995, 10996, 10997, 10998, 10999, 11000,
-		11001, 11002, 11003, 11004, 11005, 11006, 11007, 6215,
-		6216,  11010, 6218,  11012, 11013, 11014, 11015, 11016,
-		11017, 6640,  7529,  7530,  6221,  6222,  7532,  7533,
-		6646,  14543, 14544, 14545, 6650,  6651,  6652,  6653,
-		0,     6489,  6490,  6491,  6492,  6493,  6494,  6495,
-		6496,  6497,  6498,  6499,  6500,  6501,  6502,  6503,
-		6504,  6505,  6506,  6507,  6508,  6509,  6510,  6511,
-		6512,  6513,  6514,  6515,  6516,  6517,  6518,  6519,
-		6520,  5211,  6522,  6523,  6524,  6525,  13533, 13534,
-		6528,  6529,  6530,  6531,  6532,  6533,  6534,  6535,
-		6536,  6537,  0,     0,     0,     0,     0,     0,
-		4173,  0,     0,     0,     0,     0,     6550,  6551,
-		6552,  6553,  6554,  6555,  6556,  6557,  6558,  6559,
-		6560,  6561,  6562,  6563,  6564,  6565,  4873,  6567,
-		6568,  6569,  6570,  6571,  6572,  6573,  6574,  6575,
-		6576,  6577,  6578,  6579,  6580,  6581,  6582,  6583,
-		6584,  6585,  6586,  6587,  6588,  6589,  6590,  6591,
-		6592,  6593,  6594,  6595,  6596,  6597,  6598,  6599,
-		6600,  6601,  6602,  6603,  6604,  6605,  6606,  6607,
-		6608,  6609,  6610,  6611,  6612,  6613,  6614,  6615,
-		6616,  6617,  6618,  6619,  6620,  6621,  6622,  6623,
-		6624,  6625,  6626,  6627,  6628,  6629,  6630,  6631,
-		6632,  6633,  6634,  6635,  6636,  6637,  6638,  6639,
-		6640,  6641,  6642,  6643,  6644,  6645,  6646,  6647,
-		6648,  6649,  6650,  6651,  6652,  6653,  6654,  6655,
-		6656,  6657,  6658,  13552, 6660,  6661,  6662,  6663,
-		6664,  6665,  6666,  6667,  6668,  6669,  6670,  13573,
-		6672,  6673,  6674,  6675,  9276,  6677,  4704,  4705,
-		6680,  6681,  6682,  6683,  13596, 12241, 6686,  6687,
-		6688,  6689,  6690,  6691,  6692,  6693,  6694,  6695,
-		6696,  6697,  6698,  6699,  6700,  6701,  6702,  6703,
-		6704,  6705,  6706,  6707,  6708,  6709,  6710,  6711,
-		6712,  6713,  6714,  6715,  6716,  6717,  6718,  6719,
-		6720,  6721,  6722,  6723,  6724,  6725,  6726,  6727,
-		3709,  6729,  3710,  3710,  3710,  6733,  6734,  3712,
-		3712,  6737,  6738,  6739,  6740,  6741,  4536,  3717,
-		6744,  32767, 6745,  6746,  6747,  6748,  6749,  6750,
-		6751,  6752,  6753,  6754,  6755,  6756,  6757,  6758,
-		6759,  6760,  6761,  6762,  6763,  6764,  6765,  6766,
-		6767,  6768,  6769,  -2005, 6771,  -3121, -3121, -3121,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 895,   896,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 4706,  4707,  32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 897,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 898,
-		899,   900,   901,   902,   903,   904,   905,   32767,
-		32767, 906,   32767, 32767, 32767, 32767, 32767, 32767,
-		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		1,     32767, 2,     32767, 32767, 32767, 32767, 3,
-		32767, 32767, 4,     5,     6,     7,     32767, 32767,
-		8,     9,     10,    32767, 11,    83,    13,    32767,
-		14,    15,    16,    17,    18,    19,    32767, 20,
-		21,    22,    907,   908,   909,   910,   911,   912,
-		913,   914,   915,   916,   917,   918,   919,   920,
-		32767, 921,   922,   923,   924,   925,   926,   927,
-		928,   929,   -380,  931,   932,   933,   934,   7942,
-		7943,  7944,  49,    50,    51,    52,    53,    -1409,
-		32767, -1408, -1407, -2894, -1406, -1405, 18529, 3171,
-		32767, -1403, -1402, -1401, -1400, -1399, 32767, -1398,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 683,   32767, 7976,  32767, 4994,  32767, 686,
-		32767, 0,     32767, 0,     32767, 0,     32767, 0,
-		32767, 0,     32767, 0,     32767, 0,     32767, 0,
-		32767, 937,   0,     -3182, 0,     -3183, 0,     -3184,
-		32767, 941,   32767, 32767, 32767, -3188, 0,     32767,
-		0,     0,     32767, 0,     0,     32767, 0,     0,
-		32767, 0,     0,     32767, 32767, 32767, 32767, 32767,
+		0,     0,     0,     0,     0,     0,     1566,  1566,
+		1566,  1566,  1566,  0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     32767, 0,
+		0,     0,     0,     0,     -1435, 1708,  1709,  0,
+		2154,  2155,  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, 943,
-		32767, 0,     32767, 32767, 32767, 32767, 944,   0,
-		945,   0,     32767, 946,   947,   32767, 948,   949,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 0,     32767, 0,     32767, 0,     32767, 0,
-		32767, 0,     32767, 0,     32767, 0,     32767, 0,
-		32767, 0,     32767, 0,     32767, 0,     32767, 0,
-		32767, 32767, 0,     32767, 0,     32767, 950,   951,
-		952,   953,   954,   955,   956,   957,   958,   32767,
-		6565,  6566,  32767, 0,     0,     32767, 0,     0,
-		32767, 6570,  6571,  32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 0,     0,     0,     32767, 32767, 4774,  4775,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 0,     32767, 32767, -2239, 4522,  4337,  0,
-		32767, 32767, 32767, 0,     -2086, 32767, 32767, 0,
-		0,     0,     0,     0,     0,     959,   960,   0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     4578,  4579,  0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		-4175, -5292, 0,     0,     32767, 0,     32767, 0,
-		0,     32767, 0,     0,     32767, 0,     32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 961,   32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 0,     962,   963,   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, 0,     0,     0,     0,
+		0,     0,     0,     0,     -2552, 0,     0,     32767,
+		0,     32767, 32767, 32767, 1551,  293,   3770,  32767,
+		32767, 32767, 32767, 0,     32767, 0,     32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		0,     0,     0,     32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     32767, 32767, 32767, 0,
+		0,     32767, 0,     0,     32767, 32767, 32767, 32767,
+		0,     32767, 0,     32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     0,     0,     32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, -4309, -4309, 0,     32767,
+		0,     -4310, -4577, -4310, -7613, -4310, 3374,  3375,
+		-4310, -4310, 1672,  -3100, 1881,  -3100, 2031,  2032,
+		6173,  -7625, -3100, 2035,  6178,  -3100, -3100, -3100,
+		-3100, 2039,  2040,  32767, 0,     -4353, -4353, 0,
+		-4352, 0,     0,     -4350, 0,     -4349, -4349, -4349,
+		-4349, 32767, 0,     32767, 32767, 32767, 32767, 32767,
+		32767, 0,     32767, 0,     0,     32767, 0,     0,
+		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, 964,   32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 0,     0,     0,     0,
+		0,     951,   952,   953,   954,   955,   956,   957,
+		1717,  0,     32767, 32767, 32767, -1317, 32767, 32767,
+		32767, 0,     -8389, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     32767, 32767, 32767,
+		32767, 32767, 32767, 887,   888,   32767, 32767, 32767,
 		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, -5009, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 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, 0,     32767, 32767, 32767, 32767, 32767,
-		0,     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, 0,     0,     0,
-		32767, 32767, -3913, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 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, 5520,  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, 965,   966,   967,   32767,
-		968,   969,   970,   971,   972,   973,   974,   975,
-		976,   977,   978,   979,   980,   32767, 981,   982,
-		983,   984,   985,   986,   987,   32767, 32767, 32767,
-		32767, 988,   32767, 32767, 32767, 32767, 32767, 32767,
-		989,   32767, 32767, 32767, -4941, 991,   32767, 32767,
-		0,     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, 992,   993,   994,   32767, 995,   996,   997,
-		998,   999,   1000,  1001,  -3143, -3143, -3143, -3143,
-		32767, -3144, -3144, -3144, -3144, -3144, 1011,  1012,
-		1013,  1014,  1015,  1016,  -3138, -3138, -3138, -3138,
-		-3138, -3138, -3138, 32767, -3139, -3139, -3139, -3139,
-		-3139, -3139, -3139, -3139, -3139, -3139, -3139, -3139,
-		-3139, -3139, -3139, -3139, -3139, -3139, -3139, -3139,
-		-3139, -3139, -3139, -3139, -3139, -3139, -3139, 872,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 3049,  3049,  -3150, 3049,  3049,
-		3049,  3049,  3049,  3049,  3049,  3049,  3049,  3049,
-		3049,  3049,  3049,  3049,  3049,  3049,  3049,  3049,
-		3049,  3049,  3049,  3049,  3049,  0,     0,     0,
-		0,     0,     0,     0,     0,     3057,  5596,  5597,
-		5598,  6716,  6717,  6718,  6719,  6720,  6721,  6722,
-		6723,  -3176, -3176, 6728,  6729,  6730,  6731,  6732,
-		6733,  6734,  6735,  -3176, -3176, -3176, -3176, -3176,
-		-3176, 8013,  2958,  2959,  -3141, 2961,  2962,  2963,
-		2964,  2965,  8022,  8023,  -3176, -3176, -3176, -3176,
-		-3176, 5630,  5631,  -2,    -2,    -2,    -2,    7679,
-		-3176, -3176, -3176, -3176, -3176, -3176, -3176, -3176,
-		-3176, -4957, -4957, -4957, -4957, -3176, -3176, -3176,
-		-3176, -3176, -3176, -3176, -3176, -3176, -3176, -3176,
-		-3176, -3176, -3176, -3176, -3176, -3176, -3176, -3176,
-		-3176, -3176, 1880,  1880,  7981,  1880,  1880,  1880,
-		1880,  1880,  -3176, -3176, -1258, 4882,  4883,  4884,
-		895,   4886,  -3176, 4861,  4862,  4863,  4864,  -2816,
-		9921,  -5213, -5213, -5213, -5213, -3877, -5213, 569,
-		569,   569,   569,   569,   569,   569,   569,   5717,
-		5718,  567,   567,   567,   567,   567,   567,   567,
-		5726,  5727,  5728,  5729,  5730,  5731,  5732,  5733,
-		5734,  5735,  5736,  5737,  5738,  5739,  5740,  5741,
-		5742,  5743,  5744,  5745,  5746,  5747,  5748,  5749,
-		5750,  5751,  5752,  5753,  5754,  5755,  965,   966,
-		16326, 968,   5760,  5761,  971,   972,   5764,  974,
-		975,   5765,  5766,  5767,  5768,  5769,  5770,  982,
-		983,   984,   985,   986,   987,   5777,  989,   990,
-		991,   5781,  5782,  5783,  5784,  5785,  5786,  5787,
-		5788,  5789,  5790,  5791,  5792,  5793,  5794,  1002,
-		1003,  5797,  1005,  5799,  5800,  5801,  5802,  5803,
-		5804,  1427,  2316,  2317,  1008,  1009,  2319,  2320,
-		1433,  9330,  9331,  9332,  1437,  1438,  1439,  1440,
-		1441,  -21,   -20,   -19,   -18,   -1505, -17,   -16,
-		19918, -14,   -13,   -12,   -11,   -10,   -9,    -8,
-		-7,    -6,    244,   244,   -3,    -2,    -1,    0,
-		1,     2,     3,     4,     1469,  5,     6,     7,
-		8,     9,     32767, 32767, 32767, 32767, 10,    11,
-		12,    13,    5070,  5071,  3154,  -2985, 1318,  1319,
-		1320,  -2988, 5075,  -2961, -2961, -2961, -2961, 1327,
-		1328,  1329,  1330,  1331,  1332,  1333,  1334,  1335,
-		1336,  1337,  1338,  1339,  1340,  1341,  1342,  1343,
-		1344,  1345,  1346,  1347,  1348,  1349,  1350,  1351,
-		1352,  1353,  1354,  1355,  1356,  1357,  1358,  1359,
-		1360,  1361,  1362,  1363,  1364,  1365,  1366,  1367,
-		7522,  7275,  7276,  1371,  1372,  1373,  -1264, 1375,
-		1376,  1377,  1378,  1379,  1380,  1381,  1382,  957,
-		-14402,957,   1386,  1387,  1388,  1389,  1390,  1391,
-		1392,  1393,  -8970, -8970, -8970, 1397,  1398,  948,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 1400,
-		1401,  1402,  1403,  1404,  1405,  1406,  1407,  1408,
-		1409,  1410,  1411,  1412,  1413,  1414,  1415,  1416,
-		1417,  1418,  1419,  1420,  1421,  32767, 32767, 1422,
-		1423,  1424,  1425,  1426,  1427,  32767, 32767, 1428,
-		1429,  1430,  1431,  8325,  1433,  1434,  1435,  1436,
-		1437,  1438,  1439,  1440,  1441,  1442,  1443,  8346,
-		1445,  1446,  1447,  1448,  4049,  1450,  -523,  -522,
-		1453,  1454,  1455,  1456,  8369,  7014,  1459,  1460,
-		1461,  1462,  1463,  1464,  1465,  32767, 32767, 1466,
-		1467,  1468,  1469,  1470,  1471,  32767, 32767, 1472,
-		1473,  1474,  1475,  1476,  1477,  1478,  1479,  32767,
-		1480,  32767, 1481,  32767, 1482,  32767, 1483,  1484,
-		1485,  1486,  1487,  1488,  1489,  1490,  1491,  1492,
-		-1526, 1494,  -1525, -1525, -1525, 1498,  1499,  -1523,
-		-1523, 1502,  1503,  1504,  1505,  1506,  -699,  -1518,
-		1509,  -1517, 1511,  1512,  1513,  32767, 32767, 1514,
-		1515,  1516,  1517,  1518,  1519,  1520,  1521,  1522,
-		1523,  1524,  1525,  1526,  1527,  1528,  1529,  1530,
-		1531,  1532,  1533,  1534,  1535,  1536,  1537,  1538,
-		1539,  1540,  1541,  1542,  1543,  1544,  1545,  1546,
-		1547,  1548,  1549,  5054,  1551,  1552,  1553,  8447,
-		1555,  1556,  -4049, 1558,  1559,  1560,  -1467, 5063,
-		1563,  5064,  5064,  1566,  32767, 1567,  1568,  1569,
-		1570,  1571,  1572,  1573,  1574,  1575,  1576,  1577,
-		1578,  1579,  1580,  1581,  32767, 1582,  1583,  1584,
-		1585,  1586,  1587,  1588,  1589,  1590,  1591,  1592,
-		1593,  1594,  1595,  32767, 32767, 1596,  1597,  1598,
-		1599,  1600,  1601,  32767, 1602,  1603,  1604,  1605,
-		1606,  1607,  1608,  1609,  1610,  1611,  1612,  1613,
-		1614,  1615,  1616,  1617,  1618,  0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     1630,  1631,  0,     32767, -5702,
-		-5702, -5702, 0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     32767, 0,     32767, 0,
-		32767, -7163, 0,     0,     32767, 32767, 32767, 0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     -7269, -7269, -7269, 627,
-		627,   627,   -2338, 0,     0,     0,     -1612, -7277,
-		3573,  0,     2085,  -17848,-2489, 0,     -7281, -2490,
-		0,     0,     0,     0,     -7283, -1612, -7284, 0,
-		0,     0,     0,     0,     0,     0,     0,     -2503,
-		-7292, -2503, -4309, -4309, 0,     536,   -4307, -4307,
-		-4307, -4307, 677,   -4306, -4306, -4306, -4306, -7305,
-		0,     -4306, -4306, 32767, 32767, -4308, -4308, -7312,
-		-4307, 690,   -4306, -6530, 0,     -4306, 0,     0,
-		-4306, 0,     -4305, -4305, -4305, -4305, -4305, -4305,
-		-2949, -2949, 0,     -1488, -1488, -1488, -1488, -1488,
-		0,     -1487, -1487, -21420,-1487, -1487, -1487, -1487,
-		-1487, -1487, -1487, -1487, -1487, -1736, -1735, -1487,
-		-1487, -1487, -1487, -1487, -1487, -1487, -1487, -1487,
-		-1487, -1487, -1487, -1487, -1487, -1487, -1487, 4614,
-		-1487, -1487, -1487, -1487, -1487, -1487, -1487, 0,
-		-1487, -857,  6413,  6414,  6415,  -1480, -1479, -1478,
-		1488,  -849,  -848,  -847,  766,   6432,  -4417, -843,
-		-2927, 17007, 1649,  -839,  6443,  1653,  -836,  -835,
-		-834,  -833,  6451,  781,   6454,  -829,  -828,  -827,
-		0,     -824,  -823,  0,     0,     1685,  0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		-2837, -2837, -2837, -8991, -8743, -8743, -2837, -2837,
-		-2837, -199,  -2837, -2837, -2837, 0,     0,     0,
-		0,     -2413, 0,     0,     0,     -2841, -2841, -2841,
-		1721,  1722,  -2839, -2839, -2839, 7525,  7526,  7527,
-		1426,  0,     0,     0,     -3710, 3971,  -8765, 6370,
-		6371,  6372,  6373,  5038,  6375,  594,   595,   596,
-		597,   598,   599,   600,   601,   -4546, -4546, 606,
-		607,   608,   609,   610,   611,   612,   -4546, -4546,
-		-4546, -4546, -4546, -4546, -4546, -4546, -4546, -4546,
-		-4546, -4546, -4546, -4546, -4546, -4546, -4546, -4546,
-		-4546, -4546, -4546, -4546, -4546, -4546, -4546, -4546,
-		-4546, -4546, -4546, -4546, 245,   245,   -15114,245,
-		-4546, -4546, 245,   245,   -4546, 245,   245,   -4544,
-		-4544, -4544, -4544, -4544, -4544, 245,   245,   245,
-		245,   245,   245,   -4544, 245,   245,   245,   -4544,
-		-4544, -4544, -4544, -4544, -4544, -4544, -4544, -4544,
-		-4544, -4544, -4544, -4544, -4544, 249,   249,   -4544,
-		249,   -4544, -4544, -4544, -4544, -4544, -4544, -166,
-		-1054, -1054, 256,   256,   -1053, -1053, -165,  -8061,
-		-8061, -8061, -165,  -165,  -165,  -165,  -165,  1298,
-		1298,  1298,  1298,  2786,  1299,  1299,  -18634,1299,
-		1299,  1299,  1299,  1299,  1299,  1299,  1299,  1299,
-		1050,  1051,  1299,  1299,  1299,  1299,  1299,  1299,
-		1299,  1299,  -165,  1300,  1300,  1300,  1300,  1300,
-		1300,  1300,  7401,  1300,  1300,  1300,  1300,  1300,
-		-3756, -3756, -1838, 4302,  0,     0,     0,     4309,
-		-3753, 4284,  4285,  4286,  4287,  0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     -6154, -5906,
-		-5906, 0,     0,     0,     2638,  0,     0,     0,
-		0,     0,     0,     0,     0,     426,   15786, 428,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		10364, 10365, 10366, 0,     0,     451,   452,   453,
-		454,   455,   456,   32767, 32767, 0,     0,     0,
-		32767, 32767, 32767, 0,     0,     0,     0,     0,
-		0,     0,     32767, 0,     0,     0,     0,     0,
-		0,     0,     32767, 1842,  32767, 32767, 1843,  32767,
-		32767, 0,     32767, 0,     32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 1844,  32767,
-		0,     0,     0,     32767, 32767, 32767, 1846,  1847,
-		32767, 1848,  1849,  32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 0,     0,     0,     32767,
-		32767, 32767, 32767, 0,     32767, 32767, 1851,  32767,
-		32767, 1852,  32767, 0,     0,     32767, 32767, 32767,
-		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 5990,  5991,  5992,  5993,  32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 1854,  32767, 1855,  6223,  6224,  6225,
-		6226,  6227,  6228,  6229,  6230,  6231,  6232,  1856,
-		1857,  1574,  1574,  1574,  32767, 32767, 1572,  1572,
-		32767, 32767, 1863,  1864,  32767, 32767, 32767, 32767,
-		32767, 32767, 1865,  1866,  32767, 32767, 1867,  1868,
-		32767, 32767, 1869,  1870,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 890,   32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 891,   32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 1871,  1872,
-		3017,  1874,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 3018,  32767, 32767,
 		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, 799,   32767, 32767, 32767,
+		32767, 800,   32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 801,   802,   32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 1875,  1876,  1877,  1878,  32767, 32767,
-		32767, 0,     0,     32767, 1879,  1880,  1881,  1882,
 		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, 0,     0,
+		0,     0,     0,     0,     6545,  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,
+		0,     32767, 32767, 32767, 0,     32767, 32767, 32767,
+		32767, 32767, 32767, 0,     0,     32767, 0,     0,
+		32767, 0,     32767, 32767, 32767, 32767, 32767, 32767,
+		-5711, 241,   242,   243,   244,   0,     246,   247,
+		248,   249,   250,   251,   252,   0,     0,     0,
+		0,     892,   0,     0,     0,     0,     0,     0,
+		264,   0,     0,     0,     32767, 32767, 0,     0,
+		32767, 32767, 32767, 32767, 32767, 32767, 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, 1883,  1884,  32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -1179,23 +848,99 @@ Decomp_hash_func(const void *key)
 		32767, 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,     32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 893,   -266,  895,   32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		0,     0,     0,     0,     0,     0,     0,     0,
+		284,   285,   286,   287,   288,   0,     290,   291,
+		292,   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, 0,
+		293,   294,   295,   296,   297,   298,   32767, 32767,
+		299,   -4082, -4081, -4080, 303,   0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     32767, 0,     0,     0,     0,
+		0,     32767, 0,     32767, 0,     0,     32767, 0,
+		0,     32767, 0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     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, -4245, -4245, 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,     32767, 32767, 32767, 32767,
+		32767, 32767, -689,  32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -706,
+		-706,  -706,  -706,  -706,  -706,  -706,  -706,  32767,
+		32767, -7551, 32767, 32767, 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,     -2263, 2526,  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, -4377, -4377, -8024, -8023, -4377, -4377,
+		-3916, -4377, -4377, -4377, -4377, -4377, -4377, -4377,
+		32767, -4378, -4378, -4378, -4378, -4378, -4378, -4378,
+		-4378, -4378, -4378, -4378, -4378, -4378, -4378, -4378,
+		-4378, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 150,   1867,  150,   0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     5247,  0,     939,   0,     940,   0,     5518,
+		0,     8555,  0,     0,     0,     5253,  0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     944,
+		0,     0,     0,     0,     0,     0,     945,   0,
+		946,   0,     0,     947,   948,   0,     949,   950,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     -759,  959,   0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     960,   961,   0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     5204,  0,     0,     0,
+		0,     962,   0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     963,   964,   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,
@@ -1203,6 +948,7 @@ Decomp_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 5186,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -1210,219 +956,176 @@ Decomp_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 1885,  1886,  1887,  1888,
-		1889,  1890,  1891,  1892,  1893,  1894,  4758,  4759,
-		4760,  4761,  4762,  1900,  1901,  1902,  1903,  1904,
-		1905,  1906,  1907,  1908,  1909,  924,   1911,  1912,
-		1913,  1914,  1915,  1916,  1917,  1918,  1919,  1920,
-		1921,  1107,  1923,  1924,  1925,  1926,  1927,  1928,
-		1929,  1930,  1931,  1932,  1933,  1934,  1935,  1936,
-		1937,  1938,  1939,  1123,  1123,  1123,  1943,  1944,
-		1945,  1946,  1947,  1948,  1949,  1950,  1951,  1952,
-		1953,  1954,  1955,  1956,  1957,  1958,  1959,  1960,
-		1961,  1962,  1963,  1964,  1965,  1966,  1967,  1968,
-		1969,  1970,  1971,  1972,  1973,  1974,  4727,  1976,
-		1977,  1978,  1979,  1980,  1981,  1982,  1983,  1984,
-		1985,  1986,  1987,  1988,  1989,  1990,  1991,  1992,
-		1993,  1994,  1995,  1996,  1997,  1998,  1999,  2000,
-		-2451, 2002,  -2448, 2004,  2005,  2006,  -2441, -2724,
-		2009,  2010,  2011,  2012,  2013,  2014,  2015,  2016,
-		2017,  2018,  2019,  2020,  2021,  0,     2023,  985,
-		985,   7086,  985,   985,   985,   985,   985,   -4071,
-		-4071, -2153, 3987,  3988,  3989,  0,     3991,  -4071,
-		3966,  3967,  -4071, 260,   261,   262,   263,   264,
-		265,   266,   3264,  32767, 32767, -2437, -2436, 32767,
-		32767, 32767, 32767, 32767, 32767, 270,   271,   272,
-		273,   274,   275,   4728,  277,   278,   279,   280,
-		281,   -2434, 283,   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, 0,     32767,
+		0,     0,     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,     32767, 32767,
 		32767, 32767, 32767, 32767, 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, 0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		32767, 32767, 32767, 32767, 1329,  441,   441,   1751,
-		1751,  442,   442,   1330,  -6566, -6566, 0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     -3047, -274,
-		-273,  -272,  -271,  1946,  4745,  0,     0,     -267,
-		-266,  1945,  -264,  -263,  0,     0,     0,     0,
-		0,     0,     0,     0,     -6199, 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, 0,     2539,  2540,  2541,
-		3659,  3660,  3661,  3662,  3663,  3664,  3665,  3666,
-		-6233, -6233, 3671,  3672,  3673,  3674,  3675,  3676,
-		3677,  3678,  -6233, -6233, -6233, -6233, -6233, -6233,
-		4956,  -99,   -98,   -6198, -96,   -95,   -94,   -93,
-		-92,   4965,  4966,  -6233, -6233, -6233, -6233, -6233,
-		2573,  2574,  -3059, 3049,  -3060, -3060, 4621,  -6234,
-		-6234, -6234, -6234, -6234, -6234, -6234, -6234, -6234,
-		-8015, -8015, -8015, -8015, -6234, -6234, -6234, -6234,
-		-6234, -6234, -6234, -6234, -6234, -6234, -6234, -6234,
-		-6234, -6234, -6234, -6234, -6234, -6234, -6234, -6234,
-		-6234, -1178, -1178, 4923,  -1178, -1178, -1178, -1178,
-		-1178, -6234, -6234, -4316, 1824,  1825,  1826,  -2163,
-		1828,  -6234, 1803,  1804,  1805,  1806,  -5874, 6863,
-		-8271, -8271, -8271, -8271, -6935, -8271, -2489, -2489,
-		-2489, -2489, -2489, -2489, -2489, -2489, 2659,  2660,
-		-2491, -2491, -2491, -2491, -2491, -2491, -2491, 2668,
-		2669,  2670,  2671,  2672,  2673,  2674,  2675,  2676,
-		2677,  2678,  2679,  2680,  2681,  2682,  2683,  2684,
-		2685,  2686,  2687,  2688,  2689,  2690,  2691,  2692,
-		2693,  2694,  2695,  2696,  2697,  -2093, -2092, 13268,
-		-2090, 2702,  2703,  -2087, -2086, 2706,  -2767, 2708,
-		2709,  2710,  2711,  2712,  3178,  3179,  3180,  3181,
-		3182,  3183,  3184,  3185,  3186,  3187,  3188,  3189,
-		3190,  3191,  3192,  3193,  3194,  3195,  3196,  3197,
-		3198,  3199,  3200,  3201,  3202,  3203,  3204,  3205,
-		3206,  3207,  3208,  3209,  3281,  3211,  3212,  3213,
-		3214,  3215,  3216,  3217,  3218,  3219,  3220,  3221,
-		3222,  4107,  4108,  4109,  4110,  4111,  4112,  3229,
-		4115,  4116,  4117,  4118,  4119,  4120,  3236,  3237,
-		4124,  4125,  4126,  4127,  4128,  7621,  3244,  4133,
-		4134,  2825,  4136,  4137,  4138,  3251,  11148, 11149,
-		11150, 3255,  3256,  3257,  3258,  3259,  1797,  1798,
-		1799,  1800,  313,   1801,  1802,  21736, 1804,  1805,
-		1806,  1807,  1808,  1809,  1810,  1811,  1812,  2062,
-		2062,  1815,  1816,  1817,  1818,  1819,  1820,  1821,
-		1822,  3287,  1823,  1824,  1825,  32767, 3291,  3292,
-		3293,  3294,  3295,  3296,  3297,  3298,  3299,  3300,
-		3301,  3302,  3303,  3304,  32767, 32767, 3305,  32767,
-		9008,  32767, 32767, 3307,  3308,  3309,  3310,  3311,
-		3312,  3313,  3314,  3315,  3316,  32767, 3317,  32767,
-		3318,  32767, 32767, 3319,  3320,  32767, 32767, 32767,
-		3321,  3322,  3323,  3324,  3325,  3326,  3327,  3328,
-		3329,  3330,  3331,  3332,  3333,  10603, 10604, 10605,
-		2710,  2711,  2712,  5678,  3341,  3342,  3343,  4956,
-		10622, -227,  3347,  1263,  21197, 5839,  3351,  10633,
-		5843,  3354,  3355,  3356,  3357,  10641, 4971,  10644,
-		3361,  3362,  3363,  3364,  3365,  3366,  3367,  3368,
-		5872,  10662, 5874,  7681,  7682,  3374,  2839,  7683,
-		7684,  7685,  7686,  2703,  7687,  7688,  7689,  7690,
-		10690, 3386,  7693,  7694,  7695,  0,     7697,  7698,
-		10703, 7699,  2703,  7700,  9925,  3396,  7703,  3398,
-		3399,  7706,  3401,  7707,  7708,  7709,  7710,  7711,
-		7712,  6357,  6358,  3410,  4899,  4900,  4901,  4902,
-		4903,  3416,  4904,  4905,  24839, 4907,  4908,  4909,
-		4910,  4911,  4912,  4913,  4914,  4915,  5165,  5165,
-		4918,  4919,  4920,  4921,  4922,  4923,  4924,  4925,
-		4926,  4927,  4928,  4929,  4930,  4931,  4932,  4933,
-		-1167, 4935,  4936,  4937,  4938,  4939,  4940,  4941,
-		3455,  4943,  4314,  -2955, -2955, -2955, 4941,  4941,
-		4941,  1976,  4314,  4314,  4314,  2702,  -2963, 7887,
-		4314,  6399,  -13534,1825,  4314,  -2967, 1824,  4314,
-		4314,  4314,  4314,  -2969, 2702,  -2970, 4314,  4314,
-		4314,  3488,  4313,  4313,  3491,  3492,  1808,  3494,
-		32767, 0,     0,     32767, 32767, 0,     0,     0,
-		0,     32767, 0,     0,     0,     0,     -2999, 4306,
-		0,     0,     0,     7696,  0,     0,     32767, 0,
-		32767, 0,     -2224, 4306,  0,     4306,  4306,  0,
-		0,     0,     0,     0,     0,     0,     0,     1356,
-		1356,  4305,  2817,  2817,  2817,  2817,  2817,  2817,
-		2817,  2817,  -17116,2817,  2817,  2817,  2817,  2817,
-		2817,  2817,  2817,  2817,  2568,  2569,  2817,  2817,
-		2817,  2817,  2817,  2817,  2817,  2817,  2817,  2817,
-		2817,  2817,  2817,  2817,  2817,  2817,  8918,  2817,
-		2817,  2817,  2817,  2817,  2817,  2817,  4304,  2817,
-		3447,  10717, 10718, 10719, 3531,  3532,  32767, 3533,
-		3534,  3535,  3536,  3537,  32767, 3538,  32767, 3539,
-		3540,  32767, 3541,  3542,  32767, 3543,  3544,  3545,
-		3546,  3547,  3548,  3549,  3550,  3551,  3552,  3553,
-		3554,  3555,  3556,  3557,  3558,  3559,  3560,  3561,
-		3562,  3563,  3564,  3565,  3566,  3567,  3568,  3569,
-		3570,  3571,  3572,  3573,  3574,  3575,  3576,  3577,
-		3578,  3579,  3580,  3581,  3582,  3583,  3584,  3585,
-		3586,  3587,  3588,  3589,  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,
-		2324,  3635,  3636,  3637,  3638,  10646, 10647, 3641,
-		3642,  3643,  3644,  3645,  3646,  3647,  3648,  3649,
-		3650,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 3651,  3652,  3653,  3654,  3655,  3656,
-		3657,  3658,  3659,  3660,  3661,  3662,  3663,  3664,
-		3665,  3666,  3667,  3668,  3669,  3670,  3671,  3672,
-		3673,  3674,  3675,  3676,  3677,  3678,  3679,  3680,
-		3681,  3682,  3683,  3684,  3685,  3686,  3687,  3688,
-		3689,  3690,  3691,  3692,  3693,  3694,  3695,  32767,
-		3696,  3697,  3698,  3699,  3700,  3701,  3702,  3703,
-		3704,  3705,  3706,  3707,  3708,  3709,  3710,  3711,
-		3712,  3713,  3714,  3715,  3716,  3717,  3718,  3719,
-		3720,  3721,  3722,  3723,  3724,  3725,  3726,  3727,
-		3728,  3729,  3730,  3731,  3732,  3733,  3734,  3735,
-		3736,  3737,  3738,  3739,  3740,  3741,  3742,  3743,
-		3744,  3745,  3746,  3747,  3748,  3749,  3750,  3751,
-		3752,  3753,  3754,  3755,  3756,  3757,  3758,  3759,
-		3760,  3761,  3762,  3763,  3764,  3765,  3766,  3767,
-		3768,  3769,  3770,  3771,  3772,  3773,  3774,  3775,
-		3776,  3777,  3778,  3779,  3780,  3781,  3782,  3783,
-		3784,  3785,  3786,  3787,  3788,  3789,  3790,  3791,
-		3792,  3793,  3794,  3795,  3796,  3797,  3798,  3799,
-		3800,  -210,  -209,  3803,  3804,  3805,  3806,  3807,
-		3808,  3809,  3810,  3811,  3812,  3813,  3814,  3815,
-		3816,  3817,  3818,  3819,  3820,  3821,  3822,  3823,
-		3824,  3825,  3826,  3827,  3828,  3829,  3830,  3831,
-		3832,  3833,  3834,  3835,  3836,  3837,  3838,  3839,
-		3840,  3841,  3842,  3843,  3844,  3845,  3846,  3847,
-		3848,  3849,  -4925, 3851,  -6041, -6041, -6041, -6041,
-		-6041, -6041, -6041, 3859,  3860,  -6043, -6043, -6043,
-		-6043, -6043, -6043, -6043, -6043, 3869,  3870,  3871,
-		3872,  3873,  3874,  -7314, -2258, -2258, 3843,  -2258,
-		-2258, -2258, -2258, -2258, -7314, -7314, 3886,  3887,
-		3888,  3889,  3890,  -4915, -4915, 719,   720,   721,
-		722,   -6958, 3898,  3899,  3900,  3901,  3902,  3903,
-		3904,  3905,  3906,  5688,  5689,  5690,  5691,  3911,
-		3912,  3913,  3914,  3915,  3916,  3917,  3918,  3919,
-		3920,  3921,  3922,  3923,  3924,  3925,  3926,  3927,
-		3928,  3929,  3930,  3931,  -1124, -1123, -7223, -1121,
-		-1120, -1119, -1118, -1117, 3940,  3941,  2024,  -4115,
-		-4115, -4115, -125,  -4115, 3948,  -4088, -4088, 3951,
-		32767, 3952,  3953,  3954,  3955,  3956,  3957,  3958,
-		3959,  3960,  3961,  3962,  3963,  3964,  3965,  3966,
-		3967,  3968,  3969,  3970,  3971,  3972,  3973,  3974,
-		3975,  3976,  3977,  3978,  3979,  3980,  3981,  3982,
-		3983,  3984,  3985,  3986,  3987,  3988,  3989,  3990,
-		3991,  3992,  3993,  3994,  3995,  3996,  3997,  3998,
-		3999,  4000,  4001,  4002,  4003,  14,    4005,  4006,
-		4007,  4008,  4009,  4010,  4011,  4012,  4013,  32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 4014,  4015,  4016,  4017,  4018,  4019,  4020,
-		4021,  4022,  4023,  4024,  4025,  4026,  2025,  2026,
-		2027,  4030,  4031,  4032,  4033,  4034,  4035,  4036,
-		4037,  4038,  4039,  4040,  4041,  4042,  4043,  4044,
-		4045,  4046,  4047,  4048,  4049,  4050,  4051,  4052,
-		4053,  4054,  4055,  4056,  4057,  4058,  4059,  4060,
-		4061,  4062,  4063,  4064,  4065,  4066,  4067,  4068,
-		4069,  4070,  4071,  4072,  4073,  4074,  4075,  4076,
-		4077,  32767, 32767, 4078,  4079,  4080,  4081,  4082,
-		4083,  4084,  4085,  4086,  4087,  4088,  4089,  4090,
-		4091,  4092,  4093,  4094,  4095,  4096,  4097,  4098,
-		4099,  4100,  4101,  4102,  4103,  4104,  4105,  4106,
-		4107,  4108,  4109,  4110,  4111,  4112,  4113,  4114,
-		4115,  4116,  4117,  0,     4119,  4120,  4121,  4122,
-		4123,  4124,  4125,  0,     4127,  4128,  1401,  4130,
-		4131,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 5256,  -4973, -4973, 32767,
+		5261,  5262,  5263,  5264,  5265,  5266,  5267,  -4974,
+		-4974, 978,   979,   980,   981,   32767, 982,   983,
+		984,   985,   986,   987,   988,   32767, 32767, 32767,
+		32767, 1624,  32767, 32767, 32767, 32767, 32767, 32767,
+		990,   32767, 32767, 0,     991,   992,   32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4759,
+		4760,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, -723,  -722,  -2974, 32767, 996,   -719,  -168,
+		-717,  -716,  -715,  1002,  1003,  1004,  -712,  -711,
+		32767, -710,  1008,  1009,  1010,  1011,  -2060, 5892,
+		2764,  2764,  2764,  1017,  1018,  1019,  1020,  1021,
+		1022,  2567,  1024,  32767, 1025,  1026,  1027,  1028,
+		1029,  1030,  1031,  1032,  1033,  1034,  2589,  1036,
+		1037,  -1729, -1729, -1729, -1729, 1042,  4211,  4211,
+		4211,  4211,  4211,  4211,  1049,  1050,  4209,  1427,
+		32767, 32767, 32767, 0,     0,     32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, -825,  32767, 32767,
+		32767, 32767, 32767, 4718,  4719,  4720,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 4721,  4722,
+		4723,  4724,  4725,  4726,  4727,  6291,  6292,  6293,
+		4728,  4729,  4730,  4731,  4732,  6299,  6300,  -4992,
+		1070,  1071,  1072,  1073,  1074,  1075,  1076,  1077,
+		1078,  1079,  1080,  4733,  1082,  4734,  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,  4737,  1148,  4738,
+		4739,  1151,  1152,  1153,  1154,  32767, 4740,  4741,
+		4742,  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,  1183,  1184,  1185,  1186,  1187,  1188,
+		1189,  1190,  1191,  1192,  1193,  1194,  11979, 6272,
+		1758,  1758,  1199,  1200,  1201,  1202,  1203,  1204,
+		1205,  1206,  1207,  1208,  1209,  1210,  1211,  1212,
+		1213,  1214,  1215,  1216,  1217,  1218,  1219,  1220,
+		1221,  1222,  1223,  1224,  1225,  1226,  1227,  1228,
+		1229,  -1074, -1073, 1232,  1233,  1234,  1235,  1236,
+		1237,  1238,  1239,  1240,  1241,  1242,  1243,  1244,
+		1245,  1246,  1247,  1248,  1249,  1250,  1251,  1252,
+		1253,  1254,  1255,  1256,  1257,  1258,  1259,  1260,
+		1261,  1262,  1263,  1264,  1265,  1266,  1267,  1268,
+		1269,  1270,  1271,  1272,  1273,  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,  4676,
+		4677,  512,   32767, 32767, 32767, 32767, 1683,  1684,
+		1685,  1314,  155,   1316,  1317,  1318,  1319,  1320,
+		1321,  161,   1323,  1324,  1325,  1326,  1327,  1328,
+		1329,  1330,  1331,  1332,  1333,  1334,  1335,  1336,
+		1337,  1338,  -4375, -4374, -8536, -8536, -8536, -8536,
+		1345,  1346,  1444,  1445,  1446,  1447,  1448,  -4360,
+		1353,  1354,  -8525, -5383, 1357,  -8524, -8524, -8524,
+		-8524, -4348, 1363,  -2456, 686,   1366,  1367,  -8518,
+		-8518, -7581, 1371,  1372,  -5364, 1374,  1375,  -4332,
+		-4331, 1378,  1379,  1380,  -4327, -8841, -8841, -8841,
+		-8841, -8841, -8841, -8841, 1389,  1390,  -8843, -8843,
+		-8843, -8843, -8843, -8843, -8843, -8843, 1399,  1400,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 5957,
+		2655,  -5028, -5028, 2658,  2659,  -3322, -1679, -1679,
+		-1679, -1679, -1679, -7010, -1679, -1679, -7010, -7010,
+		-1679, -1679, -1679, -1679, -1679, 32767, 32767, -1681,
+		-1681, -1681, -1681, -1681, -1681, 32767, 32767, -1683,
+		-1683, -3290, -3289, -3288, -3287, -3286, -3285, -12842,
+		7263,  -3282, -499,  -9550, -499,  -9549, -9549, -9549,
+		96,    -9549, -9816, -9549, 1704,  -9548, -1864, -1863,
+		-9548, -9548, -3566, -5208, -5207, -5206, -5205, -5204,
+		128,   -5202, 131,   132,   133,   32767, 32767, -5195,
+		-3568, -3568, -5190, -5189, -3568, 32767, 32767, -5185,
+		-5184, -5183, -3570, -5180, 1478,  -5179, -3571, 32767,
+		-3572, 32767, -3573, 32767, 5984,  32767, -3575, 2695,
+		2696,  2697,  2698,  2699,  2700,  -6944, 2702,  2970,
+		2704,  6008,  2706,  -4977, -4977, 2709,  2710,  -3271,
+		1502,  -3478, 1504,  -3626, -3626, -7766, 6033,  1509,
+		-3625, -7767, 1512,  1513,  1514,  32767, 32767, -3625,
+		-3625, -3625, -3625, -3625, -3625, -3625, 1522,  -3624,
+		1524,  1525,  1526,  1527,  1528,  1529,  0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     3128,  0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     1581,  -673,  0,     784,   0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     3025,  0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     -6843,
+		-6843, 0,     0,     0,     1619,  1620,  1621,  0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     -2788, 32767, 32767,
+		1634,  1635,  1636,  1637,  1638,  1639,  1640,  1641,
+		4194,  1643,  1644,  32767, 32767, 32767, 32767, 32767,
+		32767, 1352,  32767, 32767, 32767, 32767, 32767, 1646,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 1647,  1648,  1649,  32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 1650,
+		32767, 32767, 32767, 1651,  1652,  32767, 1653,  1654,
+		32767, 32767, 32767, 32767, 1655,  32767, 1656,  32767,
+		32767, 32767, 32767, 399,   399,   32767, 32767, 1657,
+		1658,  1659,  32767, 32767, 32767, 32767, 32767, 32767,
+		0,     0,     0,     0,     32767, 32767, 32767, 1660,
+		32767, 32767, 32767, 32767, 32767, 6619,  32767, 1661,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		5971,  5972,  5973,  5974,  1664,  5975,  6243,  5977,
+		9281,  5979,  -1704, -1704, 5982,  5983,  2,     4775,
+		-205,  4777,  -353,  -353,  -4493, 9306,  4782,  -352,
+		-4494, 4785,  4786,  4787,  4788,  -350,  -350,  6044,
+		1691,  6045,  6046,  1694,  6047,  1696,  1697,  6048,
+		1699,  6049,  6050,  6051,  6052,  0,     0,     0,
+		0,     0,     0,     32767, 0,     0,     0,     0,
+		1704,  0,     32767, 0,     32767, 32767, 32767, 32767,
+		32767, 32767, 0,     32767, 32767, 32767, -3338, -3338,
+		-3338, 0,     32767, 0,     32767, 0,     0,     0,
+		32767, 0,     0,     32767, 0,     32767, 32767, 0,
+		0,     0,     0,     0,     32767, 0,     32767, 0,
+		1705,  1706,  1707,  1708,  1709,  759,   759,   759,
+		759,   759,   759,   759,   0,     0,     0,     0,
+		0,     3035,  0,     32767, 0,     1719,  10109, 1721,
+		1722,  1723,  1724,  1725,  1726,  1727,  1728,  1729,
+		1730,  0,     0,     0,     0,     0,     0,     0,
+		0,     9764,  6757,  6758,  6759,  8018,  0,     0,
+		0,     1720,  1720,  1720,  0,     0,     2557,  2558,
+		1720,  0,     -1282, 0,     -1281, -1281, -1281, 633,
+		1720,  -1279, -1279, 1720,  4767,  0,     1720,  1720,
+		0,     0,     1718,  1718,  -3263, 0,     6007,  6008,
+		-7790, 6010,  6011,  6012,  -3266, 1719,  0,     1718,
+		0,     1717,  0,     -150,  1717,  1717,  1717,  32767,
+		1716,  1716,  1716,  3969,  1715,  0,     1716,  1166,
+		1716,  1716,  1716,  0,     0,     0,     1717,  1717,
+		1717,  1717,  0,     0,     0,     0,     3072,  -4879,
+		-1750, -1749, -1748, 0,     0,     0,     0,     0,
+		0,     -1544, 0,     1789,  0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     -1554, 0,
+		0,     2767,  2768,  2769,  2770,  0,     -3168, -3167,
+		-3166, -3165, -3164, -3163, 0,     0,     -3158, -375,
+		-9426, -375,  -9425, 1821,  1822,  218,   -9427, 1825,
+		-9426, 1827,  1828,  -1742, -1741, 1878,  1879,  1833,
+		1834,  32767, 32767, 32767, 32767, 2642,  -4765, -1739,
+		-1738, 32767, 1835,  32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 0,     0,     0,     0,
+		32767, 32767, 32767, 2718,  -3491, 3174,  3174,  3174,
+		-3669, -3669, -3669, -3669, -3669, -5232, -5232, -5232,
+		-3666, -3666, -3666, -3666, -3666, -5232, -5232, 6061,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     -3652, 0,     -3651, 0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
@@ -1430,83 +1133,586 @@ Decomp_hash_func(const void *key)
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     -3590, 0,     -3589,
+		-3589, 0,     0,     0,     0,     32767, 1842,  32767,
+		32767, 32767, 32767, 1843,  32767, 32767, 1844,  32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 1845,  32767,
+		1846,  32767, 32767, 32767, 32767, 32767, 1847,  1848,
+		0,     1849,  1850,  0,     32767, 32767, 0,     0,
+		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 1851,  32767, 32767, 1852,  32767,
+		32767, 1853,  32767, 1854,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, -4903, 32767, -6162, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 137,
+		1858,  3141,  1860,  3142,  32767, 32767, 1229,  143,
+		32767, 32767, 144,   -2902, 0,     0,     32767, 32767,
+		32767, 32767, 148,   5130,  0,     0,     -4140, 9659,
+		32767, 0,     -4142, 5137,  5138,  0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     32767,
+		0,     5148,  5149,  5150,  5151,  5152,  5153,  4782,
+		3623,  3623,  3623,  3623,  3623,  3623,  3623,  3623,
+		3623,  3623,  3623,  3623,  3623,  3623,  6751,  3623,
+		3623,  3623,  3623,  3623,  3623,  3623,  3623,  3623,
+		3623,  3623,  3623,  3623,  32767, 3622,  3622,  3622,
+		3622,  32767, 3621,  3621,  3621,  0,     3622,  32767,
+		3621,  32767, 32767, 32767, 3618,  3618,  3618,  3618,
+		3618,  3618,  3618,  32767, 2944,  0,     4402,  3618,
+		3618,  3618,  3618,  3618,  3618,  3618,  3618,  3618,
+		3618,  3618,  3618,  3618,  0,     0,     3620,  3620,
+		3620,  3620,  3620,  3620,  -762,  6646,  3621,  3621,
+		3621,  3621,  3621,  3621,  3621,  3621,  3621,  3621,
+		-3222, -3222, 3621,  3621,  3621,  5240,  5241,  5242,
+		0,     0,     3623,  3623,  3623,  0,     3624,  3624,
+		3624,  3624,  3624,  3624,  3624,  3624,  836,   0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     -3647, -3646, 0,     0,
+		461,   0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     4011,  4011,  0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     8775,  0,
-		9893,  9894,  9895,  9896,  9897,  9898,  9899,  0,
-		0,     9904,  9905,  9906,  9907,  9908,  9909,  9910,
-		9911,  0,     0,     0,     0,     0,     0,     11189,
-		6134,  6135,  35,    6137,  6138,  6139,  6140,  6141,
-		11198, 11199, 0,     0,     0,     0,     0,     8806,
-		8807,  3174,  3174,  3174,  3174,  10855, 0,     0,
-		0,     0,     0,     0,     0,     0,     0,     -1781,
-		-1781, -1781, -1781, 0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     468,   0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		5056,  5056,  11157, 5056,  5056,  5056,  5056,  5056,
-		0,     0,     1918,  8058,  8059,  8060,  4071,  8062,
-		0,     8037,  8038,  0,     4331,  4332,  4333,  4334,
-		4335,  4336,  4337,  7335,  7336,  1635,  1636,  1637,
-		1638,  1639,  1640,  1641,  1642,  1643,  4349,  4350,
-		4351,  4352,  4353,  4354,  8807,  4356,  4357,  4358,
-		4359,  4360,  1645,  4362,  4363,  4364,  4365,  32767,
-		32767, 32767, 32767, 32767, 8912,  8913,  8914,  8915,
-		8916,  8917,  8918,  8919,  8920,  8921,  8922,  8923,
-		8924,  8925,  8926,  8927,  4137,  4138,  19498, 4140,
-		8932,  8933,  4143,  4144,  8936,  4146,  4147,  8937,
-		8938,  8939,  8940,  8941,  8942,  4154,  4155,  4156,
-		4157,  4158,  4159,  8949,  4161,  4162,  4163,  8953,
-		8954,  8955,  8956,  8957,  8958,  8959,  8960,  8961,
-		8962,  8963,  8964,  8965,  8966,  4174,  4175,  8969,
-		4177,  8971,  8972,  8973,  8974,  8975,  8976,  4599,
-		5488,  5489,  4180,  4181,  5491,  5492,  4605,  12502,
-		12503, 12504, 4609,  4610,  4611,  4612,  4613,  3151,
-		3152,  3153,  3154,  1667,  3155,  3156,  23090, 3158,
-		3159,  3160,  3161,  3162,  3163,  3164,  3165,  3166,
-		3416,  3416,  3169,  3170,  3171,  3172,  3173,  3174,
-		3175,  3176,  4641,  3177,  3178,  3179,  3180,  3181,
-		3182,  3183,  -2917, 3185,  3186,  3187,  3188,  3189,
-		8246,  8247,  6330,  191,   4494,  4495,  4496,  188,
-		8251,  215,   215,   215,   215,   4503,  4504,  4505,
-		4506,  4507,  4508,  4509,  4510,  4511,  4512,  4513,
-		4514,  4515,  4516,  4517,  4518,  4519,  4520,  4521,
-		4522,  4523,  4524,  4525,  4526,  4527,  4528,  4529,
-		4530,  4531,  4532,  4533,  4534,  4535,  4536,  4537,
-		4538,  4539,  4540,  4541,  4542,  4543,  10698, 10451,
-		10452, 4547,  4548,  4549,  1912,  4551,  4552,  4553,
-		4554,  4555,  0,     32767, 4130,  4130,  -11229,4130,
-		4559,  4560,  4561,  0,     0,     4562,  4563,  4564,
-		-5799, -5799, -5799, 303,   32767, 4117,  4117,  4117,
-		4117,  4117,  4117,  2031,  2032,  4574,  4575,  4576,
-		32767, 32767, 32767, 4577,  4578,  4579,  4580,  4581,
-		4582,  4583,  32767, 4584,  4585,  4586,  4587,  4588,
-		4589,  4590,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		0,     0,     0,     0,     32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 0,     32767, 32767,
-		32767, 32767, 32767, 32767, 2034,  4816,  4817,  4818,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 2035,  32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		0,     0,     32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 0,     0,     32767, 0,     470,   471,   32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 472,   473,   474,   475,   476,   32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 775,   32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 4803,  4804,  7596,  7596,  7596,
+		4808,  4809,  4810,  4811,  4812,  4813,  4814,  4815,
+		4816,  4817,  4818,  4819,  4820,  4821,  4822,  4823,
+		4824,  3988,  3988,  4827,  4828,  7830,  1792,  7832,
+		7833,  7834,  5921,  4835,  7835,  7836,  4838,  0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     3036,  6038,  0,
+		6040,  6041,  6042,  4129,  3043,  6043,  6044,  3046,
+		0,     3048,  3049,  3050,  6046,  6047,  3053,  3054,
+		3055,  3056,  -1230, 3058,  3059,  -1232, -1232, 3062,
+		3063,  3064,  3065,  3066,  3067,  3068,  3069,  3070,
+		3071,  3072,  3073,  3074,  3075,  3076,  3077,  3078,
+		3079,  3080,  3081,  3632,  3083,  3084,  3085,  3086,
+		3087,  3088,  3089,  3090,  3091,  3092,  3093,  3094,
+		3095,  3096,  3097,  3098,  3099,  3100,  3101,  3102,
+		3103,  -814,  3105,  3106,  3107,  3108,  -6867, 3110,
+		3111,  3112,  3113,  9179,  9180,  3116,  3117,  3118,
+		3119,  -22,   3121,  3122,  3123,  3124,  3125,  3126,
+		3127,  3128,  3129,  3130,  2196,  3132,  3133,  2197,
+		3135,  3136,  3137,  3138,  3139,  3140,  3141,  3142,
+		3143,  3144,  -6500, 3146,  3414,  3148,  6452,  3150,
+		-4533, -4533, 3153,  3154,  -2827, -1184, -1184, -1184,
+		-1184, -1184, -6515, -1184, -1184, -6515, -6515, -1184,
+		-1184, -1184, -1184, -1184, -1184, -1184, -1184, -1184,
+		-1184, -1184, -1184, -1184, -1184, -1184, -1184, -1184,
+		-2791, -2790, -2789, -2788, -2787, -2786, -12343,7762,
+		-2783, 0,     -9051, 0,     -9050, -9050, -9050, 595,
+		-9050, -9317, -9050, 2203,  -9049, -1365, -1364, -9049,
+		-9049, -3067, -4709, -4708, -4707, -4706, -4705, 627,
+		-4703, 630,   631,   632,   -3067, -3067, -4694, -3067,
+		-3067, -4689, -4688, -3067, 3131,  -4683, -4682, -4681,
+		-4680, -3067, -4677, 1981,  -4676, -3068, -3068, -3068,
+		-3068, -3068, -3068, 6490,  -13614,-3068, 3202,  3203,
+		3204,  3205,  3206,  3207,  -6437, 3209,  3477,  3211,
+		6515,  3213,  -4470, -4470, 3216,  3217,  -2764, 2009,
+		-2971, 2011,  -3119, -3119, -7259, 6540,  2016,  -3118,
+		-7260, 2019,  2020,  2021,  2022,  -3116, -3116, 3278,
+		3279,  3280,  3281,  3282,  3283,  3284,  3285,  3286,
+		3287,  3288,  3289,  3290,  3291,  32767, 3292,  3293,
+		-869,  -869,  -869,  -869,  9107,  9108,  9109,  9110,
+		9111,  9112,  9113,  3305,  32767, 32767, -863,  32767,
+		-864,  32767, 32767, -866,  -866,  3310,  3311,  -864,
+		-864,  -864,  71,    -864,  -864,  32767, 72,    32767,
+		2290,  32767, 32767, 3320,  3321,  32767, 32767, 32767,
+		3322,  -1192, -1192, -1192, -1192, -1192, -1192, -1192,
+		-1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192,
+		-1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192,
+		-1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192,
+		-1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192,
+		-1192, -1192, -1192, 3365,  3366,  3367,  -1189, -1189,
+		-1189, -1189, -1189, -1189, 3374,  3375,  -1187, -1187,
+		-1187, -1187, -1187, -1187, 3382,  3383,  -1185, -1185,
+		-1185, -1185, -1185, -1185, 32767, 32767, -1185, -1185,
+		-1185, 3393,  3394,  3395,  -1182, 3397,  3398,  3399,
+		3400,  3401,  3402,  1274,  1274,  3405,  -5404, 3407,
+		3408,  3409,  3410,  1274,  1274,  1274,  1274,  1274,
+		1274,  1274,  1274,  1274,  1274,  1274,  1274,  1274,
+		1274,  1274,  1274,  1274,  1274,  1274,  1274,  1274,
+		3432,  3433,  3434,  3435,  3436,  3437,  3438,  3439,
+		3440,  3441,  3442,  3443,  3444,  3445,  3446,  3447,
+		3448,  3449,  3450,  3451,  3452,  3453,  3454,  3455,
+		-1138, -1138, -1138, -1138, -1138, 3461,  3462,  3299,
+		3464,  3465,  3466,  3467,  3468,  3469,  3470,  3471,
+		3472,  3473,  3474,  3475,  3476,  3477,  3478,  3479,
+		3480,  3481,  3482,  3483,  3484,  3485,  3486,  3487,
+		3488,  3489,  3490,  3491,  3492,  3493,  3494,  3495,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 3496,
+		3497,  3498,  3499,  3500,  3501,  3502,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 3503,  3211,  3211,  3211,  3211,  32767,
+		32767, 32767, 32767, 32767, 7590,  7590,  7590,  3208,
+		3512,  3513,  3514,  3515,  3516,  3517,  3518,  3519,
+		3520,  3521,  3522,  3523,  3524,  3525,  3526,  3527,
+		3528,  3529,  3530,  3531,  3532,  3533,  32767, 3534,
+		3535,  3536,  3537,  3538,  32767, 3539,  32767, 3540,
+		3541,  32767, 3542,  3543,  32767, 3544,  3545,  3546,
+		3547,  3548,  3549,  3550,  3551,  3552,  3553,  3554,
+		3555,  3556,  3557,  3558,  3559,  3560,  3561,  3562,
+		3563,  3564,  3565,  3566,  3567,  3568,  3569,  3570,
+		3571,  3572,  3573,  3574,  3575,  3576,  3577,  3578,
+		3579,  3580,  3581,  3582,  3583,  3584,  3585,  3586,
+		3587,  3588,  3589,  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,  3647,  3648,  3649,  3650,
+		3651,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 3652,  3653,  3654,  3655,  3656,  3657,
+		3658,  3659,  3660,  3661,  3662,  3663,  3664,  3665,
+		3666,  3667,  3668,  3669,  3670,  3671,  3672,  3673,
+		3674,  3675,  3676,  3677,  3678,  3679,  3680,  3681,
+		3682,  3683,  3684,  3685,  3686,  3687,  3688,  3689,
+		3690,  3691,  3692,  3693,  3694,  3695,  3696,  32767,
+		3244,  3698,  3699,  3700,  3701,  3702,  4131,  3704,
+		3251,  3251,  3707,  3252,  3709,  3710,  3711,  3255,
+		3713,  3714,  3715,  3716,  3259,  3259,  3259,  3720,
+		3721,  3722,  3723,  3724,  3725,  3726,  3727,  3728,
+		3729,  3730,  3731,  3732,  0,     0,     3735,  3736,
+		3737,  3738,  3739,  3740,  3741,  3742,  3743,  3744,
+		3745,  3746,  3747,  3748,  3749,  3750,  3751,  3752,
+		3753,  3754,  3755,  3756,  3757,  3758,  3759,  3760,
+		3761,  3300,  3763,  3764,  3765,  3766,  3767,  3768,
+		3769,  3770,  3771,  3772,  3773,  3774,  3775,  3776,
+		3777,  3778,  3779,  3780,  3781,  3782,  3783,  3784,
+		3322,  3322,  3787,  3323,  3789,  3790,  3791,  3326,
+		3793,  3794,  3795,  3796,  3330,  3798,  3330,  3800,
+		3801,  3802,  3803,  3804,  3805,  3806,  3807,  3808,
+		3809,  3810,  3811,  3812,  3813,  3814,  3815,  3816,
+		3817,  3818,  3819,  3820,  3821,  3822,  3823,  3824,
+		3825,  -1667, 3827,  3828,  3829,  3830,  3831,  3832,
+		3833,  3834,  3835,  3836,  3837,  3838,  3839,  3840,
+		3841,  3842,  3843,  3844,  -1685, 3846,  3847,  3848,
+		3849,  3850,  3851,  3852,  3853,  3854,  3855,  3856,
+		3857,  3858,  3859,  3860,  3861,  3862,  3863,  3864,
+		3865,  3866,  3867,  3868,  3869,  3870,  3871,  3872,
+		3873,  3874,  3875,  3876,  3877,  3878,  3879,  3880,
+		3881,  3882,  3883,  3884,  3885,  3886,  3887,  3888,
+		3889,  3890,  3891,  3892,  3893,  3894,  3895,  3896,
+		3897,  8237,  8238,  3900,  3901,  3902,  3903,  3904,
+		3905,  3906,  3907,  3908,  3909,  3910,  3911,  3912,
+		11266, 11267, 11268, 9355,  3917,  3918,  11272, 8274,
+		3921,  3922,  3438,  3438,  3438,  3438,  3438,  3438,
+		3929,  3930,  3440,  3440,  3440,  3440,  6476,  9478,
+		3937,  3938,  9483,  9484,  7571,  6485,  9485,  9486,
+		6488,  3442,  6490,  6491,  6492,  9488,  3951,  3952,
+		32767, -866,  -866,  -866,  -866,  -866,  -866,  -29,
+		-28,   -866,  -866,  -3867, 2172,  -3867, -3867, -3867,
+		-1953, -866,  -3865, -3865, -866,  3973,  3974,  3975,
+		3976,  3977,  3978,  3979,  3980,  3981,  3982,  3983,
+		3984,  3985,  3986,  951,   -2050, 3989,  -2050, -2050,
+		-2050, -136,  951,   -2048, -2048, 951,   3998,  951,
+		951,   951,   -2044, -2044, 951,   951,   951,   951,
+		5238,  951,   951,   5243,  5244,  951,   951,   32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 383,   933,   933,   933,   933,   933,   933,
+		933,   933,   933,   933,   933,   933,   933,   933,
+		933,   933,   933,   933,   933,   933,   933,   4851,
+		933,   933,   933,   933,   10909, 933,   933,   933,
+		933,   -5132, -5132, 933,   933,   933,   933,   4075,
+		933,   933,   933,   933,   933,   933,   933,   933,
+		933,   933,   1868,  933,   933,   1870,  933,   933,
+		933,   933,   933,   933,   933,   933,   933,   933,
+		10578, 0,     32767, 931,   -2372, 931,   8615,  8616,
+		931,   931,   6913,  5271,  5272,  5273,  5274,  5275,
+		10607, 5277,  5278,  10610, 10611, 5281,  5282,  5283,
+		5284,  5285,  5286,  5287,  5288,  5289,  5290,  5291,
+		5292,  5293,  5294,  5295,  5296,  5297,  6905,  6905,
+		6905,  6905,  6905,  6905,  16463, -3641, 6905,  4123,
+		13175, 4125,  13176, 13177, 13178, 3534,  13180, 13448,
+		13182, 32767, 32767, 32767, 0,     32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 0,     0,     32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, -2357, 17748, 7203,  934,   934,   934,   934,
+		934,   934,   10579, 934,   667,   934,   32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 4146,  4147,  4148,  4149,  4150,  4151,
+		4152,  4153,  4154,  4155,  32767, 32767, 32767, 32767,
+		32767, 32767, 4156,  4157,  4158,  4159,  4160,  4161,
+		4162,  4163,  4164,  4165,  4166,  4167,  4168,  4169,
+		4170,  4171,  4172,  4173,  4174,  4175,  4176,  4177,
+		4178,  4179,  4180,  4181,  4182,  5374,  5375,  5376,
+		6978,  4187,  4188,  4189,  4190,  6982,  6982,  32767,
+		32767, 4193,  4194,  4195,  4196,  4197,  4198,  4199,
+		4200,  4201,  4202,  4203,  4204,  32767, 6995,  6995,
+		4207,  4208,  4209,  4210,  4211,  4212,  4213,  4214,
+		4215,  4216,  4217,  4218,  4219,  4220,  4221,  4222,
+		4223,  32767, 3386,  4225,  4226,  7228,  32767, 32767,
+		32767, 32767, 5315,  4229,  7229,  32767, 4231,  32767,
+		4232,  4233,  4234,  7230,  7231,  4237,  4238,  4239,
+		4240,  -46,   4242,  4243,  -48,   -48,   4246,  4247,
+		4248,  4249,  4250,  4251,  4252,  4253,  4254,  4255,
+		4256,  4257,  4258,  4259,  4260,  4261,  4262,  4263,
+		4264,  4265,  4816,  4267,  4268,  4269,  4270,  4271,
+		4272,  4273,  4274,  4275,  4276,  4277,  4278,  4279,
+		4280,  4281,  4282,  4283,  4284,  4285,  4286,  4287,
+		370,   4289,  4290,  4291,  4292,  -5683, 4294,  4295,
+		4296,  4297,  10363, 10364, 4300,  4301,  4302,  4303,
+		1162,  4305,  4306,  4307,  4308,  4309,  4310,  4311,
+		4312,  4313,  4314,  3380,  4316,  4317,  3381,  4319,
+		4320,  4321,  4322,  4323,  4324,  4325,  4326,  4327,
+		4328,  -5316, 4330,  4598,  4332,  7636,  4334,  -3349,
+		-3349, 4337,  4338,  -1643, 0,     0,     0,     0,
+		0,     -5331, 0,     0,     -5331, -5331, 0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     4126,
+		4127,  4128,  4129,  0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     -1258, 0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		-1272, -1272, 0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     -1851, -1851, -1851, -1851,
+		-1851, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     3235,  0,     -6925, 306,
+		306,   306,   306,   306,   306,   306,   306,   306,
+		306,   306,   306,   -1764, -1764, 4472,  4473,  311,
+		311,   311,   311,   10287, 10288, 10289, 10290, 10291,
+		10292, 10293, 4485,  10198, 319,   319,   3461,  319,
+		319,   319,   319,   319,   4495,  4496,  321,   321,
+		321,   1256,  321,   321,   1258,  1258,  0,     3477,
+		10215, 10216, 4509,  4510,  10219, 10220, 10221, 4514,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     4579,  4580,  4581,  4582,
+		4583,  4584,  32767, 2455,  4586,  -4223, 4588,  4589,
+		4590,  4591,  32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 4885,  4886,  4887,
+		4888,  4889,  4890,  4891,  4892,  4893,  4894,  4895,
+		4896,  4897,  4898,  4899,  4900,  4901,  4902,  4903,
+		4904,  4616,  4906,  4907,  4908,  4909,  4910,  4911,
+		4912,  4913,  4914,  4915,  4916,  4917,  4918,  4919,
+		4920,  4921,  4922,  4923,  4924,  4925,  4926,  4927,
+		4928,  4929,  4930,  4931,  4932,  4933,  4934,  4935,
+		4936,  4937,  4938,  4939,  4940,  4941,  4942,  4943,
+		4944,  4945,  4946,  4947,  4948,  567,   568,   569,
+		4952,  -2455, 571,   572,   4956,  4957,  4958,  4959,
+		4960,  4961,  4962,  4963,  4964,  4965,  4966,  4967,
+		4968,  4969,  32767, 4970,  4971,  4972,  4973,  4974,
+		4975,  4976,  4977,  4978,  4979,  4980,  6623,  6623,
+		6623,  6623,  6623,  1292,  6623,  1291,  1291,  1291,
+		4991,  4992,  6620,  4994,  4995,  6618,  6618,  4998,
+		-1199, 6616,  6616,  6616,  6616,  5004,  6615,  6615,
+		6615,  5008,  5009,  5010,  5011,  5012,  5013,  -4544,
+		15561, 5016,  -1253, -1253, -1253, -1253, -1253, -1253,
+		8392,  -1253, -1520, -1253, -4556, -1253, 6431,  6432,
+		-1253, -1253, 4729,  3087,  3088,  3089,  3090,  3091,
+		8423,  3093,  3094,  8426,  8427,  3097,  3098,  3099,
+		3100,  3101,  3102,  3103,  3104,  3105,  3106,  3107,
+		3108,  3109,  3110,  3111,  3112,  3113,  4721,  4721,
+		4721,  4721,  4721,  4721,  14279, -5825, 4721,  1939,
+		10991, 1941,  10992, 10993, 10994, 1350,  10996, 11264,
+		10998, -254,  10999, 3316,  3316,  11002, 11003, 5022,
+		6665,  6665,  6665,  6665,  6665,  1334,  6665,  1333,
+		1333,  1333,  5033,  5034,  6662,  5036,  5037,  6660,
+		6660,  5040,  -1157, 6658,  6658,  6658,  6658,  5046,
+		6657,  0,     6658,  5051,  5052,  5053,  5054,  5055,
+		5056,  -4501, 15604, 5059,  -1210, -1210, -1210, -1210,
+		-1210, -1210, 8435,  -1210, -1477, -1210, -4513, -1210,
+		6474,  6475,  -1210, -1210, 4772,  0,     4981,  0,
+		5131,  5132,  9273,  -4525, 0,     5135,  9278,  0,
+		0,     0,     0,     5139,  5140,  5141,  5142,  5143,
+		5144,  5145,  5146,  0,     5147,  0,     0,     0,
+		0,     0,     0,     1530,  1531,  1532,  1533,  1534,
+		1535,  1536,  1537,  1538,  1539,  1540,  1541,  1542,
+		1543,  1544,  -1583, 1546,  1547,  1548,  1549,  1550,
+		1551,  1552,  1553,  1554,  1555,  1556,  1557,  1558,
+		1559,  1560,  1561,  1562,  1563,  1564,  1565,  1566,
+		1567,  5189,  1568,  1569,  1570,  1571,  1572,  1573,
+		1574,  1575,  1576,  1577,  1578,  1579,  1580,  0,
+		2255,  5200,  799,   1584,  1585,  1586,  1587,  1588,
+		1589,  1590,  1591,  1592,  1593,  1594,  1595,  1596,
+		5215,  5216,  1597,  1598,  1599,  1600,  1601,  1602,
+		5985,  -1422, 1604,  1605,  1606,  1607,  1608,  1609,
+		1610,  1611,  1612,  1613,  8457,  8458,  1616,  1617,
+		1618,  0,     0,     0,     5243,  5244,  1622,  1623,
+		1624,  5248,  1625,  1626,  1627,  1628,  1629,  1630,
+		1631,  1632,  4421,  5258,  5259,  5260,  5261,  5262,
+		5263,  5264,  5265,  5266,  5267,  5268,  5269,  5270,
+		5271,  5272,  5273,  5274,  5275,  5276,  5277,  5278,
+		5279,  5280,  5281,  5282,  5283,  5284,  5285,  5286,
+		8934,  8934,  5289,  5290,  4830,  5292,  5293,  5294,
+		5295,  5296,  5297,  5298,  5299,  5300,  5301,  5302,
+		5303,  5304,  5305,  5306,  5307,  5308,  5309,  5310,
+		5311,  5312,  5313,  5314,  5315,  5316,  5317,  5318,
+		5319,  5320,  5321,  5322,  5323,  5324,  5325,  5326,
+		5327,  5328,  5329,  5330,  5331,  5332,  5333,  5334,
+		5335,  5336,  5337,  5338,  5339,  5340,  5341,  5342,
+		5343,  5344,  5345,  5346,  5347,  5348,  5349,  5350,
+		5351,  5352,  5353,  5354,  5355,  5356,  5357,  5358,
+		4891,  5360,  5361,  5362,  5363,  5364,  5365,  5366,
+		5367,  5368,  5369,  5370,  5371,  5372,  32767, 5373,
+		5374,  -5231, 5376,  4532,  0,     5379,  5380,  5381,
+		5382,  4270,  4271,  4272,  4273,  4274,  4275,  4276,
+		4277,  4278,  12230, 9102,  9102,  9102,  5396,  8890,
+		5398,  5399,  5400,  5401,  8899,  7356,  5568,  7358,
+		7359,  0,     0,     7364,  7365,  7366,  7367,  7368,
+		7369,  8924,  7371,  7372,  4606,  4606,  4606,  4606,
+		7377,  10546, 10546, 10546, 10546, 10546, 10546, 20104,
+		0,     10546, 7764,  16816, 7766,  16817, 5572,  5572,
+		7177,  16823, 17091, 16825, 5573,  5573,  9144,  9144,
+		5526,  0,     5574,  5574,  5450,  5451,  5452,  697,
+		697,   5455,  0,     7172,  5458,  5576,  5460,  -5456,
+		5462,  5463,  5464,  0,     0,     4691,  5468,  5469,
+		4693,  5471,  10898, 0,     0,     5475,  4698,  10908,
+		5478,  5479,  5480,  5481,  1359,  1359,  1359,  5485,
+		5486,  5487,  5488,  1359,  1359,  1359,  1359,  1359,
+		1359,  1359,  1359,  1359,  1359,  1359,  1359,  1359,
+		1359,  101,   1359,  1359,  1359,  1359,  1359,  1359,
+		1359,  1359,  1359,  1359,  1359,  1359,  1359,  1359,
+		87,    87,    1359,  1359,  1359,  1359,  1359,  1359,
+		1359,  1359,  1359,  1359,  1359,  1359,  1359,  1359,
+		1359,  1359,  1359,  1359,  1359,  1359,  1359,  1359,
+		1359,  1359,  1359,  1359,  1359,  1359,  1359,  1359,
+		1359,  1359,  1359,  1359,  -492,  -492,  -492,  -492,
+		-492,  1359,  1359,  1359,  1359,  1359,  1359,  1359,
+		1359,  1359,  1359,  1359,  4594,  1359,  -5566, 1665,
+		1665,  1665,  1665,  1665,  1665,  1665,  1665,  1665,
+		1665,  1665,  1665,  -405,  -405,  5585,  5586,  1668,
+		1668,  1668,  1668,  11644, 11645, 11646, 11647, 11648,
+		11649, 11650, 5842,  11555, 1676,  1676,  4818,  1676,
+		1676,  1676,  1676,  1676,  5852,  5853,  1678,  1678,
+		1678,  2613,  1678,  1678,  2615,  2615,  1357,  4834,
+		11572, 11573, 5866,  5867,  11576, 11577, 11578, 5871,
+		1357,  1357,  1357,  1357,  1357,  1357,  1357,  1357,
+		1357,  -6594, -3465, -3464, -3463, 244,   -3249, 244,
+		244,   244,   244,   -3253, -1709, 80,    -1709, -1709,
+		5651,  5652,  -1711, -1711, -1711, -1711, -1711, -1711,
+		-3265, -1711, -1711, 1056,  1057,  1058,  1059,  -1711,
+		-4879, -4878, -4877, -4876, -4875, -4874, -14431,5674,
+		-4871, -2088, -11139,-2088, -11138,108,   109,   -1495,
+		-11140,-11407,-11140,113,   114,   -3456, -3455, 164,
+		5691,  118,   119,   244,   244,   244,   5000,  5001,
+		244,   5700,  -1471, 244,   127,   244,   11161, 244,
+		244,   244,   5709,  5710,  1020,  244,   244,   1021,
+		244,   -5182, 5717,  5718,  244,   1022,  -5187, 244,
+		244,   244,   244,   4367,  4368,  4369,  244,   244,
+		244,   244,   4374,  4375,  4376,  4377,  4378,  4379,
+		4380,  4381,  4382,  4383,  4384,  4385,  4386,  4387,
+		5646,  4389,  4390,  4391,  4392,  4393,  4394,  4395,
+		4396,  4397,  4398,  4399,  4400,  4401,  4402,  5675,
+		5676,  4405,  4406,  4407,  4408,  4409,  4410,  4411,
+		4412,  4413,  4414,  4415,  4416,  4417,  4418,  4419,
+		4420,  4421,  4422,  4423,  4424,  4425,  4426,  4427,
+		4428,  4429,  4430,  4431,  4432,  4433,  4434,  4435,
+		4436,  4437,  4438,  6290,  6291,  6292,  6293,  6294,
+		4444,  4445,  4446,  4447,  4448,  4449,  4450,  4451,
+		4452,  4453,  4454,  1220,  4456,  11382, 4152,  4153,
+		4154,  4155,  4156,  4157,  4158,  4159,  4160,  4161,
+		4162,  4163,  6234,  6235,  0,     0,     4163,  4164,
+		4165,  4166,  -5809, -5809, -5809, -5809, -5809, -5809,
+		-5809, 0,     -5712, 4168,  4169,  1028,  4171,  4172,
+		4173,  4174,  4175,  0,     0,     4176,  4177,  4178,
+		3244,  4180,  4181,  3245,  3246,  4505,  1029,  -5708,
+		-5708, 0,     0,     -5708, -5708, -5708, 0,     4515,
+		4516,  4517,  4518,  4519,  4520,  4521,  4522,  4523,
+		4524,  4525,  4526,  4527,  4528,  4529,  4530,  4531,
+		4532,  4533,  4534,  4535,  4536,  4537,  4538,  4539,
+		4540,  4541,  4542,  4543,  4544,  4545,  4546,  4547,
+		4548,  4549,  4550,  4551,  4552,  4553,  4554,  4555,
+		4556,  0,     0,     0,     4557,  4558,  4559,  4560,
+		4561,  4562,  0,     0,     4563,  4564,  4565,  4566,
+		4567,  4568,  0,     0,     4569,  4570,  4571,  4572,
+		4573,  4574,  2114,  2115,  4575,  4576,  4577,  0,
+		0,     0,     4578,  0,     0,     0,     0,     0,
+		0,     2129,  2130,  0,     8810,  0,     0,     0,
+		0,     2137,  2138,  2139,  2140,  2141,  2142,  2143,
+		2144,  2145,  2146,  2147,  2148,  2149,  2150,  2151,
+		2152,  2153,  2154,  2155,  2156,  2157,  0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     4594,  4595,
+		4596,  4597,  4598,  0,     0,     164,   0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     2222,  2223,
+		2224,  2225,  2226,  2227,  2228,  2229,  2230,  2231,
+		2232,  2233,  2234,  2235,  2236,  2237,  2238,  2239,
+		2240,  2241,  2242,  2243,  2244,  2245,  2246,  2247,
+		2248,  2249,  2250,  2251,  2252,  2253,  2254,  2255,
+		2256,  2257,  2258,  2259,  2260,  2261,  2262,  2263,
+		2264,  2265,  2266,  2267,  2268,  2269,  2270,  705,
+		706,   707,   708,   709,   2276,  2277,  2278,  2279,
+		2280,  2281,  2282,  2283,  2284,  32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		2285,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 2286,  2287,  2288,  2289,  2290,  2291,
+		32767, 32767, 32767, 32767, 32767, 32767, 2292,  32767,
+		2293,  2294,  2295,  32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 2296,  32767, 2297,  32767,
+		2298,  32767, 2299,  32767, 2300,  32767, 2301,  32767,
+		2302,  32767, 2303,  32767, 2304,  32767, 2305,  32767,
+		2306,  32767, 2307,  32767, 32767, 2308,  32767, 2309,
+		32767, 2310,  32767, 32767, 32767, 32767, 32767, 32767,
+		2311,  2312,  32767, 2313,  2314,  32767, 2315,  2316,
+		32767, 2317,  2318,  32767, 2319,  2320,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 2321,  32767, 32767, 32767,
+		32767, 2322,  2323,  2324,  2325,  32767, 2326,  2327,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 2328,  32767, 2329,  32767,
+		2330,  32767, 2331,  32767, 2332,  32767, 2333,  32767,
+		2334,  32767, 2335,  32767, 2336,  32767, 2337,  32767,
+		2338,  32767, 2339,  32767, 32767, 2340,  32767, 2341,
+		32767, 2342,  32767, 32767, 32767, 32767, 32767, 32767,
+		2343,  2344,  32767, 2345,  2346,  32767, 2347,  2348,
+		32767, 2349,  2350,  32767, 2351,  2352,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 2353,  32767, 32767, 2354,
+		2355,  2356,  2357,  32767, 32767, 32767, 2358,  2359,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 2360,  2361,  2362,  2363,  2364,  2365,
+		2366,  2367,  2368,  2369,  2370,  2371,  2372,  2373,
+		2374,  -753,  2376,  2377,  2378,  2379,  2380,  2381,
+		2382,  2383,  2384,  2385,  2386,  2387,  2388,  2389,
+		2390,  2391,  2392,  2393,  2394,  2395,  2396,  2397,
+		2398,  2399,  2400,  2401,  2402,  2403,  2404,  2405,
+		2406,  2407,  2408,  2409,  2410,  2411,  831,   3086,
+		2414,  1631,  2416,  2417,  2418,  2419,  2420,  2421,
+		2422,  2423,  2424,  2425,  2426,  2427,  2428,  2429,
+		2430,  2431,  2432,  2433,  2434,  2435,  2436,  2437,
+		-587,  2439,  2440,  2441,  2442,  2443,  2444,  2445,
+		2446,  2447,  2448,  9292,  9293,  2451,  2452,  2453,
+		32767, 32767, 32767, 2454,  2455,  2456,  2457,  2458,
+		2459,  2460,  2461,  2462,  2463,  2464,  2465,  2466,
+		2467,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 4599,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 4600,  32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 2468,  -1450, 2470,  2471,  2472,  2473,
+		2474,  2475,  2476,  2477,  2478,  2479,  2480,  2481,
+		2482,  2483,  2484,  2485,  2486,  2487,  2488,  2489,
+		2490,  2491,  2492,  2493,  2494,  2495,  2496,  2497,
+		2498,  32767, 2499,  2500,  2501,  2502,  2503,  2504,
+		2505,  2506,  2507,  2508,  2509,  2510,  2511,  2512,
+		2513,  2514,  2515,  2516,  2517,  2518,  2519,  2520,
+		2521,  2522,  2523,  2524,  2525,  2526,  2527,  2528,
+		2529,  2530,  2531,  2532,  2533,  2534,  2535,  2536,
+		2537,  2538,  32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 2539,  2540,  5896,  2542,  2543,  2544,
+		2545,  548,   2547,  2548,  2549,  2550,  2551,  2552,
+		5919,  5920,  5921,  2556,  2557,  5926,  2559,  2560,
+		2561,  2562,  2563,  2564,  2565,  2566,  2567,  2568,
+		2569,  2570,  2571,  2572,  2573,  2574,  2575,  2576,
+		2577,  2578,  2579,  2580,  2581,  2582,  2583,  2584,
+		2585,  32767, 2586,  2587,  2588,  2589,  2590,  2591,
+		2592,  2593,  2594,  2595,  2596,  2597,  2598,  2599,
+		2600,  2601,  2602,  2603,  2604,  2605,  2606,  2607,
+		2608,  2609,  2610,  2611,  2612,  2613,  2614,  2615,
+		2616,  2617,  2618,  2619,  2620,  2621,  2622,  2623,
+		2624,  2625,  2626,  2627,  2628,  2629,  2630,  2631,
+		2632,  2633,  2634,  2635,  2636,  2637,  2638,  2639,
+		2640,  2641,  2642,  2643,  2644,  2645,  2646,  2647,
+		2648,  2649,  2650,  2651,  2652,  2653,  2654,  2655,
+		2656,  2657,  2658,  2659,  2660,  2661,  -703,  2663,
+		2664,  2665,  2666,  2667,  2668,  2669,  2670,  2671,
+		2672,  2673,  2674,  1999,  2676,  2677,  2678,  2679,
+		2680,  2681,  2682,  2683,  2684,  2685,  2686,  2687,
+		2688,  2689,  2690,  2014,  2692,  2693,  2694,  2695,
+		2696,  2697,  2698,  2699,  2700,  2701,  2702,  2703,
+		2704,  2705,  2706,  2707,  2708,  2709,  -11089,2711,
+		2712,  2713,  32767, 2714,  2715,  2716,  2717,  2718,
+		8050,  2720,  2721,  8053,  8054,  2724,  2725,  2726,
+		2727,  2728,  2729,  2730,  2731,  2732,  2733,  2734,
+		2735,  2736,  2737,  2738,  2739,  2740,  2741,  2742,
+		2743,  2744,  2745,  2746,  2747,  2748,  -1377, -1377,
+		-1377, -1377, 2753,  2754,  2755,  2756,  2757,  2758,
+		2759,  2760,  2761,  2762,  2763,  2764,  2765,  2766,
+		4025,  2768,  2769,  2770,  2771,  2772,  2773,  2774,
+		2775,  2776,  2777,  2778,  2779,  2780,  2781,  4054,
+		4055,  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,  4669,  4670,  4671,  4672,  4673,
+		2823,  2824,  2825,  2826,  2827,  2828,  2829,  2830,
+		2831,  2832,  2833,  -401,  2835,  9761,  2531,  2532,
+		2533,  2534,  2535,  2536,  2537,  2538,  2539,  2540,
+		2541,  2542,  4613,  4614,  -1621, -1621, 2542,  2543,
+		2544,  2545,  -7430, -7430, -7430, -7430, -7430, -7430,
+		-7430, -1621, -7333, 2547,  2548,  -593,  2550,  2551,
+		2552,  2553,  2554,  -1621, -1621, 2555,  2556,  2557,
+		1623,  2559,  2560,  1624,  1625,  2884,  -592,  -7329,
+		-7329, -1621, -1621, -7329, -7329, -7329, -1621, 2894,
+		2895,  2896,  2897,  2898,  2899,  2900,  2901,  2902,
+		2903,  2904,  2905,  2906,  2907,  2908,  2909,  2910,
+		2911,  2912,  2913,  2914,  2915,  2916,  2917,  2918,
+		2919,  2920,  2921,  2922,  2923,  2924,  2925,  2926,
+		2927,  2928,  2929,  2930,  2931,  2932,  2933,  2934,
+		2935,  2936,  2937,  2938,  2939,  2940,  2941,  2942,
+		2943,  2944,  2945,  2946,  2947,  2948,  2949,  2950,
+		2951,  2952,  2953,  2954,  2955,  2956,  2957,  2958,
+		2959,  2960,  2961,  2962,  2963,  2964,  2965,  2966,
+		2967,  2968,  2969,  32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -1515,227 +1721,38 @@ Decomp_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 2036,  2037,  2038,
-		2039,  2040,  2041,  2042,  2043,  2044,  2045,  2046,
-		2047,  2048,  2049,  2050,  2051,  2052,  2053,  2054,
-		2055,  2056,  2057,  2058,  2059,  2060,  2061,  2062,
-		2063,  2064,  2065,  2066,  2067,  32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 0,     0,     0,     0,
+		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 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,
-		-4778, -4778, -4778, 0,     32767, 32767, 32767, 0,
-		0,     32767, 32767, 32767, 0,     0,     32767, 32767,
-		-4791, -4791, -4791, -4791, -4791, -4791, -4791, -4791,
-		-4791, -4791, 0,     0,     -15359,0,     -4791, -4791,
-		0,     0,     -4791, 0,     0,     -4789, -4789, -4789,
-		-4789, -4789, -4789, 0,     0,     0,     0,     0,
-		0,     -4789, 0,     0,     0,     -4789, -4789, -4789,
-		-4789, -4789, -4789, -4789, 32767, 32767, 32767, 32767,
-		-4793, -4793, -4793, 0,     0,     -4793, 0,     -4793,
-		-4793, 32767, 32767, 32767, 0,     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, 0,     0,     0,     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, 2069,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 4017,  32767, 32767, 32767, 2070,
-		2071,  2072,  2073,  2074,  2075,  2076,  2077,  22011,
-		2079,  2080,  2081,  2082,  2083,  2084,  2085,  2086,
-		2087,  2337,  2337,  2090,  2091,  2092,  2093,  2094,
-		2095,  2096,  2097,  2098,  2099,  2100,  2101,  2102,
-		2103,  2104,  2105,  -3995, 2107,  2108,  2109,  2110,
-		2111,  2112,  2113,  627,   2115,  1486,  -5783, -5783,
-		-5783, 2113,  2113,  2113,  -852,  1486,  1486,  1486,
-		-126,  -5791, 5059,  1486,  3571,  -16362,-1003, 1486,
-		-5795, -1004, 1486,  1486,  1486,  1486,  -5797, -126,
-		-5798, 1486,  1486,  1486,  1486,  1486,  1486,  1486,
-		1486,  -1017, -5806, -1017, -2823, -2823, 1486,  2022,
-		-2821, -2821, -2821, -2821, 2163,  -2820, -2820, -2820,
-		-2820, -5819, 1486,  -2820, -2820, -2820, 4876,  -2820,
-		-2820, -5824, -2819, 2178,  -2818, -5042, 1488,  -2818,
-		1488,  1488,  -2818, 1488,  -2817, -2817, -2817, -2817,
-		-2817, -2817, -1461, -1461, 1488,  0,     0,     0,
-		0,     0,     0,     0,     0,     -19933,0,     0,
-		0,     0,     0,     0,     0,     0,     0,     -249,
-		-248,  0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     6101,  0,     0,     0,     0,     0,     0,
-		0,     1487,  0,     630,   7900,  7901,  7902,  7,
-		8,     9,     2975,  638,   639,   640,   2253,  7919,
-		-2930, 644,   -1440, 18494, 3136,  648,   7930,  3140,
-		651,   652,   653,   654,   7938,  2268,  7941,  658,
-		659,   660,   661,   662,   663,   664,   665,   3169,
-		7959,  3171,  4978,  4979,  671,   136,   4980,  4981,
-		4982,  4983,  0,     4984,  4985,  4986,  4987,  7987,
-		683,   4990,  4991,  4992,  -2703, 4994,  4995,  8000,
-		4996,  0,     4997,  7222,  693,   5000,  695,   696,
-		5003,  698,   5004,  5005,  5006,  5007,  5008,  5009,
-		3654,  3655,  707,   2196,  2197,  2198,  2199,  2200,
-		2201,  2202,  2203,  22137, 2205,  2206,  2207,  2208,
-		2209,  2210,  2211,  2212,  2213,  2463,  2463,  2216,
-		2217,  2218,  2219,  2220,  2221,  2222,  2223,  2224,
-		2225,  2226,  2227,  2228,  2229,  2230,  2231,  -3869,
-		2233,  2234,  2235,  2236,  2237,  2238,  2239,  753,
-		2241,  1612,  -5657, -5657, -5657, 2239,  2239,  2239,
-		-726,  1612,  1612,  1612,  0,     -5665, 5185,  1612,
-		3697,  -16236,-877,  1612,  -5669, -878,  1612,  1612,
-		1612,  1612,  -5671, 0,     -5672, 1612,  1612,  1612,
-		1612,  1612,  1612,  1612,  1612,  -891,  -5680, -891,
-		-2697, -2697, 1612,  5095,  2299,  5097,  2300,  5099,
-		2301,  5101,  2302,  5103,  2303,  5105,  2304,  5107,
-		2305,  5109,  2306,  5111,  5112,  2307,  5114,  2308,
-		32767, 2309,  5117,  5118,  5119,  32767, 5120,  5121,
-		5498,  2311,  5124,  2312,  2313,  0,     2314,  2315,
-		5126,  2316,  2317,  5129,  2318,  2319,  5132,  32767,
-		5133,  5134,  5135,  5136,  5137,  5138,  5139,  5140,
-		5141,  5142,  5143,  5144,  5145,  5146,  5147,  5148,
-		5149,  5150,  5151,  5152,  2320,  5154,  5155,  5156,
-		5157,  1377,  2322,  1378,  2324,  5162,  1379,  1379,
-		5165,  5166,  5167,  5168,  5169,  5170,  5171,  5172,
-		5173,  5174,  5175,  5176,  2327,  5178,  2328,  5180,
-		2329,  5182,  2330,  5184,  2331,  5186,  2332,  5188,
-		2333,  5190,  2334,  5192,  2335,  5194,  2336,  5196,
-		2337,  5198,  2338,  5200,  5201,  2339,  5203,  2340,
-		5205,  1391,  5207,  5208,  5209,  5210,  5211,  5212,
-		1385,  1385,  -4221, -4221, -4221, -1193, 2346,  2347,
-		5221,  2348,  2349,  -3412, -4220, -4220, -4220, -4220,
-		5229,  5230,  5231,  5232,  5233,  5234,  5235,  5236,
-		5237,  5238,  5239,  5240,  5241,  5242,  5243,  5244,
-		5245,  5246,  5247,  5248,  2352,  5250,  5251,  4592,
-		-2168, -1982, 2356,  5256,  5257,  5258,  2357,  4444,
-		5261,  5262,  5263,  5264,  5265,  5266,  5267,  5268,
-		5269,  5270,  5271,  5272,  5273,  5274,  5275,  5276,
-		5277,  5278,  5279,  5280,  5281,  5282,  5283,  5284,
-		5285,  5286,  5287,  5288,  5289,  5290,  5291,  5292,
-		5293,  5294,  5295,  5296,  5297,  5298,  5299,  5300,
-		5301,  5302,  5303,  5304,  5305,  5306,  32767, 5307,
-		5308,  5309,  6427,  6428,  6429,  6430,  6431,  6432,
-		6433,  6434,  -3465, -3465, 6439,  6440,  6441,  6442,
-		6443,  6444,  6445,  6446,  -3465, -3465, -3465, -3465,
-		-3465, -3465, 7724,  2669,  2670,  -3430, 2672,  2673,
-		2674,  2675,  2676,  7733,  7734,  -3465, -3465, -3465,
-		-3465, -3465, 5341,  5342,  -291,  -291,  -291,  -291,
-		7390,  -3465, -3465, -3465, -3465, -3465, -3465, -3465,
-		-3465, -3465, -5246, -5246, -5246, -5246, -3465, -3465,
-		-3465, -3465, -3465, -3465, -3465, -3465, -3465, -3465,
-		-3465, -3465, -3465, -3465, -3465, -3465, -3465, -3465,
-		-3465, -3465, -3465, 1591,  1591,  7692,  1591,  1591,
-		1591,  1591,  1591,  -3465, -3465, -1547, 4593,  4594,
-		4595,  606,   4597,  -3465, 4572,  4573,  4574,  4575,
-		-3105, 9632,  -5502, -5502, -5502, -5502, -4166, -5502,
-		280,   280,   280,   280,   280,   280,   280,   280,
-		5428,  5429,  278,   278,   278,   278,   278,   278,
-		278,   5437,  5438,  5439,  5440,  5441,  5442,  5443,
-		5444,  5445,  5446,  5447,  5448,  5449,  5450,  5451,
-		5452,  5453,  5454,  5455,  5456,  5457,  5458,  5459,
-		5460,  5461,  5462,  5463,  5464,  5465,  5466,  676,
-		677,   16037, 679,   5471,  5472,  32767, 32767, 5473,
-		0,     5475,  5476,  5477,  5478,  5479,  5480,  5481,
-		693,   694,   695,   696,   697,   698,   5488,  700,
-		701,   702,   5492,  5493,  5494,  5495,  5496,  5497,
-		5498,  5499,  5500,  5501,  5502,  5503,  5504,  5505,
-		713,   714,   5508,  716,   5510,  5511,  5512,  5513,
-		5514,  5515,  1138,  2027,  2028,  719,   720,   2030,
-		2031,  1144,  9041,  9042,  2477,  2478,  2479,  2480,
-		2481,  2482,  2483,  2484,  2485,  2486,  2487,  2488,
-		2489,  2490,  2491,  2492,  5540,  2768,  2768,  2768,
-		2768,  5547,  -2247, 2499,  2500,  2768,  2768,  558,
-		2768,  2768,  2506,  2507,  2508,  2509,  2510,  2511,
-		2512,  2513,  8713,  2515,  2516,  2517,  2518,  2519,
-		2520,  2521,  2522,  2523,  2524,  2525,  2526,  2527,
-		2528,  2529,  2530,  2531,  2532,  2533,  2534,  2535,
-		2536,  2537,  5587,  5588,  5589,  5590,  5591,  5592,
-		5593,  5594,  2538,  0,     0,     0,     -1117, -1117,
-		-1117, -1117, -1117, -1117, -1117, -1117, 8783,  8784,
-		-1119, -1119, -1119, -1119, -1119, -1119, -1119, -1119,
-		8793,  8794,  8795,  8796,  8797,  8798,  -2390, 2666,
-		2666,  8767,  2666,  2666,  2666,  2666,  2666,  -2390,
-		-2390, 8810,  8811,  8812,  8813,  8814,  9,     9,
-		5643,  5644,  5645,  5646,  -2034, 8822,  8823,  8824,
-		8825,  8826,  8827,  8828,  8829,  8830,  10612, 10613,
-		10614, 10615, 8835,  8836,  8837,  8838,  8839,  8840,
-		8841,  8842,  8843,  8844,  8845,  8846,  8847,  8848,
-		8849,  8850,  8851,  8852,  8853,  8854,  8855,  3800,
-		3801,  -2299, 3803,  3804,  3805,  3806,  3807,  8864,
-		8865,  6948,  809,   809,   809,   4799,  809,   8872,
-		836,   836,   836,   836,   8517,  -4219, 10916, 10917,
-		10918, 10919, 9584,  10921, 5140,  5141,  5142,  5143,
-		5144,  5145,  5146,  5147,  0,     0,     5152,  5153,
-		5154,  5155,  5156,  5157,  5158,  0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     4791,  4791,  -10568,4791,  0,
-		0,     4791,  4791,  0,     5474,  0,     0,     0,
-		0,     0,     0,     0,     4789,  4789,  4789,  4789,
-		4789,  4789,  0,     4789,  4789,  4789,  0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     4793,  4793,  0,     4793,
-		0,     0,     0,     0,     0,     0,     4378,  3490,
-		3490,  4800,  4800,  3491,  3491,  4379,  -3517, -3517,
-		3049,  3049,  3049,  3049,  3049,  3049,  3049,  3049,
-		3049,  3049,  3049,  3049,  3049,  3049,  3049,  3049,
-		2,     2775,  2776,  2777,  2778,  0,     7795,  3050,
-		3050,  2783,  2784,  4995,  2786,  2787,  3050,  3050,
-		3050,  3050,  3050,  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,  2853,
-		2854,  2855,  2856,  2857,  2858,  2859,  2860,  2861,
-		2862,  2863,  2864,  2865,  2866,  2867,  2868,  2869,
-		2870,  2871,  2872,  2873,  2874,  2875,  2876,  2877,
-		2878,  2879,  2880,  2881,  2882,  2883,  2884,  2885,
-		2886,  2887,  2888,  2889,  2890,  2891,  2892,  2893,
-		2894,  2895,  2896,  2897,  2898,  2899,  2900,  2901,
-		2902,  2903,  2904,  2905,  2906,  2907,  2908,  2909,
-		2910,  2911,  2912,  2913,  2914,  2915,  2916,  2917,
-		2918,  2919,  2920,  2921,  2922,  883,   884,   885,
-		2926,  2927,  2928,  2929,  2930,  2931,  2932,  2933,
-		2934,  2935,  2936,  2937,  2938,  2939,  2940,  2941,
-		2942,  2943,  2944,  2945,  2946,  2947,  2948,  2949,
-		2950,  2951,  2952,  2953,  2954,  2955,  2956,  2957,
-		2958,  2959,  2960,  2961,  2962,  2963,  2964,  2965,
-		2966,  2967,  2968,  32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 4770,  4771,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
+		0,     0,     0,     0,     0,     32767, 32767, 32767,
+		32767, 32767, 32767, 0,     32767, 0,     0,     0,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
-		0,     0,     0,     0,     0,     0,     32767, 0,
-		0,     0,     0,     0,     0,     0,     0
+		32767, 0,     32767, 0,     32767, 0,     32767, 0,
+		32767, 0,     32767, 0,     32767, 0,     32767, 0,
+		32767, 0,     32767, 0,     32767, 0,     32767, 0,
+		32767, 32767, 0,     32767, 0,     32767, 0,     32767,
+		32767, 32767, 32767, 32767, 32767, 0,     0,     32767,
+		0,     0,     32767, 0,     0,     32767, 0,     0,
+		32767, 0,     0,     32767, 32767, 32767, 32767
 	};
 
 	const unsigned char *k = (const unsigned char *) key;
@@ -1750,7 +1767,7 @@ Decomp_hash_func(const void *key)
 		a = a * 257 + c;
 		b = b * 8191 + c;
 	}
-	return h[a % 13551] + h[b % 13551];
+	return h[a % 13687] + h[b % 13687];
 }
 
 /* Hash lookup information for decomposition */
@@ -1758,15 +1775,15 @@ static const pg_unicode_decompinfo UnicodeDecompInfo =
 {
 	UnicodeDecompMain,
 	Decomp_hash_func,
-	6775
+	6843
 };
 
 /* Inverse lookup array -- contains indexes into UnicodeDecompMain[] */
-static const uint16 RecompInverseLookup[941] =
+static const uint16 RecompInverseLookup[961] =
 {
-	/* U+003C+0338 -> U+226E */ 1857,
-	/* U+003D+0338 -> U+2260 */ 1854,
-	/* U+003E+0338 -> U+226F */ 1858,
+	/* U+003C+0338 -> U+226E */ 1858,
+	/* U+003D+0338 -> U+2260 */ 1855,
+	/* U+003E+0338 -> U+226F */ 1859,
 	/* U+0041+0300 -> U+00C0 */ 14,
 	/* U+0041+0301 -> U+00C1 */ 15,
 	/* U+0041+0302 -> U+00C2 */ 16,
@@ -1775,60 +1792,60 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+0041+0306 -> U+0102 */ 69,
 	/* U+0041+0307 -> U+0226 */ 270,
 	/* U+0041+0308 -> U+00C4 */ 18,
-	/* U+0041+0309 -> U+1EA2 */ 1312,
+	/* U+0041+0309 -> U+1EA2 */ 1313,
 	/* U+0041+030A -> U+00C5 */ 19,
 	/* U+0041+030C -> U+01CD */ 194,
 	/* U+0041+030F -> U+0200 */ 240,
 	/* U+0041+0311 -> U+0202 */ 242,
-	/* U+0041+0323 -> U+1EA0 */ 1310,
-	/* U+0041+0325 -> U+1E00 */ 1154,
+	/* U+0041+0323 -> U+1EA0 */ 1311,
+	/* U+0041+0325 -> U+1E00 */ 1155,
 	/* U+0041+0328 -> U+0104 */ 71,
-	/* U+0042+0307 -> U+1E02 */ 1156,
-	/* U+0042+0323 -> U+1E04 */ 1158,
-	/* U+0042+0331 -> U+1E06 */ 1160,
+	/* U+0042+0307 -> U+1E02 */ 1157,
+	/* U+0042+0323 -> U+1E04 */ 1159,
+	/* U+0042+0331 -> U+1E06 */ 1161,
 	/* U+0043+0301 -> U+0106 */ 73,
 	/* U+0043+0302 -> U+0108 */ 75,
 	/* U+0043+0307 -> U+010A */ 77,
 	/* U+0043+030C -> U+010C */ 79,
 	/* U+0043+0327 -> U+00C7 */ 20,
-	/* U+0044+0307 -> U+1E0A */ 1164,
+	/* U+0044+0307 -> U+1E0A */ 1165,
 	/* U+0044+030C -> U+010E */ 81,
-	/* U+0044+0323 -> U+1E0C */ 1166,
-	/* U+0044+0327 -> U+1E10 */ 1170,
-	/* U+0044+032D -> U+1E12 */ 1172,
-	/* U+0044+0331 -> U+1E0E */ 1168,
+	/* U+0044+0323 -> U+1E0C */ 1167,
+	/* U+0044+0327 -> U+1E10 */ 1171,
+	/* U+0044+032D -> U+1E12 */ 1173,
+	/* U+0044+0331 -> U+1E0E */ 1169,
 	/* U+0045+0300 -> U+00C8 */ 21,
 	/* U+0045+0301 -> U+00C9 */ 22,
 	/* U+0045+0302 -> U+00CA */ 23,
-	/* U+0045+0303 -> U+1EBC */ 1338,
+	/* U+0045+0303 -> U+1EBC */ 1339,
 	/* U+0045+0304 -> U+0112 */ 83,
 	/* U+0045+0306 -> U+0114 */ 85,
 	/* U+0045+0307 -> U+0116 */ 87,
 	/* U+0045+0308 -> U+00CB */ 24,
-	/* U+0045+0309 -> U+1EBA */ 1336,
+	/* U+0045+0309 -> U+1EBA */ 1337,
 	/* U+0045+030C -> U+011A */ 91,
 	/* U+0045+030F -> U+0204 */ 244,
 	/* U+0045+0311 -> U+0206 */ 246,
-	/* U+0045+0323 -> U+1EB8 */ 1334,
+	/* U+0045+0323 -> U+1EB8 */ 1335,
 	/* U+0045+0327 -> U+0228 */ 272,
 	/* U+0045+0328 -> U+0118 */ 89,
-	/* U+0045+032D -> U+1E18 */ 1178,
-	/* U+0045+0330 -> U+1E1A */ 1180,
-	/* U+0046+0307 -> U+1E1E */ 1184,
+	/* U+0045+032D -> U+1E18 */ 1179,
+	/* U+0045+0330 -> U+1E1A */ 1181,
+	/* U+0046+0307 -> U+1E1E */ 1185,
 	/* U+0047+0301 -> U+01F4 */ 230,
 	/* U+0047+0302 -> U+011C */ 93,
-	/* U+0047+0304 -> U+1E20 */ 1186,
+	/* U+0047+0304 -> U+1E20 */ 1187,
 	/* U+0047+0306 -> U+011E */ 95,
 	/* U+0047+0307 -> U+0120 */ 97,
 	/* U+0047+030C -> U+01E6 */ 216,
 	/* U+0047+0327 -> U+0122 */ 99,
 	/* U+0048+0302 -> U+0124 */ 101,
-	/* U+0048+0307 -> U+1E22 */ 1188,
-	/* U+0048+0308 -> U+1E26 */ 1192,
+	/* U+0048+0307 -> U+1E22 */ 1189,
+	/* U+0048+0308 -> U+1E26 */ 1193,
 	/* U+0048+030C -> U+021E */ 268,
-	/* U+0048+0323 -> U+1E24 */ 1190,
-	/* U+0048+0327 -> U+1E28 */ 1194,
-	/* U+0048+032E -> U+1E2A */ 1196,
+	/* U+0048+0323 -> U+1E24 */ 1191,
+	/* U+0048+0327 -> U+1E28 */ 1195,
+	/* U+0048+032E -> U+1E2A */ 1197,
 	/* U+0049+0300 -> U+00CC */ 25,
 	/* U+0049+0301 -> U+00CD */ 26,
 	/* U+0049+0302 -> U+00CE */ 27,
@@ -1837,37 +1854,37 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+0049+0306 -> U+012C */ 107,
 	/* U+0049+0307 -> U+0130 */ 111,
 	/* U+0049+0308 -> U+00CF */ 28,
-	/* U+0049+0309 -> U+1EC8 */ 1350,
+	/* U+0049+0309 -> U+1EC8 */ 1351,
 	/* U+0049+030C -> U+01CF */ 196,
 	/* U+0049+030F -> U+0208 */ 248,
 	/* U+0049+0311 -> U+020A */ 250,
-	/* U+0049+0323 -> U+1ECA */ 1352,
+	/* U+0049+0323 -> U+1ECA */ 1353,
 	/* U+0049+0328 -> U+012E */ 109,
-	/* U+0049+0330 -> U+1E2C */ 1198,
+	/* U+0049+0330 -> U+1E2C */ 1199,
 	/* U+004A+0302 -> U+0134 */ 114,
-	/* U+004B+0301 -> U+1E30 */ 1202,
+	/* U+004B+0301 -> U+1E30 */ 1203,
 	/* U+004B+030C -> U+01E8 */ 218,
-	/* U+004B+0323 -> U+1E32 */ 1204,
+	/* U+004B+0323 -> U+1E32 */ 1205,
 	/* U+004B+0327 -> U+0136 */ 116,
-	/* U+004B+0331 -> U+1E34 */ 1206,
+	/* U+004B+0331 -> U+1E34 */ 1207,
 	/* U+004C+0301 -> U+0139 */ 118,
 	/* U+004C+030C -> U+013D */ 122,
-	/* U+004C+0323 -> U+1E36 */ 1208,
+	/* U+004C+0323 -> U+1E36 */ 1209,
 	/* U+004C+0327 -> U+013B */ 120,
-	/* U+004C+032D -> U+1E3C */ 1214,
-	/* U+004C+0331 -> U+1E3A */ 1212,
-	/* U+004D+0301 -> U+1E3E */ 1216,
-	/* U+004D+0307 -> U+1E40 */ 1218,
-	/* U+004D+0323 -> U+1E42 */ 1220,
+	/* U+004C+032D -> U+1E3C */ 1215,
+	/* U+004C+0331 -> U+1E3A */ 1213,
+	/* U+004D+0301 -> U+1E3E */ 1217,
+	/* U+004D+0307 -> U+1E40 */ 1219,
+	/* U+004D+0323 -> U+1E42 */ 1221,
 	/* U+004E+0300 -> U+01F8 */ 232,
 	/* U+004E+0301 -> U+0143 */ 126,
 	/* U+004E+0303 -> U+00D1 */ 29,
-	/* U+004E+0307 -> U+1E44 */ 1222,
+	/* U+004E+0307 -> U+1E44 */ 1223,
 	/* U+004E+030C -> U+0147 */ 130,
-	/* U+004E+0323 -> U+1E46 */ 1224,
+	/* U+004E+0323 -> U+1E46 */ 1225,
 	/* U+004E+0327 -> U+0145 */ 128,
-	/* U+004E+032D -> U+1E4A */ 1228,
-	/* U+004E+0331 -> U+1E48 */ 1226,
+	/* U+004E+032D -> U+1E4A */ 1229,
+	/* U+004E+0331 -> U+1E48 */ 1227,
 	/* U+004F+0300 -> U+00D2 */ 30,
 	/* U+004F+0301 -> U+00D3 */ 31,
 	/* U+004F+0302 -> U+00D4 */ 32,
@@ -1876,38 +1893,38 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+004F+0306 -> U+014E */ 135,
 	/* U+004F+0307 -> U+022E */ 278,
 	/* U+004F+0308 -> U+00D6 */ 34,
-	/* U+004F+0309 -> U+1ECE */ 1356,
+	/* U+004F+0309 -> U+1ECE */ 1357,
 	/* U+004F+030B -> U+0150 */ 137,
 	/* U+004F+030C -> U+01D1 */ 198,
 	/* U+004F+030F -> U+020C */ 252,
 	/* U+004F+0311 -> U+020E */ 254,
 	/* U+004F+031B -> U+01A0 */ 181,
-	/* U+004F+0323 -> U+1ECC */ 1354,
+	/* U+004F+0323 -> U+1ECC */ 1355,
 	/* U+004F+0328 -> U+01EA */ 220,
-	/* U+0050+0301 -> U+1E54 */ 1238,
-	/* U+0050+0307 -> U+1E56 */ 1240,
+	/* U+0050+0301 -> U+1E54 */ 1239,
+	/* U+0050+0307 -> U+1E56 */ 1241,
 	/* U+0052+0301 -> U+0154 */ 139,
-	/* U+0052+0307 -> U+1E58 */ 1242,
+	/* U+0052+0307 -> U+1E58 */ 1243,
 	/* U+0052+030C -> U+0158 */ 143,
 	/* U+0052+030F -> U+0210 */ 256,
 	/* U+0052+0311 -> U+0212 */ 258,
-	/* U+0052+0323 -> U+1E5A */ 1244,
+	/* U+0052+0323 -> U+1E5A */ 1245,
 	/* U+0052+0327 -> U+0156 */ 141,
-	/* U+0052+0331 -> U+1E5E */ 1248,
+	/* U+0052+0331 -> U+1E5E */ 1249,
 	/* U+0053+0301 -> U+015A */ 145,
 	/* U+0053+0302 -> U+015C */ 147,
-	/* U+0053+0307 -> U+1E60 */ 1250,
+	/* U+0053+0307 -> U+1E60 */ 1251,
 	/* U+0053+030C -> U+0160 */ 151,
-	/* U+0053+0323 -> U+1E62 */ 1252,
+	/* U+0053+0323 -> U+1E62 */ 1253,
 	/* U+0053+0326 -> U+0218 */ 264,
 	/* U+0053+0327 -> U+015E */ 149,
-	/* U+0054+0307 -> U+1E6A */ 1260,
+	/* U+0054+0307 -> U+1E6A */ 1261,
 	/* U+0054+030C -> U+0164 */ 155,
-	/* U+0054+0323 -> U+1E6C */ 1262,
+	/* U+0054+0323 -> U+1E6C */ 1263,
 	/* U+0054+0326 -> U+021A */ 266,
 	/* U+0054+0327 -> U+0162 */ 153,
-	/* U+0054+032D -> U+1E70 */ 1266,
-	/* U+0054+0331 -> U+1E6E */ 1264,
+	/* U+0054+032D -> U+1E70 */ 1267,
+	/* U+0054+0331 -> U+1E6E */ 1265,
 	/* U+0055+0300 -> U+00D9 */ 35,
 	/* U+0055+0301 -> U+00DA */ 36,
 	/* U+0055+0302 -> U+00DB */ 37,
@@ -1915,43 +1932,43 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+0055+0304 -> U+016A */ 159,
 	/* U+0055+0306 -> U+016C */ 161,
 	/* U+0055+0308 -> U+00DC */ 38,
-	/* U+0055+0309 -> U+1EE6 */ 1380,
+	/* U+0055+0309 -> U+1EE6 */ 1381,
 	/* U+0055+030A -> U+016E */ 163,
 	/* U+0055+030B -> U+0170 */ 165,
 	/* U+0055+030C -> U+01D3 */ 200,
 	/* U+0055+030F -> U+0214 */ 260,
 	/* U+0055+0311 -> U+0216 */ 262,
 	/* U+0055+031B -> U+01AF */ 183,
-	/* U+0055+0323 -> U+1EE4 */ 1378,
-	/* U+0055+0324 -> U+1E72 */ 1268,
+	/* U+0055+0323 -> U+1EE4 */ 1379,
+	/* U+0055+0324 -> U+1E72 */ 1269,
 	/* U+0055+0328 -> U+0172 */ 167,
-	/* U+0055+032D -> U+1E76 */ 1272,
-	/* U+0055+0330 -> U+1E74 */ 1270,
-	/* U+0056+0303 -> U+1E7C */ 1278,
-	/* U+0056+0323 -> U+1E7E */ 1280,
-	/* U+0057+0300 -> U+1E80 */ 1282,
-	/* U+0057+0301 -> U+1E82 */ 1284,
+	/* U+0055+032D -> U+1E76 */ 1273,
+	/* U+0055+0330 -> U+1E74 */ 1271,
+	/* U+0056+0303 -> U+1E7C */ 1279,
+	/* U+0056+0323 -> U+1E7E */ 1281,
+	/* U+0057+0300 -> U+1E80 */ 1283,
+	/* U+0057+0301 -> U+1E82 */ 1285,
 	/* U+0057+0302 -> U+0174 */ 169,
-	/* U+0057+0307 -> U+1E86 */ 1288,
-	/* U+0057+0308 -> U+1E84 */ 1286,
-	/* U+0057+0323 -> U+1E88 */ 1290,
-	/* U+0058+0307 -> U+1E8A */ 1292,
-	/* U+0058+0308 -> U+1E8C */ 1294,
-	/* U+0059+0300 -> U+1EF2 */ 1392,
+	/* U+0057+0307 -> U+1E86 */ 1289,
+	/* U+0057+0308 -> U+1E84 */ 1287,
+	/* U+0057+0323 -> U+1E88 */ 1291,
+	/* U+0058+0307 -> U+1E8A */ 1293,
+	/* U+0058+0308 -> U+1E8C */ 1295,
+	/* U+0059+0300 -> U+1EF2 */ 1393,
 	/* U+0059+0301 -> U+00DD */ 39,
 	/* U+0059+0302 -> U+0176 */ 171,
-	/* U+0059+0303 -> U+1EF8 */ 1398,
+	/* U+0059+0303 -> U+1EF8 */ 1399,
 	/* U+0059+0304 -> U+0232 */ 282,
-	/* U+0059+0307 -> U+1E8E */ 1296,
+	/* U+0059+0307 -> U+1E8E */ 1297,
 	/* U+0059+0308 -> U+0178 */ 173,
-	/* U+0059+0309 -> U+1EF6 */ 1396,
-	/* U+0059+0323 -> U+1EF4 */ 1394,
+	/* U+0059+0309 -> U+1EF6 */ 1397,
+	/* U+0059+0323 -> U+1EF4 */ 1395,
 	/* U+005A+0301 -> U+0179 */ 174,
-	/* U+005A+0302 -> U+1E90 */ 1298,
+	/* U+005A+0302 -> U+1E90 */ 1299,
 	/* U+005A+0307 -> U+017B */ 176,
 	/* U+005A+030C -> U+017D */ 178,
-	/* U+005A+0323 -> U+1E92 */ 1300,
-	/* U+005A+0331 -> U+1E94 */ 1302,
+	/* U+005A+0323 -> U+1E92 */ 1301,
+	/* U+005A+0331 -> U+1E94 */ 1303,
 	/* U+0061+0300 -> U+00E0 */ 40,
 	/* U+0061+0301 -> U+00E1 */ 41,
 	/* U+0061+0302 -> U+00E2 */ 42,
@@ -1960,61 +1977,61 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+0061+0306 -> U+0103 */ 70,
 	/* U+0061+0307 -> U+0227 */ 271,
 	/* U+0061+0308 -> U+00E4 */ 44,
-	/* U+0061+0309 -> U+1EA3 */ 1313,
+	/* U+0061+0309 -> U+1EA3 */ 1314,
 	/* U+0061+030A -> U+00E5 */ 45,
 	/* U+0061+030C -> U+01CE */ 195,
 	/* U+0061+030F -> U+0201 */ 241,
 	/* U+0061+0311 -> U+0203 */ 243,
-	/* U+0061+0323 -> U+1EA1 */ 1311,
-	/* U+0061+0325 -> U+1E01 */ 1155,
+	/* U+0061+0323 -> U+1EA1 */ 1312,
+	/* U+0061+0325 -> U+1E01 */ 1156,
 	/* U+0061+0328 -> U+0105 */ 72,
-	/* U+0062+0307 -> U+1E03 */ 1157,
-	/* U+0062+0323 -> U+1E05 */ 1159,
-	/* U+0062+0331 -> U+1E07 */ 1161,
+	/* U+0062+0307 -> U+1E03 */ 1158,
+	/* U+0062+0323 -> U+1E05 */ 1160,
+	/* U+0062+0331 -> U+1E07 */ 1162,
 	/* U+0063+0301 -> U+0107 */ 74,
 	/* U+0063+0302 -> U+0109 */ 76,
 	/* U+0063+0307 -> U+010B */ 78,
 	/* U+0063+030C -> U+010D */ 80,
 	/* U+0063+0327 -> U+00E7 */ 46,
-	/* U+0064+0307 -> U+1E0B */ 1165,
+	/* U+0064+0307 -> U+1E0B */ 1166,
 	/* U+0064+030C -> U+010F */ 82,
-	/* U+0064+0323 -> U+1E0D */ 1167,
-	/* U+0064+0327 -> U+1E11 */ 1171,
-	/* U+0064+032D -> U+1E13 */ 1173,
-	/* U+0064+0331 -> U+1E0F */ 1169,
+	/* U+0064+0323 -> U+1E0D */ 1168,
+	/* U+0064+0327 -> U+1E11 */ 1172,
+	/* U+0064+032D -> U+1E13 */ 1174,
+	/* U+0064+0331 -> U+1E0F */ 1170,
 	/* U+0065+0300 -> U+00E8 */ 47,
 	/* U+0065+0301 -> U+00E9 */ 48,
 	/* U+0065+0302 -> U+00EA */ 49,
-	/* U+0065+0303 -> U+1EBD */ 1339,
+	/* U+0065+0303 -> U+1EBD */ 1340,
 	/* U+0065+0304 -> U+0113 */ 84,
 	/* U+0065+0306 -> U+0115 */ 86,
 	/* U+0065+0307 -> U+0117 */ 88,
 	/* U+0065+0308 -> U+00EB */ 50,
-	/* U+0065+0309 -> U+1EBB */ 1337,
+	/* U+0065+0309 -> U+1EBB */ 1338,
 	/* U+0065+030C -> U+011B */ 92,
 	/* U+0065+030F -> U+0205 */ 245,
 	/* U+0065+0311 -> U+0207 */ 247,
-	/* U+0065+0323 -> U+1EB9 */ 1335,
+	/* U+0065+0323 -> U+1EB9 */ 1336,
 	/* U+0065+0327 -> U+0229 */ 273,
 	/* U+0065+0328 -> U+0119 */ 90,
-	/* U+0065+032D -> U+1E19 */ 1179,
-	/* U+0065+0330 -> U+1E1B */ 1181,
-	/* U+0066+0307 -> U+1E1F */ 1185,
+	/* U+0065+032D -> U+1E19 */ 1180,
+	/* U+0065+0330 -> U+1E1B */ 1182,
+	/* U+0066+0307 -> U+1E1F */ 1186,
 	/* U+0067+0301 -> U+01F5 */ 231,
 	/* U+0067+0302 -> U+011D */ 94,
-	/* U+0067+0304 -> U+1E21 */ 1187,
+	/* U+0067+0304 -> U+1E21 */ 1188,
 	/* U+0067+0306 -> U+011F */ 96,
 	/* U+0067+0307 -> U+0121 */ 98,
 	/* U+0067+030C -> U+01E7 */ 217,
 	/* U+0067+0327 -> U+0123 */ 100,
 	/* U+0068+0302 -> U+0125 */ 102,
-	/* U+0068+0307 -> U+1E23 */ 1189,
-	/* U+0068+0308 -> U+1E27 */ 1193,
+	/* U+0068+0307 -> U+1E23 */ 1190,
+	/* U+0068+0308 -> U+1E27 */ 1194,
 	/* U+0068+030C -> U+021F */ 269,
-	/* U+0068+0323 -> U+1E25 */ 1191,
-	/* U+0068+0327 -> U+1E29 */ 1195,
-	/* U+0068+032E -> U+1E2B */ 1197,
-	/* U+0068+0331 -> U+1E96 */ 1304,
+	/* U+0068+0323 -> U+1E25 */ 1192,
+	/* U+0068+0327 -> U+1E29 */ 1196,
+	/* U+0068+032E -> U+1E2B */ 1198,
+	/* U+0068+0331 -> U+1E96 */ 1305,
 	/* U+0069+0300 -> U+00EC */ 51,
 	/* U+0069+0301 -> U+00ED */ 52,
 	/* U+0069+0302 -> U+00EE */ 53,
@@ -2022,38 +2039,38 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+0069+0304 -> U+012B */ 106,
 	/* U+0069+0306 -> U+012D */ 108,
 	/* U+0069+0308 -> U+00EF */ 54,
-	/* U+0069+0309 -> U+1EC9 */ 1351,
+	/* U+0069+0309 -> U+1EC9 */ 1352,
 	/* U+0069+030C -> U+01D0 */ 197,
 	/* U+0069+030F -> U+0209 */ 249,
 	/* U+0069+0311 -> U+020B */ 251,
-	/* U+0069+0323 -> U+1ECB */ 1353,
+	/* U+0069+0323 -> U+1ECB */ 1354,
 	/* U+0069+0328 -> U+012F */ 110,
-	/* U+0069+0330 -> U+1E2D */ 1199,
+	/* U+0069+0330 -> U+1E2D */ 1200,
 	/* U+006A+0302 -> U+0135 */ 115,
 	/* U+006A+030C -> U+01F0 */ 226,
-	/* U+006B+0301 -> U+1E31 */ 1203,
+	/* U+006B+0301 -> U+1E31 */ 1204,
 	/* U+006B+030C -> U+01E9 */ 219,
-	/* U+006B+0323 -> U+1E33 */ 1205,
+	/* U+006B+0323 -> U+1E33 */ 1206,
 	/* U+006B+0327 -> U+0137 */ 117,
-	/* U+006B+0331 -> U+1E35 */ 1207,
+	/* U+006B+0331 -> U+1E35 */ 1208,
 	/* U+006C+0301 -> U+013A */ 119,
 	/* U+006C+030C -> U+013E */ 123,
-	/* U+006C+0323 -> U+1E37 */ 1209,
+	/* U+006C+0323 -> U+1E37 */ 1210,
 	/* U+006C+0327 -> U+013C */ 121,
-	/* U+006C+032D -> U+1E3D */ 1215,
-	/* U+006C+0331 -> U+1E3B */ 1213,
-	/* U+006D+0301 -> U+1E3F */ 1217,
-	/* U+006D+0307 -> U+1E41 */ 1219,
-	/* U+006D+0323 -> U+1E43 */ 1221,
+	/* U+006C+032D -> U+1E3D */ 1216,
+	/* U+006C+0331 -> U+1E3B */ 1214,
+	/* U+006D+0301 -> U+1E3F */ 1218,
+	/* U+006D+0307 -> U+1E41 */ 1220,
+	/* U+006D+0323 -> U+1E43 */ 1222,
 	/* U+006E+0300 -> U+01F9 */ 233,
 	/* U+006E+0301 -> U+0144 */ 127,
 	/* U+006E+0303 -> U+00F1 */ 55,
-	/* U+006E+0307 -> U+1E45 */ 1223,
+	/* U+006E+0307 -> U+1E45 */ 1224,
 	/* U+006E+030C -> U+0148 */ 131,
-	/* U+006E+0323 -> U+1E47 */ 1225,
+	/* U+006E+0323 -> U+1E47 */ 1226,
 	/* U+006E+0327 -> U+0146 */ 129,
-	/* U+006E+032D -> U+1E4B */ 1229,
-	/* U+006E+0331 -> U+1E49 */ 1227,
+	/* U+006E+032D -> U+1E4B */ 1230,
+	/* U+006E+0331 -> U+1E49 */ 1228,
 	/* U+006F+0300 -> U+00F2 */ 56,
 	/* U+006F+0301 -> U+00F3 */ 57,
 	/* U+006F+0302 -> U+00F4 */ 58,
@@ -2062,39 +2079,39 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+006F+0306 -> U+014F */ 136,
 	/* U+006F+0307 -> U+022F */ 279,
 	/* U+006F+0308 -> U+00F6 */ 60,
-	/* U+006F+0309 -> U+1ECF */ 1357,
+	/* U+006F+0309 -> U+1ECF */ 1358,
 	/* U+006F+030B -> U+0151 */ 138,
 	/* U+006F+030C -> U+01D2 */ 199,
 	/* U+006F+030F -> U+020D */ 253,
 	/* U+006F+0311 -> U+020F */ 255,
 	/* U+006F+031B -> U+01A1 */ 182,
-	/* U+006F+0323 -> U+1ECD */ 1355,
+	/* U+006F+0323 -> U+1ECD */ 1356,
 	/* U+006F+0328 -> U+01EB */ 221,
-	/* U+0070+0301 -> U+1E55 */ 1239,
-	/* U+0070+0307 -> U+1E57 */ 1241,
+	/* U+0070+0301 -> U+1E55 */ 1240,
+	/* U+0070+0307 -> U+1E57 */ 1242,
 	/* U+0072+0301 -> U+0155 */ 140,
-	/* U+0072+0307 -> U+1E59 */ 1243,
+	/* U+0072+0307 -> U+1E59 */ 1244,
 	/* U+0072+030C -> U+0159 */ 144,
 	/* U+0072+030F -> U+0211 */ 257,
 	/* U+0072+0311 -> U+0213 */ 259,
-	/* U+0072+0323 -> U+1E5B */ 1245,
+	/* U+0072+0323 -> U+1E5B */ 1246,
 	/* U+0072+0327 -> U+0157 */ 142,
-	/* U+0072+0331 -> U+1E5F */ 1249,
+	/* U+0072+0331 -> U+1E5F */ 1250,
 	/* U+0073+0301 -> U+015B */ 146,
 	/* U+0073+0302 -> U+015D */ 148,
-	/* U+0073+0307 -> U+1E61 */ 1251,
+	/* U+0073+0307 -> U+1E61 */ 1252,
 	/* U+0073+030C -> U+0161 */ 152,
-	/* U+0073+0323 -> U+1E63 */ 1253,
+	/* U+0073+0323 -> U+1E63 */ 1254,
 	/* U+0073+0326 -> U+0219 */ 265,
 	/* U+0073+0327 -> U+015F */ 150,
-	/* U+0074+0307 -> U+1E6B */ 1261,
-	/* U+0074+0308 -> U+1E97 */ 1305,
+	/* U+0074+0307 -> U+1E6B */ 1262,
+	/* U+0074+0308 -> U+1E97 */ 1306,
 	/* U+0074+030C -> U+0165 */ 156,
-	/* U+0074+0323 -> U+1E6D */ 1263,
+	/* U+0074+0323 -> U+1E6D */ 1264,
 	/* U+0074+0326 -> U+021B */ 267,
 	/* U+0074+0327 -> U+0163 */ 154,
-	/* U+0074+032D -> U+1E71 */ 1267,
-	/* U+0074+0331 -> U+1E6F */ 1265,
+	/* U+0074+032D -> U+1E71 */ 1268,
+	/* U+0074+0331 -> U+1E6F */ 1266,
 	/* U+0075+0300 -> U+00F9 */ 61,
 	/* U+0075+0301 -> U+00FA */ 62,
 	/* U+0075+0302 -> U+00FB */ 63,
@@ -2102,251 +2119,251 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+0075+0304 -> U+016B */ 160,
 	/* U+0075+0306 -> U+016D */ 162,
 	/* U+0075+0308 -> U+00FC */ 64,
-	/* U+0075+0309 -> U+1EE7 */ 1381,
+	/* U+0075+0309 -> U+1EE7 */ 1382,
 	/* U+0075+030A -> U+016F */ 164,
 	/* U+0075+030B -> U+0171 */ 166,
 	/* U+0075+030C -> U+01D4 */ 201,
 	/* U+0075+030F -> U+0215 */ 261,
 	/* U+0075+0311 -> U+0217 */ 263,
 	/* U+0075+031B -> U+01B0 */ 184,
-	/* U+0075+0323 -> U+1EE5 */ 1379,
-	/* U+0075+0324 -> U+1E73 */ 1269,
+	/* U+0075+0323 -> U+1EE5 */ 1380,
+	/* U+0075+0324 -> U+1E73 */ 1270,
 	/* U+0075+0328 -> U+0173 */ 168,
-	/* U+0075+032D -> U+1E77 */ 1273,
-	/* U+0075+0330 -> U+1E75 */ 1271,
-	/* U+0076+0303 -> U+1E7D */ 1279,
-	/* U+0076+0323 -> U+1E7F */ 1281,
-	/* U+0077+0300 -> U+1E81 */ 1283,
-	/* U+0077+0301 -> U+1E83 */ 1285,
+	/* U+0075+032D -> U+1E77 */ 1274,
+	/* U+0075+0330 -> U+1E75 */ 1272,
+	/* U+0076+0303 -> U+1E7D */ 1280,
+	/* U+0076+0323 -> U+1E7F */ 1282,
+	/* U+0077+0300 -> U+1E81 */ 1284,
+	/* U+0077+0301 -> U+1E83 */ 1286,
 	/* U+0077+0302 -> U+0175 */ 170,
-	/* U+0077+0307 -> U+1E87 */ 1289,
-	/* U+0077+0308 -> U+1E85 */ 1287,
-	/* U+0077+030A -> U+1E98 */ 1306,
-	/* U+0077+0323 -> U+1E89 */ 1291,
-	/* U+0078+0307 -> U+1E8B */ 1293,
-	/* U+0078+0308 -> U+1E8D */ 1295,
-	/* U+0079+0300 -> U+1EF3 */ 1393,
+	/* U+0077+0307 -> U+1E87 */ 1290,
+	/* U+0077+0308 -> U+1E85 */ 1288,
+	/* U+0077+030A -> U+1E98 */ 1307,
+	/* U+0077+0323 -> U+1E89 */ 1292,
+	/* U+0078+0307 -> U+1E8B */ 1294,
+	/* U+0078+0308 -> U+1E8D */ 1296,
+	/* U+0079+0300 -> U+1EF3 */ 1394,
 	/* U+0079+0301 -> U+00FD */ 65,
 	/* U+0079+0302 -> U+0177 */ 172,
-	/* U+0079+0303 -> U+1EF9 */ 1399,
+	/* U+0079+0303 -> U+1EF9 */ 1400,
 	/* U+0079+0304 -> U+0233 */ 283,
-	/* U+0079+0307 -> U+1E8F */ 1297,
+	/* U+0079+0307 -> U+1E8F */ 1298,
 	/* U+0079+0308 -> U+00FF */ 66,
-	/* U+0079+0309 -> U+1EF7 */ 1397,
-	/* U+0079+030A -> U+1E99 */ 1307,
-	/* U+0079+0323 -> U+1EF5 */ 1395,
+	/* U+0079+0309 -> U+1EF7 */ 1398,
+	/* U+0079+030A -> U+1E99 */ 1308,
+	/* U+0079+0323 -> U+1EF5 */ 1396,
 	/* U+007A+0301 -> U+017A */ 175,
-	/* U+007A+0302 -> U+1E91 */ 1299,
+	/* U+007A+0302 -> U+1E91 */ 1300,
 	/* U+007A+0307 -> U+017C */ 177,
 	/* U+007A+030C -> U+017E */ 179,
-	/* U+007A+0323 -> U+1E93 */ 1301,
-	/* U+007A+0331 -> U+1E95 */ 1303,
-	/* U+00A8+0300 -> U+1FED */ 1618,
+	/* U+007A+0323 -> U+1E93 */ 1302,
+	/* U+007A+0331 -> U+1E95 */ 1304,
+	/* U+00A8+0300 -> U+1FED */ 1619,
 	/* U+00A8+0301 -> U+0385 */ 419,
-	/* U+00A8+0342 -> U+1FC1 */ 1578,
-	/* U+00C2+0300 -> U+1EA6 */ 1316,
-	/* U+00C2+0301 -> U+1EA4 */ 1314,
-	/* U+00C2+0303 -> U+1EAA */ 1320,
-	/* U+00C2+0309 -> U+1EA8 */ 1318,
+	/* U+00A8+0342 -> U+1FC1 */ 1579,
+	/* U+00C2+0300 -> U+1EA6 */ 1317,
+	/* U+00C2+0301 -> U+1EA4 */ 1315,
+	/* U+00C2+0303 -> U+1EAA */ 1321,
+	/* U+00C2+0309 -> U+1EA8 */ 1319,
 	/* U+00C4+0304 -> U+01DE */ 210,
 	/* U+00C5+0301 -> U+01FA */ 234,
 	/* U+00C6+0301 -> U+01FC */ 236,
 	/* U+00C6+0304 -> U+01E2 */ 214,
-	/* U+00C7+0301 -> U+1E08 */ 1162,
-	/* U+00CA+0300 -> U+1EC0 */ 1342,
-	/* U+00CA+0301 -> U+1EBE */ 1340,
-	/* U+00CA+0303 -> U+1EC4 */ 1346,
-	/* U+00CA+0309 -> U+1EC2 */ 1344,
-	/* U+00CF+0301 -> U+1E2E */ 1200,
-	/* U+00D4+0300 -> U+1ED2 */ 1360,
-	/* U+00D4+0301 -> U+1ED0 */ 1358,
-	/* U+00D4+0303 -> U+1ED6 */ 1364,
-	/* U+00D4+0309 -> U+1ED4 */ 1362,
-	/* U+00D5+0301 -> U+1E4C */ 1230,
+	/* U+00C7+0301 -> U+1E08 */ 1163,
+	/* U+00CA+0300 -> U+1EC0 */ 1343,
+	/* U+00CA+0301 -> U+1EBE */ 1341,
+	/* U+00CA+0303 -> U+1EC4 */ 1347,
+	/* U+00CA+0309 -> U+1EC2 */ 1345,
+	/* U+00CF+0301 -> U+1E2E */ 1201,
+	/* U+00D4+0300 -> U+1ED2 */ 1361,
+	/* U+00D4+0301 -> U+1ED0 */ 1359,
+	/* U+00D4+0303 -> U+1ED6 */ 1365,
+	/* U+00D4+0309 -> U+1ED4 */ 1363,
+	/* U+00D5+0301 -> U+1E4C */ 1231,
 	/* U+00D5+0304 -> U+022C */ 276,
-	/* U+00D5+0308 -> U+1E4E */ 1232,
+	/* U+00D5+0308 -> U+1E4E */ 1233,
 	/* U+00D6+0304 -> U+022A */ 274,
 	/* U+00D8+0301 -> U+01FE */ 238,
 	/* U+00DC+0300 -> U+01DB */ 208,
 	/* U+00DC+0301 -> U+01D7 */ 204,
 	/* U+00DC+0304 -> U+01D5 */ 202,
 	/* U+00DC+030C -> U+01D9 */ 206,
-	/* U+00E2+0300 -> U+1EA7 */ 1317,
-	/* U+00E2+0301 -> U+1EA5 */ 1315,
-	/* U+00E2+0303 -> U+1EAB */ 1321,
-	/* U+00E2+0309 -> U+1EA9 */ 1319,
+	/* U+00E2+0300 -> U+1EA7 */ 1318,
+	/* U+00E2+0301 -> U+1EA5 */ 1316,
+	/* U+00E2+0303 -> U+1EAB */ 1322,
+	/* U+00E2+0309 -> U+1EA9 */ 1320,
 	/* U+00E4+0304 -> U+01DF */ 211,
 	/* U+00E5+0301 -> U+01FB */ 235,
 	/* U+00E6+0301 -> U+01FD */ 237,
 	/* U+00E6+0304 -> U+01E3 */ 215,
-	/* U+00E7+0301 -> U+1E09 */ 1163,
-	/* U+00EA+0300 -> U+1EC1 */ 1343,
-	/* U+00EA+0301 -> U+1EBF */ 1341,
-	/* U+00EA+0303 -> U+1EC5 */ 1347,
-	/* U+00EA+0309 -> U+1EC3 */ 1345,
-	/* U+00EF+0301 -> U+1E2F */ 1201,
-	/* U+00F4+0300 -> U+1ED3 */ 1361,
-	/* U+00F4+0301 -> U+1ED1 */ 1359,
-	/* U+00F4+0303 -> U+1ED7 */ 1365,
-	/* U+00F4+0309 -> U+1ED5 */ 1363,
-	/* U+00F5+0301 -> U+1E4D */ 1231,
+	/* U+00E7+0301 -> U+1E09 */ 1164,
+	/* U+00EA+0300 -> U+1EC1 */ 1344,
+	/* U+00EA+0301 -> U+1EBF */ 1342,
+	/* U+00EA+0303 -> U+1EC5 */ 1348,
+	/* U+00EA+0309 -> U+1EC3 */ 1346,
+	/* U+00EF+0301 -> U+1E2F */ 1202,
+	/* U+00F4+0300 -> U+1ED3 */ 1362,
+	/* U+00F4+0301 -> U+1ED1 */ 1360,
+	/* U+00F4+0303 -> U+1ED7 */ 1366,
+	/* U+00F4+0309 -> U+1ED5 */ 1364,
+	/* U+00F5+0301 -> U+1E4D */ 1232,
 	/* U+00F5+0304 -> U+022D */ 277,
-	/* U+00F5+0308 -> U+1E4F */ 1233,
+	/* U+00F5+0308 -> U+1E4F */ 1234,
 	/* U+00F6+0304 -> U+022B */ 275,
 	/* U+00F8+0301 -> U+01FF */ 239,
 	/* U+00FC+0300 -> U+01DC */ 209,
 	/* U+00FC+0301 -> U+01D8 */ 205,
 	/* U+00FC+0304 -> U+01D6 */ 203,
 	/* U+00FC+030C -> U+01DA */ 207,
-	/* U+0102+0300 -> U+1EB0 */ 1326,
-	/* U+0102+0301 -> U+1EAE */ 1324,
-	/* U+0102+0303 -> U+1EB4 */ 1330,
-	/* U+0102+0309 -> U+1EB2 */ 1328,
-	/* U+0103+0300 -> U+1EB1 */ 1327,
-	/* U+0103+0301 -> U+1EAF */ 1325,
-	/* U+0103+0303 -> U+1EB5 */ 1331,
-	/* U+0103+0309 -> U+1EB3 */ 1329,
-	/* U+0112+0300 -> U+1E14 */ 1174,
-	/* U+0112+0301 -> U+1E16 */ 1176,
-	/* U+0113+0300 -> U+1E15 */ 1175,
-	/* U+0113+0301 -> U+1E17 */ 1177,
-	/* U+014C+0300 -> U+1E50 */ 1234,
-	/* U+014C+0301 -> U+1E52 */ 1236,
-	/* U+014D+0300 -> U+1E51 */ 1235,
-	/* U+014D+0301 -> U+1E53 */ 1237,
-	/* U+015A+0307 -> U+1E64 */ 1254,
-	/* U+015B+0307 -> U+1E65 */ 1255,
-	/* U+0160+0307 -> U+1E66 */ 1256,
-	/* U+0161+0307 -> U+1E67 */ 1257,
-	/* U+0168+0301 -> U+1E78 */ 1274,
-	/* U+0169+0301 -> U+1E79 */ 1275,
-	/* U+016A+0308 -> U+1E7A */ 1276,
-	/* U+016B+0308 -> U+1E7B */ 1277,
-	/* U+017F+0307 -> U+1E9B */ 1309,
-	/* U+01A0+0300 -> U+1EDC */ 1370,
-	/* U+01A0+0301 -> U+1EDA */ 1368,
-	/* U+01A0+0303 -> U+1EE0 */ 1374,
-	/* U+01A0+0309 -> U+1EDE */ 1372,
-	/* U+01A0+0323 -> U+1EE2 */ 1376,
-	/* U+01A1+0300 -> U+1EDD */ 1371,
-	/* U+01A1+0301 -> U+1EDB */ 1369,
-	/* U+01A1+0303 -> U+1EE1 */ 1375,
-	/* U+01A1+0309 -> U+1EDF */ 1373,
-	/* U+01A1+0323 -> U+1EE3 */ 1377,
-	/* U+01AF+0300 -> U+1EEA */ 1384,
-	/* U+01AF+0301 -> U+1EE8 */ 1382,
-	/* U+01AF+0303 -> U+1EEE */ 1388,
-	/* U+01AF+0309 -> U+1EEC */ 1386,
-	/* U+01AF+0323 -> U+1EF0 */ 1390,
-	/* U+01B0+0300 -> U+1EEB */ 1385,
-	/* U+01B0+0301 -> U+1EE9 */ 1383,
-	/* U+01B0+0303 -> U+1EEF */ 1389,
-	/* U+01B0+0309 -> U+1EED */ 1387,
-	/* U+01B0+0323 -> U+1EF1 */ 1391,
+	/* U+0102+0300 -> U+1EB0 */ 1327,
+	/* U+0102+0301 -> U+1EAE */ 1325,
+	/* U+0102+0303 -> U+1EB4 */ 1331,
+	/* U+0102+0309 -> U+1EB2 */ 1329,
+	/* U+0103+0300 -> U+1EB1 */ 1328,
+	/* U+0103+0301 -> U+1EAF */ 1326,
+	/* U+0103+0303 -> U+1EB5 */ 1332,
+	/* U+0103+0309 -> U+1EB3 */ 1330,
+	/* U+0112+0300 -> U+1E14 */ 1175,
+	/* U+0112+0301 -> U+1E16 */ 1177,
+	/* U+0113+0300 -> U+1E15 */ 1176,
+	/* U+0113+0301 -> U+1E17 */ 1178,
+	/* U+014C+0300 -> U+1E50 */ 1235,
+	/* U+014C+0301 -> U+1E52 */ 1237,
+	/* U+014D+0300 -> U+1E51 */ 1236,
+	/* U+014D+0301 -> U+1E53 */ 1238,
+	/* U+015A+0307 -> U+1E64 */ 1255,
+	/* U+015B+0307 -> U+1E65 */ 1256,
+	/* U+0160+0307 -> U+1E66 */ 1257,
+	/* U+0161+0307 -> U+1E67 */ 1258,
+	/* U+0168+0301 -> U+1E78 */ 1275,
+	/* U+0169+0301 -> U+1E79 */ 1276,
+	/* U+016A+0308 -> U+1E7A */ 1277,
+	/* U+016B+0308 -> U+1E7B */ 1278,
+	/* U+017F+0307 -> U+1E9B */ 1310,
+	/* U+01A0+0300 -> U+1EDC */ 1371,
+	/* U+01A0+0301 -> U+1EDA */ 1369,
+	/* U+01A0+0303 -> U+1EE0 */ 1375,
+	/* U+01A0+0309 -> U+1EDE */ 1373,
+	/* U+01A0+0323 -> U+1EE2 */ 1377,
+	/* U+01A1+0300 -> U+1EDD */ 1372,
+	/* U+01A1+0301 -> U+1EDB */ 1370,
+	/* U+01A1+0303 -> U+1EE1 */ 1376,
+	/* U+01A1+0309 -> U+1EDF */ 1374,
+	/* U+01A1+0323 -> U+1EE3 */ 1378,
+	/* U+01AF+0300 -> U+1EEA */ 1385,
+	/* U+01AF+0301 -> U+1EE8 */ 1383,
+	/* U+01AF+0303 -> U+1EEE */ 1389,
+	/* U+01AF+0309 -> U+1EEC */ 1387,
+	/* U+01AF+0323 -> U+1EF0 */ 1391,
+	/* U+01B0+0300 -> U+1EEB */ 1386,
+	/* U+01B0+0301 -> U+1EE9 */ 1384,
+	/* U+01B0+0303 -> U+1EEF */ 1390,
+	/* U+01B0+0309 -> U+1EED */ 1388,
+	/* U+01B0+0323 -> U+1EF1 */ 1392,
 	/* U+01B7+030C -> U+01EE */ 224,
 	/* U+01EA+0304 -> U+01EC */ 222,
 	/* U+01EB+0304 -> U+01ED */ 223,
 	/* U+0226+0304 -> U+01E0 */ 212,
 	/* U+0227+0304 -> U+01E1 */ 213,
-	/* U+0228+0306 -> U+1E1C */ 1182,
-	/* U+0229+0306 -> U+1E1D */ 1183,
+	/* U+0228+0306 -> U+1E1C */ 1183,
+	/* U+0229+0306 -> U+1E1D */ 1184,
 	/* U+022E+0304 -> U+0230 */ 280,
 	/* U+022F+0304 -> U+0231 */ 281,
 	/* U+0292+030C -> U+01EF */ 225,
-	/* U+0391+0300 -> U+1FBA */ 1571,
+	/* U+0391+0300 -> U+1FBA */ 1572,
 	/* U+0391+0301 -> U+0386 */ 420,
-	/* U+0391+0304 -> U+1FB9 */ 1570,
-	/* U+0391+0306 -> U+1FB8 */ 1569,
-	/* U+0391+0313 -> U+1F08 */ 1408,
-	/* U+0391+0314 -> U+1F09 */ 1409,
-	/* U+0391+0345 -> U+1FBC */ 1573,
-	/* U+0395+0300 -> U+1FC8 */ 1584,
+	/* U+0391+0304 -> U+1FB9 */ 1571,
+	/* U+0391+0306 -> U+1FB8 */ 1570,
+	/* U+0391+0313 -> U+1F08 */ 1409,
+	/* U+0391+0314 -> U+1F09 */ 1410,
+	/* U+0391+0345 -> U+1FBC */ 1574,
+	/* U+0395+0300 -> U+1FC8 */ 1585,
 	/* U+0395+0301 -> U+0388 */ 422,
-	/* U+0395+0313 -> U+1F18 */ 1422,
-	/* U+0395+0314 -> U+1F19 */ 1423,
-	/* U+0397+0300 -> U+1FCA */ 1586,
+	/* U+0395+0313 -> U+1F18 */ 1423,
+	/* U+0395+0314 -> U+1F19 */ 1424,
+	/* U+0397+0300 -> U+1FCA */ 1587,
 	/* U+0397+0301 -> U+0389 */ 423,
-	/* U+0397+0313 -> U+1F28 */ 1436,
-	/* U+0397+0314 -> U+1F29 */ 1437,
-	/* U+0397+0345 -> U+1FCC */ 1588,
-	/* U+0399+0300 -> U+1FDA */ 1600,
+	/* U+0397+0313 -> U+1F28 */ 1437,
+	/* U+0397+0314 -> U+1F29 */ 1438,
+	/* U+0397+0345 -> U+1FCC */ 1589,
+	/* U+0399+0300 -> U+1FDA */ 1601,
 	/* U+0399+0301 -> U+038A */ 424,
-	/* U+0399+0304 -> U+1FD9 */ 1599,
-	/* U+0399+0306 -> U+1FD8 */ 1598,
+	/* U+0399+0304 -> U+1FD9 */ 1600,
+	/* U+0399+0306 -> U+1FD8 */ 1599,
 	/* U+0399+0308 -> U+03AA */ 429,
-	/* U+0399+0313 -> U+1F38 */ 1452,
-	/* U+0399+0314 -> U+1F39 */ 1453,
-	/* U+039F+0300 -> U+1FF8 */ 1626,
+	/* U+0399+0313 -> U+1F38 */ 1453,
+	/* U+0399+0314 -> U+1F39 */ 1454,
+	/* U+039F+0300 -> U+1FF8 */ 1627,
 	/* U+039F+0301 -> U+038C */ 425,
-	/* U+039F+0313 -> U+1F48 */ 1466,
-	/* U+039F+0314 -> U+1F49 */ 1467,
-	/* U+03A1+0314 -> U+1FEC */ 1617,
-	/* U+03A5+0300 -> U+1FEA */ 1615,
+	/* U+039F+0313 -> U+1F48 */ 1467,
+	/* U+039F+0314 -> U+1F49 */ 1468,
+	/* U+03A1+0314 -> U+1FEC */ 1618,
+	/* U+03A5+0300 -> U+1FEA */ 1616,
 	/* U+03A5+0301 -> U+038E */ 426,
-	/* U+03A5+0304 -> U+1FE9 */ 1614,
-	/* U+03A5+0306 -> U+1FE8 */ 1613,
+	/* U+03A5+0304 -> U+1FE9 */ 1615,
+	/* U+03A5+0306 -> U+1FE8 */ 1614,
 	/* U+03A5+0308 -> U+03AB */ 430,
-	/* U+03A5+0314 -> U+1F59 */ 1480,
-	/* U+03A9+0300 -> U+1FFA */ 1628,
+	/* U+03A5+0314 -> U+1F59 */ 1481,
+	/* U+03A9+0300 -> U+1FFA */ 1629,
 	/* U+03A9+0301 -> U+038F */ 427,
-	/* U+03A9+0313 -> U+1F68 */ 1492,
-	/* U+03A9+0314 -> U+1F69 */ 1493,
-	/* U+03A9+0345 -> U+1FFC */ 1630,
-	/* U+03AC+0345 -> U+1FB4 */ 1566,
-	/* U+03AE+0345 -> U+1FC4 */ 1581,
-	/* U+03B1+0300 -> U+1F70 */ 1500,
+	/* U+03A9+0313 -> U+1F68 */ 1493,
+	/* U+03A9+0314 -> U+1F69 */ 1494,
+	/* U+03A9+0345 -> U+1FFC */ 1631,
+	/* U+03AC+0345 -> U+1FB4 */ 1567,
+	/* U+03AE+0345 -> U+1FC4 */ 1582,
+	/* U+03B1+0300 -> U+1F70 */ 1501,
 	/* U+03B1+0301 -> U+03AC */ 431,
-	/* U+03B1+0304 -> U+1FB1 */ 1563,
-	/* U+03B1+0306 -> U+1FB0 */ 1562,
-	/* U+03B1+0313 -> U+1F00 */ 1400,
-	/* U+03B1+0314 -> U+1F01 */ 1401,
-	/* U+03B1+0342 -> U+1FB6 */ 1567,
-	/* U+03B1+0345 -> U+1FB3 */ 1565,
-	/* U+03B5+0300 -> U+1F72 */ 1502,
+	/* U+03B1+0304 -> U+1FB1 */ 1564,
+	/* U+03B1+0306 -> U+1FB0 */ 1563,
+	/* U+03B1+0313 -> U+1F00 */ 1401,
+	/* U+03B1+0314 -> U+1F01 */ 1402,
+	/* U+03B1+0342 -> U+1FB6 */ 1568,
+	/* U+03B1+0345 -> U+1FB3 */ 1566,
+	/* U+03B5+0300 -> U+1F72 */ 1503,
 	/* U+03B5+0301 -> U+03AD */ 432,
-	/* U+03B5+0313 -> U+1F10 */ 1416,
-	/* U+03B5+0314 -> U+1F11 */ 1417,
-	/* U+03B7+0300 -> U+1F74 */ 1504,
+	/* U+03B5+0313 -> U+1F10 */ 1417,
+	/* U+03B5+0314 -> U+1F11 */ 1418,
+	/* U+03B7+0300 -> U+1F74 */ 1505,
 	/* U+03B7+0301 -> U+03AE */ 433,
-	/* U+03B7+0313 -> U+1F20 */ 1428,
-	/* U+03B7+0314 -> U+1F21 */ 1429,
-	/* U+03B7+0342 -> U+1FC6 */ 1582,
-	/* U+03B7+0345 -> U+1FC3 */ 1580,
-	/* U+03B9+0300 -> U+1F76 */ 1506,
+	/* U+03B7+0313 -> U+1F20 */ 1429,
+	/* U+03B7+0314 -> U+1F21 */ 1430,
+	/* U+03B7+0342 -> U+1FC6 */ 1583,
+	/* U+03B7+0345 -> U+1FC3 */ 1581,
+	/* U+03B9+0300 -> U+1F76 */ 1507,
 	/* U+03B9+0301 -> U+03AF */ 434,
-	/* U+03B9+0304 -> U+1FD1 */ 1593,
-	/* U+03B9+0306 -> U+1FD0 */ 1592,
+	/* U+03B9+0304 -> U+1FD1 */ 1594,
+	/* U+03B9+0306 -> U+1FD0 */ 1593,
 	/* U+03B9+0308 -> U+03CA */ 436,
-	/* U+03B9+0313 -> U+1F30 */ 1444,
-	/* U+03B9+0314 -> U+1F31 */ 1445,
-	/* U+03B9+0342 -> U+1FD6 */ 1596,
-	/* U+03BF+0300 -> U+1F78 */ 1508,
+	/* U+03B9+0313 -> U+1F30 */ 1445,
+	/* U+03B9+0314 -> U+1F31 */ 1446,
+	/* U+03B9+0342 -> U+1FD6 */ 1597,
+	/* U+03BF+0300 -> U+1F78 */ 1509,
 	/* U+03BF+0301 -> U+03CC */ 438,
-	/* U+03BF+0313 -> U+1F40 */ 1460,
-	/* U+03BF+0314 -> U+1F41 */ 1461,
-	/* U+03C1+0313 -> U+1FE4 */ 1609,
-	/* U+03C1+0314 -> U+1FE5 */ 1610,
-	/* U+03C5+0300 -> U+1F7A */ 1510,
+	/* U+03BF+0313 -> U+1F40 */ 1461,
+	/* U+03BF+0314 -> U+1F41 */ 1462,
+	/* U+03C1+0313 -> U+1FE4 */ 1610,
+	/* U+03C1+0314 -> U+1FE5 */ 1611,
+	/* U+03C5+0300 -> U+1F7A */ 1511,
 	/* U+03C5+0301 -> U+03CD */ 439,
-	/* U+03C5+0304 -> U+1FE1 */ 1606,
-	/* U+03C5+0306 -> U+1FE0 */ 1605,
+	/* U+03C5+0304 -> U+1FE1 */ 1607,
+	/* U+03C5+0306 -> U+1FE0 */ 1606,
 	/* U+03C5+0308 -> U+03CB */ 437,
-	/* U+03C5+0313 -> U+1F50 */ 1472,
-	/* U+03C5+0314 -> U+1F51 */ 1473,
-	/* U+03C5+0342 -> U+1FE6 */ 1611,
-	/* U+03C9+0300 -> U+1F7C */ 1512,
+	/* U+03C5+0313 -> U+1F50 */ 1473,
+	/* U+03C5+0314 -> U+1F51 */ 1474,
+	/* U+03C5+0342 -> U+1FE6 */ 1612,
+	/* U+03C9+0300 -> U+1F7C */ 1513,
 	/* U+03C9+0301 -> U+03CE */ 440,
-	/* U+03C9+0313 -> U+1F60 */ 1484,
-	/* U+03C9+0314 -> U+1F61 */ 1485,
-	/* U+03C9+0342 -> U+1FF6 */ 1624,
-	/* U+03C9+0345 -> U+1FF3 */ 1622,
-	/* U+03CA+0300 -> U+1FD2 */ 1594,
+	/* U+03C9+0313 -> U+1F60 */ 1485,
+	/* U+03C9+0314 -> U+1F61 */ 1486,
+	/* U+03C9+0342 -> U+1FF6 */ 1625,
+	/* U+03C9+0345 -> U+1FF3 */ 1623,
+	/* U+03CA+0300 -> U+1FD2 */ 1595,
 	/* U+03CA+0301 -> U+0390 */ 428,
-	/* U+03CA+0342 -> U+1FD7 */ 1597,
-	/* U+03CB+0300 -> U+1FE2 */ 1607,
+	/* U+03CA+0342 -> U+1FD7 */ 1598,
+	/* U+03CB+0300 -> U+1FE2 */ 1608,
 	/* U+03CB+0301 -> U+03B0 */ 435,
-	/* U+03CB+0342 -> U+1FE7 */ 1612,
-	/* U+03CE+0345 -> U+1FF4 */ 1623,
+	/* U+03CB+0342 -> U+1FE7 */ 1613,
+	/* U+03CE+0345 -> U+1FF4 */ 1624,
 	/* U+03D2+0301 -> U+03D3 */ 444,
 	/* U+03D2+0308 -> U+03D4 */ 445,
 	/* U+0406+0308 -> U+0407 */ 457,
@@ -2409,545 +2426,570 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+06C1+0654 -> U+06C2 */ 606,
 	/* U+06D2+0654 -> U+06D3 */ 607,
 	/* U+06D5+0654 -> U+06C0 */ 605,
-	/* U+0928+093C -> U+0929 */ 750,
-	/* U+0930+093C -> U+0931 */ 751,
-	/* U+0933+093C -> U+0934 */ 752,
-	/* U+09C7+09BE -> U+09CB */ 768,
-	/* U+09C7+09D7 -> U+09CC */ 769,
-	/* U+0B47+0B3E -> U+0B4B */ 787,
-	/* U+0B47+0B56 -> U+0B48 */ 786,
-	/* U+0B47+0B57 -> U+0B4C */ 788,
-	/* U+0B92+0BD7 -> U+0B94 */ 792,
-	/* U+0BC6+0BBE -> U+0BCA */ 793,
-	/* U+0BC6+0BD7 -> U+0BCC */ 795,
-	/* U+0BC7+0BBE -> U+0BCB */ 794,
-	/* U+0C46+0C56 -> U+0C48 */ 798,
-	/* U+0CBF+0CD5 -> U+0CC0 */ 803,
-	/* U+0CC6+0CC2 -> U+0CCA */ 806,
-	/* U+0CC6+0CD5 -> U+0CC7 */ 804,
-	/* U+0CC6+0CD6 -> U+0CC8 */ 805,
-	/* U+0CCA+0CD5 -> U+0CCB */ 807,
-	/* U+0D46+0D3E -> U+0D4A */ 811,
-	/* U+0D46+0D57 -> U+0D4C */ 813,
-	/* U+0D47+0D3E -> U+0D4B */ 812,
-	/* U+0DD9+0DCA -> U+0DDA */ 816,
-	/* U+0DD9+0DCF -> U+0DDC */ 817,
-	/* U+0DD9+0DDF -> U+0DDE */ 819,
-	/* U+0DDC+0DCA -> U+0DDD */ 818,
-	/* U+1025+102E -> U+1026 */ 877,
-	/* U+1B05+1B35 -> U+1B06 */ 937,
-	/* U+1B07+1B35 -> U+1B08 */ 938,
-	/* U+1B09+1B35 -> U+1B0A */ 939,
-	/* U+1B0B+1B35 -> U+1B0C */ 940,
-	/* U+1B0D+1B35 -> U+1B0E */ 941,
-	/* U+1B11+1B35 -> U+1B12 */ 942,
-	/* U+1B3A+1B35 -> U+1B3B */ 944,
-	/* U+1B3C+1B35 -> U+1B3D */ 945,
-	/* U+1B3E+1B35 -> U+1B40 */ 946,
-	/* U+1B3F+1B35 -> U+1B41 */ 947,
-	/* U+1B42+1B35 -> U+1B43 */ 948,
-	/* U+1E36+0304 -> U+1E38 */ 1210,
-	/* U+1E37+0304 -> U+1E39 */ 1211,
-	/* U+1E5A+0304 -> U+1E5C */ 1246,
-	/* U+1E5B+0304 -> U+1E5D */ 1247,
-	/* U+1E62+0307 -> U+1E68 */ 1258,
-	/* U+1E63+0307 -> U+1E69 */ 1259,
-	/* U+1EA0+0302 -> U+1EAC */ 1322,
-	/* U+1EA0+0306 -> U+1EB6 */ 1332,
-	/* U+1EA1+0302 -> U+1EAD */ 1323,
-	/* U+1EA1+0306 -> U+1EB7 */ 1333,
-	/* U+1EB8+0302 -> U+1EC6 */ 1348,
-	/* U+1EB9+0302 -> U+1EC7 */ 1349,
-	/* U+1ECC+0302 -> U+1ED8 */ 1366,
-	/* U+1ECD+0302 -> U+1ED9 */ 1367,
-	/* U+1F00+0300 -> U+1F02 */ 1402,
-	/* U+1F00+0301 -> U+1F04 */ 1404,
-	/* U+1F00+0342 -> U+1F06 */ 1406,
-	/* U+1F00+0345 -> U+1F80 */ 1514,
-	/* U+1F01+0300 -> U+1F03 */ 1403,
-	/* U+1F01+0301 -> U+1F05 */ 1405,
-	/* U+1F01+0342 -> U+1F07 */ 1407,
-	/* U+1F01+0345 -> U+1F81 */ 1515,
-	/* U+1F02+0345 -> U+1F82 */ 1516,
-	/* U+1F03+0345 -> U+1F83 */ 1517,
-	/* U+1F04+0345 -> U+1F84 */ 1518,
-	/* U+1F05+0345 -> U+1F85 */ 1519,
-	/* U+1F06+0345 -> U+1F86 */ 1520,
-	/* U+1F07+0345 -> U+1F87 */ 1521,
-	/* U+1F08+0300 -> U+1F0A */ 1410,
-	/* U+1F08+0301 -> U+1F0C */ 1412,
-	/* U+1F08+0342 -> U+1F0E */ 1414,
-	/* U+1F08+0345 -> U+1F88 */ 1522,
-	/* U+1F09+0300 -> U+1F0B */ 1411,
-	/* U+1F09+0301 -> U+1F0D */ 1413,
-	/* U+1F09+0342 -> U+1F0F */ 1415,
-	/* U+1F09+0345 -> U+1F89 */ 1523,
-	/* U+1F0A+0345 -> U+1F8A */ 1524,
-	/* U+1F0B+0345 -> U+1F8B */ 1525,
-	/* U+1F0C+0345 -> U+1F8C */ 1526,
-	/* U+1F0D+0345 -> U+1F8D */ 1527,
-	/* U+1F0E+0345 -> U+1F8E */ 1528,
-	/* U+1F0F+0345 -> U+1F8F */ 1529,
-	/* U+1F10+0300 -> U+1F12 */ 1418,
-	/* U+1F10+0301 -> U+1F14 */ 1420,
-	/* U+1F11+0300 -> U+1F13 */ 1419,
-	/* U+1F11+0301 -> U+1F15 */ 1421,
-	/* U+1F18+0300 -> U+1F1A */ 1424,
-	/* U+1F18+0301 -> U+1F1C */ 1426,
-	/* U+1F19+0300 -> U+1F1B */ 1425,
-	/* U+1F19+0301 -> U+1F1D */ 1427,
-	/* U+1F20+0300 -> U+1F22 */ 1430,
-	/* U+1F20+0301 -> U+1F24 */ 1432,
-	/* U+1F20+0342 -> U+1F26 */ 1434,
-	/* U+1F20+0345 -> U+1F90 */ 1530,
-	/* U+1F21+0300 -> U+1F23 */ 1431,
-	/* U+1F21+0301 -> U+1F25 */ 1433,
-	/* U+1F21+0342 -> U+1F27 */ 1435,
-	/* U+1F21+0345 -> U+1F91 */ 1531,
-	/* U+1F22+0345 -> U+1F92 */ 1532,
-	/* U+1F23+0345 -> U+1F93 */ 1533,
-	/* U+1F24+0345 -> U+1F94 */ 1534,
-	/* U+1F25+0345 -> U+1F95 */ 1535,
-	/* U+1F26+0345 -> U+1F96 */ 1536,
-	/* U+1F27+0345 -> U+1F97 */ 1537,
-	/* U+1F28+0300 -> U+1F2A */ 1438,
-	/* U+1F28+0301 -> U+1F2C */ 1440,
-	/* U+1F28+0342 -> U+1F2E */ 1442,
-	/* U+1F28+0345 -> U+1F98 */ 1538,
-	/* U+1F29+0300 -> U+1F2B */ 1439,
-	/* U+1F29+0301 -> U+1F2D */ 1441,
-	/* U+1F29+0342 -> U+1F2F */ 1443,
-	/* U+1F29+0345 -> U+1F99 */ 1539,
-	/* U+1F2A+0345 -> U+1F9A */ 1540,
-	/* U+1F2B+0345 -> U+1F9B */ 1541,
-	/* U+1F2C+0345 -> U+1F9C */ 1542,
-	/* U+1F2D+0345 -> U+1F9D */ 1543,
-	/* U+1F2E+0345 -> U+1F9E */ 1544,
-	/* U+1F2F+0345 -> U+1F9F */ 1545,
-	/* U+1F30+0300 -> U+1F32 */ 1446,
-	/* U+1F30+0301 -> U+1F34 */ 1448,
-	/* U+1F30+0342 -> U+1F36 */ 1450,
-	/* U+1F31+0300 -> U+1F33 */ 1447,
-	/* U+1F31+0301 -> U+1F35 */ 1449,
-	/* U+1F31+0342 -> U+1F37 */ 1451,
-	/* U+1F38+0300 -> U+1F3A */ 1454,
-	/* U+1F38+0301 -> U+1F3C */ 1456,
-	/* U+1F38+0342 -> U+1F3E */ 1458,
-	/* U+1F39+0300 -> U+1F3B */ 1455,
-	/* U+1F39+0301 -> U+1F3D */ 1457,
-	/* U+1F39+0342 -> U+1F3F */ 1459,
-	/* U+1F40+0300 -> U+1F42 */ 1462,
-	/* U+1F40+0301 -> U+1F44 */ 1464,
-	/* U+1F41+0300 -> U+1F43 */ 1463,
-	/* U+1F41+0301 -> U+1F45 */ 1465,
-	/* U+1F48+0300 -> U+1F4A */ 1468,
-	/* U+1F48+0301 -> U+1F4C */ 1470,
-	/* U+1F49+0300 -> U+1F4B */ 1469,
-	/* U+1F49+0301 -> U+1F4D */ 1471,
-	/* U+1F50+0300 -> U+1F52 */ 1474,
-	/* U+1F50+0301 -> U+1F54 */ 1476,
-	/* U+1F50+0342 -> U+1F56 */ 1478,
-	/* U+1F51+0300 -> U+1F53 */ 1475,
-	/* U+1F51+0301 -> U+1F55 */ 1477,
-	/* U+1F51+0342 -> U+1F57 */ 1479,
-	/* U+1F59+0300 -> U+1F5B */ 1481,
-	/* U+1F59+0301 -> U+1F5D */ 1482,
-	/* U+1F59+0342 -> U+1F5F */ 1483,
-	/* U+1F60+0300 -> U+1F62 */ 1486,
-	/* U+1F60+0301 -> U+1F64 */ 1488,
-	/* U+1F60+0342 -> U+1F66 */ 1490,
-	/* U+1F60+0345 -> U+1FA0 */ 1546,
-	/* U+1F61+0300 -> U+1F63 */ 1487,
-	/* U+1F61+0301 -> U+1F65 */ 1489,
-	/* U+1F61+0342 -> U+1F67 */ 1491,
-	/* U+1F61+0345 -> U+1FA1 */ 1547,
-	/* U+1F62+0345 -> U+1FA2 */ 1548,
-	/* U+1F63+0345 -> U+1FA3 */ 1549,
-	/* U+1F64+0345 -> U+1FA4 */ 1550,
-	/* U+1F65+0345 -> U+1FA5 */ 1551,
-	/* U+1F66+0345 -> U+1FA6 */ 1552,
-	/* U+1F67+0345 -> U+1FA7 */ 1553,
-	/* U+1F68+0300 -> U+1F6A */ 1494,
-	/* U+1F68+0301 -> U+1F6C */ 1496,
-	/* U+1F68+0342 -> U+1F6E */ 1498,
-	/* U+1F68+0345 -> U+1FA8 */ 1554,
-	/* U+1F69+0300 -> U+1F6B */ 1495,
-	/* U+1F69+0301 -> U+1F6D */ 1497,
-	/* U+1F69+0342 -> U+1F6F */ 1499,
-	/* U+1F69+0345 -> U+1FA9 */ 1555,
-	/* U+1F6A+0345 -> U+1FAA */ 1556,
-	/* U+1F6B+0345 -> U+1FAB */ 1557,
-	/* U+1F6C+0345 -> U+1FAC */ 1558,
-	/* U+1F6D+0345 -> U+1FAD */ 1559,
-	/* U+1F6E+0345 -> U+1FAE */ 1560,
-	/* U+1F6F+0345 -> U+1FAF */ 1561,
-	/* U+1F70+0345 -> U+1FB2 */ 1564,
-	/* U+1F74+0345 -> U+1FC2 */ 1579,
-	/* U+1F7C+0345 -> U+1FF2 */ 1621,
-	/* U+1FB6+0345 -> U+1FB7 */ 1568,
-	/* U+1FBF+0300 -> U+1FCD */ 1589,
-	/* U+1FBF+0301 -> U+1FCE */ 1590,
-	/* U+1FBF+0342 -> U+1FCF */ 1591,
-	/* U+1FC6+0345 -> U+1FC7 */ 1583,
-	/* U+1FF6+0345 -> U+1FF7 */ 1625,
-	/* U+1FFE+0300 -> U+1FDD */ 1602,
-	/* U+1FFE+0301 -> U+1FDE */ 1603,
-	/* U+1FFE+0342 -> U+1FDF */ 1604,
-	/* U+2190+0338 -> U+219A */ 1835,
-	/* U+2192+0338 -> U+219B */ 1836,
-	/* U+2194+0338 -> U+21AE */ 1837,
-	/* U+21D0+0338 -> U+21CD */ 1838,
-	/* U+21D2+0338 -> U+21CF */ 1840,
-	/* U+21D4+0338 -> U+21CE */ 1839,
-	/* U+2203+0338 -> U+2204 */ 1841,
-	/* U+2208+0338 -> U+2209 */ 1842,
-	/* U+220B+0338 -> U+220C */ 1843,
-	/* U+2223+0338 -> U+2224 */ 1844,
-	/* U+2225+0338 -> U+2226 */ 1845,
-	/* U+223C+0338 -> U+2241 */ 1850,
-	/* U+2243+0338 -> U+2244 */ 1851,
-	/* U+2245+0338 -> U+2247 */ 1852,
-	/* U+2248+0338 -> U+2249 */ 1853,
-	/* U+224D+0338 -> U+226D */ 1856,
-	/* U+2261+0338 -> U+2262 */ 1855,
-	/* U+2264+0338 -> U+2270 */ 1859,
-	/* U+2265+0338 -> U+2271 */ 1860,
-	/* U+2272+0338 -> U+2274 */ 1861,
-	/* U+2273+0338 -> U+2275 */ 1862,
-	/* U+2276+0338 -> U+2278 */ 1863,
-	/* U+2277+0338 -> U+2279 */ 1864,
-	/* U+227A+0338 -> U+2280 */ 1865,
-	/* U+227B+0338 -> U+2281 */ 1866,
-	/* U+227C+0338 -> U+22E0 */ 1875,
-	/* U+227D+0338 -> U+22E1 */ 1876,
-	/* U+2282+0338 -> U+2284 */ 1867,
-	/* U+2283+0338 -> U+2285 */ 1868,
-	/* U+2286+0338 -> U+2288 */ 1869,
-	/* U+2287+0338 -> U+2289 */ 1870,
-	/* U+2291+0338 -> U+22E2 */ 1877,
-	/* U+2292+0338 -> U+22E3 */ 1878,
-	/* U+22A2+0338 -> U+22AC */ 1871,
-	/* U+22A8+0338 -> U+22AD */ 1872,
-	/* U+22A9+0338 -> U+22AE */ 1873,
-	/* U+22AB+0338 -> U+22AF */ 1874,
-	/* U+22B2+0338 -> U+22EA */ 1879,
-	/* U+22B3+0338 -> U+22EB */ 1880,
-	/* U+22B4+0338 -> U+22EC */ 1881,
-	/* U+22B5+0338 -> U+22ED */ 1882,
-	/* U+3046+3099 -> U+3094 */ 2320,
-	/* U+304B+3099 -> U+304C */ 2295,
-	/* U+304D+3099 -> U+304E */ 2296,
-	/* U+304F+3099 -> U+3050 */ 2297,
-	/* U+3051+3099 -> U+3052 */ 2298,
-	/* U+3053+3099 -> U+3054 */ 2299,
-	/* U+3055+3099 -> U+3056 */ 2300,
-	/* U+3057+3099 -> U+3058 */ 2301,
-	/* U+3059+3099 -> U+305A */ 2302,
-	/* U+305B+3099 -> U+305C */ 2303,
-	/* U+305D+3099 -> U+305E */ 2304,
-	/* U+305F+3099 -> U+3060 */ 2305,
-	/* U+3061+3099 -> U+3062 */ 2306,
-	/* U+3064+3099 -> U+3065 */ 2307,
-	/* U+3066+3099 -> U+3067 */ 2308,
-	/* U+3068+3099 -> U+3069 */ 2309,
-	/* U+306F+3099 -> U+3070 */ 2310,
-	/* U+306F+309A -> U+3071 */ 2311,
-	/* U+3072+3099 -> U+3073 */ 2312,
-	/* U+3072+309A -> U+3074 */ 2313,
-	/* U+3075+3099 -> U+3076 */ 2314,
-	/* U+3075+309A -> U+3077 */ 2315,
-	/* U+3078+3099 -> U+3079 */ 2316,
-	/* U+3078+309A -> U+307A */ 2317,
-	/* U+307B+3099 -> U+307C */ 2318,
-	/* U+307B+309A -> U+307D */ 2319,
-	/* U+309D+3099 -> U+309E */ 2325,
-	/* U+30A6+3099 -> U+30F4 */ 2352,
-	/* U+30AB+3099 -> U+30AC */ 2327,
-	/* U+30AD+3099 -> U+30AE */ 2328,
-	/* U+30AF+3099 -> U+30B0 */ 2329,
-	/* U+30B1+3099 -> U+30B2 */ 2330,
-	/* U+30B3+3099 -> U+30B4 */ 2331,
-	/* U+30B5+3099 -> U+30B6 */ 2332,
-	/* U+30B7+3099 -> U+30B8 */ 2333,
-	/* U+30B9+3099 -> U+30BA */ 2334,
-	/* U+30BB+3099 -> U+30BC */ 2335,
-	/* U+30BD+3099 -> U+30BE */ 2336,
-	/* U+30BF+3099 -> U+30C0 */ 2337,
-	/* U+30C1+3099 -> U+30C2 */ 2338,
-	/* U+30C4+3099 -> U+30C5 */ 2339,
-	/* U+30C6+3099 -> U+30C7 */ 2340,
-	/* U+30C8+3099 -> U+30C9 */ 2341,
-	/* U+30CF+3099 -> U+30D0 */ 2342,
-	/* U+30CF+309A -> U+30D1 */ 2343,
-	/* U+30D2+3099 -> U+30D3 */ 2344,
-	/* U+30D2+309A -> U+30D4 */ 2345,
-	/* U+30D5+3099 -> U+30D6 */ 2346,
-	/* U+30D5+309A -> U+30D7 */ 2347,
-	/* U+30D8+3099 -> U+30D9 */ 2348,
-	/* U+30D8+309A -> U+30DA */ 2349,
-	/* U+30DB+3099 -> U+30DC */ 2350,
-	/* U+30DB+309A -> U+30DD */ 2351,
-	/* U+30EF+3099 -> U+30F7 */ 2353,
-	/* U+30F0+3099 -> U+30F8 */ 2354,
-	/* U+30F1+3099 -> U+30F9 */ 2355,
-	/* U+30F2+3099 -> U+30FA */ 2356,
-	/* U+30FD+3099 -> U+30FE */ 2357,
-	/* U+11099+110BA -> U+1109A */ 4689,
-	/* U+1109B+110BA -> U+1109C */ 4690,
-	/* U+110A5+110BA -> U+110AB */ 4691,
-	/* U+11131+11127 -> U+1112E */ 4697,
-	/* U+11132+11127 -> U+1112F */ 4698,
-	/* U+11347+1133E -> U+1134B */ 4710,
-	/* U+11347+11357 -> U+1134C */ 4711,
-	/* U+114B9+114B0 -> U+114BC */ 4729,
-	/* U+114B9+114BA -> U+114BB */ 4728,
-	/* U+114B9+114BD -> U+114BE */ 4730,
-	/* U+115B8+115AF -> U+115BA */ 4733,
-	/* U+115B9+115AF -> U+115BB */ 4734,
-	/* U+11935+11930 -> U+11938 */ 4743
+	/* U+0928+093C -> U+0929 */ 751,
+	/* U+0930+093C -> U+0931 */ 752,
+	/* U+0933+093C -> U+0934 */ 753,
+	/* U+09C7+09BE -> U+09CB */ 769,
+	/* U+09C7+09D7 -> U+09CC */ 770,
+	/* U+0B47+0B3E -> U+0B4B */ 788,
+	/* U+0B47+0B56 -> U+0B48 */ 787,
+	/* U+0B47+0B57 -> U+0B4C */ 789,
+	/* U+0B92+0BD7 -> U+0B94 */ 793,
+	/* U+0BC6+0BBE -> U+0BCA */ 794,
+	/* U+0BC6+0BD7 -> U+0BCC */ 796,
+	/* U+0BC7+0BBE -> U+0BCB */ 795,
+	/* U+0C46+0C56 -> U+0C48 */ 799,
+	/* U+0CBF+0CD5 -> U+0CC0 */ 804,
+	/* U+0CC6+0CC2 -> U+0CCA */ 807,
+	/* U+0CC6+0CD5 -> U+0CC7 */ 805,
+	/* U+0CC6+0CD6 -> U+0CC8 */ 806,
+	/* U+0CCA+0CD5 -> U+0CCB */ 808,
+	/* U+0D46+0D3E -> U+0D4A */ 812,
+	/* U+0D46+0D57 -> U+0D4C */ 814,
+	/* U+0D47+0D3E -> U+0D4B */ 813,
+	/* U+0DD9+0DCA -> U+0DDA */ 817,
+	/* U+0DD9+0DCF -> U+0DDC */ 818,
+	/* U+0DD9+0DDF -> U+0DDE */ 820,
+	/* U+0DDC+0DCA -> U+0DDD */ 819,
+	/* U+1025+102E -> U+1026 */ 878,
+	/* U+1B05+1B35 -> U+1B06 */ 938,
+	/* U+1B07+1B35 -> U+1B08 */ 939,
+	/* U+1B09+1B35 -> U+1B0A */ 940,
+	/* U+1B0B+1B35 -> U+1B0C */ 941,
+	/* U+1B0D+1B35 -> U+1B0E */ 942,
+	/* U+1B11+1B35 -> U+1B12 */ 943,
+	/* U+1B3A+1B35 -> U+1B3B */ 945,
+	/* U+1B3C+1B35 -> U+1B3D */ 946,
+	/* U+1B3E+1B35 -> U+1B40 */ 947,
+	/* U+1B3F+1B35 -> U+1B41 */ 948,
+	/* U+1B42+1B35 -> U+1B43 */ 949,
+	/* U+1E36+0304 -> U+1E38 */ 1211,
+	/* U+1E37+0304 -> U+1E39 */ 1212,
+	/* U+1E5A+0304 -> U+1E5C */ 1247,
+	/* U+1E5B+0304 -> U+1E5D */ 1248,
+	/* U+1E62+0307 -> U+1E68 */ 1259,
+	/* U+1E63+0307 -> U+1E69 */ 1260,
+	/* U+1EA0+0302 -> U+1EAC */ 1323,
+	/* U+1EA0+0306 -> U+1EB6 */ 1333,
+	/* U+1EA1+0302 -> U+1EAD */ 1324,
+	/* U+1EA1+0306 -> U+1EB7 */ 1334,
+	/* U+1EB8+0302 -> U+1EC6 */ 1349,
+	/* U+1EB9+0302 -> U+1EC7 */ 1350,
+	/* U+1ECC+0302 -> U+1ED8 */ 1367,
+	/* U+1ECD+0302 -> U+1ED9 */ 1368,
+	/* U+1F00+0300 -> U+1F02 */ 1403,
+	/* U+1F00+0301 -> U+1F04 */ 1405,
+	/* U+1F00+0342 -> U+1F06 */ 1407,
+	/* U+1F00+0345 -> U+1F80 */ 1515,
+	/* U+1F01+0300 -> U+1F03 */ 1404,
+	/* U+1F01+0301 -> U+1F05 */ 1406,
+	/* U+1F01+0342 -> U+1F07 */ 1408,
+	/* U+1F01+0345 -> U+1F81 */ 1516,
+	/* U+1F02+0345 -> U+1F82 */ 1517,
+	/* U+1F03+0345 -> U+1F83 */ 1518,
+	/* U+1F04+0345 -> U+1F84 */ 1519,
+	/* U+1F05+0345 -> U+1F85 */ 1520,
+	/* U+1F06+0345 -> U+1F86 */ 1521,
+	/* U+1F07+0345 -> U+1F87 */ 1522,
+	/* U+1F08+0300 -> U+1F0A */ 1411,
+	/* U+1F08+0301 -> U+1F0C */ 1413,
+	/* U+1F08+0342 -> U+1F0E */ 1415,
+	/* U+1F08+0345 -> U+1F88 */ 1523,
+	/* U+1F09+0300 -> U+1F0B */ 1412,
+	/* U+1F09+0301 -> U+1F0D */ 1414,
+	/* U+1F09+0342 -> U+1F0F */ 1416,
+	/* U+1F09+0345 -> U+1F89 */ 1524,
+	/* U+1F0A+0345 -> U+1F8A */ 1525,
+	/* U+1F0B+0345 -> U+1F8B */ 1526,
+	/* U+1F0C+0345 -> U+1F8C */ 1527,
+	/* U+1F0D+0345 -> U+1F8D */ 1528,
+	/* U+1F0E+0345 -> U+1F8E */ 1529,
+	/* U+1F0F+0345 -> U+1F8F */ 1530,
+	/* U+1F10+0300 -> U+1F12 */ 1419,
+	/* U+1F10+0301 -> U+1F14 */ 1421,
+	/* U+1F11+0300 -> U+1F13 */ 1420,
+	/* U+1F11+0301 -> U+1F15 */ 1422,
+	/* U+1F18+0300 -> U+1F1A */ 1425,
+	/* U+1F18+0301 -> U+1F1C */ 1427,
+	/* U+1F19+0300 -> U+1F1B */ 1426,
+	/* U+1F19+0301 -> U+1F1D */ 1428,
+	/* U+1F20+0300 -> U+1F22 */ 1431,
+	/* U+1F20+0301 -> U+1F24 */ 1433,
+	/* U+1F20+0342 -> U+1F26 */ 1435,
+	/* U+1F20+0345 -> U+1F90 */ 1531,
+	/* U+1F21+0300 -> U+1F23 */ 1432,
+	/* U+1F21+0301 -> U+1F25 */ 1434,
+	/* U+1F21+0342 -> U+1F27 */ 1436,
+	/* U+1F21+0345 -> U+1F91 */ 1532,
+	/* U+1F22+0345 -> U+1F92 */ 1533,
+	/* U+1F23+0345 -> U+1F93 */ 1534,
+	/* U+1F24+0345 -> U+1F94 */ 1535,
+	/* U+1F25+0345 -> U+1F95 */ 1536,
+	/* U+1F26+0345 -> U+1F96 */ 1537,
+	/* U+1F27+0345 -> U+1F97 */ 1538,
+	/* U+1F28+0300 -> U+1F2A */ 1439,
+	/* U+1F28+0301 -> U+1F2C */ 1441,
+	/* U+1F28+0342 -> U+1F2E */ 1443,
+	/* U+1F28+0345 -> U+1F98 */ 1539,
+	/* U+1F29+0300 -> U+1F2B */ 1440,
+	/* U+1F29+0301 -> U+1F2D */ 1442,
+	/* U+1F29+0342 -> U+1F2F */ 1444,
+	/* U+1F29+0345 -> U+1F99 */ 1540,
+	/* U+1F2A+0345 -> U+1F9A */ 1541,
+	/* U+1F2B+0345 -> U+1F9B */ 1542,
+	/* U+1F2C+0345 -> U+1F9C */ 1543,
+	/* U+1F2D+0345 -> U+1F9D */ 1544,
+	/* U+1F2E+0345 -> U+1F9E */ 1545,
+	/* U+1F2F+0345 -> U+1F9F */ 1546,
+	/* U+1F30+0300 -> U+1F32 */ 1447,
+	/* U+1F30+0301 -> U+1F34 */ 1449,
+	/* U+1F30+0342 -> U+1F36 */ 1451,
+	/* U+1F31+0300 -> U+1F33 */ 1448,
+	/* U+1F31+0301 -> U+1F35 */ 1450,
+	/* U+1F31+0342 -> U+1F37 */ 1452,
+	/* U+1F38+0300 -> U+1F3A */ 1455,
+	/* U+1F38+0301 -> U+1F3C */ 1457,
+	/* U+1F38+0342 -> U+1F3E */ 1459,
+	/* U+1F39+0300 -> U+1F3B */ 1456,
+	/* U+1F39+0301 -> U+1F3D */ 1458,
+	/* U+1F39+0342 -> U+1F3F */ 1460,
+	/* U+1F40+0300 -> U+1F42 */ 1463,
+	/* U+1F40+0301 -> U+1F44 */ 1465,
+	/* U+1F41+0300 -> U+1F43 */ 1464,
+	/* U+1F41+0301 -> U+1F45 */ 1466,
+	/* U+1F48+0300 -> U+1F4A */ 1469,
+	/* U+1F48+0301 -> U+1F4C */ 1471,
+	/* U+1F49+0300 -> U+1F4B */ 1470,
+	/* U+1F49+0301 -> U+1F4D */ 1472,
+	/* U+1F50+0300 -> U+1F52 */ 1475,
+	/* U+1F50+0301 -> U+1F54 */ 1477,
+	/* U+1F50+0342 -> U+1F56 */ 1479,
+	/* U+1F51+0300 -> U+1F53 */ 1476,
+	/* U+1F51+0301 -> U+1F55 */ 1478,
+	/* U+1F51+0342 -> U+1F57 */ 1480,
+	/* U+1F59+0300 -> U+1F5B */ 1482,
+	/* U+1F59+0301 -> U+1F5D */ 1483,
+	/* U+1F59+0342 -> U+1F5F */ 1484,
+	/* U+1F60+0300 -> U+1F62 */ 1487,
+	/* U+1F60+0301 -> U+1F64 */ 1489,
+	/* U+1F60+0342 -> U+1F66 */ 1491,
+	/* U+1F60+0345 -> U+1FA0 */ 1547,
+	/* U+1F61+0300 -> U+1F63 */ 1488,
+	/* U+1F61+0301 -> U+1F65 */ 1490,
+	/* U+1F61+0342 -> U+1F67 */ 1492,
+	/* U+1F61+0345 -> U+1FA1 */ 1548,
+	/* U+1F62+0345 -> U+1FA2 */ 1549,
+	/* U+1F63+0345 -> U+1FA3 */ 1550,
+	/* U+1F64+0345 -> U+1FA4 */ 1551,
+	/* U+1F65+0345 -> U+1FA5 */ 1552,
+	/* U+1F66+0345 -> U+1FA6 */ 1553,
+	/* U+1F67+0345 -> U+1FA7 */ 1554,
+	/* U+1F68+0300 -> U+1F6A */ 1495,
+	/* U+1F68+0301 -> U+1F6C */ 1497,
+	/* U+1F68+0342 -> U+1F6E */ 1499,
+	/* U+1F68+0345 -> U+1FA8 */ 1555,
+	/* U+1F69+0300 -> U+1F6B */ 1496,
+	/* U+1F69+0301 -> U+1F6D */ 1498,
+	/* U+1F69+0342 -> U+1F6F */ 1500,
+	/* U+1F69+0345 -> U+1FA9 */ 1556,
+	/* U+1F6A+0345 -> U+1FAA */ 1557,
+	/* U+1F6B+0345 -> U+1FAB */ 1558,
+	/* U+1F6C+0345 -> U+1FAC */ 1559,
+	/* U+1F6D+0345 -> U+1FAD */ 1560,
+	/* U+1F6E+0345 -> U+1FAE */ 1561,
+	/* U+1F6F+0345 -> U+1FAF */ 1562,
+	/* U+1F70+0345 -> U+1FB2 */ 1565,
+	/* U+1F74+0345 -> U+1FC2 */ 1580,
+	/* U+1F7C+0345 -> U+1FF2 */ 1622,
+	/* U+1FB6+0345 -> U+1FB7 */ 1569,
+	/* U+1FBF+0300 -> U+1FCD */ 1590,
+	/* U+1FBF+0301 -> U+1FCE */ 1591,
+	/* U+1FBF+0342 -> U+1FCF */ 1592,
+	/* U+1FC6+0345 -> U+1FC7 */ 1584,
+	/* U+1FF6+0345 -> U+1FF7 */ 1626,
+	/* U+1FFE+0300 -> U+1FDD */ 1603,
+	/* U+1FFE+0301 -> U+1FDE */ 1604,
+	/* U+1FFE+0342 -> U+1FDF */ 1605,
+	/* U+2190+0338 -> U+219A */ 1836,
+	/* U+2192+0338 -> U+219B */ 1837,
+	/* U+2194+0338 -> U+21AE */ 1838,
+	/* U+21D0+0338 -> U+21CD */ 1839,
+	/* U+21D2+0338 -> U+21CF */ 1841,
+	/* U+21D4+0338 -> U+21CE */ 1840,
+	/* U+2203+0338 -> U+2204 */ 1842,
+	/* U+2208+0338 -> U+2209 */ 1843,
+	/* U+220B+0338 -> U+220C */ 1844,
+	/* U+2223+0338 -> U+2224 */ 1845,
+	/* U+2225+0338 -> U+2226 */ 1846,
+	/* U+223C+0338 -> U+2241 */ 1851,
+	/* U+2243+0338 -> U+2244 */ 1852,
+	/* U+2245+0338 -> U+2247 */ 1853,
+	/* U+2248+0338 -> U+2249 */ 1854,
+	/* U+224D+0338 -> U+226D */ 1857,
+	/* U+2261+0338 -> U+2262 */ 1856,
+	/* U+2264+0338 -> U+2270 */ 1860,
+	/* U+2265+0338 -> U+2271 */ 1861,
+	/* U+2272+0338 -> U+2274 */ 1862,
+	/* U+2273+0338 -> U+2275 */ 1863,
+	/* U+2276+0338 -> U+2278 */ 1864,
+	/* U+2277+0338 -> U+2279 */ 1865,
+	/* U+227A+0338 -> U+2280 */ 1866,
+	/* U+227B+0338 -> U+2281 */ 1867,
+	/* U+227C+0338 -> U+22E0 */ 1876,
+	/* U+227D+0338 -> U+22E1 */ 1877,
+	/* U+2282+0338 -> U+2284 */ 1868,
+	/* U+2283+0338 -> U+2285 */ 1869,
+	/* U+2286+0338 -> U+2288 */ 1870,
+	/* U+2287+0338 -> U+2289 */ 1871,
+	/* U+2291+0338 -> U+22E2 */ 1878,
+	/* U+2292+0338 -> U+22E3 */ 1879,
+	/* U+22A2+0338 -> U+22AC */ 1872,
+	/* U+22A8+0338 -> U+22AD */ 1873,
+	/* U+22A9+0338 -> U+22AE */ 1874,
+	/* U+22AB+0338 -> U+22AF */ 1875,
+	/* U+22B2+0338 -> U+22EA */ 1880,
+	/* U+22B3+0338 -> U+22EB */ 1881,
+	/* U+22B4+0338 -> U+22EC */ 1882,
+	/* U+22B5+0338 -> U+22ED */ 1883,
+	/* U+3046+3099 -> U+3094 */ 2321,
+	/* U+304B+3099 -> U+304C */ 2296,
+	/* U+304D+3099 -> U+304E */ 2297,
+	/* U+304F+3099 -> U+3050 */ 2298,
+	/* U+3051+3099 -> U+3052 */ 2299,
+	/* U+3053+3099 -> U+3054 */ 2300,
+	/* U+3055+3099 -> U+3056 */ 2301,
+	/* U+3057+3099 -> U+3058 */ 2302,
+	/* U+3059+3099 -> U+305A */ 2303,
+	/* U+305B+3099 -> U+305C */ 2304,
+	/* U+305D+3099 -> U+305E */ 2305,
+	/* U+305F+3099 -> U+3060 */ 2306,
+	/* U+3061+3099 -> U+3062 */ 2307,
+	/* U+3064+3099 -> U+3065 */ 2308,
+	/* U+3066+3099 -> U+3067 */ 2309,
+	/* U+3068+3099 -> U+3069 */ 2310,
+	/* U+306F+3099 -> U+3070 */ 2311,
+	/* U+306F+309A -> U+3071 */ 2312,
+	/* U+3072+3099 -> U+3073 */ 2313,
+	/* U+3072+309A -> U+3074 */ 2314,
+	/* U+3075+3099 -> U+3076 */ 2315,
+	/* U+3075+309A -> U+3077 */ 2316,
+	/* U+3078+3099 -> U+3079 */ 2317,
+	/* U+3078+309A -> U+307A */ 2318,
+	/* U+307B+3099 -> U+307C */ 2319,
+	/* U+307B+309A -> U+307D */ 2320,
+	/* U+309D+3099 -> U+309E */ 2326,
+	/* U+30A6+3099 -> U+30F4 */ 2353,
+	/* U+30AB+3099 -> U+30AC */ 2328,
+	/* U+30AD+3099 -> U+30AE */ 2329,
+	/* U+30AF+3099 -> U+30B0 */ 2330,
+	/* U+30B1+3099 -> U+30B2 */ 2331,
+	/* U+30B3+3099 -> U+30B4 */ 2332,
+	/* U+30B5+3099 -> U+30B6 */ 2333,
+	/* U+30B7+3099 -> U+30B8 */ 2334,
+	/* U+30B9+3099 -> U+30BA */ 2335,
+	/* U+30BB+3099 -> U+30BC */ 2336,
+	/* U+30BD+3099 -> U+30BE */ 2337,
+	/* U+30BF+3099 -> U+30C0 */ 2338,
+	/* U+30C1+3099 -> U+30C2 */ 2339,
+	/* U+30C4+3099 -> U+30C5 */ 2340,
+	/* U+30C6+3099 -> U+30C7 */ 2341,
+	/* U+30C8+3099 -> U+30C9 */ 2342,
+	/* U+30CF+3099 -> U+30D0 */ 2343,
+	/* U+30CF+309A -> U+30D1 */ 2344,
+	/* U+30D2+3099 -> U+30D3 */ 2345,
+	/* U+30D2+309A -> U+30D4 */ 2346,
+	/* U+30D5+3099 -> U+30D6 */ 2347,
+	/* U+30D5+309A -> U+30D7 */ 2348,
+	/* U+30D8+3099 -> U+30D9 */ 2349,
+	/* U+30D8+309A -> U+30DA */ 2350,
+	/* U+30DB+3099 -> U+30DC */ 2351,
+	/* U+30DB+309A -> U+30DD */ 2352,
+	/* U+30EF+3099 -> U+30F7 */ 2354,
+	/* U+30F0+3099 -> U+30F8 */ 2355,
+	/* U+30F1+3099 -> U+30F9 */ 2356,
+	/* U+30F2+3099 -> U+30FA */ 2357,
+	/* U+30FD+3099 -> U+30FE */ 2358,
+	/* U+105D2+0307 -> U+105C9 */ 4599,
+	/* U+105DA+0307 -> U+105E4 */ 4600,
+	/* U+11099+110BA -> U+1109A */ 4697,
+	/* U+1109B+110BA -> U+1109C */ 4698,
+	/* U+110A5+110BA -> U+110AB */ 4699,
+	/* U+11131+11127 -> U+1112E */ 4705,
+	/* U+11132+11127 -> U+1112F */ 4706,
+	/* U+11347+1133E -> U+1134B */ 4718,
+	/* U+11347+11357 -> U+1134C */ 4719,
+	/* U+11382+113C9 -> U+11383 */ 4733,
+	/* U+11384+113BB -> U+11385 */ 4734,
+	/* U+1138B+113C2 -> U+1138E */ 4735,
+	/* U+11390+113C9 -> U+11391 */ 4736,
+	/* U+113C2+113B8 -> U+113C7 */ 4738,
+	/* U+113C2+113C2 -> U+113C5 */ 4737,
+	/* U+113C2+113C9 -> U+113C8 */ 4739,
+	/* U+114B9+114B0 -> U+114BC */ 4747,
+	/* U+114B9+114BA -> U+114BB */ 4746,
+	/* U+114B9+114BD -> U+114BE */ 4748,
+	/* U+115B8+115AF -> U+115BA */ 4751,
+	/* U+115B9+115AF -> U+115BB */ 4752,
+	/* U+11935+11930 -> U+11938 */ 4761,
+	/* U+1611E+1611E -> U+16121 */ 4776,
+	/* U+1611E+1611F -> U+16123 */ 4778,
+	/* U+1611E+16120 -> U+16125 */ 4780,
+	/* U+1611E+16129 -> U+16122 */ 4777,
+	/* U+16121+1611F -> U+16126 */ 4781,
+	/* U+16121+16120 -> U+16128 */ 4783,
+	/* U+16122+1611F -> U+16127 */ 4782,
+	/* U+16129+1611F -> U+16124 */ 4779,
+	/* U+16D63+16D67 -> U+16D69 */ 4798,
+	/* U+16D67+16D67 -> U+16D68 */ 4797,
+	/* U+16D69+16D67 -> U+16D6A */ 4799
 };
 
 /* Perfect hash function for recomposition */
 static int
 Recomp_hash_func(const void *key)
 {
-	static const int16 h[1883] = {
-		772,   773,   621,   32767, 32767, 387,   653,   196,
-		32767, 32767, 855,   463,   -19,   651,   32767, 32767,
-		32767, 364,   32767, 32767, -108,  32767, 32767, 32767,
-		32767, 0,     -568,  32767, 32767, 32767, 0,     0,
-		0,     -103,  364,   0,     210,   732,   0,     0,
-		-506,  0,     0,     0,     32767, 32767, 0,     32767,
-		407,   -140,  32767, 409,   32767, 772,   0,     86,
-		842,   934,   32767, 32767, -499,  -355,  32767, 32767,
-		532,   138,   174,   -243,  860,   1870,  742,   32767,
-		32767, 339,   32767, 1290,  0,     32767, 32767, 0,
-		-449,  -1386, 1633,  560,   561,   32767, 1219,  1004,
-		139,   -804,  32767, -179,  141,   579,   1586,  32767,
-		32767, 32767, 142,   199,   32767, 32767, 143,   0,
-		32767, 32767, 314,   896,   32767, 32767, 428,   129,
-		286,   -58,   0,     68,    32767, 0,     244,   -566,
-		32767, 32767, 32767, 246,   32767, 32767, 0,     32767,
-		32767, 271,   -108,  928,   32767, 715,   32767, 32767,
-		-211,  -497,  32767, 0,     1055,  1339,  32767, 0,
-		32767, 32767, -968,  -144,  32767, 32767, 248,   32767,
-		-161,  32767, 32767, 282,   32767, -372,  0,     2,
-		-137,  1116,  32767, 687,   32767, 459,   913,   0,
-		461,   879,   -816,  443,   32767, 32767, 462,   1089,
-		32767, 1054,  0,     314,   447,   -26,   480,   32767,
-		64,    0,     0,     112,   32767, 66,    0,     646,
-		603,   22,    -292,  0,     710,   475,   32767, 24,
-		-781,  32767, 32767, 32767, 281,   307,   32767, 1289,
-		32767, 0,     1064,  -149,  454,   118,   32767, 32767,
-		0,     32767, -126,  0,     32767, 32767, 858,   32767,
-		32767, 32767, 1029,  886,   665,   209,   0,     26,
-		359,   0,     0,     -108,  -508,  -603,  894,   906,
-		32767, 32767, 14,    0,     0,     534,   984,   876,
-		32767, -93,   110,   -367,  167,   843,   32767, 32767,
-		-947,  -290,  169,   0,     0,     32767, -42,   564,
-		0,     -927,  32767, 817,   32767, 32767, 32767, 110,
-		0,     32767, 32767, -38,   32767, 32767, -101,  694,
-		-142,  190,   191,   1288,  32767, -687,  194,   -579,
-		534,   -452,  0,     -72,   536,   765,   823,   266,
-		-259,  684,   767,   32767, 654,   32767, 32767, 64,
-		920,   32767, 32767, 32767, 0,     1653,  0,     0,
-		32767, 32767, -452,  -222,  855,   0,     32767, -1153,
-		127,   490,   449,   863,   32767, -144,  32767, -379,
-		545,   32767, 32767, 32767, 530,   32767, 32767, 1331,
-		611,   -612,  332,   545,   -73,   0,     604,   201,
-		32767, -279,  338,   836,   340,   408,   32767, -60,
-		-358,  32767, 343,   69,    707,   0,     -129,  582,
-		32767, 0,     32767, 96,    392,   490,   639,   157,
-		-4,    406,   32767, 32767, -571,  1077,  546,   32767,
-		551,   0,     0,     0,     32767, 32767, 348,   32767,
-		498,   -181,  0,     -433,  1057,  260,   0,     32767,
-		32767, 397,   32767, 816,   -130,  32767, 624,   0,
-		0,     32767, 32767, 32767, 485,   0,     32767, 32767,
-		32767, 32767, 32767, 0,     32767, 32767, 32767, 1222,
-		-230,  32767, 797,   -538,  32767, 974,   32767, 32767,
-		831,   70,    -658,  145,   0,     147,   0,     32767,
-		1295,  32767, 0,     0,     895,   0,     0,     -385,
-		491,   -287,  32767, -587,  32767, 32767, 32767, 813,
-		-471,  -13,   32767, 32767, 32767, 0,     203,   411,
-		470,   0,     -546,  -179,  146,   0,     0,     32767,
-		-468,  32767, 0,     0,     32767, 32767, 32767, 211,
-		32767, 32767, 0,     32767, 0,     52,    32767, 0,
-		32767, 0,     692,   990,   32767, 32767, 32767, 56,
-		-507,  784,   951,   0,     32767, 0,     697,   32767,
-		187,   0,     32767, 32767, 430,   1209,  682,   32767,
-		130,   0,     -25,   0,     -1006, 0,     32767, 214,
-		433,   22,    0,     -1119, 32767, 285,   32767, 32767,
-		32767, 216,   32767, 32767, 32767, 217,   527,   32767,
-		32767, 32767, 829,   485,   419,   717,   620,   731,
-		32767, 470,   0,     -145,  -620,  1162,  -644,  848,
-		287,   -632,  32767, 32767, 32767, 32767, 381,   32767,
-		510,   511,   -554,  -2,    32767, 0,     0,     698,
-		32767, 32767, 436,   1154,  32767, 463,   32767, 32767,
-		627,   517,   32767, 32767, 854,   579,   723,   396,
-		110,   -42,   354,   32767, 664,   32767, 32767, 0,
-		0,     32767, 65,    -163,  67,    140,   69,    341,
-		70,    71,    402,   73,    623,   544,   624,   417,
-		-1375, 648,   32767, -26,   904,   0,     548,   0,
-		0,     32767, 32767, 855,   32767, 488,   -524,  599,
-		130,   131,   32767, 32767, 542,   -1110, -324,  -462,
-		32767, -405,  -440,  0,     0,     629,   850,   0,
-		741,   257,   258,   32767, 32767, 0,     32767, 923,
-		0,     32767, 0,     32767, 1559,  32767, 32767, 32767,
-		671,   32767, 134,   32767, 32767, -336,  -104,  576,
-		577,   829,   32767, 32767, 762,   902,   32767, 0,
-		32767, 0,     1506,  887,   32767, 636,   601,   2465,
-		426,   0,     236,   317,   427,   968,   32767, -975,
-		-559,  -343,  341,   32767, 937,   241,   0,     32767,
-		32767, 547,   32767, 32767, 32767, 32767, 32767, 789,
-		0,     32767, 32767, 32767, 0,     0,     0,     32767,
-		-192,  859,   1185,  1153,  69,    32767, 32767, 32767,
-		-539,  32767, 32767, 0,     32767, 32767, 32767, 32767,
-		640,   578,   32767, 32767, -766,  32767, 32767, 32767,
-		32767, 1050,  -572,  32767, 32767, 32767, 32767, 1268,
-		32767, 32767, 32767, 754,   32767, 32767, 1640,  179,
-		804,   32767, 32767, 32767, 32767, 0,     684,   943,
-		1006,  32767, 32767, 652,   0,     32767, 1041,  32767,
-		718,   791,   32767, 274,   697,   32767, 32767, 0,
-		32767, 32767, 32767, 0,     32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 735,
-		0,     32767, 32767, 32767, 275,   358,   688,   32767,
-		32767, 32767, 548,   -87,   770,   32767, -42,   0,
-		551,   32767, 691,   222,   32767, 32767, 32767, 32767,
-		0,     1273,  403,   -121,  806,   553,   554,   163,
-		32767, 32767, 892,   825,   32767, 32767, -490,  32767,
-		32767, 32767, 32767, 32767, -109,  744,   910,   32767,
-		91,    32767, 32767, 0,     0,     32767, 32767, 32767,
-		1521,  50,    701,   32767, 32767, 32767, 32767, 164,
-		658,   32767, 288,   0,     32767, 0,     51,    0,
-		32767, 32767, 32767, 32767, 555,   1547,  32767, 32767,
-		595,   585,   429,   32767, -80,   32767, 1258,  0,
-		540,   486,   -434,  865,   0,     192,   0,     884,
-		0,     0,     0,     175,   555,   0,     32767, 32767,
-		0,     32767, -566,  866,   591,   32767, 32767, 32767,
-		32767, 32767, 496,   495,   -215,  32767, 849,   -772,
-		32767, 32767, 502,   178,   483,   32767, 912,   793,
-		794,   0,     32767, 32767, 32767, -556,  499,   838,
-		32767, 32767, -506,  331,   0,     0,     -1096, 512,
-		880,   0,     774,   -338,  649,   32767, 270,   32767,
-		32767, -624,  328,   459,   32767, 32767, 32767, 32767,
-		329,   -201,  -835,  813,   -879,  560,   0,     -212,
-		-114,  35,    -494,  37,    523,   653,   751,   -653,
-		-743,  32767, 1356,  818,   32767, 32767, 856,   0,
-		44,    902,   0,     0,     0,     0,     32767, -26,
-		526,   795,   456,   32767, 104,   -209,  -341,  133,
-		-372,  0,     45,    110,   111,   0,     511,   47,
-		114,   32767, 32767, 93,    48,    116,   -1031, -279,
-		32767, 192,   0,     32767, 453,   415,   0,     -190,
-		32767, 471,   240,   175,   29,    665,   684,   0,
-		-11,   -95,   -344,  32767, 245,   148,   0,     530,
-		0,     1185,  -615,  -712,  693,   784,   32767, 0,
-		-776,  32767, 32767, -813,  0,     0,     0,     207,
-		208,   32767, 674,   32767, 742,   -289,  249,   32767,
-		520,   929,   -50,   781,   0,     -778,  32767, 0,
-		302,   32767, 720,   -465,  0,     32767, 32767, 32767,
-		0,     0,     32767, 833,   328,   806,   32767, -403,
-		0,     32767, -77,   32767, 0,     441,   930,   32767,
-		643,   0,     32767, 1938,  0,     1334,  381,   32767,
-		216,   32767, 32767, 0,     32767, 484,   383,   0,
-		242,   395,   0,     32767, 32767, 32767, -781,  355,
-		356,   32767, 292,   706,   32767, 32767, 32767, 32767,
-		32767, -410,  32767, 32767, 782,   32767, 189,   32767,
-		32767, 943,   0,     -212,  407,   335,   0,     135,
-		32767, 616,   0,     -497,  0,     -67,   853,   32767,
-		700,   32767, 0,     32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 0,     459,   -48,   32767, 58,    0,
-		-856,  1017,  32767, 59,    916,   -731,  32767, 940,
-		-855,  347,   650,   0,     678,   32767, 0,     32767,
-		32767, 530,   32767, 0,     -80,   32767, -730,  32767,
-		1214,  799,   58,    651,   841,   0,     0,     -589,
-		-1530, -478,  651,   652,   93,    576,   -1215, 32767,
-		125,   32767, 1279,  32767, 32767, 0,     32767, 0,
-		-367,  416,   -1236, 32767, 418,   32767, 815,   558,
-		559,   781,   419,   32767, 739,   32767, 0,     32767,
-		128,   570,   1349,  -298,  -66,   0,     147,   -488,
-		32767, 590,   189,   274,   524,   32767, 1082,  -209,
-		32767, 423,   32767, 32767, 975,   573,   32767, 424,
-		32767, 32767, 1241,  32767, 32767, 32767, 32767, 32767,
-		612,   391,   32767, 0,     -803,  1004,  -561,  32767,
-		32767, 735,   870,   32767, 0,     32767, 32767, -123,
-		99,    210,   600,   1294,  109,   1053,  32767, 307,
-		834,   32767, 0,     1651,  32767, 644,   32767, 32767,
-		0,     32767, -801,  385,   379,   32767, -368,  32767,
-		32767, 830,   0,     32767, 32767, 739,   371,   372,
-		-275,  32767, 32767, 331,   -780,  32767, 0,     1229,
-		-1462, 913,   266,   827,   125,   32767, 32767, 32767,
-		393,   32767, 631,   -33,   -883,  -661,  -204,  6,
-		-19,   257,   8,     9,     118,   519,   615,   -541,
-		-893,  0,     32767, 0,     1156,  15,    900,   32767,
-		32767, 32767, 32767, 32767, 32767, 1022,  376,   0,
-		32767, 32767, -972,  676,   840,   -661,  631,   58,
-		0,     17,    32767, 0,     -799,  82,    0,     32767,
-		32767, 680,   32767, 905,   0,     0,     32767, 32767,
-		0,     0,     32767, 0,     828,   386,   802,   0,
-		146,   0,     148,   32767, -1146, 0,     150,   151,
-		-743,  153,   154,   32767, 32767, 442,   32767, 743,
-		0,     0,     746,   0,     32767, 32767, 32767, 98,
-		32767, 157,   0,     696,   0,     32767, 32767, -294,
-		32767, 158,   159,   32767, 0,     32767, 160,   32767,
-		933,   32767, 32767, -50,   759,   824,   162,   672,
-		32767, 356,   0,     356,   32767, 32767, 0,     0,
-		656,   692,   253,   254,   -374,  102,   256,   32767,
-		0,     0,     32767, 32767, 259,   32767, 63,    260,
-		510,   261,   32767, 0,     32767, 1061,  32767, 521,
-		32767, 32767, 32767, 32767, 32767, 32767, 316,   317,
-		846,   0,     32767, -500,  318,   0,     32767, 32767,
-		263,   0,     790,   872,   32767, 32767, 32767, 2171,
-		264,   32767, 32767, 32767, 32767, 486,   334,   465,
-		32767, 466,   32767, 444,   606,   32767, 0,     445,
-		320,   -317,  0,     520,   322,   718,   32767, 32767,
-		32767, 0,     1013,  32767, 32767, 32767, 32767, 32767,
-		32767, 611,   32767, 0,     0,     32767, 32767, -120,
-		156,   613,   0,     0,     32767, -68,   32767, 622,
-		32767, 32767, 32767, 32767, 32767, 455,   32767, 32767,
-		32767, 403,   533,   0,     -161,  405,   95,    96,
-		32767, 97,    32767, 0,     29,    0,     32767, 32767,
-		30,    32767, 99,    32767, 32767, 0,     161,   32767,
-		97,    0,     32,    32767, 32767, 0,     0,     315,
-		32767, 32767, 414,   966,   0,     585,   32767, 32767,
-		-616,  -256,  171,   172,   666,   101,   562,   563,
-		32767, 95,    0,     0,     1492,  390,   -251,  103,
-		32767, 0,     32767, 188,   1487,  32767, 0,     0,
-		586,   668,   -126,  0,     0,     32767, 32767, 204,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 656,   32767, 32767,
-		599,   0,     222,   32767, 0,     1368,  -412,  435,
-		32767, 936,   32767, -17,   32767, 832,   32767, 437,
-		0,     -518,  787,   32767, 864,   -449,  0,     636,
-		713,   206,   592,   572,   0,     483,   -139,  32767,
-		32767, 180,   818,   32767, 32767, 1304,  0,     32767,
-		274,   0,     0,     0,     0,     705,   32767, 32767,
-		32767, 0,     -272,  0,     502,   503,   319,   0,
-		32767, 0,     13,    32767, 32767, 0,     32767, 270,
-		737,   0,     32767, 32767, 32767, 901,   32767, 616,
-		180,   32767, 721,   353,   32767, 0,     32767, 32767,
-		-199,  0,     280,   788,   32767, 940,   32767, 51,
-		0,     400,   53,    0,     54,    -637,  0,     -453,
-		0,     0,     0,     380,   0,     32767, 504,   0,
-		2049,  0,     -964,  32767, 0,     32767, 32767, 32767,
-		32767, 32767, 32767, 798,   32767, 32767, 32767, 0,
-		538,   488,   0,     32767, -528,  57,    819,   32767,
-		32767, 1244,  0,     488,   739,   908,   32767, 32767,
-		0,     32767, 32767, 0,     55,    533,   0,     32767,
-		814,   0,     32767, 458,   0,     32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 776,   777,   920,   0,
-		0,     755,   32767, 0,     32767, 32767, 0,     32767,
-		55,    -954,  0,     372,   166,   218,   165,   857,
-		221,   675,   0,     223,   224,   -155,  226,   32767,
-		1851,  227,   32767, 32767, 1192,  0,     229,   0,
-		-72,   0,     865,   0,     0,     -330,  0,     683,
-		32767, -550,  -196,  725,   -573,  293,   102,   32767,
-		-589,  296,   297,   298,   231,   -256,  300,   32767,
-		32767, 301,   233,   868,   32767, 234,   0,     811,
-		1187,  32767, 32767, 0,     32767, 518,   0,     361,
-		362,   466,   0,     365,   32767, -179,  366,   367,
-		874,   369,   305,   0,     32767, 0,     32767, 0,
-		32767, 2000,  1215,  451,   652,   0,     0,     799,
-		32767, 32767, 32767
+	static const int16 h[1923] = {
+		-109,  -96,   32767, 0,     -844,  -182,  -292,  32767,
+		830,   793,   794,   665,   0,     -9,    32767, 32767,
+		32767, 32767, 32767, 428,   32767, 32767, 32767, 502,
+		0,     32767, -230,  144,   356,   -76,   0,     243,
+		665,   32767, 32767, -1003, 244,   0,     32767, 32767,
+		573,   246,   125,   32767, 32767, 32767, 0,     32767,
+		32767, 32767, 32767, 0,     245,   32767, 723,   32767,
+		0,     889,   32767, 32767, 32767, 0,     32767, 32767,
+		0,     173,   157,   1215,  254,   255,   -126,  0,
+		0,     504,   459,   -11,   238,   -188,  722,   247,
+		260,   32767, -184,  -6,    2102,  -578,  32767, 32767,
+		-598,  -670,  260,   19,    32767, -472,  32767, 664,
+		511,   0,     32767, 345,   291,   0,     -370,  176,
+		32767, 1017,  -139,  -519,  -30,   0,     -24,   -23,
+		481,   -253,  -1813, 32767, 0,     935,   32767, 32767,
+		-443,  32767, 773,   32767, 32767, 32767, -507,  427,
+		0,     32767, 899,   32767, 32767, 277,   0,     32767,
+		32767, 0,     842,   854,   0,     32767, 936,   621,
+		-195,  32767, 0,     32767, 707,   268,   32767, 32767,
+		435,   32767, 32767, 32767, 0,     267,   88,    72,
+		32767, 487,   32767, 32767, 32767, 0,     32767, 32767,
+		32767, 32767, 32767, 875,   -312,  32767, 483,   875,
+		270,   89,    32767, 483,   32767, 32767, 32767, 32767,
+		708,   273,   2053,  -63,   -242,  -479,  32767, 352,
+		32767, 32767, 0,     560,   544,   32767, 32767, 32767,
+		0,     0,     32767, 0,     32767, 32767, 32767, 525,
+		274,   32767, 404,   386,   518,   32767, -357,  32767,
+		-45,   1154,  276,   32767, 149,   0,     277,   714,
+		313,   32767, 32767, 32767, 32767, 32767, 841,   460,
+		431,   32767, 32767, -49,   32767, 32767, 32767, 32767,
+		32767, 32767, 0,     876,   280,   281,   131,   388,
+		283,   32767, 1125,  32767, 695,   712,   32767, 0,
+		713,   1732,  0,     32767, 0,     231,   32767, 0,
+		32767, -755,  32767, 32767, 32767, 435,   32767, 0,
+		951,   952,   32767, 32767, 464,   867,   1298,  0,
+		660,   -55,   0,     292,   663,   118,   661,   -722,
+		435,   816,   328,   0,     323,   323,   -258,  -684,
+		2114,  0,     302,   0,     32767, 32767, 1607,  32767,
+		0,     32767, 32767, 0,     810,   32767, -543,  -5,
+		515,   32767, 0,     877,   304,   32767, 472,   32767,
+		683,   -549,  258,   285,   -904,  32767, 148,   1202,
+		1044,  0,     32767, 32767, 659,   1395,  905,   32767,
+		32767, 32767, -626,  32767, 32767, 32767, 32767, 672,
+		0,     32767, -139,  32767, 32767, 0,     0,     660,
+		1,     32767, -955,  -293,  616,   391,   632,   -126,
+		32767, 32767, 1610,  -166,  754,   324,   32767, 32767,
+		931,   32767, 32767, 32767, 0,     32767, 32767, 32767,
+		32767, 0,     32767, 32767, 302,   391,   32767, 32767,
+		516,   32767, 32767, 1131,  670,   544,   308,   286,
+		0,     0,     32767, 32767, 531,   -629,  -35,   0,
+		6,     -63,   485,   0,     0,     -486,  -58,   0,
+		0,     38,    470,   -20,   0,     32767, 0,     0,
+		956,   32767, 0,     294,   -759,  0,     32767, 32767,
+		-362,  73,    316,   588,   314,   32767, 609,   0,
+		318,   32767, 32767, 32767, -759,  1466,  -212,  32767,
+		1910,  226,   653,   32767, 219,   32767, 32767, 0,
+		0,     32767, 1045,  -6,    -6,    32767, 0,     163,
+		0,     0,     -9,    879,   -369,  32767, -18,   321,
+		322,   32767, 32767, -449,  1082,  324,   57,    32767,
+		-403,  252,   697,   0,     491,   552,   0,     32767,
+		32767, 32767, 864,   32767, 0,     32767, 929,   -582,
+		32767, 32767, 32767, 1521,  32767, 32767, 32767, 212,
+		326,   -542,  332,   333,   334,   -490,  692,   336,
+		32767, 337,   338,   31,    0,     714,   348,   34,
+		342,   32767, 1602,  32767, 687,   143,   32767, 0,
+		32767, 32767, 0,     32767, 196,   -21,   32767, 32767,
+		-4,    32767, 32767, 880,   -211,  203,   32767, 1078,
+		83,    1661,  32767, 32767, 283,   787,   348,   32767,
+		0,     -464,  0,     32767, 725,   -431,  -811,  -322,
+		7,     32767, -315,  267,   694,   -2103, 12,    247,
+		13,    692,   32767, -1593, 32767, 15,    32767, 32767,
+		830,   0,     623,   354,   32767, 32767, -154,  0,
+		264,   -712,  32767, 357,   32767, 32767, 220,   -242,
+		32767, 921,   905,   32767, -1184, 549,   32767, 19,
+		319,   32767, 551,   32767, 1307,  0,     32767, 32767,
+		32767, 0,     566,   881,   822,   936,   326,   89,
+		-313,  32767, 250,   0,     359,   360,   32767, 32767,
+		32767, 32767, -575,  20,    32767, 98,    23,    32767,
+		287,   744,   124,   1027,  32767, 0,     564,   0,
+		-548,  -497,  982,   32767, 32767, 32767, 32767, 32767,
+		35,    316,   -1859, 343,   364,   786,   0,     32767,
+		366,   4,     0,     753,   581,   524,   270,   686,
+		0,     -382,  32767, -1189, 0,     747,   32767, 363,
+		32767, 32767, -1782, 32767, 28,    32767, 677,   452,
+		210,   0,     884,   882,   -258,  32767, -1099, -222,
+		32767, 32767, 32767, 32767, 373,   671,   32767, 311,
+		32767, 370,   32767, -831,  101,   32,    35,    36,
+		-1159, 930,   38,    39,    -148,  -148,  32767, 32767,
+		-150,  -803,  1185,  675,   32767, -152,  32767, 0,
+		633,   467,   -279,  827,   32767, 1273,  -410,  136,
+		32767, 527,   842,   397,   32767, 1149,  376,   45,
+		2221,  20,    0,     -421,  47,    925,   0,     363,
+		368,   -384,  0,     32767, -230,  32767, -532,  32767,
+		32767, 32767, 0,     32767, 634,   219,   -6,    397,
+		32767, 32767, 692,   385,   361,   483,   526,   32767,
+		0,     32767, 628,   728,   2167,  51,    892,   32767,
+		-326,  -595,  54,    55,    32767, 825,   0,     0,
+		933,   32767, 32767, 32767, 828,   32767, 32767, 883,
+		-144,  32767, 32767, 32767, 933,   0,     0,     209,
+		1580,  790,   0,     0,     32767, 32767, 32767, 730,
+		731,   32767, 58,    57,    457,   557,   32767, 59,
+		60,    0,     -1438, 32767, 1016,  32767, 1344,  683,
+		32767, 0,     32767, 32767, 32767, 32767, 32767, 558,
+		45,    32767, 0,     32767, 0,     0,     843,   0,
+		32767, 0,     503,   62,    488,   600,   -395,  -328,
+		69,    566,   -355,  1027,  -737,  -72,   -606,  32767,
+		74,    32767, 32767, 1144,  32767, -75,   32767, 884,
+		-144,  32767, 22,    598,   32767, 792,   32767, 32767,
+		32767, 32767, 32767, -336,  32767, 32767, 0,     45,
+		0,     32767, 658,   637,   78,    95,    -962,  0,
+		0,     32767, 256,   0,     -247,  -201,  32767, 32767,
+		447,   0,     0,     0,     32767, 445,   806,   860,
+		-39,   74,    32767, -6,    32767, 529,   32767, 700,
+		307,   179,   0,     893,   32767, 835,   0,     -29,
+		32767, 32767, 32767, 32767, -754,  32767, 32767, 32767,
+		-702,  -227,  -55,   0,     517,   -196,  32767, 784,
+		177,   0,     -1082, 597,   -166,  797,   32767, 32767,
+		613,   32767, 1211,  32767, -283,  126,   32767, 83,
+		526,   -1584, 533,   172,   950,   0,     0,     32767,
+		32767, -1767, -88,   32767, 87,    -1289, 773,   953,
+		1131,  0,     0,     32767, 1374,  0,     32767, 32767,
+		32767, 798,   32767, 0,     1547,  158,   613,   32767,
+		32767, -822,  32767, 88,    473,   474,   378,   89,
+		940,   659,   352,   -270,  0,     -1015, 477,   32767,
+		901,   91,    1068,  32767, 0,     0,     32767, 32767,
+		0,     32767, 461,   404,   32767, 46,    -65,   32767,
+		32767, 815,   822,   32767, 32767, 32767, 406,   925,
+		338,   -487,  0,     97,    438,   -464,  32767, 98,
+		0,     0,     1113,  0,     -416,  0,     32767, 0,
+		-35,   0,     180,   413,   32767, 32767, 0,     -219,
+		568,   175,   0,     0,     32767, 503,   0,     32767,
+		528,   32767, 32767, -464,  733,   140,   106,   101,
+		171,   32767, 109,   110,   597,   170,   32767, 113,
+		76,    103,   32767, 115,   559,   116,   32767, -213,
+		32767, 0,     597,   823,   32767, 801,   32767, 479,
+		803,   631,   723,   32767, 538,   -394,  468,   -200,
+		411,   29,    32767, 32767, -1347, 361,   32767, -458,
+		655,   32767, 32767, 32767, -791,  0,     32767, 540,
+		541,   32767, 32767, -14,   959,   32767, 0,     462,
+		32767, 802,   32767, 32767, 846,   734,   32767, 32767,
+		735,   32767, 32767, 32767, 32767, 32767, 0,     32767,
+		32767, -685,  32767, 32767, 32767, 32767, 32767, 32767,
+		0,     44,    32767, 0,     807,   131,   349,   0,
+		0,     7,     -94,   423,   0,     529,   32767, 32767,
+		32767, 286,   0,     32767, -145,  400,   281,   445,
+		32767, 122,   32767, -300,  600,   571,   769,   945,
+		518,   0,     461,   32767, -254,  32767, -423,  -534,
+		462,   396,   0,     886,   425,   -956,  809,   145,
+		573,   810,   0,     401,   0,     -1069, 0,     151,
+		1011,  0,     0,     81,    32767, -411,  0,     -687,
+		859,   451,   -1447, 132,   32767, 32767, 32767, 32767,
+		-154,  32,    32767, 32767, 32767, 32767, 0,     32767,
+		32767, 32767, 37,    408,   0,     811,   326,   32767,
+		0,     -374,  32767, -184,  741,   -376,  91,    134,
+		32767, 486,   135,   -40,   579,   373,   32767, 547,
+		32767, 32767, 32767, 32767, -259,  873,   0,     0,
+		0,     825,   -373,  0,     32767, 0,     0,     308,
+		340,   -373,  32767, 0,     0,     32767, -1259, 32767,
+		742,   32767, 643,   139,   144,   349,   -79,   147,
+		148,   32767, 149,   732,   425,   -219,  152,   -446,
+		556,   143,   32767, 155,   165,   -1314, 0,     888,
+		439,   32767, 0,     0,     0,     813,   405,   29,
+		32767, 6,     0,     0,     743,   32767, 1902,  158,
+		159,   32767, 381,   0,     -102,  196,   0,     769,
+		-419,  -596,  0,     782,   162,   32767, 32767, -580,
+		32767, 32767, 32767, 32767, 1126,  32767, 32767, 412,
+		32767, 814,   824,   32767, 32767, 0,     32767, 32767,
+		744,   32767, 32767, 746,   0,     1480,  167,   0,
+		1189,  32767, 32767, 168,   169,   32767, 0,     32767,
+		906,   32767, 32767, 32767, 32767, 32767, 32767, 601,
+		32767, 32767, -278,  0,     32767, 1261,  414,   32767,
+		32767, 32767, 32767, 375,   378,   589,   644,   750,
+		751,   937,   32767, 590,   32767, 591,   32767, 171,
+		172,   32767, 32767, 32767, 32767, 1195,  32767, 32767,
+		721,   0,     0,     -505,  -14,   6,     0,     0,
+		0,     1058,  -718,  99,    0,     372,   327,   32767,
+		729,   -166,  32767, 0,     173,   -939,  175,   592,
+		177,   576,   32767, 213,   179,   0,     0,     514,
+		620,   32767, 32767, 32767, 32767, 0,     32767, 32767,
+		958,   -240,  0,     -840,  32767, 379,   32767, 0,
+		0,     752,   673,   -432,  159,   -877,  32767, -416,
+		32767, 182,   -211,  0,     0,     594,   32767, 184,
+		-1070, 32767, 32767, 32767, 185,   0,     0,     32767,
+		710,   32767, 32767, 32767, 32767, 928,   32767, 32767,
+		0,     126,   942,   32767, 0,     0,     32767, 867,
+		697,   -355,  32767, 625,   0,     596,   32767, 597,
+		-243,  583,   32767, 0,     0,     0,     0,     0,
+		584,   650,   0,     32767, 515,   32767, 0,     892,
+		0,     0,     -271,  274,   32767, 418,   32767, 0,
+		32767, 32767, 32767, 440,   -1147, 32767, 0,     32767,
+		32767, 651,   652,   564,   32767, 32767, 32767, 0,
+		32767, 32767, 32767, 32767, 947,   -68,   32767, 688,
+		32767, 0,     0,     689,   915,   916,   0,     0,
+		-204,  225,   0,     0,     0,     0,     32767, -275,
+		370,   0,     599,   -402,  32767, 571,   0,     32767,
+		1470,  594,   32767, 772,   773,   1458,  0,     907,
+		1048,  32767, 128,   4,     32767, 0,     32767, 1880,
+		32767, 32767, 0,     0,     684,   32767, 0,     262,
+		32767, 32767, 32767, 32767, 757,   32767, 32767, 0,
+		196,   32767, -258,  -552,  -998,  0,     950,   774,
+		-35,   32767, 0,     32767, 0,     32767, 15,    32767,
+		0,     32767, 0,     27,    198,   760,   32767, 32767,
+		1204,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		620,   32767, 32767, 760,   761,   32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 0,     0,     32767, 32767, 0,     32767, 0,
+		1195,  918,   32767, 32767, 32767, 32767, 0,     0,
+		32767, 32767, 32767, 32767, 903,   32767, 32767, 763,
+		764,   0,     32767, 0,     32767, 32767, 0,     32767,
+		833,   32767, 32767, 32767, 1132,  32767, 32767, 32767,
+		32767, 32767, 32767, 0,     450,   32767, 32767, 420,
+		32767, 32767, 32767, 32767, -68,   2,     0,     0,
+		1196,  0,     0,     0,     188,   189,   190,   191,
+		192,   600,   0,     -632,  -43,   196,   89,    489,
+		294,   1248,  32767, 1043,  32767, 492,   32767, 32767,
+		519,   0,     32767, 863,   32767, 32767, 32767, 0,
+		32767, 765,   493,   467,   0,     32767, 32767, 201,
+		32767, 432,   849,   32767, 279,   0,     0,     204,
+		834,   32767, 0,     32767, 1670,  32767, 0,     32767,
+		0,     32767, 32767, 32767, 919,   929,   32767, 0,
+		32767, -363,  0,     32767, 32767, 0,     434,   -56,
+		32767, 436,   0,     349,   0,     207,   208,   437,
+		32767, 0,     32767, -694,  -408,  32767, 0,     32767,
+		210,   206,   0,     653,   32767, 32767, 0,     402,
+		1105,  0,     32767, 693,   0,     0,     938,   32767,
+		32767, 32767, 438,   541,   131,   440,   871,   32767,
+		32767, 0,     32767, 279,   32767, 32767, 287,   212,
+		0,     0,     32767, 32767, 367,   32767, 696,   697,
+		32767, 0,     0,     0,     0,     32767, 32767, 32767,
+		32767, 32767, 32767, 0,     32767, 0,     -1321, 32767,
+		0,     176,   32767, 214,   218,   724,   234,   215,
+		222,   32767, 223,   -834,  943,   127,   32767, 496,
+		-100,  217,   0,     394,   32767, 229,   32767, 0,
+		0,     17,    421,   415,   447,   0,     32767, 686,
+		32767, 32767, 1845,  138,   32767, 32767, 872,   230,
+		32767, 601,   851,   471,   232,   603,   32767, 778,
+		698,   233,   32767, 699,   -439,  32767, 0,     32767,
+		32767, 32767, 663,   32767, 32767, 32767, 32767, -298,
+		449,   32767, -463,  687,   32767, 32767, 427,   32767,
+		0,     0,     0,     0,     0,     236,   193,   826,
+		238,   0,     108
 	};
 
 	const unsigned char *k = (const unsigned char *) key;
@@ -2962,7 +3004,7 @@ Recomp_hash_func(const void *key)
 		a = a * 257 + c;
 		b = b * 17 + c;
 	}
-	return h[a % 1883] + h[b % 1883];
+	return h[a % 1923] + h[b % 1923];
 }
 
 /* Hash lookup information for recomposition */
@@ -2970,5 +3012,5 @@ static const pg_unicode_recompinfo UnicodeRecompInfo =
 {
 	RecompInverseLookup,
 	Recomp_hash_func,
-	941
+	961
 };
diff --git a/src/include/common/unicode_norm_table.h b/src/include/common/unicode_norm_table.h
index 7ef8efac8af..bd05757e8c9 100644
--- a/src/include/common/unicode_norm_table.h
+++ b/src/include/common/unicode_norm_table.h
@@ -36,7 +36,7 @@ typedef struct
 #define DECOMPOSITION_IS_COMPAT(x) (((x)->dec_size_flags & DECOMP_COMPAT) != 0)
 
 /* Table of Unicode codepoints and their decompositions */
-static const pg_unicode_decomposition UnicodeDecompMain[6775] =
+static const pg_unicode_decomposition UnicodeDecompMain[6843] =
 {
 	{0x00A0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0020},
 	{0x00A8, 0, 2 | DECOMP_COMPAT, 0},
@@ -727,6 +727,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x0859, 220, 0, 0},
 	{0x085A, 220, 0, 0},
 	{0x085B, 220, 0, 0},
+	{0x0897, 230, 0, 0},
 	{0x0898, 230, 0, 0},
 	{0x0899, 220, 0, 0},
 	{0x089A, 220, 0, 0},
@@ -4636,6 +4637,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x10378, 230, 0, 0},
 	{0x10379, 230, 0, 0},
 	{0x1037A, 230, 0, 0},
+	{0x105C9, 0, 2, 4776},
+	{0x105E4, 0, 2, 4778},
 	{0x10781, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02D0},
 	{0x10782, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02D1},
 	{0x10783, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x00E6},
@@ -4662,18 +4665,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x10799, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02AA},
 	{0x1079A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02AB},
 	{0x1079B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x026C},
-	{0x1079C, 0, 1 | DECOMP_COMPAT, 4776},
+	{0x1079C, 0, 1 | DECOMP_COMPAT, 4780},
 	{0x1079D, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0xA78E},
 	{0x1079E, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x026E},
-	{0x1079F, 0, 1 | DECOMP_COMPAT, 4777},
+	{0x1079F, 0, 1 | DECOMP_COMPAT, 4781},
 	{0x107A0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x028E},
-	{0x107A1, 0, 1 | DECOMP_COMPAT, 4778},
+	{0x107A1, 0, 1 | DECOMP_COMPAT, 4782},
 	{0x107A2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x00F8},
 	{0x107A3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0276},
 	{0x107A4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0277},
 	{0x107A5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0071},
 	{0x107A6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x027A},
-	{0x107A7, 0, 1 | DECOMP_COMPAT, 4779},
+	{0x107A7, 0, 1 | DECOMP_COMPAT, 4783},
 	{0x107A8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x027D},
 	{0x107A9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x027E},
 	{0x107AA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0280},
@@ -4690,8 +4693,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x107B6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x01C0},
 	{0x107B7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x01C1},
 	{0x107B8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x01C2},
-	{0x107B9, 0, 1 | DECOMP_COMPAT, 4780},
-	{0x107BA, 0, 1 | DECOMP_COMPAT, 4781},
+	{0x107B9, 0, 1 | DECOMP_COMPAT, 4784},
+	{0x107BA, 0, 1 | DECOMP_COMPAT, 4785},
 	{0x10A0D, 220, 0, 0},
 	{0x10A0F, 230, 0, 0},
 	{0x10A38, 230, 0, 0},
@@ -4704,6 +4707,11 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x10D25, 230, 0, 0},
 	{0x10D26, 230, 0, 0},
 	{0x10D27, 230, 0, 0},
+	{0x10D69, 230, 0, 0},
+	{0x10D6A, 230, 0, 0},
+	{0x10D6B, 230, 0, 0},
+	{0x10D6C, 230, 0, 0},
+	{0x10D6D, 230, 0, 0},
 	{0x10EAB, 230, 0, 0},
 	{0x10EAC, 230, 0, 0},
 	{0x10EFD, 220, 0, 0},
@@ -4727,16 +4735,16 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x11046, 9, 0, 0},
 	{0x11070, 9, 0, 0},
 	{0x1107F, 9, 0, 0},
-	{0x1109A, 0, 2, 4782},
-	{0x1109C, 0, 2, 4784},
-	{0x110AB, 0, 2, 4786},
+	{0x1109A, 0, 2, 4786},
+	{0x1109C, 0, 2, 4788},
+	{0x110AB, 0, 2, 4790},
 	{0x110B9, 9, 0, 0},
 	{0x110BA, 7, 0, 0},
 	{0x11100, 230, 0, 0},
 	{0x11101, 230, 0, 0},
 	{0x11102, 230, 0, 0},
-	{0x1112E, 0, 2, 4788},
-	{0x1112F, 0, 2, 4790},
+	{0x1112E, 0, 2, 4792},
+	{0x1112F, 0, 2, 4794},
 	{0x11133, 9, 0, 0},
 	{0x11134, 9, 0, 0},
 	{0x11173, 7, 0, 0},
@@ -4748,8 +4756,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x112EA, 9, 0, 0},
 	{0x1133B, 7, 0, 0},
 	{0x1133C, 7, 0, 0},
-	{0x1134B, 0, 2, 4792},
-	{0x1134C, 0, 2, 4794},
+	{0x1134B, 0, 2, 4796},
+	{0x1134C, 0, 2, 4798},
 	{0x1134D, 9, 0, 0},
 	{0x11366, 230, 0, 0},
 	{0x11367, 230, 0, 0},
@@ -4763,16 +4771,26 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x11372, 230, 0, 0},
 	{0x11373, 230, 0, 0},
 	{0x11374, 230, 0, 0},
+	{0x11383, 0, 2, 4800},
+	{0x11385, 0, 2, 4802},
+	{0x1138E, 0, 2, 4804},
+	{0x11391, 0, 2, 4806},
+	{0x113C5, 0, 2, 4808},
+	{0x113C7, 0, 2, 4810},
+	{0x113C8, 0, 2, 4812},
+	{0x113CE, 9, 0, 0},
+	{0x113CF, 9, 0, 0},
+	{0x113D0, 9, 0, 0},
 	{0x11442, 9, 0, 0},
 	{0x11446, 7, 0, 0},
 	{0x1145E, 230, 0, 0},
-	{0x114BB, 0, 2, 4796},
-	{0x114BC, 0, 2, 4798},
-	{0x114BE, 0, 2, 4800},
+	{0x114BB, 0, 2, 4814},
+	{0x114BC, 0, 2, 4816},
+	{0x114BE, 0, 2, 4818},
 	{0x114C2, 9, 0, 0},
 	{0x114C3, 7, 0, 0},
-	{0x115BA, 0, 2, 4802},
-	{0x115BB, 0, 2, 4804},
+	{0x115BA, 0, 2, 4820},
+	{0x115BB, 0, 2, 4822},
 	{0x115BF, 9, 0, 0},
 	{0x115C0, 7, 0, 0},
 	{0x1163F, 9, 0, 0},
@@ -4781,7 +4799,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1172B, 9, 0, 0},
 	{0x11839, 9, 0, 0},
 	{0x1183A, 7, 0, 0},
-	{0x11938, 0, 2, 4806},
+	{0x11938, 0, 2, 4824},
 	{0x1193D, 9, 0, 0},
 	{0x1193E, 9, 0, 0},
 	{0x11943, 7, 0, 0},
@@ -4796,6 +4814,15 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x11D97, 9, 0, 0},
 	{0x11F41, 9, 0, 0},
 	{0x11F42, 9, 0, 0},
+	{0x16121, 0, 2, 4826},
+	{0x16122, 0, 2, 4828},
+	{0x16123, 0, 2, 4830},
+	{0x16124, 0, 2, 4832},
+	{0x16125, 0, 2, 4834},
+	{0x16126, 0, 2, 4836},
+	{0x16127, 0, 2, 4838},
+	{0x16128, 0, 2, 4840},
+	{0x1612F, 9, 0, 0},
 	{0x16AF0, 1, 0, 0},
 	{0x16AF1, 1, 0, 0},
 	{0x16AF2, 1, 0, 0},
@@ -4808,16 +4835,55 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x16B34, 230, 0, 0},
 	{0x16B35, 230, 0, 0},
 	{0x16B36, 230, 0, 0},
+	{0x16D68, 0, 2, 4842},
+	{0x16D69, 0, 2, 4844},
+	{0x16D6A, 0, 2, 4846},
 	{0x16FF0, 6, 0, 0},
 	{0x16FF1, 6, 0, 0},
 	{0x1BC9E, 1, 0, 0},
-	{0x1D15E, 0, 2 | DECOMP_NO_COMPOSE, 4808},	/* in exclusion list */
-	{0x1D15F, 0, 2 | DECOMP_NO_COMPOSE, 4810},	/* in exclusion list */
-	{0x1D160, 0, 2 | DECOMP_NO_COMPOSE, 4812},	/* in exclusion list */
-	{0x1D161, 0, 2 | DECOMP_NO_COMPOSE, 4814},	/* in exclusion list */
-	{0x1D162, 0, 2 | DECOMP_NO_COMPOSE, 4816},	/* in exclusion list */
-	{0x1D163, 0, 2 | DECOMP_NO_COMPOSE, 4818},	/* in exclusion list */
-	{0x1D164, 0, 2 | DECOMP_NO_COMPOSE, 4820},	/* in exclusion list */
+	{0x1CCD6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0041},
+	{0x1CCD7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0042},
+	{0x1CCD8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0043},
+	{0x1CCD9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0044},
+	{0x1CCDA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0045},
+	{0x1CCDB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0046},
+	{0x1CCDC, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0047},
+	{0x1CCDD, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0048},
+	{0x1CCDE, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0049},
+	{0x1CCDF, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004A},
+	{0x1CCE0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004B},
+	{0x1CCE1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004C},
+	{0x1CCE2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004D},
+	{0x1CCE3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004E},
+	{0x1CCE4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004F},
+	{0x1CCE5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0050},
+	{0x1CCE6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0051},
+	{0x1CCE7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0052},
+	{0x1CCE8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0053},
+	{0x1CCE9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0054},
+	{0x1CCEA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0055},
+	{0x1CCEB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0056},
+	{0x1CCEC, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0057},
+	{0x1CCED, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0058},
+	{0x1CCEE, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0059},
+	{0x1CCEF, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x005A},
+	{0x1CCF0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0030},
+	{0x1CCF1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0031},
+	{0x1CCF2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0032},
+	{0x1CCF3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0033},
+	{0x1CCF4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0034},
+	{0x1CCF5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0035},
+	{0x1CCF6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0036},
+	{0x1CCF7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0037},
+	{0x1CCF8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0038},
+	{0x1CCF9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0039},
+	{0x1D15E, 0, 2 | DECOMP_NO_COMPOSE, 4848},	/* in exclusion list */
+	{0x1D15F, 0, 2 | DECOMP_NO_COMPOSE, 4850},	/* in exclusion list */
+	{0x1D160, 0, 2 | DECOMP_NO_COMPOSE, 4852},	/* in exclusion list */
+	{0x1D161, 0, 2 | DECOMP_NO_COMPOSE, 4854},	/* in exclusion list */
+	{0x1D162, 0, 2 | DECOMP_NO_COMPOSE, 4856},	/* in exclusion list */
+	{0x1D163, 0, 2 | DECOMP_NO_COMPOSE, 4858},	/* in exclusion list */
+	{0x1D164, 0, 2 | DECOMP_NO_COMPOSE, 4860},	/* in exclusion list */
 	{0x1D165, 216, 0, 0},
 	{0x1D166, 216, 0, 0},
 	{0x1D167, 1, 0, 0},
@@ -4848,12 +4914,12 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1D1AB, 230, 0, 0},
 	{0x1D1AC, 230, 0, 0},
 	{0x1D1AD, 230, 0, 0},
-	{0x1D1BB, 0, 2 | DECOMP_NO_COMPOSE, 4822},	/* in exclusion list */
-	{0x1D1BC, 0, 2 | DECOMP_NO_COMPOSE, 4824},	/* in exclusion list */
-	{0x1D1BD, 0, 2 | DECOMP_NO_COMPOSE, 4826},	/* in exclusion list */
-	{0x1D1BE, 0, 2 | DECOMP_NO_COMPOSE, 4828},	/* in exclusion list */
-	{0x1D1BF, 0, 2 | DECOMP_NO_COMPOSE, 4830},	/* in exclusion list */
-	{0x1D1C0, 0, 2 | DECOMP_NO_COMPOSE, 4832},	/* in exclusion list */
+	{0x1D1BB, 0, 2 | DECOMP_NO_COMPOSE, 4862},	/* in exclusion list */
+	{0x1D1BC, 0, 2 | DECOMP_NO_COMPOSE, 4864},	/* in exclusion list */
+	{0x1D1BD, 0, 2 | DECOMP_NO_COMPOSE, 4866},	/* in exclusion list */
+	{0x1D1BE, 0, 2 | DECOMP_NO_COMPOSE, 4868},	/* in exclusion list */
+	{0x1D1BF, 0, 2 | DECOMP_NO_COMPOSE, 4870},	/* in exclusion list */
+	{0x1D1C0, 0, 2 | DECOMP_NO_COMPOSE, 4872},	/* in exclusion list */
 	{0x1D242, 230, 0, 0},
 	{0x1D243, 230, 0, 0},
 	{0x1D244, 230, 0, 0},
@@ -5970,6 +6036,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1E4ED, 232, 0, 0},
 	{0x1E4EE, 220, 0, 0},
 	{0x1E4EF, 230, 0, 0},
+	{0x1E5EE, 230, 0, 0},
+	{0x1E5EF, 220, 0, 0},
 	{0x1E8D0, 220, 0, 0},
 	{0x1E8D1, 220, 0, 0},
 	{0x1E8D2, 220, 0, 0},
@@ -6125,48 +6193,48 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1EEB9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0636},
 	{0x1EEBA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0638},
 	{0x1EEBB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x063A},
-	{0x1F100, 0, 2 | DECOMP_COMPAT, 4834},
-	{0x1F101, 0, 2 | DECOMP_COMPAT, 4836},
-	{0x1F102, 0, 2 | DECOMP_COMPAT, 4838},
-	{0x1F103, 0, 2 | DECOMP_COMPAT, 4840},
-	{0x1F104, 0, 2 | DECOMP_COMPAT, 4842},
-	{0x1F105, 0, 2 | DECOMP_COMPAT, 4844},
-	{0x1F106, 0, 2 | DECOMP_COMPAT, 4846},
-	{0x1F107, 0, 2 | DECOMP_COMPAT, 4848},
-	{0x1F108, 0, 2 | DECOMP_COMPAT, 4850},
-	{0x1F109, 0, 2 | DECOMP_COMPAT, 4852},
-	{0x1F10A, 0, 2 | DECOMP_COMPAT, 4854},
-	{0x1F110, 0, 3 | DECOMP_COMPAT, 4856},
-	{0x1F111, 0, 3 | DECOMP_COMPAT, 4859},
-	{0x1F112, 0, 3 | DECOMP_COMPAT, 4862},
-	{0x1F113, 0, 3 | DECOMP_COMPAT, 4865},
-	{0x1F114, 0, 3 | DECOMP_COMPAT, 4868},
-	{0x1F115, 0, 3 | DECOMP_COMPAT, 4871},
-	{0x1F116, 0, 3 | DECOMP_COMPAT, 4874},
-	{0x1F117, 0, 3 | DECOMP_COMPAT, 4877},
-	{0x1F118, 0, 3 | DECOMP_COMPAT, 4880},
-	{0x1F119, 0, 3 | DECOMP_COMPAT, 4883},
-	{0x1F11A, 0, 3 | DECOMP_COMPAT, 4886},
-	{0x1F11B, 0, 3 | DECOMP_COMPAT, 4889},
-	{0x1F11C, 0, 3 | DECOMP_COMPAT, 4892},
-	{0x1F11D, 0, 3 | DECOMP_COMPAT, 4895},
-	{0x1F11E, 0, 3 | DECOMP_COMPAT, 4898},
-	{0x1F11F, 0, 3 | DECOMP_COMPAT, 4901},
-	{0x1F120, 0, 3 | DECOMP_COMPAT, 4904},
-	{0x1F121, 0, 3 | DECOMP_COMPAT, 4907},
-	{0x1F122, 0, 3 | DECOMP_COMPAT, 4910},
-	{0x1F123, 0, 3 | DECOMP_COMPAT, 4913},
-	{0x1F124, 0, 3 | DECOMP_COMPAT, 4916},
-	{0x1F125, 0, 3 | DECOMP_COMPAT, 4919},
-	{0x1F126, 0, 3 | DECOMP_COMPAT, 4922},
-	{0x1F127, 0, 3 | DECOMP_COMPAT, 4925},
-	{0x1F128, 0, 3 | DECOMP_COMPAT, 4928},
-	{0x1F129, 0, 3 | DECOMP_COMPAT, 4931},
-	{0x1F12A, 0, 3 | DECOMP_COMPAT, 4934},
+	{0x1F100, 0, 2 | DECOMP_COMPAT, 4874},
+	{0x1F101, 0, 2 | DECOMP_COMPAT, 4876},
+	{0x1F102, 0, 2 | DECOMP_COMPAT, 4878},
+	{0x1F103, 0, 2 | DECOMP_COMPAT, 4880},
+	{0x1F104, 0, 2 | DECOMP_COMPAT, 4882},
+	{0x1F105, 0, 2 | DECOMP_COMPAT, 4884},
+	{0x1F106, 0, 2 | DECOMP_COMPAT, 4886},
+	{0x1F107, 0, 2 | DECOMP_COMPAT, 4888},
+	{0x1F108, 0, 2 | DECOMP_COMPAT, 4890},
+	{0x1F109, 0, 2 | DECOMP_COMPAT, 4892},
+	{0x1F10A, 0, 2 | DECOMP_COMPAT, 4894},
+	{0x1F110, 0, 3 | DECOMP_COMPAT, 4896},
+	{0x1F111, 0, 3 | DECOMP_COMPAT, 4899},
+	{0x1F112, 0, 3 | DECOMP_COMPAT, 4902},
+	{0x1F113, 0, 3 | DECOMP_COMPAT, 4905},
+	{0x1F114, 0, 3 | DECOMP_COMPAT, 4908},
+	{0x1F115, 0, 3 | DECOMP_COMPAT, 4911},
+	{0x1F116, 0, 3 | DECOMP_COMPAT, 4914},
+	{0x1F117, 0, 3 | DECOMP_COMPAT, 4917},
+	{0x1F118, 0, 3 | DECOMP_COMPAT, 4920},
+	{0x1F119, 0, 3 | DECOMP_COMPAT, 4923},
+	{0x1F11A, 0, 3 | DECOMP_COMPAT, 4926},
+	{0x1F11B, 0, 3 | DECOMP_COMPAT, 4929},
+	{0x1F11C, 0, 3 | DECOMP_COMPAT, 4932},
+	{0x1F11D, 0, 3 | DECOMP_COMPAT, 4935},
+	{0x1F11E, 0, 3 | DECOMP_COMPAT, 4938},
+	{0x1F11F, 0, 3 | DECOMP_COMPAT, 4941},
+	{0x1F120, 0, 3 | DECOMP_COMPAT, 4944},
+	{0x1F121, 0, 3 | DECOMP_COMPAT, 4947},
+	{0x1F122, 0, 3 | DECOMP_COMPAT, 4950},
+	{0x1F123, 0, 3 | DECOMP_COMPAT, 4953},
+	{0x1F124, 0, 3 | DECOMP_COMPAT, 4956},
+	{0x1F125, 0, 3 | DECOMP_COMPAT, 4959},
+	{0x1F126, 0, 3 | DECOMP_COMPAT, 4962},
+	{0x1F127, 0, 3 | DECOMP_COMPAT, 4965},
+	{0x1F128, 0, 3 | DECOMP_COMPAT, 4968},
+	{0x1F129, 0, 3 | DECOMP_COMPAT, 4971},
+	{0x1F12A, 0, 3 | DECOMP_COMPAT, 4974},
 	{0x1F12B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0043},
 	{0x1F12C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0052},
-	{0x1F12D, 0, 2 | DECOMP_COMPAT, 4937},
-	{0x1F12E, 0, 2 | DECOMP_COMPAT, 4939},
+	{0x1F12D, 0, 2 | DECOMP_COMPAT, 4977},
+	{0x1F12E, 0, 2 | DECOMP_COMPAT, 4979},
 	{0x1F130, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0041},
 	{0x1F131, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0042},
 	{0x1F132, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0043},
@@ -6193,18 +6261,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1F147, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0058},
 	{0x1F148, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0059},
 	{0x1F149, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x005A},
-	{0x1F14A, 0, 2 | DECOMP_COMPAT, 4941},
-	{0x1F14B, 0, 2 | DECOMP_COMPAT, 4943},
-	{0x1F14C, 0, 2 | DECOMP_COMPAT, 4945},
-	{0x1F14D, 0, 2 | DECOMP_COMPAT, 4947},
-	{0x1F14E, 0, 3 | DECOMP_COMPAT, 4949},
-	{0x1F14F, 0, 2 | DECOMP_COMPAT, 4952},
-	{0x1F16A, 0, 2 | DECOMP_COMPAT, 4954},
-	{0x1F16B, 0, 2 | DECOMP_COMPAT, 4956},
-	{0x1F16C, 0, 2 | DECOMP_COMPAT, 4958},
-	{0x1F190, 0, 2 | DECOMP_COMPAT, 4960},
-	{0x1F200, 0, 2 | DECOMP_COMPAT, 4962},
-	{0x1F201, 0, 2 | DECOMP_COMPAT, 4964},
+	{0x1F14A, 0, 2 | DECOMP_COMPAT, 4981},
+	{0x1F14B, 0, 2 | DECOMP_COMPAT, 4983},
+	{0x1F14C, 0, 2 | DECOMP_COMPAT, 4985},
+	{0x1F14D, 0, 2 | DECOMP_COMPAT, 4987},
+	{0x1F14E, 0, 3 | DECOMP_COMPAT, 4989},
+	{0x1F14F, 0, 2 | DECOMP_COMPAT, 4992},
+	{0x1F16A, 0, 2 | DECOMP_COMPAT, 4994},
+	{0x1F16B, 0, 2 | DECOMP_COMPAT, 4996},
+	{0x1F16C, 0, 2 | DECOMP_COMPAT, 4998},
+	{0x1F190, 0, 2 | DECOMP_COMPAT, 5000},
+	{0x1F200, 0, 2 | DECOMP_COMPAT, 5002},
+	{0x1F201, 0, 2 | DECOMP_COMPAT, 5004},
 	{0x1F202, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x30B5},
 	{0x1F210, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x624B},
 	{0x1F211, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5B57},
@@ -6250,15 +6318,15 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1F239, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5272},
 	{0x1F23A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x55B6},
 	{0x1F23B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x914D},
-	{0x1F240, 0, 3 | DECOMP_COMPAT, 4966},
-	{0x1F241, 0, 3 | DECOMP_COMPAT, 4969},
-	{0x1F242, 0, 3 | DECOMP_COMPAT, 4972},
-	{0x1F243, 0, 3 | DECOMP_COMPAT, 4975},
-	{0x1F244, 0, 3 | DECOMP_COMPAT, 4978},
-	{0x1F245, 0, 3 | DECOMP_COMPAT, 4981},
-	{0x1F246, 0, 3 | DECOMP_COMPAT, 4984},
-	{0x1F247, 0, 3 | DECOMP_COMPAT, 4987},
-	{0x1F248, 0, 3 | DECOMP_COMPAT, 4990},
+	{0x1F240, 0, 3 | DECOMP_COMPAT, 5006},
+	{0x1F241, 0, 3 | DECOMP_COMPAT, 5009},
+	{0x1F242, 0, 3 | DECOMP_COMPAT, 5012},
+	{0x1F243, 0, 3 | DECOMP_COMPAT, 5015},
+	{0x1F244, 0, 3 | DECOMP_COMPAT, 5018},
+	{0x1F245, 0, 3 | DECOMP_COMPAT, 5021},
+	{0x1F246, 0, 3 | DECOMP_COMPAT, 5024},
+	{0x1F247, 0, 3 | DECOMP_COMPAT, 5027},
+	{0x1F248, 0, 3 | DECOMP_COMPAT, 5030},
 	{0x1F250, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5F97},
 	{0x1F251, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x53EF},
 	{0x1FBF0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0030},
@@ -6274,7 +6342,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F800, 0, 1 | DECOMP_INLINE, 0x4E3D},
 	{0x2F801, 0, 1 | DECOMP_INLINE, 0x4E38},
 	{0x2F802, 0, 1 | DECOMP_INLINE, 0x4E41},
-	{0x2F803, 0, 1, 4993},
+	{0x2F803, 0, 1, 5033},
 	{0x2F804, 0, 1 | DECOMP_INLINE, 0x4F60},
 	{0x2F805, 0, 1 | DECOMP_INLINE, 0x4FAE},
 	{0x2F806, 0, 1 | DECOMP_INLINE, 0x4FBB},
@@ -6284,22 +6352,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F80A, 0, 1 | DECOMP_INLINE, 0x50E7},
 	{0x2F80B, 0, 1 | DECOMP_INLINE, 0x50CF},
 	{0x2F80C, 0, 1 | DECOMP_INLINE, 0x349E},
-	{0x2F80D, 0, 1, 4994},
+	{0x2F80D, 0, 1, 5034},
 	{0x2F80E, 0, 1 | DECOMP_INLINE, 0x514D},
 	{0x2F80F, 0, 1 | DECOMP_INLINE, 0x5154},
 	{0x2F810, 0, 1 | DECOMP_INLINE, 0x5164},
 	{0x2F811, 0, 1 | DECOMP_INLINE, 0x5177},
-	{0x2F812, 0, 1, 4995},
+	{0x2F812, 0, 1, 5035},
 	{0x2F813, 0, 1 | DECOMP_INLINE, 0x34B9},
 	{0x2F814, 0, 1 | DECOMP_INLINE, 0x5167},
 	{0x2F815, 0, 1 | DECOMP_INLINE, 0x518D},
-	{0x2F816, 0, 1, 4996},
+	{0x2F816, 0, 1, 5036},
 	{0x2F817, 0, 1 | DECOMP_INLINE, 0x5197},
 	{0x2F818, 0, 1 | DECOMP_INLINE, 0x51A4},
 	{0x2F819, 0, 1 | DECOMP_INLINE, 0x4ECC},
 	{0x2F81A, 0, 1 | DECOMP_INLINE, 0x51AC},
 	{0x2F81B, 0, 1 | DECOMP_INLINE, 0x51B5},
-	{0x2F81C, 0, 1, 4997},
+	{0x2F81C, 0, 1, 5037},
 	{0x2F81D, 0, 1 | DECOMP_INLINE, 0x51F5},
 	{0x2F81E, 0, 1 | DECOMP_INLINE, 0x5203},
 	{0x2F81F, 0, 1 | DECOMP_INLINE, 0x34DF},
@@ -6323,11 +6391,11 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F831, 0, 1 | DECOMP_INLINE, 0x537F},
 	{0x2F832, 0, 1 | DECOMP_INLINE, 0x537F},
 	{0x2F833, 0, 1 | DECOMP_INLINE, 0x537F},
-	{0x2F834, 0, 1, 4998},
+	{0x2F834, 0, 1, 5038},
 	{0x2F835, 0, 1 | DECOMP_INLINE, 0x7070},
 	{0x2F836, 0, 1 | DECOMP_INLINE, 0x53CA},
 	{0x2F837, 0, 1 | DECOMP_INLINE, 0x53DF},
-	{0x2F838, 0, 1, 4999},
+	{0x2F838, 0, 1, 5039},
 	{0x2F839, 0, 1 | DECOMP_INLINE, 0x53EB},
 	{0x2F83A, 0, 1 | DECOMP_INLINE, 0x53F1},
 	{0x2F83B, 0, 1 | DECOMP_INLINE, 0x5406},
@@ -6360,15 +6428,15 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F856, 0, 1 | DECOMP_INLINE, 0x5832},
 	{0x2F857, 0, 1 | DECOMP_INLINE, 0x5831},
 	{0x2F858, 0, 1 | DECOMP_INLINE, 0x58AC},
-	{0x2F859, 0, 1, 5000},
+	{0x2F859, 0, 1, 5040},
 	{0x2F85A, 0, 1 | DECOMP_INLINE, 0x58F2},
 	{0x2F85B, 0, 1 | DECOMP_INLINE, 0x58F7},
 	{0x2F85C, 0, 1 | DECOMP_INLINE, 0x5906},
 	{0x2F85D, 0, 1 | DECOMP_INLINE, 0x591A},
 	{0x2F85E, 0, 1 | DECOMP_INLINE, 0x5922},
 	{0x2F85F, 0, 1 | DECOMP_INLINE, 0x5962},
-	{0x2F860, 0, 1, 5001},
-	{0x2F861, 0, 1, 5002},
+	{0x2F860, 0, 1, 5041},
+	{0x2F861, 0, 1, 5042},
 	{0x2F862, 0, 1 | DECOMP_INLINE, 0x59EC},
 	{0x2F863, 0, 1 | DECOMP_INLINE, 0x5A1B},
 	{0x2F864, 0, 1 | DECOMP_INLINE, 0x5A27},
@@ -6379,12 +6447,12 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F869, 0, 1 | DECOMP_INLINE, 0x5B08},
 	{0x2F86A, 0, 1 | DECOMP_INLINE, 0x5B3E},
 	{0x2F86B, 0, 1 | DECOMP_INLINE, 0x5B3E},
-	{0x2F86C, 0, 1, 5003},
+	{0x2F86C, 0, 1, 5043},
 	{0x2F86D, 0, 1 | DECOMP_INLINE, 0x5BC3},
 	{0x2F86E, 0, 1 | DECOMP_INLINE, 0x5BD8},
 	{0x2F86F, 0, 1 | DECOMP_INLINE, 0x5BE7},
 	{0x2F870, 0, 1 | DECOMP_INLINE, 0x5BF3},
-	{0x2F871, 0, 1, 5004},
+	{0x2F871, 0, 1, 5044},
 	{0x2F872, 0, 1 | DECOMP_INLINE, 0x5BFF},
 	{0x2F873, 0, 1 | DECOMP_INLINE, 0x5C06},
 	{0x2F874, 0, 1 | DECOMP_INLINE, 0x5F53},
@@ -6394,9 +6462,9 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F878, 0, 1 | DECOMP_INLINE, 0x5C6E},
 	{0x2F879, 0, 1 | DECOMP_INLINE, 0x5CC0},
 	{0x2F87A, 0, 1 | DECOMP_INLINE, 0x5C8D},
-	{0x2F87B, 0, 1, 5005},
+	{0x2F87B, 0, 1, 5045},
 	{0x2F87C, 0, 1 | DECOMP_INLINE, 0x5D43},
-	{0x2F87D, 0, 1, 5006},
+	{0x2F87D, 0, 1, 5046},
 	{0x2F87E, 0, 1 | DECOMP_INLINE, 0x5D6E},
 	{0x2F87F, 0, 1 | DECOMP_INLINE, 0x5D6B},
 	{0x2F880, 0, 1 | DECOMP_INLINE, 0x5D7C},
@@ -6408,22 +6476,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F886, 0, 1 | DECOMP_INLINE, 0x5E3D},
 	{0x2F887, 0, 1 | DECOMP_INLINE, 0x5E69},
 	{0x2F888, 0, 1 | DECOMP_INLINE, 0x3862},
-	{0x2F889, 0, 1, 5007},
+	{0x2F889, 0, 1, 5047},
 	{0x2F88A, 0, 1 | DECOMP_INLINE, 0x387C},
 	{0x2F88B, 0, 1 | DECOMP_INLINE, 0x5EB0},
 	{0x2F88C, 0, 1 | DECOMP_INLINE, 0x5EB3},
 	{0x2F88D, 0, 1 | DECOMP_INLINE, 0x5EB6},
 	{0x2F88E, 0, 1 | DECOMP_INLINE, 0x5ECA},
-	{0x2F88F, 0, 1, 5008},
+	{0x2F88F, 0, 1, 5048},
 	{0x2F890, 0, 1 | DECOMP_INLINE, 0x5EFE},
-	{0x2F891, 0, 1, 5009},
-	{0x2F892, 0, 1, 5010},
+	{0x2F891, 0, 1, 5049},
+	{0x2F892, 0, 1, 5050},
 	{0x2F893, 0, 1 | DECOMP_INLINE, 0x8201},
 	{0x2F894, 0, 1 | DECOMP_INLINE, 0x5F22},
 	{0x2F895, 0, 1 | DECOMP_INLINE, 0x5F22},
 	{0x2F896, 0, 1 | DECOMP_INLINE, 0x38C7},
-	{0x2F897, 0, 1, 5011},
-	{0x2F898, 0, 1, 5012},
+	{0x2F897, 0, 1, 5051},
+	{0x2F898, 0, 1, 5052},
 	{0x2F899, 0, 1 | DECOMP_INLINE, 0x5F62},
 	{0x2F89A, 0, 1 | DECOMP_INLINE, 0x5F6B},
 	{0x2F89B, 0, 1 | DECOMP_INLINE, 0x38E3},
@@ -6435,7 +6503,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8A1, 0, 1 | DECOMP_INLINE, 0x393A},
 	{0x2F8A2, 0, 1 | DECOMP_INLINE, 0x391C},
 	{0x2F8A3, 0, 1 | DECOMP_INLINE, 0x6094},
-	{0x2F8A4, 0, 1, 5013},
+	{0x2F8A4, 0, 1, 5053},
 	{0x2F8A5, 0, 1 | DECOMP_INLINE, 0x60C7},
 	{0x2F8A6, 0, 1 | DECOMP_INLINE, 0x6148},
 	{0x2F8A7, 0, 1 | DECOMP_INLINE, 0x614C},
@@ -6455,13 +6523,13 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8B5, 0, 1 | DECOMP_INLINE, 0x62B1},
 	{0x2F8B6, 0, 1 | DECOMP_INLINE, 0x62D4},
 	{0x2F8B7, 0, 1 | DECOMP_INLINE, 0x6350},
-	{0x2F8B8, 0, 1, 5014},
+	{0x2F8B8, 0, 1, 5054},
 	{0x2F8B9, 0, 1 | DECOMP_INLINE, 0x633D},
 	{0x2F8BA, 0, 1 | DECOMP_INLINE, 0x62FC},
 	{0x2F8BB, 0, 1 | DECOMP_INLINE, 0x6368},
 	{0x2F8BC, 0, 1 | DECOMP_INLINE, 0x6383},
 	{0x2F8BD, 0, 1 | DECOMP_INLINE, 0x63E4},
-	{0x2F8BE, 0, 1, 5015},
+	{0x2F8BE, 0, 1, 5055},
 	{0x2F8BF, 0, 1 | DECOMP_INLINE, 0x6422},
 	{0x2F8C0, 0, 1 | DECOMP_INLINE, 0x63C5},
 	{0x2F8C1, 0, 1 | DECOMP_INLINE, 0x63A9},
@@ -6473,7 +6541,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8C7, 0, 1 | DECOMP_INLINE, 0x3A6C},
 	{0x2F8C8, 0, 1 | DECOMP_INLINE, 0x654F},
 	{0x2F8C9, 0, 1 | DECOMP_INLINE, 0x656C},
-	{0x2F8CA, 0, 1, 5016},
+	{0x2F8CA, 0, 1, 5056},
 	{0x2F8CB, 0, 1 | DECOMP_INLINE, 0x65E3},
 	{0x2F8CC, 0, 1 | DECOMP_INLINE, 0x66F8},
 	{0x2F8CD, 0, 1 | DECOMP_INLINE, 0x6649},
@@ -6492,13 +6560,13 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8DA, 0, 1 | DECOMP_INLINE, 0x6721},
 	{0x2F8DB, 0, 1 | DECOMP_INLINE, 0x675E},
 	{0x2F8DC, 0, 1 | DECOMP_INLINE, 0x6753},
-	{0x2F8DD, 0, 1, 5017},
+	{0x2F8DD, 0, 1, 5057},
 	{0x2F8DE, 0, 1 | DECOMP_INLINE, 0x3B49},
 	{0x2F8DF, 0, 1 | DECOMP_INLINE, 0x67FA},
 	{0x2F8E0, 0, 1 | DECOMP_INLINE, 0x6785},
 	{0x2F8E1, 0, 1 | DECOMP_INLINE, 0x6852},
 	{0x2F8E2, 0, 1 | DECOMP_INLINE, 0x6885},
-	{0x2F8E3, 0, 1, 5018},
+	{0x2F8E3, 0, 1, 5058},
 	{0x2F8E4, 0, 1 | DECOMP_INLINE, 0x688E},
 	{0x2F8E5, 0, 1 | DECOMP_INLINE, 0x681F},
 	{0x2F8E6, 0, 1 | DECOMP_INLINE, 0x6914},
@@ -6507,22 +6575,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8E9, 0, 1 | DECOMP_INLINE, 0x69A3},
 	{0x2F8EA, 0, 1 | DECOMP_INLINE, 0x69EA},
 	{0x2F8EB, 0, 1 | DECOMP_INLINE, 0x6AA8},
-	{0x2F8EC, 0, 1, 5019},
+	{0x2F8EC, 0, 1, 5059},
 	{0x2F8ED, 0, 1 | DECOMP_INLINE, 0x6ADB},
 	{0x2F8EE, 0, 1 | DECOMP_INLINE, 0x3C18},
 	{0x2F8EF, 0, 1 | DECOMP_INLINE, 0x6B21},
-	{0x2F8F0, 0, 1, 5020},
+	{0x2F8F0, 0, 1, 5060},
 	{0x2F8F1, 0, 1 | DECOMP_INLINE, 0x6B54},
 	{0x2F8F2, 0, 1 | DECOMP_INLINE, 0x3C4E},
 	{0x2F8F3, 0, 1 | DECOMP_INLINE, 0x6B72},
 	{0x2F8F4, 0, 1 | DECOMP_INLINE, 0x6B9F},
 	{0x2F8F5, 0, 1 | DECOMP_INLINE, 0x6BBA},
 	{0x2F8F6, 0, 1 | DECOMP_INLINE, 0x6BBB},
-	{0x2F8F7, 0, 1, 5021},
-	{0x2F8F8, 0, 1, 5022},
-	{0x2F8F9, 0, 1, 5023},
+	{0x2F8F7, 0, 1, 5061},
+	{0x2F8F8, 0, 1, 5062},
+	{0x2F8F9, 0, 1, 5063},
 	{0x2F8FA, 0, 1 | DECOMP_INLINE, 0x6C4E},
-	{0x2F8FB, 0, 1, 5024},
+	{0x2F8FB, 0, 1, 5064},
 	{0x2F8FC, 0, 1 | DECOMP_INLINE, 0x6CBF},
 	{0x2F8FD, 0, 1 | DECOMP_INLINE, 0x6CCD},
 	{0x2F8FE, 0, 1 | DECOMP_INLINE, 0x6C67},
@@ -6533,18 +6601,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F903, 0, 1 | DECOMP_INLINE, 0x6D69},
 	{0x2F904, 0, 1 | DECOMP_INLINE, 0x6D78},
 	{0x2F905, 0, 1 | DECOMP_INLINE, 0x6D85},
-	{0x2F906, 0, 1, 5025},
+	{0x2F906, 0, 1, 5065},
 	{0x2F907, 0, 1 | DECOMP_INLINE, 0x6D34},
 	{0x2F908, 0, 1 | DECOMP_INLINE, 0x6E2F},
 	{0x2F909, 0, 1 | DECOMP_INLINE, 0x6E6E},
 	{0x2F90A, 0, 1 | DECOMP_INLINE, 0x3D33},
 	{0x2F90B, 0, 1 | DECOMP_INLINE, 0x6ECB},
 	{0x2F90C, 0, 1 | DECOMP_INLINE, 0x6EC7},
-	{0x2F90D, 0, 1, 5026},
+	{0x2F90D, 0, 1, 5066},
 	{0x2F90E, 0, 1 | DECOMP_INLINE, 0x6DF9},
 	{0x2F90F, 0, 1 | DECOMP_INLINE, 0x6F6E},
-	{0x2F910, 0, 1, 5027},
-	{0x2F911, 0, 1, 5028},
+	{0x2F910, 0, 1, 5067},
+	{0x2F911, 0, 1, 5068},
 	{0x2F912, 0, 1 | DECOMP_INLINE, 0x6FC6},
 	{0x2F913, 0, 1 | DECOMP_INLINE, 0x7039},
 	{0x2F914, 0, 1 | DECOMP_INLINE, 0x701E},
@@ -6554,19 +6622,19 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F918, 0, 1 | DECOMP_INLINE, 0x707D},
 	{0x2F919, 0, 1 | DECOMP_INLINE, 0x7077},
 	{0x2F91A, 0, 1 | DECOMP_INLINE, 0x70AD},
-	{0x2F91B, 0, 1, 5029},
+	{0x2F91B, 0, 1, 5069},
 	{0x2F91C, 0, 1 | DECOMP_INLINE, 0x7145},
-	{0x2F91D, 0, 1, 5030},
+	{0x2F91D, 0, 1, 5070},
 	{0x2F91E, 0, 1 | DECOMP_INLINE, 0x719C},
-	{0x2F91F, 0, 1, 5031},
+	{0x2F91F, 0, 1, 5071},
 	{0x2F920, 0, 1 | DECOMP_INLINE, 0x7228},
 	{0x2F921, 0, 1 | DECOMP_INLINE, 0x7235},
 	{0x2F922, 0, 1 | DECOMP_INLINE, 0x7250},
-	{0x2F923, 0, 1, 5032},
+	{0x2F923, 0, 1, 5072},
 	{0x2F924, 0, 1 | DECOMP_INLINE, 0x7280},
 	{0x2F925, 0, 1 | DECOMP_INLINE, 0x7295},
-	{0x2F926, 0, 1, 5033},
-	{0x2F927, 0, 1, 5034},
+	{0x2F926, 0, 1, 5073},
+	{0x2F927, 0, 1, 5074},
 	{0x2F928, 0, 1 | DECOMP_INLINE, 0x737A},
 	{0x2F929, 0, 1 | DECOMP_INLINE, 0x738B},
 	{0x2F92A, 0, 1 | DECOMP_INLINE, 0x3EAC},
@@ -6580,22 +6648,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F932, 0, 1 | DECOMP_INLINE, 0x74CA},
 	{0x2F933, 0, 1 | DECOMP_INLINE, 0x3F1B},
 	{0x2F934, 0, 1 | DECOMP_INLINE, 0x7524},
-	{0x2F935, 0, 1, 5035},
+	{0x2F935, 0, 1, 5075},
 	{0x2F936, 0, 1 | DECOMP_INLINE, 0x753E},
-	{0x2F937, 0, 1, 5036},
+	{0x2F937, 0, 1, 5076},
 	{0x2F938, 0, 1 | DECOMP_INLINE, 0x7570},
-	{0x2F939, 0, 1, 5037},
+	{0x2F939, 0, 1, 5077},
 	{0x2F93A, 0, 1 | DECOMP_INLINE, 0x7610},
-	{0x2F93B, 0, 1, 5038},
-	{0x2F93C, 0, 1, 5039},
-	{0x2F93D, 0, 1, 5040},
+	{0x2F93B, 0, 1, 5078},
+	{0x2F93C, 0, 1, 5079},
+	{0x2F93D, 0, 1, 5080},
 	{0x2F93E, 0, 1 | DECOMP_INLINE, 0x3FFC},
 	{0x2F93F, 0, 1 | DECOMP_INLINE, 0x4008},
 	{0x2F940, 0, 1 | DECOMP_INLINE, 0x76F4},
-	{0x2F941, 0, 1, 5041},
-	{0x2F942, 0, 1, 5042},
-	{0x2F943, 0, 1, 5043},
-	{0x2F944, 0, 1, 5044},
+	{0x2F941, 0, 1, 5081},
+	{0x2F942, 0, 1, 5082},
+	{0x2F943, 0, 1, 5083},
+	{0x2F944, 0, 1, 5084},
 	{0x2F945, 0, 1 | DECOMP_INLINE, 0x771E},
 	{0x2F946, 0, 1 | DECOMP_INLINE, 0x771F},
 	{0x2F947, 0, 1 | DECOMP_INLINE, 0x771F},
@@ -6604,68 +6672,68 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F94A, 0, 1 | DECOMP_INLINE, 0x778B},
 	{0x2F94B, 0, 1 | DECOMP_INLINE, 0x4046},
 	{0x2F94C, 0, 1 | DECOMP_INLINE, 0x4096},
-	{0x2F94D, 0, 1, 5045},
+	{0x2F94D, 0, 1, 5085},
 	{0x2F94E, 0, 1 | DECOMP_INLINE, 0x784E},
 	{0x2F94F, 0, 1 | DECOMP_INLINE, 0x788C},
 	{0x2F950, 0, 1 | DECOMP_INLINE, 0x78CC},
 	{0x2F951, 0, 1 | DECOMP_INLINE, 0x40E3},
-	{0x2F952, 0, 1, 5046},
+	{0x2F952, 0, 1, 5086},
 	{0x2F953, 0, 1 | DECOMP_INLINE, 0x7956},
-	{0x2F954, 0, 1, 5047},
-	{0x2F955, 0, 1, 5048},
+	{0x2F954, 0, 1, 5087},
+	{0x2F955, 0, 1, 5088},
 	{0x2F956, 0, 1 | DECOMP_INLINE, 0x798F},
 	{0x2F957, 0, 1 | DECOMP_INLINE, 0x79EB},
 	{0x2F958, 0, 1 | DECOMP_INLINE, 0x412F},
 	{0x2F959, 0, 1 | DECOMP_INLINE, 0x7A40},
 	{0x2F95A, 0, 1 | DECOMP_INLINE, 0x7A4A},
 	{0x2F95B, 0, 1 | DECOMP_INLINE, 0x7A4F},
-	{0x2F95C, 0, 1, 5049},
-	{0x2F95D, 0, 1, 5050},
-	{0x2F95E, 0, 1, 5051},
+	{0x2F95C, 0, 1, 5089},
+	{0x2F95D, 0, 1, 5090},
+	{0x2F95E, 0, 1, 5091},
 	{0x2F95F, 0, 1 | DECOMP_INLINE, 0x7AEE},
 	{0x2F960, 0, 1 | DECOMP_INLINE, 0x4202},
-	{0x2F961, 0, 1, 5052},
+	{0x2F961, 0, 1, 5092},
 	{0x2F962, 0, 1 | DECOMP_INLINE, 0x7BC6},
 	{0x2F963, 0, 1 | DECOMP_INLINE, 0x7BC9},
 	{0x2F964, 0, 1 | DECOMP_INLINE, 0x4227},
-	{0x2F965, 0, 1, 5053},
+	{0x2F965, 0, 1, 5093},
 	{0x2F966, 0, 1 | DECOMP_INLINE, 0x7CD2},
 	{0x2F967, 0, 1 | DECOMP_INLINE, 0x42A0},
 	{0x2F968, 0, 1 | DECOMP_INLINE, 0x7CE8},
 	{0x2F969, 0, 1 | DECOMP_INLINE, 0x7CE3},
 	{0x2F96A, 0, 1 | DECOMP_INLINE, 0x7D00},
-	{0x2F96B, 0, 1, 5054},
+	{0x2F96B, 0, 1, 5094},
 	{0x2F96C, 0, 1 | DECOMP_INLINE, 0x7D63},
 	{0x2F96D, 0, 1 | DECOMP_INLINE, 0x4301},
 	{0x2F96E, 0, 1 | DECOMP_INLINE, 0x7DC7},
 	{0x2F96F, 0, 1 | DECOMP_INLINE, 0x7E02},
 	{0x2F970, 0, 1 | DECOMP_INLINE, 0x7E45},
 	{0x2F971, 0, 1 | DECOMP_INLINE, 0x4334},
-	{0x2F972, 0, 1, 5055},
-	{0x2F973, 0, 1, 5056},
+	{0x2F972, 0, 1, 5095},
+	{0x2F973, 0, 1, 5096},
 	{0x2F974, 0, 1 | DECOMP_INLINE, 0x4359},
-	{0x2F975, 0, 1, 5057},
+	{0x2F975, 0, 1, 5097},
 	{0x2F976, 0, 1 | DECOMP_INLINE, 0x7F7A},
-	{0x2F977, 0, 1, 5058},
+	{0x2F977, 0, 1, 5098},
 	{0x2F978, 0, 1 | DECOMP_INLINE, 0x7F95},
 	{0x2F979, 0, 1 | DECOMP_INLINE, 0x7FFA},
 	{0x2F97A, 0, 1 | DECOMP_INLINE, 0x8005},
-	{0x2F97B, 0, 1, 5059},
-	{0x2F97C, 0, 1, 5060},
+	{0x2F97B, 0, 1, 5099},
+	{0x2F97C, 0, 1, 5100},
 	{0x2F97D, 0, 1 | DECOMP_INLINE, 0x8060},
-	{0x2F97E, 0, 1, 5061},
+	{0x2F97E, 0, 1, 5101},
 	{0x2F97F, 0, 1 | DECOMP_INLINE, 0x8070},
-	{0x2F980, 0, 1, 5062},
+	{0x2F980, 0, 1, 5102},
 	{0x2F981, 0, 1 | DECOMP_INLINE, 0x43D5},
 	{0x2F982, 0, 1 | DECOMP_INLINE, 0x80B2},
 	{0x2F983, 0, 1 | DECOMP_INLINE, 0x8103},
 	{0x2F984, 0, 1 | DECOMP_INLINE, 0x440B},
 	{0x2F985, 0, 1 | DECOMP_INLINE, 0x813E},
 	{0x2F986, 0, 1 | DECOMP_INLINE, 0x5AB5},
-	{0x2F987, 0, 1, 5063},
-	{0x2F988, 0, 1, 5064},
-	{0x2F989, 0, 1, 5065},
-	{0x2F98A, 0, 1, 5066},
+	{0x2F987, 0, 1, 5103},
+	{0x2F988, 0, 1, 5104},
+	{0x2F989, 0, 1, 5105},
+	{0x2F98A, 0, 1, 5106},
 	{0x2F98B, 0, 1 | DECOMP_INLINE, 0x8201},
 	{0x2F98C, 0, 1 | DECOMP_INLINE, 0x8204},
 	{0x2F98D, 0, 1 | DECOMP_INLINE, 0x8F9E},
@@ -6678,7 +6746,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F994, 0, 1 | DECOMP_INLINE, 0x82B3},
 	{0x2F995, 0, 1 | DECOMP_INLINE, 0x82BD},
 	{0x2F996, 0, 1 | DECOMP_INLINE, 0x82E6},
-	{0x2F997, 0, 1, 5067},
+	{0x2F997, 0, 1, 5107},
 	{0x2F998, 0, 1 | DECOMP_INLINE, 0x82E5},
 	{0x2F999, 0, 1 | DECOMP_INLINE, 0x831D},
 	{0x2F99A, 0, 1 | DECOMP_INLINE, 0x8363},
@@ -6691,20 +6759,20 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F9A1, 0, 1 | DECOMP_INLINE, 0x83CA},
 	{0x2F9A2, 0, 1 | DECOMP_INLINE, 0x83CC},
 	{0x2F9A3, 0, 1 | DECOMP_INLINE, 0x83DC},
-	{0x2F9A4, 0, 1, 5068},
-	{0x2F9A5, 0, 1, 5069},
-	{0x2F9A6, 0, 1, 5070},
+	{0x2F9A4, 0, 1, 5108},
+	{0x2F9A5, 0, 1, 5109},
+	{0x2F9A6, 0, 1, 5110},
 	{0x2F9A7, 0, 1 | DECOMP_INLINE, 0x452B},
 	{0x2F9A8, 0, 1 | DECOMP_INLINE, 0x84F1},
 	{0x2F9A9, 0, 1 | DECOMP_INLINE, 0x84F3},
 	{0x2F9AA, 0, 1 | DECOMP_INLINE, 0x8516},
-	{0x2F9AB, 0, 1, 5071},
+	{0x2F9AB, 0, 1, 5111},
 	{0x2F9AC, 0, 1 | DECOMP_INLINE, 0x8564},
-	{0x2F9AD, 0, 1, 5072},
+	{0x2F9AD, 0, 1, 5112},
 	{0x2F9AE, 0, 1 | DECOMP_INLINE, 0x455D},
 	{0x2F9AF, 0, 1 | DECOMP_INLINE, 0x4561},
-	{0x2F9B0, 0, 1, 5073},
-	{0x2F9B1, 0, 1, 5074},
+	{0x2F9B0, 0, 1, 5113},
+	{0x2F9B1, 0, 1, 5114},
 	{0x2F9B2, 0, 1 | DECOMP_INLINE, 0x456B},
 	{0x2F9B3, 0, 1 | DECOMP_INLINE, 0x8650},
 	{0x2F9B4, 0, 1 | DECOMP_INLINE, 0x865C},
@@ -6724,39 +6792,39 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F9C2, 0, 1 | DECOMP_INLINE, 0x45F9},
 	{0x2F9C3, 0, 1 | DECOMP_INLINE, 0x8860},
 	{0x2F9C4, 0, 1 | DECOMP_INLINE, 0x8863},
-	{0x2F9C5, 0, 1, 5075},
+	{0x2F9C5, 0, 1, 5115},
 	{0x2F9C6, 0, 1 | DECOMP_INLINE, 0x88D7},
 	{0x2F9C7, 0, 1 | DECOMP_INLINE, 0x88DE},
 	{0x2F9C8, 0, 1 | DECOMP_INLINE, 0x4635},
 	{0x2F9C9, 0, 1 | DECOMP_INLINE, 0x88FA},
 	{0x2F9CA, 0, 1 | DECOMP_INLINE, 0x34BB},
-	{0x2F9CB, 0, 1, 5076},
-	{0x2F9CC, 0, 1, 5077},
+	{0x2F9CB, 0, 1, 5116},
+	{0x2F9CC, 0, 1, 5117},
 	{0x2F9CD, 0, 1 | DECOMP_INLINE, 0x46BE},
 	{0x2F9CE, 0, 1 | DECOMP_INLINE, 0x46C7},
 	{0x2F9CF, 0, 1 | DECOMP_INLINE, 0x8AA0},
 	{0x2F9D0, 0, 1 | DECOMP_INLINE, 0x8AED},
 	{0x2F9D1, 0, 1 | DECOMP_INLINE, 0x8B8A},
 	{0x2F9D2, 0, 1 | DECOMP_INLINE, 0x8C55},
-	{0x2F9D3, 0, 1, 5078},
+	{0x2F9D3, 0, 1, 5118},
 	{0x2F9D4, 0, 1 | DECOMP_INLINE, 0x8CAB},
 	{0x2F9D5, 0, 1 | DECOMP_INLINE, 0x8CC1},
 	{0x2F9D6, 0, 1 | DECOMP_INLINE, 0x8D1B},
 	{0x2F9D7, 0, 1 | DECOMP_INLINE, 0x8D77},
-	{0x2F9D8, 0, 1, 5079},
-	{0x2F9D9, 0, 1, 5080},
+	{0x2F9D8, 0, 1, 5119},
+	{0x2F9D9, 0, 1, 5120},
 	{0x2F9DA, 0, 1 | DECOMP_INLINE, 0x8DCB},
 	{0x2F9DB, 0, 1 | DECOMP_INLINE, 0x8DBC},
 	{0x2F9DC, 0, 1 | DECOMP_INLINE, 0x8DF0},
-	{0x2F9DD, 0, 1, 5081},
+	{0x2F9DD, 0, 1, 5121},
 	{0x2F9DE, 0, 1 | DECOMP_INLINE, 0x8ED4},
 	{0x2F9DF, 0, 1 | DECOMP_INLINE, 0x8F38},
-	{0x2F9E0, 0, 1, 5082},
-	{0x2F9E1, 0, 1, 5083},
+	{0x2F9E0, 0, 1, 5122},
+	{0x2F9E1, 0, 1, 5123},
 	{0x2F9E2, 0, 1 | DECOMP_INLINE, 0x9094},
 	{0x2F9E3, 0, 1 | DECOMP_INLINE, 0x90F1},
 	{0x2F9E4, 0, 1 | DECOMP_INLINE, 0x9111},
-	{0x2F9E5, 0, 1, 5084},
+	{0x2F9E5, 0, 1, 5124},
 	{0x2F9E6, 0, 1 | DECOMP_INLINE, 0x911B},
 	{0x2F9E7, 0, 1 | DECOMP_INLINE, 0x9238},
 	{0x2F9E8, 0, 1 | DECOMP_INLINE, 0x92D7},
@@ -6764,27 +6832,27 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F9EA, 0, 1 | DECOMP_INLINE, 0x927C},
 	{0x2F9EB, 0, 1 | DECOMP_INLINE, 0x93F9},
 	{0x2F9EC, 0, 1 | DECOMP_INLINE, 0x9415},
-	{0x2F9ED, 0, 1, 5085},
+	{0x2F9ED, 0, 1, 5125},
 	{0x2F9EE, 0, 1 | DECOMP_INLINE, 0x958B},
 	{0x2F9EF, 0, 1 | DECOMP_INLINE, 0x4995},
 	{0x2F9F0, 0, 1 | DECOMP_INLINE, 0x95B7},
-	{0x2F9F1, 0, 1, 5086},
+	{0x2F9F1, 0, 1, 5126},
 	{0x2F9F2, 0, 1 | DECOMP_INLINE, 0x49E6},
 	{0x2F9F3, 0, 1 | DECOMP_INLINE, 0x96C3},
 	{0x2F9F4, 0, 1 | DECOMP_INLINE, 0x5DB2},
 	{0x2F9F5, 0, 1 | DECOMP_INLINE, 0x9723},
-	{0x2F9F6, 0, 1, 5087},
-	{0x2F9F7, 0, 1, 5088},
+	{0x2F9F6, 0, 1, 5127},
+	{0x2F9F7, 0, 1, 5128},
 	{0x2F9F8, 0, 1 | DECOMP_INLINE, 0x4A6E},
 	{0x2F9F9, 0, 1 | DECOMP_INLINE, 0x4A76},
 	{0x2F9FA, 0, 1 | DECOMP_INLINE, 0x97E0},
-	{0x2F9FB, 0, 1, 5089},
+	{0x2F9FB, 0, 1, 5129},
 	{0x2F9FC, 0, 1 | DECOMP_INLINE, 0x4AB2},
-	{0x2F9FD, 0, 1, 5090},
+	{0x2F9FD, 0, 1, 5130},
 	{0x2F9FE, 0, 1 | DECOMP_INLINE, 0x980B},
 	{0x2F9FF, 0, 1 | DECOMP_INLINE, 0x980B},
 	{0x2FA00, 0, 1 | DECOMP_INLINE, 0x9829},
-	{0x2FA01, 0, 1, 5091},
+	{0x2FA01, 0, 1, 5131},
 	{0x2FA02, 0, 1 | DECOMP_INLINE, 0x98E2},
 	{0x2FA03, 0, 1 | DECOMP_INLINE, 0x4B33},
 	{0x2FA04, 0, 1 | DECOMP_INLINE, 0x9929},
@@ -6792,18 +6860,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2FA06, 0, 1 | DECOMP_INLINE, 0x99C2},
 	{0x2FA07, 0, 1 | DECOMP_INLINE, 0x99FE},
 	{0x2FA08, 0, 1 | DECOMP_INLINE, 0x4BCE},
-	{0x2FA09, 0, 1, 5092},
+	{0x2FA09, 0, 1, 5132},
 	{0x2FA0A, 0, 1 | DECOMP_INLINE, 0x9B12},
 	{0x2FA0B, 0, 1 | DECOMP_INLINE, 0x9C40},
 	{0x2FA0C, 0, 1 | DECOMP_INLINE, 0x9CFD},
 	{0x2FA0D, 0, 1 | DECOMP_INLINE, 0x4CCE},
 	{0x2FA0E, 0, 1 | DECOMP_INLINE, 0x4CED},
 	{0x2FA0F, 0, 1 | DECOMP_INLINE, 0x9D67},
-	{0x2FA10, 0, 1, 5093},
+	{0x2FA10, 0, 1, 5133},
 	{0x2FA11, 0, 1 | DECOMP_INLINE, 0x4CF8},
-	{0x2FA12, 0, 1, 5094},
-	{0x2FA13, 0, 1, 5095},
-	{0x2FA14, 0, 1, 5096},
+	{0x2FA12, 0, 1, 5134},
+	{0x2FA13, 0, 1, 5135},
+	{0x2FA14, 0, 1, 5136},
 	{0x2FA15, 0, 1 | DECOMP_INLINE, 0x9EBB},
 	{0x2FA16, 0, 1 | DECOMP_INLINE, 0x4D56},
 	{0x2FA17, 0, 1 | DECOMP_INLINE, 0x9EF9},
@@ -6812,12 +6880,12 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2FA1A, 0, 1 | DECOMP_INLINE, 0x9F0F},
 	{0x2FA1B, 0, 1 | DECOMP_INLINE, 0x9F16},
 	{0x2FA1C, 0, 1 | DECOMP_INLINE, 0x9F3B},
-	{0x2FA1D, 0, 1, 5097}
+	{0x2FA1D, 0, 1, 5137}
 
 };
 
 /* codepoints array  */
-static const uint32 UnicodeDecomp_codepoints[5098] =
+static const uint32 UnicodeDecomp_codepoints[5138] =
 {
 	 /* 0 */ 0x0020, 0x0308,
 	 /* 2 */ 0x0020, 0x0304,
@@ -8913,202 +8981,222 @@ static const uint32 UnicodeDecomp_codepoints[5098] =
 	 /* 4770 */ 0x0644, 0x0625,
 	 /* 4772 */ 0x0644, 0x0627,
 	 /* 4774 */ 0x0644, 0x0627,
-	 /* 4776 */ 0x1DF04,
-	 /* 4777 */ 0x1DF05,
-	 /* 4778 */ 0x1DF06,
-	 /* 4779 */ 0x1DF08,
-	 /* 4780 */ 0x1DF0A,
-	 /* 4781 */ 0x1DF1E,
-	 /* 4782 */ 0x11099, 0x110BA,
-	 /* 4784 */ 0x1109B, 0x110BA,
-	 /* 4786 */ 0x110A5, 0x110BA,
-	 /* 4788 */ 0x11131, 0x11127,
-	 /* 4790 */ 0x11132, 0x11127,
-	 /* 4792 */ 0x11347, 0x1133E,
-	 /* 4794 */ 0x11347, 0x11357,
-	 /* 4796 */ 0x114B9, 0x114BA,
-	 /* 4798 */ 0x114B9, 0x114B0,
-	 /* 4800 */ 0x114B9, 0x114BD,
-	 /* 4802 */ 0x115B8, 0x115AF,
-	 /* 4804 */ 0x115B9, 0x115AF,
-	 /* 4806 */ 0x11935, 0x11930,
-	 /* 4808 */ 0x1D157, 0x1D165,
-	 /* 4810 */ 0x1D158, 0x1D165,
-	 /* 4812 */ 0x1D15F, 0x1D16E,
-	 /* 4814 */ 0x1D15F, 0x1D16F,
-	 /* 4816 */ 0x1D15F, 0x1D170,
-	 /* 4818 */ 0x1D15F, 0x1D171,
-	 /* 4820 */ 0x1D15F, 0x1D172,
-	 /* 4822 */ 0x1D1B9, 0x1D165,
-	 /* 4824 */ 0x1D1BA, 0x1D165,
-	 /* 4826 */ 0x1D1BB, 0x1D16E,
-	 /* 4828 */ 0x1D1BC, 0x1D16E,
-	 /* 4830 */ 0x1D1BB, 0x1D16F,
-	 /* 4832 */ 0x1D1BC, 0x1D16F,
-	 /* 4834 */ 0x0030, 0x002E,
-	 /* 4836 */ 0x0030, 0x002C,
-	 /* 4838 */ 0x0031, 0x002C,
-	 /* 4840 */ 0x0032, 0x002C,
-	 /* 4842 */ 0x0033, 0x002C,
-	 /* 4844 */ 0x0034, 0x002C,
-	 /* 4846 */ 0x0035, 0x002C,
-	 /* 4848 */ 0x0036, 0x002C,
-	 /* 4850 */ 0x0037, 0x002C,
-	 /* 4852 */ 0x0038, 0x002C,
-	 /* 4854 */ 0x0039, 0x002C,
-	 /* 4856 */ 0x0028, 0x0041, 0x0029,
-	 /* 4859 */ 0x0028, 0x0042, 0x0029,
-	 /* 4862 */ 0x0028, 0x0043, 0x0029,
-	 /* 4865 */ 0x0028, 0x0044, 0x0029,
-	 /* 4868 */ 0x0028, 0x0045, 0x0029,
-	 /* 4871 */ 0x0028, 0x0046, 0x0029,
-	 /* 4874 */ 0x0028, 0x0047, 0x0029,
-	 /* 4877 */ 0x0028, 0x0048, 0x0029,
-	 /* 4880 */ 0x0028, 0x0049, 0x0029,
-	 /* 4883 */ 0x0028, 0x004A, 0x0029,
-	 /* 4886 */ 0x0028, 0x004B, 0x0029,
-	 /* 4889 */ 0x0028, 0x004C, 0x0029,
-	 /* 4892 */ 0x0028, 0x004D, 0x0029,
-	 /* 4895 */ 0x0028, 0x004E, 0x0029,
-	 /* 4898 */ 0x0028, 0x004F, 0x0029,
-	 /* 4901 */ 0x0028, 0x0050, 0x0029,
-	 /* 4904 */ 0x0028, 0x0051, 0x0029,
-	 /* 4907 */ 0x0028, 0x0052, 0x0029,
-	 /* 4910 */ 0x0028, 0x0053, 0x0029,
-	 /* 4913 */ 0x0028, 0x0054, 0x0029,
-	 /* 4916 */ 0x0028, 0x0055, 0x0029,
-	 /* 4919 */ 0x0028, 0x0056, 0x0029,
-	 /* 4922 */ 0x0028, 0x0057, 0x0029,
-	 /* 4925 */ 0x0028, 0x0058, 0x0029,
-	 /* 4928 */ 0x0028, 0x0059, 0x0029,
-	 /* 4931 */ 0x0028, 0x005A, 0x0029,
-	 /* 4934 */ 0x3014, 0x0053, 0x3015,
-	 /* 4937 */ 0x0043, 0x0044,
-	 /* 4939 */ 0x0057, 0x005A,
-	 /* 4941 */ 0x0048, 0x0056,
-	 /* 4943 */ 0x004D, 0x0056,
-	 /* 4945 */ 0x0053, 0x0044,
-	 /* 4947 */ 0x0053, 0x0053,
-	 /* 4949 */ 0x0050, 0x0050, 0x0056,
-	 /* 4952 */ 0x0057, 0x0043,
-	 /* 4954 */ 0x004D, 0x0043,
-	 /* 4956 */ 0x004D, 0x0044,
-	 /* 4958 */ 0x004D, 0x0052,
-	 /* 4960 */ 0x0044, 0x004A,
-	 /* 4962 */ 0x307B, 0x304B,
-	 /* 4964 */ 0x30B3, 0x30B3,
-	 /* 4966 */ 0x3014, 0x672C, 0x3015,
-	 /* 4969 */ 0x3014, 0x4E09, 0x3015,
-	 /* 4972 */ 0x3014, 0x4E8C, 0x3015,
-	 /* 4975 */ 0x3014, 0x5B89, 0x3015,
-	 /* 4978 */ 0x3014, 0x70B9, 0x3015,
-	 /* 4981 */ 0x3014, 0x6253, 0x3015,
-	 /* 4984 */ 0x3014, 0x76D7, 0x3015,
-	 /* 4987 */ 0x3014, 0x52DD, 0x3015,
-	 /* 4990 */ 0x3014, 0x6557, 0x3015,
-	 /* 4993 */ 0x20122,
-	 /* 4994 */ 0x2063A,
-	 /* 4995 */ 0x2051C,
-	 /* 4996 */ 0x2054B,
-	 /* 4997 */ 0x291DF,
-	 /* 4998 */ 0x20A2C,
-	 /* 4999 */ 0x20B63,
-	 /* 5000 */ 0x214E4,
-	 /* 5001 */ 0x216A8,
-	 /* 5002 */ 0x216EA,
-	 /* 5003 */ 0x219C8,
-	 /* 5004 */ 0x21B18,
-	 /* 5005 */ 0x21DE4,
-	 /* 5006 */ 0x21DE6,
-	 /* 5007 */ 0x22183,
-	 /* 5008 */ 0x2A392,
-	 /* 5009 */ 0x22331,
-	 /* 5010 */ 0x22331,
-	 /* 5011 */ 0x232B8,
-	 /* 5012 */ 0x261DA,
-	 /* 5013 */ 0x226D4,
-	 /* 5014 */ 0x22B0C,
-	 /* 5015 */ 0x22BF1,
-	 /* 5016 */ 0x2300A,
-	 /* 5017 */ 0x233C3,
-	 /* 5018 */ 0x2346D,
-	 /* 5019 */ 0x236A3,
-	 /* 5020 */ 0x238A7,
-	 /* 5021 */ 0x23A8D,
-	 /* 5022 */ 0x21D0B,
-	 /* 5023 */ 0x23AFA,
-	 /* 5024 */ 0x23CBC,
-	 /* 5025 */ 0x23D1E,
-	 /* 5026 */ 0x23ED1,
-	 /* 5027 */ 0x23F5E,
-	 /* 5028 */ 0x23F8E,
-	 /* 5029 */ 0x20525,
-	 /* 5030 */ 0x24263,
-	 /* 5031 */ 0x243AB,
-	 /* 5032 */ 0x24608,
-	 /* 5033 */ 0x24735,
-	 /* 5034 */ 0x24814,
-	 /* 5035 */ 0x24C36,
-	 /* 5036 */ 0x24C92,
-	 /* 5037 */ 0x2219F,
-	 /* 5038 */ 0x24FA1,
-	 /* 5039 */ 0x24FB8,
-	 /* 5040 */ 0x25044,
-	 /* 5041 */ 0x250F3,
-	 /* 5042 */ 0x250F2,
-	 /* 5043 */ 0x25119,
-	 /* 5044 */ 0x25133,
-	 /* 5045 */ 0x2541D,
-	 /* 5046 */ 0x25626,
-	 /* 5047 */ 0x2569A,
-	 /* 5048 */ 0x256C5,
-	 /* 5049 */ 0x2597C,
-	 /* 5050 */ 0x25AA7,
-	 /* 5051 */ 0x25AA7,
-	 /* 5052 */ 0x25BAB,
-	 /* 5053 */ 0x25C80,
-	 /* 5054 */ 0x25F86,
-	 /* 5055 */ 0x26228,
-	 /* 5056 */ 0x26247,
-	 /* 5057 */ 0x262D9,
-	 /* 5058 */ 0x2633E,
-	 /* 5059 */ 0x264DA,
-	 /* 5060 */ 0x26523,
-	 /* 5061 */ 0x265A8,
-	 /* 5062 */ 0x2335F,
-	 /* 5063 */ 0x267A7,
-	 /* 5064 */ 0x267B5,
-	 /* 5065 */ 0x23393,
-	 /* 5066 */ 0x2339C,
-	 /* 5067 */ 0x26B3C,
-	 /* 5068 */ 0x26C36,
-	 /* 5069 */ 0x26D6B,
-	 /* 5070 */ 0x26CD5,
-	 /* 5071 */ 0x273CA,
-	 /* 5072 */ 0x26F2C,
-	 /* 5073 */ 0x26FB1,
-	 /* 5074 */ 0x270D2,
-	 /* 5075 */ 0x27667,
-	 /* 5076 */ 0x278AE,
-	 /* 5077 */ 0x27966,
-	 /* 5078 */ 0x27CA8,
-	 /* 5079 */ 0x27F2F,
-	 /* 5080 */ 0x20804,
-	 /* 5081 */ 0x208DE,
-	 /* 5082 */ 0x285D2,
-	 /* 5083 */ 0x285ED,
-	 /* 5084 */ 0x2872E,
-	 /* 5085 */ 0x28BFA,
-	 /* 5086 */ 0x28D77,
-	 /* 5087 */ 0x29145,
-	 /* 5088 */ 0x2921A,
-	 /* 5089 */ 0x2940A,
-	 /* 5090 */ 0x29496,
-	 /* 5091 */ 0x295B6,
-	 /* 5092 */ 0x29B30,
-	 /* 5093 */ 0x2A0CE,
-	 /* 5094 */ 0x2A105,
-	 /* 5095 */ 0x2A20E,
-	 /* 5096 */ 0x2A291,
-	 /* 5097 */ 0x2A600
+	 /* 4776 */ 0x105D2, 0x0307,
+	 /* 4778 */ 0x105DA, 0x0307,
+	 /* 4780 */ 0x1DF04,
+	 /* 4781 */ 0x1DF05,
+	 /* 4782 */ 0x1DF06,
+	 /* 4783 */ 0x1DF08,
+	 /* 4784 */ 0x1DF0A,
+	 /* 4785 */ 0x1DF1E,
+	 /* 4786 */ 0x11099, 0x110BA,
+	 /* 4788 */ 0x1109B, 0x110BA,
+	 /* 4790 */ 0x110A5, 0x110BA,
+	 /* 4792 */ 0x11131, 0x11127,
+	 /* 4794 */ 0x11132, 0x11127,
+	 /* 4796 */ 0x11347, 0x1133E,
+	 /* 4798 */ 0x11347, 0x11357,
+	 /* 4800 */ 0x11382, 0x113C9,
+	 /* 4802 */ 0x11384, 0x113BB,
+	 /* 4804 */ 0x1138B, 0x113C2,
+	 /* 4806 */ 0x11390, 0x113C9,
+	 /* 4808 */ 0x113C2, 0x113C2,
+	 /* 4810 */ 0x113C2, 0x113B8,
+	 /* 4812 */ 0x113C2, 0x113C9,
+	 /* 4814 */ 0x114B9, 0x114BA,
+	 /* 4816 */ 0x114B9, 0x114B0,
+	 /* 4818 */ 0x114B9, 0x114BD,
+	 /* 4820 */ 0x115B8, 0x115AF,
+	 /* 4822 */ 0x115B9, 0x115AF,
+	 /* 4824 */ 0x11935, 0x11930,
+	 /* 4826 */ 0x1611E, 0x1611E,
+	 /* 4828 */ 0x1611E, 0x16129,
+	 /* 4830 */ 0x1611E, 0x1611F,
+	 /* 4832 */ 0x16129, 0x1611F,
+	 /* 4834 */ 0x1611E, 0x16120,
+	 /* 4836 */ 0x16121, 0x1611F,
+	 /* 4838 */ 0x16122, 0x1611F,
+	 /* 4840 */ 0x16121, 0x16120,
+	 /* 4842 */ 0x16D67, 0x16D67,
+	 /* 4844 */ 0x16D63, 0x16D67,
+	 /* 4846 */ 0x16D69, 0x16D67,
+	 /* 4848 */ 0x1D157, 0x1D165,
+	 /* 4850 */ 0x1D158, 0x1D165,
+	 /* 4852 */ 0x1D15F, 0x1D16E,
+	 /* 4854 */ 0x1D15F, 0x1D16F,
+	 /* 4856 */ 0x1D15F, 0x1D170,
+	 /* 4858 */ 0x1D15F, 0x1D171,
+	 /* 4860 */ 0x1D15F, 0x1D172,
+	 /* 4862 */ 0x1D1B9, 0x1D165,
+	 /* 4864 */ 0x1D1BA, 0x1D165,
+	 /* 4866 */ 0x1D1BB, 0x1D16E,
+	 /* 4868 */ 0x1D1BC, 0x1D16E,
+	 /* 4870 */ 0x1D1BB, 0x1D16F,
+	 /* 4872 */ 0x1D1BC, 0x1D16F,
+	 /* 4874 */ 0x0030, 0x002E,
+	 /* 4876 */ 0x0030, 0x002C,
+	 /* 4878 */ 0x0031, 0x002C,
+	 /* 4880 */ 0x0032, 0x002C,
+	 /* 4882 */ 0x0033, 0x002C,
+	 /* 4884 */ 0x0034, 0x002C,
+	 /* 4886 */ 0x0035, 0x002C,
+	 /* 4888 */ 0x0036, 0x002C,
+	 /* 4890 */ 0x0037, 0x002C,
+	 /* 4892 */ 0x0038, 0x002C,
+	 /* 4894 */ 0x0039, 0x002C,
+	 /* 4896 */ 0x0028, 0x0041, 0x0029,
+	 /* 4899 */ 0x0028, 0x0042, 0x0029,
+	 /* 4902 */ 0x0028, 0x0043, 0x0029,
+	 /* 4905 */ 0x0028, 0x0044, 0x0029,
+	 /* 4908 */ 0x0028, 0x0045, 0x0029,
+	 /* 4911 */ 0x0028, 0x0046, 0x0029,
+	 /* 4914 */ 0x0028, 0x0047, 0x0029,
+	 /* 4917 */ 0x0028, 0x0048, 0x0029,
+	 /* 4920 */ 0x0028, 0x0049, 0x0029,
+	 /* 4923 */ 0x0028, 0x004A, 0x0029,
+	 /* 4926 */ 0x0028, 0x004B, 0x0029,
+	 /* 4929 */ 0x0028, 0x004C, 0x0029,
+	 /* 4932 */ 0x0028, 0x004D, 0x0029,
+	 /* 4935 */ 0x0028, 0x004E, 0x0029,
+	 /* 4938 */ 0x0028, 0x004F, 0x0029,
+	 /* 4941 */ 0x0028, 0x0050, 0x0029,
+	 /* 4944 */ 0x0028, 0x0051, 0x0029,
+	 /* 4947 */ 0x0028, 0x0052, 0x0029,
+	 /* 4950 */ 0x0028, 0x0053, 0x0029,
+	 /* 4953 */ 0x0028, 0x0054, 0x0029,
+	 /* 4956 */ 0x0028, 0x0055, 0x0029,
+	 /* 4959 */ 0x0028, 0x0056, 0x0029,
+	 /* 4962 */ 0x0028, 0x0057, 0x0029,
+	 /* 4965 */ 0x0028, 0x0058, 0x0029,
+	 /* 4968 */ 0x0028, 0x0059, 0x0029,
+	 /* 4971 */ 0x0028, 0x005A, 0x0029,
+	 /* 4974 */ 0x3014, 0x0053, 0x3015,
+	 /* 4977 */ 0x0043, 0x0044,
+	 /* 4979 */ 0x0057, 0x005A,
+	 /* 4981 */ 0x0048, 0x0056,
+	 /* 4983 */ 0x004D, 0x0056,
+	 /* 4985 */ 0x0053, 0x0044,
+	 /* 4987 */ 0x0053, 0x0053,
+	 /* 4989 */ 0x0050, 0x0050, 0x0056,
+	 /* 4992 */ 0x0057, 0x0043,
+	 /* 4994 */ 0x004D, 0x0043,
+	 /* 4996 */ 0x004D, 0x0044,
+	 /* 4998 */ 0x004D, 0x0052,
+	 /* 5000 */ 0x0044, 0x004A,
+	 /* 5002 */ 0x307B, 0x304B,
+	 /* 5004 */ 0x30B3, 0x30B3,
+	 /* 5006 */ 0x3014, 0x672C, 0x3015,
+	 /* 5009 */ 0x3014, 0x4E09, 0x3015,
+	 /* 5012 */ 0x3014, 0x4E8C, 0x3015,
+	 /* 5015 */ 0x3014, 0x5B89, 0x3015,
+	 /* 5018 */ 0x3014, 0x70B9, 0x3015,
+	 /* 5021 */ 0x3014, 0x6253, 0x3015,
+	 /* 5024 */ 0x3014, 0x76D7, 0x3015,
+	 /* 5027 */ 0x3014, 0x52DD, 0x3015,
+	 /* 5030 */ 0x3014, 0x6557, 0x3015,
+	 /* 5033 */ 0x20122,
+	 /* 5034 */ 0x2063A,
+	 /* 5035 */ 0x2051C,
+	 /* 5036 */ 0x2054B,
+	 /* 5037 */ 0x291DF,
+	 /* 5038 */ 0x20A2C,
+	 /* 5039 */ 0x20B63,
+	 /* 5040 */ 0x214E4,
+	 /* 5041 */ 0x216A8,
+	 /* 5042 */ 0x216EA,
+	 /* 5043 */ 0x219C8,
+	 /* 5044 */ 0x21B18,
+	 /* 5045 */ 0x21DE4,
+	 /* 5046 */ 0x21DE6,
+	 /* 5047 */ 0x22183,
+	 /* 5048 */ 0x2A392,
+	 /* 5049 */ 0x22331,
+	 /* 5050 */ 0x22331,
+	 /* 5051 */ 0x232B8,
+	 /* 5052 */ 0x261DA,
+	 /* 5053 */ 0x226D4,
+	 /* 5054 */ 0x22B0C,
+	 /* 5055 */ 0x22BF1,
+	 /* 5056 */ 0x2300A,
+	 /* 5057 */ 0x233C3,
+	 /* 5058 */ 0x2346D,
+	 /* 5059 */ 0x236A3,
+	 /* 5060 */ 0x238A7,
+	 /* 5061 */ 0x23A8D,
+	 /* 5062 */ 0x21D0B,
+	 /* 5063 */ 0x23AFA,
+	 /* 5064 */ 0x23CBC,
+	 /* 5065 */ 0x23D1E,
+	 /* 5066 */ 0x23ED1,
+	 /* 5067 */ 0x23F5E,
+	 /* 5068 */ 0x23F8E,
+	 /* 5069 */ 0x20525,
+	 /* 5070 */ 0x24263,
+	 /* 5071 */ 0x243AB,
+	 /* 5072 */ 0x24608,
+	 /* 5073 */ 0x24735,
+	 /* 5074 */ 0x24814,
+	 /* 5075 */ 0x24C36,
+	 /* 5076 */ 0x24C92,
+	 /* 5077 */ 0x2219F,
+	 /* 5078 */ 0x24FA1,
+	 /* 5079 */ 0x24FB8,
+	 /* 5080 */ 0x25044,
+	 /* 5081 */ 0x250F3,
+	 /* 5082 */ 0x250F2,
+	 /* 5083 */ 0x25119,
+	 /* 5084 */ 0x25133,
+	 /* 5085 */ 0x2541D,
+	 /* 5086 */ 0x25626,
+	 /* 5087 */ 0x2569A,
+	 /* 5088 */ 0x256C5,
+	 /* 5089 */ 0x2597C,
+	 /* 5090 */ 0x25AA7,
+	 /* 5091 */ 0x25AA7,
+	 /* 5092 */ 0x25BAB,
+	 /* 5093 */ 0x25C80,
+	 /* 5094 */ 0x25F86,
+	 /* 5095 */ 0x26228,
+	 /* 5096 */ 0x26247,
+	 /* 5097 */ 0x262D9,
+	 /* 5098 */ 0x2633E,
+	 /* 5099 */ 0x264DA,
+	 /* 5100 */ 0x26523,
+	 /* 5101 */ 0x265A8,
+	 /* 5102 */ 0x2335F,
+	 /* 5103 */ 0x267A7,
+	 /* 5104 */ 0x267B5,
+	 /* 5105 */ 0x23393,
+	 /* 5106 */ 0x2339C,
+	 /* 5107 */ 0x26B3C,
+	 /* 5108 */ 0x26C36,
+	 /* 5109 */ 0x26D6B,
+	 /* 5110 */ 0x26CD5,
+	 /* 5111 */ 0x273CA,
+	 /* 5112 */ 0x26F2C,
+	 /* 5113 */ 0x26FB1,
+	 /* 5114 */ 0x270D2,
+	 /* 5115 */ 0x27667,
+	 /* 5116 */ 0x278AE,
+	 /* 5117 */ 0x27966,
+	 /* 5118 */ 0x27CA8,
+	 /* 5119 */ 0x27F2F,
+	 /* 5120 */ 0x20804,
+	 /* 5121 */ 0x208DE,
+	 /* 5122 */ 0x285D2,
+	 /* 5123 */ 0x285ED,
+	 /* 5124 */ 0x2872E,
+	 /* 5125 */ 0x28BFA,
+	 /* 5126 */ 0x28D77,
+	 /* 5127 */ 0x29145,
+	 /* 5128 */ 0x2921A,
+	 /* 5129 */ 0x2940A,
+	 /* 5130 */ 0x29496,
+	 /* 5131 */ 0x295B6,
+	 /* 5132 */ 0x29B30,
+	 /* 5133 */ 0x2A0CE,
+	 /* 5134 */ 0x2A105,
+	 /* 5135 */ 0x2A20E,
+	 /* 5136 */ 0x2A291,
+	 /* 5137 */ 0x2A600
 };
diff --git a/src/include/common/unicode_normprops_table.h b/src/include/common/unicode_normprops_table.h
index 7a134055252..f1072c9f099 100644
--- a/src/include/common/unicode_normprops_table.h
+++ b/src/include/common/unicode_normprops_table.h
@@ -695,11 +695,32 @@ static const pg_unicode_normprops UnicodeNormProps_NFC_QC[] = {
 	{0x11127, UNICODE_NORM_QC_MAYBE},
 	{0x1133E, UNICODE_NORM_QC_MAYBE},
 	{0x11357, UNICODE_NORM_QC_MAYBE},
+	{0x113B8, UNICODE_NORM_QC_MAYBE},
+	{0x113BB, UNICODE_NORM_QC_MAYBE},
+	{0x113C2, UNICODE_NORM_QC_MAYBE},
+	{0x113C5, UNICODE_NORM_QC_MAYBE},
+	{0x113C7, UNICODE_NORM_QC_MAYBE},
+	{0x113C8, UNICODE_NORM_QC_MAYBE},
+	{0x113C9, UNICODE_NORM_QC_MAYBE},
 	{0x114B0, UNICODE_NORM_QC_MAYBE},
 	{0x114BA, UNICODE_NORM_QC_MAYBE},
 	{0x114BD, UNICODE_NORM_QC_MAYBE},
 	{0x115AF, UNICODE_NORM_QC_MAYBE},
 	{0x11930, UNICODE_NORM_QC_MAYBE},
+	{0x1611E, UNICODE_NORM_QC_MAYBE},
+	{0x1611F, UNICODE_NORM_QC_MAYBE},
+	{0x16120, UNICODE_NORM_QC_MAYBE},
+	{0x16121, UNICODE_NORM_QC_MAYBE},
+	{0x16122, UNICODE_NORM_QC_MAYBE},
+	{0x16123, UNICODE_NORM_QC_MAYBE},
+	{0x16124, UNICODE_NORM_QC_MAYBE},
+	{0x16125, UNICODE_NORM_QC_MAYBE},
+	{0x16126, UNICODE_NORM_QC_MAYBE},
+	{0x16127, UNICODE_NORM_QC_MAYBE},
+	{0x16128, UNICODE_NORM_QC_MAYBE},
+	{0x16129, UNICODE_NORM_QC_MAYBE},
+	{0x16D67, UNICODE_NORM_QC_MAYBE},
+	{0x16D68, UNICODE_NORM_QC_MAYBE},
 	{0x1D15E, UNICODE_NORM_QC_NO},
 	{0x1D15F, UNICODE_NORM_QC_NO},
 	{0x1D160, UNICODE_NORM_QC_NO},
@@ -1261,315 +1282,321 @@ static const pg_unicode_normprops UnicodeNormProps_NFC_QC[] = {
 static int
 NFC_QC_hash_func(const void *key)
 {
-	static const int16 h[2463] = {
-		0,     -2717, 0,     221,   1293,  223,   1295,  225,
-		226,   241,   0,     229,   230,   231,   0,     0,
+	static const int16 h[2505] = {
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
+		0,     32767, 32767, 32767, 32767, 0,     0,     32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 50,
+		32767, 32767, 32767, 32767, 51,    52,    32767, 53,
+		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,
+		668,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -713,
+		32767, 32767, 32767, 32767, 806,   687,   807,   -539,
+		808,   581,   581,   693,   -51,   695,   976,   977,
+		-281,  465,   980,   981,   982,   983,   984,   985,
+		986,   987,   988,   989,   990,   991,   992,   993,
+		994,   995,   996,   997,   998,   999,   1000,  1001,
+		1002,  1003,  -1155, -1155, -1155, 1007,  1008,  59,
+		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		-386,  0,     0,     0,     0,     0,     0,     0,
-		-163,  0,     0,     0,     0,     0,     0,     0,
+		0,     893,   1829,  1830,  1293,  1832,  1151,  0,
+		1154,  1837,  1156,  1157,  2760,  -135,  1842,  0,
+		0,     1847,  980,   1850,  0,     1853,  733,   975,
+		177,   1059,  1060,  1061,  644,   1867,  1064,  1065,
+		1066,  1067,  1068,  1069,  1070,  1882,  1072,  1884,
+		1885,  1088,  1887,  1077,  1089,  1079,  1080,  1896,
+		1897,  1083,  1900,  634,   1086,  665,   666,   0,
+		2100,  0,     1914,  -172,  -172,  -172,  -1307, -361,
+		-361,  1641,  -361,  -361,  -361,  -361,  -172,  1654,
+		0,     332,   0,     0,     0,     0,     0,     0,
+		0,     0,     0,     669,   0,     -132,  0,     0,
+		0,     0,     0,     0,     0,     670,   0,     0,
+		0,     0,     671,   0,     0,     0,     0,     672,
+		0,     0,     0,     0,     -78,   0,     -1541, 0,
+		0,     0,     0,     0,     0,     0,     1869,  0,
+		0,     674,   0,     0,     0,     0,     0,     0,
+		2046,  1092,  0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		-246,  -175,  1260,  0,     0,     0,     -174,  -173,
-		0,     -172,  0,     0,     0,     0,     0,     0,
-		1049,  0,     300,   301,   1071,  0,     1071,  0,
-		1071,  1071,  1057,  0,     0,     0,     0,     1061,
-		0,     -1053, 1664,  0,     2956,  0,     0,     -13,
-		0,     0,     0,     0,     2156,  0,     0,     0,
-		0,     0,     0,     0,     71,    0,     1082,  0,
-		1083,  1083,  0,     1084,  0,     0,     0,     0,
+		0,     0,     1116,  0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     359,   360,   361,
-		-1091, 363,   -762,  -130,  -129,  -128,  -127,  -126,
-		137,   -124,  -708,  -707,  -706,  -120,  -185,  -705,
-		-117,  -184,  -1307, -114,  -113,  -112,  -111,  0,
-		386,   387,   388,   389,   -90,   391,   171,   172,
-		394,   -94,   -183,  397,   398,   399,   -98,   -225,
-		402,   -1019, -636,  -1019, -225,  407,   408,   409,
-		410,   411,   674,   413,   -171,  -170,  -169,  417,
-		352,   -168,  420,   353,   -770,  423,   424,   425,
-		426,   427,   428,   32767, 239,   239,   239,   239,
-		239,   239,   239,   239,   239,   239,   239,   239,
-		239,   239,   32767, 32767, 237,   32767, 236,   32767,
-		32767, 234,   234,   234,   234,   617,   234,   234,
-		234,   -2483, 234,   -1430, 1526,  -1430, 1527,  47,
-		48,    471,   230,   32767, 32767, 32767, 227,   227,
-		227,   227,   227,   227,   227,   227,   227,   227,
-		227,   227,   227,   227,   227,   227,   227,   227,
-		-159,  227,   227,   227,   227,   227,   227,   227,
-		64,    227,   227,   227,   227,   227,   227,   227,
-		227,   227,   227,   227,   227,   227,   227,   227,
-		227,   227,   227,   227,   227,   227,   227,   227,
-		-19,   52,    1487,  227,   227,   227,   53,    54,
-		227,   55,    227,   227,   227,   227,   227,   227,
-		1276,  227,   -989,  32767, 1296,  225,   1296,  225,
-		1296,  1296,  1282,  225,   225,   225,   225,   1286,
-		225,   -828,  1889,  225,   3181,  225,   225,   212,
-		225,   225,   225,   225,   2381,  225,   225,   225,
-		225,   225,   225,   225,   296,   225,   1307,  225,
-		1308,  1308,  225,   1309,  225,   225,   225,   225,
-		225,   225,   225,   225,   225,   225,   225,   225,
-		225,   225,   225,   225,   225,   584,   585,   586,
-		-866,  588,   -537,  95,    96,    97,    98,    99,
-		362,   101,   -483,  -482,  -481,  105,   40,    -480,
-		108,   41,    -1082, 111,   112,   113,   114,   225,
-		611,   612,   613,   614,   135,   616,   396,   397,
-		619,   131,   42,    622,   623,   624,   127,   0,
-		627,   -794,  -411,  -794,  0,     632,   32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		-272,  32767, 32767, 32767, 0,     32767, 32767, 32767,
-		32767, 32767, -166,  -165,  32767, 32767, 32767, 32767,
-		-164,  0,     0,     0,     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, 397,   32767, 396,   32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 386,
-		0,     386,   386,   386,   386,   386,   386,   386,
-		223,   386,   386,   386,   32767, 385,   385,   385,
-		385,   385,   32767, 384,   32767, 383,   383,   32767,
-		382,   382,   32767, 381,   381,   381,   381,   381,
-		135,   206,   1641,  381,   32767, 32767, 32767, 32767,
-		32767, 32767, -160,  32767, 32767, 32767, 32767, 32767,
+		60,    32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -15,
+		61,    62,    32767, 32767, 32767, 32767, 63,    64,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 710,   57,    57,    713,
+		58,    58,    716,   692,   59,    693,   59,    59,
+		59,    59,    59,    59,    50,    50,    50,    50,
+		50,    50,    50,    50,    50,    50,    506,   857,
+		738,   858,   -488,  859,   632,   632,   744,   0,
+		746,   747,   748,   749,   750,   751,   752,   753,
+		754,   755,   756,   757,   758,   759,   760,   761,
+		762,   763,   764,   765,   766,   767,   768,   769,
+		770,   771,   772,   773,   774,   775,   776,   777,
+		778,   779,   780,   781,   782,   783,   784,   785,
+		786,   787,   788,   789,   790,   791,   792,   0,
+		0,     538,   0,     682,   0,     682,   0,     682,
+		682,   -920,  1976,  0,     0,     0,     0,     0,
+		0,     0,     0,     1121,  20,    682,   0,     682,
+		682,   1139,  0,     682,   682,   682,   1138,  825,
+		826,   827,   0,     811,   0,     0,     798,   0,
+		834,   835,   836,   837,   0,     0,     840,   0,
+		1267,  843,   844,   845,   846,   847,   848,   0,
+		850,   851,   822,   853,   854,   855,   856,   2290,
+		2291,  2292,  2293,  2105,  280,   863,   864,   865,
+		1839,  -410,  -410,  869,   870,   871,   872,   873,
+		874,   875,   876,   877,   878,   879,   880,   881,
+		882,   883,   884,   885,   0,     0,     2002,  0,
+		0,     0,     0,     893,   894,   895,   896,   897,
+		898,   899,   900,   901,   902,   903,   904,   905,
+		906,   907,   908,   158,   910,   911,   912,   913,
+		914,   915,   916,   917,   918,   0,     920,   921,
+		922,   923,   924,   925,   926,   927,   2063,  1118,
+		1119,  -882,  1121,  1122,  1123,  1124,  936,   937,
+		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,   963,   964,   965,   510,   160,   280,   161,
+		1508,  162,   390,   391,   280,   1025,  280,   0,
+		0,     1259,  514,   0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     2159,  2160,  2161,  0,     0,
+		950,   1010,  1011,  1012,  1013,  1014,  1015,  1016,
+		1017,  1018,  1019,  1020,  1021,  1022,  1023,  1024,
+		1025,  1026,  1027,  1028,  1029,  1030,  1031,  1032,
+		1033,  1034,  142,   -793,  -793,  -255,  -793,  -111,
+		1041,  -112,  -794,  -112,  -112,  -1714, 1182,  -794,
+		1049,  1050,  -796,  72,    -797,  1054,  -798,  323,
+		82,    881,   0,     0,     0,     418,   -804,  0,
+		0,     0,     0,     0,     0,     0,     -811,  0,
+		-811,  -811,  -13,   -811,  0,     -11,   0,     0,
+		-815,  -815,  0,     -816,  451,   0,     422,   422,
+		1089,  -1010, 1091,  -822,  1265,  1266,  1267,  2403,
+		1458,  1459,  -542,  1461,  1462,  1463,  1464,  1276,
+		-549,  1106,  775,   1108,  1109,  1110,  1111,  1112,
+		1113,  1114,  1115,  1116,  448,   1118,  1251,  1120,
+		1121,  1122,  1123,  1124,  1125,  1126,  457,   1128,
+		1129,  1130,  1131,  461,   1133,  1134,  1135,  1136,
+		465,   1138,  1139,  1140,  1141,  1220,  1143,  2685,
+		1145,  1146,  1147,  1148,  1149,  1150,  1151,  -717,
+		1153,  1154,  481,   1156,  1157,  1158,  1159,  1160,
+		1161,  -884,  71,    1164,  1165,  1166,  1167,  1168,
+		1169,  1170,  1171,  1172,  1173,  1174,  1175,  1176,
+		1177,  1178,  1179,  1180,  1181,  1182,  1183,  1184,
+		1185,  1186,  1187,  72,    1189,  1190,  1191,  1192,
+		1193,  1194,  1195,  1196,  1197,  1198,  1199,  1200,
+		1201,  1202,  1203,  1204,  1205,  1206,  1207,  1208,
+		1209,  1210,  1211,  1212,  1213,  1214,  1215,  1216,
+		1217,  1218,  1219,  1220,  1221,  32767, 1140,  342,
+		1224,  1225,  1226,  809,   2032,  1229,  1230,  1231,
+		1232,  1233,  1234,  1235,  2047,  1237,  2049,  2050,
+		1253,  2052,  1242,  1254,  1244,  1245,  2061,  2062,
+		1248,  2065,  799,   1251,  32767, 448,   32767, 448,
+		676,   677,   170,   32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 165,   32767, 32767, 32767,
+		166,   167,   32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 143,   32767, 144,
+		32767, -690,  32767, -691,  32767, 147,   73,    148,
+		32767, -694,  32767, -621,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 0,     32767, 657,   32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -755,
+		32767, 32767, -757,  32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 152,   32767, -768,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -964,
+		32767, 32767, 32767, 32767, 32767, 32767, 0,     -782,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -789,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -796,
+		32767, 32767, -798,  -798,  750,   0,     32767, 32767,
+		32767, 32767, 0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     830,   831,
+		832,   0,     0,     32767, 32767, 1125,  32767, 1126,
+		32767, 32767, 2047,  -848,  1129,  1130,  1131,  1132,
+		1133,  1134,  1135,  1136,  32767, 1117,  32767, 1138,
+		32767, 32767, 0,     1140,  32767, 32767, 32767, 0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     678,   0,     0,     0,     0,     0,     0,
+		0,     0,     0,     679,   0,     0,     680,   0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     32767, 32767, 0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     1343,  0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  211,   212,
+		-325,  214,   -467,  216,   -465,  218,   -463,  -462,
+		1141,  -1754, 223,   224,   225,   226,   227,   228,
+		229,   230,   -890,  212,   -449,  234,   -447,  -446,
+		-902,  238,   -443,  -442,  -441,  -896,  -582,  -582,
+		-582,  246,   -564,  248,   249,   -548,  251,   -582,
+		-582,  -582,  -582,  256,   257,   -582,  259,   -1007,
+		-582,  -582,  -582,  -582,  -582,  -582,  267,   -582,
+		-582,  -552,  -582,  -582,  -582,  -582,  -2015, -2015,
+		-2015, -2015, -1826, 0,     -582,  -582,  -582,  -1555,
+		695,   696,   -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  304,   305,   -1696, 307,   308,
+		309,   310,   -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  169,   -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  337,   -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -1717, -771,  -771,
+		1231,  -771,  -771,  -771,  -771,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -126,  225,   106,   226,   -1120,
+		227,   0,     0,     112,   -632,  114,   395,   396,
+		-862,  -116,  399,   400,   401,   402,   403,   404,
+		405,   406,   407,   408,   409,   410,   411,   412,
+		413,   414,   415,   416,   417,   418,   419,   420,
+		421,   422,   -1736, -1736, -1736, 426,   427,   -522,
+		32767, 429,   430,   431,   432,   433,   434,   435,
+		436,   437,   -392,  -392,  -392,  441,   442,   32767,
+		0,     -682,  0,     -682,  0,     0,     -1602, 1294,
+		-682,  -682,  -682,  -682,  -682,  -682,  -682,  -682,
+		439,   -662,  0,     -682,  0,     0,     457,   -682,
+		0,     0,     0,     459,   460,   461,   462,   463,
+		464,   465,   466,   467,   468,   469,   470,   471,
+		472,   473,   474,   475,   476,   -201,  478,   479,
+		480,   481,   482,   483,   484,   485,   486,   -192,
+		488,   489,   -190,  491,   492,   493,   494,   495,
+		496,   497,   498,   499,   500,   501,   502,   503,
+		504,   505,   506,   507,   508,   509,   510,   511,
+		512,   513,   514,   515,   516,   517,   518,   519,
+		520,   521,   522,   523,   524,   525,   526,   32767,
+		32767, 527,   528,   529,   530,   531,   532,   533,
+		534,   535,   536,   537,   538,   539,   540,   541,
+		542,   543,   544,   545,   546,   547,   548,   549,
+		550,   551,   552,   553,   554,   555,   556,   557,
+		558,   559,   560,   561,   562,   563,   564,   565,
+		566,   567,   568,   569,   570,   571,   572,   573,
+		574,   575,   576,   577,   578,   579,   580,   581,
+		582,   583,   584,   585,   586,   587,   588,   589,
+		590,   -752,  592,   593,   594,   595,   596,   597,
+		598,   599,   600,   601,   602,   603,   604,   605,
+		606,   607,   608,   609,   610,   611,   612,   613,
+		614,   615,   616,   617,   1200,  1201,  1202,  1203,
+		1204,  1205,  1206,  1207,  1208,  1209,  1210,  1211,
+		1212,  1213,  1214,  32767, 0,     32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 1148,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 0,     32767,
+		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		32767, 0,     0,     0,     0,     0,     32767, 0,
+		32767, 0,     0,     32767, 0,     0,     32767, 633,
+		0,     634,   0,     0,     0,     0,     0,     0,
+		32767, 32767, 32767, 32767, 635,   636,   637,   638,
+		639,   640,   641,   642,   643,   644,   645,   646,
+		647,   32767, 648,   649,   650,   651,   652,   32767,
+		653,   0,     654,   655,   0,     656,   657,   0,
+		25,    659,   26,    661,   662,   663,   664,   665,
+		666,   676,   677,   678,   679,   680,   681,   682,
+		683,   684,   685,   230,   -120,  0,     -119,  1228,
+		-118,  110,   111,   0,     745,   0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     793,   794,   257,   796,
+		115,   798,   117,   800,   119,   120,   1723,  -1172,
+		805,   806,   807,   808,   809,   810,   811,   812,
+		-308,  794,   133,   816,   135,   136,   -320,  820,
+		139,   140,   141,   -314,  0,     0,     0,     828,
+		18,    830,   831,   34,    833,   0,     0,     0,
+		0,     838,   839,   0,     841,   -425,  0,     0,
+		0,     0,     0,     0,     849,   0,     0,     30,
+		0,     0,     0,     0,     -1433, -1433, -1433, -1433,
+		-1244, 582,   0,     0,     0,     -973,  1277,  1278,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     886,   887,   -1114, 889,   890,   891,   892,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		751,   0,     0,     0,     0,     0,     0,     0,
+		0,     0,     919,   0,     0,     0,     0,     0,
+		0,     0,     0,     -1135, -189,  -189,  1813,  -189,
+		-189,  -189,  -189,  0,     0,     0,     0,     0,
+		0,     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,
+		0,     0,     32767, 32767, 32767, 32767, 704,   705,
+		706,   707,   708,   709,   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, 0,     0,     32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, -257,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -910,  -910,  32767, 32767,
-		0,     32767, 0,     32767, 0,     32767, 0,     32767,
-		147,   32767, 0,     32767, 0,     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, 0,     0,     0,     0,     0,     0,     32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 143,   32767, 144,   32767, 145,
-		32767, 146,   32767, 0,     32767, 148,   32767, 149,
-		32767, 32767, 32767, -160,  32767, 32767, 32767, 32767,
-		32767, 32767, 15,    32767, 32767, 0,     32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		145,   32767, 144,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 0,     32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 0,     -148,  32767, 32767, 32767, 32767,
-		32767, 32767, 2009,  32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 0,     32767, 32767, 135,   -918,  32767,
-		151,   32767, 32767, 0,     1,     2,     3,     4,
-		133,   5,     6,     7,     8,     9,     10,    11,
-		32767, 32767, -1248, 32767, 13,    154,   188,   188,
-		32767, 32767, 32767, 32767, 32767, 155,   16,    32767,
-		32767, 32767, 32767, 32767, 32767, -1853, -1054, 18,
-		-1052, -1051, -1036, 22,    32767, 157,   32767, 28,
-		23,    1077,  673,   25,    -2930, 0,     32767, 32767,
-		32767, 32767, 32767, 27,    32767, 155,   32767, 154,
-		32767, 32767, -62,   28,    -42,   30,    -1051, 32,
-		-1050, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 34,
+		32767, 32767, 0,     32767, 32767, 32767, 0,     0,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 129,   32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 672,   32767, 32767, 32767, 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, -156,  32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -155,  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, 40,    32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 682,   32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 41,    42,    43,    44,    45,    46,    47,
+		48,    32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 171,   172,   32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		73,    32767, 32767, 32767, 32767, 74,    32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 675,
-		32767, 32767, 32767, 32767, 32767, 75,    32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 165,   32767, 32767, 32767, 166,   167,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 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,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 689,   690,   691,   692,   693,   694,   695,
-		696,   697,   698,   699,   700,   701,   702,   703,
-		704,   705,   706,   707,   708,   709,   710,   711,
-		712,   713,   714,   715,   716,   717,   718,   719,
-		720,   721,   722,   -304,  -303,  -302,  -301,  -300,
-		-299,  -298,  -297,  930,   -295,  -294,  -293,  -292,
-		-291,  -290,  -289,  -288,  -287,  -286,  -285,  -284,
-		-283,  -282,  -281,  -280,  -279,  -278,  -277,  -276,
-		-275,  753,   754,   755,   646,   757,   -712,  -1765,
-		952,   -712,  2244,  -712,  2245,  765,   766,   767,
-		768,   125,   770,   771,   772,   773,   774,   775,
-		603,   777,   778,   779,   780,   781,   782,   783,
-		784,   2011,  786,   787,   788,   789,   790,   791,
-		792,   793,   794,   795,   796,   797,   798,   799,
-		800,   801,   802,   803,   804,   805,   806,   603,
-		603,   809,   603,   811,   603,   603,   814,   815,
-		816,   817,   435,   819,   820,   821,   3539,  823,
-		603,   -468,  603,   -468,  603,   603,   589,   831,
-		603,   603,   603,   835,   836,   837,   838,   839,
-		840,   841,   842,   843,   844,   845,   846,   847,
-		848,   849,   850,   851,   852,   1239,  854,   855,
-		856,   857,   858,   859,   860,   1024,  862,   863,
-		864,   865,   866,   867,   868,   869,   870,   871,
-		872,   873,   874,   875,   876,   877,   878,   879,
-		880,   881,   882,   883,   884,   1131,  1061,  -373,
-		888,   889,   890,   1065,  1065,  893,   1066,  895,
-		896,   897,   898,   899,   900,   -148,  902,   603,
-		603,   -166,  906,   -164,  908,   -162,  -161,  -146,
-		912,   913,   914,   915,   -145,  917,   1971,  -745,
-		920,   -2035, 922,   923,   937,   925,   926,   927,
-		928,   -1227, 930,   931,   932,   933,   934,   935,
-		936,   866,   938,   -143,  940,   -142,  -141,  943,
-		-140,  32767, 945,   946,   947,   948,   949,   950,
-		951,   952,   953,   954,   955,   956,   957,   958,
-		959,   960,   961,   -65,   -64,   -63,   -62,   -61,
-		-60,   -59,   -58,   1169,  -56,   -55,   -54,   -53,
-		-52,   -51,   -50,   -49,   -48,   -47,   -46,   -45,
-		-44,   -43,   -42,   -41,   -40,   -39,   -38,   -37,
-		-36,   992,   993,   994,   885,   996,   -473,  -1526,
-		1191,  -473,  2483,  -473,  2484,  1004,  1005,  1006,
-		1007,  364,   1009,  1010,  1011,  1012,  1013,  1014,
-		842,   1016,  1017,  1018,  1019,  1020,  1021,  1022,
-		1023,  2250,  1025,  1026,  1027,  1028,  1029,  1030,
-		1031,  1032,  1033,  1034,  1035,  1036,  1037,  1038,
-		1039,  1040,  1041,  1042,  1043,  1044,  1045,  842,
-		842,   1048,  842,   1050,  842,   842,   1053,  1054,
-		1055,  1056,  674,   1058,  1059,  1060,  3778,  1062,
-		842,   -229,  842,   -229,  842,   842,   828,   1070,
-		842,   842,   842,   1074,  1075,  1076,  1077,  1078,
-		1079,  1080,  1081,  1082,  1083,  1084,  1085,  1086,
-		1087,  1088,  1089,  1090,  1091,  1478,  1093,  1094,
-		1095,  1096,  1097,  1098,  1099,  1263,  1101,  1102,
-		1103,  1104,  1105,  1106,  1107,  1108,  1109,  1110,
-		1111,  1112,  1113,  1114,  1115,  1116,  1117,  1118,
-		1119,  1120,  1121,  1122,  1123,  1370,  1300,  -134,
-		1127,  1128,  1129,  1304,  1304,  1132,  1305,  1134,
-		1135,  1136,  1137,  1138,  1139,  91,    1141,  842,
-		842,   73,    1145,  75,    1147,  77,    78,    93,
-		1151,  1152,  1153,  1154,  94,    1156,  2210,  -506,
-		1159,  -1796, 1161,  1162,  1176,  1164,  1165,  1166,
-		1167,  -988,  1169,  1170,  1171,  1172,  1173,  1174,
-		1175,  1105,  1177,  96,    1179,  97,    98,    1182,
-		99,    1184,  1185,  1186,  1187,  1188,  1189,  1190,
-		1191,  1192,  1193,  1194,  1195,  1196,  1197,  1198,
-		1199,  1200,  0,     174,   175,   176,   177,   178,
-		179,   180,   181,   1408,  183,   184,   185,   186,
-		187,   188,   189,   190,   191,   192,   193,   194,
-		195,   196,   197,   198,   199,   200,   201,   202,
-		203,   0,     0,     206,   0,     208,   0,     0,
-		211,   212,   213,   214,   -168,  216,   217,   218,
-		2936,  220,   0,     -1071, 0,     -1071, 0,     0,
-		-14,   228,   0,     0,     0,     232,   233,   234,
-		235,   236,   237,   238,   239,   240,   241,   242,
-		243,   244,   245,   246,   247,   248,   249,   636,
-		251,   252,   253,   254,   255,   256,   257,   421,
-		259,   260,   261,   262,   263,   264,   265,   266,
-		267,   268,   269,   270,   271,   272,   273,   274,
-		275,   276,   277,   278,   279,   280,   281,   528,
-		458,   -976,  285,   286,   287,   462,   462,   290,
-		463,   292,   293,   294,   295,   296,   297,   -751,
-		299,   0,     0,     -769,  303,   -767,  305,   -765,
-		-764,  -749,  309,   310,   311,   312,   -748,  314,
-		1368,  -1348, 317,   -2638, 319,   320,   334,   322,
-		323,   324,   325,   -1830, 327,   328,   329,   330,
-		331,   332,   333,   263,   335,   -746,  337,   -745,
-		-744,  340,   -743,  342,   343,   344,   345,   346,
-		347,   348,   349,   350,   351,   352,   353,   354,
-		355,   356,   357,   358,   0,     0,     0,     1453,
-		0,     1126,  495,   495,   495,   495,   495,   233,
-		495,   1080,  1080,  1080,  495,   561,   1082,  495,
-		563,   1687,  495,   495,   495,   495,   385,   0,
-		0,     0,     0,     480,   0,     221,   221,   0,
-		489,   579,   0,     0,     0,     498,   626,   0,
-		1422,  1040,  1424,  631,   0,     0,     0,     0,
-		0,     -262,  0,     585,   585,   585,   0,     66,
-		587,   0,     68,    1192,  0,     0,     0,     0,
-		0,     0,     32767, 32767, 32767, 32767, 669,   32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 670,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 142,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 115,   116,   117,   118,   119,   120,
-		121,   122,   123,   124,   125,   126,   127,   128,
-		129,   130,   131,   132,   133,   134,   135,   136,
-		137,   138,   139,   140,   141,   32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 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,     1027,  1027,  1027,
-		1027,  1027,  1027,  1027,  1027,  -199,  1027,  1027,
-		1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,
-		1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,
-		1027,  1027,  1027,  0,     0,     0,     110,   0,
-		1470,  2524,  -192,  1473,  -1482, 1475,  -1481, 0,
-		0,     0,     0,     644,   0,     0,     0,     0,
-		0,     0,     173,   0,     0,     0,     0,     0,
-		0,     0,     0,     -1226, 0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     204,   205,   0,     207,   0,     209,   210,
-		0,     0,     0,     0,     383,   0,     0
+		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 49,
+		32767
 	};
 
 	const unsigned char *k = (const unsigned char *) key;
@@ -1582,16 +1609,16 @@ NFC_QC_hash_func(const void *key)
 		unsigned char c = *k++;
 
 		a = a * 257 + c;
-		b = b * 17 + c;
+		b = b * 8191 + c;
 	}
-	return h[a % 2463] + h[b % 2463];
+	return h[a % 2505] + h[b % 2505];
 }
 
 /* Hash lookup information for NFC_QC */
 static const pg_unicode_norminfo UnicodeNormInfo_NFC_QC = {
 	UnicodeNormProps_NFC_QC,
 	NFC_QC_hash_func,
-	1231
+	1252
 };
 
 static const pg_unicode_normprops UnicodeNormProps_NFKC_QC[] = {
@@ -4729,11 +4756,68 @@ static const pg_unicode_normprops UnicodeNormProps_NFKC_QC[] = {
 	{0x11127, UNICODE_NORM_QC_MAYBE},
 	{0x1133E, UNICODE_NORM_QC_MAYBE},
 	{0x11357, UNICODE_NORM_QC_MAYBE},
+	{0x113B8, UNICODE_NORM_QC_MAYBE},
+	{0x113BB, UNICODE_NORM_QC_MAYBE},
+	{0x113C2, UNICODE_NORM_QC_MAYBE},
+	{0x113C5, UNICODE_NORM_QC_MAYBE},
+	{0x113C7, UNICODE_NORM_QC_MAYBE},
+	{0x113C8, UNICODE_NORM_QC_MAYBE},
+	{0x113C9, UNICODE_NORM_QC_MAYBE},
 	{0x114B0, UNICODE_NORM_QC_MAYBE},
 	{0x114BA, UNICODE_NORM_QC_MAYBE},
 	{0x114BD, UNICODE_NORM_QC_MAYBE},
 	{0x115AF, UNICODE_NORM_QC_MAYBE},
 	{0x11930, UNICODE_NORM_QC_MAYBE},
+	{0x1611E, UNICODE_NORM_QC_MAYBE},
+	{0x1611F, UNICODE_NORM_QC_MAYBE},
+	{0x16120, UNICODE_NORM_QC_MAYBE},
+	{0x16121, UNICODE_NORM_QC_MAYBE},
+	{0x16122, UNICODE_NORM_QC_MAYBE},
+	{0x16123, UNICODE_NORM_QC_MAYBE},
+	{0x16124, UNICODE_NORM_QC_MAYBE},
+	{0x16125, UNICODE_NORM_QC_MAYBE},
+	{0x16126, UNICODE_NORM_QC_MAYBE},
+	{0x16127, UNICODE_NORM_QC_MAYBE},
+	{0x16128, UNICODE_NORM_QC_MAYBE},
+	{0x16129, UNICODE_NORM_QC_MAYBE},
+	{0x16D67, UNICODE_NORM_QC_MAYBE},
+	{0x16D68, UNICODE_NORM_QC_MAYBE},
+	{0x1CCD6, UNICODE_NORM_QC_NO},
+	{0x1CCD7, UNICODE_NORM_QC_NO},
+	{0x1CCD8, UNICODE_NORM_QC_NO},
+	{0x1CCD9, UNICODE_NORM_QC_NO},
+	{0x1CCDA, UNICODE_NORM_QC_NO},
+	{0x1CCDB, UNICODE_NORM_QC_NO},
+	{0x1CCDC, UNICODE_NORM_QC_NO},
+	{0x1CCDD, UNICODE_NORM_QC_NO},
+	{0x1CCDE, UNICODE_NORM_QC_NO},
+	{0x1CCDF, UNICODE_NORM_QC_NO},
+	{0x1CCE0, UNICODE_NORM_QC_NO},
+	{0x1CCE1, UNICODE_NORM_QC_NO},
+	{0x1CCE2, UNICODE_NORM_QC_NO},
+	{0x1CCE3, UNICODE_NORM_QC_NO},
+	{0x1CCE4, UNICODE_NORM_QC_NO},
+	{0x1CCE5, UNICODE_NORM_QC_NO},
+	{0x1CCE6, UNICODE_NORM_QC_NO},
+	{0x1CCE7, UNICODE_NORM_QC_NO},
+	{0x1CCE8, UNICODE_NORM_QC_NO},
+	{0x1CCE9, UNICODE_NORM_QC_NO},
+	{0x1CCEA, UNICODE_NORM_QC_NO},
+	{0x1CCEB, UNICODE_NORM_QC_NO},
+	{0x1CCEC, UNICODE_NORM_QC_NO},
+	{0x1CCED, UNICODE_NORM_QC_NO},
+	{0x1CCEE, UNICODE_NORM_QC_NO},
+	{0x1CCEF, UNICODE_NORM_QC_NO},
+	{0x1CCF0, UNICODE_NORM_QC_NO},
+	{0x1CCF1, UNICODE_NORM_QC_NO},
+	{0x1CCF2, UNICODE_NORM_QC_NO},
+	{0x1CCF3, UNICODE_NORM_QC_NO},
+	{0x1CCF4, UNICODE_NORM_QC_NO},
+	{0x1CCF5, UNICODE_NORM_QC_NO},
+	{0x1CCF6, UNICODE_NORM_QC_NO},
+	{0x1CCF7, UNICODE_NORM_QC_NO},
+	{0x1CCF8, UNICODE_NORM_QC_NO},
+	{0x1CCF9, UNICODE_NORM_QC_NO},
 	{0x1D15E, UNICODE_NORM_QC_NO},
 	{0x1D15F, UNICODE_NORM_QC_NO},
 	{0x1D160, UNICODE_NORM_QC_NO},
@@ -6640,164 +6724,71 @@ static const pg_unicode_normprops UnicodeNormProps_NFKC_QC[] = {
 static int
 NFKC_QC_hash_func(const void *key)
 {
-	static const int16 h[10079] = {
-		3542,  3543,  3544,  3545,  3546,  3547,  3548,  3549,
-		3550,  3551,  3552,  3553,  3554,  3555,  3556,  3557,
-		3558,  3559,  3560,  3561,  3562,  3563,  3564,  3565,
-		3566,  3567,  3568,  3569,  3570,  3571,  3572,  3573,
-		3574,  3575,  3576,  3577,  3578,  3579,  3580,  3581,
-		3582,  3583,  3584,  3585,  3586,  3587,  3588,  3589,
-		3590,  3591,  3592,  3593,  3594,  3595,  3596,  3597,
-		3598,  3599,  3600,  3601,  3602,  3603,  3604,  3605,
-		3606,  3607,  3608,  3970,  3488,  3611,  3612,  3613,
-		3614,  3615,  3616,  3617,  3618,  7967,  3620,  3621,
-		3622,  3623,  3624,  3625,  3626,  3627,  3628,  3629,
-		3630,  3631,  3632,  3633,  3634,  3512,  3636,  3637,
-		3638,  3639,  32767, 11118, 11119, 11120, 11121, 11122,
-		1470,  11124, 11125, 11126, 11127, 11128, 11129, 11130,
-		11131, 11132, -287,  8773,  8774,  8775,  8776,  8777,
-		8778,  -287,  8781,  8782,  -287,  8783,  8784,  8785,
-		8786,  8787,  8788,  8789,  8790,  8791,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  2372,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  2458,  2458,  2458,  2458,  2458,
-		2458,  2458,  2458,  2458,  -287,  -287,  -287,  -5017,
-		5765,  -287,  -5019, -5019, -5019, -5019, -287,  -287,
-		4632,  -5021, -5021, -287,  -5022, -5022, -5022, 3732,
-		-287,  -287,  3735,  3736,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		4994,  2491,  2491,  -287,  -287,  -287,  6887,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  32767, 32767, -289,  1778,  629,   3809,  3810,
-		-3050, -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  3861,  3862,  3863,  3864,  3865,  3866,
-		3867,  3868,  -1002, 3870,  3871,  3872,  3873,  3874,
-		3875,  3876,  3877,  3878,  3879,  3880,  3881,  3882,
-		3883,  3884,  3885,  3886,  3887,  3888,  3889,  3890,
-		3891,  3892,  3893,  32767, 3392,  3392,  3392,  -5411,
-		3392,  3392,  3392,  3392,  3392,  3392,  3392,  3392,
-		3392,  3392,  224,   225,   226,   3392,  227,   228,
-		-5998, -5998, 3392,  -5998, -5,    0,     -5997, -5997,
-		-7477, 3923,  -7478, -7478, -7478, -7478, -7478, -7478,
-		-7478, -7478, 2175,  -7478, -7478, -7478, -7478, -7478,
-		-7478, -7478, -7478, -7478, 3942,  -5117, -5117, -5117,
-		-5117, -5117, -5117, 3949,  -5118, -5118, 3952,  -5117,
-		-5117, -5117, -5117, -5117, -5117, -5117, -5117, -5117,
-		3962,  3963,  3964,  3965,  3966,  3967,  3968,  3969,
-		3970,  3971,  3972,  3973,  3974,  3975,  3976,  3977,
-		3978,  3979,  3980,  1322,  3982,  3983,  3984,  3985,
-		3986,  3987,  3988,  3989,  3990,  1246,  1247,  1248,
-		1249,  1250,  1251,  1252,  1253,  1254,  4000,  4001,
-		4002,  8733,  -2048, 4005,  8738,  8739,  8740,  8741,
-		4010,  4011,  -907,  8747,  8748,  4015,  8751,  8752,
-		8753,  0,     4020,  4021,  0,     0,     4024,  4025,
-		4026,  4027,  4028,  4029,  4030,  4031,  4032,  4033,
-		4034,  4035,  -1245, 1259,  1260,  4039,  4040,  4041,
-		-3132, 4043,  4044,  4045,  4046,  4047,  4048,  4049,
-		4050,  4051,  4052,  4053,  4054,  4055,  4056,  4057,
-		4058,  4059,  4060,  4061,  4062,  4063,  4064,  4065,
-		4066,  4067,  4068,  4069,  4070,  4071,  4072,  4073,
-		4074,  4075,  4076,  4077,  4078,  4079,  4080,  4081,
-		4082,  4083,  4084,  4085,  4086,  4087,  4088,  4089,
-		4090,  4091,  4092,  4093,  4094,  4095,  2029,  3179,
-		0,     0,     6861,  4099,  4100,  4101,  4102,  4103,
-		4104,  4105,  4106,  4107,  4108,  4109,  4110,  4111,
-		4112,  4113,  4114,  4115,  4116,  4117,  4118,  4119,
-		4120,  4121,  4122,  4123,  4124,  4125,  4126,  4127,
-		4128,  4129,  4130,  4131,  4132,  4133,  4134,  4135,
-		4136,  4137,  4138,  4139,  4140,  4141,  4142,  4143,
-		4144,  4145,  4146,  4147,  0,     0,     0,     0,
-		0,     0,     0,     0,     4871,  0,     0,     0,
+	static const int16 h[10193] = {
+		1878,  1879,  1880,  1881,  1882,  1883,  1884,  1885,
+		1886,  1887,  1888,  32767, 32767, 1889,  3141,  -7211,
+		1892,  1893,  1894,  1895,  1896,  1897,  1898,  1899,
+		-1320, 1901,  1902,  -1322, 1904,  1905,  1921,  1921,
+		1921,  1909,  1910,  1911,  1924,  1924,  1914,  1915,
+		1916,  1917,  1918,  1919,  1920,  1921,  1922,  1923,
+		1924,  1925,  -1976, 4681,  1323,  1929,  1930,  4682,
+		1932,  1933,  1934,  1935,  1936,  1937,  0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     422,   510,   422,   422,
+		0,     0,     0,     0,     0,     0,     0,     1822,
+		0,     431,   0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     32767, 32767, 32767,
+		0,     0,     1840,  1840,  0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     2762,  2762,  2762,
+		2762,  2762,  2762,  2762,  2762,  2762,  2762,  2762,
+		2762,  2762,  2762,  2762,  2762,  2762,  2762,  2762,
+		2762,  2762,  0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     2812,  2812,  2812,  2812,
+		2812,  2812,  2812,  2812,  2812,  2812,  2812,  2812,
+		2812,  2812,  -1449, 5319,  2812,  2812,  2812,  2812,
+		2812,  2812,  2812,  2812,  2812,  2812,  -534,  0,
+		0,     0,     0,     348,   32767, 349,   0,     0,
+		0,     0,     0,     0,     32767, 32767, 0,     0,
+		0,     -1517, 0,     -1517, 32767, -1516, 4370,  4371,
+		4372,  4373,  4374,  4375,  4376,  4377,  4378,  4379,
+		0,     32767, 32767, -23190,4110,  0,     0,     0,
+		0,     0,     0,     32767, 0,     0,     0,     0,
+		-622,  -622,  0,     -3928, -1253, -1252, -5473, -3927,
+		-3927, -3927, -3927, -3927, -3927, -3927, -3927, -3927,
+		-3927, -3927, -3927, -3927, -3927, -3580, -3580, -3925,
+		-3580, -3924, -3580, -3580, -3922, -3922, -3922, -3922,
+		-3922, -3922, -3922, -3922, 0,     0,     -3484, -3919,
+		-3482, -3918, -3480, -3578, -3916, -3916, -3578, -3578,
+		-3578, -3913, -3913, -3913, -3913, -3913, -3913, -3913,
+		-3913, -3913, -3913, -3913, -3913, -3913, -3913, -3913,
+		-3913, -3913, -3913, -3913, -3913, -3913, -3913, -3913,
+		-3913, -3913, -3913, -3913, -3913, -3913, -3913, -3913,
+		-3913, -3913, -3913, -3913, -3913, -3578, 625,   -5288,
+		627,   628,   0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     2496,  2497,  2498,  2499,  2500,
+		2501,  2502,  2503,  2504,  2505,  2506,  2507,  0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     -1769, -1768, -1767, -3528, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, -4117, -4459, -4459, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, -1786, -1785, -1784, -1783, -1782, 5982,
-		-630,  -48,   -48,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 677,
-		32767, 32767, -636,  -635,  1019,  -3373, 1019,  1019,
-		1019,  1019,  1019,  1019,  1019,  1019,  1019,  1019,
-		1019,  1019,  1019,  1019,  1019,  -685,  -684,  -683,
-		-682,  -681,  -6170, -679,  -678,  2476,  2477,  -6912,
-		2479,  -3513, 3959,  2482,  2483,  3964,  3965,  3966,
-		3967,  3968,  3969,  3970,  3971,  3972,  55,    56,
-		2495,  57,    58,    59,    60,    61,    62,    63,
-		2503,  2504,  64,    2506,  65,    2508,  66,    67,
-		2511,  2512,  32767, 32767, 32767, 32767, 68,    32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 69,    70,
-		71,    72,    73,    74,    1140,  2514,  2515,  422,
-		75,    2518,  -1594, 556,   557,   2522,  2523,  2524,
-		2525,  422,   422,   422,   422,   422,   422,   422,
-		422,   422,   422,   422,   422,   422,   422,   422,
-		422,   422,   422,   422,   422,   422,   422,   422,
-		422,   422,   422,   422,   422,   422,   422,   422,
-		422,   422,   422,   422,   422,   422,   422,   422,
-		422,   422,   422,   422,   422,   422,   422,   -2277,
-		-2277, -2277, -2277, -2277, 32767, 32767, -2279, -2279,
-		-2279, -2279, -2279, -2279, -2279, -2279, -2279, 86,
-		-2279, -2279, -2279, -2279, -2279, 87,    -2279, -2279,
-		-2279, 88,    -2279, -2279, -2279, -2279, -2279, 89,
-		453,   453,   453,   453,   453,   453,   2609,  453,
-		453,   453,   453,   453,   453,   453,   453,   453,
-		453,   453,   453,   1817,  453,   453,   453,   453,
-		453,   453,   453,   453,   32767, 32767, 32767, 681,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -2319, 2632,  -2319, -2319,
-		-2319, 2636,  2637,  92,    2639,  2640,  95,    96,
-		97,    98,    32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 3279,  3280,  3281,  3282,  3283,  3284,
-		3285,  3286,  3287,  3288,  3289,  3290,  3291,  3292,
-		-384,  -1535, -385,  -385,  0,     3298,  3299,  3300,
-		3301,  3302,  3303,  3304,  -8646, -1149, -1148, -1147,
-		-1146, 32767, 3310,  3311,  3312,  3313,  3314,  -1140,
-		-1139, -1138, -1137, -1136, -1135, -1134, -1133, -1132,
-		3324,  3325,  3326,  3327,  3328,  3329,  3330,  3331,
-		3332,  3333,  3334,  3335,  3336,  3337,  3338,  3339,
-		3340,  3341,  3342,  3343,  3344,  -1327, -1327, -1327,
-		-1327, -1327, 32767, 32767, 2346,  32767, 32767, 32767,
-		32767, 32767, 3350,  335,   3245,  8185,  1818,  666,
-		1818,  795,   795,   1818,  1818,  1818,  1818,  1818,
-		-5945, 668,   87,    88,    89,    90,    91,    92,
-		93,    94,    95,    0,     0,     671,   671,   671,
-		671,   671,   0,     0,     673,   673,   673,   0,
-		674,   0,     675,   0,     676,   0,     677,   677,
-		677,   32767, 0,     677,   677,   -976,  3417,  -974,
-		-973,  678,   678,   -972,  -971,  -970,  -969,  -968,
-		1152,  1153,  1154,  1155,  1156,  0,     1022,  1022,
-		5615,  -6335, 1162,  1163,  1164,  1165,  5621,  5622,
-		5623,  5624,  5625,  5626,  1172,  1173,  1174,  1175,
-		1176,  1177,  1178,  1179,  1180,  1181,  1182,  1183,
-		1184,  1185,  1186,  1187,  1188,  1189,  1190,  1191,
-		1192,  1193,  9997,  1195,  1196,  1197,  1198,  1199,
-		1200,  1201,  1202,  1203,  1204,  4373,  4373,  4373,
-		1208,  4374,  4374,  10601, 10602, 1213,  10604, 4612,
-		4608,  10606, 10607, 12088, 1220,  1221,  1222,  1223,
-		1224,  1225,  1226,  2453,  2454,  2455,  2456,  2457,
-		2458,  2459,  2460,  2461,  2462,  2463,  2464,  2465,
-		2466,  2467,  6860,  2469,  2470,  2471,  2472,  2473,
-		2474,  2475,  2476,  2477,  2478,  2479,  2480,  2481,
-		2482,  2483,  2484,  258,   2486,  2487,  258,   258,
-		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,
@@ -6806,68 +6797,63 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 5673,  5674,
-		0,     5677,  0,     5680,  5681,  5682,  5683,  5684,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 682,   683,   32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, -2719, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 105,   32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		2315,  4754,  2316,  2317,  2318,  2319,  2320,  2321,
-		2322,  4762,  4763,  2323,  4765,  2324,  4767,  2325,
-		2326,  4770,  4771,  4772,  2377,  4774,  4775,  4776,
-		4777,  4778,  4779,  4780,  4781,  4782,  4783,  4784,
-		4785,  4786,  4787,  4788,  4789,  3417,  4791,  4792,
-		2699,  2352,  4795,  683,   2833,  2834,  4799,  4800,
-		4801,  4802,  2699,  2699,  2699,  2699,  2699,  2699,
-		2699,  2699,  2699,  2699,  2699,  2699,  2699,  2699,
-		2699,  2699,  2699,  2699,  2699,  2699,  2699,  2699,
-		2699,  2699,  2699,  2699,  2699,  2699,  2699,  2699,
-		2699,  2699,  2699,  2699,  2699,  2699,  2699,  2699,
-		2699,  2699,  2699,  2699,  2699,  2699,  2699,  2699,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		2365,  0,     0,     0,     0,     0,     2366,  0,
-		0,     0,     2367,  0,     0,     0,     0,     0,
-		2368,  2732,  2732,  2732,  2732,  2732,  2732,  4888,
-		2732,  2732,  2732,  2732,  2732,  2732,  2732,  2732,
-		2732,  2732,  2732,  2732,  4096,  2732,  2732,  2732,
-		2732,  2732,  2732,  2732,  2732,  2732,  2732,  2732,
-		2732,  2732,  2732,  2732,  2732,  2732,  2732,  2732,
-		2732,  2732,  2732,  2732,  2732,  2732,  4927,  0,
-		0,     0,     0,     0,     4933,  0,     0,     0,
-		0,     -2910, 0,     4940,  4941,  4942,  0,     0,
-		0,     0,     0,     0,     0,     0,     4951,  0,
-		0,     0,     4955,  4956,  2411,  4958,  4959,  2414,
-		2415,  2416,  0,     10954, 0,     3436,  0,     0,
-		0,     0,     0,     -3170, -3169, -3168, -3167, 3446,
-		2865,  0,     0,     0,     0,     0,     2339,  2339,
-		2339,  2339,  2339,  2339,  2339,  2339,  2892,  2339,
-		0,     0,     0,     0,     0,     0,     2907,  0,
-		0,     0,     0,     0,     0,     4719,  0,     0,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 1856,  868,   868,   868,   868,
-		868,   868,   868,   868,   868,   868,   868,   1856,
-		1856,  1856,  1856,  1856,  873,   873,   873,   873,
-		873,   873,   873,   873,   873,   873,   873,   873,
-		873,   873,   873,   873,   873,   6441,  6442,  6443,
-		6444,  6445,  6446,  6447,  6448,  6449,  6450,  6451,
-		6452,  -1169, 6454,  6455,  6456,  6457,  6458,  6459,
-		6460,  6461,  6462,  6463,  6464,  6465,  6466,  6467,
-		6468,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32,    33,    34,    35,    36,    37,
+		38,    39,    40,    32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, -6479, -6478, -6477,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 41,    42,    43,    44,    45,    46,
+		32767, 32767, 47,    48,    49,    50,    51,    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, 52,    1131,  8054,  3425,  -19247,
+		8047,  -19248,8049,  -19249,8051,  -14620,8053,  -19240,
+		8056,  3330,  8058,  8059,  3430,  -19242,3330,  3330,
+		3330,  3330,  3330,  -11231,8049,  3330,  3330,  3330,
+		3330,  -3326, 33,    -3326, 3330,  -3325, -3325, -3325,
+		3330,  -3326, -3326, 1075,  4681,  4682,  8076,  -3327,
+		8079,  19509, -7787, 4688,  4689,  1331,  4691,  -1964,
+		4692,  4693,  4694,  4695,  4696,  4697,  297,   -3308,
+		-3308, -6701, 4703,  -6702, -18131,9166,  -3308, 4711,
+		-2199, 4724,  95,    -22577,4717,  -22578,4719,  -22579,
+		4721,  -17950,4723,  -22570,4726,  0,     4728,  4729,
+		100,   -22572,0,     0,     0,     0,     0,     -14561,
+		4719,  0,     0,     0,     0,     -6656, -3297, -6656,
+		0,     -6655, -6655, -6655, 0,     -6656, -6656, -2255,
+		1351,  1352,  4746,  -6657, 4749,  16179, -11117,1358,
+		1359,  -1999, 0,     0,     0,     938,   0,     0,
+		0,     0,     0,     0,     1255,  0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     4081,  4081,  4081,
+		4081,  4081,  2312,  2313,  2314,  553,   0,     0,
+		0,     0,     0,     0,     0,     0,     3580,  2958,
+		2958,  3580,  -348,  2327,  2328,  -1893, -347,  -347,
+		-347,  -347,  -347,  -347,  -347,  -347,  -347,  -347,
+		-347,  -347,  -347,  -347,  0,     0,     -345,  0,
+		-344,  0,     0,     -342,  -342,  -342,  -342,  -342,
+		-342,  -342,  -342,  -342,  -342,  94,    -341,  96,
+		-340,  98,    0,     -338,  -338,  0,     0,     0,
+		-335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
+		-335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
+		-335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
+		-335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
+		-335,  -335,  -335,  -335,  0,     4203,  -1710, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -6877,433 +6863,29 @@ NFKC_QC_hash_func(const void *key)
 		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,
+		1,     32767, 2,     32767, 32767, 32767, 32767, -2759,
+		32767, 32767, -2758, -2757, -2756, -2755, 32767, 32767,
+		-2754, -2753, -2752, 32767, -2751, -2750, -2749, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, -3334, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, -1362, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -766,  32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, -1530, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 686,   32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		687,   688,   689,   690,   691,   692,   693,   694,
-		695,   2465,  697,   698,   699,   700,   701,   702,
-		703,   704,   705,   2484,  707,   708,   709,   710,
-		2493,  712,   713,   714,   715,   2502,  717,   718,
-		719,   720,   2511,  722,   723,   724,   725,   726,
-		727,   728,   729,   730,   731,   732,   733,   2536,
-		735,   736,   737,   738,   739,   740,   741,   742,
-		743,   2555,  745,   2558,  2559,  2560,  2561,  2562,
-		751,   752,   753,   754,   755,   756,   757,   2577,
-		759,   760,   761,   762,   763,   764,   1224,  1224,
-		767,   768,   769,   770,   3787,  772,   773,   774,
-		775,   776,   777,   778,   779,   780,   781,   782,
-		783,   784,   785,   786,   787,   788,   789,   790,
-		791,   792,   793,   794,   795,   796,   797,   798,
-		799,   800,   801,   802,   803,   804,   805,   806,
-		807,   808,   809,   810,   811,   812,   813,   814,
-		815,   816,   817,   818,   819,   820,   821,   822,
-		823,   824,   825,   826,   827,   828,   829,   830,
-		831,   832,   833,   834,   835,   836,   837,   838,
-		839,   840,   841,   842,   843,   844,   845,   846,
-		847,   848,   849,   850,   851,   852,   853,   854,
-		855,   856,   857,   858,   859,   860,   861,   862,
-		863,   864,   865,   866,   867,   868,   869,   870,
-		871,   872,   873,   874,   875,   876,   877,   878,
-		879,   880,   881,   882,   883,   884,   885,   886,
-		887,   888,   889,   890,   891,   892,   893,   894,
-		895,   896,   897,   898,   899,   900,   32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 682,
+		683,   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, 901,   32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, -1268,
-		32767, 32767, 32767, 32767, 32767, -984,  -984,  -2101,
-		-2101, -2101, -2101, 32767, 3402,  3403,  -985,  -985,
-		32767, 32767, 0,     -986,  -986,  -986,  -986,  -986,
-		-986,  -986,  32767, -987,  -987,  -987,  -987,  -987,
-		-987,  -987,  32767, -988,  -988,  -988,  -988,  -1746,
-		-988,  -1747, -1747, -1194, -988,  -988,  -988,  -988,
-		-988,  -988,  -988,  0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     32767,
-		0,     0,     0,     321,   32767, 0,     0,     0,
-		0,     0,     32767, 0,     32767, 32767, 32767, -968,
-		0,     0,     0,     0,     0,     0,     32767, 0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     333,   113,   333,   2915,
-		333,   333,   0,     0,     0,     0,     0,     0,
-		0,     0,     0,     -934,  0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     -361,  122,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		-4348, 0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		123,   0,     0,     0,     0,     -3819, -3818, 32767,
-		126,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 5367,  5368,  914,   915,   916,
-		917,   918,   919,   920,   921,   922,   923,   924,
-		925,   926,   927,   928,   929,   930,   931,   932,
-		933,   934,   935,   9739,  937,   938,   939,   940,
-		941,   942,   943,   944,   945,   946,   4115,  4115,
-		4115,  950,   4116,  4116,  10343, 10344, 955,   10346,
-		4354,  4350,  10348, 10349, 11830, 962,   963,   964,
-		965,   966,   967,   968,   2195,  2196,  2197,  2198,
-		2199,  2200,  2201,  2202,  2203,  2204,  2205,  2206,
-		2207,  2208,  2209,  6602,  2211,  2212,  2213,  2214,
-		2215,  2216,  2217,  2218,  2219,  2220,  2221,  2222,
-		2223,  2224,  2225,  2226,  0,     2228,  2229,  0,
-		0,     2232,  0,     129,   2235,  2236,  -260,  -260,
-		2239,  2240,  2241,  2242,  -260,  2244,  2245,  2246,
-		2247,  2248,  2249,  2250,  2251,  2252,  2253,  -2259,
-		-2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259,
-		-2259, 2264,  2265,  -2259, 2267,  2268,  2269,  2270,
-		2271,  2272,  2273,  2274,  2275,  2276,  2277,  2278,
-		-2729, 2280,  2281,  2282,  2283,  2284,  2285,  2286,
-		2287,  2288,  2289,  2290,  2291,  2292,  3281,  3282,
-		3283,  3284,  3285,  3286,  3287,  3288,  3289,  3290,
-		3291,  2304,  2305,  2306,  2307,  2308,  3292,  3293,
-		3294,  3295,  3296,  3297,  3298,  3299,  3300,  3301,
-		3302,  3303,  3304,  3305,  3306,  3307,  3308,  -2259,
-		-2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259,
-		-2259, -2259, -2259, 5363,  -2259, -2259, -2259, -2259,
-		-2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259,
-		-2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259,
-		-2259, 1418,  2570,  1421,  1422,  1038,  -2259, -2259,
-		-2259, -2259, -2259, -2259, -2259, 9692,  2196,  2196,
-		2196,  2196,  -2259, -2259, -2259, -2259, -2259, -2259,
-		2196,  2196,  2196,  2196,  2196,  2196,  2196,  2196,
-		2196,  -2259, -2259, -2259, -2259, -2259, -2259, -2259,
-		-2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259,
-		-2259, -2259, -2259, -2259, -2259, -2259, 2413,  2414,
-		2415,  2416,  2417,  2418,  2419,  301,   302,   760,
-		-2259, -2259, -2259, -2259, 757,   -2152, -7091, -723,
-		430,   -721,  303,   304,   -718,  -717,  -716,  -715,
-		-714,  7050,  438,   1020,  1020,  1020,  1020,  1020,
-		1020,  1020,  1020,  1020,  1116,  1117,  447,   448,
-		449,   450,   451,   1123,  1124,  452,   453,   454,
-		1128,  455,   1130,  456,   1132,  457,   1134,  458,
-		459,   460,   461,   1138,  462,   463,   2117,  -2275,
-		2117,  2117,  467,   468,   2119,  2119,  2119,  2119,
-		2119,  0,     0,     0,     0,     0,     1157,  136,
-		137,   -4455, 7496,  0,     0,     0,     0,     -4455,
-		-4455, -4455, -4455, -4455, -4455, 0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     -8803, 0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     -3168, -3167,
-		-3166, 0,     -3165, -3164, -9390, -9390, 0,     -9390,
-		-3397, -3392, -9389, -9389, -10869,0,     0,     0,
-		0,     0,     0,     0,     -1226, -1226, -1226, -1226,
-		-1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226,
-		-1226, -1226, -1226, -5618, -1226, -1226, -1226, -1226,
-		-1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226,
-		-1226, -1226, -1226, -1226, 1001,  -1226, -1226, 1004,
-		1005,  1264,  1265,  32767, -1229, -1229, 1268,  1269,
-		-1229, -1229, -1229, -1229, 1274,  -1229, -1229, -1229,
-		-1229, -1229, 139,   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,  1675,  1313,  1676,  1315,  1316,  1317,
-		1318,  1319,  1320,  1321,  1322,  1323,  1324,  1325,
-		1326,  1327,  1328,  1329,  1330,  1331,  1332,  1333,
-		1334,  1335,  1336,  1337,  1338,  1339,  1340,  1341,
-		1342,  1343,  1344,  1345,  1346,  1347,  1348,  1349,
-		1350,  1351,  1352,  1353,  1354,  1355,  1356,  1357,
-		1358,  1359,  1360,  1361,  1362,  1363,  1364,  1365,
-		1366,  1367,  1368,  1369,  1370,  1371,  1372,  1373,
-		1374,  1375,  1376,  1377,  1378,  1379,  1380,  1381,
-		1382,  1383,  1384,  1385,  1386,  1387,  3934,  3935,
-		1390,  1391,  1392,  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,  935,   1320,  4618,
-		1422,  4621,  4622,  1425,  1426,  1427,  -7322, 5372,
-		1430,  1431,  5375,  891,   891,   891,   891,   891,
-		891,   891,   5376,  2037,  891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   141,   891,
-		891,   891,   891,   891,   32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 142,   143,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		1999,  4498,  4499,  4500,  4501,  1999,  4503,  4504,
-		4505,  4506,  4507,  4508,  4509,  4510,  4511,  4512,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     4523,  4524,  0,     4526,  4527,  4528,
-		4529,  4530,  4531,  4532,  4533,  4534,  4535,  4536,
-		4537,  -470,  4539,  4540,  4541,  4542,  4543,  4544,
-		4545,  4546,  4547,  4548,  4549,  4550,  4551,  5540,
-		5541,  5542,  5543,  5544,  5545,  5546,  5547,  5548,
-		5549,  5550,  4563,  4564,  4565,  4566,  4567,  5551,
-		5552,  5553,  5554,  5555,  5556,  5557,  5558,  5559,
-		5560,  5561,  5562,  5563,  5564,  5565,  5566,  5567,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     7622,  0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     3677,  4829,  3680,  3681,  3297,  0,
-		0,     0,     0,     0,     0,     0,     11951, 4455,
-		4455,  4455,  4455,  0,     0,     0,     0,     0,
-		0,     4455,  4455,  4455,  4455,  4455,  4455,  4455,
-		4455,  4455,  0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     4672,
-		4673,  4674,  4675,  4676,  4677,  4678,  2560,  2561,
-		3019,  0,     0,     0,     0,     3016,  107,   -4832,
-		1536,  2689,  1538,  2562,  2563,  1541,  1542,  1543,
-		1544,  1545,  9309,  2697,  3279,  3279,  3279,  3279,
-		3279,  3279,  3279,  3279,  3279,  3279,  3279,  -1113,
-		3279,  3279,  3279,  3279,  3279,  3279,  3279,  3279,
-		3279,  3279,  3279,  3279,  3279,  3279,  3279,  1575,
-		1576,  1577,  1578,  1579,  -3910, 1581,  1582,  4736,
-		4737,  -4652, 4739,  -1253, 6219,  4742,  4743,  6224,
-		6225,  6226,  6227,  6228,  6229,  6230,  6231,  6232,
-		6233,  -3419, 6235,  6236,  6237,  6238,  6239,  6240,
-		6241,  6242,  6243,  3882,  3883,  3884,  3885,  3886,
-		3887,  3888,  -5177, 3891,  3892,  -5177, 3893,  3894,
-		3895,  3896,  3897,  3898,  3899,  3900,  3901,  3902,
-		-5176, -5176, -5176, -5176, -5176, -5176, -5176, -5176,
-		1640,  1641,  1642,  3924,  1644,  1645,  1646,  1647,
-		1648,  1649,  1650,  1651,  1652,  1653,  1654,  1655,
-		1656,  1657,  1658,  1659,  1660,  1661,  1662,  1663,
-		1664,  1665,  1666,  1667,  1668,  1669,  1670,  1671,
-		1672,  1673,  1674,  1675,  1676,  1677,  1678,  1679,
-		1680,  1681,  1682,  1683,  1684,  1685,  1686,  1687,
-		1688,  1689,  1690,  1691,  1692,  1693,  1694,  1695,
-		1696,  1697,  1698,  1699,  1700,  1701,  1702,  1703,
-		1704,  1705,  1706,  1707,  1708,  1709,  1710,  1711,
-		1712,  1713,  1714,  1715,  1716,  1717,  1718,  1719,
-		1720,  1721,  1722,  1723,  1724,  1725,  1726,  1727,
-		1728,  1729,  1730,  1731,  -847,  -5786, 582,   1735,
-		1736,  1609,  1610,  588,   1740,  591,   592,   593,
-		8357,  1745,  2327,  2327,  2327,  2327,  2327,  2327,
-		1357,  2328,  2328,  1755,  1756,  1757,  1758,  1759,
-		1760,  1761,  1762,  1763,  1764,  1765,  1766,  1767,
-		1768,  1769,  1770,  1771,  1772,  1773,  1774,  1775,
-		1776,  1777,  1778,  1779,  1780,  3434,  1782,  3435,
-		3435,  1785,  1786,  3437,  3437,  3437,  3306,  32767,
-		-2509, -2509, -2509, -2509, -2509, -2509, -2509, -2509,
-		-2509, 1800,  -2508, -2508, -2508, -2508, 32767, 32767,
-		-2510, 32767, -2511, 32767, 32767, -2513, -2513, -2513,
-		-2513, -2513, -2513, 1813,  1814,  1815,  1816,  32767,
-		-2509, 32767, -2510, 32767, 32767, -2511, -2511, 32767,
-		32767, 32767, -3871, -3871, -2513, -2513, -2513, -2513,
-		-2513, -2513, -2513, -2513, -2513, -2513, -2513, -2513,
-		-2513, -2513, -2513, 1838,  1839,  1840,  1841,  1842,
-		1843,  1844,  1845,  1846,  1847,  1848,  1849,  1850,
-		1851,  1852,  1853,  1854,  1855,  1856,  1857,  1858,
-		1859,  1860,  1861,  1862,  1863,  1864,  1865,  1866,
-		1867,  1868,  1869,  1870,  1871,  1872,  1873,  1874,
-		1875,  1876,  1877,  1878,  1879,  1880,  1881,  1882,
-		1883,  1401,  1885,  1886,  1887,  1888,  32767, 32767,
-		1889,  1890,  1891,  1892,  1893,  1894,  1895,  1896,
-		1897,  1898,  1899,  1900,  1901,  1902,  1903,  1904,
-		1905,  1906,  1907,  1908,  1909,  1910,  1911,  1912,
-		1913,  1914,  1915,  1916,  1917,  1918,  1919,  1920,
-		1921,  1922,  1923,  1924,  1925,  1926,  1927,  1928,
-		1929,  1930,  1931,  1932,  1933,  1934,  1935,  1936,
-		1937,  1938,  1939,  1940,  1941,  1942,  1943,  1944,
-		1945,  1946,  1947,  1948,  1949,  1950,  1951,  1952,
-		1953,  1954,  1955,  1956,  1957,  1958,  1959,  1960,
-		1961,  1962,  1963,  1964,  1965,  1966,  1967,  1968,
-		1969,  1970,  1971,  1972,  1973,  1974,  1975,  1976,
-		1977,  1978,  1979,  1980,  1981,  1982,  1983,  1984,
-		1985,  1986,  1987,  1988,  1989,  1990,  1991,  1992,
-		3710,  1994,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 167,   612,   32767, 32767, 2714,  32767,
-		32767, 32767, 32767, 32767, 168,   32767, 32767, 32767,
-		32767, 169,   32767, 32767, 32767, 32767, 170,   32767,
-		32767, 32767, 32767, 171,   32767, 32767, 32767, 32767,
-		32767, 1995,  1996,  1997,  1998,  1999,  2000,  2001,
-		172,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -1151, -127,  -126,  -1148,
-		-1147, 32767, 32767, 32767, 32767, 32767, 585,   32767,
-		584,   584,   584,   584,   584,   584,   584,   584,
-		584,   -3808, 584,   584,   584,   584,   584,   584,
-		584,   584,   584,   584,   584,   584,   584,   584,
-		32767, -1121, -1120, -1119, -1118, -1117, 32767, -1116,
-		32767, 2038,  2039,  32767, 2040,  -3952, 32767, 2042,
-		2043,  3524,  3525,  3526,  3527,  3528,  3529,  3530,
-		3531,  3532,  -385,  -384,  2055,  -383,  -382,  -381,
-		-380,  -379,  -378,  -377,  2063,  2064,  -376,  2066,
-		-375,  2068,  -374,  -373,  2071,  2072,  2073,  -322,
-		2075,  2076,  2077,  2078,  2079,  2080,  2081,  2082,
-		2083,  2084,  2085,  2086,  2087,  2088,  2089,  2090,
-		718,   2092,  2093,  0,     -347,  2096,  -2016, 134,
-		135,   2100,  2101,  2102,  2103,  0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     2156,  0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     1364,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     -4392, 0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     2227,  0,     0,     2230,  2231,  0,
-		2233,  2105,  0,     0,     2497,  2498,  0,     0,
-		0,     0,     2503,  0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     4513,  4514,  4515,
-		4516,  4517,  4518,  4519,  4520,  4521,  4522,  0,
-		0,     4525,  0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     5008,  0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     -988,  -988,  -988,  -988,
-		-988,  -988,  -988,  -988,  -988,  -988,  -988,  0,
-		0,     0,     0,     0,     -983,  -983,  -983,  -983,
-		-983,  -983,  -983,  -983,  -983,  -983,  -983,  -983,
-		-983,  -983,  -983,  -983,  -983,  4585,  4586,  4587,
-		4588,  4589,  4590,  4591,  4592,  4593,  4594,  4595,
-		4596,  -3025, 4598,  4599,  4600,  4601,  4602,  4603,
-		4604,  4605,  4606,  4607,  4608,  4609,  4610,  4611,
-		4612,  4613,  4614,  4615,  4616,  4617,  4618,  942,
-		-209,  941,   941,   1326,  4624,  4625,  4626,  4627,
-		4628,  4629,  4630,  -7320, 177,   178,   179,   180,
-		4636,  4637,  4638,  4639,  4640,  4641,  187,   188,
-		189,   190,   191,   192,   193,   194,   195,   4651,
-		4652,  4653,  4654,  4655,  4656,  4657,  4658,  4659,
-		4660,  4661,  4662,  4663,  4664,  4665,  4666,  4667,
-		4668,  4669,  4670,  4671,  0,     0,     0,     0,
-		0,     0,     0,     2119,  2119,  1662,  4682,  4683,
-		4684,  4685,  1670,  4580,  9520,  3153,  2001,  3153,
-		2130,  2130,  3153,  3153,  3153,  3153,  3153,  -4610,
-		2003,  1422,  1423,  1424,  1425,  1426,  1427,  1428,
-		1429,  1430,  1431,  1432,  5825,  1434,  1435,  1436,
-		1437,  1438,  1439,  1440,  1441,  1442,  1443,  1444,
-		1445,  1446,  1447,  1448,  3153,  3153,  3153,  3153,
-		3153,  8643,  3153,  3153,  0,     0,     9390,  0,
-		5993,  -1478, 0,     0,     -1480, -1480, -1480, -1480,
-		-1480, -1480, -1480, -1480, -1480, 2438,  2438,  0,
-		2439,  2439,  2439,  2439,  2439,  2439,  2439,  0,
-		0,     2441,  0,     2442,  0,     2443,  2443,  0,
-		0,     0,     2396,  0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     1373,  0,     0,     2094,  2442,
-		0,     4113,  1964,  1964,  0,     0,     0,     0,
-		2104,  2105,  2106,  2107,  2108,  2109,  2110,  2111,
-		2112,  2113,  2114,  2115,  2116,  2117,  2118,  2119,
-		2120,  2121,  2122,  2123,  2124,  2125,  2126,  2127,
-		2128,  2129,  2130,  2131,  2132,  2133,  2134,  2135,
-		2136,  2137,  2138,  2139,  2140,  2141,  2142,  2143,
-		2144,  2145,  2146,  2147,  2148,  2149,  4849,  4850,
-		4851,  4852,  4853,  4854,  4855,  4856,  4857,  4858,
-		4859,  4860,  4861,  4862,  4863,  4864,  2500,  4866,
-		4867,  4868,  4869,  4870,  2505,  4872,  4873,  4874,
-		2508,  4876,  4877,  4878,  4879,  4880,  2513,  2150,
-		2151,  2152,  2153,  2154,  2155,  0,     2157,  2158,
-		2159,  2160,  2161,  2162,  2163,  2164,  2165,  2166,
-		2167,  2168,  805,   2170,  2171,  2172,  2173,  2174,
-		2175,  2176,  2177,  2178,  2179,  2180,  2181,  2182,
-		2183,  2184,  2185,  2186,  2187,  2188,  2189,  2190,
-		2191,  2192,  2193,  2194,  0,     4928,  4929,  4930,
-		4931,  4932,  0,     4934,  4935,  4936,  4937,  7848,
-		4939,  0,     0,     0,     4943,  4944,  4945,  4946,
-		4947,  4948,  4949,  4950,  0,     4952,  4953,  4954,
-		0,     0,     2546,  0,     0,     2546,  2546,  2546,
-		4963,  -5990, 4965,  1530,  4967,  4968,  4969,  4970,
-		4971,  8142,  8142,  8142,  8142,  1530,  2112,  4978,
-		4979,  4980,  4981,  4982,  2644,  2645,  2646,  2647,
-		2648,  2649,  2650,  2651,  2099,  2653,  4993,  4994,
-		4995,  4996,  4997,  4998,  2092,  5000,  5001,  5002,
-		5003,  5004,  5005,  287,   5007,  5008,  32767, 5009,
-		5010,  5011,  5012,  -2457, 5014,  -2456, 5016,  5017,
-		5018,  5019,  5020,  5021,  5022,  5023,  5024,  5025,
-		5026,  5027,  5028,  -4624, 5030,  5031,  5032,  5033,
-		5034,  5035,  5036,  5037,  5038,  2677,  2678,  2679,
-		2680,  2681,  2682,  2683,  2684,  2685,  2686,  -6383,
-		2687,  2688,  2689,  2690,  2691,  2692,  2693,  2694,
-		2695,  2696,  2697,  2698,  2699,  2700,  2701,  2702,
-		2703,  2704,  2705,  32767, 2706,  2707,  2708,  2709,
-		32767, 32767, 32767, 32767, 2710,  4682,  4683,  32767,
-		2713,  32767, 2714,  906,   907,   908,   909,   2719,
-		2720,  910,   2722,  2723,  2724,  2725,  2726,  2727,
-		2728,  2729,  2730,  2731,  2732,  2733,  2734,  2735,
-		2736,  2737,  2738,  2739,  2740,  2741,  2742,  2743,
-		2744,  2745,  2746,  2747,  2748,  2749,  2750,  2751,
-		2752,  2753,  2974,  2755,  174,   2757,  2758,  2759,
-		2760,  2761,  2762,  2763,  2764,  2765,  2766,  2767,
-		2768,  2769,  2770,  6689,  6690,  6691,  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,  5259,  2818,  3298,  3299,  2821,  2822,  2823,
-		2824,  2825,  2826,  3170,  2828,  2829,  2830,  2831,
-		2832,  2833,  2834,  3177,  3177,  3177,  3177,  3177,
-		3177,  2841,  2842,  2843,  2844,  2845,  2846,  2847,
-		2848,  32767, 32767, 32767, 32767, 32767, 2849,  2850,
-		2851,  2852,  2853,  2854,  2855,  2856,  2857,  2858,
-		2859,  2860,  2861,  2862,  2863,  2864,  2865,  2866,
-		2867,  2868,  2869,  2870,  2871,  2872,  2873,  2874,
-		2875,  2876,  2877,  2878,  2879,  2880,  2881,  2882,
-		2883,  -1495, 2885,  2886,  4004,  4005,  4006,  4007,
-		4008,  -1495, -1495, 2894,  2895,  -1495, -1495, 2898,
-		2899,  2900,  2901,  2902,  2903,  2904,  2905,  -1494,
-		2907,  2908,  2909,  2910,  2911,  2912,  2913,  -1494,
-		2915,  2916,  2917,  2918,  3677,  2920,  3680,  3681,
-		3129,  2924,  2925,  2926,  2927,  2928,  2929,  2930,
-		2931,  2932,  2933,  2934,  2935,  2936,  2937,  2938,
-		2939,  2940,  2941,  2942,  2943,  2944,  2945,  2946,
-		2947,  2948,  2949,  2950,  2951,  2952,  2953,  2954,
-		2955,  2956,  -1468, -1468, 2959,  2960,  2961,  2962,
-		2963,  2964,  2965,  2966,  2967,  2968,  2969,  2970,
-		2971,  2972,  2973,  2974,  2975,  2976,  2977,  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,  32767, 32767, 32767, 3039,
-		3040,  3041,  3042,  3043,  3044,  32767, 32767, 3045,
-		3046,  3047,  3048,  3049,  3050,  32767, 32767, 3051,
-		3052,  3053,  3054,  3055,  3056,  32767, 32767, 3057,
-		3058,  3059,  32767, 32767, 32767, 3060,  3061,  3062,
-		3063,  3064,  3065,  3066,  32767, 3067,  3068,  3069,
-		3070,  3071,  3072,  3073,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -7311,6 +6893,16 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 4205,  4206,  4207,
+		4208,  4209,  4210,  4211,  4212,  4213,  4214,  4215,
+		4216,  -4880, 4218,  5470,  -4882, 4221,  4222,  4223,
+		4224,  4225,  4226,  4227,  4228,  1009,  4230,  4231,
+		1007,  4233,  4234,  4250,  4250,  4250,  4238,  4239,
+		4240,  4253,  4253,  4243,  4244,  4245,  4246,  4247,
+		4248,  4249,  4250,  4251,  4252,  4253,  4254,  353,
+		7010,  3652,  4258,  4259,  7011,  4261,  4262,  4263,
+		4264,  4265,  4266,  32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 105,   32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -7318,38 +6910,411 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 2834,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, -2302, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 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,
-		0,     0,     0,     0,     32767, 0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		32767, 0,     0,     32767, 0,     32767, 32767, 0,
-		32767, 0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     32767, 0,     0,     0,     0,
-		32767, 0,     32767, 0,     32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		-2356, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 0,     32767, 32767, 32767, 32767, 0,
-		32767, 0,     32767, 0,     32767, 0,     0,     0,
-		32767, 0,     0,     32767, 0,     32767, 32767, 0,
-		32767, 0,     32767, 0,     32767, 0,     32767, 0,
-		32767, 0,     0,     32767, 0,     32767, 32767, 0,
-		0,     0,     0,     32767, 0,     0,     0,     0,
-		0,     0,     0,     32767, 0,     0,     0,     0,
-		32767, 0,     0,     0,     0,     32767, 0,     32767,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     32767, 0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     32767, 32767, 32767, 32767,
-		32767, 0,     0,     0,     32767, 0,     0,     0,
-		0,     0,     32767, -1358, -1358, 0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 0,     32767, 32767, 32767,
+		32767, -4130, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, -48,   32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		299,   32767, 300,   301,   -2381, -2381, -2381, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, -2388, 32767,
+		32767, -4398, -4398, -4398, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		-17740,32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 4825,  32767, 32767, 32767, 32767, -4293,
+		32767, 32767, 32767, 109,   -5804, 111,   112,   32767,
+		32767, -4301, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, -2438, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 685,   32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		-20069,32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		3994,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, -6790, -6790,
+		157,   -3219, -17570,-1719, -1719, -3027, -3027, -19414,
+		-3027, -9665, -3028, -3028, -3028, -3028, -3028, 4977,
+		577,   -3028, -3028, -6421, 4983,  -6422, -17851,9446,
+		-3028, -3028, 331,   -3028, 3628,  -3027, -3027, -3027,
+		-3027, -3027, -3027, 1374,  4980,  4981,  8375,  -3028,
+		8378,  19808, -7488, 4987,  -3031, 3880,  -3042, 1588,
+		24261, -3032, 24264, -3032, 24267, -3032, 19640, -3032,
+		24262, -3033, 1694,  -3033, -3033, 1597,  24270, 1699,
+		1700,  1701,  1702,  1703,  16265, -3014, 1706,  1707,
+		1708,  1709,  8366,  5008,  8368,  1713,  8369,  8370,
+		8371,  1717,  8374,  8375,  3975,  370,   370,   -3023,
+		8381,  -3024, -14453,12844, 370,   8389,  1479,  8402,
+		3773,  -18899,8395,  -18900,8397,  -18901,8399,  -14272,
+		8401,  -18892,8404,  3678,  8406,  8407,  3778,  -18894,
+		3678,  3678,  3678,  3678,  3678,  -10883,8397,  3678,
+		3678,  3678,  3678,  -2978, 381,   -2978, 3678,  -2977,
+		-2977, -2977, 3678,  -2978, -2978, 1423,  5029,  5030,
+		8424,  -2979, 8427,  19857, -7439, 5036,  5037,  1679,
+		5039,  -1616, 5040,  5041,  5042,  5043,  5044,  5045,
+		645,   -2960, -2960, -6353, 5051,  -6354, -17783,9514,
+		-2960, 5059,  -1851, 5072,  443,   -22229,5065,  -22230,
+		5067,  -22231,5069,  -17602,5071,  -22222,5074,  348,
+		5076,  5077,  448,   -22224,348,   348,   348,   348,
+		348,   -14213,5067,  348,   348,   348,   348,   -6308,
+		-2949, -6308, 348,   -6307, -6307, -6307, 348,   -6308,
+		-6308, -1907, 1699,  1700,  5094,  -6309, 5097,  16527,
+		-10769,1706,  1707,  -1651, 348,   348,   348,   1286,
+		348,   348,   348,   348,   348,   348,   1603,  348,
+		348,   348,   348,   348,   348,   348,   348,   348,
+		348,   348,   348,   348,   348,   348,   348,   348,
+		348,   348,   348,   348,   348,   348,   348,   4429,
+		4429,  4429,  4429,  4429,  2660,  2661,  2662,  901,
+		348,   348,   348,   348,   348,   348,   348,   348,
+		3928,  3306,  3306,  3928,  0,     2675,  2676,  2677,
+		2678,  0,     2680,  0,     0,     2683,  2684,  2685,
+		2686,  4556,  2687,  2688,  2689,  8575,  2691,  2692,
+		-9266, -9266, -4636, 18037, -9256, 18040, -9256, 18043,
+		18044, 13415, -9257, 18037, -9258, 18039, -9259, -9259,
+		-4629, 18044, 4581,  4582,  4583,  -2184, -4527, 10035,
+		-9244, -2185, -4524, 4590,  -4523, 2134,  -1224, 2717,
+		4595,  2719,  2720,  4598,  6107,  6107,  6107,  2725,
+		2726,  2727,  4605,  2729,  2730,  2731,  4609,  2736,
+		4611,  4612,  4613,  6118,  6118,  4616,  6119,  2743,
+		4619,  4620,  2744,  2745,  6123,  2747,  6124,  4626,
+		4627,  4628,  4629,  2753,  4631,  2755,  4633,  8896,
+		8897,  8898,  4637,  4638,  4639,  4640,  0,     0,
+		0,     0,     0,     -1812, 0,     0,     0,     8925,
+		0,     0,     1330,  -3389, 0,     0,     0,     8940,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		10649, 8068,  0,     0,     16017, 8807,  8808,  -1676,
+		906,   8811,  -7039, -7038, 173,   173,   10658, 8077,
+		173,   16024, 16024, 8814,  8815,  -1669, 913,   8818,
+		-7032, -7031, 180,   180,   10665, 8084,  180,   16031,
+		16031, 8821,  8822,  -1662, 920,   8825,  9014,  -7023,
+		188,   188,   10673, 8092,  188,   0,     16038, 8828,
+		8829,  -1655, 927,   8832,  4727,  4728,  4729,  4730,
+		4305,  4732,  4733,  4734,  4735,  4736,  4737,  4738,
+		4739,  4740,  4741,  4742,  4743,  4744,  4745,  4746,
+		4747,  4748,  1540,  1540,  1540,  1540,  1540,  1540,
+		1540,  1540,  1540,  1540,  1540,  -1893, 1540,  1540,
+		1540,  1540,  1540,  1540,  1540,  1540,  1540,  1540,
+		1540,  1540,  1540,  1540,  1540,  1540,  1540,  1540,
+		1540,  1540,  1540,  1540,  1540,  1540,  911,   1540,
+		4614,  4615,  4616,  4617,  4618,  1540,  4619,  4620,
+		4621,  4622,  4623,  4624,  4625,  4626,  4627,  -7592,
+		11688, 4630,  4631,  4632,  4633,  4634,  4635,  32767,
+		4810,  4811,  4812,  4813,  3850,  3851,  4816,  4817,
+		4818,  4819,  4820,  4821,  4822,  4823,  4824,  4825,
+		4573,  4573,  4573,  4573,  4830,  4574,  4574,  4574,
+		4834,  4575,  4575,  4575,  4575,  4575,  917,   918,
+		4575,  4575,  4575,  4575,  923,   4576,  4576,  926,
+		927,   928,   7709,  930,   931,   932,   933,   934,
+		7717,  936,   7719,  938,   7722,  940,   941,   942,
+		943,   944,   945,   946,   7733,  948,   949,   950,
+		951,   952,   953,   954,   955,   956,   957,   958,
+		959,   960,   961,   962,   963,   964,   965,   4765,
+		967,   968,   969,   970,   971,   972,   973,   974,
+		975,   976,   977,   978,   4902,  4903,  -2043, 1334,
+		15686, -164,  -163,  1146,  1147,  17535, 1149,  7788,
+		1152,  1153,  1154,  1155,  1156,  -6848, -2447, 1159,
+		1160,  4554,  -6849, 4557,  15987, -11309,1166,  7797,
+		7798,  7799,  -5489, 1167,  1168,  1169,  1170,  1171,
+		1172,  -3228, -6833, -6833, -10226,1178,  -10227,-21656,
+		7812,  7813,  7814,  7815,  7816,  4951,  7817,  7818,
+		4954,  4955,  4956,  4957,  4958,  4959,  4960,  4961,
+		4962,  7837,  4964,  4965,  4966,  4967,  4968,  4969,
+		4970,  4971,  4972,  4973,  4974,  4975,  4976,  4977,
+		4978,  4979,  4980,  4981,  4982,  4983,  4984,  4985,
+		4986,  4987,  4988,  4989,  4990,  4991,  4992,  4993,
+		4994,  4995,  4996,  4997,  4998,  4999,  5000,  5001,
+		5002,  5003,  5004,  5005,  5006,  5007,  5008,  5009,
+		5010,  0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     -224,  -224,  -224,  -6880, -3521, -6880, -224,
+		-6879, -6879, -6879, -6879, -6879, -6879, -2478, 1128,
+		1129,  4523,  -6880, 4526,  15956, -11340,1135,  -6883,
+		28,    -6894, -2264, 20409, -6884, 20412, -6884, 20415,
+		20416, 15787, -6885, 20409, -6886, -2159, -6886, -6886,
+		-2256, 20417, -2154, -2153, -2152, -2151, -2150, 12412,
+		-6867, -2147, -2146, -2145, -2144, 4513,  1155,  4515,
+		-2140, 4516,  4517,  4518,  -2136, 4521,  4522,  122,
+		-3483, -3483, -6876, 4528,  -6877, -18306,8991,  -3483,
+		-3483, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, -3490, 911,   4517,  4518,  7912,  -3491, 7915,
+		19345, -7951, 4524,  -3494, 3417,  -3505, 1125,  23798,
+		-3495, 23801, -3495, 23804, -3495, 19177, -3495, 23799,
+		-3496, 1231,  -3496, -3496, 1134,  23807, 1236,  1237,
+		1238,  1239,  1240,  15802, -3477, 1243,  1244,  1245,
+		1246,  7903,  4545,  7905,  1250,  7906,  7907,  7908,
+		7909,  7910,  7911,  3511,  -94,   -94,   -3487, 7917,
+		-3488, -14917,12380, -94,   7925,  1015,  7938,  3309,
+		-19363,7931,  -19364,7933,  -19365,7935,  -14736,7937,
+		-19356,7940,  3214,  7942,  7943,  3314,  -19358,3214,
+		3214,  3214,  3214,  3214,  -11347,7933,  3214,  3214,
+		3214,  3214,  -3442, -83,   -3442, 3214,  -3441, -3441,
+		-3441, 3214,  -3442, -3442, 959,   4565,  4566,  7960,
+		-3443, 7963,  19393, -7903, 4572,  4573,  1215,  4575,
+		-2080, 4576,  4577,  4578,  4579,  4580,  4581,  181,
+		-3424, -3424, -6817, 4587,  -6818, -18247,9050,  -3424,
+		4595,  -2315, 4608,  -21,   -22693,4601,  -22694,4603,
+		-22695,4605,  -18066,4607,  -22686,4610,  -116,  4612,
+		4613,  -16,   -22688,-116,  -116,  -116,  -116,  -116,
+		-14677,4603,  -116,  -116,  -116,  -116,  -6772, -3413,
+		-6772, -116,  -6771, -6771, -6771, -116,  -6772, -6772,
+		-2371, 1235,  1236,  4630,  -6773, 4633,  16063, -11233,
+		1242,  -6776, 135,   -6787, -2157, 20516, -6777, 20519,
+		-6777, 20522, -6777, 15895, -6777, 20517, -6778, -2051,
+		-6778, -6778, -2148, 20525, -2046, -2045, -2044, -2043,
+		-2042, 12520, -6759, -2039, -2038, -2037, -2036, 4621,
+		1263,  4623,  -2032, 4624,  4625,  4626,  -2028, 4629,
+		4630,  230,   -3375, -3375, -6768, 4636,  -6769, -18198,
+		9099,  -3375, -3375, -16,   -3375, 3281,  -3374, -3374,
+		-3374, -3374, -3374, -3374, 1027,  4633,  4634,  8028,
+		-3375, 8031,  19461, -7835, 4640,  -3378, 3533,  -3389,
+		1241,  23914, -3379, 23917, -3379, 23920, -3379, 19293,
+		-3379, 23915, -3380, 1347,  -3380, -3380, 1250,  23923,
+		1352,  1353,  1354,  1355,  1356,  15918, -3361, 1359,
+		1360,  1361,  1362,  8019,  4661,  8021,  1366,  8022,
+		8023,  8024,  1370,  8027,  8028,  3628,  23,    23,
+		-3370, 8034,  -3371, -14800,12497, 23,    23,    3382,
+		1384,  1385,  1386,  449,   1388,  1389,  1390,  1391,
+		1392,  1393,  139,   1395,  1396,  1397,  1398,  1399,
+		1400,  1401,  1402,  1403,  1404,  1405,  1406,  1407,
+		1408,  1409,  1410,  1411,  1412,  1413,  1414,  1415,
+		1416,  1417,  1418,  -2662, -2661, -2660, -2659, -2658,
+		-888,  -888,  -888,  874,   1428,  1429,  1430,  1431,
+		1432,  1433,  1434,  1435,  -2144, -1521, -1520, -2141,
+		1788,  -886,  -886,  3336,  1791,  1792,  1793,  1794,
+		1795,  1796,  1797,  1798,  1799,  1800,  1801,  1802,
+		1803,  1804,  1458,  1459,  1805,  1461,  1806,  1463,
+		1464,  1807,  1808,  1809,  1810,  1811,  1812,  1813,
+		1814,  1815,  1816,  1381,  1817,  1381,  1818,  1381,
+		1480,  1819,  1820,  1483,  1484,  1485,  1821,  1822,
+		1823,  1824,  1825,  1826,  1827,  1828,  1829,  1830,
+		1831,  1832,  1833,  1834,  1835,  1836,  1837,  1838,
+		1839,  1840,  1841,  1842,  1843,  1844,  1845,  1846,
+		1847,  1848,  1849,  1850,  1851,  1852,  1853,  1854,
+		1855,  1856,  1857,  1858,  1859,  1860,  1861,  1862,
+		1863,  1864,  1865,  1866,  1867,  1868,  1869,  1870,
+		1871,  1872,  1873,  1874,  1875,  1876,  1877,  0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     9097,  0,     -1251, 9102,  0,
+		0,     0,     0,     0,     0,     0,     0,     3220,
+		0,     0,     3225,  0,     0,     -15,   -14,   -13,
+		0,     0,     0,     -12,   -11,   0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     3902,  -2754, 605,   0,     0,     -2751, 0,
+		0,     0,     0,     0,     0,     1938,  1939,  1940,
+		1941,  1942,  1943,  1944,  1945,  1946,  1947,  1948,
+		1949,  1950,  1951,  1530,  1443,  1532,  1533,  1956,
+		1957,  1958,  1959,  1960,  1961,  1962,  141,   1964,
+		1534,  1966,  1967,  1968,  1969,  1970,  1971,  1972,
+		1973,  1974,  1975,  1976,  1977,  1978,  1979,  1980,
+		1981,  142,   143,   1984,  1985,  1986,  1987,  1988,
+		1989,  1990,  1991,  1992,  1993,  1994,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 1665,  1996,  1997,
+		1998,  1999,  2000,  2001,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		2002,  2003,  2004,  2005,  2006,  32767, 32767, 32767,
+		32767, 32767, 2007,  32767, 2008,  2009,  2010,  2011,
+		2012,  2013,  2014,  2015,  2016,  2017,  2018,  2019,
+		2020,  2021,  2022,  2023,  2024,  2025,  2026,  2027,
+		-4501, -4501, -4501, -4501, -1422, -4500, -4500, -4500,
+		2035,  2036,  32767, 1706,  32767, 1706,  1706,  32767,
+		1705,  1705,  32767, 2042,  2043,  2044,  2045,  2046,
+		2047,  1711,  2049,  1712,  2051,  4525,  4525,  4525,
+		2055,  2056,  2057,  4528,  2059,  2060,  2061,  2062,
+		2063,  2064,  2065,  7042,  2067,  4536,  4536,  4536,
+		2071,  2072,  2073,  4539,  2075,  2076,  2077,  2078,
+		2079,  2080,  2081,  2082,  2083,  2084,  1735,  1735,
+		2087,  2088,  2089,  2090,  2091,  2092,  2093,  2094,
+		226,   227,   2097,  228,   229,   230,   6116,  232,
+		233,   -11725,-11725,-7095, 15578, -11715,15581, -11715,
+		15584, 15585, 10956, -11716,15578, -11717,15580, -11718,
+		-11718,-7088, 15585, 2122,  2123,  2124,  -4643, -6986,
+		7576,  -11703,-4644, -6983, 2131,  -6982, -325,  -3683,
+		258,   2136,  260,   261,   2139,  3648,  3648,  3648,
+		266,   267,   268,   2146,  270,   271,   272,   -1029,
+		32767, 32767, 32767, 32767, 6972,  2572,  32767, -1034,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -4286,
+		32767, 32767, -2089, 32767, 3715,  32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		-2492, -2492, -2492, -2492, -4304, -2492, -2492, -2492,
+		6433,  -2492, -2492, -1162, -5881, -2492, -2492, -2492,
+		6448,  -2492, -2492, -2492, -2492, -2492, -2492, -2492,
+		-2492, -2492, -2492, -2492, -2492, -2492, -2492, -2492,
+		-2492, 8157,  5576,  -2492, -2492, 13525, 6315,  6316,
+		-4168, -1586, 6319,  -9531, -9530, 32767, 2195,  2196,
+		2197,  2198,  2199,  2200,  2201,  2202,  2203,  2204,
+		2205,  2206,  2207,  2208,  2209,  2210,  2211,  2212,
+		2213,  2214,  2215,  2216,  2217,  2218,  2219,  2220,
+		2221,  2222,  2223,  2224,  2225,  2226,  2227,  2228,
+		2229,  2230,  2231,  2232,  2233,  2234,  2235,  2236,
+		2237,  2238,  2239,  2240,  2241,  2242,  2243,  2244,
+		2245,  2246,  2247,  2248,  2249,  2250,  2251,  2252,
+		2253,  2254,  2255,  2256,  2257,  2258,  2259,  2260,
+		2261,  2262,  -5075, 2264,  2265,  2266,  2267,  2268,
+		2269,  2270,  2271,  2272,  2273,  2274,  2275,  2276,
+		2277,  2278,  2279,  2280,  2281,  2282,  2283,  2284,
+		2285,  2286,  2287,  2288,  2289,  2290,  2291,  2292,
+		2293,  2294,  2295,  2296,  2297,  2298,  2299,  2300,
+		2301,  2302,  2303,  1667,  1667,  2306,  2307,  2308,
+		2309,  2310,  2311,  2312,  2313,  2314,  2315,  2316,
+		2317,  2318,  2319,  2320,  2321,  1358,  1359,  2324,
+		2325,  2326,  2327,  2328,  2329,  2330,  2331,  2332,
+		2333,  2081,  2081,  2081,  2081,  2338,  2082,  2082,
+		2082,  2342,  2083,  2083,  2083,  2083,  2083,  -1575,
+		-1574, 2083,  2083,  2083,  2083,  -1569, 2084,  2084,
+		-1566, -1565, -1564, 5217,  -1562, -1561, -1560, -1559,
+		-1558, 5225,  -1556, 5227,  -1554, 5230,  -1552, -1551,
+		-1550, -1549, -1548, -1547, -1546, 5241,  -1544, -1543,
+		-1542, -1541, -1540, -1539, -1538, -1537, -1536, -1535,
+		-1534, -1533, -1532, -1531, -1530, -1529, -1528, -1527,
+		2273,  -1525, -1524, -1523, -1522, -1521, -1520, -1519,
+		-1518, -1517, -1516, -1515, -1514, 2410,  2411,  -4535,
+		-1158, 13194, -2656, -2655, -1346, -1345, 15043, -1343,
+		5296,  -1340, -1339, -1338, -1337, -1336, -9340, -4939,
+		-1333, -1332, 2062,  -9341, 2065,  13495, -13801,-1326,
+		5305,  5306,  5307,  -7981, -1325, -1324, -1323, -1322,
+		-1321, -1320, -5720, -9325, -9325, -12718,32767, 2451,
+		2452,  2453,  2454,  2455,  2456,  2457,  2458,  2459,
+		2460,  2461,  2462,  2463,  2464,  2465,  -6169, 4316,
+		1735,  -6169, 9682,  9682,  2472,  2473,  -8011, -5429,
+		2476,  -13374,-13373,2479,  2480,  2481,  2482,  2483,
+		2484,  2485,  2486,  2487,  2488,  2489,  2490,  2491,
+		2492,  2493,  2494,  2495,  2496,  2497,  2498,  203,
+		1141,  203,   203,   203,   203,   203,   203,   1458,
+		203,   2509,  2510,  2511,  2512,  32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 155,   32767, 32767, 32767,
+		32767, 156,   32767, 32767, 32767, 32767, 157,   207,
+		4288,  4288,  4288,  4288,  4288,  2519,  2520,  2521,
+		760,   207,   207,   207,   207,   207,   207,   207,
+		207,   3787,  3165,  3165,  2534,  2535,  2536,  2537,
+		2538,  2539,  -139,  2541,  -139,  -139,  2544,  2545,
+		2546,  2547,  2548,  2549,  2550,  2551,  8437,  2553,
+		2554,  -9404, -9404, -4774, 17899, -9394, 17902, -9394,
+		17905, 17906, 13277, -9395, 17899, -9396, -4669, -9396,
+		-9396, -4766, 17907, -4664, -4663, -4662, -4661, 0,
+		32767, -9379, -4659, -4658, -4657, -4656, 2001,  -1357,
+		2584,  4462,  2586,  2587,  4465,  5974,  5974,  5974,
+		2592,  2593,  2594,  4472,  2596,  2597,  2598,  4476,
+		2603,  4478,  4479,  4480,  5985,  5985,  4483,  5986,
+		2610,  4486,  4487,  2611,  2612,  5990,  2614,  5991,
+		4493,  4494,  4495,  4496,  2620,  4498,  2622,  4500,
+		8763,  8764,  8765,  4504,  4505,  4506,  4507,  32767,
+		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,     8635,
+		-1849, 733,   8638,  -7212, -7211, 0,     0,     10485,
+		7904,  0,     15851, 15851, 0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		2296,  1359,  2298,  2299,  2300,  2301,  2302,  2303,
+		1049,  2305,  0,     0,     0,     0,     0,     32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 173,   32767,
+		32767, 32767, 32767, 32767, 0,     32767, 32767, 32767,
+		2306,  -1774, -1773, -1772, -1771, -1770, 0,     0,
+		0,     1762,  2316,  2317,  2318,  2319,  2320,  2321,
+		2322,  2323,  -1256, -633,  -632,  0,     0,     0,
+		0,     0,     0,     2679,  0,     2681,  2682,  0,
+		0,     0,     0,     0,     0,     0,     0,     -5885,
+		0,     0,     11959, 11960, 7331,  -15341,11953, -15342,
+		11955, -15343,-15343,-10713,11960, -15333,11963, 7237,
+		11965, 11966, 7337,  -15335,7237,  7237,  7237,  7237,
+		7237,  -7324, 11956, 7237,  7237,  7237,  7237,  581,
+		3940,  0,     -1877, 0,     0,     -1877, -3385, -3384,
+		-3383, 0,     0,     0,     -1877, 0,     0,     0,
+		-1877, -3,    -1877, -1877, -1877, -3381, -3380, -1877,
+		-3379, -2,    -1877, -1877, 0,     0,     -3377, 0,
+		-3376, -1877, -1877, -1877, -1877, 0,     -1877, 0,
+		-1877, -6139, -6139, -6139, -1877, -1877, -1877, -1877,
+		2764,  2765,  2766,  2767,  2768,  4581,  2770,  2771,
+		2772,  -6152, 2774,  2775,  1446,  6166,  2778,  2779,
+		2780,  -6159, 2782,  2783,  2784,  2785,  2786,  2787,
+		2788,  2789,  2790,  2791,  2792,  2793,  2794,  2795,
+		2796,  2797,  -7851, -5269, 2800,  2801,  -13215,-6004,
+		-6004, 4481,  1900,  -6004, 9847,  9847,  2637,  2638,
+		-7846, -5264, 2641,  -13209,-13208,-5997, -5997, 4488,
+		1907,  -5997, 9854,  9854,  2644,  2645,  -7839, -5257,
+		2648,  -13202,-13201,-5990, -5990, 4495,  1914,  -5990,
+		-6178, 9860,  2650,  2651,  -7833, -5251, 2654,  2843,
+		-13194,-5983, -5983, 4502,  1921,  32767, 32767, 32767,
+		32767, 32767, 2849,  2850,  1029,  2852,  2422,  2854,
+		2855,  2856,  2857,  2858,  2859,  2860,  2861,  2862,
+		2863,  2864,  2865,  2866,  2867,  2868,  2869,  1030,
+		1031,  2872,  2873,  2874,  2875,  2876,  2877,  2878,
+		2879,  2880,  2881,  2882,  2883,  2884,  2885,  2886,
+		2887,  2888,  2889,  2890,  2891,  2892,  2893,  2894,
+		2895,  2896,  2897,  2898,  2899,  2900,  2901,  2902,
+		2903,  2904,  2905,  2906,  2907,  2908,  2909,  2910,
+		2911,  2912,  2913,  2914,  2915,  2916,  2917,  2918,
+		2919,  2920,  2921,  2922,  2923,  2924,  2925,  2926,
+		2927,  2928,  2929,  2930,  2931,  2932,  2933,  2934,
+		2935,  2936,  175,   176,   177,   178,   179,   180,
+		181,   182,   183,   184,   185,   186,   187,   188,
+		189,   190,   191,   192,   193,   194,   195,   2958,
+		2959,  2960,  2961,  2962,  2963,  2964,  2965,  2966,
+		2967,  2968,  2969,  2970,  2971,  2972,  2973,  2974,
+		2975,  2976,  2977,  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,  196,   197,   198,   199,   200,   201,   202,
+		203,   204,   205,   206,   207,   208,   209,   4471,
+		-2296, 212,   213,   214,   215,   216,   217,   218,
+		219,   220,   221,   3568,  3035,  3036,  3037,  3038,
+		32767, 32767, 32767, 3039,  3040,  3041,  3042,  3043,
+		3044,  32767, 32767, 3045,  3046,  3047,  4565,  3049,
+		4567,  32767, 32767, -1319, -1319, -1319, -1319, -1319,
+		-1319, 32767, 32767, -1321, -1321, 3059,  32767, 32767,
+		32767, -1050, 3061,  3062,  3063,  3064,  3065,  3066,
+		32767, 3067,  3068,  3069,  3070,  3693,  3694,  3073,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 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, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -7357,17 +7322,68 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 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,     32767, 0,     0,     0,     0,     32767, 32767,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		32767, 0,     0,     0,     0,     0,     0,     0,
+		32767, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     -3663, -3662, -3661, -3660, -3659, 0,     0,
+		-3656, -3655, -3654, -3653, 0,     -3652, -3651, 0,
+		0,     0,     -6780, 0,     0,     0,     0,     0,
+		-6782, 0,     -6782, 0,     -6783, 0,     0,     0,
+		0,     0,     0,     0,     -6786, 0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     -3799,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     -3923, -3923, 3024,  -352,
+		-14703,1148,  1148,  -160,  -160,  -16547,-160,  -6798,
+		-161,  -161,  -161,  -161,  -161,  7844,  3444,  -161,
+		-161,  -3554, 7850,  -3555, -14984,12313, -161,  -161,
+		3198,  -161,  6495,  -160,  -160,  -160,  -160,  -160,
+		-160,  4241,  7847,  7848,  11242, -161,  11245, 22675,
+		-4621, 7854,  -164,  6747,  -175,  4455,  27128, -165,
+		27131, -165,  27134, -165,  22507, -165,  27129, -166,
+		4561,  -166,  -166,  4464,  27137, 4566,  4567,  4568,
+		4569,  4570,  19132, -147,  4573,  4574,  4575,  4576,
+		11233, 7875,  11235, 4580,  11236, 11237, 11238, 4584,
+		11241, 11242, 6842,  3237,  3237,  -156,  11248, -157,
+		-11586,15711, 3237,  11256, 4346,  11269, 6640,  -16032,
+		11262, -16033,11264, -16034,11266, -11405,11268, -16025,
+		11271, 6545,  11273, 11274, 6645,  -16027,6545,  6545,
+		6545,  6545,  6545,  -8016, 11264, 6545,  6545,  6545,
+		6545,  -111,  3248,  -111,  6545,  -110,  -110,  -110,
+		6545,  -111,  -111,  4290,  7896,  7897,  11291, -112,
+		11294, 22724, -4572, 4364,  4365,  32767, 4366,  4367,
+		4368,  4369,  4370,  4371,  4372,  4373,  4374,  4375,
+		4376,  4377,  4378,  4379,  4380,  4381,  4382,  32767,
+		32767, 32767, 32767, 32767, 4383,  4384,  4385,  32767,
+		4386,  4387,  4388,  4389,  4390,  32767, 4391,  4392,
+		4393,  4394,  4395,  4396,  4397,  4398,  4399,  4400,
+		4401,  4402,  4403,  4404,  4405,  4406,  4407,  32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, -847,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     -1078, -8000, -3370, 19303,
+		32767, 19305, -7991, 19308, -7991, 14681, -7991, 19303,
+		32767, 32767, -7994, 32767, -3365, 32767, -3264, -3263,
+		32767, 32767, 32767, 32767, 32767, 32767, -3262, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 3394,  3395,
+		-3259, 3398,  3399,  -1001, 32767, 32767, 32767, 32767,
+		-8004, -19433,32767, -4611, -4611, 32767, 32767, 32767,
+		32767, 32767, 32767, -4616, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 6782,  18212, -9084, 3391,  -4627,
+		2284,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		5181,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -1272,
+		32767, 32767, 32767, 32767, 32767, -851,  32767, 32767,
+		0,     88,    0,     0,     32767, 32767, 32767, 89,
+		90,    32767, 91,    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,
@@ -7376,8 +7392,12 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 434,   435,   0,     436,   0,
+		437,   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, 434,   435,   436,   32767, 437,
+		438,   32767, 32767, 32767, 439,   32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -7392,23 +7412,20 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -2069, 32767, 32767, -2071,
 		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, 0,     -2105, -2105, 32767, 32767, -2107,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4645,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		-1906, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 256,
-		257,   258,   32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -7416,92 +7433,112 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 4408,  4409,
+		4410,  4411,  4412,  4413,  4414,  4415,  4416,  4417,
+		4418,  32767, 32767, 32767, 32767, 32767, 4419,  4420,
+		4421,  4422,  4423,  4424,  4425,  4426,  4427,  4428,
+		20816, 4430,  4431,  4432,  4433,  4434,  4435,  4436,
+		-3568, 833,   4439,  4440,  7834,  -3569, 7837,  19267,
+		-8029, 4446,  4447,  1089,  4449,  -2206, 4450,  4451,
+		4452,  4453,  4454,  4455,  55,    -3550, 4458,  -6944,
+		4460,  4461,  -18375,4463,  4464,  4465,  4466,  4477,
+		-152,  -22824,4470,  -22825,4472,  -22826,4474,  -18197,
+		4476,  4477,  4478,  -248,  4480,  4481,  32767, -22821,
+		32767, -250,  32767, 32767, 32767, 32767, 32767, 32767,
+		-256,  32767, 32767, 32767, 32767, -6916, 32767, -6916,
+		32767, -6917, 32767, -6919, -6919, -2518, 32767, 1088,
+		4482,  4483,  4484,  32767, 32767, 1091,  32767, -17,
+		32767, -2310, 32767, -6931, 32767, -6932, 32767, -6933,
+		15739, 32767, 20360, 32767, 32767, -6937, -6937, -2307,
+		20366, 32767, -2205, -2204, -2203, -2202, 12360, -6919,
+		-2199, 32767, -2198, -2197, 4460,  1102,  4485,  -2194,
+		4462,  4463,  4464,  32767, 4466,  32767, 66,    -3539,
+		-3539, -6932, 4472,  -6933, -18362,8935,  0,     0,
+		32767, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     32767, 32767, 32767, 32767, 32767, 0,
+		0,     0,     32767, 0,     0,     0,     0,     0,
+		32767, 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, 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,
+		0,     32767, 32767, 32767, 32767, 32767, 32767, 4486,
+		4487,  4488,  32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4489,
+		4490,  4491,  4492,  4493,  4494,  4495,  4496,  4497,
+		4498,  4499,  4500,  4501,  4502,  4503,  4504,  4505,
+		4506,  4507,  4508,  4509,  4510,  4511,  4512,  4513,
+		4514,  4515,  4516,  4517,  4518,  4519,  4520,  4521,
+		4522,  4523,  4524,  4525,  4526,  4527,  4528,  4529,
+		4530,  4531,  4532,  32767, 32767, 32767, 32767, 4533,
+		4534,  4535,  4536,  4537,  4538,  4539,  4540,  4541,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4542,
+		4543,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, -1593, 32767, 32767, 0,     32767, 32767, 32767,
+		32767, 32767, 32767, 0,     32767, 32767, 0,     32767,
+		0,     0,     0,     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, 4210,  4211,  4212,  4213,  32767,
-		4214,  4215,  4216,  4217,  4218,  4219,  4220,  4221,
-		4222,  4223,  4224,  4225,  4226,  4227,  4228,  4229,
-		4230,  4231,  4232,  4233,  4234,  4235,  4236,  4237,
-		4238,  4239,  4240,  32767, 4241,  4242,  32767, 4243,
-		32767, 32767, 4244,  32767, 4245,  4246,  4247,  4248,
-		4249,  4250,  4251,  4252,  4253,  4254,  32767, 4255,
-		4256,  4257,  4258,  32767, 4259,  32767, 4260,  32767,
-		32767, 32767, 32767, 32767, 32767, 4261,  32767, 32767,
-		32767, 32767, 4262,  32767, 4263,  32767, 4264,  32767,
-		4265,  4266,  4267,  32767, 4268,  4269,  32767, 4270,
-		32767, 32767, 4271,  32767, 4272,  32767, 4273,  32767,
-		4274,  32767, 4275,  32767, 4276,  4277,  32767, 4278,
-		32767, 32767, 4279,  4280,  4281,  4282,  32767, 4283,
-		4284,  4285,  4286,  4287,  4288,  4289,  32767, 4290,
-		4291,  4292,  4293,  32767, 4294,  4295,  4296,  4297,
-		32767, 4298,  32767, 4299,  4300,  4301,  4302,  4303,
-		4304,  4305,  4306,  4307,  4308,  0,     4309,  4310,
-		4311,  4312,  4313,  4314,  4315,  4316,  4317,  4318,
-		4319,  4320,  4321,  4322,  4323,  4324,  4325,  0,
-		0,     0,     0,     32767, 4326,  4327,  4328,  32767,
-		4329,  4330,  4331,  4332,  4333,  32767, 5692,  5693,
-		4336,  4337,  4338,  4339,  4340,  4341,  4342,  4343,
-		4344,  4345,  4346,  4347,  4348,  4349,  4350,  0,
+		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,     483,   0,     0,
-		0,     0,     32767, 32767, 0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     7338,  0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     637,
+		638,   0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     964,   964,   0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     253,   254,   255,
+		256,   0,     257,   258,   259,   0,     260,   261,
+		262,   263,   264,   3923,  3923,  267,   268,   269,
+		270,   3923,  271,   272,   3923,  3923,  3923,  -2857,
+		3923,  3923,  3923,  3923,  3923,  -2859, 3923,  -2859,
+		3923,  -2860, 3923,  3923,  3923,  3923,  3923,  3923,
+		3923,  -2863, 3923,  3923,  3923,  3923,  3923,  3923,
+		3923,  3923,  3923,  3923,  3923,  3923,  3923,  3923,
+		3923,  3923,  3923,  3923,  124,   3923,  3923,  3923,
+		3923,  3923,  3923,  3923,  3923,  3923,  3923,  3923,
+		3923,  0,     0,     6947,  3571,  -10780,5071,  5071,
+		3763,  3763,  -12624,3763,  -2875, 3762,  3762,  3762,
+		3762,  3762,  11767, 7367,  3762,  3762,  369,   11773,
+		368,   -11061,16236, 3762,  -2868, -2868, -2868, 10421,
+		3766,  3766,  3766,  3766,  3766,  3766,  8167,  11773,
+		11774, 15168, 3765,  15171, 26601, -2866, -2866, -2866,
+		-2866, -2866, 0,     -2865, -2865, 0,     0,     0,
+		0,     0,     0,     0,     0,     0,     -2874, 0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     -1717, 0,     32767, 32767,
+		0,     0,     0,     0,     0,     0,     5011,  5012,
+		5013,  5014,  5015,  5016,  5017,  5018,  5019,  5020,
+		5021,  5022,  5023,  5024,  5025,  5026,  5027,  5028,
+		5029,  5030,  5031,  5032,  5033,  5034,  5035,  5036,
+		5037,  5038,  5039,  5040,  5041,  5042,  5267,  5268,
+		5269,  11926, 8568,  11928, 5273,  11929, 11930, 11931,
+		11932, 11933, 11934, 7534,  3929,  3929,  536,   11940,
+		535,   -10894,16403, 3929,  11948, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 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,     -1769, 0,     0,     0,     0,
-		0,     0,     0,     0,     0,     -1778, 0,     0,
-		0,     0,     -1782, 0,     0,     0,     0,     -1786,
-		0,     0,     0,     0,     -1790, 0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     -1802, 0,     0,     0,     0,     0,     0,
-		0,     0,     0,     -1811, 0,     -1812, -1812, -1812,
-		-1812, -1812, 0,     0,     0,     0,     0,     0,
-		0,     -1819, 0,     0,     0,     0,     0,     0,
-		-459,  -458,  0,     0,     0,     0,     -3016, 0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		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, 0,     32767,
-		0,     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,
@@ -7509,94 +7546,69 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		3160,  3161,  3162,  3163,  3164,  3165,  3166,  3167,
+		3168,  3169,  3170,  3171,  3172,  3173,  3174,  3175,
+		3176,  3177,  3178,  3179,  3180,  3181,  3182,  3183,
+		3184,  3185,  3186,  3187,  3188,  3189,  3190,  3191,
+		3416,  3417,  3418,  10075, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		223,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 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,     4379,
-		0,     0,     -1117, -1117, -1117, -1117, -1117, 4387,
-		4388,  0,     0,     4391,  4392,  0,     0,     0,
-		0,     0,     0,     0,     0,     4400,  0,     0,
-		0,     0,     0,     0,     0,     4408,  0,     0,
-		0,     0,     -758,  0,     -759,  -759,  -206,  0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		4425,  4426,  0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     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, 0,     0,     0,
-		0,     0,     0,     32767, 32767, 0,     0,     0,
-		0,     0,     0,     32767, 32767, 0,     0,     0,
-		0,     0,     0,     32767, 32767, 0,     0,     0,
-		32767, 32767, 32767, 0,     0,     0,     0,     0,
-		0,     0,     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, 4429,
-		4430,  4431,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4432,
-		4433,  4434,  4435,  4436,  4437,  4438,  4439,  4440,
-		4441,  4442,  4443,  4444,  4445,  4446,  4447,  4448,
-		4449,  4450,  4451,  4452,  4453,  4454,  4455,  4456,
-		4457,  4458,  4459,  4460,  4461,  4462,  4463,  4464,
-		4465,  4466,  4467,  4468,  4469,  4470,  4471,  4472,
-		4473,  4474,  4475,  32767, 32767, 32767, 32767, 4476,
-		4477,  4478,  4479,  4480,  4481,  539,   540,   4484,
-		0,     0,     0,     0,     0,     0,     0,     4485,
-		1146,  0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		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, 0,     32767, 32767, 0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		-3433, 0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     -629,  0,     3074,  3075,  3076,  3077,  3078,
+		0,     3079,  3080,  3081,  3082,  3083,  3084,  3085,
+		3086,  3087,  -9132, 10148, 3090,  3091,  3092,  3093,
+		3094,  3095,  3096,  3097,  3098,  3099,  3100,  3101,
+		3102,  3103,  3104,  3105,  3106,  3107,  3108,  3109,
+		3110,  3111,  3112,  3113,  3114,  3115,  3116,  3117,
+		3118,  3119,  3120,  6777,  3121,  3122,  3123,  3124,
+		3125,  3126,  3127,  3128,  3129,  6780,  0,     6780,
+		6780,  6780,  0,     0,     0,     6782,  0,     0,
+		0,     0,     6784,  0,     6785,  0,     6786,  6786,
+		0,     6786,  0,     6787,  6787,  6787,  0,     6788,
+		6788,  6788,  6788,  6788,  6788,  6788,  0,     6789,
+		6789,  6789,  6789,  2990,  6789,  0,     0,     0,
+		0,     6793,  6793,  6793,  6793,  6793,  0,     0,
+		0,     0,     0,     0,     -7904, 7947,  7947,  6639,
+		6639,  -9748, 32767, 0,     6637,  32767, 32767, 6635,
+		32767, 32767, 10238, 6633,  32767, 32767, 14642, 3237,
+		-8192, 19105, 32767, 0,     0,     0,     13289, 6634,
+		6634,  6634,  6634,  6634,  6634,  11035, 14641, 32767,
+		18035, 32767, 18037, 29467, 0,     0,     0,     0,
+		0,     32767, 0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     -750,  0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     6227,
-		6228,  -3161, 6230,  238,   234,   6232,  6233,  7714,
-		7715,  7716,  7717,  7718,  7719,  7720,  7721,  7722,
-		7723,  -1929, 7725,  7726,  7727,  7728,  7729,  7730,
-		7731,  7732,  7733,  5372,  5373,  5374,  5375,  5376,
-		5377,  5378,  -3687, 5381,  5382,  -3687, 5383,  5384,
-		5385,  5386,  5387,  5388,  5389,  5390,  5391,  -3687,
-		-3687, -3687, -3687, -3687, -3687, -3687, -3687, -3687,
-		3129,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -3700, 32767, 32767,
+		0,     0,     0,     0,     0,     32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		285,   -3734, -3734, 288,   289,   -3734, -3734, -3734,
-		-3734, -3734, -3734, -3734, -3734, -3734, -3734, -3734,
-		-3734, 1547,  -956,  -956,  -3734, -3734, -3734, 3440,
-		-3734, -3734, -3734, -3734, -3734, -3734, -3734, -3734,
-		-3734, -3734, -3734, -3734, -3734, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -7624,128 +7636,23 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		322,   323,   32767, 32767, 32767, 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,     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, 0,     0,     0,
+		0,     0,     0,     32767, 32767, 0,     0,     0,
+		0,     0,     32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 114,   115,   116,   117,   118,   119,   120,
-		121,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 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, 0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     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, 0,
-		0,     0,     0,     0,     0,     3943,  3943,  0,
-		0,     32767, 32767, 32767, 32767, 32767, 32767, 0,
-		3340,  32767, 325,   32767, 326,   32767, 327,   32767,
-		328,   32767, 329,   32767, 330,   32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 331,   32767, 332,   333,   334,   335,
-		336,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		337,   32767, 338,   32767, 339,   340,   341,   32767,
-		32767, 32767, 342,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 343,   32767, 344,   345,   346,   32767,
-		32767, 32767, 347,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 348,   32767, 349,   350,   351,   32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		352,   32767, 353,   32767, 354,   355,   32767, 32767,
-		-1816, -1816, -1816, -1816, -1816, -1816, -1816, -1816,
-		-1816, -1816, -1816, 32767, 32767, 32767, 32767, 32767,
-		32767, -1822, 32767, 32767, 32767, 32767, 32767, 368,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 369,   370,   371,   32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 372,
-		32767, 32767, 32767, 373,   374,   32767, 375,   376,
-		32767, 32767, 32767, 32767, 6367,  0,     -1152, 0,
-		-1023, -1023, 0,     0,     0,     0,     0,     -7763,
-		-1150, -1731, -1730, -1729, -1728, -1727, -1726, -1725,
-		-1724, -1723, -1722, -1721, 2672,  -1719, -1718, -1717,
-		-1716, -1715, -1714, -1713, -1712, -1711, -1710, -1709,
-		-1708, -1707, -1706, -1705, 0,     0,     0,     0,
-		0,     5490,  0,     0,     -3153, -3153, 6237,  -3153,
-		2840,  -4631, -3153, -3153, -4633, -4633, -4633, -4633,
-		-4633, -4633, -4633, -4633, -4633, -4633, 5020,  -4633,
-		-4633, -4633, -4633, -4633, -4633, -4633, -4633, -4633,
-		-2271, -2271, -2271, -2271, -2271, -2271, -2271, 6795,
-		-2272, -2272, 6798,  -2271, -2271, -2271, -2271, -2271,
-		-2271, -2271, -2271, -2271, -2271, 6808,  6809,  6810,
-		6811,  6812,  6813,  6814,  6815,  0,     0,     0,
-		-2281, 0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     2579,  7519,  1152,  0,     0,     128,   128,
-		1151,  0,     1150,  1150,  1150,  -6613, 0,     -581,
-		-580,  -579,  -578,  -577,  -576,  395,   -575,  -574,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     -1653, 0,     -1652, -1651, 0,     0,
-		-1650, -1649, -1648, -1516, -1647, 473,   474,   475,
-		476,   477,   32767, 32767, 32767, 32767, -7018, 479,
-		480,   481,   482,   32767, 32767, 32767, 32767, 32767,
-		32767, 483,   484,   485,   486,   487,   488,   489,
-		490,   491,   492,   493,   494,   495,   496,   497,
-		498,   499,   500,   501,   502,   503,   504,   9308,
-		506,   507,   508,   509,   510,   511,   512,   513,
-		514,   515,   3684,  3684,  3684,  519,   3685,  3685,
-		9912,  9913,  524,   9915,  3923,  3919,  9917,  9918,
-		11399, 0,     11402, 11403, 11404, 11405, 11406, 11407,
-		11408, 11409, 1757,  11411, 11412, 11413, 11414, 11415,
-		11416, 11417, 11418, 11419, 0,     9060,  9061,  9062,
-		9063,  9064,  9065,  0,     9068,  9069,  0,     9070,
-		9071,  9072,  9073,  9074,  9075,  9076,  9077,  9078,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     2659,  0,     0,     0,     0,
-		0,     0,     0,     0,     0,     2745,  2745,  2745,
-		2745,  2745,  2745,  2745,  2745,  2745,  0,     0,
-		0,     -4730, 6052,  0,     -4732, -4732, -4732, -4732,
-		0,     0,     4919,  -4734, -4734, 0,     -4735, -4735,
-		-4735, 4019,  0,     0,     4022,  4023,  0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     5281,  2778,  2778,  0,     0,     0,
-		7174,  0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     2067,  918,
-		32767, 534,   -2763, 0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     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,
@@ -7755,158 +7662,350 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 224,   225,   226,   32767, 227,   228,   229,
+		230,   231,   232,   233,   234,   235,   236,   237,
+		32767, 2087,  -494,  -8398, 7453,  7453,  243,   244,
+		-10240,-7658, 247,   -15603,-15602,250,   251,   252,
+		253,   254,   255,   32767, 256,   257,   258,   259,
+		260,   261,   262,   263,   264,   265,   266,   267,
+		268,   -2027, -1089, -2027, -2027, -2027, -2027, -2027,
+		-2027, -772,  -2027, 279,   280,   281,   282,   283,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 284,   32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, -1717, 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,     553,   0,     32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		285,   286,   287,   288,   289,   290,   291,   292,
+		6178,  294,   295,   -11663,-11663,-7033, 15640, -11653,
+		15643, -11653,15646, 15647, 11018, -11654,15640, -11655,
+		-6928, -11655,-11655,-7025, 15648, -6923, -6922, -6921,
+		-6920, -6919, 7643,  -11636,-6916, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, -2360, 5111,  -2360, -2360, -2360,
-		-2360, -2360, -2360, -2360, -2360, -2360, -2360, -2360,
-		-2360, -2360, 7293,  -2360, -2360, -2360, -2360, -2360,
-		3144,  3145,  -2362, -2362, 0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     32767, 0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     32767, 0,     0,     0,     0,     32767,
-		32767, 32767, 32767, 0,     -1971, -1971, 32767, 0,
-		32767, 0,     1809,  1809,  1809,  1809,  0,     0,
-		1811,  0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     -220,  0,     2582,  0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     -3918, -3918, -3918, 0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		-2442, 0,     -479,  -479,  0,     0,     0,     0,
-		0,     0,     -343,  0,     0,     0,     0,     0,
-		0,     0,     -342,  -341,  -340,  -339,  -338,  -337,
-		0,     0,     0,     0,     0,     0,     0,     0,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 2495,  2496,  0,     0,     2499,  2500,  2501,
-		2502,  0,     2504,  2505,  2506,  2507,  2508,  1141,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     -363,
-		0,     -362,  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, 0,     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, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, -17220,-12590,10083,
+		-17210,10086, 5360,  10088, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 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,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, -4703, -4703, -4703, -4703, -4703, -4703,
+		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,
+		-4261, 2507,  0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     -3346, 32767, 32767, 0,
+		0,     0,     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,     -2546, -2546, 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, 0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     484,   100,   -3197, 0,     -3198, -3198,
-		0,     0,     0,     8750,  -3943, 0,     0,     -3943,
-		542,   543,   544,   545,   546,   547,   548,   -3936,
-		-596,  551,   552,   553,   554,   555,   556,   557,
-		558,   559,   560,   561,   562,   563,   564,   565,
-		566,   567,   568,   569,   570,   571,   572,   573,
-		574,   575,   576,   577,   578,   579,   580,   581,
-		582,   583,   584,   585,   586,   587,   588,   589,
-		590,   591,   592,   593,   594,   595,   596,   597,
-		598,   599,   600,   601,   602,   603,   604,   605,
-		606,   607,   608,   609,   610,   611,   612,   613,
-		614,   615,   616,   617,   618,   619,   620,   621,
-		622,   623,   624,   1375,  626,   627,   628,   629,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
+		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		324,   32767, 325,   32767, 326,   32767, 327,   32767,
+		328,   32767, 329,   32767, 330,   0,     0,     0,
+		0,     0,     0,     32767, 32767, 223,   32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
+		0,     0,     0,     0,     32767, 32767, 32767, 32767,
+		32767, 0,     32767, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     6529,
+		6530,  6531,  6532,  32767, 6532,  6533,  6534,  0,
+		0,     32767, 331,   32767, 332,   333,   334,   335,
+		336,   32767, 0,     0,     0,     0,     0,     0,
+		337,   0,     338,   0,     -2473, -2472, -2471, 0,
+		0,     0,     -2470, 0,     0,     0,     0,     0,
+		0,     0,     -4976, 0,     -2468, -2467, -2466, 0,
+		0,     0,     -2465, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     350,   351,   0,
+		0,     0,     0,     0,     0,     0,     0,     1869,
+		1869,  0,     1870,  1870,  1870,  -4015, 1870,  1870,
+		13829, 13830, 9201,  -13471,13823, -13472,13825, -13473,
+		-13473,-8843, 13830, -13463,13833, -13463,13836, 13837,
+		9208,  -13464,0,     0,     0,     6768,  9112,  -5449,
+		13831, 6773,  9113,  0,     9114,  2458,  5817,  1877,
+		0,     1877,  1877,  0,     -1508, -1507, -1506, 1877,
+		1877,  1877,  0,     1877,  1877,  1877,  0,     1874,
+		0,     0,     0,     -1504, -1503, 0,     -1502, 1875,
+		0,     0,     1877,  1877,  -1500, 1877,  -1499, 0,
+		0,     0,     0,     1877,  0,     1877,  0,     -4262,
+		-4262, -4262, 0,     0,     0,     0,     4641,  4642,
+		4643,  4644,  4645,  6458,  4647,  4648,  4649,  -4275,
+		4651,  4652,  3323,  8043,  4655,  4656,  4657,  -4282,
+		4659,  4660,  4661,  4662,  4663,  4664,  4665,  4666,
+		4667,  4668,  4669,  4670,  4671,  4672,  4673,  4674,
+		-5974, -3392, 4677,  4678,  -11338,-4127, -4127, 6358,
+		3777,  -4127, 11724, 11724, 4514,  4515,  -5969, -3387,
+		4518,  -11332,-11331,-4120, -4120, 6365,  3784,  -4120,
+		11731, 11731, 4521,  4522,  -5962, -3380, 4525,  -11325,
+		-11324,-4113, -4113, 6372,  3791,  -4113, -4301, 11737,
+		4527,  4528,  -5956, -3374, 4531,  4720,  -11317,-4106,
+		-4106, 6379,  3798,  -4106, 0,     0,     0,     0,
+		426,   0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     3209,  3210,  3211,  3212,  3213,  3214,
+		3215,  3216,  3217,  3218,  3219,  6653,  3221,  3222,
+		3223,  3224,  3225,  3226,  3227,  3228,  3229,  3230,
+		3231,  3232,  3233,  3234,  3235,  3236,  3237,  3238,
+		3239,  3240,  3241,  3242,  3243,  3244,  3874,  3246,
+		173,   173,   173,   173,   173,   3252,  174,   174,
+		174,   174,   174,   174,   174,   174,   174,   12394,
+		-6885, 174,   174,   174,   174,   174,   174,   174,
+		174,   174,   174,   174,   174,   174,   174,   174,
+		174,   174,   174,   174,   174,   174,   174,   174,
+		174,   174,   174,   174,   174,   174,   174,   -3484,
+		-3483, 174,   174,   174,   174,   174,   174,   174,
+		174,   174,   -3476, 3305,  -3474, -3473, -3472, 3309,
+		3310,  3311,  -3470, 3313,  3314,  3315,  3316,  -3467,
+		3318,  -3466, 3320,  -3465, -3464, 3323,  -3462, 3325,
+		-3461, -3460, -3459, 3329,  -3458, -3457, -3456, -3455,
+		-3454, -3453, -3452, 3337,  -3451, -3450, -3449, -3448,
+		352,   -3446, 3344,  3345,  3346,  3347,  -3445, -3444,
+		-3443, -3442, -3441, 3353,  3354,  3355,  3356,  3357,
+		3358,  11263, -4587, -4586, -3277, -3276, 13112, -3274,
+		3365,  -3271, -3270, -3269, -3268, -3267, -11271,-6870,
+		-3264, -3263, 131,   -11272,134,   11564, -15732,-3257,
+		3374,  3375,  3376,  -9912, -3256, -3255, -3254, -3253,
+		-3252, -3251, -7651, -11256,-11256,-14649,-3245, -14650,
+		-26079,3389,  3390,  3391,  3392,  3393,  528,   3394,
+		3395,  3396,  3397,  3398,  3399,  3400,  3401,  3402,
+		3403,  3404,  3405,  3406,  3407,  3408,  3409,  3410,
+		3411,  3412,  3413,  3414,  3415,  3416,  3417,  3418,
+		3419,  3420,  3421,  3422,  3423,  3424,  3425,  3426,
+		3427,  3428,  3429,  3430,  3431,  3432,  3433,  3434,
+		3435,  3436,  3437,  3438,  3439,  3440,  3441,  3442,
+		3443,  3444,  3445,  3446,  3447,  3448,  3449,  3450,
+		3451,  3452,  32767, 3453,  3454,  3455,  3456,  3457,
+		3458,  32767, 3459,  3460,  3461,  3462,  32767, 32767,
+		3463,  3464,  3465,  3466,  3467,  3468,  3469,  3470,
+		32767, 3471,  3472,  3473,  3474,  3475,  3476,  3477,
+		32767, 3478,  3479,  3480,  3481,  3482,  3483,  3484,
+		3485,  3486,  3487,  3488,  3489,  3490,  3491,  3492,
+		3493,  7157,  7157,  7157,  7157,  7157,  3499,  3500,
+		7157,  7157,  7157,  7157,  3505,  32767, 7157,  3507,
+		3508,  3509,  32767, 3510,  3511,  3512,  3513,  3514,
+		32767, 3515,  32767, 32767, 32767, 3516,  3517,  3518,
+		3519,  3520,  3521,  3522,  32767, 3523,  3524,  3525,
+		3526,  3527,  3528,  3529,  3530,  3531,  3532,  3533,
+		3534,  3535,  3536,  3537,  3538,  3539,  3540,  7340,
+		3542,  3543,  3544,  3545,  3546,  3547,  3548,  3549,
+		3550,  3551,  3552,  3553,  7477,  7478,  532,   3909,
+		18261, 2411,  2412,  3721,  3722,  20110, 3724,  10363,
+		3727,  3728,  3729,  3730,  3731,  -4273, 128,   3734,
+		3735,  7129,  -4274, 7132,  18562, -8734, 3741,  3742,
+		384,   3744,  -2911, 3745,  3746,  3747,  3748,  3749,
+		3750,  -650,  -4255, -4255, -7648, 3756,  -7649, -19078,
+		8219,  -4255, 3764,  -3146, 3777,  -852,  -23524,3770,
+		-23525,3772,  -23526,3774,  -18897,3776,  -23517,3779,
+		-947,  3781,  3782,  -847,  -23519,-947,  -947,  -947,
+		-947,  -947,  -15508,3772,  -947,  -947,  -947,  -947,
+		-7603, -4244, -7603, -947,  -7602, -7602, -7602, -947,
+		-7603, -7603, -3202, 404,   405,   3799,  -7604, 3802,
+		15232, -12064,411,   -7607, -696,  -7618, -2988, 19685,
+		-7608, 19688, -7608, 19691, -7608, 15064, -7608, 19686,
+		-7609, -2882, -7609, -7609, -2979, 19694, -2877, -2876,
+		-2875, -2874, -2873, 11689, -7590, -2870, -2869, -2868,
+		-2867, 3790,  432,   3792,  -2863, 3793,  3794,  3795,
+		-2859, 3798,  3799,  -601,  -4206, -4206, -7599, 3805,
+		-7600, -19029,8268,  -4206, -4206, -847,  -4206, 2450,
+		-4205, -4205, -4205, -4205, -4205, -4205, 196,   3802,
+		3803,  7197,  -4206, 7200,  18630, -8666, 3809,  -4209,
+		2702,  -4220, 410,   23083, -4210, 23086, -4210, 23089,
+		-4210, 18462, -4210, 23084, -4211, 516,   -4211, -4211,
+		419,   23092, 521,   522,   523,   524,   525,   15087,
+		-4192, 528,   529,   530,   531,   7188,  3830,  7190,
+		535,   7191,  7192,  7193,  539,   7196,  7197,  2797,
+		-808,  -808,  -4201, 7203,  -4202, -15631,11666, -808,
+		-808,  2551,  -808,  5848,  -807,  -807,  -807,  -807,
+		-807,  -807,  3594,  7200,  7201,  10595, -808,  10598,
+		22028, -5268, 7207,  -811,  6100,  -822,  3808,  26481,
+		-812,  26484, -812,  26487, -812,  21860, -812,  26482,
+		-813,  3914,  -813,  -813,  3817,  26490, 3919,  3920,
+		3921,  3922,  3923,  18485, -794,  3926,  3927,  3928,
+		3929,  10586, 7228,  10588, 3933,  10589, 10590, 10591,
+		3937,  10594, 10595, 6195,  2590,  2590,  -803,  10601,
+		-804,  -12233,15064, 2590,  10609, 3699,  10622, 5993,
+		-16679,10615, -16680,10617, -16681,10619, -12052,10621,
+		-16672,10624, 5898,  10626, 10627, 5998,  -16674,5898,
+		5898,  5898,  5898,  5898,  -8663, 10617, 5898,  5898,
+		5898,  5898,  32767, 32767, -760,  5896,  -759,  -759,
+		-759,  5896,  -760,  -760,  3641,  7247,  7248,  10642,
+		-761,  10645, 22075, -5221, 7254,  7255,  3897,  7257,
+		602,   7258,  7259,  7260,  7261,  7262,  7263,  2863,
+		-742,  -742,  -4135, 7269,  -4136, -15565,11732, -742,
+		7277,  367,   7290,  2661,  -20011,7283,  -20012,7285,
+		-20013,7287,  -15384,7289,  -20004,7292,  2566,  7294,
+		7295,  2666,  -20006,2566,  2566,  2566,  2566,  2566,
+		-11995,7285,  2566,  2566,  2566,  2566,  -4090, -731,
+		-4090, 2566,  -4089, -4089, -4089, 2566,  -4090, -4090,
+		311,   3917,  3918,  7312,  -4091, 7315,  18745, -8551,
+		3924,  3925,  567,   2566,  32767, 23198, -4095, 23201,
+		-4095, 23204, -4095, 18577, -4095, 23199, -4096, 631,
+		-4096, -4096, 534,   23207, 636,   637,   638,   639,
+		640,   15202, -4077, 643,   644,   645,   646,   7303,
+		3945,  7305,  650,   7306,  7307,  7308,  654,   7311,
+		7312,  2912,  -693,  -693,  -4086, 7318,  -4087, -15516,
+		11781, -693,  -693,  2666,  -693,  5963,  -692,  -692,
+		-692,  -692,  -692,  -692,  3709,  7315,  7316,  10710,
+		-693,  10713, 22143, -5153, 7322,  -696,  6215,  -707,
+		3923,  26596, -697,  26599, -697,  26602, -697,  21975,
+		-697,  26597, -698,  4029,  -698,  -698,  3932,  26605,
+		4034,  4035,  4036,  4037,  4038,  18600, -679,  4041,
+		4042,  4043,  4044,  10701, 7343,  10703, 4048,  10704,
+		10705, 10706, 4052,  10709, 10710, 6310,  2705,  2705,
+		-688,  10716, -689,  -12118,15179, 2705,  2705,  6064,
+		4066,  4067,  4068,  3131,  4070,  4071,  4072,  4073,
+		4074,  4075,  2821,  4077,  4078,  4079,  4080,  4081,
+		4082,  4083,  4084,  4085,  4086,  4087,  4088,  4089,
+		4090,  4091,  4092,  4093,  4094,  4095,  4096,  4097,
+		4098,  4099,  4100,  20,    21,    22,    23,    24,
+		1794,  1794,  1794,  3556,  4110,  4111,  4112,  4113,
+		4114,  4115,  4116,  4117,  538,   1161,  1162,  541,
+		4470,  1796,  1796,  6018,  4473,  4474,  4475,  4476,
+		4477,  4478,  4479,  4480,  4481,  4482,  4483,  4484,
+		4485,  4486,  4140,  4141,  4487,  4143,  4488,  4145,
+		4146,  4489,  4490,  4491,  4492,  4493,  4494,  4495,
+		4496,  575,   576,   4061,  4497,  4061,  4498,  4061,
+		4160,  4499,  4500,  4163,  4164,  4165,  4501,  4502,
+		4503,  4504,  4505,  4506,  4507,  4508,  4509,  4510,
+		4511,  4512,  4513,  4514,  4515,  4516,  4517,  4518,
+		4519,  4520,  4521,  4522,  4523,  4524,  4525,  4526,
+		4527,  4528,  4529,  4530,  4531,  4532,  4533,  4534,
+		4535,  4536,  4202,  0,     5914,  0,     0,     629,
 		630,   631,   632,   633,   634,   635,   636,   637,
 		638,   639,   640,   641,   642,   643,   644,   645,
 		646,   647,   648,   649,   650,   651,   652,   653,
-		654,   655,   656,   657,   658,   659,   660,   661,
-		662,   663,   664,   665,   666,   667,   668,   669,
+		-1842, -1842, -1842, -1842, -1842, -1842, -1842, -1842,
+		-1842, -1842, -1842, -1842, 666,   667,   668,   669,
 		670,   671,   672,   673,   674,   675,   676,   32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		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, -4470, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 6910,  0,     32767, 32767, 32767,
+		32767, -20383,6914,  32767, 32767, 32767, 32767, 32767,
+		0,     0,     0,     0,     0,     32767, 0,     0,
+		0,     0,     0,     0,     0,     0,     0,     12220,
+		-7059, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		32767, 0,     0,     0,     0,     0,     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, -7886, 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, 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, 0,
-		0,     0,     0,     7470,  0,     7471,  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, 3132,  32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 3133,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 0,     32767, 32767, 32767,
+		32767, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     32767, 32767, 32767, 32767,
+		32767, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     -16387,0,     0,     0,     0,
+		0,     0,     0,     8005,  3605,  0,     0,     -3393,
+		8011,  -3394, -14823,12474, 0,     0,     3359,  0,
+		32767, 0,     0,     0,     0,     0,     0,     4401,
+		8007,  0,     11403, 0,     0,     22837, 0,     0,
+		0,     0,     -10,   4620,  27293, 0,     27296, 0,
+		27299, 0,     22672, 0,     0,     0,     4727,  0,
+		0,     3135,  32767, 32767, 32767, 32767, 32767, 32767,
+		3136,  32767, 32767, 3137,  32767, 3138,  3139,  3140,
+		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, 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, 0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     9653,  0,     0,     0,     0,
-		0,     0,     0,     0,     0,     32767, 32767, 32767,
-		3152,  3153,  3154,  3155,  3156,  3157,  3158,  3159,
-		3160,  3161,  3162,  3163,  3164,  3165,  3166,  3167,
-		3168,  3169,  3170,  3171,  3172,  3173,  3174,  3175,
-		3176,  3177,  3178,  3179,  3180,  3181,  3182,  3183,
-		3184,  3185,  3186,  3187,  3188,  3189,  3190,  3191,
-		3192,  3193,  3194,  3195,  3196,  3197,  3198,  3199,
-		3200,  3201,  3202,  3203,  3204,  3205,  3206,  3207,
-		3208,  3209,  3210,  3211,  3212,  3213,  3214,  3215,
-		3216,  3217,  3218,  3219,  3220,  3221,  3222,  3223,
-		3224,  3225,  3226,  3227,  3228,  3229,  3230,  3231,
-		3232,  3233,  3234,  3235,  3236,  32767, 3237,  3238,
-		3239,  3240,  3241,  3242,  3243,  3244,  3245,  3246,
-		3247,  3248,  1885,  3250,  3251,  3252,  3253,  3254,
-		3255,  3256,  3257,  3258,  3259,  3260,  3261,  3262,
-		3263,  3264,  3265,  3266,  3267,  3268,  3269,  3270,
-		3271,  3272,  3273,  3274,  3275,  3276,  3277,  3278,
-		3279,  3280,  3281,  3282,  3283,  3284,  3285,  3286,
-		3287,  3288,  3289,  3290,  7683,  3292,  3293,  3294,
-		3295,  3296,  3297,  3298,  3299,  3300,  3301,  3302,
-		3303,  3304,  3305,  3306,  3307,  32767, 3308,  3309,
-		32767, 32767, 3310,  32767, 32767, 3311,  3312,  32767,
-		32767, 3313,  3314,  3315,  3316,  32767, 3317,  3318,
-		3319,  3320,  3321,  3322,  3323,  3324,  3325,  3326,
-		-1186, -1186, 4489,  -1187, 4491,  -1188, -1188, -1188,
-		-1188, -1188, 3335,  3336,  32767, 3337,  3338,  3339,
-		3340,  3341,  3342,  3343,  3344,  3345,  3346,  3347,
-		3348,  -1659, 3350,  3351,  3352,  3353,  3354,  3355,
-		3356,  3357,  3358,  3359,  3360,  3361,  3362,  4351,
-		4352,  4353,  4354,  4355,  4356,  4357,  4358,  4359,
-		4360,  4361,  3374,  3375,  3376,  3377,  3378,  4362,
-		4363,  4364,  4365,  4366,  4367,  4368,  4369,  4370,
-		4371,  4372,  4373,  4374,  4375,  4376,  4377,  4378,
-		0,     4380,  4381,  5499,  5500,  5501,  5502,  5503,
-		0,     0,     4389,  4390,  0,     0,     3406,  4393,
-		4394,  4395,  4396,  4397,  4398,  4399,  0,     4401,
-		4402,  4403,  4404,  4405,  4406,  4407,  0,     4409,
-		4410,  4411,  4412,  5171,  4414,  5174,  5175,  4623,
-		4418,  4419,  4420,  4421,  4422,  4423,  4424,  3437,
-		3438,  3439,  3440,  3441,  3442,  3443,  3444,  3445,
-		3446,  3447,  3448,  32767, 3449,  3450,  3451,  3131,
-		32767, 3453,  3454,  3455,  3456,  3457,  32767, 3458,
-		32767, 0,     0,     4427,  3460,  3461,  3462,  3463,
-		3464,  3465,  32767, 3466,  3467,  3468,  3469,  3470,
-		3471,  3472,  3473,  3474,  3475,  3476,  3477,  3478,
-		3146,  3367,  3148,  567,   3150,  3151,  3485,  3486,
-		3487,  3488,  3489,  3490,  3491,  3492,  3493,  4428,
-		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,  3532,  3533,  3534,
-		3535,  3536,  3537,  3538,  3539,  3540,  3541
+		0,     0,     0,     0,     32767, 32767, 0,     32767,
+		0,     32767, 32767, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     32767, 0,     32767,
+		0,     32767, 32767, 0,     0,     32767, 32767, 32767,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0
 	};
 
 	const unsigned char *k = (const unsigned char *) key;
 	size_t		keylen = 4;
 	uint32		a = 0;
-	uint32		b = 1;
+	uint32		b = 3;
 
 	while (keylen--)
 	{
@@ -7915,12 +8014,12 @@ NFKC_QC_hash_func(const void *key)
 		a = a * 257 + c;
 		b = b * 8191 + c;
 	}
-	return h[a % 10079] + h[b % 10079];
+	return h[a % 10193] + h[b % 10193];
 }
 
 /* Hash lookup information for NFKC_QC */
 static const pg_unicode_norminfo UnicodeNormInfo_NFKC_QC = {
 	UnicodeNormProps_NFKC_QC,
 	NFKC_QC_hash_func,
-	5039
+	5096
 };
diff --git a/src/include/common/unicode_version.h b/src/include/common/unicode_version.h
index 487fcef78a5..b9755fa2882 100644
--- a/src/include/common/unicode_version.h
+++ b/src/include/common/unicode_version.h
@@ -11,4 +11,4 @@
  *-------------------------------------------------------------------------
  */
 
-#define PG_UNICODE_VERSION		"15.1"
+#define PG_UNICODE_VERSION		"16.0"
-- 
2.47.0

#2Joe Conway
mail@joeconway.com
In reply to: Peter Eisentraut (#1)
Re: Update Unicode data to Unicode 16.0.0

On 11/11/24 01:27, Peter Eisentraut wrote:

Here is the patch to update the Unicode data to version 16.0.0.

Normally, this would have been routine, but a few months ago there was
some debate about how this should be handled. [0] AFAICT, the consensus
was to go ahead with it, but I just wanted to notify it here to be clear.

[0]:
/messages/by-id/d75d2d0d1d2bd45b2c332c47e3e0a67f0640b49c.camel@j-davis.com

I ran a check and found that this patch causes changes in upper casing
of some characters. Repro:

setup
8<-------------
wget https://joeconway.com/presentations/formated-unicode.txt
initdb
psql
CREATE DATABASE builtincoll
LOCALE_PROVIDER builtin
BUILTIN_LOCALE 'C.UTF-8'
TEMPLATE template0;
\c builtincoll
CREATE TABLE unsorted_table(strings text);
\copy unsorted_table from formated-unicode.txt (format csv)
VACUUM FREEZE ANALYZE unsorted_table;
8<-------------

8<-------------
-- on master
builtincoll=# WITH t AS (SELECT lower(strings) AS s FROM unsorted_table
ORDER BY 1)
SELECT md5(string_agg(t.s,NULL)) FROM t;
md5
----------------------------------
7ec7f5c2d8729ec960942942bb82aedd
(1 row)

builtincoll=# WITH t AS (SELECT upper(strings) AS s FROM unsorted_table
ORDER BY 1)
SELECT md5(string_agg(t.s,NULL)) FROM t;
md5
----------------------------------
97f83a4d1937aa65bcf8be134bf7b0c4
(1 row)

builtincoll=# WITH t AS (SELECT initcap(strings) AS s FROM
unsorted_table ORDER BY 1)
SELECT md5(string_agg(t.s,NULL)) FROM t;
md5
----------------------------------
8cf65a43affc221f3a20645ef402085e
(1 row)
8<-------------

8<-------------
-- master+patch
builtincoll=# WITH t AS (SELECT lower(strings) AS s FROM unsorted_table
ORDER BY 1)
SELECT md5(string_agg(t.s,NULL)) FROM t;
md5
----------------------------------
7ec7f5c2d8729ec960942942bb82aedd
(1 row)

Time: 19858.981 ms (00:19.859)
builtincoll=# WITH t AS (SELECT upper(strings) AS s FROM unsorted_table
ORDER BY 1)SELECT md5(string_agg(t.s,NULL)) FROM t;
md5
----------------------------------
3055b3d5dff76c8c1250ef500c6ec13f
(1 row)

Time: 19774.467 ms (00:19.774)
builtincoll=# WITH t AS (SELECT initcap(strings) AS s FROM
unsorted_table ORDER BY 1)
SELECT md5(string_agg(t.s,NULL)) FROM t;
md5
----------------------------------
9985acddf7902ea603897cdaccd02114
(1 row)
8<-------------

So both UPPER and INITCAP produce different results unless I am missing
something.

--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com

#3Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Joe Conway (#2)
Re: Update Unicode data to Unicode 16.0.0

On Mon, 2024-11-11 at 14:52 -0500, Joe Conway wrote:

On 11/11/24 01:27, Peter Eisentraut wrote:

Here is the patch to update the Unicode data to version 16.0.0.

Normally, this would have been routine, but a few months ago there was
some debate about how this should be handled. [0]  AFAICT, the consensus
was to go ahead with it, but I just wanted to notify it here to be clear.

[0]:
/messages/by-id/d75d2d0d1d2bd45b2c332c47e3e0a67f0640b49c.camel@j-davis.com

I ran a check and found that this patch causes changes in upper casing
of some characters.

I want to reiterate what I said in the above thread:
If that means that indexes on strings using the "builtin" collation
provider need to be reindexed after an upgrade, I am very much against it.

From my experiences in the field, I consider this need to rebuild indexes
one of the greatest current problems for the usability of PostgreSQL.
I dare say that most people would prefer living with an outdated Unicode version.

Yours,
Laurenz Albe

#4Peter Eisentraut
peter@eisentraut.org
In reply to: Laurenz Albe (#3)
Re: Update Unicode data to Unicode 16.0.0

On 12.11.24 10:40, Laurenz Albe wrote:

On Mon, 2024-11-11 at 14:52 -0500, Joe Conway wrote:

On 11/11/24 01:27, Peter Eisentraut wrote:

Here is the patch to update the Unicode data to version 16.0.0.

Normally, this would have been routine, but a few months ago there was
some debate about how this should be handled. [0]  AFAICT, the consensus
was to go ahead with it, but I just wanted to notify it here to be clear.

[0]:
/messages/by-id/d75d2d0d1d2bd45b2c332c47e3e0a67f0640b49c.camel@j-davis.com

I ran a check and found that this patch causes changes in upper casing
of some characters.

I want to reiterate what I said in the above thread:
If that means that indexes on strings using the "builtin" collation
provider need to be reindexed after an upgrade, I am very much against it.

The practice of regularly updating the Unicode files is older than the
builtin collation provider. It is similar to updating the time zone
files, the encoding conversion files, the snowball files, etc. We need
to move all of these things forward to keep up with the aspects of the
real world that this data reflects. New features are required to live
in that environment. If a new feature were proposed that would then
require us to stop updating any of these files, we would likely not
accept that, or at least need a very deliberate discussion about that
before the feature is introduced. This was not done here at all. If
this new feature has this hidden requirement, then that feature is not
complete yet, and work should probably continue to make that feature
complete. But that can't take progress in other areas hostage.

#5Michael Paquier
michael@paquier.xyz
In reply to: Peter Eisentraut (#1)
Re: Update Unicode data to Unicode 16.0.0

On Mon, Nov 11, 2024 at 07:27:53AM +0100, Peter Eisentraut wrote:

Here is the patch to update the Unicode data to version 16.0.0.

Normally, this would have been routine, but a few months ago there was some
debate about how this should be handled. [0] AFAICT, the consensus was to
go ahead with it, but I just wanted to notify it here to be clear.

[0]: /messages/by-id/d75d2d0d1d2bd45b2c332c47e3e0a67f0640b49c.camel@j-davis.com

Worth noting that unaccent.rules is unchanged after switching to
16.0.0:
cd contrib/unaccent && make update-unicode
--
Michael

#6Jeff Davis
pgsql@j-davis.com
In reply to: Laurenz Albe (#3)
Re: Update Unicode data to Unicode 16.0.0

On Tue, 2024-11-12 at 10:40 +0100, Laurenz Albe wrote:

I want to reiterate what I said in the above thread:
If that means that indexes on strings using the "builtin" collation
provider need to be reindexed after an upgrade, I am very much
against it.

How would you feel if there was a better way to "lock down" the
behavior using an extension?

I have a patchset here:

/messages/by-id/78a1b434ff40510dc5aaabe986299a09f4da90cf.camel@j-davis.com

that changes the implementation of collation and ctype to use method
tables rather than branching, and it also introduces some hooks that
can be used to replace the method tables with whatever you want.

Regards,
Jeff Davis

#7Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Jeff Davis (#6)
Re: Update Unicode data to Unicode 16.0.0

On Tue, 2024-11-19 at 13:42 -0800, Jeff Davis wrote:

On Tue, 2024-11-12 at 10:40 +0100, Laurenz Albe wrote:

I want to reiterate what I said in the above thread:
If that means that indexes on strings using the "builtin" collation
provider need to be reindexed after an upgrade, I am very much
against it.

How would you feel if there was a better way to "lock down" the
behavior using an extension?

Better.

I have a patchset here:

/messages/by-id/78a1b434ff40510dc5aaabe986299a09f4da90cf.camel@j-davis.com

that changes the implementation of collation and ctype to use method
tables rather than branching, and it also introduces some hooks that
can be used to replace the method tables with whatever you want.

That looks like a nice idea, since it obviates the need to build
PostgreSQL yourself if you want to use a non-standard copy of - say -
the ICU library. You still have to build your own ICU library, though.

I had hoped that the builtin provider would remove the need to REINDEX,
but I have given up that hope. Peter's argument is sound from a
conceptual point of view, even though I doubt that the average user
will be able to appreciate it.

Yours,
Laurenz Albe

#8Jeff Davis
pgsql@j-davis.com
In reply to: Laurenz Albe (#7)
Re: Update Unicode data to Unicode 16.0.0

On Wed, 2024-11-20 at 06:41 +0100, Laurenz Albe wrote:

That looks like a nice idea, since it obviates the need to build
PostgreSQL yourself if you want to use a non-standard copy of - say -
the ICU library.  You still have to build your own ICU library,
though.

It would work with the builtin provider, too, which would not require
ICU at all.

The idea is that you could build an extension that copies the same
logic for building the Unicode tables that we have in Postgres now,
except that it uses whatever version of the Unicode data files you
want.

If we want it to be targeted more specifically at the builtin provider,
we can make it even simpler by allowing you to just replace the unicode
tables with an extension (rather than the method tables). I'm not 100%
sure what people actually want here, so I'm open to suggestion.

I had hoped that the builtin provider would remove the need to
REINDEX,
but I have given up that hope.  Peter's argument is sound from a
conceptual point of view, even though I doubt that the average user
will be able to appreciate it.

I'd like to provide options for all kinds of users and packagers.

Regards,
Jeff Davis

#9Jeff Davis
pgsql@j-davis.com
In reply to: Peter Eisentraut (#4)
Re: Update Unicode data to Unicode 16.0.0

On Fri, 2024-11-15 at 17:09 +0100, Peter Eisentraut wrote:

The practice of regularly updating the Unicode files is older than
the
builtin collation provider.  It is similar to updating the time zone
files, the encoding conversion files, the snowball files, etc.  We
need
to move all of these things forward to keep up with the aspects of
the
real world that this data reflects.

Should we consider bundling multiple versions of the generated tables
(header files) along with Postgres?

That would enable a compile-time option to build with an older version
of Unicode if you want, solving the packager concern that Noah raised.
It would also make it easier for people to coordinate the Postgres
version of Unicode and the ICU version of Unicode.

Regards,
Jeff Davis

#10Jeremy Schneider
schneider@ardentperf.com
In reply to: Jeff Davis (#9)
Re: Update Unicode data to Unicode 16.0.0

On Mon, 20 Jan 2025 13:39:35 -0800
Jeff Davis <pgsql@j-davis.com> wrote:

On Fri, 2024-11-15 at 17:09 +0100, Peter Eisentraut wrote:

The practice of regularly updating the Unicode files is older than
the
builtin collation provider.  It is similar to updating the time
zone files, the encoding conversion files, the snowball files, etc.
We need
to move all of these things forward to keep up with the aspects of
the
real world that this data reflects.

Should we consider bundling multiple versions of the generated tables
(header files) along with Postgres?

That would enable a compile-time option to build with an older version
of Unicode if you want, solving the packager concern that Noah raised.
It would also make it easier for people to coordinate the Postgres
version of Unicode and the ICU version of Unicode.

FWIW, after adding ICU support I personally don't think there's a
pressing need to continue updating the tables anymore. I think ICU is
the best solution for people who need the latest linguistic collation
rules.

On the user side, my main concerns are the same as they've always
been: 100% confidence that Postgres updates will not corrupt any data
or cause incorrect query results, and not being forced to rebuild
everything (or logically copy data to avoid pg_upgrade). I'm at a large
company with many internal devs using Postgres in ways I don't know
about, and many users storing lots of unicode data I don't know about.

I'm working a fair bit with Docker and Kubernetes and CloudNativePG
now, so our builds come through the debian PGDG repo. Bundling multiple
tables doesn't bother me, as long as it's not a precursor to removing
current tables from the debian PGDG builds we consume in the future.

Ironically it's not really an issue yet for us on docker because
support for pg_upgrade is pretty limited at the moment. :) But I
think pg_upgrade support will rapidly improve in docker, and will
become common on large databases.

If Postgres does go the path of multiple tables, does the community
want to accumulate a new set of tables every year? That could add up
quickly. Maybe we don't add new tables every year, but follow the
examples of Oracle and DB2 in accumulating them on a less frequent
basis?

-Jeremy

#11Jeff Davis
pgsql@j-davis.com
In reply to: Jeremy Schneider (#10)
Re: Update Unicode data to Unicode 16.0.0

On Mon, 2025-01-20 at 17:06 -0800, Jeremy Schneider wrote:

FWIW, after adding ICU support I personally don't think there's a
pressing need to continue updating the tables anymore.

I agree that it's not a pressing concern.

If Postgres does go the path of multiple tables, does the community
want to accumulate a new set of tables every year? That could add up
quickly. Maybe we don't add new tables every year, but follow the
examples of Oracle and DB2 in accumulating them on a less frequent
basis?

Yeah, it would probably be every-other-release or something. By the
time we built up enough versions for someone to worry about, hopefully
we'd have some better systems in place to track versions and migrate
forward.

Regards,
Jeff Davis

#12Jeff Davis
pgsql@j-davis.com
In reply to: Jeremy Schneider (#10)
Re: Update Unicode data to Unicode 16.0.0

On Mon, 2025-01-20 at 17:06 -0800, Jeremy Schneider wrote:

On the user side, my main concerns are the same as they've always
been: 100% confidence that Postgres updates will not corrupt any data
or cause incorrect query results

I'll add that, while 100% may be a good goal, it hasn't been the
standard in the past. You're talking about a new standard of
immutability starting in 18, and as Peter pointed out, I don't think
Unicode updates are the only thing we need to consider.

My personal opinion is that both positions -- to upgrade Unicode or not
-- are a bit exaggerated. On the one hand, there's no urgency to
updating Unicode; but on the other hand, there's not a huge danger, at
least compared with our historical standards.

Regards,
Jeff Davis

#13Peter Eisentraut
peter@eisentraut.org
In reply to: Jeremy Schneider (#10)
Re: Update Unicode data to Unicode 16.0.0

On 21.01.25 02:06, Jeremy Schneider wrote:

FWIW, after adding ICU support I personally don't think there's a
pressing need to continue updating the tables anymore.

That appears to ignore what these tables are actually used for. They
are used for Unicode normalization, which is used by SCRAM. So in a
slightly hyperbolic sense, keeping these tables updated is
security-relevant. They are also used by psql to determine character
width and format output correctly.

Building a collation provider on this came much later. It was possibly
a mistake how that was done.

#14Peter Eisentraut
peter@eisentraut.org
In reply to: Jeff Davis (#9)
Re: Update Unicode data to Unicode 16.0.0

On 20.01.25 22:39, Jeff Davis wrote:

On Fri, 2024-11-15 at 17:09 +0100, Peter Eisentraut wrote:

The practice of regularly updating the Unicode files is older than
the
builtin collation provider.  It is similar to updating the time zone
files, the encoding conversion files, the snowball files, etc.  We
need
to move all of these things forward to keep up with the aspects of
the
real world that this data reflects.

Should we consider bundling multiple versions of the generated tables
(header files) along with Postgres?

I wouldn't have a problem with that.

That would enable a compile-time option to build with an older version
of Unicode if you want, solving the packager concern that Noah raised.
It would also make it easier for people to coordinate the Postgres
version of Unicode and the ICU version of Unicode.

But I don't think it would be a compile-time decision. I think it would
be a run-time selection, similar to the theorized multiple-ICU-versions
feature. (Those two features might even go together, since a given ICU
version also sort of assumes a given Unicode version.)

#15Jeff Davis
pgsql@j-davis.com
In reply to: Peter Eisentraut (#14)
Re: Update Unicode data to Unicode 16.0.0

On Wed, 2025-01-22 at 19:08 +0100, Peter Eisentraut wrote:

But I don't think it would be a compile-time decision.  I think it
would
be a run-time selection, similar to the theorized multiple-ICU-
versions
feature.  (Those two features might even go together, since a given
ICU
version also sort of assumes a given Unicode version.)

I am trying to get there, and the ctype methods patch is a step in that
direction, but I don't think we will have full the full multi-library-
versions work in v18.

A compile-time option does have a chance for v18, and if that satisfies
the immediate concerns of packagers, then we can still update Unicode
in the default build.

Regards,
Jeff Davis

#16Jeff Davis
pgsql@j-davis.com
In reply to: Peter Eisentraut (#13)
Re: Update Unicode data to Unicode 16.0.0

On Wed, 2025-01-22 at 19:03 +0100, Peter Eisentraut wrote:

Building a collation provider on this came much later.  It was
possibly
a mistake how that was done.

It wasn't a mistake. "Stability within a PG major version" was called a
*benefit* near the top of the first email on the subject[1]/messages/by-id/ff4c2f2f9c8fc7ca27c1c24ae37ecaeaeaff6b53.camel@j-davis.com. It was
considered a benefit because it offered a level of stability that
neither libc nor ICU could offer. As far as I know, it's still
considered to be a benefit today by more people than not (e.g. [2]/messages/by-id/3729436.1721322211@sss.pgh.pa.us).

The concerns about Unicode updates come from a misunderstanding of the
level of stability offered in the past:

* IMMUTABLE was initially a planner concept[3]/messages/by-id/3428810.1721160969@sss.pgh.pa.us, which is why it didn't
care much about dependence on GUCs for instance.

* Expression / predicate indexes rely on immutability to mean something
more strict, and for that, dependence on GUCs creates a problem[4]CREATE TABLE t(f float4); CREATE UNIQUE INDEX t_idx ON t((f::text)); SET extra_float_digits = 0; INSERT INTO t VALUES (1.23456789); INSERT INTO t VALUES (1.23456789); -- error SET extra_float_digits = 1; INSERT INTO t VALUES (1.23456789); -- success.
(Also, partitioning.)

* It's hard to make an immutable UDF without a SET search_path clause,
but until version 17, that was such a huge performance hit that it was
not usable in an expression index. There will be a lot of not-truly-
immutable UDFs used in expression indexes for a long time.

* Ordinary text indexes rely on the collation libraries to be stable,
which is hard to control because they could be updated by the OS. It's
barely possible recently to freeze the version of libc[5]https://github.com/awslabs/compat-collation-for-glibc without
freezing the whole OS version. And if you do manage to freeze both libc
and ICU, you are risking missed security fixes.

* pg_upgrade implicitly relies on IMMUTABLE to mean something even more
strict: stability across major versions. That's a problem for
expression indexes on functions like NORMALIZE(). And, if using the
optional built-in provider, also a problem for expression indexes on
LOWER(), etc.

At each moment we took steps that made sense at the time and in context
and I am not criticizing any of those steps. The biggest practical
problem was unforseen dramatic changes in glibc that broke a lot of
text indexes. The rest of the problems are a mix of design issues,
feature interactions, and implementation details that were not resolved
before the builtin provider existed and still not resolved today.

I do not accept the premise that there is a problem with the built-in
provider. I didn't throw caution to the wind and neither did the
reviewers: you, Daniel, Jeremy, and I did a ton of work to understand,
mitigate, and document the risks (along with a lot of help from
Thomas's earlier work). Users who opt-in to the built in provider opt-
in to occasional controlled changes according to the rather strict
Unicode stability policies[6]https://www.unicode.org/policies/stability_policy.html. These policies mitigate risks
dramatically, especially for those using only assigned code points,
which can be checked with the SQL function unicode_assigned().

Regards,
Jeff Davis

[1]: /messages/by-id/ff4c2f2f9c8fc7ca27c1c24ae37ecaeaeaff6b53.camel@j-davis.com
/messages/by-id/ff4c2f2f9c8fc7ca27c1c24ae37ecaeaeaff6b53.camel@j-davis.com

[2]: /messages/by-id/3729436.1721322211@sss.pgh.pa.us
/messages/by-id/3729436.1721322211@sss.pgh.pa.us

[3]: /messages/by-id/3428810.1721160969@sss.pgh.pa.us
/messages/by-id/3428810.1721160969@sss.pgh.pa.us

[4]: CREATE TABLE t(f float4); CREATE UNIQUE INDEX t_idx ON t((f::text)); SET extra_float_digits = 0; INSERT INTO t VALUES (1.23456789); INSERT INTO t VALUES (1.23456789); -- error SET extra_float_digits = 1; INSERT INTO t VALUES (1.23456789); -- success

CREATE TABLE t(f float4);
CREATE UNIQUE INDEX t_idx ON t((f::text));
SET extra_float_digits = 0;
INSERT INTO t VALUES (1.23456789);
INSERT INTO t VALUES (1.23456789); -- error
SET extra_float_digits = 1;
INSERT INTO t VALUES (1.23456789); -- success

[5]: https://github.com/awslabs/compat-collation-for-glibc

[6]: https://www.unicode.org/policies/stability_policy.html

#17Jeff Davis
pgsql@j-davis.com
In reply to: Peter Eisentraut (#1)
1 attachment(s)
Re: Update Unicode data to Unicode 16.0.0

On Mon, 2024-11-11 at 07:27 +0100, Peter Eisentraut wrote:

Here is the patch to update the Unicode data to version 16.0.0.

Normally, this would have been routine, but a few months ago there
was
some debate about how this should be handled. [0]  AFAICT, the
consensus
was to go ahead with it, but I just wanted to notify it here to be
clear.

We discussed $SUBJECT at the Developer Meeting before FOSDEM.

Those people who were most concerned about the Unicode updates on the
list were not present, so I don't consider the discussion to be
binding. But the attendees present agreed that:

(a) we should not block the update to Unicode indefinitely; and
(b) we should make reasonable attempts to mitigate potential
problems.

One idea for (b) resurfaced, which was to make a best-effort check at
pg_upgrade time for affected indexes. The check would not be
bulletproof, because we can't catch dependencies that are hidden inside
SPI (e.g. a plpgsql function that calls LOWER()), but it would catch
most potential problems.

Patch attached. A few notes:

* The dependency entries don't exist because LOWER(), etc., are
system objects (pinned); so it queries the indexprs, indpreds,
partexprs, and conbin.
* The query is large and perhaps too clever, but it seems to work. I
tried to add inline comments to the SQL, and pgindent had its own ideas
about how to format them -- suggestions welcome.
* We haven't actually done the Unicode update yet, so it will notice
that the PG17 and PG18 Unicode versions are the same, and return early.
Either apply on top of the Unicode update patch, or comment out the
early return for testing.
* It emits a warning rather than an error, so you need to specify
pg_upgrade with "-r" to see the output file.
* I didn't adapt the query to run on pre-17 versions, even though it
could find some potential problem cases (like an index on NORMALIZE()).
I can add that if someone thinks it's worthwhile.

Regards,
Jeff Davis

Attachments:

v1-0001-Add-pg_upgrade-check-for-Unicode-dependent-relati.patchtext/x-patch; charset=UTF-8; name=v1-0001-Add-pg_upgrade-check-for-Unicode-dependent-relati.patchDownload
From 9d7097edff9230bc9ced9757eb7f23b3ac267b0f Mon Sep 17 00:00:00 2001
From: Jeff Davis <jeff@j-davis.com>
Date: Mon, 3 Feb 2025 13:02:37 -0800
Subject: [PATCH v1] Add pg_upgrade check for Unicode-dependent relations.

---
 src/bin/pg_upgrade/check.c | 179 +++++++++++++++++++++++++++++++++++++
 1 file changed, 179 insertions(+)

diff --git a/src/bin/pg_upgrade/check.c b/src/bin/pg_upgrade/check.c
index 7ca1d8fffc9..17ca1066906 100644
--- a/src/bin/pg_upgrade/check.c
+++ b/src/bin/pg_upgrade/check.c
@@ -13,6 +13,7 @@
 #include "catalog/pg_class_d.h"
 #include "fe_utils/string_utils.h"
 #include "pg_upgrade.h"
+#include "common/unicode_version.h"
 
 static void check_new_cluster_is_empty(void);
 static void check_is_install_user(ClusterInfo *cluster);
@@ -25,6 +26,7 @@ static void check_for_tables_with_oids(ClusterInfo *cluster);
 static void check_for_pg_role_prefix(ClusterInfo *cluster);
 static void check_for_new_tablespace_dir(void);
 static void check_for_user_defined_encoding_conversions(ClusterInfo *cluster);
+static void check_for_unicode_update(ClusterInfo *cluster);
 static void check_new_cluster_logical_replication_slots(void);
 static void check_new_cluster_subscription_configuration(void);
 static void check_old_cluster_for_valid_slots(void);
@@ -633,6 +635,12 @@ check_and_dump_old_cluster(void)
 
 	check_for_data_types_usage(&old_cluster);
 
+	/*
+	 * Unicode updates can affect some objects that use expressions with
+	 * functions dependent on Unicode.
+	 */
+	check_for_unicode_update(&old_cluster);
+
 	/*
 	 * PG 14 changed the function signature of encoding conversion functions.
 	 * Conversions from older versions cannot be upgraded automatically
@@ -1740,6 +1748,177 @@ check_for_user_defined_encoding_conversions(ClusterInfo *cluster)
 		check_ok();
 }
 
+/*
+ * Callback function for processing results of query for
+ * check_for_unicode_update()'s UpgradeTask.  If the query returned any rows
+ * (i.e., the check failed), write the details to the report file.
+ */
+static void
+process_unicode_update(DbInfo *dbinfo, PGresult *res, void *arg)
+{
+	UpgradeTaskReport *report = (UpgradeTaskReport *) arg;
+	int			ntups = PQntuples(res);
+	int			i_reloid = PQfnumber(res, "reloid");
+	int			i_nspname = PQfnumber(res, "nspname");
+	int			i_relname = PQfnumber(res, "relname");
+
+	if (ntups == 0)
+		return;
+
+	if (report->file == NULL &&
+		(report->file = fopen_priv(report->path, "w")) == NULL)
+		pg_fatal("could not open file \"%s\": %m", report->path);
+
+	fprintf(report->file, "In database: %s\n", dbinfo->db_name);
+
+	for (int rowno = 0; rowno < ntups; rowno++)
+		fprintf(report->file, "  (oid=%s) %s.%s\n",
+				PQgetvalue(res, rowno, i_reloid),
+				PQgetvalue(res, rowno, i_nspname),
+				PQgetvalue(res, rowno, i_relname));
+}
+
+/*
+ * Check if the Unicode version built into Postgres changed between the old
+ * cluster and the new cluster.
+ */
+static bool
+unicode_version_changed(ClusterInfo *cluster)
+{
+	PGconn	   *conn_template1 = connectToServer(cluster, "template1");
+	PGresult   *res;
+	char	   *old_unicode_version;
+	bool		unicode_updated;
+
+	res = executeQueryOrDie(conn_template1, "SELECT unicode_version()");
+	old_unicode_version = PQgetvalue(res, 0, 0);
+	unicode_updated = (strcmp(old_unicode_version, PG_UNICODE_VERSION) != 0);
+
+	PQclear(res);
+	PQfinish(conn_template1);
+
+	return unicode_updated;
+}
+
+/*
+ * check_for_unicode_update()
+ *
+ * Check if the version of Unicode in the old server and the new server
+ * differ. If so, check for indexes, partitioned tables, or constraints that
+ * use expressions with functions dependent on Unicode behavior.
+ */
+static void
+check_for_unicode_update(ClusterInfo *cluster)
+{
+	UpgradeTaskReport report;
+	UpgradeTask *task = upgrade_task_create();
+	const char *query;
+
+	/*
+	 * The builtin provider did not exist prior to version 17. While there are
+	 * still problems that could potentially be caught from earlier versions,
+	 * such as an index on NORMALIZE(), we don't check for that here.
+	 */
+	if (GET_MAJOR_VERSION(cluster->major_version) < 1700)
+		return;
+
+	prep_status("Checking for objects affected by Unicode update");
+
+	if (!unicode_version_changed(cluster))
+	{
+		check_ok();
+		return;
+	}
+
+	report.file = NULL;
+	snprintf(report.path, sizeof(report.path), "%s/%s",
+			 log_opts.basedir,
+			 "unicode_dependent_rels.txt");
+
+	query =
+	/* collations that use built-in Unicode for character semantics */
+		"WITH collations(collid) AS ( "
+		"  SELECT oid FROM pg_collation "
+		"  WHERE collprovider='b' AND colllocale IN ('C.UTF-8','PG_UNICODE_FAST') "
+	/* include default collation, if appropriate */
+		"  UNION "
+		"  SELECT 'pg_catalog.default'::regcollation FROM pg_database "
+		"  WHERE datname = current_database() AND "
+		"  datlocprovider='b' AND datlocale IN ('C.UTF-8','PG_UNICODE_FAST') "
+		"), "
+	/* functions that use built-in Unicode */
+		"functions(procid) AS ( "
+		"  SELECT proc.oid FROM pg_proc proc "
+		"  WHERE proname IN ('normalize','unicode_assigned','unicode_version','is_normalized') AND "
+		"        pronamespace='pg_catalog'::regnamespace "
+		"), "
+	/* operators that use the input collation for character semantics */
+		"coll_operators(operid, procid, collid) AS ( "
+		"  SELECT oper.oid, oper.oprcode, collid FROM pg_operator oper, collations "
+		"  WHERE oprname IN ('~', '~*', '!~', '!~*', '~~*', '!~~*') AND "
+		"        oprnamespace='pg_catalog'::regnamespace AND "
+		"        oprright='text'::regtype "
+		"), "
+	/* functions that use the input collation for character semantics */
+		"coll_functions(procid, collid) AS ( "
+		"  SELECT proc.oid, collid FROM pg_proc proc, collations "
+		"  WHERE proname IN ('lower','initcap','upper') AND "
+		"        pronamespace='pg_catalog'::regnamespace AND "
+		"        proargtypes[0] = 'text'::regtype "
+	/* include functions behind the operators listed above */
+		"  UNION "
+		"  SELECT procid, collid FROM coll_operators "
+		"), "
+
+	/*
+	 * Generate patterns to search a pg_node_tree for the above functions and
+	 * operators.
+	 */
+		"patterns(p) AS ( "
+		"  SELECT '{FUNCEXPR :funcid ' || procid::text || '[ }]' FROM functions "
+		"  UNION "
+		"  SELECT '{OPEXPR :opno ' || operid::text || ' (:\\w+ \\w+ )*' || "
+		"         ':inputcollid ' || collid::text || '[ }]' FROM coll_operators "
+		"  UNION "
+		"  SELECT '{FUNCEXPR :funcid ' || procid::text || ' (:\\w+ \\w+ )*' || "
+		"         ':inputcollid ' || collid::text || '[ }]' FROM coll_functions "
+		") "
+
+	/*
+	 * Match the patterns against expressions used for relation contents.
+	 */
+		"SELECT reloid, relkind, nspname, relname "
+		"  FROM ( "
+		"    SELECT conrelid "
+		"    FROM pg_constraint, patterns WHERE conbin::text ~ p "
+		"  UNION "
+		"    SELECT indexrelid "
+		"    FROM pg_index, patterns WHERE indexprs::text ~ p OR indpred::text ~ p "
+		"  UNION "
+		"    SELECT partrelid "
+		"    FROM pg_partitioned_table, patterns WHERE partexprs::text ~ p "
+		"  ) s(reloid), pg_class c, pg_namespace n, pg_database d "
+		"  WHERE s.reloid = c.oid AND c.relnamespace = n.oid AND "
+		"        d.datname = current_database() AND "
+		"        d.encoding = pg_char_to_encoding('UTF8');";
+
+	upgrade_task_add_step(task, query,
+						  process_unicode_update,
+						  true, &report);
+	upgrade_task_run(task, cluster);
+	upgrade_task_free(task);
+
+	if (report.file)
+	{
+		fclose(report.file);
+		pg_log(PG_WARNING, "Your installation contains relations that may be affected by a new version of Unicode.\n"
+			   "A list of potentially-affected relations is in the file:\n"
+			   "    %s", report.path);
+	}
+	else
+		check_ok();
+}
+
 /*
  * check_new_cluster_logical_replication_slots()
  *
-- 
2.34.1

#18Peter Eisentraut
peter@eisentraut.org
In reply to: Jeff Davis (#17)
Re: Update Unicode data to Unicode 16.0.0

On 05.02.25 22:47, Jeff Davis wrote:

(b) we should make reasonable attempts to mitigate potential
problems.

One idea for (b) resurfaced, which was to make a best-effort check at
pg_upgrade time for affected indexes. The check would not be
bulletproof, because we can't catch dependencies that are hidden inside
SPI (e.g. a plpgsql function that calls LOWER()), but it would catch
most potential problems.

Patch attached. A few notes:

* The dependency entries don't exist because LOWER(), etc., are
system objects (pinned); so it queries the indexprs, indpreds,
partexprs, and conbin.
* The query is large and perhaps too clever, but it seems to work. I
tried to add inline comments to the SQL, and pgindent had its own ideas
about how to format them -- suggestions welcome.
* We haven't actually done the Unicode update yet, so it will notice
that the PG17 and PG18 Unicode versions are the same, and return early.
Either apply on top of the Unicode update patch, or comment out the
early return for testing.
* It emits a warning rather than an error, so you need to specify
pg_upgrade with "-r" to see the output file.
* I didn't adapt the query to run on pre-17 versions, even though it
could find some potential problem cases (like an index on NORMALIZE()).
I can add that if someone thinks it's worthwhile.

This all looks quite reasonable to me. The code could obviously use a
bit closer inspection, but the way you've structured it looked quite
okay to me.

#19Jeff Davis
pgsql@j-davis.com
In reply to: Michael Paquier (#5)
Re: Update Unicode data to Unicode 16.0.0

On Mon, 2024-11-18 at 13:58 +0900, Michael Paquier wrote:

Worth noting that unaccent.rules is unchanged after switching to
16.0.0:
cd contrib/unaccent && make update-unicode

What diffs are you seeing? I don't see any diffs to unaccent.rules
since Unicode 14.0.0.

Aside: it looks like that target is not being run with the meson build.

Regards,
Jeff Davis

#20Jeff Davis
pgsql@j-davis.com
In reply to: Peter Eisentraut (#18)
2 attachment(s)
Re: Update Unicode data to Unicode 16.0.0

On Fri, 2025-02-14 at 09:02 +0100, Peter Eisentraut wrote:

This all looks quite reasonable to me.  The code could obviously use
a
bit closer inspection, but the way you've structured it looked quite
okay to me.

Attached a version that rebases both patches. In my patch, I added a
report_status().

Note that the Unicode update has a few test diffs for NORMALIZE(),
please check to see if the tests themselves need an update.

Regards,
Jeff Davis

Attachments:

v2-0001-Update-Unicode-data-to-Unicode-16.0.0.patchtext/x-patch; charset=UTF-8; name=v2-0001-Update-Unicode-data-to-Unicode-16.0.0.patchDownload
From 41f75a242122fd5d9bd5fada24d97293a340f5fb Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Mon, 11 Nov 2024 07:21:48 +0100
Subject: [PATCH v2 1/2] Update Unicode data to Unicode 16.0.0

---
 src/Makefile.global.in                        |   2 +-
 src/common/unicode/meson.build                |   2 +-
 src/include/common/unicode_case_table.h       |  56 +-
 src/include/common/unicode_category_table.h   | 184 +++-
 .../common/unicode_east_asian_fw_table.h      |  20 +-
 src/include/common/unicode_nonspacing_table.h |  18 +-
 src/include/common/unicode_norm_table.h       | 884 ++++++++++--------
 src/include/common/unicode_version.h          |   2 +-
 src/test/regress/expected/unicode.out         |   6 +-
 9 files changed, 729 insertions(+), 445 deletions(-)

diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index bbe11e75bf0..ebf2dd02eeb 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -357,7 +357,7 @@ DOWNLOAD = wget -O $@ --no-use-server-timestamps
 # Pick a release from here: <https://www.unicode.org/Public/>.  Note
 # that the most recent release listed there is often a pre-release;
 # don't pick that one, except for testing.
-UNICODE_VERSION = 15.1.0
+UNICODE_VERSION = 16.0.0
 
 # Pick a release from here: <http://cldr.unicode.org/index/downloads>
 CLDR_VERSION = 45
diff --git a/src/common/unicode/meson.build b/src/common/unicode/meson.build
index b98940de279..c6a4715ccc5 100644
--- a/src/common/unicode/meson.build
+++ b/src/common/unicode/meson.build
@@ -1,6 +1,6 @@
 # Copyright (c) 2022-2025, PostgreSQL Global Development Group
 
-UNICODE_VERSION = '15.1.0'
+UNICODE_VERSION = '16.0.0'
 
 unicode_data = {}
 unicode_baseurl = 'https://www.unicode.org/Public/@0@/ucd/@1@'
diff --git a/src/include/common/unicode_case_table.h b/src/include/common/unicode_case_table.h
index 7ad284913d7..56493cc4463 100644
--- a/src/include/common/unicode_case_table.h
+++ b/src/include/common/unicode_case_table.h
@@ -174,7 +174,7 @@ static const pg_special_case special_case[106] =
  * Case mapping table. Dense for codepoints < 0x80 (enabling fast lookup),
  * sparse for higher codepoints (requiring scan or binary search).
  */
-static const pg_case_map case_map[3003] =
+static const pg_case_map case_map[3057] =
 {
 	/* begin dense entries for codepoints < 0x80 */
 	{0x000000, {[CaseLower] = 0x000000,[CaseTitle] = 0x000000,[CaseUpper] = 0x000000,[CaseFold] = 0x000000}, NULL},
@@ -523,6 +523,7 @@ static const pg_case_map case_map[3003] =
 	{0x000198, {[CaseLower] = 0x000199,[CaseTitle] = 0x000198,[CaseUpper] = 0x000198,[CaseFold] = 0x000199}, NULL},
 	{0x000199, {[CaseLower] = 0x000199,[CaseTitle] = 0x000198,[CaseUpper] = 0x000198,[CaseFold] = 0x000199}, NULL},
 	{0x00019a, {[CaseLower] = 0x00019a,[CaseTitle] = 0x00023d,[CaseUpper] = 0x00023d,[CaseFold] = 0x00019a}, NULL},
+	{0x00019b, {[CaseLower] = 0x00019b,[CaseTitle] = 0x00a7dc,[CaseUpper] = 0x00a7dc,[CaseFold] = 0x00019b}, NULL},
 	{0x00019c, {[CaseLower] = 0x00026f,[CaseTitle] = 0x00019c,[CaseUpper] = 0x00019c,[CaseFold] = 0x00026f}, NULL},
 	{0x00019d, {[CaseLower] = 0x000272,[CaseTitle] = 0x00019d,[CaseUpper] = 0x00019d,[CaseFold] = 0x000272}, NULL},
 	{0x00019e, {[CaseLower] = 0x00019e,[CaseTitle] = 0x000220,[CaseUpper] = 0x000220,[CaseFold] = 0x00019e}, NULL},
@@ -700,6 +701,7 @@ static const pg_case_map case_map[3003] =
 	{0x000260, {[CaseLower] = 0x000260,[CaseTitle] = 0x000193,[CaseUpper] = 0x000193,[CaseFold] = 0x000260}, NULL},
 	{0x000261, {[CaseLower] = 0x000261,[CaseTitle] = 0x00a7ac,[CaseUpper] = 0x00a7ac,[CaseFold] = 0x000261}, NULL},
 	{0x000263, {[CaseLower] = 0x000263,[CaseTitle] = 0x000194,[CaseUpper] = 0x000194,[CaseFold] = 0x000263}, NULL},
+	{0x000264, {[CaseLower] = 0x000264,[CaseTitle] = 0x00a7cb,[CaseUpper] = 0x00a7cb,[CaseFold] = 0x000264}, NULL},
 	{0x000265, {[CaseLower] = 0x000265,[CaseTitle] = 0x00a78d,[CaseUpper] = 0x00a78d,[CaseFold] = 0x000265}, NULL},
 	{0x000266, {[CaseLower] = 0x000266,[CaseTitle] = 0x00a7aa,[CaseUpper] = 0x00a7aa,[CaseFold] = 0x000266}, NULL},
 	{0x000268, {[CaseLower] = 0x000268,[CaseTitle] = 0x000197,[CaseUpper] = 0x000197,[CaseFold] = 0x000268}, NULL},
@@ -1408,6 +1410,8 @@ static const pg_case_map case_map[3003] =
 	{0x001c86, {[CaseLower] = 0x001c86,[CaseTitle] = 0x00042a,[CaseUpper] = 0x00042a,[CaseFold] = 0x00044a}, NULL},
 	{0x001c87, {[CaseLower] = 0x001c87,[CaseTitle] = 0x000462,[CaseUpper] = 0x000462,[CaseFold] = 0x000463}, NULL},
 	{0x001c88, {[CaseLower] = 0x001c88,[CaseTitle] = 0x00a64a,[CaseUpper] = 0x00a64a,[CaseFold] = 0x00a64b}, NULL},
+	{0x001c89, {[CaseLower] = 0x001c8a,[CaseTitle] = 0x001c89,[CaseUpper] = 0x001c89,[CaseFold] = 0x001c8a}, NULL},
+	{0x001c8a, {[CaseLower] = 0x001c8a,[CaseTitle] = 0x001c89,[CaseUpper] = 0x001c89,[CaseFold] = 0x001c8a}, NULL},
 	{0x001c90, {[CaseLower] = 0x0010d0,[CaseTitle] = 0x001c90,[CaseUpper] = 0x001c90,[CaseFold] = 0x0010d0}, NULL},
 	{0x001c91, {[CaseLower] = 0x0010d1,[CaseTitle] = 0x001c91,[CaseUpper] = 0x001c91,[CaseFold] = 0x0010d1}, NULL},
 	{0x001c92, {[CaseLower] = 0x0010d2,[CaseTitle] = 0x001c92,[CaseUpper] = 0x001c92,[CaseFold] = 0x0010d2}, NULL},
@@ -2509,12 +2513,18 @@ static const pg_case_map case_map[3003] =
 	{0x00a7c8, {[CaseLower] = 0x00a7c8,[CaseTitle] = 0x00a7c7,[CaseUpper] = 0x00a7c7,[CaseFold] = 0x00a7c8}, NULL},
 	{0x00a7c9, {[CaseLower] = 0x00a7ca,[CaseTitle] = 0x00a7c9,[CaseUpper] = 0x00a7c9,[CaseFold] = 0x00a7ca}, NULL},
 	{0x00a7ca, {[CaseLower] = 0x00a7ca,[CaseTitle] = 0x00a7c9,[CaseUpper] = 0x00a7c9,[CaseFold] = 0x00a7ca}, NULL},
+	{0x00a7cb, {[CaseLower] = 0x000264,[CaseTitle] = 0x00a7cb,[CaseUpper] = 0x00a7cb,[CaseFold] = 0x000264}, NULL},
+	{0x00a7cc, {[CaseLower] = 0x00a7cd,[CaseTitle] = 0x00a7cc,[CaseUpper] = 0x00a7cc,[CaseFold] = 0x00a7cd}, NULL},
+	{0x00a7cd, {[CaseLower] = 0x00a7cd,[CaseTitle] = 0x00a7cc,[CaseUpper] = 0x00a7cc,[CaseFold] = 0x00a7cd}, NULL},
 	{0x00a7d0, {[CaseLower] = 0x00a7d1,[CaseTitle] = 0x00a7d0,[CaseUpper] = 0x00a7d0,[CaseFold] = 0x00a7d1}, NULL},
 	{0x00a7d1, {[CaseLower] = 0x00a7d1,[CaseTitle] = 0x00a7d0,[CaseUpper] = 0x00a7d0,[CaseFold] = 0x00a7d1}, NULL},
 	{0x00a7d6, {[CaseLower] = 0x00a7d7,[CaseTitle] = 0x00a7d6,[CaseUpper] = 0x00a7d6,[CaseFold] = 0x00a7d7}, NULL},
 	{0x00a7d7, {[CaseLower] = 0x00a7d7,[CaseTitle] = 0x00a7d6,[CaseUpper] = 0x00a7d6,[CaseFold] = 0x00a7d7}, NULL},
 	{0x00a7d8, {[CaseLower] = 0x00a7d9,[CaseTitle] = 0x00a7d8,[CaseUpper] = 0x00a7d8,[CaseFold] = 0x00a7d9}, NULL},
 	{0x00a7d9, {[CaseLower] = 0x00a7d9,[CaseTitle] = 0x00a7d8,[CaseUpper] = 0x00a7d8,[CaseFold] = 0x00a7d9}, NULL},
+	{0x00a7da, {[CaseLower] = 0x00a7db,[CaseTitle] = 0x00a7da,[CaseUpper] = 0x00a7da,[CaseFold] = 0x00a7db}, NULL},
+	{0x00a7db, {[CaseLower] = 0x00a7db,[CaseTitle] = 0x00a7da,[CaseUpper] = 0x00a7da,[CaseFold] = 0x00a7db}, NULL},
+	{0x00a7dc, {[CaseLower] = 0x00019b,[CaseTitle] = 0x00a7dc,[CaseUpper] = 0x00a7dc,[CaseFold] = 0x00019b}, NULL},
 	{0x00a7f5, {[CaseLower] = 0x00a7f6,[CaseTitle] = 0x00a7f5,[CaseUpper] = 0x00a7f5,[CaseFold] = 0x00a7f6}, NULL},
 	{0x00a7f6, {[CaseLower] = 0x00a7f6,[CaseTitle] = 0x00a7f5,[CaseUpper] = 0x00a7f5,[CaseFold] = 0x00a7f6}, NULL},
 	{0x00ab53, {[CaseLower] = 0x00ab53,[CaseTitle] = 0x00a7b3,[CaseUpper] = 0x00a7b3,[CaseFold] = 0x00ab53}, NULL},
@@ -2986,6 +2996,50 @@ static const pg_case_map case_map[3003] =
 	{0x010cf0, {[CaseLower] = 0x010cf0,[CaseTitle] = 0x010cb0,[CaseUpper] = 0x010cb0,[CaseFold] = 0x010cf0}, NULL},
 	{0x010cf1, {[CaseLower] = 0x010cf1,[CaseTitle] = 0x010cb1,[CaseUpper] = 0x010cb1,[CaseFold] = 0x010cf1}, NULL},
 	{0x010cf2, {[CaseLower] = 0x010cf2,[CaseTitle] = 0x010cb2,[CaseUpper] = 0x010cb2,[CaseFold] = 0x010cf2}, NULL},
+	{0x010d50, {[CaseLower] = 0x010d70,[CaseTitle] = 0x010d50,[CaseUpper] = 0x010d50,[CaseFold] = 0x010d70}, NULL},
+	{0x010d51, {[CaseLower] = 0x010d71,[CaseTitle] = 0x010d51,[CaseUpper] = 0x010d51,[CaseFold] = 0x010d71}, NULL},
+	{0x010d52, {[CaseLower] = 0x010d72,[CaseTitle] = 0x010d52,[CaseUpper] = 0x010d52,[CaseFold] = 0x010d72}, NULL},
+	{0x010d53, {[CaseLower] = 0x010d73,[CaseTitle] = 0x010d53,[CaseUpper] = 0x010d53,[CaseFold] = 0x010d73}, NULL},
+	{0x010d54, {[CaseLower] = 0x010d74,[CaseTitle] = 0x010d54,[CaseUpper] = 0x010d54,[CaseFold] = 0x010d74}, NULL},
+	{0x010d55, {[CaseLower] = 0x010d75,[CaseTitle] = 0x010d55,[CaseUpper] = 0x010d55,[CaseFold] = 0x010d75}, NULL},
+	{0x010d56, {[CaseLower] = 0x010d76,[CaseTitle] = 0x010d56,[CaseUpper] = 0x010d56,[CaseFold] = 0x010d76}, NULL},
+	{0x010d57, {[CaseLower] = 0x010d77,[CaseTitle] = 0x010d57,[CaseUpper] = 0x010d57,[CaseFold] = 0x010d77}, NULL},
+	{0x010d58, {[CaseLower] = 0x010d78,[CaseTitle] = 0x010d58,[CaseUpper] = 0x010d58,[CaseFold] = 0x010d78}, NULL},
+	{0x010d59, {[CaseLower] = 0x010d79,[CaseTitle] = 0x010d59,[CaseUpper] = 0x010d59,[CaseFold] = 0x010d79}, NULL},
+	{0x010d5a, {[CaseLower] = 0x010d7a,[CaseTitle] = 0x010d5a,[CaseUpper] = 0x010d5a,[CaseFold] = 0x010d7a}, NULL},
+	{0x010d5b, {[CaseLower] = 0x010d7b,[CaseTitle] = 0x010d5b,[CaseUpper] = 0x010d5b,[CaseFold] = 0x010d7b}, NULL},
+	{0x010d5c, {[CaseLower] = 0x010d7c,[CaseTitle] = 0x010d5c,[CaseUpper] = 0x010d5c,[CaseFold] = 0x010d7c}, NULL},
+	{0x010d5d, {[CaseLower] = 0x010d7d,[CaseTitle] = 0x010d5d,[CaseUpper] = 0x010d5d,[CaseFold] = 0x010d7d}, NULL},
+	{0x010d5e, {[CaseLower] = 0x010d7e,[CaseTitle] = 0x010d5e,[CaseUpper] = 0x010d5e,[CaseFold] = 0x010d7e}, NULL},
+	{0x010d5f, {[CaseLower] = 0x010d7f,[CaseTitle] = 0x010d5f,[CaseUpper] = 0x010d5f,[CaseFold] = 0x010d7f}, NULL},
+	{0x010d60, {[CaseLower] = 0x010d80,[CaseTitle] = 0x010d60,[CaseUpper] = 0x010d60,[CaseFold] = 0x010d80}, NULL},
+	{0x010d61, {[CaseLower] = 0x010d81,[CaseTitle] = 0x010d61,[CaseUpper] = 0x010d61,[CaseFold] = 0x010d81}, NULL},
+	{0x010d62, {[CaseLower] = 0x010d82,[CaseTitle] = 0x010d62,[CaseUpper] = 0x010d62,[CaseFold] = 0x010d82}, NULL},
+	{0x010d63, {[CaseLower] = 0x010d83,[CaseTitle] = 0x010d63,[CaseUpper] = 0x010d63,[CaseFold] = 0x010d83}, NULL},
+	{0x010d64, {[CaseLower] = 0x010d84,[CaseTitle] = 0x010d64,[CaseUpper] = 0x010d64,[CaseFold] = 0x010d84}, NULL},
+	{0x010d65, {[CaseLower] = 0x010d85,[CaseTitle] = 0x010d65,[CaseUpper] = 0x010d65,[CaseFold] = 0x010d85}, NULL},
+	{0x010d70, {[CaseLower] = 0x010d70,[CaseTitle] = 0x010d50,[CaseUpper] = 0x010d50,[CaseFold] = 0x010d70}, NULL},
+	{0x010d71, {[CaseLower] = 0x010d71,[CaseTitle] = 0x010d51,[CaseUpper] = 0x010d51,[CaseFold] = 0x010d71}, NULL},
+	{0x010d72, {[CaseLower] = 0x010d72,[CaseTitle] = 0x010d52,[CaseUpper] = 0x010d52,[CaseFold] = 0x010d72}, NULL},
+	{0x010d73, {[CaseLower] = 0x010d73,[CaseTitle] = 0x010d53,[CaseUpper] = 0x010d53,[CaseFold] = 0x010d73}, NULL},
+	{0x010d74, {[CaseLower] = 0x010d74,[CaseTitle] = 0x010d54,[CaseUpper] = 0x010d54,[CaseFold] = 0x010d74}, NULL},
+	{0x010d75, {[CaseLower] = 0x010d75,[CaseTitle] = 0x010d55,[CaseUpper] = 0x010d55,[CaseFold] = 0x010d75}, NULL},
+	{0x010d76, {[CaseLower] = 0x010d76,[CaseTitle] = 0x010d56,[CaseUpper] = 0x010d56,[CaseFold] = 0x010d76}, NULL},
+	{0x010d77, {[CaseLower] = 0x010d77,[CaseTitle] = 0x010d57,[CaseUpper] = 0x010d57,[CaseFold] = 0x010d77}, NULL},
+	{0x010d78, {[CaseLower] = 0x010d78,[CaseTitle] = 0x010d58,[CaseUpper] = 0x010d58,[CaseFold] = 0x010d78}, NULL},
+	{0x010d79, {[CaseLower] = 0x010d79,[CaseTitle] = 0x010d59,[CaseUpper] = 0x010d59,[CaseFold] = 0x010d79}, NULL},
+	{0x010d7a, {[CaseLower] = 0x010d7a,[CaseTitle] = 0x010d5a,[CaseUpper] = 0x010d5a,[CaseFold] = 0x010d7a}, NULL},
+	{0x010d7b, {[CaseLower] = 0x010d7b,[CaseTitle] = 0x010d5b,[CaseUpper] = 0x010d5b,[CaseFold] = 0x010d7b}, NULL},
+	{0x010d7c, {[CaseLower] = 0x010d7c,[CaseTitle] = 0x010d5c,[CaseUpper] = 0x010d5c,[CaseFold] = 0x010d7c}, NULL},
+	{0x010d7d, {[CaseLower] = 0x010d7d,[CaseTitle] = 0x010d5d,[CaseUpper] = 0x010d5d,[CaseFold] = 0x010d7d}, NULL},
+	{0x010d7e, {[CaseLower] = 0x010d7e,[CaseTitle] = 0x010d5e,[CaseUpper] = 0x010d5e,[CaseFold] = 0x010d7e}, NULL},
+	{0x010d7f, {[CaseLower] = 0x010d7f,[CaseTitle] = 0x010d5f,[CaseUpper] = 0x010d5f,[CaseFold] = 0x010d7f}, NULL},
+	{0x010d80, {[CaseLower] = 0x010d80,[CaseTitle] = 0x010d60,[CaseUpper] = 0x010d60,[CaseFold] = 0x010d80}, NULL},
+	{0x010d81, {[CaseLower] = 0x010d81,[CaseTitle] = 0x010d61,[CaseUpper] = 0x010d61,[CaseFold] = 0x010d81}, NULL},
+	{0x010d82, {[CaseLower] = 0x010d82,[CaseTitle] = 0x010d62,[CaseUpper] = 0x010d62,[CaseFold] = 0x010d82}, NULL},
+	{0x010d83, {[CaseLower] = 0x010d83,[CaseTitle] = 0x010d63,[CaseUpper] = 0x010d63,[CaseFold] = 0x010d83}, NULL},
+	{0x010d84, {[CaseLower] = 0x010d84,[CaseTitle] = 0x010d64,[CaseUpper] = 0x010d64,[CaseFold] = 0x010d84}, NULL},
+	{0x010d85, {[CaseLower] = 0x010d85,[CaseTitle] = 0x010d65,[CaseUpper] = 0x010d65,[CaseFold] = 0x010d85}, NULL},
 	{0x0118a0, {[CaseLower] = 0x0118c0,[CaseTitle] = 0x0118a0,[CaseUpper] = 0x0118a0,[CaseFold] = 0x0118c0}, NULL},
 	{0x0118a1, {[CaseLower] = 0x0118c1,[CaseTitle] = 0x0118a1,[CaseUpper] = 0x0118a1,[CaseFold] = 0x0118c1}, NULL},
 	{0x0118a2, {[CaseLower] = 0x0118c2,[CaseTitle] = 0x0118a2,[CaseUpper] = 0x0118a2,[CaseFold] = 0x0118c2}, NULL},
diff --git a/src/include/common/unicode_category_table.h b/src/include/common/unicode_category_table.h
index d3f468a1ebc..95a1c65da7e 100644
--- a/src/include/common/unicode_category_table.h
+++ b/src/include/common/unicode_category_table.h
@@ -696,7 +696,7 @@ static const pg_unicode_properties unicode_opt_ascii[128] =
 };
 
 /* table of Unicode codepoint ranges and their categories */
-static const pg_category_range unicode_categories[3302] =
+static const pg_category_range unicode_categories[3368] =
 {
 	{0x000000, 0x00001f, PG_U_CONTROL},
 	{0x000020, 0x000020, PG_U_SPACE_SEPARATOR},
@@ -1408,7 +1408,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x000888, 0x000888, PG_U_MODIFIER_SYMBOL},
 	{0x000889, 0x00088e, PG_U_OTHER_LETTER},
 	{0x000890, 0x000891, PG_U_FORMAT},
-	{0x000898, 0x00089f, PG_U_NONSPACING_MARK},
+	{0x000897, 0x00089f, PG_U_NONSPACING_MARK},
 	{0x0008a0, 0x0008c8, PG_U_OTHER_LETTER},
 	{0x0008c9, 0x0008c9, PG_U_MODIFIER_LETTER},
 	{0x0008ca, 0x0008e1, PG_U_NONSPACING_MARK},
@@ -1887,12 +1887,13 @@ static const pg_category_range unicode_categories[3302] =
 	{0x001b42, 0x001b42, PG_U_NONSPACING_MARK},
 	{0x001b43, 0x001b44, PG_U_SPACING_MARK},
 	{0x001b45, 0x001b4c, PG_U_OTHER_LETTER},
+	{0x001b4e, 0x001b4f, PG_U_OTHER_PUNCTUATION},
 	{0x001b50, 0x001b59, PG_U_DECIMAL_NUMBER},
 	{0x001b5a, 0x001b60, PG_U_OTHER_PUNCTUATION},
 	{0x001b61, 0x001b6a, PG_U_OTHER_SYMBOL},
 	{0x001b6b, 0x001b73, PG_U_NONSPACING_MARK},
 	{0x001b74, 0x001b7c, PG_U_OTHER_SYMBOL},
-	{0x001b7d, 0x001b7e, PG_U_OTHER_PUNCTUATION},
+	{0x001b7d, 0x001b7f, PG_U_OTHER_PUNCTUATION},
 	{0x001b80, 0x001b81, PG_U_NONSPACING_MARK},
 	{0x001b82, 0x001b82, PG_U_SPACING_MARK},
 	{0x001b83, 0x001ba0, PG_U_OTHER_LETTER},
@@ -1927,6 +1928,8 @@ static const pg_category_range unicode_categories[3302] =
 	{0x001c78, 0x001c7d, PG_U_MODIFIER_LETTER},
 	{0x001c7e, 0x001c7f, PG_U_OTHER_PUNCTUATION},
 	{0x001c80, 0x001c88, PG_U_LOWERCASE_LETTER},
+	{0x001c89, 0x001c89, PG_U_UPPERCASE_LETTER},
+	{0x001c8a, 0x001c8a, PG_U_LOWERCASE_LETTER},
 	{0x001c90, 0x001cba, PG_U_UPPERCASE_LETTER},
 	{0x001cbd, 0x001cbf, PG_U_UPPERCASE_LETTER},
 	{0x001cc0, 0x001cc7, PG_U_OTHER_PUNCTUATION},
@@ -2378,7 +2381,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x00239b, 0x0023b3, PG_U_MATH_SYMBOL},
 	{0x0023b4, 0x0023db, PG_U_OTHER_SYMBOL},
 	{0x0023dc, 0x0023e1, PG_U_MATH_SYMBOL},
-	{0x0023e2, 0x002426, PG_U_OTHER_SYMBOL},
+	{0x0023e2, 0x002429, PG_U_OTHER_SYMBOL},
 	{0x002440, 0x00244a, PG_U_OTHER_SYMBOL},
 	{0x002460, 0x00249b, PG_U_OTHER_NUMBER},
 	{0x00249c, 0x0024e9, PG_U_OTHER_SYMBOL},
@@ -2719,7 +2722,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x003192, 0x003195, PG_U_OTHER_NUMBER},
 	{0x003196, 0x00319f, PG_U_OTHER_SYMBOL},
 	{0x0031a0, 0x0031bf, PG_U_OTHER_LETTER},
-	{0x0031c0, 0x0031e3, PG_U_OTHER_SYMBOL},
+	{0x0031c0, 0x0031e5, PG_U_OTHER_SYMBOL},
 	{0x0031ef, 0x0031ef, PG_U_OTHER_SYMBOL},
 	{0x0031f0, 0x0031ff, PG_U_OTHER_LETTER},
 	{0x003200, 0x00321e, PG_U_OTHER_SYMBOL},
@@ -2983,6 +2986,8 @@ static const pg_category_range unicode_categories[3302] =
 	{0x00a7c8, 0x00a7c8, PG_U_LOWERCASE_LETTER},
 	{0x00a7c9, 0x00a7c9, PG_U_UPPERCASE_LETTER},
 	{0x00a7ca, 0x00a7ca, PG_U_LOWERCASE_LETTER},
+	{0x00a7cb, 0x00a7cc, PG_U_UPPERCASE_LETTER},
+	{0x00a7cd, 0x00a7cd, PG_U_LOWERCASE_LETTER},
 	{0x00a7d0, 0x00a7d0, PG_U_UPPERCASE_LETTER},
 	{0x00a7d1, 0x00a7d1, PG_U_LOWERCASE_LETTER},
 	{0x00a7d3, 0x00a7d3, PG_U_LOWERCASE_LETTER},
@@ -2991,6 +2996,9 @@ static const pg_category_range unicode_categories[3302] =
 	{0x00a7d7, 0x00a7d7, PG_U_LOWERCASE_LETTER},
 	{0x00a7d8, 0x00a7d8, PG_U_UPPERCASE_LETTER},
 	{0x00a7d9, 0x00a7d9, PG_U_LOWERCASE_LETTER},
+	{0x00a7da, 0x00a7da, PG_U_UPPERCASE_LETTER},
+	{0x00a7db, 0x00a7db, PG_U_LOWERCASE_LETTER},
+	{0x00a7dc, 0x00a7dc, PG_U_UPPERCASE_LETTER},
 	{0x00a7f2, 0x00a7f4, PG_U_MODIFIER_LETTER},
 	{0x00a7f5, 0x00a7f5, PG_U_UPPERCASE_LETTER},
 	{0x00a7f6, 0x00a7f6, PG_U_LOWERCASE_LETTER},
@@ -3306,6 +3314,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x0105a3, 0x0105b1, PG_U_LOWERCASE_LETTER},
 	{0x0105b3, 0x0105b9, PG_U_LOWERCASE_LETTER},
 	{0x0105bb, 0x0105bc, PG_U_LOWERCASE_LETTER},
+	{0x0105c0, 0x0105f3, PG_U_OTHER_LETTER},
 	{0x010600, 0x010736, PG_U_OTHER_LETTER},
 	{0x010740, 0x010755, PG_U_OTHER_LETTER},
 	{0x010760, 0x010767, PG_U_OTHER_LETTER},
@@ -3376,12 +3385,23 @@ static const pg_category_range unicode_categories[3302] =
 	{0x010d00, 0x010d23, PG_U_OTHER_LETTER},
 	{0x010d24, 0x010d27, PG_U_NONSPACING_MARK},
 	{0x010d30, 0x010d39, PG_U_DECIMAL_NUMBER},
+	{0x010d40, 0x010d49, PG_U_DECIMAL_NUMBER},
+	{0x010d4a, 0x010d4d, PG_U_OTHER_LETTER},
+	{0x010d4e, 0x010d4e, PG_U_MODIFIER_LETTER},
+	{0x010d4f, 0x010d4f, PG_U_OTHER_LETTER},
+	{0x010d50, 0x010d65, PG_U_UPPERCASE_LETTER},
+	{0x010d69, 0x010d6d, PG_U_NONSPACING_MARK},
+	{0x010d6e, 0x010d6e, PG_U_DASH_PUNCTUATION},
+	{0x010d6f, 0x010d6f, PG_U_MODIFIER_LETTER},
+	{0x010d70, 0x010d85, PG_U_LOWERCASE_LETTER},
+	{0x010d8e, 0x010d8f, PG_U_MATH_SYMBOL},
 	{0x010e60, 0x010e7e, PG_U_OTHER_NUMBER},
 	{0x010e80, 0x010ea9, PG_U_OTHER_LETTER},
 	{0x010eab, 0x010eac, PG_U_NONSPACING_MARK},
 	{0x010ead, 0x010ead, PG_U_DASH_PUNCTUATION},
 	{0x010eb0, 0x010eb1, PG_U_OTHER_LETTER},
-	{0x010efd, 0x010eff, PG_U_NONSPACING_MARK},
+	{0x010ec2, 0x010ec4, PG_U_OTHER_LETTER},
+	{0x010efc, 0x010eff, PG_U_NONSPACING_MARK},
 	{0x010f00, 0x010f1c, PG_U_OTHER_LETTER},
 	{0x010f1d, 0x010f26, PG_U_OTHER_NUMBER},
 	{0x010f27, 0x010f27, PG_U_OTHER_LETTER},
@@ -3497,6 +3517,26 @@ static const pg_category_range unicode_categories[3302] =
 	{0x011362, 0x011363, PG_U_SPACING_MARK},
 	{0x011366, 0x01136c, PG_U_NONSPACING_MARK},
 	{0x011370, 0x011374, PG_U_NONSPACING_MARK},
+	{0x011380, 0x011389, PG_U_OTHER_LETTER},
+	{0x01138b, 0x01138b, PG_U_OTHER_LETTER},
+	{0x01138e, 0x01138e, PG_U_OTHER_LETTER},
+	{0x011390, 0x0113b5, PG_U_OTHER_LETTER},
+	{0x0113b7, 0x0113b7, PG_U_OTHER_LETTER},
+	{0x0113b8, 0x0113ba, PG_U_SPACING_MARK},
+	{0x0113bb, 0x0113c0, PG_U_NONSPACING_MARK},
+	{0x0113c2, 0x0113c2, PG_U_SPACING_MARK},
+	{0x0113c5, 0x0113c5, PG_U_SPACING_MARK},
+	{0x0113c7, 0x0113ca, PG_U_SPACING_MARK},
+	{0x0113cc, 0x0113cd, PG_U_SPACING_MARK},
+	{0x0113ce, 0x0113ce, PG_U_NONSPACING_MARK},
+	{0x0113cf, 0x0113cf, PG_U_SPACING_MARK},
+	{0x0113d0, 0x0113d0, PG_U_NONSPACING_MARK},
+	{0x0113d1, 0x0113d1, PG_U_OTHER_LETTER},
+	{0x0113d2, 0x0113d2, PG_U_NONSPACING_MARK},
+	{0x0113d3, 0x0113d3, PG_U_OTHER_LETTER},
+	{0x0113d4, 0x0113d5, PG_U_OTHER_PUNCTUATION},
+	{0x0113d7, 0x0113d8, PG_U_OTHER_PUNCTUATION},
+	{0x0113e1, 0x0113e2, PG_U_NONSPACING_MARK},
 	{0x011400, 0x011434, PG_U_OTHER_LETTER},
 	{0x011435, 0x011437, PG_U_SPACING_MARK},
 	{0x011438, 0x01143f, PG_U_NONSPACING_MARK},
@@ -3556,8 +3596,11 @@ static const pg_category_range unicode_categories[3302] =
 	{0x0116b8, 0x0116b8, PG_U_OTHER_LETTER},
 	{0x0116b9, 0x0116b9, PG_U_OTHER_PUNCTUATION},
 	{0x0116c0, 0x0116c9, PG_U_DECIMAL_NUMBER},
+	{0x0116d0, 0x0116e3, PG_U_DECIMAL_NUMBER},
 	{0x011700, 0x01171a, PG_U_OTHER_LETTER},
-	{0x01171d, 0x01171f, PG_U_NONSPACING_MARK},
+	{0x01171d, 0x01171d, PG_U_NONSPACING_MARK},
+	{0x01171e, 0x01171e, PG_U_SPACING_MARK},
+	{0x01171f, 0x01171f, PG_U_NONSPACING_MARK},
 	{0x011720, 0x011721, PG_U_SPACING_MARK},
 	{0x011722, 0x011725, PG_U_NONSPACING_MARK},
 	{0x011726, 0x011726, PG_U_SPACING_MARK},
@@ -3627,6 +3670,9 @@ static const pg_category_range unicode_categories[3302] =
 	{0x011a9e, 0x011aa2, PG_U_OTHER_PUNCTUATION},
 	{0x011ab0, 0x011af8, PG_U_OTHER_LETTER},
 	{0x011b00, 0x011b09, PG_U_OTHER_PUNCTUATION},
+	{0x011bc0, 0x011be0, PG_U_OTHER_LETTER},
+	{0x011be1, 0x011be1, PG_U_OTHER_PUNCTUATION},
+	{0x011bf0, 0x011bf9, PG_U_DECIMAL_NUMBER},
 	{0x011c00, 0x011c08, PG_U_OTHER_LETTER},
 	{0x011c0a, 0x011c2e, PG_U_OTHER_LETTER},
 	{0x011c2f, 0x011c2f, PG_U_SPACING_MARK},
@@ -3685,6 +3731,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x011f42, 0x011f42, PG_U_NONSPACING_MARK},
 	{0x011f43, 0x011f4f, PG_U_OTHER_PUNCTUATION},
 	{0x011f50, 0x011f59, PG_U_DECIMAL_NUMBER},
+	{0x011f5a, 0x011f5a, PG_U_NONSPACING_MARK},
 	{0x011fb0, 0x011fb0, PG_U_OTHER_LETTER},
 	{0x011fc0, 0x011fd4, PG_U_OTHER_NUMBER},
 	{0x011fd5, 0x011fdc, PG_U_OTHER_SYMBOL},
@@ -3702,7 +3749,13 @@ static const pg_category_range unicode_categories[3302] =
 	{0x013440, 0x013440, PG_U_NONSPACING_MARK},
 	{0x013441, 0x013446, PG_U_OTHER_LETTER},
 	{0x013447, 0x013455, PG_U_NONSPACING_MARK},
+	{0x013460, 0x0143fa, PG_U_OTHER_LETTER},
 	{0x014400, 0x014646, PG_U_OTHER_LETTER},
+	{0x016100, 0x01611d, PG_U_OTHER_LETTER},
+	{0x01611e, 0x016129, PG_U_NONSPACING_MARK},
+	{0x01612a, 0x01612c, PG_U_SPACING_MARK},
+	{0x01612d, 0x01612f, PG_U_NONSPACING_MARK},
+	{0x016130, 0x016139, PG_U_DECIMAL_NUMBER},
 	{0x016800, 0x016a38, PG_U_OTHER_LETTER},
 	{0x016a40, 0x016a5e, PG_U_OTHER_LETTER},
 	{0x016a60, 0x016a69, PG_U_DECIMAL_NUMBER},
@@ -3723,6 +3776,11 @@ static const pg_category_range unicode_categories[3302] =
 	{0x016b5b, 0x016b61, PG_U_OTHER_NUMBER},
 	{0x016b63, 0x016b77, PG_U_OTHER_LETTER},
 	{0x016b7d, 0x016b8f, PG_U_OTHER_LETTER},
+	{0x016d40, 0x016d42, PG_U_MODIFIER_LETTER},
+	{0x016d43, 0x016d6a, PG_U_OTHER_LETTER},
+	{0x016d6b, 0x016d6c, PG_U_MODIFIER_LETTER},
+	{0x016d6d, 0x016d6f, PG_U_OTHER_PUNCTUATION},
+	{0x016d70, 0x016d79, PG_U_DECIMAL_NUMBER},
 	{0x016e40, 0x016e5f, PG_U_UPPERCASE_LETTER},
 	{0x016e60, 0x016e7f, PG_U_LOWERCASE_LETTER},
 	{0x016e80, 0x016e96, PG_U_OTHER_NUMBER},
@@ -3740,7 +3798,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x016ff0, 0x016ff1, PG_U_SPACING_MARK},
 	{0x017000, 0x0187f7, PG_U_OTHER_LETTER},
 	{0x018800, 0x018cd5, PG_U_OTHER_LETTER},
-	{0x018d00, 0x018d08, PG_U_OTHER_LETTER},
+	{0x018cff, 0x018d08, PG_U_OTHER_LETTER},
 	{0x01aff0, 0x01aff3, PG_U_MODIFIER_LETTER},
 	{0x01aff5, 0x01affb, PG_U_MODIFIER_LETTER},
 	{0x01affd, 0x01affe, PG_U_MODIFIER_LETTER},
@@ -3758,6 +3816,9 @@ static const pg_category_range unicode_categories[3302] =
 	{0x01bc9d, 0x01bc9e, PG_U_NONSPACING_MARK},
 	{0x01bc9f, 0x01bc9f, PG_U_OTHER_PUNCTUATION},
 	{0x01bca0, 0x01bca3, PG_U_FORMAT},
+	{0x01cc00, 0x01ccef, PG_U_OTHER_SYMBOL},
+	{0x01ccf0, 0x01ccf9, PG_U_DECIMAL_NUMBER},
+	{0x01cd00, 0x01ceb3, PG_U_OTHER_SYMBOL},
 	{0x01cf00, 0x01cf2d, PG_U_NONSPACING_MARK},
 	{0x01cf30, 0x01cf46, PG_U_NONSPACING_MARK},
 	{0x01cf50, 0x01cfc3, PG_U_OTHER_SYMBOL},
@@ -3891,6 +3952,11 @@ static const pg_category_range unicode_categories[3302] =
 	{0x01e4eb, 0x01e4eb, PG_U_MODIFIER_LETTER},
 	{0x01e4ec, 0x01e4ef, PG_U_NONSPACING_MARK},
 	{0x01e4f0, 0x01e4f9, PG_U_DECIMAL_NUMBER},
+	{0x01e5d0, 0x01e5ed, PG_U_OTHER_LETTER},
+	{0x01e5ee, 0x01e5ef, PG_U_NONSPACING_MARK},
+	{0x01e5f0, 0x01e5f0, PG_U_OTHER_LETTER},
+	{0x01e5f1, 0x01e5fa, PG_U_DECIMAL_NUMBER},
+	{0x01e5ff, 0x01e5ff, PG_U_OTHER_PUNCTUATION},
 	{0x01e7e0, 0x01e7e6, PG_U_OTHER_LETTER},
 	{0x01e7e8, 0x01e7eb, PG_U_OTHER_LETTER},
 	{0x01e7ed, 0x01e7ee, PG_U_OTHER_LETTER},
@@ -3973,18 +4039,18 @@ static const pg_category_range unicode_categories[3302] =
 	{0x01f850, 0x01f859, PG_U_OTHER_SYMBOL},
 	{0x01f860, 0x01f887, PG_U_OTHER_SYMBOL},
 	{0x01f890, 0x01f8ad, PG_U_OTHER_SYMBOL},
-	{0x01f8b0, 0x01f8b1, PG_U_OTHER_SYMBOL},
+	{0x01f8b0, 0x01f8bb, PG_U_OTHER_SYMBOL},
+	{0x01f8c0, 0x01f8c1, PG_U_OTHER_SYMBOL},
 	{0x01f900, 0x01fa53, PG_U_OTHER_SYMBOL},
 	{0x01fa60, 0x01fa6d, PG_U_OTHER_SYMBOL},
 	{0x01fa70, 0x01fa7c, PG_U_OTHER_SYMBOL},
-	{0x01fa80, 0x01fa88, PG_U_OTHER_SYMBOL},
-	{0x01fa90, 0x01fabd, PG_U_OTHER_SYMBOL},
-	{0x01fabf, 0x01fac5, PG_U_OTHER_SYMBOL},
-	{0x01face, 0x01fadb, PG_U_OTHER_SYMBOL},
-	{0x01fae0, 0x01fae8, PG_U_OTHER_SYMBOL},
+	{0x01fa80, 0x01fa89, PG_U_OTHER_SYMBOL},
+	{0x01fa8f, 0x01fac6, PG_U_OTHER_SYMBOL},
+	{0x01face, 0x01fadc, PG_U_OTHER_SYMBOL},
+	{0x01fadf, 0x01fae9, PG_U_OTHER_SYMBOL},
 	{0x01faf0, 0x01faf8, PG_U_OTHER_SYMBOL},
 	{0x01fb00, 0x01fb92, PG_U_OTHER_SYMBOL},
-	{0x01fb94, 0x01fbca, PG_U_OTHER_SYMBOL},
+	{0x01fb94, 0x01fbef, PG_U_OTHER_SYMBOL},
 	{0x01fbf0, 0x01fbf9, PG_U_DECIMAL_NUMBER},
 	{0x020000, 0x02a6df, PG_U_OTHER_LETTER},
 	{0x02a700, 0x02b739, PG_U_OTHER_LETTER},
@@ -4003,7 +4069,7 @@ static const pg_category_range unicode_categories[3302] =
 };
 
 /* table of Unicode codepoint ranges of Alphabetic characters */
-static const pg_unicode_range unicode_alphabetic[1141] =
+static const pg_unicode_range unicode_alphabetic[1179] =
 {
 	{0x000041, 0x00005a},
 	{0x000061, 0x00007a},
@@ -4025,6 +4091,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x0002ec, 0x0002ec},
 	{0x0002ee, 0x0002ee},
 	{0x000345, 0x000345},
+	{0x000363, 0x00036f},
 	{0x000370, 0x000373},
 	{0x000374, 0x000374},
 	{0x000376, 0x000377},
@@ -4088,6 +4155,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x000860, 0x00086a},
 	{0x000870, 0x000887},
 	{0x000889, 0x00088e},
+	{0x000897, 0x000897},
 	{0x0008a0, 0x0008c8},
 	{0x0008c9, 0x0008c9},
 	{0x0008d4, 0x0008df},
@@ -4455,7 +4523,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x001c4d, 0x001c4f},
 	{0x001c5a, 0x001c77},
 	{0x001c78, 0x001c7d},
-	{0x001c80, 0x001c88},
+	{0x001c80, 0x001c8a},
 	{0x001c90, 0x001cba},
 	{0x001cbd, 0x001cbf},
 	{0x001ce9, 0x001cec},
@@ -4468,7 +4536,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x001d78, 0x001d78},
 	{0x001d79, 0x001d9a},
 	{0x001d9b, 0x001dbf},
-	{0x001de7, 0x001df4},
+	{0x001dd3, 0x001df4},
 	{0x001e00, 0x001f15},
 	{0x001f18, 0x001f1d},
 	{0x001f20, 0x001f45},
@@ -4575,10 +4643,10 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x00a788, 0x00a788},
 	{0x00a78b, 0x00a78e},
 	{0x00a78f, 0x00a78f},
-	{0x00a790, 0x00a7ca},
+	{0x00a790, 0x00a7cd},
 	{0x00a7d0, 0x00a7d1},
 	{0x00a7d3, 0x00a7d3},
-	{0x00a7d5, 0x00a7d9},
+	{0x00a7d5, 0x00a7dc},
 	{0x00a7f2, 0x00a7f4},
 	{0x00a7f5, 0x00a7f6},
 	{0x00a7f7, 0x00a7f7},
@@ -4743,6 +4811,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x0105a3, 0x0105b1},
 	{0x0105b3, 0x0105b9},
 	{0x0105bb, 0x0105bc},
+	{0x0105c0, 0x0105f3},
 	{0x010600, 0x010736},
 	{0x010740, 0x010755},
 	{0x010760, 0x010767},
@@ -4783,9 +4852,18 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x010cc0, 0x010cf2},
 	{0x010d00, 0x010d23},
 	{0x010d24, 0x010d27},
+	{0x010d4a, 0x010d4d},
+	{0x010d4e, 0x010d4e},
+	{0x010d4f, 0x010d4f},
+	{0x010d50, 0x010d65},
+	{0x010d69, 0x010d69},
+	{0x010d6f, 0x010d6f},
+	{0x010d70, 0x010d85},
 	{0x010e80, 0x010ea9},
 	{0x010eab, 0x010eac},
 	{0x010eb0, 0x010eb1},
+	{0x010ec2, 0x010ec4},
+	{0x010efc, 0x010efc},
 	{0x010f00, 0x010f1c},
 	{0x010f27, 0x010f27},
 	{0x010f30, 0x010f45},
@@ -4866,6 +4944,19 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x011357, 0x011357},
 	{0x01135d, 0x011361},
 	{0x011362, 0x011363},
+	{0x011380, 0x011389},
+	{0x01138b, 0x01138b},
+	{0x01138e, 0x01138e},
+	{0x011390, 0x0113b5},
+	{0x0113b7, 0x0113b7},
+	{0x0113b8, 0x0113ba},
+	{0x0113bb, 0x0113c0},
+	{0x0113c2, 0x0113c2},
+	{0x0113c5, 0x0113c5},
+	{0x0113c7, 0x0113ca},
+	{0x0113cc, 0x0113cd},
+	{0x0113d1, 0x0113d1},
+	{0x0113d3, 0x0113d3},
 	{0x011400, 0x011434},
 	{0x011435, 0x011437},
 	{0x011438, 0x01143f},
@@ -4908,7 +4999,9 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x0116b0, 0x0116b5},
 	{0x0116b8, 0x0116b8},
 	{0x011700, 0x01171a},
-	{0x01171d, 0x01171f},
+	{0x01171d, 0x01171d},
+	{0x01171e, 0x01171e},
+	{0x01171f, 0x01171f},
 	{0x011720, 0x011721},
 	{0x011722, 0x011725},
 	{0x011726, 0x011726},
@@ -4956,6 +5049,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x011a97, 0x011a97},
 	{0x011a9d, 0x011a9d},
 	{0x011ab0, 0x011af8},
+	{0x011bc0, 0x011be0},
 	{0x011c00, 0x011c08},
 	{0x011c0a, 0x011c2e},
 	{0x011c2f, 0x011c2f},
@@ -5009,7 +5103,12 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x012f90, 0x012ff0},
 	{0x013000, 0x01342f},
 	{0x013441, 0x013446},
+	{0x013460, 0x0143fa},
 	{0x014400, 0x014646},
+	{0x016100, 0x01611d},
+	{0x01611e, 0x016129},
+	{0x01612a, 0x01612c},
+	{0x01612d, 0x01612e},
 	{0x016800, 0x016a38},
 	{0x016a40, 0x016a5e},
 	{0x016a70, 0x016abe},
@@ -5018,6 +5117,9 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x016b40, 0x016b43},
 	{0x016b63, 0x016b77},
 	{0x016b7d, 0x016b8f},
+	{0x016d40, 0x016d42},
+	{0x016d43, 0x016d6a},
+	{0x016d6b, 0x016d6c},
 	{0x016e40, 0x016e7f},
 	{0x016f00, 0x016f4a},
 	{0x016f4f, 0x016f4f},
@@ -5030,7 +5132,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x016ff0, 0x016ff1},
 	{0x017000, 0x0187f7},
 	{0x018800, 0x018cd5},
-	{0x018d00, 0x018d08},
+	{0x018cff, 0x018d08},
 	{0x01aff0, 0x01aff3},
 	{0x01aff5, 0x01affb},
 	{0x01affd, 0x01affe},
@@ -5093,6 +5195,8 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x01e2c0, 0x01e2eb},
 	{0x01e4d0, 0x01e4ea},
 	{0x01e4eb, 0x01e4eb},
+	{0x01e5d0, 0x01e5ed},
+	{0x01e5f0, 0x01e5f0},
 	{0x01e7e0, 0x01e7e6},
 	{0x01e7e8, 0x01e7eb},
 	{0x01e7ed, 0x01e7ee},
@@ -5149,7 +5253,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 };
 
 /* table of Unicode codepoint ranges of Lowercase characters */
-static const pg_unicode_range unicode_lowercase[686] =
+static const pg_unicode_range unicode_lowercase[690] =
 {
 	{0x000061, 0x00007a},
 	{0x0000aa, 0x0000aa},
@@ -5433,6 +5537,7 @@ static const pg_unicode_range unicode_lowercase[686] =
 	{0x0010fd, 0x0010ff},
 	{0x0013f8, 0x0013fd},
 	{0x001c80, 0x001c88},
+	{0x001c8a, 0x001c8a},
 	{0x001d00, 0x001d2b},
 	{0x001d2c, 0x001d6a},
 	{0x001d6b, 0x001d77},
@@ -5774,11 +5879,13 @@ static const pg_unicode_range unicode_lowercase[686] =
 	{0x00a7c3, 0x00a7c3},
 	{0x00a7c8, 0x00a7c8},
 	{0x00a7ca, 0x00a7ca},
+	{0x00a7cd, 0x00a7cd},
 	{0x00a7d1, 0x00a7d1},
 	{0x00a7d3, 0x00a7d3},
 	{0x00a7d5, 0x00a7d5},
 	{0x00a7d7, 0x00a7d7},
 	{0x00a7d9, 0x00a7d9},
+	{0x00a7db, 0x00a7db},
 	{0x00a7f2, 0x00a7f4},
 	{0x00a7f6, 0x00a7f6},
 	{0x00a7f8, 0x00a7f9},
@@ -5802,6 +5909,7 @@ static const pg_unicode_range unicode_lowercase[686] =
 	{0x010787, 0x0107b0},
 	{0x0107b2, 0x0107ba},
 	{0x010cc0, 0x010cf2},
+	{0x010d70, 0x010d85},
 	{0x0118c0, 0x0118df},
 	{0x016e60, 0x016e7f},
 	{0x01d41a, 0x01d433},
@@ -5840,7 +5948,7 @@ static const pg_unicode_range unicode_lowercase[686] =
 };
 
 /* table of Unicode codepoint ranges of Uppercase characters */
-static const pg_unicode_range unicode_uppercase[651] =
+static const pg_unicode_range unicode_uppercase[656] =
 {
 	{0x000041, 0x00005a},
 	{0x0000c0, 0x0000d6},
@@ -6118,6 +6226,7 @@ static const pg_unicode_range unicode_uppercase[651] =
 	{0x0010c7, 0x0010c7},
 	{0x0010cd, 0x0010cd},
 	{0x0013a0, 0x0013f5},
+	{0x001c89, 0x001c89},
 	{0x001c90, 0x001cba},
 	{0x001cbd, 0x001cbf},
 	{0x001e00, 0x001e00},
@@ -6444,9 +6553,12 @@ static const pg_unicode_range unicode_uppercase[651] =
 	{0x00a7c2, 0x00a7c2},
 	{0x00a7c4, 0x00a7c7},
 	{0x00a7c9, 0x00a7c9},
+	{0x00a7cb, 0x00a7cc},
 	{0x00a7d0, 0x00a7d0},
 	{0x00a7d6, 0x00a7d6},
 	{0x00a7d8, 0x00a7d8},
+	{0x00a7da, 0x00a7da},
+	{0x00a7dc, 0x00a7dc},
 	{0x00a7f5, 0x00a7f5},
 	{0x00ff21, 0x00ff3a},
 	{0x010400, 0x010427},
@@ -6456,6 +6568,7 @@ static const pg_unicode_range unicode_uppercase[651] =
 	{0x01058c, 0x010592},
 	{0x010594, 0x010595},
 	{0x010c80, 0x010cb2},
+	{0x010d50, 0x010d65},
 	{0x0118a0, 0x0118bf},
 	{0x016e40, 0x016e5f},
 	{0x01d400, 0x01d419},
@@ -6496,7 +6609,7 @@ static const pg_unicode_range unicode_uppercase[651] =
 };
 
 /* table of Unicode codepoint ranges of Case_Ignorable characters */
-static const pg_unicode_range unicode_case_ignorable[491] =
+static const pg_unicode_range unicode_case_ignorable[506] =
 {
 	{0x000027, 0x000027},
 	{0x00002e, 0x00002e},
@@ -6565,7 +6678,7 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x000859, 0x00085b},
 	{0x000888, 0x000888},
 	{0x000890, 0x000891},
-	{0x000898, 0x00089f},
+	{0x000897, 0x00089f},
 	{0x0008c9, 0x0008c9},
 	{0x0008ca, 0x0008e1},
 	{0x0008e2, 0x0008e2},
@@ -6846,8 +6959,11 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x010a3f, 0x010a3f},
 	{0x010ae5, 0x010ae6},
 	{0x010d24, 0x010d27},
+	{0x010d4e, 0x010d4e},
+	{0x010d69, 0x010d6d},
+	{0x010d6f, 0x010d6f},
 	{0x010eab, 0x010eac},
-	{0x010efd, 0x010eff},
+	{0x010efc, 0x010eff},
 	{0x010f46, 0x010f50},
 	{0x010f82, 0x010f85},
 	{0x011001, 0x011001},
@@ -6880,6 +6996,11 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x011340, 0x011340},
 	{0x011366, 0x01136c},
 	{0x011370, 0x011374},
+	{0x0113bb, 0x0113c0},
+	{0x0113ce, 0x0113ce},
+	{0x0113d0, 0x0113d0},
+	{0x0113d2, 0x0113d2},
+	{0x0113e1, 0x0113e2},
 	{0x011438, 0x01143f},
 	{0x011442, 0x011444},
 	{0x011446, 0x011446},
@@ -6899,7 +7020,8 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x0116ad, 0x0116ad},
 	{0x0116b0, 0x0116b5},
 	{0x0116b7, 0x0116b7},
-	{0x01171d, 0x01171f},
+	{0x01171d, 0x01171d},
+	{0x01171f, 0x01171f},
 	{0x011722, 0x011725},
 	{0x011727, 0x01172b},
 	{0x01182f, 0x011837},
@@ -6938,12 +7060,17 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x011f36, 0x011f3a},
 	{0x011f40, 0x011f40},
 	{0x011f42, 0x011f42},
+	{0x011f5a, 0x011f5a},
 	{0x013430, 0x01343f},
 	{0x013440, 0x013440},
 	{0x013447, 0x013455},
+	{0x01611e, 0x016129},
+	{0x01612d, 0x01612f},
 	{0x016af0, 0x016af4},
 	{0x016b30, 0x016b36},
 	{0x016b40, 0x016b43},
+	{0x016d40, 0x016d42},
+	{0x016d6b, 0x016d6c},
 	{0x016f4f, 0x016f4f},
 	{0x016f8f, 0x016f92},
 	{0x016f93, 0x016f9f},
@@ -6982,6 +7109,7 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x01e2ec, 0x01e2ef},
 	{0x01e4eb, 0x01e4eb},
 	{0x01e4ec, 0x01e4ef},
+	{0x01e5ee, 0x01e5ef},
 	{0x01e8d0, 0x01e8d6},
 	{0x01e944, 0x01e94a},
 	{0x01e94b, 0x01e94b},
diff --git a/src/include/common/unicode_east_asian_fw_table.h b/src/include/common/unicode_east_asian_fw_table.h
index dcd1f136eb7..db8bd0ad897 100644
--- a/src/include/common/unicode_east_asian_fw_table.h
+++ b/src/include/common/unicode_east_asian_fw_table.h
@@ -9,8 +9,10 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x23F3, 0x23F3},
 	{0x25FD, 0x25FE},
 	{0x2614, 0x2615},
+	{0x2630, 0x2637},
 	{0x2648, 0x2653},
 	{0x267F, 0x267F},
+	{0x268A, 0x268F},
 	{0x2693, 0x2693},
 	{0x26A1, 0x26A1},
 	{0x26AA, 0x26AB},
@@ -44,11 +46,10 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x3099, 0x30FF},
 	{0x3105, 0x312F},
 	{0x3131, 0x318E},
-	{0x3190, 0x31E3},
+	{0x3190, 0x31E5},
 	{0x31EF, 0x321E},
 	{0x3220, 0x3247},
-	{0x3250, 0x4DBF},
-	{0x4E00, 0xA48C},
+	{0x3250, 0xA48C},
 	{0xA490, 0xA4C6},
 	{0xA960, 0xA97C},
 	{0xAC00, 0xD7A3},
@@ -63,7 +64,7 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x16FF0, 0x16FF1},
 	{0x17000, 0x187F7},
 	{0x18800, 0x18CD5},
-	{0x18D00, 0x18D08},
+	{0x18CFF, 0x18D08},
 	{0x1AFF0, 0x1AFF3},
 	{0x1AFF5, 0x1AFFB},
 	{0x1AFFD, 0x1AFFE},
@@ -73,6 +74,8 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x1B155, 0x1B155},
 	{0x1B164, 0x1B167},
 	{0x1B170, 0x1B2FB},
+	{0x1D300, 0x1D356},
+	{0x1D360, 0x1D376},
 	{0x1F004, 0x1F004},
 	{0x1F0CF, 0x1F0CF},
 	{0x1F18E, 0x1F18E},
@@ -113,11 +116,10 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x1F93C, 0x1F945},
 	{0x1F947, 0x1F9FF},
 	{0x1FA70, 0x1FA7C},
-	{0x1FA80, 0x1FA88},
-	{0x1FA90, 0x1FABD},
-	{0x1FABF, 0x1FAC5},
-	{0x1FACE, 0x1FADB},
-	{0x1FAE0, 0x1FAE8},
+	{0x1FA80, 0x1FA89},
+	{0x1FA8F, 0x1FAC6},
+	{0x1FACE, 0x1FADC},
+	{0x1FADF, 0x1FAE9},
 	{0x1FAF0, 0x1FAF8},
 	{0x20000, 0x2FFFD},
 	{0x30000, 0x3FFFD},
diff --git a/src/include/common/unicode_nonspacing_table.h b/src/include/common/unicode_nonspacing_table.h
index 8d00e127fcd..d67f5b3f281 100644
--- a/src/include/common/unicode_nonspacing_table.h
+++ b/src/include/common/unicode_nonspacing_table.h
@@ -210,8 +210,9 @@ static const struct mbinterval nonspacing[] = {
 	{0x10A38, 0x10A3F},
 	{0x10AE5, 0x10AE6},
 	{0x10D24, 0x10D27},
+	{0x10D69, 0x10D6D},
 	{0x10EAB, 0x10EAC},
-	{0x10EFD, 0x10EFF},
+	{0x10EFC, 0x10EFF},
 	{0x10F46, 0x10F50},
 	{0x10F82, 0x10F85},
 	{0x11001, 0x11001},
@@ -242,6 +243,11 @@ static const struct mbinterval nonspacing[] = {
 	{0x1133B, 0x1133C},
 	{0x11340, 0x11340},
 	{0x11366, 0x11374},
+	{0x113BB, 0x113C0},
+	{0x113CE, 0x113CE},
+	{0x113D0, 0x113D0},
+	{0x113D2, 0x113D2},
+	{0x113E1, 0x113E2},
 	{0x11438, 0x1143F},
 	{0x11442, 0x11444},
 	{0x11446, 0x11446},
@@ -261,7 +267,8 @@ static const struct mbinterval nonspacing[] = {
 	{0x116AD, 0x116AD},
 	{0x116B0, 0x116B5},
 	{0x116B7, 0x116B7},
-	{0x1171D, 0x1171F},
+	{0x1171D, 0x1171D},
+	{0x1171F, 0x1171F},
 	{0x11722, 0x11725},
 	{0x11727, 0x1172B},
 	{0x1182F, 0x11837},
@@ -295,15 +302,19 @@ static const struct mbinterval nonspacing[] = {
 	{0x11F36, 0x11F3A},
 	{0x11F40, 0x11F40},
 	{0x11F42, 0x11F42},
+	{0x11F5A, 0x11F5A},
 	{0x13430, 0x13440},
 	{0x13447, 0x13455},
+	{0x1611E, 0x16129},
+	{0x1612D, 0x1612F},
 	{0x16AF0, 0x16AF4},
 	{0x16B30, 0x16B36},
 	{0x16F4F, 0x16F4F},
 	{0x16F8F, 0x16F92},
 	{0x16FE4, 0x16FE4},
 	{0x1BC9D, 0x1BC9E},
-	{0x1BCA0, 0x1CF46},
+	{0x1BCA0, 0x1BCA3},
+	{0x1CF00, 0x1CF46},
 	{0x1D167, 0x1D169},
 	{0x1D173, 0x1D182},
 	{0x1D185, 0x1D18B},
@@ -320,6 +331,7 @@ static const struct mbinterval nonspacing[] = {
 	{0x1E2AE, 0x1E2AE},
 	{0x1E2EC, 0x1E2EF},
 	{0x1E4EC, 0x1E4EF},
+	{0x1E5EE, 0x1E5EF},
 	{0x1E8D0, 0x1E8D6},
 	{0x1E944, 0x1E94A},
 	{0xE0001, 0xE01EF},
diff --git a/src/include/common/unicode_norm_table.h b/src/include/common/unicode_norm_table.h
index 7aff822b7cd..6c983135996 100644
--- a/src/include/common/unicode_norm_table.h
+++ b/src/include/common/unicode_norm_table.h
@@ -36,7 +36,7 @@ typedef struct
 #define DECOMPOSITION_IS_COMPAT(x) (((x)->dec_size_flags & DECOMP_COMPAT) != 0)
 
 /* Table of Unicode codepoints and their decompositions */
-static const pg_unicode_decomposition UnicodeDecompMain[6775] =
+static const pg_unicode_decomposition UnicodeDecompMain[6843] =
 {
 	{0x00A0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0020},
 	{0x00A8, 0, 2 | DECOMP_COMPAT, 0},
@@ -727,6 +727,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x0859, 220, 0, 0},
 	{0x085A, 220, 0, 0},
 	{0x085B, 220, 0, 0},
+	{0x0897, 230, 0, 0},
 	{0x0898, 230, 0, 0},
 	{0x0899, 220, 0, 0},
 	{0x089A, 220, 0, 0},
@@ -4636,6 +4637,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x10378, 230, 0, 0},
 	{0x10379, 230, 0, 0},
 	{0x1037A, 230, 0, 0},
+	{0x105C9, 0, 2, 4776},
+	{0x105E4, 0, 2, 4778},
 	{0x10781, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02D0},
 	{0x10782, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02D1},
 	{0x10783, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x00E6},
@@ -4662,18 +4665,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x10799, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02AA},
 	{0x1079A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02AB},
 	{0x1079B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x026C},
-	{0x1079C, 0, 1 | DECOMP_COMPAT, 4776},
+	{0x1079C, 0, 1 | DECOMP_COMPAT, 4780},
 	{0x1079D, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0xA78E},
 	{0x1079E, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x026E},
-	{0x1079F, 0, 1 | DECOMP_COMPAT, 4777},
+	{0x1079F, 0, 1 | DECOMP_COMPAT, 4781},
 	{0x107A0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x028E},
-	{0x107A1, 0, 1 | DECOMP_COMPAT, 4778},
+	{0x107A1, 0, 1 | DECOMP_COMPAT, 4782},
 	{0x107A2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x00F8},
 	{0x107A3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0276},
 	{0x107A4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0277},
 	{0x107A5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0071},
 	{0x107A6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x027A},
-	{0x107A7, 0, 1 | DECOMP_COMPAT, 4779},
+	{0x107A7, 0, 1 | DECOMP_COMPAT, 4783},
 	{0x107A8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x027D},
 	{0x107A9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x027E},
 	{0x107AA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0280},
@@ -4690,8 +4693,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x107B6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x01C0},
 	{0x107B7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x01C1},
 	{0x107B8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x01C2},
-	{0x107B9, 0, 1 | DECOMP_COMPAT, 4780},
-	{0x107BA, 0, 1 | DECOMP_COMPAT, 4781},
+	{0x107B9, 0, 1 | DECOMP_COMPAT, 4784},
+	{0x107BA, 0, 1 | DECOMP_COMPAT, 4785},
 	{0x10A0D, 220, 0, 0},
 	{0x10A0F, 230, 0, 0},
 	{0x10A38, 230, 0, 0},
@@ -4704,6 +4707,11 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x10D25, 230, 0, 0},
 	{0x10D26, 230, 0, 0},
 	{0x10D27, 230, 0, 0},
+	{0x10D69, 230, 0, 0},
+	{0x10D6A, 230, 0, 0},
+	{0x10D6B, 230, 0, 0},
+	{0x10D6C, 230, 0, 0},
+	{0x10D6D, 230, 0, 0},
 	{0x10EAB, 230, 0, 0},
 	{0x10EAC, 230, 0, 0},
 	{0x10EFD, 220, 0, 0},
@@ -4727,16 +4735,16 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x11046, 9, 0, 0},
 	{0x11070, 9, 0, 0},
 	{0x1107F, 9, 0, 0},
-	{0x1109A, 0, 2, 4782},
-	{0x1109C, 0, 2, 4784},
-	{0x110AB, 0, 2, 4786},
+	{0x1109A, 0, 2, 4786},
+	{0x1109C, 0, 2, 4788},
+	{0x110AB, 0, 2, 4790},
 	{0x110B9, 9, 0, 0},
 	{0x110BA, 7, 0, 0},
 	{0x11100, 230, 0, 0},
 	{0x11101, 230, 0, 0},
 	{0x11102, 230, 0, 0},
-	{0x1112E, 0, 2, 4788},
-	{0x1112F, 0, 2, 4790},
+	{0x1112E, 0, 2, 4792},
+	{0x1112F, 0, 2, 4794},
 	{0x11133, 9, 0, 0},
 	{0x11134, 9, 0, 0},
 	{0x11173, 7, 0, 0},
@@ -4748,8 +4756,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x112EA, 9, 0, 0},
 	{0x1133B, 7, 0, 0},
 	{0x1133C, 7, 0, 0},
-	{0x1134B, 0, 2, 4792},
-	{0x1134C, 0, 2, 4794},
+	{0x1134B, 0, 2, 4796},
+	{0x1134C, 0, 2, 4798},
 	{0x1134D, 9, 0, 0},
 	{0x11366, 230, 0, 0},
 	{0x11367, 230, 0, 0},
@@ -4763,16 +4771,26 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x11372, 230, 0, 0},
 	{0x11373, 230, 0, 0},
 	{0x11374, 230, 0, 0},
+	{0x11383, 0, 2, 4800},
+	{0x11385, 0, 2, 4802},
+	{0x1138E, 0, 2, 4804},
+	{0x11391, 0, 2, 4806},
+	{0x113C5, 0, 2, 4808},
+	{0x113C7, 0, 2, 4810},
+	{0x113C8, 0, 2, 4812},
+	{0x113CE, 9, 0, 0},
+	{0x113CF, 9, 0, 0},
+	{0x113D0, 9, 0, 0},
 	{0x11442, 9, 0, 0},
 	{0x11446, 7, 0, 0},
 	{0x1145E, 230, 0, 0},
-	{0x114BB, 0, 2, 4796},
-	{0x114BC, 0, 2, 4798},
-	{0x114BE, 0, 2, 4800},
+	{0x114BB, 0, 2, 4814},
+	{0x114BC, 0, 2, 4816},
+	{0x114BE, 0, 2, 4818},
 	{0x114C2, 9, 0, 0},
 	{0x114C3, 7, 0, 0},
-	{0x115BA, 0, 2, 4802},
-	{0x115BB, 0, 2, 4804},
+	{0x115BA, 0, 2, 4820},
+	{0x115BB, 0, 2, 4822},
 	{0x115BF, 9, 0, 0},
 	{0x115C0, 7, 0, 0},
 	{0x1163F, 9, 0, 0},
@@ -4781,7 +4799,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1172B, 9, 0, 0},
 	{0x11839, 9, 0, 0},
 	{0x1183A, 7, 0, 0},
-	{0x11938, 0, 2, 4806},
+	{0x11938, 0, 2, 4824},
 	{0x1193D, 9, 0, 0},
 	{0x1193E, 9, 0, 0},
 	{0x11943, 7, 0, 0},
@@ -4796,6 +4814,15 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x11D97, 9, 0, 0},
 	{0x11F41, 9, 0, 0},
 	{0x11F42, 9, 0, 0},
+	{0x16121, 0, 2, 4826},
+	{0x16122, 0, 2, 4828},
+	{0x16123, 0, 2, 4830},
+	{0x16124, 0, 2, 4832},
+	{0x16125, 0, 2, 4834},
+	{0x16126, 0, 2, 4836},
+	{0x16127, 0, 2, 4838},
+	{0x16128, 0, 2, 4840},
+	{0x1612F, 9, 0, 0},
 	{0x16AF0, 1, 0, 0},
 	{0x16AF1, 1, 0, 0},
 	{0x16AF2, 1, 0, 0},
@@ -4808,16 +4835,55 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x16B34, 230, 0, 0},
 	{0x16B35, 230, 0, 0},
 	{0x16B36, 230, 0, 0},
+	{0x16D68, 0, 2, 4842},
+	{0x16D69, 0, 2, 4844},
+	{0x16D6A, 0, 2, 4846},
 	{0x16FF0, 6, 0, 0},
 	{0x16FF1, 6, 0, 0},
 	{0x1BC9E, 1, 0, 0},
-	{0x1D15E, 0, 2 | DECOMP_NO_COMPOSE, 4808},	/* in exclusion list */
-	{0x1D15F, 0, 2 | DECOMP_NO_COMPOSE, 4810},	/* in exclusion list */
-	{0x1D160, 0, 2 | DECOMP_NO_COMPOSE, 4812},	/* in exclusion list */
-	{0x1D161, 0, 2 | DECOMP_NO_COMPOSE, 4814},	/* in exclusion list */
-	{0x1D162, 0, 2 | DECOMP_NO_COMPOSE, 4816},	/* in exclusion list */
-	{0x1D163, 0, 2 | DECOMP_NO_COMPOSE, 4818},	/* in exclusion list */
-	{0x1D164, 0, 2 | DECOMP_NO_COMPOSE, 4820},	/* in exclusion list */
+	{0x1CCD6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0041},
+	{0x1CCD7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0042},
+	{0x1CCD8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0043},
+	{0x1CCD9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0044},
+	{0x1CCDA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0045},
+	{0x1CCDB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0046},
+	{0x1CCDC, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0047},
+	{0x1CCDD, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0048},
+	{0x1CCDE, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0049},
+	{0x1CCDF, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004A},
+	{0x1CCE0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004B},
+	{0x1CCE1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004C},
+	{0x1CCE2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004D},
+	{0x1CCE3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004E},
+	{0x1CCE4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004F},
+	{0x1CCE5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0050},
+	{0x1CCE6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0051},
+	{0x1CCE7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0052},
+	{0x1CCE8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0053},
+	{0x1CCE9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0054},
+	{0x1CCEA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0055},
+	{0x1CCEB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0056},
+	{0x1CCEC, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0057},
+	{0x1CCED, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0058},
+	{0x1CCEE, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0059},
+	{0x1CCEF, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x005A},
+	{0x1CCF0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0030},
+	{0x1CCF1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0031},
+	{0x1CCF2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0032},
+	{0x1CCF3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0033},
+	{0x1CCF4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0034},
+	{0x1CCF5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0035},
+	{0x1CCF6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0036},
+	{0x1CCF7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0037},
+	{0x1CCF8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0038},
+	{0x1CCF9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0039},
+	{0x1D15E, 0, 2 | DECOMP_NO_COMPOSE, 4848},	/* in exclusion list */
+	{0x1D15F, 0, 2 | DECOMP_NO_COMPOSE, 4850},	/* in exclusion list */
+	{0x1D160, 0, 2 | DECOMP_NO_COMPOSE, 4852},	/* in exclusion list */
+	{0x1D161, 0, 2 | DECOMP_NO_COMPOSE, 4854},	/* in exclusion list */
+	{0x1D162, 0, 2 | DECOMP_NO_COMPOSE, 4856},	/* in exclusion list */
+	{0x1D163, 0, 2 | DECOMP_NO_COMPOSE, 4858},	/* in exclusion list */
+	{0x1D164, 0, 2 | DECOMP_NO_COMPOSE, 4860},	/* in exclusion list */
 	{0x1D165, 216, 0, 0},
 	{0x1D166, 216, 0, 0},
 	{0x1D167, 1, 0, 0},
@@ -4848,12 +4914,12 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1D1AB, 230, 0, 0},
 	{0x1D1AC, 230, 0, 0},
 	{0x1D1AD, 230, 0, 0},
-	{0x1D1BB, 0, 2 | DECOMP_NO_COMPOSE, 4822},	/* in exclusion list */
-	{0x1D1BC, 0, 2 | DECOMP_NO_COMPOSE, 4824},	/* in exclusion list */
-	{0x1D1BD, 0, 2 | DECOMP_NO_COMPOSE, 4826},	/* in exclusion list */
-	{0x1D1BE, 0, 2 | DECOMP_NO_COMPOSE, 4828},	/* in exclusion list */
-	{0x1D1BF, 0, 2 | DECOMP_NO_COMPOSE, 4830},	/* in exclusion list */
-	{0x1D1C0, 0, 2 | DECOMP_NO_COMPOSE, 4832},	/* in exclusion list */
+	{0x1D1BB, 0, 2 | DECOMP_NO_COMPOSE, 4862},	/* in exclusion list */
+	{0x1D1BC, 0, 2 | DECOMP_NO_COMPOSE, 4864},	/* in exclusion list */
+	{0x1D1BD, 0, 2 | DECOMP_NO_COMPOSE, 4866},	/* in exclusion list */
+	{0x1D1BE, 0, 2 | DECOMP_NO_COMPOSE, 4868},	/* in exclusion list */
+	{0x1D1BF, 0, 2 | DECOMP_NO_COMPOSE, 4870},	/* in exclusion list */
+	{0x1D1C0, 0, 2 | DECOMP_NO_COMPOSE, 4872},	/* in exclusion list */
 	{0x1D242, 230, 0, 0},
 	{0x1D243, 230, 0, 0},
 	{0x1D244, 230, 0, 0},
@@ -5970,6 +6036,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1E4ED, 232, 0, 0},
 	{0x1E4EE, 220, 0, 0},
 	{0x1E4EF, 230, 0, 0},
+	{0x1E5EE, 230, 0, 0},
+	{0x1E5EF, 220, 0, 0},
 	{0x1E8D0, 220, 0, 0},
 	{0x1E8D1, 220, 0, 0},
 	{0x1E8D2, 220, 0, 0},
@@ -6125,48 +6193,48 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1EEB9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0636},
 	{0x1EEBA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0638},
 	{0x1EEBB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x063A},
-	{0x1F100, 0, 2 | DECOMP_COMPAT, 4834},
-	{0x1F101, 0, 2 | DECOMP_COMPAT, 4836},
-	{0x1F102, 0, 2 | DECOMP_COMPAT, 4838},
-	{0x1F103, 0, 2 | DECOMP_COMPAT, 4840},
-	{0x1F104, 0, 2 | DECOMP_COMPAT, 4842},
-	{0x1F105, 0, 2 | DECOMP_COMPAT, 4844},
-	{0x1F106, 0, 2 | DECOMP_COMPAT, 4846},
-	{0x1F107, 0, 2 | DECOMP_COMPAT, 4848},
-	{0x1F108, 0, 2 | DECOMP_COMPAT, 4850},
-	{0x1F109, 0, 2 | DECOMP_COMPAT, 4852},
-	{0x1F10A, 0, 2 | DECOMP_COMPAT, 4854},
-	{0x1F110, 0, 3 | DECOMP_COMPAT, 4856},
-	{0x1F111, 0, 3 | DECOMP_COMPAT, 4859},
-	{0x1F112, 0, 3 | DECOMP_COMPAT, 4862},
-	{0x1F113, 0, 3 | DECOMP_COMPAT, 4865},
-	{0x1F114, 0, 3 | DECOMP_COMPAT, 4868},
-	{0x1F115, 0, 3 | DECOMP_COMPAT, 4871},
-	{0x1F116, 0, 3 | DECOMP_COMPAT, 4874},
-	{0x1F117, 0, 3 | DECOMP_COMPAT, 4877},
-	{0x1F118, 0, 3 | DECOMP_COMPAT, 4880},
-	{0x1F119, 0, 3 | DECOMP_COMPAT, 4883},
-	{0x1F11A, 0, 3 | DECOMP_COMPAT, 4886},
-	{0x1F11B, 0, 3 | DECOMP_COMPAT, 4889},
-	{0x1F11C, 0, 3 | DECOMP_COMPAT, 4892},
-	{0x1F11D, 0, 3 | DECOMP_COMPAT, 4895},
-	{0x1F11E, 0, 3 | DECOMP_COMPAT, 4898},
-	{0x1F11F, 0, 3 | DECOMP_COMPAT, 4901},
-	{0x1F120, 0, 3 | DECOMP_COMPAT, 4904},
-	{0x1F121, 0, 3 | DECOMP_COMPAT, 4907},
-	{0x1F122, 0, 3 | DECOMP_COMPAT, 4910},
-	{0x1F123, 0, 3 | DECOMP_COMPAT, 4913},
-	{0x1F124, 0, 3 | DECOMP_COMPAT, 4916},
-	{0x1F125, 0, 3 | DECOMP_COMPAT, 4919},
-	{0x1F126, 0, 3 | DECOMP_COMPAT, 4922},
-	{0x1F127, 0, 3 | DECOMP_COMPAT, 4925},
-	{0x1F128, 0, 3 | DECOMP_COMPAT, 4928},
-	{0x1F129, 0, 3 | DECOMP_COMPAT, 4931},
-	{0x1F12A, 0, 3 | DECOMP_COMPAT, 4934},
+	{0x1F100, 0, 2 | DECOMP_COMPAT, 4874},
+	{0x1F101, 0, 2 | DECOMP_COMPAT, 4876},
+	{0x1F102, 0, 2 | DECOMP_COMPAT, 4878},
+	{0x1F103, 0, 2 | DECOMP_COMPAT, 4880},
+	{0x1F104, 0, 2 | DECOMP_COMPAT, 4882},
+	{0x1F105, 0, 2 | DECOMP_COMPAT, 4884},
+	{0x1F106, 0, 2 | DECOMP_COMPAT, 4886},
+	{0x1F107, 0, 2 | DECOMP_COMPAT, 4888},
+	{0x1F108, 0, 2 | DECOMP_COMPAT, 4890},
+	{0x1F109, 0, 2 | DECOMP_COMPAT, 4892},
+	{0x1F10A, 0, 2 | DECOMP_COMPAT, 4894},
+	{0x1F110, 0, 3 | DECOMP_COMPAT, 4896},
+	{0x1F111, 0, 3 | DECOMP_COMPAT, 4899},
+	{0x1F112, 0, 3 | DECOMP_COMPAT, 4902},
+	{0x1F113, 0, 3 | DECOMP_COMPAT, 4905},
+	{0x1F114, 0, 3 | DECOMP_COMPAT, 4908},
+	{0x1F115, 0, 3 | DECOMP_COMPAT, 4911},
+	{0x1F116, 0, 3 | DECOMP_COMPAT, 4914},
+	{0x1F117, 0, 3 | DECOMP_COMPAT, 4917},
+	{0x1F118, 0, 3 | DECOMP_COMPAT, 4920},
+	{0x1F119, 0, 3 | DECOMP_COMPAT, 4923},
+	{0x1F11A, 0, 3 | DECOMP_COMPAT, 4926},
+	{0x1F11B, 0, 3 | DECOMP_COMPAT, 4929},
+	{0x1F11C, 0, 3 | DECOMP_COMPAT, 4932},
+	{0x1F11D, 0, 3 | DECOMP_COMPAT, 4935},
+	{0x1F11E, 0, 3 | DECOMP_COMPAT, 4938},
+	{0x1F11F, 0, 3 | DECOMP_COMPAT, 4941},
+	{0x1F120, 0, 3 | DECOMP_COMPAT, 4944},
+	{0x1F121, 0, 3 | DECOMP_COMPAT, 4947},
+	{0x1F122, 0, 3 | DECOMP_COMPAT, 4950},
+	{0x1F123, 0, 3 | DECOMP_COMPAT, 4953},
+	{0x1F124, 0, 3 | DECOMP_COMPAT, 4956},
+	{0x1F125, 0, 3 | DECOMP_COMPAT, 4959},
+	{0x1F126, 0, 3 | DECOMP_COMPAT, 4962},
+	{0x1F127, 0, 3 | DECOMP_COMPAT, 4965},
+	{0x1F128, 0, 3 | DECOMP_COMPAT, 4968},
+	{0x1F129, 0, 3 | DECOMP_COMPAT, 4971},
+	{0x1F12A, 0, 3 | DECOMP_COMPAT, 4974},
 	{0x1F12B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0043},
 	{0x1F12C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0052},
-	{0x1F12D, 0, 2 | DECOMP_COMPAT, 4937},
-	{0x1F12E, 0, 2 | DECOMP_COMPAT, 4939},
+	{0x1F12D, 0, 2 | DECOMP_COMPAT, 4977},
+	{0x1F12E, 0, 2 | DECOMP_COMPAT, 4979},
 	{0x1F130, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0041},
 	{0x1F131, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0042},
 	{0x1F132, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0043},
@@ -6193,18 +6261,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1F147, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0058},
 	{0x1F148, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0059},
 	{0x1F149, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x005A},
-	{0x1F14A, 0, 2 | DECOMP_COMPAT, 4941},
-	{0x1F14B, 0, 2 | DECOMP_COMPAT, 4943},
-	{0x1F14C, 0, 2 | DECOMP_COMPAT, 4945},
-	{0x1F14D, 0, 2 | DECOMP_COMPAT, 4947},
-	{0x1F14E, 0, 3 | DECOMP_COMPAT, 4949},
-	{0x1F14F, 0, 2 | DECOMP_COMPAT, 4952},
-	{0x1F16A, 0, 2 | DECOMP_COMPAT, 4954},
-	{0x1F16B, 0, 2 | DECOMP_COMPAT, 4956},
-	{0x1F16C, 0, 2 | DECOMP_COMPAT, 4958},
-	{0x1F190, 0, 2 | DECOMP_COMPAT, 4960},
-	{0x1F200, 0, 2 | DECOMP_COMPAT, 4962},
-	{0x1F201, 0, 2 | DECOMP_COMPAT, 4964},
+	{0x1F14A, 0, 2 | DECOMP_COMPAT, 4981},
+	{0x1F14B, 0, 2 | DECOMP_COMPAT, 4983},
+	{0x1F14C, 0, 2 | DECOMP_COMPAT, 4985},
+	{0x1F14D, 0, 2 | DECOMP_COMPAT, 4987},
+	{0x1F14E, 0, 3 | DECOMP_COMPAT, 4989},
+	{0x1F14F, 0, 2 | DECOMP_COMPAT, 4992},
+	{0x1F16A, 0, 2 | DECOMP_COMPAT, 4994},
+	{0x1F16B, 0, 2 | DECOMP_COMPAT, 4996},
+	{0x1F16C, 0, 2 | DECOMP_COMPAT, 4998},
+	{0x1F190, 0, 2 | DECOMP_COMPAT, 5000},
+	{0x1F200, 0, 2 | DECOMP_COMPAT, 5002},
+	{0x1F201, 0, 2 | DECOMP_COMPAT, 5004},
 	{0x1F202, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x30B5},
 	{0x1F210, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x624B},
 	{0x1F211, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5B57},
@@ -6250,15 +6318,15 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1F239, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5272},
 	{0x1F23A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x55B6},
 	{0x1F23B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x914D},
-	{0x1F240, 0, 3 | DECOMP_COMPAT, 4966},
-	{0x1F241, 0, 3 | DECOMP_COMPAT, 4969},
-	{0x1F242, 0, 3 | DECOMP_COMPAT, 4972},
-	{0x1F243, 0, 3 | DECOMP_COMPAT, 4975},
-	{0x1F244, 0, 3 | DECOMP_COMPAT, 4978},
-	{0x1F245, 0, 3 | DECOMP_COMPAT, 4981},
-	{0x1F246, 0, 3 | DECOMP_COMPAT, 4984},
-	{0x1F247, 0, 3 | DECOMP_COMPAT, 4987},
-	{0x1F248, 0, 3 | DECOMP_COMPAT, 4990},
+	{0x1F240, 0, 3 | DECOMP_COMPAT, 5006},
+	{0x1F241, 0, 3 | DECOMP_COMPAT, 5009},
+	{0x1F242, 0, 3 | DECOMP_COMPAT, 5012},
+	{0x1F243, 0, 3 | DECOMP_COMPAT, 5015},
+	{0x1F244, 0, 3 | DECOMP_COMPAT, 5018},
+	{0x1F245, 0, 3 | DECOMP_COMPAT, 5021},
+	{0x1F246, 0, 3 | DECOMP_COMPAT, 5024},
+	{0x1F247, 0, 3 | DECOMP_COMPAT, 5027},
+	{0x1F248, 0, 3 | DECOMP_COMPAT, 5030},
 	{0x1F250, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5F97},
 	{0x1F251, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x53EF},
 	{0x1FBF0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0030},
@@ -6274,7 +6342,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F800, 0, 1 | DECOMP_INLINE, 0x4E3D},
 	{0x2F801, 0, 1 | DECOMP_INLINE, 0x4E38},
 	{0x2F802, 0, 1 | DECOMP_INLINE, 0x4E41},
-	{0x2F803, 0, 1, 4993},
+	{0x2F803, 0, 1, 5033},
 	{0x2F804, 0, 1 | DECOMP_INLINE, 0x4F60},
 	{0x2F805, 0, 1 | DECOMP_INLINE, 0x4FAE},
 	{0x2F806, 0, 1 | DECOMP_INLINE, 0x4FBB},
@@ -6284,22 +6352,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F80A, 0, 1 | DECOMP_INLINE, 0x50E7},
 	{0x2F80B, 0, 1 | DECOMP_INLINE, 0x50CF},
 	{0x2F80C, 0, 1 | DECOMP_INLINE, 0x349E},
-	{0x2F80D, 0, 1, 4994},
+	{0x2F80D, 0, 1, 5034},
 	{0x2F80E, 0, 1 | DECOMP_INLINE, 0x514D},
 	{0x2F80F, 0, 1 | DECOMP_INLINE, 0x5154},
 	{0x2F810, 0, 1 | DECOMP_INLINE, 0x5164},
 	{0x2F811, 0, 1 | DECOMP_INLINE, 0x5177},
-	{0x2F812, 0, 1, 4995},
+	{0x2F812, 0, 1, 5035},
 	{0x2F813, 0, 1 | DECOMP_INLINE, 0x34B9},
 	{0x2F814, 0, 1 | DECOMP_INLINE, 0x5167},
 	{0x2F815, 0, 1 | DECOMP_INLINE, 0x518D},
-	{0x2F816, 0, 1, 4996},
+	{0x2F816, 0, 1, 5036},
 	{0x2F817, 0, 1 | DECOMP_INLINE, 0x5197},
 	{0x2F818, 0, 1 | DECOMP_INLINE, 0x51A4},
 	{0x2F819, 0, 1 | DECOMP_INLINE, 0x4ECC},
 	{0x2F81A, 0, 1 | DECOMP_INLINE, 0x51AC},
 	{0x2F81B, 0, 1 | DECOMP_INLINE, 0x51B5},
-	{0x2F81C, 0, 1, 4997},
+	{0x2F81C, 0, 1, 5037},
 	{0x2F81D, 0, 1 | DECOMP_INLINE, 0x51F5},
 	{0x2F81E, 0, 1 | DECOMP_INLINE, 0x5203},
 	{0x2F81F, 0, 1 | DECOMP_INLINE, 0x34DF},
@@ -6323,11 +6391,11 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F831, 0, 1 | DECOMP_INLINE, 0x537F},
 	{0x2F832, 0, 1 | DECOMP_INLINE, 0x537F},
 	{0x2F833, 0, 1 | DECOMP_INLINE, 0x537F},
-	{0x2F834, 0, 1, 4998},
+	{0x2F834, 0, 1, 5038},
 	{0x2F835, 0, 1 | DECOMP_INLINE, 0x7070},
 	{0x2F836, 0, 1 | DECOMP_INLINE, 0x53CA},
 	{0x2F837, 0, 1 | DECOMP_INLINE, 0x53DF},
-	{0x2F838, 0, 1, 4999},
+	{0x2F838, 0, 1, 5039},
 	{0x2F839, 0, 1 | DECOMP_INLINE, 0x53EB},
 	{0x2F83A, 0, 1 | DECOMP_INLINE, 0x53F1},
 	{0x2F83B, 0, 1 | DECOMP_INLINE, 0x5406},
@@ -6360,15 +6428,15 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F856, 0, 1 | DECOMP_INLINE, 0x5832},
 	{0x2F857, 0, 1 | DECOMP_INLINE, 0x5831},
 	{0x2F858, 0, 1 | DECOMP_INLINE, 0x58AC},
-	{0x2F859, 0, 1, 5000},
+	{0x2F859, 0, 1, 5040},
 	{0x2F85A, 0, 1 | DECOMP_INLINE, 0x58F2},
 	{0x2F85B, 0, 1 | DECOMP_INLINE, 0x58F7},
 	{0x2F85C, 0, 1 | DECOMP_INLINE, 0x5906},
 	{0x2F85D, 0, 1 | DECOMP_INLINE, 0x591A},
 	{0x2F85E, 0, 1 | DECOMP_INLINE, 0x5922},
 	{0x2F85F, 0, 1 | DECOMP_INLINE, 0x5962},
-	{0x2F860, 0, 1, 5001},
-	{0x2F861, 0, 1, 5002},
+	{0x2F860, 0, 1, 5041},
+	{0x2F861, 0, 1, 5042},
 	{0x2F862, 0, 1 | DECOMP_INLINE, 0x59EC},
 	{0x2F863, 0, 1 | DECOMP_INLINE, 0x5A1B},
 	{0x2F864, 0, 1 | DECOMP_INLINE, 0x5A27},
@@ -6379,12 +6447,12 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F869, 0, 1 | DECOMP_INLINE, 0x5B08},
 	{0x2F86A, 0, 1 | DECOMP_INLINE, 0x5B3E},
 	{0x2F86B, 0, 1 | DECOMP_INLINE, 0x5B3E},
-	{0x2F86C, 0, 1, 5003},
+	{0x2F86C, 0, 1, 5043},
 	{0x2F86D, 0, 1 | DECOMP_INLINE, 0x5BC3},
 	{0x2F86E, 0, 1 | DECOMP_INLINE, 0x5BD8},
 	{0x2F86F, 0, 1 | DECOMP_INLINE, 0x5BE7},
 	{0x2F870, 0, 1 | DECOMP_INLINE, 0x5BF3},
-	{0x2F871, 0, 1, 5004},
+	{0x2F871, 0, 1, 5044},
 	{0x2F872, 0, 1 | DECOMP_INLINE, 0x5BFF},
 	{0x2F873, 0, 1 | DECOMP_INLINE, 0x5C06},
 	{0x2F874, 0, 1 | DECOMP_INLINE, 0x5F53},
@@ -6394,9 +6462,9 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F878, 0, 1 | DECOMP_INLINE, 0x5C6E},
 	{0x2F879, 0, 1 | DECOMP_INLINE, 0x5CC0},
 	{0x2F87A, 0, 1 | DECOMP_INLINE, 0x5C8D},
-	{0x2F87B, 0, 1, 5005},
+	{0x2F87B, 0, 1, 5045},
 	{0x2F87C, 0, 1 | DECOMP_INLINE, 0x5D43},
-	{0x2F87D, 0, 1, 5006},
+	{0x2F87D, 0, 1, 5046},
 	{0x2F87E, 0, 1 | DECOMP_INLINE, 0x5D6E},
 	{0x2F87F, 0, 1 | DECOMP_INLINE, 0x5D6B},
 	{0x2F880, 0, 1 | DECOMP_INLINE, 0x5D7C},
@@ -6408,22 +6476,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F886, 0, 1 | DECOMP_INLINE, 0x5E3D},
 	{0x2F887, 0, 1 | DECOMP_INLINE, 0x5E69},
 	{0x2F888, 0, 1 | DECOMP_INLINE, 0x3862},
-	{0x2F889, 0, 1, 5007},
+	{0x2F889, 0, 1, 5047},
 	{0x2F88A, 0, 1 | DECOMP_INLINE, 0x387C},
 	{0x2F88B, 0, 1 | DECOMP_INLINE, 0x5EB0},
 	{0x2F88C, 0, 1 | DECOMP_INLINE, 0x5EB3},
 	{0x2F88D, 0, 1 | DECOMP_INLINE, 0x5EB6},
 	{0x2F88E, 0, 1 | DECOMP_INLINE, 0x5ECA},
-	{0x2F88F, 0, 1, 5008},
+	{0x2F88F, 0, 1, 5048},
 	{0x2F890, 0, 1 | DECOMP_INLINE, 0x5EFE},
-	{0x2F891, 0, 1, 5009},
-	{0x2F892, 0, 1, 5010},
+	{0x2F891, 0, 1, 5049},
+	{0x2F892, 0, 1, 5050},
 	{0x2F893, 0, 1 | DECOMP_INLINE, 0x8201},
 	{0x2F894, 0, 1 | DECOMP_INLINE, 0x5F22},
 	{0x2F895, 0, 1 | DECOMP_INLINE, 0x5F22},
 	{0x2F896, 0, 1 | DECOMP_INLINE, 0x38C7},
-	{0x2F897, 0, 1, 5011},
-	{0x2F898, 0, 1, 5012},
+	{0x2F897, 0, 1, 5051},
+	{0x2F898, 0, 1, 5052},
 	{0x2F899, 0, 1 | DECOMP_INLINE, 0x5F62},
 	{0x2F89A, 0, 1 | DECOMP_INLINE, 0x5F6B},
 	{0x2F89B, 0, 1 | DECOMP_INLINE, 0x38E3},
@@ -6435,7 +6503,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8A1, 0, 1 | DECOMP_INLINE, 0x393A},
 	{0x2F8A2, 0, 1 | DECOMP_INLINE, 0x391C},
 	{0x2F8A3, 0, 1 | DECOMP_INLINE, 0x6094},
-	{0x2F8A4, 0, 1, 5013},
+	{0x2F8A4, 0, 1, 5053},
 	{0x2F8A5, 0, 1 | DECOMP_INLINE, 0x60C7},
 	{0x2F8A6, 0, 1 | DECOMP_INLINE, 0x6148},
 	{0x2F8A7, 0, 1 | DECOMP_INLINE, 0x614C},
@@ -6455,13 +6523,13 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8B5, 0, 1 | DECOMP_INLINE, 0x62B1},
 	{0x2F8B6, 0, 1 | DECOMP_INLINE, 0x62D4},
 	{0x2F8B7, 0, 1 | DECOMP_INLINE, 0x6350},
-	{0x2F8B8, 0, 1, 5014},
+	{0x2F8B8, 0, 1, 5054},
 	{0x2F8B9, 0, 1 | DECOMP_INLINE, 0x633D},
 	{0x2F8BA, 0, 1 | DECOMP_INLINE, 0x62FC},
 	{0x2F8BB, 0, 1 | DECOMP_INLINE, 0x6368},
 	{0x2F8BC, 0, 1 | DECOMP_INLINE, 0x6383},
 	{0x2F8BD, 0, 1 | DECOMP_INLINE, 0x63E4},
-	{0x2F8BE, 0, 1, 5015},
+	{0x2F8BE, 0, 1, 5055},
 	{0x2F8BF, 0, 1 | DECOMP_INLINE, 0x6422},
 	{0x2F8C0, 0, 1 | DECOMP_INLINE, 0x63C5},
 	{0x2F8C1, 0, 1 | DECOMP_INLINE, 0x63A9},
@@ -6473,7 +6541,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8C7, 0, 1 | DECOMP_INLINE, 0x3A6C},
 	{0x2F8C8, 0, 1 | DECOMP_INLINE, 0x654F},
 	{0x2F8C9, 0, 1 | DECOMP_INLINE, 0x656C},
-	{0x2F8CA, 0, 1, 5016},
+	{0x2F8CA, 0, 1, 5056},
 	{0x2F8CB, 0, 1 | DECOMP_INLINE, 0x65E3},
 	{0x2F8CC, 0, 1 | DECOMP_INLINE, 0x66F8},
 	{0x2F8CD, 0, 1 | DECOMP_INLINE, 0x6649},
@@ -6492,13 +6560,13 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8DA, 0, 1 | DECOMP_INLINE, 0x6721},
 	{0x2F8DB, 0, 1 | DECOMP_INLINE, 0x675E},
 	{0x2F8DC, 0, 1 | DECOMP_INLINE, 0x6753},
-	{0x2F8DD, 0, 1, 5017},
+	{0x2F8DD, 0, 1, 5057},
 	{0x2F8DE, 0, 1 | DECOMP_INLINE, 0x3B49},
 	{0x2F8DF, 0, 1 | DECOMP_INLINE, 0x67FA},
 	{0x2F8E0, 0, 1 | DECOMP_INLINE, 0x6785},
 	{0x2F8E1, 0, 1 | DECOMP_INLINE, 0x6852},
 	{0x2F8E2, 0, 1 | DECOMP_INLINE, 0x6885},
-	{0x2F8E3, 0, 1, 5018},
+	{0x2F8E3, 0, 1, 5058},
 	{0x2F8E4, 0, 1 | DECOMP_INLINE, 0x688E},
 	{0x2F8E5, 0, 1 | DECOMP_INLINE, 0x681F},
 	{0x2F8E6, 0, 1 | DECOMP_INLINE, 0x6914},
@@ -6507,22 +6575,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8E9, 0, 1 | DECOMP_INLINE, 0x69A3},
 	{0x2F8EA, 0, 1 | DECOMP_INLINE, 0x69EA},
 	{0x2F8EB, 0, 1 | DECOMP_INLINE, 0x6AA8},
-	{0x2F8EC, 0, 1, 5019},
+	{0x2F8EC, 0, 1, 5059},
 	{0x2F8ED, 0, 1 | DECOMP_INLINE, 0x6ADB},
 	{0x2F8EE, 0, 1 | DECOMP_INLINE, 0x3C18},
 	{0x2F8EF, 0, 1 | DECOMP_INLINE, 0x6B21},
-	{0x2F8F0, 0, 1, 5020},
+	{0x2F8F0, 0, 1, 5060},
 	{0x2F8F1, 0, 1 | DECOMP_INLINE, 0x6B54},
 	{0x2F8F2, 0, 1 | DECOMP_INLINE, 0x3C4E},
 	{0x2F8F3, 0, 1 | DECOMP_INLINE, 0x6B72},
 	{0x2F8F4, 0, 1 | DECOMP_INLINE, 0x6B9F},
 	{0x2F8F5, 0, 1 | DECOMP_INLINE, 0x6BBA},
 	{0x2F8F6, 0, 1 | DECOMP_INLINE, 0x6BBB},
-	{0x2F8F7, 0, 1, 5021},
-	{0x2F8F8, 0, 1, 5022},
-	{0x2F8F9, 0, 1, 5023},
+	{0x2F8F7, 0, 1, 5061},
+	{0x2F8F8, 0, 1, 5062},
+	{0x2F8F9, 0, 1, 5063},
 	{0x2F8FA, 0, 1 | DECOMP_INLINE, 0x6C4E},
-	{0x2F8FB, 0, 1, 5024},
+	{0x2F8FB, 0, 1, 5064},
 	{0x2F8FC, 0, 1 | DECOMP_INLINE, 0x6CBF},
 	{0x2F8FD, 0, 1 | DECOMP_INLINE, 0x6CCD},
 	{0x2F8FE, 0, 1 | DECOMP_INLINE, 0x6C67},
@@ -6533,18 +6601,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F903, 0, 1 | DECOMP_INLINE, 0x6D69},
 	{0x2F904, 0, 1 | DECOMP_INLINE, 0x6D78},
 	{0x2F905, 0, 1 | DECOMP_INLINE, 0x6D85},
-	{0x2F906, 0, 1, 5025},
+	{0x2F906, 0, 1, 5065},
 	{0x2F907, 0, 1 | DECOMP_INLINE, 0x6D34},
 	{0x2F908, 0, 1 | DECOMP_INLINE, 0x6E2F},
 	{0x2F909, 0, 1 | DECOMP_INLINE, 0x6E6E},
 	{0x2F90A, 0, 1 | DECOMP_INLINE, 0x3D33},
 	{0x2F90B, 0, 1 | DECOMP_INLINE, 0x6ECB},
 	{0x2F90C, 0, 1 | DECOMP_INLINE, 0x6EC7},
-	{0x2F90D, 0, 1, 5026},
+	{0x2F90D, 0, 1, 5066},
 	{0x2F90E, 0, 1 | DECOMP_INLINE, 0x6DF9},
 	{0x2F90F, 0, 1 | DECOMP_INLINE, 0x6F6E},
-	{0x2F910, 0, 1, 5027},
-	{0x2F911, 0, 1, 5028},
+	{0x2F910, 0, 1, 5067},
+	{0x2F911, 0, 1, 5068},
 	{0x2F912, 0, 1 | DECOMP_INLINE, 0x6FC6},
 	{0x2F913, 0, 1 | DECOMP_INLINE, 0x7039},
 	{0x2F914, 0, 1 | DECOMP_INLINE, 0x701E},
@@ -6554,19 +6622,19 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F918, 0, 1 | DECOMP_INLINE, 0x707D},
 	{0x2F919, 0, 1 | DECOMP_INLINE, 0x7077},
 	{0x2F91A, 0, 1 | DECOMP_INLINE, 0x70AD},
-	{0x2F91B, 0, 1, 5029},
+	{0x2F91B, 0, 1, 5069},
 	{0x2F91C, 0, 1 | DECOMP_INLINE, 0x7145},
-	{0x2F91D, 0, 1, 5030},
+	{0x2F91D, 0, 1, 5070},
 	{0x2F91E, 0, 1 | DECOMP_INLINE, 0x719C},
-	{0x2F91F, 0, 1, 5031},
+	{0x2F91F, 0, 1, 5071},
 	{0x2F920, 0, 1 | DECOMP_INLINE, 0x7228},
 	{0x2F921, 0, 1 | DECOMP_INLINE, 0x7235},
 	{0x2F922, 0, 1 | DECOMP_INLINE, 0x7250},
-	{0x2F923, 0, 1, 5032},
+	{0x2F923, 0, 1, 5072},
 	{0x2F924, 0, 1 | DECOMP_INLINE, 0x7280},
 	{0x2F925, 0, 1 | DECOMP_INLINE, 0x7295},
-	{0x2F926, 0, 1, 5033},
-	{0x2F927, 0, 1, 5034},
+	{0x2F926, 0, 1, 5073},
+	{0x2F927, 0, 1, 5074},
 	{0x2F928, 0, 1 | DECOMP_INLINE, 0x737A},
 	{0x2F929, 0, 1 | DECOMP_INLINE, 0x738B},
 	{0x2F92A, 0, 1 | DECOMP_INLINE, 0x3EAC},
@@ -6580,22 +6648,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F932, 0, 1 | DECOMP_INLINE, 0x74CA},
 	{0x2F933, 0, 1 | DECOMP_INLINE, 0x3F1B},
 	{0x2F934, 0, 1 | DECOMP_INLINE, 0x7524},
-	{0x2F935, 0, 1, 5035},
+	{0x2F935, 0, 1, 5075},
 	{0x2F936, 0, 1 | DECOMP_INLINE, 0x753E},
-	{0x2F937, 0, 1, 5036},
+	{0x2F937, 0, 1, 5076},
 	{0x2F938, 0, 1 | DECOMP_INLINE, 0x7570},
-	{0x2F939, 0, 1, 5037},
+	{0x2F939, 0, 1, 5077},
 	{0x2F93A, 0, 1 | DECOMP_INLINE, 0x7610},
-	{0x2F93B, 0, 1, 5038},
-	{0x2F93C, 0, 1, 5039},
-	{0x2F93D, 0, 1, 5040},
+	{0x2F93B, 0, 1, 5078},
+	{0x2F93C, 0, 1, 5079},
+	{0x2F93D, 0, 1, 5080},
 	{0x2F93E, 0, 1 | DECOMP_INLINE, 0x3FFC},
 	{0x2F93F, 0, 1 | DECOMP_INLINE, 0x4008},
 	{0x2F940, 0, 1 | DECOMP_INLINE, 0x76F4},
-	{0x2F941, 0, 1, 5041},
-	{0x2F942, 0, 1, 5042},
-	{0x2F943, 0, 1, 5043},
-	{0x2F944, 0, 1, 5044},
+	{0x2F941, 0, 1, 5081},
+	{0x2F942, 0, 1, 5082},
+	{0x2F943, 0, 1, 5083},
+	{0x2F944, 0, 1, 5084},
 	{0x2F945, 0, 1 | DECOMP_INLINE, 0x771E},
 	{0x2F946, 0, 1 | DECOMP_INLINE, 0x771F},
 	{0x2F947, 0, 1 | DECOMP_INLINE, 0x771F},
@@ -6604,68 +6672,68 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F94A, 0, 1 | DECOMP_INLINE, 0x778B},
 	{0x2F94B, 0, 1 | DECOMP_INLINE, 0x4046},
 	{0x2F94C, 0, 1 | DECOMP_INLINE, 0x4096},
-	{0x2F94D, 0, 1, 5045},
+	{0x2F94D, 0, 1, 5085},
 	{0x2F94E, 0, 1 | DECOMP_INLINE, 0x784E},
 	{0x2F94F, 0, 1 | DECOMP_INLINE, 0x788C},
 	{0x2F950, 0, 1 | DECOMP_INLINE, 0x78CC},
 	{0x2F951, 0, 1 | DECOMP_INLINE, 0x40E3},
-	{0x2F952, 0, 1, 5046},
+	{0x2F952, 0, 1, 5086},
 	{0x2F953, 0, 1 | DECOMP_INLINE, 0x7956},
-	{0x2F954, 0, 1, 5047},
-	{0x2F955, 0, 1, 5048},
+	{0x2F954, 0, 1, 5087},
+	{0x2F955, 0, 1, 5088},
 	{0x2F956, 0, 1 | DECOMP_INLINE, 0x798F},
 	{0x2F957, 0, 1 | DECOMP_INLINE, 0x79EB},
 	{0x2F958, 0, 1 | DECOMP_INLINE, 0x412F},
 	{0x2F959, 0, 1 | DECOMP_INLINE, 0x7A40},
 	{0x2F95A, 0, 1 | DECOMP_INLINE, 0x7A4A},
 	{0x2F95B, 0, 1 | DECOMP_INLINE, 0x7A4F},
-	{0x2F95C, 0, 1, 5049},
-	{0x2F95D, 0, 1, 5050},
-	{0x2F95E, 0, 1, 5051},
+	{0x2F95C, 0, 1, 5089},
+	{0x2F95D, 0, 1, 5090},
+	{0x2F95E, 0, 1, 5091},
 	{0x2F95F, 0, 1 | DECOMP_INLINE, 0x7AEE},
 	{0x2F960, 0, 1 | DECOMP_INLINE, 0x4202},
-	{0x2F961, 0, 1, 5052},
+	{0x2F961, 0, 1, 5092},
 	{0x2F962, 0, 1 | DECOMP_INLINE, 0x7BC6},
 	{0x2F963, 0, 1 | DECOMP_INLINE, 0x7BC9},
 	{0x2F964, 0, 1 | DECOMP_INLINE, 0x4227},
-	{0x2F965, 0, 1, 5053},
+	{0x2F965, 0, 1, 5093},
 	{0x2F966, 0, 1 | DECOMP_INLINE, 0x7CD2},
 	{0x2F967, 0, 1 | DECOMP_INLINE, 0x42A0},
 	{0x2F968, 0, 1 | DECOMP_INLINE, 0x7CE8},
 	{0x2F969, 0, 1 | DECOMP_INLINE, 0x7CE3},
 	{0x2F96A, 0, 1 | DECOMP_INLINE, 0x7D00},
-	{0x2F96B, 0, 1, 5054},
+	{0x2F96B, 0, 1, 5094},
 	{0x2F96C, 0, 1 | DECOMP_INLINE, 0x7D63},
 	{0x2F96D, 0, 1 | DECOMP_INLINE, 0x4301},
 	{0x2F96E, 0, 1 | DECOMP_INLINE, 0x7DC7},
 	{0x2F96F, 0, 1 | DECOMP_INLINE, 0x7E02},
 	{0x2F970, 0, 1 | DECOMP_INLINE, 0x7E45},
 	{0x2F971, 0, 1 | DECOMP_INLINE, 0x4334},
-	{0x2F972, 0, 1, 5055},
-	{0x2F973, 0, 1, 5056},
+	{0x2F972, 0, 1, 5095},
+	{0x2F973, 0, 1, 5096},
 	{0x2F974, 0, 1 | DECOMP_INLINE, 0x4359},
-	{0x2F975, 0, 1, 5057},
+	{0x2F975, 0, 1, 5097},
 	{0x2F976, 0, 1 | DECOMP_INLINE, 0x7F7A},
-	{0x2F977, 0, 1, 5058},
+	{0x2F977, 0, 1, 5098},
 	{0x2F978, 0, 1 | DECOMP_INLINE, 0x7F95},
 	{0x2F979, 0, 1 | DECOMP_INLINE, 0x7FFA},
 	{0x2F97A, 0, 1 | DECOMP_INLINE, 0x8005},
-	{0x2F97B, 0, 1, 5059},
-	{0x2F97C, 0, 1, 5060},
+	{0x2F97B, 0, 1, 5099},
+	{0x2F97C, 0, 1, 5100},
 	{0x2F97D, 0, 1 | DECOMP_INLINE, 0x8060},
-	{0x2F97E, 0, 1, 5061},
+	{0x2F97E, 0, 1, 5101},
 	{0x2F97F, 0, 1 | DECOMP_INLINE, 0x8070},
-	{0x2F980, 0, 1, 5062},
+	{0x2F980, 0, 1, 5102},
 	{0x2F981, 0, 1 | DECOMP_INLINE, 0x43D5},
 	{0x2F982, 0, 1 | DECOMP_INLINE, 0x80B2},
 	{0x2F983, 0, 1 | DECOMP_INLINE, 0x8103},
 	{0x2F984, 0, 1 | DECOMP_INLINE, 0x440B},
 	{0x2F985, 0, 1 | DECOMP_INLINE, 0x813E},
 	{0x2F986, 0, 1 | DECOMP_INLINE, 0x5AB5},
-	{0x2F987, 0, 1, 5063},
-	{0x2F988, 0, 1, 5064},
-	{0x2F989, 0, 1, 5065},
-	{0x2F98A, 0, 1, 5066},
+	{0x2F987, 0, 1, 5103},
+	{0x2F988, 0, 1, 5104},
+	{0x2F989, 0, 1, 5105},
+	{0x2F98A, 0, 1, 5106},
 	{0x2F98B, 0, 1 | DECOMP_INLINE, 0x8201},
 	{0x2F98C, 0, 1 | DECOMP_INLINE, 0x8204},
 	{0x2F98D, 0, 1 | DECOMP_INLINE, 0x8F9E},
@@ -6678,7 +6746,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F994, 0, 1 | DECOMP_INLINE, 0x82B3},
 	{0x2F995, 0, 1 | DECOMP_INLINE, 0x82BD},
 	{0x2F996, 0, 1 | DECOMP_INLINE, 0x82E6},
-	{0x2F997, 0, 1, 5067},
+	{0x2F997, 0, 1, 5107},
 	{0x2F998, 0, 1 | DECOMP_INLINE, 0x82E5},
 	{0x2F999, 0, 1 | DECOMP_INLINE, 0x831D},
 	{0x2F99A, 0, 1 | DECOMP_INLINE, 0x8363},
@@ -6691,20 +6759,20 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F9A1, 0, 1 | DECOMP_INLINE, 0x83CA},
 	{0x2F9A2, 0, 1 | DECOMP_INLINE, 0x83CC},
 	{0x2F9A3, 0, 1 | DECOMP_INLINE, 0x83DC},
-	{0x2F9A4, 0, 1, 5068},
-	{0x2F9A5, 0, 1, 5069},
-	{0x2F9A6, 0, 1, 5070},
+	{0x2F9A4, 0, 1, 5108},
+	{0x2F9A5, 0, 1, 5109},
+	{0x2F9A6, 0, 1, 5110},
 	{0x2F9A7, 0, 1 | DECOMP_INLINE, 0x452B},
 	{0x2F9A8, 0, 1 | DECOMP_INLINE, 0x84F1},
 	{0x2F9A9, 0, 1 | DECOMP_INLINE, 0x84F3},
 	{0x2F9AA, 0, 1 | DECOMP_INLINE, 0x8516},
-	{0x2F9AB, 0, 1, 5071},
+	{0x2F9AB, 0, 1, 5111},
 	{0x2F9AC, 0, 1 | DECOMP_INLINE, 0x8564},
-	{0x2F9AD, 0, 1, 5072},
+	{0x2F9AD, 0, 1, 5112},
 	{0x2F9AE, 0, 1 | DECOMP_INLINE, 0x455D},
 	{0x2F9AF, 0, 1 | DECOMP_INLINE, 0x4561},
-	{0x2F9B0, 0, 1, 5073},
-	{0x2F9B1, 0, 1, 5074},
+	{0x2F9B0, 0, 1, 5113},
+	{0x2F9B1, 0, 1, 5114},
 	{0x2F9B2, 0, 1 | DECOMP_INLINE, 0x456B},
 	{0x2F9B3, 0, 1 | DECOMP_INLINE, 0x8650},
 	{0x2F9B4, 0, 1 | DECOMP_INLINE, 0x865C},
@@ -6724,39 +6792,39 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F9C2, 0, 1 | DECOMP_INLINE, 0x45F9},
 	{0x2F9C3, 0, 1 | DECOMP_INLINE, 0x8860},
 	{0x2F9C4, 0, 1 | DECOMP_INLINE, 0x8863},
-	{0x2F9C5, 0, 1, 5075},
+	{0x2F9C5, 0, 1, 5115},
 	{0x2F9C6, 0, 1 | DECOMP_INLINE, 0x88D7},
 	{0x2F9C7, 0, 1 | DECOMP_INLINE, 0x88DE},
 	{0x2F9C8, 0, 1 | DECOMP_INLINE, 0x4635},
 	{0x2F9C9, 0, 1 | DECOMP_INLINE, 0x88FA},
 	{0x2F9CA, 0, 1 | DECOMP_INLINE, 0x34BB},
-	{0x2F9CB, 0, 1, 5076},
-	{0x2F9CC, 0, 1, 5077},
+	{0x2F9CB, 0, 1, 5116},
+	{0x2F9CC, 0, 1, 5117},
 	{0x2F9CD, 0, 1 | DECOMP_INLINE, 0x46BE},
 	{0x2F9CE, 0, 1 | DECOMP_INLINE, 0x46C7},
 	{0x2F9CF, 0, 1 | DECOMP_INLINE, 0x8AA0},
 	{0x2F9D0, 0, 1 | DECOMP_INLINE, 0x8AED},
 	{0x2F9D1, 0, 1 | DECOMP_INLINE, 0x8B8A},
 	{0x2F9D2, 0, 1 | DECOMP_INLINE, 0x8C55},
-	{0x2F9D3, 0, 1, 5078},
+	{0x2F9D3, 0, 1, 5118},
 	{0x2F9D4, 0, 1 | DECOMP_INLINE, 0x8CAB},
 	{0x2F9D5, 0, 1 | DECOMP_INLINE, 0x8CC1},
 	{0x2F9D6, 0, 1 | DECOMP_INLINE, 0x8D1B},
 	{0x2F9D7, 0, 1 | DECOMP_INLINE, 0x8D77},
-	{0x2F9D8, 0, 1, 5079},
-	{0x2F9D9, 0, 1, 5080},
+	{0x2F9D8, 0, 1, 5119},
+	{0x2F9D9, 0, 1, 5120},
 	{0x2F9DA, 0, 1 | DECOMP_INLINE, 0x8DCB},
 	{0x2F9DB, 0, 1 | DECOMP_INLINE, 0x8DBC},
 	{0x2F9DC, 0, 1 | DECOMP_INLINE, 0x8DF0},
-	{0x2F9DD, 0, 1, 5081},
+	{0x2F9DD, 0, 1, 5121},
 	{0x2F9DE, 0, 1 | DECOMP_INLINE, 0x8ED4},
 	{0x2F9DF, 0, 1 | DECOMP_INLINE, 0x8F38},
-	{0x2F9E0, 0, 1, 5082},
-	{0x2F9E1, 0, 1, 5083},
+	{0x2F9E0, 0, 1, 5122},
+	{0x2F9E1, 0, 1, 5123},
 	{0x2F9E2, 0, 1 | DECOMP_INLINE, 0x9094},
 	{0x2F9E3, 0, 1 | DECOMP_INLINE, 0x90F1},
 	{0x2F9E4, 0, 1 | DECOMP_INLINE, 0x9111},
-	{0x2F9E5, 0, 1, 5084},
+	{0x2F9E5, 0, 1, 5124},
 	{0x2F9E6, 0, 1 | DECOMP_INLINE, 0x911B},
 	{0x2F9E7, 0, 1 | DECOMP_INLINE, 0x9238},
 	{0x2F9E8, 0, 1 | DECOMP_INLINE, 0x92D7},
@@ -6764,27 +6832,27 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F9EA, 0, 1 | DECOMP_INLINE, 0x927C},
 	{0x2F9EB, 0, 1 | DECOMP_INLINE, 0x93F9},
 	{0x2F9EC, 0, 1 | DECOMP_INLINE, 0x9415},
-	{0x2F9ED, 0, 1, 5085},
+	{0x2F9ED, 0, 1, 5125},
 	{0x2F9EE, 0, 1 | DECOMP_INLINE, 0x958B},
 	{0x2F9EF, 0, 1 | DECOMP_INLINE, 0x4995},
 	{0x2F9F0, 0, 1 | DECOMP_INLINE, 0x95B7},
-	{0x2F9F1, 0, 1, 5086},
+	{0x2F9F1, 0, 1, 5126},
 	{0x2F9F2, 0, 1 | DECOMP_INLINE, 0x49E6},
 	{0x2F9F3, 0, 1 | DECOMP_INLINE, 0x96C3},
 	{0x2F9F4, 0, 1 | DECOMP_INLINE, 0x5DB2},
 	{0x2F9F5, 0, 1 | DECOMP_INLINE, 0x9723},
-	{0x2F9F6, 0, 1, 5087},
-	{0x2F9F7, 0, 1, 5088},
+	{0x2F9F6, 0, 1, 5127},
+	{0x2F9F7, 0, 1, 5128},
 	{0x2F9F8, 0, 1 | DECOMP_INLINE, 0x4A6E},
 	{0x2F9F9, 0, 1 | DECOMP_INLINE, 0x4A76},
 	{0x2F9FA, 0, 1 | DECOMP_INLINE, 0x97E0},
-	{0x2F9FB, 0, 1, 5089},
+	{0x2F9FB, 0, 1, 5129},
 	{0x2F9FC, 0, 1 | DECOMP_INLINE, 0x4AB2},
-	{0x2F9FD, 0, 1, 5090},
+	{0x2F9FD, 0, 1, 5130},
 	{0x2F9FE, 0, 1 | DECOMP_INLINE, 0x980B},
 	{0x2F9FF, 0, 1 | DECOMP_INLINE, 0x980B},
 	{0x2FA00, 0, 1 | DECOMP_INLINE, 0x9829},
-	{0x2FA01, 0, 1, 5091},
+	{0x2FA01, 0, 1, 5131},
 	{0x2FA02, 0, 1 | DECOMP_INLINE, 0x98E2},
 	{0x2FA03, 0, 1 | DECOMP_INLINE, 0x4B33},
 	{0x2FA04, 0, 1 | DECOMP_INLINE, 0x9929},
@@ -6792,18 +6860,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2FA06, 0, 1 | DECOMP_INLINE, 0x99C2},
 	{0x2FA07, 0, 1 | DECOMP_INLINE, 0x99FE},
 	{0x2FA08, 0, 1 | DECOMP_INLINE, 0x4BCE},
-	{0x2FA09, 0, 1, 5092},
+	{0x2FA09, 0, 1, 5132},
 	{0x2FA0A, 0, 1 | DECOMP_INLINE, 0x9B12},
 	{0x2FA0B, 0, 1 | DECOMP_INLINE, 0x9C40},
 	{0x2FA0C, 0, 1 | DECOMP_INLINE, 0x9CFD},
 	{0x2FA0D, 0, 1 | DECOMP_INLINE, 0x4CCE},
 	{0x2FA0E, 0, 1 | DECOMP_INLINE, 0x4CED},
 	{0x2FA0F, 0, 1 | DECOMP_INLINE, 0x9D67},
-	{0x2FA10, 0, 1, 5093},
+	{0x2FA10, 0, 1, 5133},
 	{0x2FA11, 0, 1 | DECOMP_INLINE, 0x4CF8},
-	{0x2FA12, 0, 1, 5094},
-	{0x2FA13, 0, 1, 5095},
-	{0x2FA14, 0, 1, 5096},
+	{0x2FA12, 0, 1, 5134},
+	{0x2FA13, 0, 1, 5135},
+	{0x2FA14, 0, 1, 5136},
 	{0x2FA15, 0, 1 | DECOMP_INLINE, 0x9EBB},
 	{0x2FA16, 0, 1 | DECOMP_INLINE, 0x4D56},
 	{0x2FA17, 0, 1 | DECOMP_INLINE, 0x9EF9},
@@ -6812,12 +6880,12 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2FA1A, 0, 1 | DECOMP_INLINE, 0x9F0F},
 	{0x2FA1B, 0, 1 | DECOMP_INLINE, 0x9F16},
 	{0x2FA1C, 0, 1 | DECOMP_INLINE, 0x9F3B},
-	{0x2FA1D, 0, 1, 5097}
+	{0x2FA1D, 0, 1, 5137}
 
 };
 
 /* codepoints array  */
-static const uint32 UnicodeDecomp_codepoints[5098] =
+static const uint32 UnicodeDecomp_codepoints[5138] =
 {
 	 /* 0 */ 0x0020, 0x0308,
 	 /* 2 */ 0x0020, 0x0304,
@@ -8913,202 +8981,222 @@ static const uint32 UnicodeDecomp_codepoints[5098] =
 	 /* 4770 */ 0x0644, 0x0625,
 	 /* 4772 */ 0x0644, 0x0627,
 	 /* 4774 */ 0x0644, 0x0627,
-	 /* 4776 */ 0x1DF04,
-	 /* 4777 */ 0x1DF05,
-	 /* 4778 */ 0x1DF06,
-	 /* 4779 */ 0x1DF08,
-	 /* 4780 */ 0x1DF0A,
-	 /* 4781 */ 0x1DF1E,
-	 /* 4782 */ 0x11099, 0x110BA,
-	 /* 4784 */ 0x1109B, 0x110BA,
-	 /* 4786 */ 0x110A5, 0x110BA,
-	 /* 4788 */ 0x11131, 0x11127,
-	 /* 4790 */ 0x11132, 0x11127,
-	 /* 4792 */ 0x11347, 0x1133E,
-	 /* 4794 */ 0x11347, 0x11357,
-	 /* 4796 */ 0x114B9, 0x114BA,
-	 /* 4798 */ 0x114B9, 0x114B0,
-	 /* 4800 */ 0x114B9, 0x114BD,
-	 /* 4802 */ 0x115B8, 0x115AF,
-	 /* 4804 */ 0x115B9, 0x115AF,
-	 /* 4806 */ 0x11935, 0x11930,
-	 /* 4808 */ 0x1D157, 0x1D165,
-	 /* 4810 */ 0x1D158, 0x1D165,
-	 /* 4812 */ 0x1D15F, 0x1D16E,
-	 /* 4814 */ 0x1D15F, 0x1D16F,
-	 /* 4816 */ 0x1D15F, 0x1D170,
-	 /* 4818 */ 0x1D15F, 0x1D171,
-	 /* 4820 */ 0x1D15F, 0x1D172,
-	 /* 4822 */ 0x1D1B9, 0x1D165,
-	 /* 4824 */ 0x1D1BA, 0x1D165,
-	 /* 4826 */ 0x1D1BB, 0x1D16E,
-	 /* 4828 */ 0x1D1BC, 0x1D16E,
-	 /* 4830 */ 0x1D1BB, 0x1D16F,
-	 /* 4832 */ 0x1D1BC, 0x1D16F,
-	 /* 4834 */ 0x0030, 0x002E,
-	 /* 4836 */ 0x0030, 0x002C,
-	 /* 4838 */ 0x0031, 0x002C,
-	 /* 4840 */ 0x0032, 0x002C,
-	 /* 4842 */ 0x0033, 0x002C,
-	 /* 4844 */ 0x0034, 0x002C,
-	 /* 4846 */ 0x0035, 0x002C,
-	 /* 4848 */ 0x0036, 0x002C,
-	 /* 4850 */ 0x0037, 0x002C,
-	 /* 4852 */ 0x0038, 0x002C,
-	 /* 4854 */ 0x0039, 0x002C,
-	 /* 4856 */ 0x0028, 0x0041, 0x0029,
-	 /* 4859 */ 0x0028, 0x0042, 0x0029,
-	 /* 4862 */ 0x0028, 0x0043, 0x0029,
-	 /* 4865 */ 0x0028, 0x0044, 0x0029,
-	 /* 4868 */ 0x0028, 0x0045, 0x0029,
-	 /* 4871 */ 0x0028, 0x0046, 0x0029,
-	 /* 4874 */ 0x0028, 0x0047, 0x0029,
-	 /* 4877 */ 0x0028, 0x0048, 0x0029,
-	 /* 4880 */ 0x0028, 0x0049, 0x0029,
-	 /* 4883 */ 0x0028, 0x004A, 0x0029,
-	 /* 4886 */ 0x0028, 0x004B, 0x0029,
-	 /* 4889 */ 0x0028, 0x004C, 0x0029,
-	 /* 4892 */ 0x0028, 0x004D, 0x0029,
-	 /* 4895 */ 0x0028, 0x004E, 0x0029,
-	 /* 4898 */ 0x0028, 0x004F, 0x0029,
-	 /* 4901 */ 0x0028, 0x0050, 0x0029,
-	 /* 4904 */ 0x0028, 0x0051, 0x0029,
-	 /* 4907 */ 0x0028, 0x0052, 0x0029,
-	 /* 4910 */ 0x0028, 0x0053, 0x0029,
-	 /* 4913 */ 0x0028, 0x0054, 0x0029,
-	 /* 4916 */ 0x0028, 0x0055, 0x0029,
-	 /* 4919 */ 0x0028, 0x0056, 0x0029,
-	 /* 4922 */ 0x0028, 0x0057, 0x0029,
-	 /* 4925 */ 0x0028, 0x0058, 0x0029,
-	 /* 4928 */ 0x0028, 0x0059, 0x0029,
-	 /* 4931 */ 0x0028, 0x005A, 0x0029,
-	 /* 4934 */ 0x3014, 0x0053, 0x3015,
-	 /* 4937 */ 0x0043, 0x0044,
-	 /* 4939 */ 0x0057, 0x005A,
-	 /* 4941 */ 0x0048, 0x0056,
-	 /* 4943 */ 0x004D, 0x0056,
-	 /* 4945 */ 0x0053, 0x0044,
-	 /* 4947 */ 0x0053, 0x0053,
-	 /* 4949 */ 0x0050, 0x0050, 0x0056,
-	 /* 4952 */ 0x0057, 0x0043,
-	 /* 4954 */ 0x004D, 0x0043,
-	 /* 4956 */ 0x004D, 0x0044,
-	 /* 4958 */ 0x004D, 0x0052,
-	 /* 4960 */ 0x0044, 0x004A,
-	 /* 4962 */ 0x307B, 0x304B,
-	 /* 4964 */ 0x30B3, 0x30B3,
-	 /* 4966 */ 0x3014, 0x672C, 0x3015,
-	 /* 4969 */ 0x3014, 0x4E09, 0x3015,
-	 /* 4972 */ 0x3014, 0x4E8C, 0x3015,
-	 /* 4975 */ 0x3014, 0x5B89, 0x3015,
-	 /* 4978 */ 0x3014, 0x70B9, 0x3015,
-	 /* 4981 */ 0x3014, 0x6253, 0x3015,
-	 /* 4984 */ 0x3014, 0x76D7, 0x3015,
-	 /* 4987 */ 0x3014, 0x52DD, 0x3015,
-	 /* 4990 */ 0x3014, 0x6557, 0x3015,
-	 /* 4993 */ 0x20122,
-	 /* 4994 */ 0x2063A,
-	 /* 4995 */ 0x2051C,
-	 /* 4996 */ 0x2054B,
-	 /* 4997 */ 0x291DF,
-	 /* 4998 */ 0x20A2C,
-	 /* 4999 */ 0x20B63,
-	 /* 5000 */ 0x214E4,
-	 /* 5001 */ 0x216A8,
-	 /* 5002 */ 0x216EA,
-	 /* 5003 */ 0x219C8,
-	 /* 5004 */ 0x21B18,
-	 /* 5005 */ 0x21DE4,
-	 /* 5006 */ 0x21DE6,
-	 /* 5007 */ 0x22183,
-	 /* 5008 */ 0x2A392,
-	 /* 5009 */ 0x22331,
-	 /* 5010 */ 0x22331,
-	 /* 5011 */ 0x232B8,
-	 /* 5012 */ 0x261DA,
-	 /* 5013 */ 0x226D4,
-	 /* 5014 */ 0x22B0C,
-	 /* 5015 */ 0x22BF1,
-	 /* 5016 */ 0x2300A,
-	 /* 5017 */ 0x233C3,
-	 /* 5018 */ 0x2346D,
-	 /* 5019 */ 0x236A3,
-	 /* 5020 */ 0x238A7,
-	 /* 5021 */ 0x23A8D,
-	 /* 5022 */ 0x21D0B,
-	 /* 5023 */ 0x23AFA,
-	 /* 5024 */ 0x23CBC,
-	 /* 5025 */ 0x23D1E,
-	 /* 5026 */ 0x23ED1,
-	 /* 5027 */ 0x23F5E,
-	 /* 5028 */ 0x23F8E,
-	 /* 5029 */ 0x20525,
-	 /* 5030 */ 0x24263,
-	 /* 5031 */ 0x243AB,
-	 /* 5032 */ 0x24608,
-	 /* 5033 */ 0x24735,
-	 /* 5034 */ 0x24814,
-	 /* 5035 */ 0x24C36,
-	 /* 5036 */ 0x24C92,
-	 /* 5037 */ 0x2219F,
-	 /* 5038 */ 0x24FA1,
-	 /* 5039 */ 0x24FB8,
-	 /* 5040 */ 0x25044,
-	 /* 5041 */ 0x250F3,
-	 /* 5042 */ 0x250F2,
-	 /* 5043 */ 0x25119,
-	 /* 5044 */ 0x25133,
-	 /* 5045 */ 0x2541D,
-	 /* 5046 */ 0x25626,
-	 /* 5047 */ 0x2569A,
-	 /* 5048 */ 0x256C5,
-	 /* 5049 */ 0x2597C,
-	 /* 5050 */ 0x25AA7,
-	 /* 5051 */ 0x25AA7,
-	 /* 5052 */ 0x25BAB,
-	 /* 5053 */ 0x25C80,
-	 /* 5054 */ 0x25F86,
-	 /* 5055 */ 0x26228,
-	 /* 5056 */ 0x26247,
-	 /* 5057 */ 0x262D9,
-	 /* 5058 */ 0x2633E,
-	 /* 5059 */ 0x264DA,
-	 /* 5060 */ 0x26523,
-	 /* 5061 */ 0x265A8,
-	 /* 5062 */ 0x2335F,
-	 /* 5063 */ 0x267A7,
-	 /* 5064 */ 0x267B5,
-	 /* 5065 */ 0x23393,
-	 /* 5066 */ 0x2339C,
-	 /* 5067 */ 0x26B3C,
-	 /* 5068 */ 0x26C36,
-	 /* 5069 */ 0x26D6B,
-	 /* 5070 */ 0x26CD5,
-	 /* 5071 */ 0x273CA,
-	 /* 5072 */ 0x26F2C,
-	 /* 5073 */ 0x26FB1,
-	 /* 5074 */ 0x270D2,
-	 /* 5075 */ 0x27667,
-	 /* 5076 */ 0x278AE,
-	 /* 5077 */ 0x27966,
-	 /* 5078 */ 0x27CA8,
-	 /* 5079 */ 0x27F2F,
-	 /* 5080 */ 0x20804,
-	 /* 5081 */ 0x208DE,
-	 /* 5082 */ 0x285D2,
-	 /* 5083 */ 0x285ED,
-	 /* 5084 */ 0x2872E,
-	 /* 5085 */ 0x28BFA,
-	 /* 5086 */ 0x28D77,
-	 /* 5087 */ 0x29145,
-	 /* 5088 */ 0x2921A,
-	 /* 5089 */ 0x2940A,
-	 /* 5090 */ 0x29496,
-	 /* 5091 */ 0x295B6,
-	 /* 5092 */ 0x29B30,
-	 /* 5093 */ 0x2A0CE,
-	 /* 5094 */ 0x2A105,
-	 /* 5095 */ 0x2A20E,
-	 /* 5096 */ 0x2A291,
-	 /* 5097 */ 0x2A600
+	 /* 4776 */ 0x105D2, 0x0307,
+	 /* 4778 */ 0x105DA, 0x0307,
+	 /* 4780 */ 0x1DF04,
+	 /* 4781 */ 0x1DF05,
+	 /* 4782 */ 0x1DF06,
+	 /* 4783 */ 0x1DF08,
+	 /* 4784 */ 0x1DF0A,
+	 /* 4785 */ 0x1DF1E,
+	 /* 4786 */ 0x11099, 0x110BA,
+	 /* 4788 */ 0x1109B, 0x110BA,
+	 /* 4790 */ 0x110A5, 0x110BA,
+	 /* 4792 */ 0x11131, 0x11127,
+	 /* 4794 */ 0x11132, 0x11127,
+	 /* 4796 */ 0x11347, 0x1133E,
+	 /* 4798 */ 0x11347, 0x11357,
+	 /* 4800 */ 0x11382, 0x113C9,
+	 /* 4802 */ 0x11384, 0x113BB,
+	 /* 4804 */ 0x1138B, 0x113C2,
+	 /* 4806 */ 0x11390, 0x113C9,
+	 /* 4808 */ 0x113C2, 0x113C2,
+	 /* 4810 */ 0x113C2, 0x113B8,
+	 /* 4812 */ 0x113C2, 0x113C9,
+	 /* 4814 */ 0x114B9, 0x114BA,
+	 /* 4816 */ 0x114B9, 0x114B0,
+	 /* 4818 */ 0x114B9, 0x114BD,
+	 /* 4820 */ 0x115B8, 0x115AF,
+	 /* 4822 */ 0x115B9, 0x115AF,
+	 /* 4824 */ 0x11935, 0x11930,
+	 /* 4826 */ 0x1611E, 0x1611E,
+	 /* 4828 */ 0x1611E, 0x16129,
+	 /* 4830 */ 0x1611E, 0x1611F,
+	 /* 4832 */ 0x16129, 0x1611F,
+	 /* 4834 */ 0x1611E, 0x16120,
+	 /* 4836 */ 0x16121, 0x1611F,
+	 /* 4838 */ 0x16122, 0x1611F,
+	 /* 4840 */ 0x16121, 0x16120,
+	 /* 4842 */ 0x16D67, 0x16D67,
+	 /* 4844 */ 0x16D63, 0x16D67,
+	 /* 4846 */ 0x16D69, 0x16D67,
+	 /* 4848 */ 0x1D157, 0x1D165,
+	 /* 4850 */ 0x1D158, 0x1D165,
+	 /* 4852 */ 0x1D15F, 0x1D16E,
+	 /* 4854 */ 0x1D15F, 0x1D16F,
+	 /* 4856 */ 0x1D15F, 0x1D170,
+	 /* 4858 */ 0x1D15F, 0x1D171,
+	 /* 4860 */ 0x1D15F, 0x1D172,
+	 /* 4862 */ 0x1D1B9, 0x1D165,
+	 /* 4864 */ 0x1D1BA, 0x1D165,
+	 /* 4866 */ 0x1D1BB, 0x1D16E,
+	 /* 4868 */ 0x1D1BC, 0x1D16E,
+	 /* 4870 */ 0x1D1BB, 0x1D16F,
+	 /* 4872 */ 0x1D1BC, 0x1D16F,
+	 /* 4874 */ 0x0030, 0x002E,
+	 /* 4876 */ 0x0030, 0x002C,
+	 /* 4878 */ 0x0031, 0x002C,
+	 /* 4880 */ 0x0032, 0x002C,
+	 /* 4882 */ 0x0033, 0x002C,
+	 /* 4884 */ 0x0034, 0x002C,
+	 /* 4886 */ 0x0035, 0x002C,
+	 /* 4888 */ 0x0036, 0x002C,
+	 /* 4890 */ 0x0037, 0x002C,
+	 /* 4892 */ 0x0038, 0x002C,
+	 /* 4894 */ 0x0039, 0x002C,
+	 /* 4896 */ 0x0028, 0x0041, 0x0029,
+	 /* 4899 */ 0x0028, 0x0042, 0x0029,
+	 /* 4902 */ 0x0028, 0x0043, 0x0029,
+	 /* 4905 */ 0x0028, 0x0044, 0x0029,
+	 /* 4908 */ 0x0028, 0x0045, 0x0029,
+	 /* 4911 */ 0x0028, 0x0046, 0x0029,
+	 /* 4914 */ 0x0028, 0x0047, 0x0029,
+	 /* 4917 */ 0x0028, 0x0048, 0x0029,
+	 /* 4920 */ 0x0028, 0x0049, 0x0029,
+	 /* 4923 */ 0x0028, 0x004A, 0x0029,
+	 /* 4926 */ 0x0028, 0x004B, 0x0029,
+	 /* 4929 */ 0x0028, 0x004C, 0x0029,
+	 /* 4932 */ 0x0028, 0x004D, 0x0029,
+	 /* 4935 */ 0x0028, 0x004E, 0x0029,
+	 /* 4938 */ 0x0028, 0x004F, 0x0029,
+	 /* 4941 */ 0x0028, 0x0050, 0x0029,
+	 /* 4944 */ 0x0028, 0x0051, 0x0029,
+	 /* 4947 */ 0x0028, 0x0052, 0x0029,
+	 /* 4950 */ 0x0028, 0x0053, 0x0029,
+	 /* 4953 */ 0x0028, 0x0054, 0x0029,
+	 /* 4956 */ 0x0028, 0x0055, 0x0029,
+	 /* 4959 */ 0x0028, 0x0056, 0x0029,
+	 /* 4962 */ 0x0028, 0x0057, 0x0029,
+	 /* 4965 */ 0x0028, 0x0058, 0x0029,
+	 /* 4968 */ 0x0028, 0x0059, 0x0029,
+	 /* 4971 */ 0x0028, 0x005A, 0x0029,
+	 /* 4974 */ 0x3014, 0x0053, 0x3015,
+	 /* 4977 */ 0x0043, 0x0044,
+	 /* 4979 */ 0x0057, 0x005A,
+	 /* 4981 */ 0x0048, 0x0056,
+	 /* 4983 */ 0x004D, 0x0056,
+	 /* 4985 */ 0x0053, 0x0044,
+	 /* 4987 */ 0x0053, 0x0053,
+	 /* 4989 */ 0x0050, 0x0050, 0x0056,
+	 /* 4992 */ 0x0057, 0x0043,
+	 /* 4994 */ 0x004D, 0x0043,
+	 /* 4996 */ 0x004D, 0x0044,
+	 /* 4998 */ 0x004D, 0x0052,
+	 /* 5000 */ 0x0044, 0x004A,
+	 /* 5002 */ 0x307B, 0x304B,
+	 /* 5004 */ 0x30B3, 0x30B3,
+	 /* 5006 */ 0x3014, 0x672C, 0x3015,
+	 /* 5009 */ 0x3014, 0x4E09, 0x3015,
+	 /* 5012 */ 0x3014, 0x4E8C, 0x3015,
+	 /* 5015 */ 0x3014, 0x5B89, 0x3015,
+	 /* 5018 */ 0x3014, 0x70B9, 0x3015,
+	 /* 5021 */ 0x3014, 0x6253, 0x3015,
+	 /* 5024 */ 0x3014, 0x76D7, 0x3015,
+	 /* 5027 */ 0x3014, 0x52DD, 0x3015,
+	 /* 5030 */ 0x3014, 0x6557, 0x3015,
+	 /* 5033 */ 0x20122,
+	 /* 5034 */ 0x2063A,
+	 /* 5035 */ 0x2051C,
+	 /* 5036 */ 0x2054B,
+	 /* 5037 */ 0x291DF,
+	 /* 5038 */ 0x20A2C,
+	 /* 5039 */ 0x20B63,
+	 /* 5040 */ 0x214E4,
+	 /* 5041 */ 0x216A8,
+	 /* 5042 */ 0x216EA,
+	 /* 5043 */ 0x219C8,
+	 /* 5044 */ 0x21B18,
+	 /* 5045 */ 0x21DE4,
+	 /* 5046 */ 0x21DE6,
+	 /* 5047 */ 0x22183,
+	 /* 5048 */ 0x2A392,
+	 /* 5049 */ 0x22331,
+	 /* 5050 */ 0x22331,
+	 /* 5051 */ 0x232B8,
+	 /* 5052 */ 0x261DA,
+	 /* 5053 */ 0x226D4,
+	 /* 5054 */ 0x22B0C,
+	 /* 5055 */ 0x22BF1,
+	 /* 5056 */ 0x2300A,
+	 /* 5057 */ 0x233C3,
+	 /* 5058 */ 0x2346D,
+	 /* 5059 */ 0x236A3,
+	 /* 5060 */ 0x238A7,
+	 /* 5061 */ 0x23A8D,
+	 /* 5062 */ 0x21D0B,
+	 /* 5063 */ 0x23AFA,
+	 /* 5064 */ 0x23CBC,
+	 /* 5065 */ 0x23D1E,
+	 /* 5066 */ 0x23ED1,
+	 /* 5067 */ 0x23F5E,
+	 /* 5068 */ 0x23F8E,
+	 /* 5069 */ 0x20525,
+	 /* 5070 */ 0x24263,
+	 /* 5071 */ 0x243AB,
+	 /* 5072 */ 0x24608,
+	 /* 5073 */ 0x24735,
+	 /* 5074 */ 0x24814,
+	 /* 5075 */ 0x24C36,
+	 /* 5076 */ 0x24C92,
+	 /* 5077 */ 0x2219F,
+	 /* 5078 */ 0x24FA1,
+	 /* 5079 */ 0x24FB8,
+	 /* 5080 */ 0x25044,
+	 /* 5081 */ 0x250F3,
+	 /* 5082 */ 0x250F2,
+	 /* 5083 */ 0x25119,
+	 /* 5084 */ 0x25133,
+	 /* 5085 */ 0x2541D,
+	 /* 5086 */ 0x25626,
+	 /* 5087 */ 0x2569A,
+	 /* 5088 */ 0x256C5,
+	 /* 5089 */ 0x2597C,
+	 /* 5090 */ 0x25AA7,
+	 /* 5091 */ 0x25AA7,
+	 /* 5092 */ 0x25BAB,
+	 /* 5093 */ 0x25C80,
+	 /* 5094 */ 0x25F86,
+	 /* 5095 */ 0x26228,
+	 /* 5096 */ 0x26247,
+	 /* 5097 */ 0x262D9,
+	 /* 5098 */ 0x2633E,
+	 /* 5099 */ 0x264DA,
+	 /* 5100 */ 0x26523,
+	 /* 5101 */ 0x265A8,
+	 /* 5102 */ 0x2335F,
+	 /* 5103 */ 0x267A7,
+	 /* 5104 */ 0x267B5,
+	 /* 5105 */ 0x23393,
+	 /* 5106 */ 0x2339C,
+	 /* 5107 */ 0x26B3C,
+	 /* 5108 */ 0x26C36,
+	 /* 5109 */ 0x26D6B,
+	 /* 5110 */ 0x26CD5,
+	 /* 5111 */ 0x273CA,
+	 /* 5112 */ 0x26F2C,
+	 /* 5113 */ 0x26FB1,
+	 /* 5114 */ 0x270D2,
+	 /* 5115 */ 0x27667,
+	 /* 5116 */ 0x278AE,
+	 /* 5117 */ 0x27966,
+	 /* 5118 */ 0x27CA8,
+	 /* 5119 */ 0x27F2F,
+	 /* 5120 */ 0x20804,
+	 /* 5121 */ 0x208DE,
+	 /* 5122 */ 0x285D2,
+	 /* 5123 */ 0x285ED,
+	 /* 5124 */ 0x2872E,
+	 /* 5125 */ 0x28BFA,
+	 /* 5126 */ 0x28D77,
+	 /* 5127 */ 0x29145,
+	 /* 5128 */ 0x2921A,
+	 /* 5129 */ 0x2940A,
+	 /* 5130 */ 0x29496,
+	 /* 5131 */ 0x295B6,
+	 /* 5132 */ 0x29B30,
+	 /* 5133 */ 0x2A0CE,
+	 /* 5134 */ 0x2A105,
+	 /* 5135 */ 0x2A20E,
+	 /* 5136 */ 0x2A291,
+	 /* 5137 */ 0x2A600
 };
diff --git a/src/include/common/unicode_version.h b/src/include/common/unicode_version.h
index bf1f64b95b1..5f6a00ba1ea 100644
--- a/src/include/common/unicode_version.h
+++ b/src/include/common/unicode_version.h
@@ -11,4 +11,4 @@
  *-------------------------------------------------------------------------
  */
 
-#define PG_UNICODE_VERSION		"15.1"
+#define PG_UNICODE_VERSION		"16.0"
diff --git a/src/test/regress/expected/unicode.out b/src/test/regress/expected/unicode.out
index 1e06de22649..2faa4c64bea 100644
--- a/src/test/regress/expected/unicode.out
+++ b/src/test/regress/expected/unicode.out
@@ -59,13 +59,13 @@ SELECT normalize(U&'\00E4\24D1c', NFD) = U&'\0061\0308\24D1c' COLLATE "C" AS tes
 SELECT normalize(U&'\0061\0308\24D1c', NFKC) = U&'\00E4bc' COLLATE "C" AS test_nfkc;
  test_nfkc 
 -----------
- t
+ f
 (1 row)
 
 SELECT normalize(U&'\00E4\24D1c', NFKD) = U&'\0061\0308bc' COLLATE "C" AS test_nfkd;
  test_nfkd 
 -----------
- t
+ f
 (1 row)
 
 SELECT "normalize"('abc', 'def');  -- run-time error
@@ -99,7 +99,7 @@ ORDER BY num;
    1 | äbc | t   | f   | t    | f
    2 | äbc | f   | t   | f    | t
    3 | äⓑc | t   | f   | f    | f
-   4 | äⓑc | f   | t   | f    | f
+   4 | äⓑc | f   | t   | f    | t
    5 |     | t   | t   | t    | t
 (5 rows)
 
-- 
2.34.1

v2-0002-Add-pg_upgrade-check-for-Unicode-dependent-relati.patchtext/x-patch; charset=UTF-8; name=v2-0002-Add-pg_upgrade-check-for-Unicode-dependent-relati.patchDownload
From 5dfd89abcb4538ca8ead83c8bbff98b5dae10240 Mon Sep 17 00:00:00 2001
From: Jeff Davis <jeff@j-davis.com>
Date: Mon, 3 Feb 2025 13:02:37 -0800
Subject: [PATCH v2 2/2] Add pg_upgrade check for Unicode-dependent relations.

---
 src/bin/pg_upgrade/check.c | 180 +++++++++++++++++++++++++++++++++++++
 1 file changed, 180 insertions(+)

diff --git a/src/bin/pg_upgrade/check.c b/src/bin/pg_upgrade/check.c
index 7ca1d8fffc9..25b4c025aa5 100644
--- a/src/bin/pg_upgrade/check.c
+++ b/src/bin/pg_upgrade/check.c
@@ -13,6 +13,7 @@
 #include "catalog/pg_class_d.h"
 #include "fe_utils/string_utils.h"
 #include "pg_upgrade.h"
+#include "common/unicode_version.h"
 
 static void check_new_cluster_is_empty(void);
 static void check_is_install_user(ClusterInfo *cluster);
@@ -25,6 +26,7 @@ static void check_for_tables_with_oids(ClusterInfo *cluster);
 static void check_for_pg_role_prefix(ClusterInfo *cluster);
 static void check_for_new_tablespace_dir(void);
 static void check_for_user_defined_encoding_conversions(ClusterInfo *cluster);
+static void check_for_unicode_update(ClusterInfo *cluster);
 static void check_new_cluster_logical_replication_slots(void);
 static void check_new_cluster_subscription_configuration(void);
 static void check_old_cluster_for_valid_slots(void);
@@ -633,6 +635,12 @@ check_and_dump_old_cluster(void)
 
 	check_for_data_types_usage(&old_cluster);
 
+	/*
+	 * Unicode updates can affect some objects that use expressions with
+	 * functions dependent on Unicode.
+	 */
+	check_for_unicode_update(&old_cluster);
+
 	/*
 	 * PG 14 changed the function signature of encoding conversion functions.
 	 * Conversions from older versions cannot be upgraded automatically
@@ -1740,6 +1748,178 @@ check_for_user_defined_encoding_conversions(ClusterInfo *cluster)
 		check_ok();
 }
 
+/*
+ * Callback function for processing results of query for
+ * check_for_unicode_update()'s UpgradeTask.  If the query returned any rows
+ * (i.e., the check failed), write the details to the report file.
+ */
+static void
+process_unicode_update(DbInfo *dbinfo, PGresult *res, void *arg)
+{
+	UpgradeTaskReport *report = (UpgradeTaskReport *) arg;
+	int			ntups = PQntuples(res);
+	int			i_reloid = PQfnumber(res, "reloid");
+	int			i_nspname = PQfnumber(res, "nspname");
+	int			i_relname = PQfnumber(res, "relname");
+
+	if (ntups == 0)
+		return;
+
+	if (report->file == NULL &&
+		(report->file = fopen_priv(report->path, "w")) == NULL)
+		pg_fatal("could not open file \"%s\": %m", report->path);
+
+	fprintf(report->file, "In database: %s\n", dbinfo->db_name);
+
+	for (int rowno = 0; rowno < ntups; rowno++)
+		fprintf(report->file, "  (oid=%s) %s.%s\n",
+				PQgetvalue(res, rowno, i_reloid),
+				PQgetvalue(res, rowno, i_nspname),
+				PQgetvalue(res, rowno, i_relname));
+}
+
+/*
+ * Check if the Unicode version built into Postgres changed between the old
+ * cluster and the new cluster.
+ */
+static bool
+unicode_version_changed(ClusterInfo *cluster)
+{
+	PGconn	   *conn_template1 = connectToServer(cluster, "template1");
+	PGresult   *res;
+	char	   *old_unicode_version;
+	bool		unicode_updated;
+
+	res = executeQueryOrDie(conn_template1, "SELECT unicode_version()");
+	old_unicode_version = PQgetvalue(res, 0, 0);
+	unicode_updated = (strcmp(old_unicode_version, PG_UNICODE_VERSION) != 0);
+
+	PQclear(res);
+	PQfinish(conn_template1);
+
+	return unicode_updated;
+}
+
+/*
+ * check_for_unicode_update()
+ *
+ * Check if the version of Unicode in the old server and the new server
+ * differ. If so, check for indexes, partitioned tables, or constraints that
+ * use expressions with functions dependent on Unicode behavior.
+ */
+static void
+check_for_unicode_update(ClusterInfo *cluster)
+{
+	UpgradeTaskReport report;
+	UpgradeTask *task = upgrade_task_create();
+	const char *query;
+
+	/*
+	 * The builtin provider did not exist prior to version 17. While there are
+	 * still problems that could potentially be caught from earlier versions,
+	 * such as an index on NORMALIZE(), we don't check for that here.
+	 */
+	if (GET_MAJOR_VERSION(cluster->major_version) < 1700)
+		return;
+
+	prep_status("Checking for objects affected by Unicode update");
+
+	if (!unicode_version_changed(cluster))
+	{
+		check_ok();
+		return;
+	}
+
+	report.file = NULL;
+	snprintf(report.path, sizeof(report.path), "%s/%s",
+			 log_opts.basedir,
+			 "unicode_dependent_rels.txt");
+
+	query =
+	/* collations that use built-in Unicode for character semantics */
+		"WITH collations(collid) AS ( "
+		"  SELECT oid FROM pg_collation "
+		"  WHERE collprovider='b' AND colllocale IN ('C.UTF-8','PG_UNICODE_FAST') "
+	/* include default collation, if appropriate */
+		"  UNION "
+		"  SELECT 'pg_catalog.default'::regcollation FROM pg_database "
+		"  WHERE datname = current_database() AND "
+		"  datlocprovider='b' AND datlocale IN ('C.UTF-8','PG_UNICODE_FAST') "
+		"), "
+	/* functions that use built-in Unicode */
+		"functions(procid) AS ( "
+		"  SELECT proc.oid FROM pg_proc proc "
+		"  WHERE proname IN ('normalize','unicode_assigned','unicode_version','is_normalized') AND "
+		"        pronamespace='pg_catalog'::regnamespace "
+		"), "
+	/* operators that use the input collation for character semantics */
+		"coll_operators(operid, procid, collid) AS ( "
+		"  SELECT oper.oid, oper.oprcode, collid FROM pg_operator oper, collations "
+		"  WHERE oprname IN ('~', '~*', '!~', '!~*', '~~*', '!~~*') AND "
+		"        oprnamespace='pg_catalog'::regnamespace AND "
+		"        oprright='text'::regtype "
+		"), "
+	/* functions that use the input collation for character semantics */
+		"coll_functions(procid, collid) AS ( "
+		"  SELECT proc.oid, collid FROM pg_proc proc, collations "
+		"  WHERE proname IN ('lower','initcap','upper') AND "
+		"        pronamespace='pg_catalog'::regnamespace AND "
+		"        proargtypes[0] = 'text'::regtype "
+	/* include functions behind the operators listed above */
+		"  UNION "
+		"  SELECT procid, collid FROM coll_operators "
+		"), "
+
+	/*
+	 * Generate patterns to search a pg_node_tree for the above functions and
+	 * operators.
+	 */
+		"patterns(p) AS ( "
+		"  SELECT '{FUNCEXPR :funcid ' || procid::text || '[ }]' FROM functions "
+		"  UNION "
+		"  SELECT '{OPEXPR :opno ' || operid::text || ' (:\\w+ \\w+ )*' || "
+		"         ':inputcollid ' || collid::text || '[ }]' FROM coll_operators "
+		"  UNION "
+		"  SELECT '{FUNCEXPR :funcid ' || procid::text || ' (:\\w+ \\w+ )*' || "
+		"         ':inputcollid ' || collid::text || '[ }]' FROM coll_functions "
+		") "
+
+	/*
+	 * Match the patterns against expressions used for relation contents.
+	 */
+		"SELECT reloid, relkind, nspname, relname "
+		"  FROM ( "
+		"    SELECT conrelid "
+		"    FROM pg_constraint, patterns WHERE conbin::text ~ p "
+		"  UNION "
+		"    SELECT indexrelid "
+		"    FROM pg_index, patterns WHERE indexprs::text ~ p OR indpred::text ~ p "
+		"  UNION "
+		"    SELECT partrelid "
+		"    FROM pg_partitioned_table, patterns WHERE partexprs::text ~ p "
+		"  ) s(reloid), pg_class c, pg_namespace n, pg_database d "
+		"  WHERE s.reloid = c.oid AND c.relnamespace = n.oid AND "
+		"        d.datname = current_database() AND "
+		"        d.encoding = pg_char_to_encoding('UTF8');";
+
+	upgrade_task_add_step(task, query,
+						  process_unicode_update,
+						  true, &report);
+	upgrade_task_run(task, cluster);
+	upgrade_task_free(task);
+
+	if (report.file)
+	{
+		fclose(report.file);
+		report_status(PG_WARNING, "warning");
+		pg_log(PG_WARNING, "Your installation contains relations that may be affected by a new version of Unicode.\n"
+			   "A list of potentially-affected relations is in the file:\n"
+			   "    %s", report.path);
+	}
+	else
+		check_ok();
+}
+
 /*
  * check_new_cluster_logical_replication_slots()
  *
-- 
2.34.1

#21Michael Paquier
michael@paquier.xyz
In reply to: Jeff Davis (#19)
Re: Update Unicode data to Unicode 16.0.0

On Mon, Feb 17, 2025 at 11:39:14AM -0800, Jeff Davis wrote:

On Mon, 2024-11-18 at 13:58 +0900, Michael Paquier wrote:

Worth noting that unaccent.rules is unchanged after switching to
16.0.0:
cd contrib/unaccent && make update-unicode

What diffs are you seeing? I don't see any diffs to unaccent.rules
since Unicode 14.0.0.

My point exactly: unaccent.rules does not change when switching to
Unicode 16.0.0.
--
Michael

#22Nathan Bossart
nathandbossart@gmail.com
In reply to: Jeff Davis (#20)
Re: Update Unicode data to Unicode 16.0.0

On Mon, Feb 17, 2025 at 11:46:43AM -0800, Jeff Davis wrote:

Attached a version that rebases both patches. In my patch, I added a
report_status().

I briefly looked at v2-0002, and the UpgradeTask usage looks correct to me.
Did you find it easy enough to use?

+	/*
+	 * The builtin provider did not exist prior to version 17. While there are
+	 * still problems that could potentially be caught from earlier versions,
+	 * such as an index on NORMALIZE(), we don't check for that here.
+	 */
+	if (GET_MAJOR_VERSION(cluster->major_version) < 1700)
+		return;

nitpick: In most cases, I think this check is done in
check_and_dump_old_cluster() before actually calling the checking function.
I don't think there's any big problem here, except you might strand the
memory allocated for the task.

+	if (!unicode_version_changed(cluster))
+	{
+		check_ok();
+		return;
+	}

Same nitpick here about stranding the task memory.

+		report_status(PG_WARNING, "warning");
+		pg_log(PG_WARNING, "Your installation contains relations that may be affected by a new version of Unicode.\n"
+			   "A list of potentially-affected relations is in the file:\n"
+			   "    %s", report.path);

This may have been discussed upthread, but is a warning enough? That seems
like something that could very easily be missed.

--
nathan

#23Jeff Davis
pgsql@j-davis.com
In reply to: Nathan Bossart (#22)
Re: Update Unicode data to Unicode 16.0.0

On Wed, 2025-03-05 at 14:33 -0600, Nathan Bossart wrote:

+               report_status(PG_WARNING, "warning");
+               pg_log(PG_WARNING, "Your installation contains
relations that may be affected by a new version of Unicode.\n"
+                          "A list of potentially-affected relations
is in the file:\n"
+                          "    %s", report.path);

This may have been discussed upthread, but is a warning enough?  That
seems
like something that could very easily be missed.

There can be false positives, because even if such an expression index
exists, it's often not an actual problem. Do we want to stop an upgrade
from happening in that case? I doubt it, but if so, we'd need some kind
of option to bypass it.

Regards,
Jeff Davis

#24Nathan Bossart
nathandbossart@gmail.com
In reply to: Jeff Davis (#23)
Re: Update Unicode data to Unicode 16.0.0

On Wed, Mar 05, 2025 at 03:34:06PM -0800, Jeff Davis wrote:

On Wed, 2025-03-05 at 14:33 -0600, Nathan Bossart wrote:

+���������������report_status(PG_WARNING, "warning");
+���������������pg_log(PG_WARNING, "Your installation contains
relations that may be affected by a new version of Unicode.\n"
+������������������������� "A list of potentially-affected relations
is in the file:\n"
+������������������������� "��� %s", report.path);

This may have been discussed upthread, but is a warning enough?� That
seems
like something that could very easily be missed.

There can be false positives, because even if such an expression index
exists, it's often not an actual problem. Do we want to stop an upgrade
from happening in that case? I doubt it, but if so, we'd need some kind
of option to bypass it.

I see. Do we provide any suggested next steps for users to assess the
potentially-affected relations?

--
nathan

#25Jeff Davis
pgsql@j-davis.com
In reply to: Nathan Bossart (#24)
1 attachment(s)
Re: Update Unicode data to Unicode 16.0.0

On Wed, 2025-03-05 at 20:43 -0600, Nathan Bossart wrote:

I see.  Do we provide any suggested next steps for users to assess
the
potentially-affected relations?

I don't know exactly where we should document it, but I've attached a
SQL file that demonstrates what can happen for a PG17->PG18 upgrade,
assuming that we've updated Unicode to 16.0.0 in PG18.

The change in Unicode that I'm focusing on is the addition of U+A7DC,
which is unassigned in Unicode 15.1 and assigned in Unicode 16, which
lowercases to U+019B. The examples assume that the user is using
unassigned code points in PG17/Unicode15.1 and the PG_C_UTF8 collation.

The exmaple table 'test' has a single row with U+A7DC and an index
test_idx on LOWER(t). Because the codepoint is unassigned in PG17,
LOWER(U&'\A7DC') returns itself, while in PG18 it returns U&'\019B'.

The first thing the user should do if they see the warnings during the
--check phase is to rerun with "--check --retain" so they can keep the
file. Maybe that's not great, and we should keep the file regardless
for these particular kinds of warnings.

Then go ahead and upgrade. After upgrade, the user should:

REINDEX INDEX CONCURRENTLY test_idx;

each potentially-affected index. If they have amcheck installed, they
can do:

select bt_index_check(index=>'test_idx', heapallindexed=>true);

first, and only REINDEX if there's an error to fix. Do the same for
other indexes listed in the warning file.

The next example is tuniq, which is similar except that the index is a
unique index, and the table has two values: U&'\019B' and U&'\A7DC'. In
PG17, LOWER() returns U&'\019B' and U&'\A7DC', respectively (the former
because it's already lowercase, and the latter because it's unassigned
and returns itself). In PG18, LOWER() returns U&'\019B' and U&'\019B'.
So, a REINDEX will encounter a uniqueness violation, and the user will
need to decide how to handle the duplicate values.

The next example is tcheck, which does CHECK(LOWER(t) = t), which is
the most plausible check constraint I can think of that would be
affected. In theory, the user might have to reason through what should
be done about a tuple that violates it, but in practice it might be as
simple as:

UPDATE tcheck SET t = LOWER(t) WHERE t <> LOWER(t);

The last example is partitioning where the table is range partitioned
on LOWER(t), and the tuple ends up in the wrong partition on PG18.
After fixing the indexes with:

-- tpart0_lower_idx is fine, no REINDEX needed
select bt_index_check(index=>'tpart0_lower_idx',
heapallindexed=>true);
select bt_index_check(index=>'tpart1_lower_idx',
heapallindexed=>true);
REINDEX INDEX CONCURRENTLY tpart1_lower_idx;

See the problem with:

SET enable_partition_pruning=off;
-- correctly finds one tuple
SELECT * FROM tpart WHERE LOWER(t) = U&'\019B';

SET enable_partition_pruning TO DEFAULT;
-- incorrectly finds zero tuples
SELECT * FROM tpart WHERE LOWER(t) = U&'\019B';

Now move the tuples to the right partitions:

BEGIN;
WITH d AS (
DELETE FROM tpart0
WHERE NOT (LOWER(t) >= U&'\0001' AND LOWER(t) < U&'\8000')
RETURNING *
) INSERT INTO tpart SELECT * FROM d;
WITH d AS (
DELETE FROM tpart1
WHERE NOT (LOWER(t) >= U&'\8000' AND LOWER(t) < U&'\FFFF')
RETURNING *
) INSERT INTO tpart SELECT * FROM d;
COMMIT;

The order of operations should be to fix indexes, unique constraints,
and check constraints first; and then to fix partitioned tables. That
way the above partitioned table queries get correct results using the
indexes.

Granted, this is not a great user experience, and we could do better in
the future (e.g. add some new utility commands). But this is an
improvement in the sense that it's a small number of affected objects,
unlike a collation version change, which affects anything related to
text.

Regards,
Jeff Davis

Attachments:

unicode-upgrade.sqlapplication/sql; name=unicode-upgrade.sqlDownload
#26Peter Eisentraut
peter@eisentraut.org
In reply to: Jeff Davis (#20)
Re: Update Unicode data to Unicode 16.0.0

On 17.02.25 20:46, Jeff Davis wrote:

Note that the Unicode update has a few test diffs for NORMALIZE(),
please check to see if the tests themselves need an update.

I think these test result changes are incorrect. AFAICT, nothing has
changed in the upstream data that would explain such a change.

I didn't get such test differences in my original patch. Did you rebase
the patch or regenerate it? Maybe something went wrong there.

#27Jeremy Schneider
schneider@ardentperf.com
In reply to: Jeff Davis (#25)
Re: Update Unicode data to Unicode 16.0.0

On Fri, 07 Mar 2025 13:11:18 -0800
Jeff Davis <pgsql@j-davis.com> wrote:

On Wed, 2025-03-05 at 20:43 -0600, Nathan Bossart wrote:

I see.  Do we provide any suggested next steps for users to assess
the
potentially-affected relations?

I don't know exactly where we should document it, but I've attached a
SQL file that demonstrates what can happen for a PG17->PG18 upgrade,
assuming that we've updated Unicode to 16.0.0 in PG18.

The change in Unicode that I'm focusing on is the addition of U+A7DC,
which is unassigned in Unicode 15.1 and assigned in Unicode 16, which
lowercases to U+019B. The examples assume that the user is using
unassigned code points in PG17/Unicode15.1 and the PG_C_UTF8
collation.

It seems the consensus is to update unicode in core... FWIW, I'm still
in favor of leaving it alone because ICU is there for when I need
up-to-date unicode versions.

From my perspective, the whole point of the builtin collation was to
one option that avoids these problems that come with updating both ICU
and glibc.

So I guess the main point of the builtin provider just that it's faster
than ICU?

-Jeremy

#28Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Jeremy Schneider (#27)
Re: Update Unicode data to Unicode 16.0.0

On Fri, 2025-03-14 at 23:54 -0700, Jeremy Schneider wrote:

On Fri, 07 Mar 2025 13:11:18 -0800
It seems the consensus is to update unicode in core... FWIW, I'm still
in favor of leaving it alone because ICU is there for when I need
up-to-date unicode versions.

Me too.

From my perspective, the whole point of the builtin collation was to
one option that avoids these problems that come with updating both ICU
and glibc.

+1

Yours,
Laurenz Albe

#29Joe Conway
mail@joeconway.com
In reply to: Laurenz Albe (#28)
Re: Update Unicode data to Unicode 16.0.0

On 3/15/25 03:26, Laurenz Albe wrote:

On Fri, 2025-03-14 at 23:54 -0700, Jeremy Schneider wrote:

On Fri, 07 Mar 2025 13:11:18 -0800
It seems the consensus is to update unicode in core... FWIW, I'm still
in favor of leaving it alone because ICU is there for when I need
up-to-date unicode versions.

Me too.

+1

From my perspective, the whole point of the builtin collation was to
one option that avoids these problems that come with updating both ICU
and glibc.

+1

+1

In the long term I think we should figure out how to support newer
versions of unicode for the builtin, but in my mind that might involve
the necessity of supporting multiple versions of unicode such that the
choice remains to remain on the older one.

--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com

#30Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jeremy Schneider (#27)
Re: Update Unicode data to Unicode 16.0.0

Jeremy Schneider <schneider@ardentperf.com> writes:

On Fri, 07 Mar 2025 13:11:18 -0800
Jeff Davis <pgsql@j-davis.com> wrote:

The change in Unicode that I'm focusing on is the addition of U+A7DC,
which is unassigned in Unicode 15.1 and assigned in Unicode 16, which
lowercases to U+019B. The examples assume that the user is using
unassigned code points in PG17/Unicode15.1 and the PG_C_UTF8
collation.

It seems the consensus is to update unicode in core... FWIW, I'm still
in favor of leaving it alone because ICU is there for when I need
up-to-date unicode versions.

From my perspective, the whole point of the builtin collation was to
one option that avoids these problems that come with updating both ICU
and glibc.

I don't really buy this argument. If we sit on Unicode 15 until that
becomes untenable, which it will, then people will still be faced
with a behavioral change whenever we bow to reality and invent a
"builtin-2.0" or whatever collation. Moreover, by then they might
well have instances of the newly-assigned code points in their
database, making the changeover real and perhaps painful for them.

On the other hand, if we keep up with the Joneses by updating the
Unicode data, we can hopefully put those behavioral changes into
effect *before* they'd affect any real data. So it seems to me
that freezing our Unicode data is avoiding hypothetical pain now
at the price of certain pain later.

I compare this to our routine timezone data updates, which certainly
have not been without occasional pain ... but does anyone seriously
want to argue that we should still be running tzdata from 20 years
back? Or even 5 years back?

In fact, on the analogy of timezones, I think we should not only
adopt newly-published Unicode versions pretty quickly but push
them into released branches as well. Otherwise the benefit of
staying ahead of real use of the new code points isn't there
for end users.

regards, tom lane

#31Jeff Davis
pgsql@j-davis.com
In reply to: Tom Lane (#30)
Re: Update Unicode data to Unicode 16.0.0

On Sat, 2025-03-15 at 12:15 -0400, Tom Lane wrote:

On the other hand, if we keep up with the Joneses by updating the
Unicode data, we can hopefully put those behavioral changes into
effect *before* they'd affect any real data.

That's a good point.

Regards,
Jeff Davis

#32Jeff Davis
pgsql@j-davis.com
In reply to: Jeremy Schneider (#27)
Re: Update Unicode data to Unicode 16.0.0

On Fri, 2025-03-14 at 23:54 -0700, Jeremy Schneider wrote:

From my perspective, the whole point of the builtin collation was to
one option that avoids these problems that come with updating both
ICU
and glibc.

So I guess the main point of the builtin provider just that it's
faster
than ICU?

It doesn't break primary keys.

Also, it's stable within a major version, we can document and test its
behavior, it solves 99% of the upgrade problem, and what problems
remains are much more manageable.

And yes, collation is way, way faster than ICU.

Regards,
Jeff Davis

#33Jeremy Schneider
schneider@ardentperf.com
In reply to: Jeff Davis (#31)
Re: Update Unicode data to Unicode 16.0.0

On Mar 15, 2025, at 10:22 AM, Jeff Davis <pgsql@j-davis.com> wrote:

On Sat, 2025-03-15 at 12:15 -0400, Tom Lane wrote:

On the other hand, if we keep up with the Joneses by updating the
Unicode data, we can hopefully put those behavioral changes into
effect *before* they'd affect any real data.

That's a good point.

Jeff - thanks for the reminder that this is just about character semantics and not ordering. Obviously C collation by definition (code point ordering) doesn’t change sort order… two weeks ago I was working on updating the torture test GitHub page with glibc collation changes up through Ubuntu 24.10 so my mind was definitely over there. No detected changes in en-US so that’s great news. 🙂

Is the simple answer that functions & clauses related to both time zones and character semantics should just all be considered STABLE instead of IMMUTABLE?

I think if that were the case then changes across a minor version would simply be allowed by definition right? No need for warnings.

This would impact the ability to create case-insensitive indexes.

-Jeremy

Sent from my TI-83

#34vignesh C
vignesh21@gmail.com
In reply to: Jeff Davis (#25)
Re: Update Unicode data to Unicode 16.0.0

On Sat, 8 Mar 2025 at 02:41, Jeff Davis <pgsql@j-davis.com> wrote:

On Wed, 2025-03-05 at 20:43 -0600, Nathan Bossart wrote:

I see. Do we provide any suggested next steps for users to assess
the
potentially-affected relations?

I don't know exactly where we should document it, but I've attached a
SQL file that demonstrates what can happen for a PG17->PG18 upgrade,
assuming that we've updated Unicode to 16.0.0 in PG18.

The change in Unicode that I'm focusing on is the addition of U+A7DC,
which is unassigned in Unicode 15.1 and assigned in Unicode 16, which
lowercases to U+019B. The examples assume that the user is using
unassigned code points in PG17/Unicode15.1 and the PG_C_UTF8 collation.

The exmaple table 'test' has a single row with U+A7DC and an index
test_idx on LOWER(t). Because the codepoint is unassigned in PG17,
LOWER(U&'\A7DC') returns itself, while in PG18 it returns U&'\019B'.

The first thing the user should do if they see the warnings during the
--check phase is to rerun with "--check --retain" so they can keep the
file. Maybe that's not great, and we should keep the file regardless
for these particular kinds of warnings.

Then go ahead and upgrade. After upgrade, the user should:

REINDEX INDEX CONCURRENTLY test_idx;

each potentially-affected index. If they have amcheck installed, they
can do:

select bt_index_check(index=>'test_idx', heapallindexed=>true);

first, and only REINDEX if there's an error to fix. Do the same for
other indexes listed in the warning file.

The next example is tuniq, which is similar except that the index is a
unique index, and the table has two values: U&'\019B' and U&'\A7DC'. In
PG17, LOWER() returns U&'\019B' and U&'\A7DC', respectively (the former
because it's already lowercase, and the latter because it's unassigned
and returns itself). In PG18, LOWER() returns U&'\019B' and U&'\019B'.
So, a REINDEX will encounter a uniqueness violation, and the user will
need to decide how to handle the duplicate values.

The next example is tcheck, which does CHECK(LOWER(t) = t), which is
the most plausible check constraint I can think of that would be
affected. In theory, the user might have to reason through what should
be done about a tuple that violates it, but in practice it might be as
simple as:

UPDATE tcheck SET t = LOWER(t) WHERE t <> LOWER(t);

The last example is partitioning where the table is range partitioned
on LOWER(t), and the tuple ends up in the wrong partition on PG18.
After fixing the indexes with:

-- tpart0_lower_idx is fine, no REINDEX needed
select bt_index_check(index=>'tpart0_lower_idx',
heapallindexed=>true);
select bt_index_check(index=>'tpart1_lower_idx',
heapallindexed=>true);
REINDEX INDEX CONCURRENTLY tpart1_lower_idx;

See the problem with:

SET enable_partition_pruning=off;
-- correctly finds one tuple
SELECT * FROM tpart WHERE LOWER(t) = U&'\019B';

SET enable_partition_pruning TO DEFAULT;
-- incorrectly finds zero tuples
SELECT * FROM tpart WHERE LOWER(t) = U&'\019B';

Now move the tuples to the right partitions:

BEGIN;
WITH d AS (
DELETE FROM tpart0
WHERE NOT (LOWER(t) >= U&'\0001' AND LOWER(t) < U&'\8000')
RETURNING *
) INSERT INTO tpart SELECT * FROM d;
WITH d AS (
DELETE FROM tpart1
WHERE NOT (LOWER(t) >= U&'\8000' AND LOWER(t) < U&'\FFFF')
RETURNING *
) INSERT INTO tpart SELECT * FROM d;
COMMIT;

The order of operations should be to fix indexes, unique constraints,
and check constraints first; and then to fix partitioned tables. That
way the above partitioned table queries get correct results using the
indexes.

Granted, this is not a great user experience, and we could do better in
the future (e.g. add some new utility commands). But this is an
improvement in the sense that it's a small number of affected objects,
unlike a collation version change, which affects anything related to
text.

We currently have two Commitfest entries for the same thread at [1]https://commitfest.postgresql.org/patch/5472/
and [2]https://commitfest.postgresql.org/patch/5563/. Are both still necessary, or can we consolidate tracking into
a single entry?
[1]: https://commitfest.postgresql.org/patch/5472/
[2]: https://commitfest.postgresql.org/patch/5563/

Regards,
Vignesh

#35Jeff Davis
pgsql@j-davis.com
In reply to: Jeremy Schneider (#33)
Re: Update Unicode data to Unicode 16.0.0

On Sat, 2025-03-15 at 18:23 -0700, Jeremy Schneider wrote:

Is the simple answer that functions & clauses related to both time
zones and character semantics should just all be considered STABLE
instead of IMMUTABLE?

That was discussed a few times, but:

(a) That doesn't exactly solve the problem, because people still need
indexes on LOWER() or CASEFOLD(); and

(b) If we change IMMUTABLE to mean "returns the same results on every
platform for all time", that would be too strict for many purposes,
like the planner doing constant folding.

I have been thinking about ways we can express the right dependencies,
and I may be making some proposals along those lines.

Regards,
Jeff Davis

#36Jeff Davis
pgsql@j-davis.com
In reply to: vignesh C (#34)
Re: Update Unicode data to Unicode 16.0.0

On Sun, 2025-03-16 at 19:10 +0530, vignesh C wrote:

We currently have two Commitfest entries for the same thread at [1]
and [2]. Are both still necessary, or can we consolidate tracking
into
a single entry?

I'm fine removing my CF entry, but unfortunately there's no "withdrawn
-- duplicate", so it might send the wrong message.

Regards,
Jeff Davis

#37Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jeff Davis (#35)
Re: Update Unicode data to Unicode 16.0.0

Jeff Davis <pgsql@j-davis.com> writes:

That was discussed a few times, but:

(a) That doesn't exactly solve the problem, because people still need
indexes on LOWER() or CASEFOLD(); and

(b) If we change IMMUTABLE to mean "returns the same results on every
platform for all time", that would be too strict for many purposes,
like the planner doing constant folding.

Yeah. Not only would the set of functions meeting such a standard be
vanishingly small, but so would the set of use-cases. What we need is
some sort of understanding that "this is okay to use in indexes",
"this is okay to constant-fold when planning", etc. Maybe it's less
about "is it okay to just assume this" and more about "can we devise
a method for figuring out when we have to reindex, replan, etc".
We've got bits of that in our collation versioning infrastructure,
but that doesn't cover every source of infrequently-mutating behavior.

I have been thinking about ways we can express the right dependencies,
and I may be making some proposals along those lines.

I await a proposal with interest.

regards, tom lane

#38Jeff Davis
pgsql@j-davis.com
In reply to: Peter Eisentraut (#26)
2 attachment(s)
Re: Update Unicode data to Unicode 16.0.0

On Thu, 2025-03-13 at 14:49 +0100, Peter Eisentraut wrote:

I think these test result changes are incorrect.  AFAICT, nothing has
changed in the upstream data that would explain such a change.

I didn't get such test differences in my original patch.  Did you
rebase
the patch or regenerate it?  Maybe something went wrong there.

Right. The previous version was improperly rebased.

I went back to your original version and rebased over master (including
the latest optimizations for case mapping), and then rebased my changes
on top of that. Attached.

One annoyance with the recent case mapping optimizations is that the
Unicode update diff is larger, similar to the diff for
unicode_norm_hashfunc.h. Previously, it was binary search, so the only
differences were logical differences.

Regards,
Jeff Davis

Attachments:

vFinal-0001-Update-Unicode-data-to-Unicode-16.0.0.patchtext/x-patch; charset=UTF-8; name=vFinal-0001-Update-Unicode-data-to-Unicode-16.0.0.patchDownload
From 0678d43b9d09b970e3b3b32802c09e2d9f7f3372 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Mon, 11 Nov 2024 07:21:48 +0100
Subject: [PATCH vFinal 1/2] Update Unicode data to Unicode 16.0.0

---
 src/Makefile.global.in                        |    2 +-
 src/common/unicode/meson.build                |    2 +-
 src/include/common/unicode_case_table.h       | 5612 +++++++++--------
 src/include/common/unicode_category_table.h   |  184 +-
 .../common/unicode_east_asian_fw_table.h      |   20 +-
 src/include/common/unicode_nonspacing_table.h |   18 +-
 src/include/common/unicode_norm_hashfunc.h    | 4530 ++++++-------
 src/include/common/unicode_norm_table.h       |  884 +--
 src/include/common/unicode_normprops_table.h  | 2617 ++++----
 src/include/common/unicode_version.h          |    2 +-
 10 files changed, 7262 insertions(+), 6609 deletions(-)

diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 3b620bac5ac..c6fedbe41fb 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -358,7 +358,7 @@ DOWNLOAD = wget -O $@ --no-use-server-timestamps
 # Pick a release from here: <https://www.unicode.org/Public/>.  Note
 # that the most recent release listed there is often a pre-release;
 # don't pick that one, except for testing.
-UNICODE_VERSION = 15.1.0
+UNICODE_VERSION = 16.0.0
 
 # Pick a release from here: <http://cldr.unicode.org/index/downloads>
 CLDR_VERSION = 45
diff --git a/src/common/unicode/meson.build b/src/common/unicode/meson.build
index b98940de279..c6a4715ccc5 100644
--- a/src/common/unicode/meson.build
+++ b/src/common/unicode/meson.build
@@ -1,6 +1,6 @@
 # Copyright (c) 2022-2025, PostgreSQL Global Development Group
 
-UNICODE_VERSION = '15.1.0'
+UNICODE_VERSION = '16.0.0'
 
 unicode_data = {}
 unicode_baseurl = 'https://www.unicode.org/Public/@0@/ucd/@1@'
diff --git a/src/include/common/unicode_case_table.h b/src/include/common/unicode_case_table.h
index 5b33f64a666..d037e960d6c 100644
--- a/src/include/common/unicode_case_table.h
+++ b/src/include/common/unicode_case_table.h
@@ -166,7 +166,7 @@ static const pg_special_case special_case[106] =
  * The entry case_map_lower[case_index(codepoint)] is the mapping for the
  * given codepoint.
  */
-static const pg_wchar case_map_lower[1677] =
+static const pg_wchar case_map_lower[1704] =
 {
 	0x000000,					/* reserved */
 	0x000000,					/* U+000000 */
@@ -415,6 +415,7 @@ static const pg_wchar case_map_lower[1677] =
 	0x000268,					/* U+000197 */
 	0x000199,					/* U+000198 */
 	0x00019a,					/* U+00019a */
+	0x00019b,					/* U+00019b */
 	0x00026f,					/* U+00019c */
 	0x000272,					/* U+00019d */
 	0x00019e,					/* U+00019e */
@@ -506,6 +507,7 @@ static const pg_wchar case_map_lower[1677] =
 	0x000252,					/* U+000252 */
 	0x00025c,					/* U+00025c */
 	0x000261,					/* U+000261 */
+	0x000264,					/* U+000264 */
 	0x000265,					/* U+000265 */
 	0x000266,					/* U+000266 */
 	0x00026a,					/* U+00026a */
@@ -954,6 +956,7 @@ static const pg_wchar case_map_lower[1677] =
 	0x001c86,					/* U+001c86 */
 	0x001c87,					/* U+001c87 */
 	0x001c88,					/* U+001c88 */
+	0x001c8a,					/* U+001c89 */
 	0x0010d0,					/* U+001c90 */
 	0x0010d1,					/* U+001c91 */
 	0x0010d2,					/* U+001c92 */
@@ -1543,9 +1546,11 @@ static const pg_wchar case_map_lower[1677] =
 	0x00a7c3,					/* U+00a7c2 */
 	0x00a7c8,					/* U+00a7c7 */
 	0x00a7ca,					/* U+00a7c9 */
+	0x00a7cd,					/* U+00a7cc */
 	0x00a7d1,					/* U+00a7d0 */
 	0x00a7d7,					/* U+00a7d6 */
 	0x00a7d9,					/* U+00a7d8 */
+	0x00a7db,					/* U+00a7da */
 	0x00a7f6,					/* U+00a7f5 */
 	0x00fb00,					/* U+00fb00 */
 	0x00fb01,					/* U+00fb01 */
@@ -1747,6 +1752,28 @@ static const pg_wchar case_map_lower[1677] =
 	0x010cf0,					/* U+010cb0 */
 	0x010cf1,					/* U+010cb1 */
 	0x010cf2,					/* U+010cb2 */
+	0x010d70,					/* U+010d50 */
+	0x010d71,					/* U+010d51 */
+	0x010d72,					/* U+010d52 */
+	0x010d73,					/* U+010d53 */
+	0x010d74,					/* U+010d54 */
+	0x010d75,					/* U+010d55 */
+	0x010d76,					/* U+010d56 */
+	0x010d77,					/* U+010d57 */
+	0x010d78,					/* U+010d58 */
+	0x010d79,					/* U+010d59 */
+	0x010d7a,					/* U+010d5a */
+	0x010d7b,					/* U+010d5b */
+	0x010d7c,					/* U+010d5c */
+	0x010d7d,					/* U+010d5d */
+	0x010d7e,					/* U+010d5e */
+	0x010d7f,					/* U+010d5f */
+	0x010d80,					/* U+010d60 */
+	0x010d81,					/* U+010d61 */
+	0x010d82,					/* U+010d62 */
+	0x010d83,					/* U+010d63 */
+	0x010d84,					/* U+010d64 */
+	0x010d85,					/* U+010d65 */
 	0x0118c0,					/* U+0118a0 */
 	0x0118c1,					/* U+0118a1 */
 	0x0118c2,					/* U+0118a2 */
@@ -1852,7 +1879,7 @@ static const pg_wchar case_map_lower[1677] =
  * The entry case_map_title[case_index(codepoint)] is the mapping for the
  * given codepoint.
  */
-static const pg_wchar case_map_title[1677] =
+static const pg_wchar case_map_title[1704] =
 {
 	0x000000,					/* reserved */
 	0x000000,					/* U+000000 */
@@ -2101,6 +2128,7 @@ static const pg_wchar case_map_title[1677] =
 	0x000197,					/* U+000197 */
 	0x000198,					/* U+000198 */
 	0x00023d,					/* U+00019a */
+	0x00a7dc,					/* U+00019b */
 	0x00019c,					/* U+00019c */
 	0x00019d,					/* U+00019d */
 	0x000220,					/* U+00019e */
@@ -2192,6 +2220,7 @@ static const pg_wchar case_map_title[1677] =
 	0x002c70,					/* U+000252 */
 	0x00a7ab,					/* U+00025c */
 	0x00a7ac,					/* U+000261 */
+	0x00a7cb,					/* U+000264 */
 	0x00a78d,					/* U+000265 */
 	0x00a7aa,					/* U+000266 */
 	0x00a7ae,					/* U+00026a */
@@ -2640,6 +2669,7 @@ static const pg_wchar case_map_title[1677] =
 	0x00042a,					/* U+001c86 */
 	0x000462,					/* U+001c87 */
 	0x00a64a,					/* U+001c88 */
+	0x001c89,					/* U+001c89 */
 	0x001c90,					/* U+001c90 */
 	0x001c91,					/* U+001c91 */
 	0x001c92,					/* U+001c92 */
@@ -3229,9 +3259,11 @@ static const pg_wchar case_map_title[1677] =
 	0x00a7c2,					/* U+00a7c2 */
 	0x00a7c7,					/* U+00a7c7 */
 	0x00a7c9,					/* U+00a7c9 */
+	0x00a7cc,					/* U+00a7cc */
 	0x00a7d0,					/* U+00a7d0 */
 	0x00a7d6,					/* U+00a7d6 */
 	0x00a7d8,					/* U+00a7d8 */
+	0x00a7da,					/* U+00a7da */
 	0x00a7f5,					/* U+00a7f5 */
 	0x00fb00,					/* U+00fb00 */
 	0x00fb01,					/* U+00fb01 */
@@ -3433,6 +3465,28 @@ static const pg_wchar case_map_title[1677] =
 	0x010cb0,					/* U+010cb0 */
 	0x010cb1,					/* U+010cb1 */
 	0x010cb2,					/* U+010cb2 */
+	0x010d50,					/* U+010d50 */
+	0x010d51,					/* U+010d51 */
+	0x010d52,					/* U+010d52 */
+	0x010d53,					/* U+010d53 */
+	0x010d54,					/* U+010d54 */
+	0x010d55,					/* U+010d55 */
+	0x010d56,					/* U+010d56 */
+	0x010d57,					/* U+010d57 */
+	0x010d58,					/* U+010d58 */
+	0x010d59,					/* U+010d59 */
+	0x010d5a,					/* U+010d5a */
+	0x010d5b,					/* U+010d5b */
+	0x010d5c,					/* U+010d5c */
+	0x010d5d,					/* U+010d5d */
+	0x010d5e,					/* U+010d5e */
+	0x010d5f,					/* U+010d5f */
+	0x010d60,					/* U+010d60 */
+	0x010d61,					/* U+010d61 */
+	0x010d62,					/* U+010d62 */
+	0x010d63,					/* U+010d63 */
+	0x010d64,					/* U+010d64 */
+	0x010d65,					/* U+010d65 */
 	0x0118a0,					/* U+0118a0 */
 	0x0118a1,					/* U+0118a1 */
 	0x0118a2,					/* U+0118a2 */
@@ -3538,7 +3592,7 @@ static const pg_wchar case_map_title[1677] =
  * The entry case_map_upper[case_index(codepoint)] is the mapping for the
  * given codepoint.
  */
-static const pg_wchar case_map_upper[1677] =
+static const pg_wchar case_map_upper[1704] =
 {
 	0x000000,					/* reserved */
 	0x000000,					/* U+000000 */
@@ -3787,6 +3841,7 @@ static const pg_wchar case_map_upper[1677] =
 	0x000197,					/* U+000197 */
 	0x000198,					/* U+000198 */
 	0x00023d,					/* U+00019a */
+	0x00a7dc,					/* U+00019b */
 	0x00019c,					/* U+00019c */
 	0x00019d,					/* U+00019d */
 	0x000220,					/* U+00019e */
@@ -3878,6 +3933,7 @@ static const pg_wchar case_map_upper[1677] =
 	0x002c70,					/* U+000252 */
 	0x00a7ab,					/* U+00025c */
 	0x00a7ac,					/* U+000261 */
+	0x00a7cb,					/* U+000264 */
 	0x00a78d,					/* U+000265 */
 	0x00a7aa,					/* U+000266 */
 	0x00a7ae,					/* U+00026a */
@@ -4326,6 +4382,7 @@ static const pg_wchar case_map_upper[1677] =
 	0x00042a,					/* U+001c86 */
 	0x000462,					/* U+001c87 */
 	0x00a64a,					/* U+001c88 */
+	0x001c89,					/* U+001c89 */
 	0x001c90,					/* U+001c90 */
 	0x001c91,					/* U+001c91 */
 	0x001c92,					/* U+001c92 */
@@ -4915,9 +4972,11 @@ static const pg_wchar case_map_upper[1677] =
 	0x00a7c2,					/* U+00a7c2 */
 	0x00a7c7,					/* U+00a7c7 */
 	0x00a7c9,					/* U+00a7c9 */
+	0x00a7cc,					/* U+00a7cc */
 	0x00a7d0,					/* U+00a7d0 */
 	0x00a7d6,					/* U+00a7d6 */
 	0x00a7d8,					/* U+00a7d8 */
+	0x00a7da,					/* U+00a7da */
 	0x00a7f5,					/* U+00a7f5 */
 	0x00fb00,					/* U+00fb00 */
 	0x00fb01,					/* U+00fb01 */
@@ -5119,6 +5178,28 @@ static const pg_wchar case_map_upper[1677] =
 	0x010cb0,					/* U+010cb0 */
 	0x010cb1,					/* U+010cb1 */
 	0x010cb2,					/* U+010cb2 */
+	0x010d50,					/* U+010d50 */
+	0x010d51,					/* U+010d51 */
+	0x010d52,					/* U+010d52 */
+	0x010d53,					/* U+010d53 */
+	0x010d54,					/* U+010d54 */
+	0x010d55,					/* U+010d55 */
+	0x010d56,					/* U+010d56 */
+	0x010d57,					/* U+010d57 */
+	0x010d58,					/* U+010d58 */
+	0x010d59,					/* U+010d59 */
+	0x010d5a,					/* U+010d5a */
+	0x010d5b,					/* U+010d5b */
+	0x010d5c,					/* U+010d5c */
+	0x010d5d,					/* U+010d5d */
+	0x010d5e,					/* U+010d5e */
+	0x010d5f,					/* U+010d5f */
+	0x010d60,					/* U+010d60 */
+	0x010d61,					/* U+010d61 */
+	0x010d62,					/* U+010d62 */
+	0x010d63,					/* U+010d63 */
+	0x010d64,					/* U+010d64 */
+	0x010d65,					/* U+010d65 */
 	0x0118a0,					/* U+0118a0 */
 	0x0118a1,					/* U+0118a1 */
 	0x0118a2,					/* U+0118a2 */
@@ -5224,7 +5305,7 @@ static const pg_wchar case_map_upper[1677] =
  * The entry case_map_fold[case_index(codepoint)] is the mapping for the
  * given codepoint.
  */
-static const pg_wchar case_map_fold[1677] =
+static const pg_wchar case_map_fold[1704] =
 {
 	0x000000,					/* reserved */
 	0x000000,					/* U+000000 */
@@ -5473,6 +5554,7 @@ static const pg_wchar case_map_fold[1677] =
 	0x000268,					/* U+000197 */
 	0x000199,					/* U+000198 */
 	0x00019a,					/* U+00019a */
+	0x00019b,					/* U+00019b */
 	0x00026f,					/* U+00019c */
 	0x000272,					/* U+00019d */
 	0x00019e,					/* U+00019e */
@@ -5564,6 +5646,7 @@ static const pg_wchar case_map_fold[1677] =
 	0x000252,					/* U+000252 */
 	0x00025c,					/* U+00025c */
 	0x000261,					/* U+000261 */
+	0x000264,					/* U+000264 */
 	0x000265,					/* U+000265 */
 	0x000266,					/* U+000266 */
 	0x00026a,					/* U+00026a */
@@ -6012,6 +6095,7 @@ static const pg_wchar case_map_fold[1677] =
 	0x00044a,					/* U+001c86 */
 	0x000463,					/* U+001c87 */
 	0x00a64b,					/* U+001c88 */
+	0x001c8a,					/* U+001c89 */
 	0x0010d0,					/* U+001c90 */
 	0x0010d1,					/* U+001c91 */
 	0x0010d2,					/* U+001c92 */
@@ -6601,9 +6685,11 @@ static const pg_wchar case_map_fold[1677] =
 	0x00a7c3,					/* U+00a7c2 */
 	0x00a7c8,					/* U+00a7c7 */
 	0x00a7ca,					/* U+00a7c9 */
+	0x00a7cd,					/* U+00a7cc */
 	0x00a7d1,					/* U+00a7d0 */
 	0x00a7d7,					/* U+00a7d6 */
 	0x00a7d9,					/* U+00a7d8 */
+	0x00a7db,					/* U+00a7da */
 	0x00a7f6,					/* U+00a7f5 */
 	0x00fb00,					/* U+00fb00 */
 	0x00fb01,					/* U+00fb01 */
@@ -6805,6 +6891,28 @@ static const pg_wchar case_map_fold[1677] =
 	0x010cf0,					/* U+010cb0 */
 	0x010cf1,					/* U+010cb1 */
 	0x010cf2,					/* U+010cb2 */
+	0x010d70,					/* U+010d50 */
+	0x010d71,					/* U+010d51 */
+	0x010d72,					/* U+010d52 */
+	0x010d73,					/* U+010d53 */
+	0x010d74,					/* U+010d54 */
+	0x010d75,					/* U+010d55 */
+	0x010d76,					/* U+010d56 */
+	0x010d77,					/* U+010d57 */
+	0x010d78,					/* U+010d58 */
+	0x010d79,					/* U+010d59 */
+	0x010d7a,					/* U+010d5a */
+	0x010d7b,					/* U+010d5b */
+	0x010d7c,					/* U+010d5c */
+	0x010d7d,					/* U+010d5d */
+	0x010d7e,					/* U+010d5e */
+	0x010d7f,					/* U+010d5f */
+	0x010d80,					/* U+010d60 */
+	0x010d81,					/* U+010d61 */
+	0x010d82,					/* U+010d62 */
+	0x010d83,					/* U+010d63 */
+	0x010d84,					/* U+010d64 */
+	0x010d85,					/* U+010d65 */
 	0x0118c0,					/* U+0118a0 */
 	0x0118c1,					/* U+0118a1 */
 	0x0118c2,					/* U+0118a2 */
@@ -6910,7 +7018,7 @@ static const pg_wchar case_map_fold[1677] =
  * The entry case_map_special[case_index(codepoint)] is the index in
  * special_case for that codepoint, or 0 if no special case mapping exists.
  */
-static const uint8 case_map_special[1677] =
+static const uint8 case_map_special[1704] =
 {
 	0,							/* reserved */
 	0,							/* U+000000 */
@@ -7159,6 +7267,7 @@ static const uint8 case_map_special[1677] =
 	0,							/* U+000197 */
 	0,							/* U+000198 */
 	0,							/* U+00019a */
+	0,							/* U+00019b */
 	0,							/* U+00019c */
 	0,							/* U+00019d */
 	0,							/* U+00019e */
@@ -7250,6 +7359,7 @@ static const uint8 case_map_special[1677] =
 	0,							/* U+000252 */
 	0,							/* U+00025c */
 	0,							/* U+000261 */
+	0,							/* U+000264 */
 	0,							/* U+000265 */
 	0,							/* U+000266 */
 	0,							/* U+00026a */
@@ -7698,6 +7808,7 @@ static const uint8 case_map_special[1677] =
 	0,							/* U+001c86 */
 	0,							/* U+001c87 */
 	0,							/* U+001c88 */
+	0,							/* U+001c89 */
 	0,							/* U+001c90 */
 	0,							/* U+001c91 */
 	0,							/* U+001c92 */
@@ -8287,9 +8398,11 @@ static const uint8 case_map_special[1677] =
 	0,							/* U+00a7c2 */
 	0,							/* U+00a7c7 */
 	0,							/* U+00a7c9 */
+	0,							/* U+00a7cc */
 	0,							/* U+00a7d0 */
 	0,							/* U+00a7d6 */
 	0,							/* U+00a7d8 */
+	0,							/* U+00a7da */
 	0,							/* U+00a7f5 */
 	94,							/* U+00fb00 */
 	95,							/* U+00fb01 */
@@ -8491,6 +8604,28 @@ static const uint8 case_map_special[1677] =
 	0,							/* U+010cb0 */
 	0,							/* U+010cb1 */
 	0,							/* U+010cb2 */
+	0,							/* U+010d50 */
+	0,							/* U+010d51 */
+	0,							/* U+010d52 */
+	0,							/* U+010d53 */
+	0,							/* U+010d54 */
+	0,							/* U+010d55 */
+	0,							/* U+010d56 */
+	0,							/* U+010d57 */
+	0,							/* U+010d58 */
+	0,							/* U+010d59 */
+	0,							/* U+010d5a */
+	0,							/* U+010d5b */
+	0,							/* U+010d5c */
+	0,							/* U+010d5d */
+	0,							/* U+010d5e */
+	0,							/* U+010d5f */
+	0,							/* U+010d60 */
+	0,							/* U+010d61 */
+	0,							/* U+010d62 */
+	0,							/* U+010d63 */
+	0,							/* U+010d64 */
+	0,							/* U+010d65 */
 	0,							/* U+0118a0 */
 	0,							/* U+0118a1 */
 	0,							/* U+0118a2 */
@@ -8608,7 +8743,7 @@ static const pg_wchar *casekind_map[NCaseKind] =
  * of the following arrays: case_map_lower, case_map_title, case_map_upper,
  * case_map_fold.
  */
-static const uint16 case_map[4631] =
+static const uint16 case_map[4778] =
 {
 	1,							/* U+000000 */
 	2,							/* U+000001 */
@@ -9021,190 +9156,190 @@ static const uint16 case_map[4631] =
 	245,						/* U+000198 */
 	245,						/* U+000199 */
 	246,						/* U+00019A */
-	0,							/* U+00019B */
-	247,						/* U+00019C */
-	248,						/* U+00019D */
-	249,						/* U+00019E */
-	250,						/* U+00019F */
-	251,						/* U+0001A0 */
-	251,						/* U+0001A1 */
-	252,						/* U+0001A2 */
-	252,						/* U+0001A3 */
-	253,						/* U+0001A4 */
-	253,						/* U+0001A5 */
-	254,						/* U+0001A6 */
-	255,						/* U+0001A7 */
-	255,						/* U+0001A8 */
-	256,						/* U+0001A9 */
+	247,						/* U+00019B */
+	248,						/* U+00019C */
+	249,						/* U+00019D */
+	250,						/* U+00019E */
+	251,						/* U+00019F */
+	252,						/* U+0001A0 */
+	252,						/* U+0001A1 */
+	253,						/* U+0001A2 */
+	253,						/* U+0001A3 */
+	254,						/* U+0001A4 */
+	254,						/* U+0001A5 */
+	255,						/* U+0001A6 */
+	256,						/* U+0001A7 */
+	256,						/* U+0001A8 */
+	257,						/* U+0001A9 */
 	0,							/* U+0001AA */
 	0,							/* U+0001AB */
-	257,						/* U+0001AC */
-	257,						/* U+0001AD */
-	258,						/* U+0001AE */
-	259,						/* U+0001AF */
-	259,						/* U+0001B0 */
-	260,						/* U+0001B1 */
-	261,						/* U+0001B2 */
-	262,						/* U+0001B3 */
-	262,						/* U+0001B4 */
-	263,						/* U+0001B5 */
-	263,						/* U+0001B6 */
-	264,						/* U+0001B7 */
-	265,						/* U+0001B8 */
-	265,						/* U+0001B9 */
+	258,						/* U+0001AC */
+	258,						/* U+0001AD */
+	259,						/* U+0001AE */
+	260,						/* U+0001AF */
+	260,						/* U+0001B0 */
+	261,						/* U+0001B1 */
+	262,						/* U+0001B2 */
+	263,						/* U+0001B3 */
+	263,						/* U+0001B4 */
+	264,						/* U+0001B5 */
+	264,						/* U+0001B6 */
+	265,						/* U+0001B7 */
+	266,						/* U+0001B8 */
+	266,						/* U+0001B9 */
 	0,							/* U+0001BA */
 	0,							/* U+0001BB */
-	266,						/* U+0001BC */
-	266,						/* U+0001BD */
+	267,						/* U+0001BC */
+	267,						/* U+0001BD */
 	0,							/* U+0001BE */
-	267,						/* U+0001BF */
+	268,						/* U+0001BF */
 	0,							/* U+0001C0 */
 	0,							/* U+0001C1 */
 	0,							/* U+0001C2 */
 	0,							/* U+0001C3 */
-	268,						/* U+0001C4 */
-	268,						/* U+0001C5 */
-	268,						/* U+0001C6 */
-	269,						/* U+0001C7 */
-	269,						/* U+0001C8 */
-	269,						/* U+0001C9 */
-	270,						/* U+0001CA */
-	270,						/* U+0001CB */
-	270,						/* U+0001CC */
-	271,						/* U+0001CD */
-	271,						/* U+0001CE */
-	272,						/* U+0001CF */
-	272,						/* U+0001D0 */
-	273,						/* U+0001D1 */
-	273,						/* U+0001D2 */
-	274,						/* U+0001D3 */
-	274,						/* U+0001D4 */
-	275,						/* U+0001D5 */
-	275,						/* U+0001D6 */
-	276,						/* U+0001D7 */
-	276,						/* U+0001D8 */
-	277,						/* U+0001D9 */
-	277,						/* U+0001DA */
-	278,						/* U+0001DB */
-	278,						/* U+0001DC */
+	269,						/* U+0001C4 */
+	269,						/* U+0001C5 */
+	269,						/* U+0001C6 */
+	270,						/* U+0001C7 */
+	270,						/* U+0001C8 */
+	270,						/* U+0001C9 */
+	271,						/* U+0001CA */
+	271,						/* U+0001CB */
+	271,						/* U+0001CC */
+	272,						/* U+0001CD */
+	272,						/* U+0001CE */
+	273,						/* U+0001CF */
+	273,						/* U+0001D0 */
+	274,						/* U+0001D1 */
+	274,						/* U+0001D2 */
+	275,						/* U+0001D3 */
+	275,						/* U+0001D4 */
+	276,						/* U+0001D5 */
+	276,						/* U+0001D6 */
+	277,						/* U+0001D7 */
+	277,						/* U+0001D8 */
+	278,						/* U+0001D9 */
+	278,						/* U+0001DA */
+	279,						/* U+0001DB */
+	279,						/* U+0001DC */
 	236,						/* U+0001DD */
-	279,						/* U+0001DE */
-	279,						/* U+0001DF */
-	280,						/* U+0001E0 */
-	280,						/* U+0001E1 */
-	281,						/* U+0001E2 */
-	281,						/* U+0001E3 */
-	282,						/* U+0001E4 */
-	282,						/* U+0001E5 */
-	283,						/* U+0001E6 */
-	283,						/* U+0001E7 */
-	284,						/* U+0001E8 */
-	284,						/* U+0001E9 */
-	285,						/* U+0001EA */
-	285,						/* U+0001EB */
-	286,						/* U+0001EC */
-	286,						/* U+0001ED */
-	287,						/* U+0001EE */
-	287,						/* U+0001EF */
-	288,						/* U+0001F0 */
-	289,						/* U+0001F1 */
-	289,						/* U+0001F2 */
-	289,						/* U+0001F3 */
-	290,						/* U+0001F4 */
-	290,						/* U+0001F5 */
+	280,						/* U+0001DE */
+	280,						/* U+0001DF */
+	281,						/* U+0001E0 */
+	281,						/* U+0001E1 */
+	282,						/* U+0001E2 */
+	282,						/* U+0001E3 */
+	283,						/* U+0001E4 */
+	283,						/* U+0001E5 */
+	284,						/* U+0001E6 */
+	284,						/* U+0001E7 */
+	285,						/* U+0001E8 */
+	285,						/* U+0001E9 */
+	286,						/* U+0001EA */
+	286,						/* U+0001EB */
+	287,						/* U+0001EC */
+	287,						/* U+0001ED */
+	288,						/* U+0001EE */
+	288,						/* U+0001EF */
+	289,						/* U+0001F0 */
+	290,						/* U+0001F1 */
+	290,						/* U+0001F2 */
+	290,						/* U+0001F3 */
+	291,						/* U+0001F4 */
+	291,						/* U+0001F5 */
 	242,						/* U+0001F6 */
-	267,						/* U+0001F7 */
-	291,						/* U+0001F8 */
-	291,						/* U+0001F9 */
-	292,						/* U+0001FA */
-	292,						/* U+0001FB */
-	293,						/* U+0001FC */
-	293,						/* U+0001FD */
-	294,						/* U+0001FE */
-	294,						/* U+0001FF */
-	295,						/* U+000200 */
-	295,						/* U+000201 */
-	296,						/* U+000202 */
-	296,						/* U+000203 */
-	297,						/* U+000204 */
-	297,						/* U+000205 */
-	298,						/* U+000206 */
-	298,						/* U+000207 */
-	299,						/* U+000208 */
-	299,						/* U+000209 */
-	300,						/* U+00020A */
-	300,						/* U+00020B */
-	301,						/* U+00020C */
-	301,						/* U+00020D */
-	302,						/* U+00020E */
-	302,						/* U+00020F */
-	303,						/* U+000210 */
-	303,						/* U+000211 */
-	304,						/* U+000212 */
-	304,						/* U+000213 */
-	305,						/* U+000214 */
-	305,						/* U+000215 */
-	306,						/* U+000216 */
-	306,						/* U+000217 */
-	307,						/* U+000218 */
-	307,						/* U+000219 */
-	308,						/* U+00021A */
-	308,						/* U+00021B */
-	309,						/* U+00021C */
-	309,						/* U+00021D */
-	310,						/* U+00021E */
-	310,						/* U+00021F */
-	249,						/* U+000220 */
+	268,						/* U+0001F7 */
+	292,						/* U+0001F8 */
+	292,						/* U+0001F9 */
+	293,						/* U+0001FA */
+	293,						/* U+0001FB */
+	294,						/* U+0001FC */
+	294,						/* U+0001FD */
+	295,						/* U+0001FE */
+	295,						/* U+0001FF */
+	296,						/* U+000200 */
+	296,						/* U+000201 */
+	297,						/* U+000202 */
+	297,						/* U+000203 */
+	298,						/* U+000204 */
+	298,						/* U+000205 */
+	299,						/* U+000206 */
+	299,						/* U+000207 */
+	300,						/* U+000208 */
+	300,						/* U+000209 */
+	301,						/* U+00020A */
+	301,						/* U+00020B */
+	302,						/* U+00020C */
+	302,						/* U+00020D */
+	303,						/* U+00020E */
+	303,						/* U+00020F */
+	304,						/* U+000210 */
+	304,						/* U+000211 */
+	305,						/* U+000212 */
+	305,						/* U+000213 */
+	306,						/* U+000214 */
+	306,						/* U+000215 */
+	307,						/* U+000216 */
+	307,						/* U+000217 */
+	308,						/* U+000218 */
+	308,						/* U+000219 */
+	309,						/* U+00021A */
+	309,						/* U+00021B */
+	310,						/* U+00021C */
+	310,						/* U+00021D */
+	311,						/* U+00021E */
+	311,						/* U+00021F */
+	250,						/* U+000220 */
 	0,							/* U+000221 */
-	311,						/* U+000222 */
-	311,						/* U+000223 */
-	312,						/* U+000224 */
-	312,						/* U+000225 */
-	313,						/* U+000226 */
-	313,						/* U+000227 */
-	314,						/* U+000228 */
-	314,						/* U+000229 */
-	315,						/* U+00022A */
-	315,						/* U+00022B */
-	316,						/* U+00022C */
-	316,						/* U+00022D */
-	317,						/* U+00022E */
-	317,						/* U+00022F */
-	318,						/* U+000230 */
-	318,						/* U+000231 */
-	319,						/* U+000232 */
-	319,						/* U+000233 */
+	312,						/* U+000222 */
+	312,						/* U+000223 */
+	313,						/* U+000224 */
+	313,						/* U+000225 */
+	314,						/* U+000226 */
+	314,						/* U+000227 */
+	315,						/* U+000228 */
+	315,						/* U+000229 */
+	316,						/* U+00022A */
+	316,						/* U+00022B */
+	317,						/* U+00022C */
+	317,						/* U+00022D */
+	318,						/* U+00022E */
+	318,						/* U+00022F */
+	319,						/* U+000230 */
+	319,						/* U+000231 */
+	320,						/* U+000232 */
+	320,						/* U+000233 */
 	0,							/* U+000234 */
 	0,							/* U+000235 */
 	0,							/* U+000236 */
 	0,							/* U+000237 */
 	0,							/* U+000238 */
 	0,							/* U+000239 */
-	320,						/* U+00023A */
-	321,						/* U+00023B */
-	321,						/* U+00023C */
+	321,						/* U+00023A */
+	322,						/* U+00023B */
+	322,						/* U+00023C */
 	246,						/* U+00023D */
-	322,						/* U+00023E */
-	323,						/* U+00023F */
-	324,						/* U+000240 */
-	325,						/* U+000241 */
-	325,						/* U+000242 */
+	323,						/* U+00023E */
+	324,						/* U+00023F */
+	325,						/* U+000240 */
+	326,						/* U+000241 */
+	326,						/* U+000242 */
 	227,						/* U+000243 */
-	326,						/* U+000244 */
-	327,						/* U+000245 */
-	328,						/* U+000246 */
-	328,						/* U+000247 */
-	329,						/* U+000248 */
-	329,						/* U+000249 */
-	330,						/* U+00024A */
-	330,						/* U+00024B */
-	331,						/* U+00024C */
-	331,						/* U+00024D */
-	332,						/* U+00024E */
-	332,						/* U+00024F */
-	333,						/* U+000250 */
-	334,						/* U+000251 */
-	335,						/* U+000252 */
+	327,						/* U+000244 */
+	328,						/* U+000245 */
+	329,						/* U+000246 */
+	329,						/* U+000247 */
+	330,						/* U+000248 */
+	330,						/* U+000249 */
+	331,						/* U+00024A */
+	331,						/* U+00024B */
+	332,						/* U+00024C */
+	332,						/* U+00024D */
+	333,						/* U+00024E */
+	333,						/* U+00024F */
+	334,						/* U+000250 */
+	335,						/* U+000251 */
+	336,						/* U+000252 */
 	228,						/* U+000253 */
 	231,						/* U+000254 */
 	0,							/* U+000255 */
@@ -9214,32 +9349,32 @@ static const uint16 case_map[4631] =
 	237,						/* U+000259 */
 	0,							/* U+00025A */
 	238,						/* U+00025B */
-	336,						/* U+00025C */
+	337,						/* U+00025C */
 	0,							/* U+00025D */
 	0,							/* U+00025E */
 	0,							/* U+00025F */
 	240,						/* U+000260 */
-	337,						/* U+000261 */
+	338,						/* U+000261 */
 	0,							/* U+000262 */
 	241,						/* U+000263 */
-	0,							/* U+000264 */
-	338,						/* U+000265 */
-	339,						/* U+000266 */
+	339,						/* U+000264 */
+	340,						/* U+000265 */
+	341,						/* U+000266 */
 	0,							/* U+000267 */
 	244,						/* U+000268 */
 	243,						/* U+000269 */
-	340,						/* U+00026A */
-	341,						/* U+00026B */
-	342,						/* U+00026C */
+	342,						/* U+00026A */
+	343,						/* U+00026B */
+	344,						/* U+00026C */
 	0,							/* U+00026D */
 	0,							/* U+00026E */
-	247,						/* U+00026F */
+	248,						/* U+00026F */
 	0,							/* U+000270 */
-	343,						/* U+000271 */
-	248,						/* U+000272 */
+	345,						/* U+000271 */
+	249,						/* U+000272 */
 	0,							/* U+000273 */
 	0,							/* U+000274 */
-	250,						/* U+000275 */
+	251,						/* U+000275 */
 	0,							/* U+000276 */
 	0,							/* U+000277 */
 	0,							/* U+000278 */
@@ -9247,28 +9382,28 @@ static const uint16 case_map[4631] =
 	0,							/* U+00027A */
 	0,							/* U+00027B */
 	0,							/* U+00027C */
-	344,						/* U+00027D */
+	346,						/* U+00027D */
 	0,							/* U+00027E */
 	0,							/* U+00027F */
-	254,						/* U+000280 */
+	255,						/* U+000280 */
 	0,							/* U+000281 */
-	345,						/* U+000282 */
-	256,						/* U+000283 */
+	347,						/* U+000282 */
+	257,						/* U+000283 */
 	0,							/* U+000284 */
 	0,							/* U+000285 */
 	0,							/* U+000286 */
-	346,						/* U+000287 */
-	258,						/* U+000288 */
-	326,						/* U+000289 */
-	260,						/* U+00028A */
-	261,						/* U+00028B */
-	327,						/* U+00028C */
+	348,						/* U+000287 */
+	259,						/* U+000288 */
+	327,						/* U+000289 */
+	261,						/* U+00028A */
+	262,						/* U+00028B */
+	328,						/* U+00028C */
 	0,							/* U+00028D */
 	0,							/* U+00028E */
 	0,							/* U+00028F */
 	0,							/* U+000290 */
 	0,							/* U+000291 */
-	264,						/* U+000292 */
+	265,						/* U+000292 */
 	0,							/* U+000293 */
 	0,							/* U+000294 */
 	0,							/* U+000295 */
@@ -9279,8 +9414,8 @@ static const uint16 case_map[4631] =
 	0,							/* U+00029A */
 	0,							/* U+00029B */
 	0,							/* U+00029C */
-	347,						/* U+00029D */
-	348,						/* U+00029E */
+	349,						/* U+00029D */
+	350,						/* U+00029E */
 	0,							/* U+00029F */
 	0,							/* U+0002A0 */
 	0,							/* U+0002A1 */
@@ -9447,7 +9582,7 @@ static const uint16 case_map[4631] =
 	0,							/* U+000342 */
 	0,							/* U+000343 */
 	0,							/* U+000344 */
-	349,						/* U+000345 */
+	351,						/* U+000345 */
 	0,							/* U+000346 */
 	0,							/* U+000347 */
 	0,							/* U+000348 */
@@ -9490,280 +9625,280 @@ static const uint16 case_map[4631] =
 	0,							/* U+00036D */
 	0,							/* U+00036E */
 	0,							/* U+00036F */
-	350,						/* U+000370 */
-	350,						/* U+000371 */
-	351,						/* U+000372 */
-	351,						/* U+000373 */
+	352,						/* U+000370 */
+	352,						/* U+000371 */
+	353,						/* U+000372 */
+	353,						/* U+000373 */
 	0,							/* U+000374 */
 	0,							/* U+000375 */
-	352,						/* U+000376 */
-	352,						/* U+000377 */
+	354,						/* U+000376 */
+	354,						/* U+000377 */
 	0,							/* U+000378 */
 	0,							/* U+000379 */
 	0,							/* U+00037A */
-	353,						/* U+00037B */
-	354,						/* U+00037C */
-	355,						/* U+00037D */
+	355,						/* U+00037B */
+	356,						/* U+00037C */
+	357,						/* U+00037D */
 	0,							/* U+00037E */
-	356,						/* U+00037F */
+	358,						/* U+00037F */
 	0,							/* U+000380 */
 	0,							/* U+000381 */
 	0,							/* U+000382 */
 	0,							/* U+000383 */
 	0,							/* U+000384 */
 	0,							/* U+000385 */
-	357,						/* U+000386 */
+	359,						/* U+000386 */
 	0,							/* U+000387 */
-	358,						/* U+000388 */
-	359,						/* U+000389 */
-	360,						/* U+00038A */
+	360,						/* U+000388 */
+	361,						/* U+000389 */
+	362,						/* U+00038A */
 	0,							/* U+00038B */
-	361,						/* U+00038C */
+	363,						/* U+00038C */
 	0,							/* U+00038D */
-	362,						/* U+00038E */
-	363,						/* U+00038F */
-	364,						/* U+000390 */
-	365,						/* U+000391 */
-	366,						/* U+000392 */
-	367,						/* U+000393 */
-	368,						/* U+000394 */
-	369,						/* U+000395 */
-	370,						/* U+000396 */
-	371,						/* U+000397 */
-	372,						/* U+000398 */
-	373,						/* U+000399 */
-	374,						/* U+00039A */
-	375,						/* U+00039B */
-	376,						/* U+00039C */
-	377,						/* U+00039D */
-	378,						/* U+00039E */
-	379,						/* U+00039F */
-	380,						/* U+0003A0 */
-	381,						/* U+0003A1 */
+	364,						/* U+00038E */
+	365,						/* U+00038F */
+	366,						/* U+000390 */
+	367,						/* U+000391 */
+	368,						/* U+000392 */
+	369,						/* U+000393 */
+	370,						/* U+000394 */
+	371,						/* U+000395 */
+	372,						/* U+000396 */
+	373,						/* U+000397 */
+	374,						/* U+000398 */
+	375,						/* U+000399 */
+	376,						/* U+00039A */
+	377,						/* U+00039B */
+	378,						/* U+00039C */
+	379,						/* U+00039D */
+	380,						/* U+00039E */
+	381,						/* U+00039F */
+	382,						/* U+0003A0 */
+	383,						/* U+0003A1 */
 	0,							/* U+0003A2 */
-	382,						/* U+0003A3 */
-	383,						/* U+0003A4 */
-	384,						/* U+0003A5 */
-	385,						/* U+0003A6 */
-	386,						/* U+0003A7 */
-	387,						/* U+0003A8 */
-	388,						/* U+0003A9 */
-	389,						/* U+0003AA */
-	390,						/* U+0003AB */
-	357,						/* U+0003AC */
-	358,						/* U+0003AD */
-	359,						/* U+0003AE */
-	360,						/* U+0003AF */
-	391,						/* U+0003B0 */
-	365,						/* U+0003B1 */
-	366,						/* U+0003B2 */
-	367,						/* U+0003B3 */
-	368,						/* U+0003B4 */
-	369,						/* U+0003B5 */
-	370,						/* U+0003B6 */
-	371,						/* U+0003B7 */
-	372,						/* U+0003B8 */
-	373,						/* U+0003B9 */
-	374,						/* U+0003BA */
-	375,						/* U+0003BB */
-	376,						/* U+0003BC */
-	377,						/* U+0003BD */
-	378,						/* U+0003BE */
-	379,						/* U+0003BF */
-	380,						/* U+0003C0 */
-	381,						/* U+0003C1 */
-	392,						/* U+0003C2 */
-	393,						/* U+0003C3 */
-	383,						/* U+0003C4 */
-	384,						/* U+0003C5 */
-	385,						/* U+0003C6 */
-	386,						/* U+0003C7 */
-	387,						/* U+0003C8 */
-	388,						/* U+0003C9 */
-	389,						/* U+0003CA */
-	390,						/* U+0003CB */
-	361,						/* U+0003CC */
-	362,						/* U+0003CD */
-	363,						/* U+0003CE */
-	394,						/* U+0003CF */
-	395,						/* U+0003D0 */
-	396,						/* U+0003D1 */
+	384,						/* U+0003A3 */
+	385,						/* U+0003A4 */
+	386,						/* U+0003A5 */
+	387,						/* U+0003A6 */
+	388,						/* U+0003A7 */
+	389,						/* U+0003A8 */
+	390,						/* U+0003A9 */
+	391,						/* U+0003AA */
+	392,						/* U+0003AB */
+	359,						/* U+0003AC */
+	360,						/* U+0003AD */
+	361,						/* U+0003AE */
+	362,						/* U+0003AF */
+	393,						/* U+0003B0 */
+	367,						/* U+0003B1 */
+	368,						/* U+0003B2 */
+	369,						/* U+0003B3 */
+	370,						/* U+0003B4 */
+	371,						/* U+0003B5 */
+	372,						/* U+0003B6 */
+	373,						/* U+0003B7 */
+	374,						/* U+0003B8 */
+	375,						/* U+0003B9 */
+	376,						/* U+0003BA */
+	377,						/* U+0003BB */
+	378,						/* U+0003BC */
+	379,						/* U+0003BD */
+	380,						/* U+0003BE */
+	381,						/* U+0003BF */
+	382,						/* U+0003C0 */
+	383,						/* U+0003C1 */
+	394,						/* U+0003C2 */
+	395,						/* U+0003C3 */
+	385,						/* U+0003C4 */
+	386,						/* U+0003C5 */
+	387,						/* U+0003C6 */
+	388,						/* U+0003C7 */
+	389,						/* U+0003C8 */
+	390,						/* U+0003C9 */
+	391,						/* U+0003CA */
+	392,						/* U+0003CB */
+	363,						/* U+0003CC */
+	364,						/* U+0003CD */
+	365,						/* U+0003CE */
+	396,						/* U+0003CF */
+	397,						/* U+0003D0 */
+	398,						/* U+0003D1 */
 	0,							/* U+0003D2 */
 	0,							/* U+0003D3 */
 	0,							/* U+0003D4 */
-	397,						/* U+0003D5 */
-	398,						/* U+0003D6 */
-	394,						/* U+0003D7 */
-	399,						/* U+0003D8 */
-	399,						/* U+0003D9 */
-	400,						/* U+0003DA */
-	400,						/* U+0003DB */
-	401,						/* U+0003DC */
-	401,						/* U+0003DD */
-	402,						/* U+0003DE */
-	402,						/* U+0003DF */
-	403,						/* U+0003E0 */
-	403,						/* U+0003E1 */
-	404,						/* U+0003E2 */
-	404,						/* U+0003E3 */
-	405,						/* U+0003E4 */
-	405,						/* U+0003E5 */
-	406,						/* U+0003E6 */
-	406,						/* U+0003E7 */
-	407,						/* U+0003E8 */
-	407,						/* U+0003E9 */
-	408,						/* U+0003EA */
-	408,						/* U+0003EB */
-	409,						/* U+0003EC */
-	409,						/* U+0003ED */
-	410,						/* U+0003EE */
-	410,						/* U+0003EF */
-	411,						/* U+0003F0 */
-	412,						/* U+0003F1 */
-	413,						/* U+0003F2 */
-	356,						/* U+0003F3 */
-	414,						/* U+0003F4 */
-	415,						/* U+0003F5 */
+	399,						/* U+0003D5 */
+	400,						/* U+0003D6 */
+	396,						/* U+0003D7 */
+	401,						/* U+0003D8 */
+	401,						/* U+0003D9 */
+	402,						/* U+0003DA */
+	402,						/* U+0003DB */
+	403,						/* U+0003DC */
+	403,						/* U+0003DD */
+	404,						/* U+0003DE */
+	404,						/* U+0003DF */
+	405,						/* U+0003E0 */
+	405,						/* U+0003E1 */
+	406,						/* U+0003E2 */
+	406,						/* U+0003E3 */
+	407,						/* U+0003E4 */
+	407,						/* U+0003E5 */
+	408,						/* U+0003E6 */
+	408,						/* U+0003E7 */
+	409,						/* U+0003E8 */
+	409,						/* U+0003E9 */
+	410,						/* U+0003EA */
+	410,						/* U+0003EB */
+	411,						/* U+0003EC */
+	411,						/* U+0003ED */
+	412,						/* U+0003EE */
+	412,						/* U+0003EF */
+	413,						/* U+0003F0 */
+	414,						/* U+0003F1 */
+	415,						/* U+0003F2 */
+	358,						/* U+0003F3 */
+	416,						/* U+0003F4 */
+	417,						/* U+0003F5 */
 	0,							/* U+0003F6 */
-	416,						/* U+0003F7 */
-	416,						/* U+0003F8 */
-	413,						/* U+0003F9 */
-	417,						/* U+0003FA */
-	417,						/* U+0003FB */
+	418,						/* U+0003F7 */
+	418,						/* U+0003F8 */
+	415,						/* U+0003F9 */
+	419,						/* U+0003FA */
+	419,						/* U+0003FB */
 	0,							/* U+0003FC */
-	353,						/* U+0003FD */
-	354,						/* U+0003FE */
-	355,						/* U+0003FF */
-	418,						/* U+000400 */
-	419,						/* U+000401 */
-	420,						/* U+000402 */
-	421,						/* U+000403 */
-	422,						/* U+000404 */
-	423,						/* U+000405 */
-	424,						/* U+000406 */
-	425,						/* U+000407 */
-	426,						/* U+000408 */
-	427,						/* U+000409 */
-	428,						/* U+00040A */
-	429,						/* U+00040B */
-	430,						/* U+00040C */
-	431,						/* U+00040D */
-	432,						/* U+00040E */
-	433,						/* U+00040F */
-	434,						/* U+000410 */
-	435,						/* U+000411 */
-	436,						/* U+000412 */
-	437,						/* U+000413 */
-	438,						/* U+000414 */
-	439,						/* U+000415 */
-	440,						/* U+000416 */
-	441,						/* U+000417 */
-	442,						/* U+000418 */
-	443,						/* U+000419 */
-	444,						/* U+00041A */
-	445,						/* U+00041B */
-	446,						/* U+00041C */
-	447,						/* U+00041D */
-	448,						/* U+00041E */
-	449,						/* U+00041F */
-	450,						/* U+000420 */
-	451,						/* U+000421 */
-	452,						/* U+000422 */
-	453,						/* U+000423 */
-	454,						/* U+000424 */
-	455,						/* U+000425 */
-	456,						/* U+000426 */
-	457,						/* U+000427 */
-	458,						/* U+000428 */
-	459,						/* U+000429 */
-	460,						/* U+00042A */
-	461,						/* U+00042B */
-	462,						/* U+00042C */
-	463,						/* U+00042D */
-	464,						/* U+00042E */
-	465,						/* U+00042F */
-	434,						/* U+000430 */
-	435,						/* U+000431 */
-	436,						/* U+000432 */
-	437,						/* U+000433 */
-	438,						/* U+000434 */
-	439,						/* U+000435 */
-	440,						/* U+000436 */
-	441,						/* U+000437 */
-	442,						/* U+000438 */
-	443,						/* U+000439 */
-	444,						/* U+00043A */
-	445,						/* U+00043B */
-	446,						/* U+00043C */
-	447,						/* U+00043D */
-	448,						/* U+00043E */
-	449,						/* U+00043F */
-	450,						/* U+000440 */
-	451,						/* U+000441 */
-	452,						/* U+000442 */
-	453,						/* U+000443 */
-	454,						/* U+000444 */
-	455,						/* U+000445 */
-	456,						/* U+000446 */
-	457,						/* U+000447 */
-	458,						/* U+000448 */
-	459,						/* U+000449 */
-	460,						/* U+00044A */
-	461,						/* U+00044B */
-	462,						/* U+00044C */
-	463,						/* U+00044D */
-	464,						/* U+00044E */
-	465,						/* U+00044F */
-	418,						/* U+000450 */
-	419,						/* U+000451 */
-	420,						/* U+000452 */
-	421,						/* U+000453 */
-	422,						/* U+000454 */
-	423,						/* U+000455 */
-	424,						/* U+000456 */
-	425,						/* U+000457 */
-	426,						/* U+000458 */
-	427,						/* U+000459 */
-	428,						/* U+00045A */
-	429,						/* U+00045B */
-	430,						/* U+00045C */
-	431,						/* U+00045D */
-	432,						/* U+00045E */
-	433,						/* U+00045F */
-	466,						/* U+000460 */
-	466,						/* U+000461 */
-	467,						/* U+000462 */
-	467,						/* U+000463 */
-	468,						/* U+000464 */
-	468,						/* U+000465 */
-	469,						/* U+000466 */
-	469,						/* U+000467 */
-	470,						/* U+000468 */
-	470,						/* U+000469 */
-	471,						/* U+00046A */
-	471,						/* U+00046B */
-	472,						/* U+00046C */
-	472,						/* U+00046D */
-	473,						/* U+00046E */
-	473,						/* U+00046F */
-	474,						/* U+000470 */
-	474,						/* U+000471 */
-	475,						/* U+000472 */
-	475,						/* U+000473 */
-	476,						/* U+000474 */
-	476,						/* U+000475 */
-	477,						/* U+000476 */
-	477,						/* U+000477 */
-	478,						/* U+000478 */
-	478,						/* U+000479 */
-	479,						/* U+00047A */
-	479,						/* U+00047B */
-	480,						/* U+00047C */
-	480,						/* U+00047D */
-	481,						/* U+00047E */
-	481,						/* U+00047F */
-	482,						/* U+000480 */
-	482,						/* U+000481 */
+	355,						/* U+0003FD */
+	356,						/* U+0003FE */
+	357,						/* U+0003FF */
+	420,						/* U+000400 */
+	421,						/* U+000401 */
+	422,						/* U+000402 */
+	423,						/* U+000403 */
+	424,						/* U+000404 */
+	425,						/* U+000405 */
+	426,						/* U+000406 */
+	427,						/* U+000407 */
+	428,						/* U+000408 */
+	429,						/* U+000409 */
+	430,						/* U+00040A */
+	431,						/* U+00040B */
+	432,						/* U+00040C */
+	433,						/* U+00040D */
+	434,						/* U+00040E */
+	435,						/* U+00040F */
+	436,						/* U+000410 */
+	437,						/* U+000411 */
+	438,						/* U+000412 */
+	439,						/* U+000413 */
+	440,						/* U+000414 */
+	441,						/* U+000415 */
+	442,						/* U+000416 */
+	443,						/* U+000417 */
+	444,						/* U+000418 */
+	445,						/* U+000419 */
+	446,						/* U+00041A */
+	447,						/* U+00041B */
+	448,						/* U+00041C */
+	449,						/* U+00041D */
+	450,						/* U+00041E */
+	451,						/* U+00041F */
+	452,						/* U+000420 */
+	453,						/* U+000421 */
+	454,						/* U+000422 */
+	455,						/* U+000423 */
+	456,						/* U+000424 */
+	457,						/* U+000425 */
+	458,						/* U+000426 */
+	459,						/* U+000427 */
+	460,						/* U+000428 */
+	461,						/* U+000429 */
+	462,						/* U+00042A */
+	463,						/* U+00042B */
+	464,						/* U+00042C */
+	465,						/* U+00042D */
+	466,						/* U+00042E */
+	467,						/* U+00042F */
+	436,						/* U+000430 */
+	437,						/* U+000431 */
+	438,						/* U+000432 */
+	439,						/* U+000433 */
+	440,						/* U+000434 */
+	441,						/* U+000435 */
+	442,						/* U+000436 */
+	443,						/* U+000437 */
+	444,						/* U+000438 */
+	445,						/* U+000439 */
+	446,						/* U+00043A */
+	447,						/* U+00043B */
+	448,						/* U+00043C */
+	449,						/* U+00043D */
+	450,						/* U+00043E */
+	451,						/* U+00043F */
+	452,						/* U+000440 */
+	453,						/* U+000441 */
+	454,						/* U+000442 */
+	455,						/* U+000443 */
+	456,						/* U+000444 */
+	457,						/* U+000445 */
+	458,						/* U+000446 */
+	459,						/* U+000447 */
+	460,						/* U+000448 */
+	461,						/* U+000449 */
+	462,						/* U+00044A */
+	463,						/* U+00044B */
+	464,						/* U+00044C */
+	465,						/* U+00044D */
+	466,						/* U+00044E */
+	467,						/* U+00044F */
+	420,						/* U+000450 */
+	421,						/* U+000451 */
+	422,						/* U+000452 */
+	423,						/* U+000453 */
+	424,						/* U+000454 */
+	425,						/* U+000455 */
+	426,						/* U+000456 */
+	427,						/* U+000457 */
+	428,						/* U+000458 */
+	429,						/* U+000459 */
+	430,						/* U+00045A */
+	431,						/* U+00045B */
+	432,						/* U+00045C */
+	433,						/* U+00045D */
+	434,						/* U+00045E */
+	435,						/* U+00045F */
+	468,						/* U+000460 */
+	468,						/* U+000461 */
+	469,						/* U+000462 */
+	469,						/* U+000463 */
+	470,						/* U+000464 */
+	470,						/* U+000465 */
+	471,						/* U+000466 */
+	471,						/* U+000467 */
+	472,						/* U+000468 */
+	472,						/* U+000469 */
+	473,						/* U+00046A */
+	473,						/* U+00046B */
+	474,						/* U+00046C */
+	474,						/* U+00046D */
+	475,						/* U+00046E */
+	475,						/* U+00046F */
+	476,						/* U+000470 */
+	476,						/* U+000471 */
+	477,						/* U+000472 */
+	477,						/* U+000473 */
+	478,						/* U+000474 */
+	478,						/* U+000475 */
+	479,						/* U+000476 */
+	479,						/* U+000477 */
+	480,						/* U+000478 */
+	480,						/* U+000479 */
+	481,						/* U+00047A */
+	481,						/* U+00047B */
+	482,						/* U+00047C */
+	482,						/* U+00047D */
+	483,						/* U+00047E */
+	483,						/* U+00047F */
+	484,						/* U+000480 */
+	484,						/* U+000481 */
 	0,							/* U+000482 */
 	0,							/* U+000483 */
 	0,							/* U+000484 */
@@ -9772,211 +9907,211 @@ static const uint16 case_map[4631] =
 	0,							/* U+000487 */
 	0,							/* U+000488 */
 	0,							/* U+000489 */
-	483,						/* U+00048A */
-	483,						/* U+00048B */
-	484,						/* U+00048C */
-	484,						/* U+00048D */
-	485,						/* U+00048E */
-	485,						/* U+00048F */
-	486,						/* U+000490 */
-	486,						/* U+000491 */
-	487,						/* U+000492 */
-	487,						/* U+000493 */
-	488,						/* U+000494 */
-	488,						/* U+000495 */
-	489,						/* U+000496 */
-	489,						/* U+000497 */
-	490,						/* U+000498 */
-	490,						/* U+000499 */
-	491,						/* U+00049A */
-	491,						/* U+00049B */
-	492,						/* U+00049C */
-	492,						/* U+00049D */
-	493,						/* U+00049E */
-	493,						/* U+00049F */
-	494,						/* U+0004A0 */
-	494,						/* U+0004A1 */
-	495,						/* U+0004A2 */
-	495,						/* U+0004A3 */
-	496,						/* U+0004A4 */
-	496,						/* U+0004A5 */
-	497,						/* U+0004A6 */
-	497,						/* U+0004A7 */
-	498,						/* U+0004A8 */
-	498,						/* U+0004A9 */
-	499,						/* U+0004AA */
-	499,						/* U+0004AB */
-	500,						/* U+0004AC */
-	500,						/* U+0004AD */
-	501,						/* U+0004AE */
-	501,						/* U+0004AF */
-	502,						/* U+0004B0 */
-	502,						/* U+0004B1 */
-	503,						/* U+0004B2 */
-	503,						/* U+0004B3 */
-	504,						/* U+0004B4 */
-	504,						/* U+0004B5 */
-	505,						/* U+0004B6 */
-	505,						/* U+0004B7 */
-	506,						/* U+0004B8 */
-	506,						/* U+0004B9 */
-	507,						/* U+0004BA */
-	507,						/* U+0004BB */
-	508,						/* U+0004BC */
-	508,						/* U+0004BD */
-	509,						/* U+0004BE */
-	509,						/* U+0004BF */
-	510,						/* U+0004C0 */
-	511,						/* U+0004C1 */
-	511,						/* U+0004C2 */
-	512,						/* U+0004C3 */
-	512,						/* U+0004C4 */
-	513,						/* U+0004C5 */
-	513,						/* U+0004C6 */
-	514,						/* U+0004C7 */
-	514,						/* U+0004C8 */
-	515,						/* U+0004C9 */
-	515,						/* U+0004CA */
-	516,						/* U+0004CB */
-	516,						/* U+0004CC */
-	517,						/* U+0004CD */
-	517,						/* U+0004CE */
-	510,						/* U+0004CF */
-	518,						/* U+0004D0 */
-	518,						/* U+0004D1 */
-	519,						/* U+0004D2 */
-	519,						/* U+0004D3 */
-	520,						/* U+0004D4 */
-	520,						/* U+0004D5 */
-	521,						/* U+0004D6 */
-	521,						/* U+0004D7 */
-	522,						/* U+0004D8 */
-	522,						/* U+0004D9 */
-	523,						/* U+0004DA */
-	523,						/* U+0004DB */
-	524,						/* U+0004DC */
-	524,						/* U+0004DD */
-	525,						/* U+0004DE */
-	525,						/* U+0004DF */
-	526,						/* U+0004E0 */
-	526,						/* U+0004E1 */
-	527,						/* U+0004E2 */
-	527,						/* U+0004E3 */
-	528,						/* U+0004E4 */
-	528,						/* U+0004E5 */
-	529,						/* U+0004E6 */
-	529,						/* U+0004E7 */
-	530,						/* U+0004E8 */
-	530,						/* U+0004E9 */
-	531,						/* U+0004EA */
-	531,						/* U+0004EB */
-	532,						/* U+0004EC */
-	532,						/* U+0004ED */
-	533,						/* U+0004EE */
-	533,						/* U+0004EF */
-	534,						/* U+0004F0 */
-	534,						/* U+0004F1 */
-	535,						/* U+0004F2 */
-	535,						/* U+0004F3 */
-	536,						/* U+0004F4 */
-	536,						/* U+0004F5 */
-	537,						/* U+0004F6 */
-	537,						/* U+0004F7 */
-	538,						/* U+0004F8 */
-	538,						/* U+0004F9 */
-	539,						/* U+0004FA */
-	539,						/* U+0004FB */
-	540,						/* U+0004FC */
-	540,						/* U+0004FD */
-	541,						/* U+0004FE */
-	541,						/* U+0004FF */
-	542,						/* U+000500 */
-	542,						/* U+000501 */
-	543,						/* U+000502 */
-	543,						/* U+000503 */
-	544,						/* U+000504 */
-	544,						/* U+000505 */
-	545,						/* U+000506 */
-	545,						/* U+000507 */
-	546,						/* U+000508 */
-	546,						/* U+000509 */
-	547,						/* U+00050A */
-	547,						/* U+00050B */
-	548,						/* U+00050C */
-	548,						/* U+00050D */
-	549,						/* U+00050E */
-	549,						/* U+00050F */
-	550,						/* U+000510 */
-	550,						/* U+000511 */
-	551,						/* U+000512 */
-	551,						/* U+000513 */
-	552,						/* U+000514 */
-	552,						/* U+000515 */
-	553,						/* U+000516 */
-	553,						/* U+000517 */
-	554,						/* U+000518 */
-	554,						/* U+000519 */
-	555,						/* U+00051A */
-	555,						/* U+00051B */
-	556,						/* U+00051C */
-	556,						/* U+00051D */
-	557,						/* U+00051E */
-	557,						/* U+00051F */
-	558,						/* U+000520 */
-	558,						/* U+000521 */
-	559,						/* U+000522 */
-	559,						/* U+000523 */
-	560,						/* U+000524 */
-	560,						/* U+000525 */
-	561,						/* U+000526 */
-	561,						/* U+000527 */
-	562,						/* U+000528 */
-	562,						/* U+000529 */
-	563,						/* U+00052A */
-	563,						/* U+00052B */
-	564,						/* U+00052C */
-	564,						/* U+00052D */
-	565,						/* U+00052E */
-	565,						/* U+00052F */
+	485,						/* U+00048A */
+	485,						/* U+00048B */
+	486,						/* U+00048C */
+	486,						/* U+00048D */
+	487,						/* U+00048E */
+	487,						/* U+00048F */
+	488,						/* U+000490 */
+	488,						/* U+000491 */
+	489,						/* U+000492 */
+	489,						/* U+000493 */
+	490,						/* U+000494 */
+	490,						/* U+000495 */
+	491,						/* U+000496 */
+	491,						/* U+000497 */
+	492,						/* U+000498 */
+	492,						/* U+000499 */
+	493,						/* U+00049A */
+	493,						/* U+00049B */
+	494,						/* U+00049C */
+	494,						/* U+00049D */
+	495,						/* U+00049E */
+	495,						/* U+00049F */
+	496,						/* U+0004A0 */
+	496,						/* U+0004A1 */
+	497,						/* U+0004A2 */
+	497,						/* U+0004A3 */
+	498,						/* U+0004A4 */
+	498,						/* U+0004A5 */
+	499,						/* U+0004A6 */
+	499,						/* U+0004A7 */
+	500,						/* U+0004A8 */
+	500,						/* U+0004A9 */
+	501,						/* U+0004AA */
+	501,						/* U+0004AB */
+	502,						/* U+0004AC */
+	502,						/* U+0004AD */
+	503,						/* U+0004AE */
+	503,						/* U+0004AF */
+	504,						/* U+0004B0 */
+	504,						/* U+0004B1 */
+	505,						/* U+0004B2 */
+	505,						/* U+0004B3 */
+	506,						/* U+0004B4 */
+	506,						/* U+0004B5 */
+	507,						/* U+0004B6 */
+	507,						/* U+0004B7 */
+	508,						/* U+0004B8 */
+	508,						/* U+0004B9 */
+	509,						/* U+0004BA */
+	509,						/* U+0004BB */
+	510,						/* U+0004BC */
+	510,						/* U+0004BD */
+	511,						/* U+0004BE */
+	511,						/* U+0004BF */
+	512,						/* U+0004C0 */
+	513,						/* U+0004C1 */
+	513,						/* U+0004C2 */
+	514,						/* U+0004C3 */
+	514,						/* U+0004C4 */
+	515,						/* U+0004C5 */
+	515,						/* U+0004C6 */
+	516,						/* U+0004C7 */
+	516,						/* U+0004C8 */
+	517,						/* U+0004C9 */
+	517,						/* U+0004CA */
+	518,						/* U+0004CB */
+	518,						/* U+0004CC */
+	519,						/* U+0004CD */
+	519,						/* U+0004CE */
+	512,						/* U+0004CF */
+	520,						/* U+0004D0 */
+	520,						/* U+0004D1 */
+	521,						/* U+0004D2 */
+	521,						/* U+0004D3 */
+	522,						/* U+0004D4 */
+	522,						/* U+0004D5 */
+	523,						/* U+0004D6 */
+	523,						/* U+0004D7 */
+	524,						/* U+0004D8 */
+	524,						/* U+0004D9 */
+	525,						/* U+0004DA */
+	525,						/* U+0004DB */
+	526,						/* U+0004DC */
+	526,						/* U+0004DD */
+	527,						/* U+0004DE */
+	527,						/* U+0004DF */
+	528,						/* U+0004E0 */
+	528,						/* U+0004E1 */
+	529,						/* U+0004E2 */
+	529,						/* U+0004E3 */
+	530,						/* U+0004E4 */
+	530,						/* U+0004E5 */
+	531,						/* U+0004E6 */
+	531,						/* U+0004E7 */
+	532,						/* U+0004E8 */
+	532,						/* U+0004E9 */
+	533,						/* U+0004EA */
+	533,						/* U+0004EB */
+	534,						/* U+0004EC */
+	534,						/* U+0004ED */
+	535,						/* U+0004EE */
+	535,						/* U+0004EF */
+	536,						/* U+0004F0 */
+	536,						/* U+0004F1 */
+	537,						/* U+0004F2 */
+	537,						/* U+0004F3 */
+	538,						/* U+0004F4 */
+	538,						/* U+0004F5 */
+	539,						/* U+0004F6 */
+	539,						/* U+0004F7 */
+	540,						/* U+0004F8 */
+	540,						/* U+0004F9 */
+	541,						/* U+0004FA */
+	541,						/* U+0004FB */
+	542,						/* U+0004FC */
+	542,						/* U+0004FD */
+	543,						/* U+0004FE */
+	543,						/* U+0004FF */
+	544,						/* U+000500 */
+	544,						/* U+000501 */
+	545,						/* U+000502 */
+	545,						/* U+000503 */
+	546,						/* U+000504 */
+	546,						/* U+000505 */
+	547,						/* U+000506 */
+	547,						/* U+000507 */
+	548,						/* U+000508 */
+	548,						/* U+000509 */
+	549,						/* U+00050A */
+	549,						/* U+00050B */
+	550,						/* U+00050C */
+	550,						/* U+00050D */
+	551,						/* U+00050E */
+	551,						/* U+00050F */
+	552,						/* U+000510 */
+	552,						/* U+000511 */
+	553,						/* U+000512 */
+	553,						/* U+000513 */
+	554,						/* U+000514 */
+	554,						/* U+000515 */
+	555,						/* U+000516 */
+	555,						/* U+000517 */
+	556,						/* U+000518 */
+	556,						/* U+000519 */
+	557,						/* U+00051A */
+	557,						/* U+00051B */
+	558,						/* U+00051C */
+	558,						/* U+00051D */
+	559,						/* U+00051E */
+	559,						/* U+00051F */
+	560,						/* U+000520 */
+	560,						/* U+000521 */
+	561,						/* U+000522 */
+	561,						/* U+000523 */
+	562,						/* U+000524 */
+	562,						/* U+000525 */
+	563,						/* U+000526 */
+	563,						/* U+000527 */
+	564,						/* U+000528 */
+	564,						/* U+000529 */
+	565,						/* U+00052A */
+	565,						/* U+00052B */
+	566,						/* U+00052C */
+	566,						/* U+00052D */
+	567,						/* U+00052E */
+	567,						/* U+00052F */
 	0,							/* U+000530 */
-	566,						/* U+000531 */
-	567,						/* U+000532 */
-	568,						/* U+000533 */
-	569,						/* U+000534 */
-	570,						/* U+000535 */
-	571,						/* U+000536 */
-	572,						/* U+000537 */
-	573,						/* U+000538 */
-	574,						/* U+000539 */
-	575,						/* U+00053A */
-	576,						/* U+00053B */
-	577,						/* U+00053C */
-	578,						/* U+00053D */
-	579,						/* U+00053E */
-	580,						/* U+00053F */
-	581,						/* U+000540 */
-	582,						/* U+000541 */
-	583,						/* U+000542 */
-	584,						/* U+000543 */
-	585,						/* U+000544 */
-	586,						/* U+000545 */
-	587,						/* U+000546 */
-	588,						/* U+000547 */
-	589,						/* U+000548 */
-	590,						/* U+000549 */
-	591,						/* U+00054A */
-	592,						/* U+00054B */
-	593,						/* U+00054C */
-	594,						/* U+00054D */
-	595,						/* U+00054E */
-	596,						/* U+00054F */
-	597,						/* U+000550 */
-	598,						/* U+000551 */
-	599,						/* U+000552 */
-	600,						/* U+000553 */
-	601,						/* U+000554 */
-	602,						/* U+000555 */
-	603,						/* U+000556 */
+	568,						/* U+000531 */
+	569,						/* U+000532 */
+	570,						/* U+000533 */
+	571,						/* U+000534 */
+	572,						/* U+000535 */
+	573,						/* U+000536 */
+	574,						/* U+000537 */
+	575,						/* U+000538 */
+	576,						/* U+000539 */
+	577,						/* U+00053A */
+	578,						/* U+00053B */
+	579,						/* U+00053C */
+	580,						/* U+00053D */
+	581,						/* U+00053E */
+	582,						/* U+00053F */
+	583,						/* U+000540 */
+	584,						/* U+000541 */
+	585,						/* U+000542 */
+	586,						/* U+000543 */
+	587,						/* U+000544 */
+	588,						/* U+000545 */
+	589,						/* U+000546 */
+	590,						/* U+000547 */
+	591,						/* U+000548 */
+	592,						/* U+000549 */
+	593,						/* U+00054A */
+	594,						/* U+00054B */
+	595,						/* U+00054C */
+	596,						/* U+00054D */
+	597,						/* U+00054E */
+	598,						/* U+00054F */
+	599,						/* U+000550 */
+	600,						/* U+000551 */
+	601,						/* U+000552 */
+	602,						/* U+000553 */
+	603,						/* U+000554 */
+	604,						/* U+000555 */
+	605,						/* U+000556 */
 	0,							/* U+000557 */
 	0,							/* U+000558 */
 	0,							/* U+000559 */
@@ -9987,299 +10122,299 @@ static const uint16 case_map[4631] =
 	0,							/* U+00055E */
 	0,							/* U+00055F */
 	0,							/* U+000560 */
-	566,						/* U+000561 */
-	567,						/* U+000562 */
-	568,						/* U+000563 */
-	569,						/* U+000564 */
-	570,						/* U+000565 */
-	571,						/* U+000566 */
-	572,						/* U+000567 */
-	573,						/* U+000568 */
-	574,						/* U+000569 */
-	575,						/* U+00056A */
-	576,						/* U+00056B */
-	577,						/* U+00056C */
-	578,						/* U+00056D */
-	579,						/* U+00056E */
-	580,						/* U+00056F */
-	581,						/* U+000570 */
-	582,						/* U+000571 */
-	583,						/* U+000572 */
-	584,						/* U+000573 */
-	585,						/* U+000574 */
-	586,						/* U+000575 */
-	587,						/* U+000576 */
-	588,						/* U+000577 */
-	589,						/* U+000578 */
-	590,						/* U+000579 */
-	591,						/* U+00057A */
-	592,						/* U+00057B */
-	593,						/* U+00057C */
-	594,						/* U+00057D */
-	595,						/* U+00057E */
-	596,						/* U+00057F */
-	597,						/* U+000580 */
-	598,						/* U+000581 */
-	599,						/* U+000582 */
-	600,						/* U+000583 */
-	601,						/* U+000584 */
-	602,						/* U+000585 */
-	603,						/* U+000586 */
-	604,						/* U+000587 */
-	605,						/* U+0010A0 */
-	606,						/* U+0010A1 */
-	607,						/* U+0010A2 */
-	608,						/* U+0010A3 */
-	609,						/* U+0010A4 */
-	610,						/* U+0010A5 */
-	611,						/* U+0010A6 */
-	612,						/* U+0010A7 */
-	613,						/* U+0010A8 */
-	614,						/* U+0010A9 */
-	615,						/* U+0010AA */
-	616,						/* U+0010AB */
-	617,						/* U+0010AC */
-	618,						/* U+0010AD */
-	619,						/* U+0010AE */
-	620,						/* U+0010AF */
-	621,						/* U+0010B0 */
-	622,						/* U+0010B1 */
-	623,						/* U+0010B2 */
-	624,						/* U+0010B3 */
-	625,						/* U+0010B4 */
-	626,						/* U+0010B5 */
-	627,						/* U+0010B6 */
-	628,						/* U+0010B7 */
-	629,						/* U+0010B8 */
-	630,						/* U+0010B9 */
-	631,						/* U+0010BA */
-	632,						/* U+0010BB */
-	633,						/* U+0010BC */
-	634,						/* U+0010BD */
-	635,						/* U+0010BE */
-	636,						/* U+0010BF */
-	637,						/* U+0010C0 */
-	638,						/* U+0010C1 */
-	639,						/* U+0010C2 */
-	640,						/* U+0010C3 */
-	641,						/* U+0010C4 */
-	642,						/* U+0010C5 */
+	568,						/* U+000561 */
+	569,						/* U+000562 */
+	570,						/* U+000563 */
+	571,						/* U+000564 */
+	572,						/* U+000565 */
+	573,						/* U+000566 */
+	574,						/* U+000567 */
+	575,						/* U+000568 */
+	576,						/* U+000569 */
+	577,						/* U+00056A */
+	578,						/* U+00056B */
+	579,						/* U+00056C */
+	580,						/* U+00056D */
+	581,						/* U+00056E */
+	582,						/* U+00056F */
+	583,						/* U+000570 */
+	584,						/* U+000571 */
+	585,						/* U+000572 */
+	586,						/* U+000573 */
+	587,						/* U+000574 */
+	588,						/* U+000575 */
+	589,						/* U+000576 */
+	590,						/* U+000577 */
+	591,						/* U+000578 */
+	592,						/* U+000579 */
+	593,						/* U+00057A */
+	594,						/* U+00057B */
+	595,						/* U+00057C */
+	596,						/* U+00057D */
+	597,						/* U+00057E */
+	598,						/* U+00057F */
+	599,						/* U+000580 */
+	600,						/* U+000581 */
+	601,						/* U+000582 */
+	602,						/* U+000583 */
+	603,						/* U+000584 */
+	604,						/* U+000585 */
+	605,						/* U+000586 */
+	606,						/* U+000587 */
+	607,						/* U+0010A0 */
+	608,						/* U+0010A1 */
+	609,						/* U+0010A2 */
+	610,						/* U+0010A3 */
+	611,						/* U+0010A4 */
+	612,						/* U+0010A5 */
+	613,						/* U+0010A6 */
+	614,						/* U+0010A7 */
+	615,						/* U+0010A8 */
+	616,						/* U+0010A9 */
+	617,						/* U+0010AA */
+	618,						/* U+0010AB */
+	619,						/* U+0010AC */
+	620,						/* U+0010AD */
+	621,						/* U+0010AE */
+	622,						/* U+0010AF */
+	623,						/* U+0010B0 */
+	624,						/* U+0010B1 */
+	625,						/* U+0010B2 */
+	626,						/* U+0010B3 */
+	627,						/* U+0010B4 */
+	628,						/* U+0010B5 */
+	629,						/* U+0010B6 */
+	630,						/* U+0010B7 */
+	631,						/* U+0010B8 */
+	632,						/* U+0010B9 */
+	633,						/* U+0010BA */
+	634,						/* U+0010BB */
+	635,						/* U+0010BC */
+	636,						/* U+0010BD */
+	637,						/* U+0010BE */
+	638,						/* U+0010BF */
+	639,						/* U+0010C0 */
+	640,						/* U+0010C1 */
+	641,						/* U+0010C2 */
+	642,						/* U+0010C3 */
+	643,						/* U+0010C4 */
+	644,						/* U+0010C5 */
 	0,							/* U+0010C6 */
-	643,						/* U+0010C7 */
+	645,						/* U+0010C7 */
 	0,							/* U+0010C8 */
 	0,							/* U+0010C9 */
 	0,							/* U+0010CA */
 	0,							/* U+0010CB */
 	0,							/* U+0010CC */
-	644,						/* U+0010CD */
+	646,						/* U+0010CD */
 	0,							/* U+0010CE */
 	0,							/* U+0010CF */
-	645,						/* U+0010D0 */
-	646,						/* U+0010D1 */
-	647,						/* U+0010D2 */
-	648,						/* U+0010D3 */
-	649,						/* U+0010D4 */
-	650,						/* U+0010D5 */
-	651,						/* U+0010D6 */
-	652,						/* U+0010D7 */
-	653,						/* U+0010D8 */
-	654,						/* U+0010D9 */
-	655,						/* U+0010DA */
-	656,						/* U+0010DB */
-	657,						/* U+0010DC */
-	658,						/* U+0010DD */
-	659,						/* U+0010DE */
-	660,						/* U+0010DF */
-	661,						/* U+0010E0 */
-	662,						/* U+0010E1 */
-	663,						/* U+0010E2 */
-	664,						/* U+0010E3 */
-	665,						/* U+0010E4 */
-	666,						/* U+0010E5 */
-	667,						/* U+0010E6 */
-	668,						/* U+0010E7 */
-	669,						/* U+0010E8 */
-	670,						/* U+0010E9 */
-	671,						/* U+0010EA */
-	672,						/* U+0010EB */
-	673,						/* U+0010EC */
-	674,						/* U+0010ED */
-	675,						/* U+0010EE */
-	676,						/* U+0010EF */
-	677,						/* U+0010F0 */
-	678,						/* U+0010F1 */
-	679,						/* U+0010F2 */
-	680,						/* U+0010F3 */
-	681,						/* U+0010F4 */
-	682,						/* U+0010F5 */
-	683,						/* U+0010F6 */
-	684,						/* U+0010F7 */
-	685,						/* U+0010F8 */
-	686,						/* U+0010F9 */
-	687,						/* U+0010FA */
+	647,						/* U+0010D0 */
+	648,						/* U+0010D1 */
+	649,						/* U+0010D2 */
+	650,						/* U+0010D3 */
+	651,						/* U+0010D4 */
+	652,						/* U+0010D5 */
+	653,						/* U+0010D6 */
+	654,						/* U+0010D7 */
+	655,						/* U+0010D8 */
+	656,						/* U+0010D9 */
+	657,						/* U+0010DA */
+	658,						/* U+0010DB */
+	659,						/* U+0010DC */
+	660,						/* U+0010DD */
+	661,						/* U+0010DE */
+	662,						/* U+0010DF */
+	663,						/* U+0010E0 */
+	664,						/* U+0010E1 */
+	665,						/* U+0010E2 */
+	666,						/* U+0010E3 */
+	667,						/* U+0010E4 */
+	668,						/* U+0010E5 */
+	669,						/* U+0010E6 */
+	670,						/* U+0010E7 */
+	671,						/* U+0010E8 */
+	672,						/* U+0010E9 */
+	673,						/* U+0010EA */
+	674,						/* U+0010EB */
+	675,						/* U+0010EC */
+	676,						/* U+0010ED */
+	677,						/* U+0010EE */
+	678,						/* U+0010EF */
+	679,						/* U+0010F0 */
+	680,						/* U+0010F1 */
+	681,						/* U+0010F2 */
+	682,						/* U+0010F3 */
+	683,						/* U+0010F4 */
+	684,						/* U+0010F5 */
+	685,						/* U+0010F6 */
+	686,						/* U+0010F7 */
+	687,						/* U+0010F8 */
+	688,						/* U+0010F9 */
+	689,						/* U+0010FA */
 	0,							/* U+0010FB */
 	0,							/* U+0010FC */
-	688,						/* U+0010FD */
-	689,						/* U+0010FE */
-	690,						/* U+0010FF */
-	691,						/* U+0013A0 */
-	692,						/* U+0013A1 */
-	693,						/* U+0013A2 */
-	694,						/* U+0013A3 */
-	695,						/* U+0013A4 */
-	696,						/* U+0013A5 */
-	697,						/* U+0013A6 */
-	698,						/* U+0013A7 */
-	699,						/* U+0013A8 */
-	700,						/* U+0013A9 */
-	701,						/* U+0013AA */
-	702,						/* U+0013AB */
-	703,						/* U+0013AC */
-	704,						/* U+0013AD */
-	705,						/* U+0013AE */
-	706,						/* U+0013AF */
-	707,						/* U+0013B0 */
-	708,						/* U+0013B1 */
-	709,						/* U+0013B2 */
-	710,						/* U+0013B3 */
-	711,						/* U+0013B4 */
-	712,						/* U+0013B5 */
-	713,						/* U+0013B6 */
-	714,						/* U+0013B7 */
-	715,						/* U+0013B8 */
-	716,						/* U+0013B9 */
-	717,						/* U+0013BA */
-	718,						/* U+0013BB */
-	719,						/* U+0013BC */
-	720,						/* U+0013BD */
-	721,						/* U+0013BE */
-	722,						/* U+0013BF */
-	723,						/* U+0013C0 */
-	724,						/* U+0013C1 */
-	725,						/* U+0013C2 */
-	726,						/* U+0013C3 */
-	727,						/* U+0013C4 */
-	728,						/* U+0013C5 */
-	729,						/* U+0013C6 */
-	730,						/* U+0013C7 */
-	731,						/* U+0013C8 */
-	732,						/* U+0013C9 */
-	733,						/* U+0013CA */
-	734,						/* U+0013CB */
-	735,						/* U+0013CC */
-	736,						/* U+0013CD */
-	737,						/* U+0013CE */
-	738,						/* U+0013CF */
-	739,						/* U+0013D0 */
-	740,						/* U+0013D1 */
-	741,						/* U+0013D2 */
-	742,						/* U+0013D3 */
-	743,						/* U+0013D4 */
-	744,						/* U+0013D5 */
-	745,						/* U+0013D6 */
-	746,						/* U+0013D7 */
-	747,						/* U+0013D8 */
-	748,						/* U+0013D9 */
-	749,						/* U+0013DA */
-	750,						/* U+0013DB */
-	751,						/* U+0013DC */
-	752,						/* U+0013DD */
-	753,						/* U+0013DE */
-	754,						/* U+0013DF */
-	755,						/* U+0013E0 */
-	756,						/* U+0013E1 */
-	757,						/* U+0013E2 */
-	758,						/* U+0013E3 */
-	759,						/* U+0013E4 */
-	760,						/* U+0013E5 */
-	761,						/* U+0013E6 */
-	762,						/* U+0013E7 */
-	763,						/* U+0013E8 */
-	764,						/* U+0013E9 */
-	765,						/* U+0013EA */
-	766,						/* U+0013EB */
-	767,						/* U+0013EC */
-	768,						/* U+0013ED */
-	769,						/* U+0013EE */
-	770,						/* U+0013EF */
-	771,						/* U+0013F0 */
-	772,						/* U+0013F1 */
-	773,						/* U+0013F2 */
-	774,						/* U+0013F3 */
-	775,						/* U+0013F4 */
-	776,						/* U+0013F5 */
+	690,						/* U+0010FD */
+	691,						/* U+0010FE */
+	692,						/* U+0010FF */
+	693,						/* U+0013A0 */
+	694,						/* U+0013A1 */
+	695,						/* U+0013A2 */
+	696,						/* U+0013A3 */
+	697,						/* U+0013A4 */
+	698,						/* U+0013A5 */
+	699,						/* U+0013A6 */
+	700,						/* U+0013A7 */
+	701,						/* U+0013A8 */
+	702,						/* U+0013A9 */
+	703,						/* U+0013AA */
+	704,						/* U+0013AB */
+	705,						/* U+0013AC */
+	706,						/* U+0013AD */
+	707,						/* U+0013AE */
+	708,						/* U+0013AF */
+	709,						/* U+0013B0 */
+	710,						/* U+0013B1 */
+	711,						/* U+0013B2 */
+	712,						/* U+0013B3 */
+	713,						/* U+0013B4 */
+	714,						/* U+0013B5 */
+	715,						/* U+0013B6 */
+	716,						/* U+0013B7 */
+	717,						/* U+0013B8 */
+	718,						/* U+0013B9 */
+	719,						/* U+0013BA */
+	720,						/* U+0013BB */
+	721,						/* U+0013BC */
+	722,						/* U+0013BD */
+	723,						/* U+0013BE */
+	724,						/* U+0013BF */
+	725,						/* U+0013C0 */
+	726,						/* U+0013C1 */
+	727,						/* U+0013C2 */
+	728,						/* U+0013C3 */
+	729,						/* U+0013C4 */
+	730,						/* U+0013C5 */
+	731,						/* U+0013C6 */
+	732,						/* U+0013C7 */
+	733,						/* U+0013C8 */
+	734,						/* U+0013C9 */
+	735,						/* U+0013CA */
+	736,						/* U+0013CB */
+	737,						/* U+0013CC */
+	738,						/* U+0013CD */
+	739,						/* U+0013CE */
+	740,						/* U+0013CF */
+	741,						/* U+0013D0 */
+	742,						/* U+0013D1 */
+	743,						/* U+0013D2 */
+	744,						/* U+0013D3 */
+	745,						/* U+0013D4 */
+	746,						/* U+0013D5 */
+	747,						/* U+0013D6 */
+	748,						/* U+0013D7 */
+	749,						/* U+0013D8 */
+	750,						/* U+0013D9 */
+	751,						/* U+0013DA */
+	752,						/* U+0013DB */
+	753,						/* U+0013DC */
+	754,						/* U+0013DD */
+	755,						/* U+0013DE */
+	756,						/* U+0013DF */
+	757,						/* U+0013E0 */
+	758,						/* U+0013E1 */
+	759,						/* U+0013E2 */
+	760,						/* U+0013E3 */
+	761,						/* U+0013E4 */
+	762,						/* U+0013E5 */
+	763,						/* U+0013E6 */
+	764,						/* U+0013E7 */
+	765,						/* U+0013E8 */
+	766,						/* U+0013E9 */
+	767,						/* U+0013EA */
+	768,						/* U+0013EB */
+	769,						/* U+0013EC */
+	770,						/* U+0013ED */
+	771,						/* U+0013EE */
+	772,						/* U+0013EF */
+	773,						/* U+0013F0 */
+	774,						/* U+0013F1 */
+	775,						/* U+0013F2 */
+	776,						/* U+0013F3 */
+	777,						/* U+0013F4 */
+	778,						/* U+0013F5 */
 	0,							/* U+0013F6 */
 	0,							/* U+0013F7 */
-	771,						/* U+0013F8 */
-	772,						/* U+0013F9 */
-	773,						/* U+0013FA */
-	774,						/* U+0013FB */
-	775,						/* U+0013FC */
-	776,						/* U+0013FD */
-	777,						/* U+001C80 */
-	778,						/* U+001C81 */
-	779,						/* U+001C82 */
-	780,						/* U+001C83 */
-	781,						/* U+001C84 */
-	782,						/* U+001C85 */
-	783,						/* U+001C86 */
-	784,						/* U+001C87 */
-	785,						/* U+001C88 */
-	0,							/* U+001C89 */
-	0,							/* U+001C8A */
+	773,						/* U+0013F8 */
+	774,						/* U+0013F9 */
+	775,						/* U+0013FA */
+	776,						/* U+0013FB */
+	777,						/* U+0013FC */
+	778,						/* U+0013FD */
+	779,						/* U+001C80 */
+	780,						/* U+001C81 */
+	781,						/* U+001C82 */
+	782,						/* U+001C83 */
+	783,						/* U+001C84 */
+	784,						/* U+001C85 */
+	785,						/* U+001C86 */
+	786,						/* U+001C87 */
+	787,						/* U+001C88 */
+	788,						/* U+001C89 */
+	788,						/* U+001C8A */
 	0,							/* U+001C8B */
 	0,							/* U+001C8C */
 	0,							/* U+001C8D */
 	0,							/* U+001C8E */
 	0,							/* U+001C8F */
-	786,						/* U+001C90 */
-	787,						/* U+001C91 */
-	788,						/* U+001C92 */
-	789,						/* U+001C93 */
-	790,						/* U+001C94 */
-	791,						/* U+001C95 */
-	792,						/* U+001C96 */
-	793,						/* U+001C97 */
-	794,						/* U+001C98 */
-	795,						/* U+001C99 */
-	796,						/* U+001C9A */
-	797,						/* U+001C9B */
-	798,						/* U+001C9C */
-	799,						/* U+001C9D */
-	800,						/* U+001C9E */
-	801,						/* U+001C9F */
-	802,						/* U+001CA0 */
-	803,						/* U+001CA1 */
-	804,						/* U+001CA2 */
-	805,						/* U+001CA3 */
-	806,						/* U+001CA4 */
-	807,						/* U+001CA5 */
-	808,						/* U+001CA6 */
-	809,						/* U+001CA7 */
-	810,						/* U+001CA8 */
-	811,						/* U+001CA9 */
-	812,						/* U+001CAA */
-	813,						/* U+001CAB */
-	814,						/* U+001CAC */
-	815,						/* U+001CAD */
-	816,						/* U+001CAE */
-	817,						/* U+001CAF */
-	818,						/* U+001CB0 */
-	819,						/* U+001CB1 */
-	820,						/* U+001CB2 */
-	821,						/* U+001CB3 */
-	822,						/* U+001CB4 */
-	823,						/* U+001CB5 */
-	824,						/* U+001CB6 */
-	825,						/* U+001CB7 */
-	826,						/* U+001CB8 */
-	827,						/* U+001CB9 */
-	828,						/* U+001CBA */
+	789,						/* U+001C90 */
+	790,						/* U+001C91 */
+	791,						/* U+001C92 */
+	792,						/* U+001C93 */
+	793,						/* U+001C94 */
+	794,						/* U+001C95 */
+	795,						/* U+001C96 */
+	796,						/* U+001C97 */
+	797,						/* U+001C98 */
+	798,						/* U+001C99 */
+	799,						/* U+001C9A */
+	800,						/* U+001C9B */
+	801,						/* U+001C9C */
+	802,						/* U+001C9D */
+	803,						/* U+001C9E */
+	804,						/* U+001C9F */
+	805,						/* U+001CA0 */
+	806,						/* U+001CA1 */
+	807,						/* U+001CA2 */
+	808,						/* U+001CA3 */
+	809,						/* U+001CA4 */
+	810,						/* U+001CA5 */
+	811,						/* U+001CA6 */
+	812,						/* U+001CA7 */
+	813,						/* U+001CA8 */
+	814,						/* U+001CA9 */
+	815,						/* U+001CAA */
+	816,						/* U+001CAB */
+	817,						/* U+001CAC */
+	818,						/* U+001CAD */
+	819,						/* U+001CAE */
+	820,						/* U+001CAF */
+	821,						/* U+001CB0 */
+	822,						/* U+001CB1 */
+	823,						/* U+001CB2 */
+	824,						/* U+001CB3 */
+	825,						/* U+001CB4 */
+	826,						/* U+001CB5 */
+	827,						/* U+001CB6 */
+	828,						/* U+001CB7 */
+	829,						/* U+001CB8 */
+	830,						/* U+001CB9 */
+	831,						/* U+001CBA */
 	0,							/* U+001CBB */
 	0,							/* U+001CBC */
-	829,						/* U+001CBD */
-	830,						/* U+001CBE */
-	831,						/* U+001CBF */
+	832,						/* U+001CBD */
+	833,						/* U+001CBE */
+	834,						/* U+001CBF */
 	0,							/* U+001CC0 */
 	0,							/* U+001CC1 */
 	0,							/* U+001CC2 */
@@ -10465,11 +10600,11 @@ static const uint16 case_map[4631] =
 	0,							/* U+001D76 */
 	0,							/* U+001D77 */
 	0,							/* U+001D78 */
-	832,						/* U+001D79 */
+	835,						/* U+001D79 */
 	0,							/* U+001D7A */
 	0,							/* U+001D7B */
 	0,							/* U+001D7C */
-	833,						/* U+001D7D */
+	836,						/* U+001D7D */
 	0,							/* U+001D7E */
 	0,							/* U+001D7F */
 	0,							/* U+001D80 */
@@ -10486,7 +10621,7 @@ static const uint16 case_map[4631] =
 	0,							/* U+001D8B */
 	0,							/* U+001D8C */
 	0,							/* U+001D8D */
-	834,						/* U+001D8E */
+	837,						/* U+001D8E */
 	0,							/* U+001D8F */
 	0,							/* U+001D90 */
 	0,							/* U+001D91 */
@@ -10600,515 +10735,515 @@ static const uint16 case_map[4631] =
 	0,							/* U+001DFD */
 	0,							/* U+001DFE */
 	0,							/* U+001DFF */
-	835,						/* U+001E00 */
-	835,						/* U+001E01 */
-	836,						/* U+001E02 */
-	836,						/* U+001E03 */
-	837,						/* U+001E04 */
-	837,						/* U+001E05 */
-	838,						/* U+001E06 */
-	838,						/* U+001E07 */
-	839,						/* U+001E08 */
-	839,						/* U+001E09 */
-	840,						/* U+001E0A */
-	840,						/* U+001E0B */
-	841,						/* U+001E0C */
-	841,						/* U+001E0D */
-	842,						/* U+001E0E */
-	842,						/* U+001E0F */
-	843,						/* U+001E10 */
-	843,						/* U+001E11 */
-	844,						/* U+001E12 */
-	844,						/* U+001E13 */
-	845,						/* U+001E14 */
-	845,						/* U+001E15 */
-	846,						/* U+001E16 */
-	846,						/* U+001E17 */
-	847,						/* U+001E18 */
-	847,						/* U+001E19 */
-	848,						/* U+001E1A */
-	848,						/* U+001E1B */
-	849,						/* U+001E1C */
-	849,						/* U+001E1D */
-	850,						/* U+001E1E */
-	850,						/* U+001E1F */
-	851,						/* U+001E20 */
-	851,						/* U+001E21 */
-	852,						/* U+001E22 */
-	852,						/* U+001E23 */
-	853,						/* U+001E24 */
-	853,						/* U+001E25 */
-	854,						/* U+001E26 */
-	854,						/* U+001E27 */
-	855,						/* U+001E28 */
-	855,						/* U+001E29 */
-	856,						/* U+001E2A */
-	856,						/* U+001E2B */
-	857,						/* U+001E2C */
-	857,						/* U+001E2D */
-	858,						/* U+001E2E */
-	858,						/* U+001E2F */
-	859,						/* U+001E30 */
-	859,						/* U+001E31 */
-	860,						/* U+001E32 */
-	860,						/* U+001E33 */
-	861,						/* U+001E34 */
-	861,						/* U+001E35 */
-	862,						/* U+001E36 */
-	862,						/* U+001E37 */
-	863,						/* U+001E38 */
-	863,						/* U+001E39 */
-	864,						/* U+001E3A */
-	864,						/* U+001E3B */
-	865,						/* U+001E3C */
-	865,						/* U+001E3D */
-	866,						/* U+001E3E */
-	866,						/* U+001E3F */
-	867,						/* U+001E40 */
-	867,						/* U+001E41 */
-	868,						/* U+001E42 */
-	868,						/* U+001E43 */
-	869,						/* U+001E44 */
-	869,						/* U+001E45 */
-	870,						/* U+001E46 */
-	870,						/* U+001E47 */
-	871,						/* U+001E48 */
-	871,						/* U+001E49 */
-	872,						/* U+001E4A */
-	872,						/* U+001E4B */
-	873,						/* U+001E4C */
-	873,						/* U+001E4D */
-	874,						/* U+001E4E */
-	874,						/* U+001E4F */
-	875,						/* U+001E50 */
-	875,						/* U+001E51 */
-	876,						/* U+001E52 */
-	876,						/* U+001E53 */
-	877,						/* U+001E54 */
-	877,						/* U+001E55 */
-	878,						/* U+001E56 */
-	878,						/* U+001E57 */
-	879,						/* U+001E58 */
-	879,						/* U+001E59 */
-	880,						/* U+001E5A */
-	880,						/* U+001E5B */
-	881,						/* U+001E5C */
-	881,						/* U+001E5D */
-	882,						/* U+001E5E */
-	882,						/* U+001E5F */
-	883,						/* U+001E60 */
-	883,						/* U+001E61 */
-	884,						/* U+001E62 */
-	884,						/* U+001E63 */
-	885,						/* U+001E64 */
-	885,						/* U+001E65 */
-	886,						/* U+001E66 */
-	886,						/* U+001E67 */
-	887,						/* U+001E68 */
-	887,						/* U+001E69 */
-	888,						/* U+001E6A */
-	888,						/* U+001E6B */
-	889,						/* U+001E6C */
-	889,						/* U+001E6D */
-	890,						/* U+001E6E */
-	890,						/* U+001E6F */
-	891,						/* U+001E70 */
-	891,						/* U+001E71 */
-	892,						/* U+001E72 */
-	892,						/* U+001E73 */
-	893,						/* U+001E74 */
-	893,						/* U+001E75 */
-	894,						/* U+001E76 */
-	894,						/* U+001E77 */
-	895,						/* U+001E78 */
-	895,						/* U+001E79 */
-	896,						/* U+001E7A */
-	896,						/* U+001E7B */
-	897,						/* U+001E7C */
-	897,						/* U+001E7D */
-	898,						/* U+001E7E */
-	898,						/* U+001E7F */
-	899,						/* U+001E80 */
-	899,						/* U+001E81 */
-	900,						/* U+001E82 */
-	900,						/* U+001E83 */
-	901,						/* U+001E84 */
-	901,						/* U+001E85 */
-	902,						/* U+001E86 */
-	902,						/* U+001E87 */
-	903,						/* U+001E88 */
-	903,						/* U+001E89 */
-	904,						/* U+001E8A */
-	904,						/* U+001E8B */
-	905,						/* U+001E8C */
-	905,						/* U+001E8D */
-	906,						/* U+001E8E */
-	906,						/* U+001E8F */
-	907,						/* U+001E90 */
-	907,						/* U+001E91 */
-	908,						/* U+001E92 */
-	908,						/* U+001E93 */
-	909,						/* U+001E94 */
-	909,						/* U+001E95 */
-	910,						/* U+001E96 */
-	911,						/* U+001E97 */
-	912,						/* U+001E98 */
-	913,						/* U+001E99 */
-	914,						/* U+001E9A */
-	915,						/* U+001E9B */
+	838,						/* U+001E00 */
+	838,						/* U+001E01 */
+	839,						/* U+001E02 */
+	839,						/* U+001E03 */
+	840,						/* U+001E04 */
+	840,						/* U+001E05 */
+	841,						/* U+001E06 */
+	841,						/* U+001E07 */
+	842,						/* U+001E08 */
+	842,						/* U+001E09 */
+	843,						/* U+001E0A */
+	843,						/* U+001E0B */
+	844,						/* U+001E0C */
+	844,						/* U+001E0D */
+	845,						/* U+001E0E */
+	845,						/* U+001E0F */
+	846,						/* U+001E10 */
+	846,						/* U+001E11 */
+	847,						/* U+001E12 */
+	847,						/* U+001E13 */
+	848,						/* U+001E14 */
+	848,						/* U+001E15 */
+	849,						/* U+001E16 */
+	849,						/* U+001E17 */
+	850,						/* U+001E18 */
+	850,						/* U+001E19 */
+	851,						/* U+001E1A */
+	851,						/* U+001E1B */
+	852,						/* U+001E1C */
+	852,						/* U+001E1D */
+	853,						/* U+001E1E */
+	853,						/* U+001E1F */
+	854,						/* U+001E20 */
+	854,						/* U+001E21 */
+	855,						/* U+001E22 */
+	855,						/* U+001E23 */
+	856,						/* U+001E24 */
+	856,						/* U+001E25 */
+	857,						/* U+001E26 */
+	857,						/* U+001E27 */
+	858,						/* U+001E28 */
+	858,						/* U+001E29 */
+	859,						/* U+001E2A */
+	859,						/* U+001E2B */
+	860,						/* U+001E2C */
+	860,						/* U+001E2D */
+	861,						/* U+001E2E */
+	861,						/* U+001E2F */
+	862,						/* U+001E30 */
+	862,						/* U+001E31 */
+	863,						/* U+001E32 */
+	863,						/* U+001E33 */
+	864,						/* U+001E34 */
+	864,						/* U+001E35 */
+	865,						/* U+001E36 */
+	865,						/* U+001E37 */
+	866,						/* U+001E38 */
+	866,						/* U+001E39 */
+	867,						/* U+001E3A */
+	867,						/* U+001E3B */
+	868,						/* U+001E3C */
+	868,						/* U+001E3D */
+	869,						/* U+001E3E */
+	869,						/* U+001E3F */
+	870,						/* U+001E40 */
+	870,						/* U+001E41 */
+	871,						/* U+001E42 */
+	871,						/* U+001E43 */
+	872,						/* U+001E44 */
+	872,						/* U+001E45 */
+	873,						/* U+001E46 */
+	873,						/* U+001E47 */
+	874,						/* U+001E48 */
+	874,						/* U+001E49 */
+	875,						/* U+001E4A */
+	875,						/* U+001E4B */
+	876,						/* U+001E4C */
+	876,						/* U+001E4D */
+	877,						/* U+001E4E */
+	877,						/* U+001E4F */
+	878,						/* U+001E50 */
+	878,						/* U+001E51 */
+	879,						/* U+001E52 */
+	879,						/* U+001E53 */
+	880,						/* U+001E54 */
+	880,						/* U+001E55 */
+	881,						/* U+001E56 */
+	881,						/* U+001E57 */
+	882,						/* U+001E58 */
+	882,						/* U+001E59 */
+	883,						/* U+001E5A */
+	883,						/* U+001E5B */
+	884,						/* U+001E5C */
+	884,						/* U+001E5D */
+	885,						/* U+001E5E */
+	885,						/* U+001E5F */
+	886,						/* U+001E60 */
+	886,						/* U+001E61 */
+	887,						/* U+001E62 */
+	887,						/* U+001E63 */
+	888,						/* U+001E64 */
+	888,						/* U+001E65 */
+	889,						/* U+001E66 */
+	889,						/* U+001E67 */
+	890,						/* U+001E68 */
+	890,						/* U+001E69 */
+	891,						/* U+001E6A */
+	891,						/* U+001E6B */
+	892,						/* U+001E6C */
+	892,						/* U+001E6D */
+	893,						/* U+001E6E */
+	893,						/* U+001E6F */
+	894,						/* U+001E70 */
+	894,						/* U+001E71 */
+	895,						/* U+001E72 */
+	895,						/* U+001E73 */
+	896,						/* U+001E74 */
+	896,						/* U+001E75 */
+	897,						/* U+001E76 */
+	897,						/* U+001E77 */
+	898,						/* U+001E78 */
+	898,						/* U+001E79 */
+	899,						/* U+001E7A */
+	899,						/* U+001E7B */
+	900,						/* U+001E7C */
+	900,						/* U+001E7D */
+	901,						/* U+001E7E */
+	901,						/* U+001E7F */
+	902,						/* U+001E80 */
+	902,						/* U+001E81 */
+	903,						/* U+001E82 */
+	903,						/* U+001E83 */
+	904,						/* U+001E84 */
+	904,						/* U+001E85 */
+	905,						/* U+001E86 */
+	905,						/* U+001E87 */
+	906,						/* U+001E88 */
+	906,						/* U+001E89 */
+	907,						/* U+001E8A */
+	907,						/* U+001E8B */
+	908,						/* U+001E8C */
+	908,						/* U+001E8D */
+	909,						/* U+001E8E */
+	909,						/* U+001E8F */
+	910,						/* U+001E90 */
+	910,						/* U+001E91 */
+	911,						/* U+001E92 */
+	911,						/* U+001E93 */
+	912,						/* U+001E94 */
+	912,						/* U+001E95 */
+	913,						/* U+001E96 */
+	914,						/* U+001E97 */
+	915,						/* U+001E98 */
+	916,						/* U+001E99 */
+	917,						/* U+001E9A */
+	918,						/* U+001E9B */
 	0,							/* U+001E9C */
 	0,							/* U+001E9D */
-	916,						/* U+001E9E */
+	919,						/* U+001E9E */
 	0,							/* U+001E9F */
-	917,						/* U+001EA0 */
-	917,						/* U+001EA1 */
-	918,						/* U+001EA2 */
-	918,						/* U+001EA3 */
-	919,						/* U+001EA4 */
-	919,						/* U+001EA5 */
-	920,						/* U+001EA6 */
-	920,						/* U+001EA7 */
-	921,						/* U+001EA8 */
-	921,						/* U+001EA9 */
-	922,						/* U+001EAA */
-	922,						/* U+001EAB */
-	923,						/* U+001EAC */
-	923,						/* U+001EAD */
-	924,						/* U+001EAE */
-	924,						/* U+001EAF */
-	925,						/* U+001EB0 */
-	925,						/* U+001EB1 */
-	926,						/* U+001EB2 */
-	926,						/* U+001EB3 */
-	927,						/* U+001EB4 */
-	927,						/* U+001EB5 */
-	928,						/* U+001EB6 */
-	928,						/* U+001EB7 */
-	929,						/* U+001EB8 */
-	929,						/* U+001EB9 */
-	930,						/* U+001EBA */
-	930,						/* U+001EBB */
-	931,						/* U+001EBC */
-	931,						/* U+001EBD */
-	932,						/* U+001EBE */
-	932,						/* U+001EBF */
-	933,						/* U+001EC0 */
-	933,						/* U+001EC1 */
-	934,						/* U+001EC2 */
-	934,						/* U+001EC3 */
-	935,						/* U+001EC4 */
-	935,						/* U+001EC5 */
-	936,						/* U+001EC6 */
-	936,						/* U+001EC7 */
-	937,						/* U+001EC8 */
-	937,						/* U+001EC9 */
-	938,						/* U+001ECA */
-	938,						/* U+001ECB */
-	939,						/* U+001ECC */
-	939,						/* U+001ECD */
-	940,						/* U+001ECE */
-	940,						/* U+001ECF */
-	941,						/* U+001ED0 */
-	941,						/* U+001ED1 */
-	942,						/* U+001ED2 */
-	942,						/* U+001ED3 */
-	943,						/* U+001ED4 */
-	943,						/* U+001ED5 */
-	944,						/* U+001ED6 */
-	944,						/* U+001ED7 */
-	945,						/* U+001ED8 */
-	945,						/* U+001ED9 */
-	946,						/* U+001EDA */
-	946,						/* U+001EDB */
-	947,						/* U+001EDC */
-	947,						/* U+001EDD */
-	948,						/* U+001EDE */
-	948,						/* U+001EDF */
-	949,						/* U+001EE0 */
-	949,						/* U+001EE1 */
-	950,						/* U+001EE2 */
-	950,						/* U+001EE3 */
-	951,						/* U+001EE4 */
-	951,						/* U+001EE5 */
-	952,						/* U+001EE6 */
-	952,						/* U+001EE7 */
-	953,						/* U+001EE8 */
-	953,						/* U+001EE9 */
-	954,						/* U+001EEA */
-	954,						/* U+001EEB */
-	955,						/* U+001EEC */
-	955,						/* U+001EED */
-	956,						/* U+001EEE */
-	956,						/* U+001EEF */
-	957,						/* U+001EF0 */
-	957,						/* U+001EF1 */
-	958,						/* U+001EF2 */
-	958,						/* U+001EF3 */
-	959,						/* U+001EF4 */
-	959,						/* U+001EF5 */
-	960,						/* U+001EF6 */
-	960,						/* U+001EF7 */
-	961,						/* U+001EF8 */
-	961,						/* U+001EF9 */
-	962,						/* U+001EFA */
-	962,						/* U+001EFB */
-	963,						/* U+001EFC */
-	963,						/* U+001EFD */
-	964,						/* U+001EFE */
-	964,						/* U+001EFF */
-	965,						/* U+001F00 */
-	966,						/* U+001F01 */
-	967,						/* U+001F02 */
-	968,						/* U+001F03 */
-	969,						/* U+001F04 */
-	970,						/* U+001F05 */
-	971,						/* U+001F06 */
-	972,						/* U+001F07 */
-	965,						/* U+001F08 */
-	966,						/* U+001F09 */
-	967,						/* U+001F0A */
-	968,						/* U+001F0B */
-	969,						/* U+001F0C */
-	970,						/* U+001F0D */
-	971,						/* U+001F0E */
-	972,						/* U+001F0F */
-	973,						/* U+001F10 */
-	974,						/* U+001F11 */
-	975,						/* U+001F12 */
-	976,						/* U+001F13 */
-	977,						/* U+001F14 */
-	978,						/* U+001F15 */
+	920,						/* U+001EA0 */
+	920,						/* U+001EA1 */
+	921,						/* U+001EA2 */
+	921,						/* U+001EA3 */
+	922,						/* U+001EA4 */
+	922,						/* U+001EA5 */
+	923,						/* U+001EA6 */
+	923,						/* U+001EA7 */
+	924,						/* U+001EA8 */
+	924,						/* U+001EA9 */
+	925,						/* U+001EAA */
+	925,						/* U+001EAB */
+	926,						/* U+001EAC */
+	926,						/* U+001EAD */
+	927,						/* U+001EAE */
+	927,						/* U+001EAF */
+	928,						/* U+001EB0 */
+	928,						/* U+001EB1 */
+	929,						/* U+001EB2 */
+	929,						/* U+001EB3 */
+	930,						/* U+001EB4 */
+	930,						/* U+001EB5 */
+	931,						/* U+001EB6 */
+	931,						/* U+001EB7 */
+	932,						/* U+001EB8 */
+	932,						/* U+001EB9 */
+	933,						/* U+001EBA */
+	933,						/* U+001EBB */
+	934,						/* U+001EBC */
+	934,						/* U+001EBD */
+	935,						/* U+001EBE */
+	935,						/* U+001EBF */
+	936,						/* U+001EC0 */
+	936,						/* U+001EC1 */
+	937,						/* U+001EC2 */
+	937,						/* U+001EC3 */
+	938,						/* U+001EC4 */
+	938,						/* U+001EC5 */
+	939,						/* U+001EC6 */
+	939,						/* U+001EC7 */
+	940,						/* U+001EC8 */
+	940,						/* U+001EC9 */
+	941,						/* U+001ECA */
+	941,						/* U+001ECB */
+	942,						/* U+001ECC */
+	942,						/* U+001ECD */
+	943,						/* U+001ECE */
+	943,						/* U+001ECF */
+	944,						/* U+001ED0 */
+	944,						/* U+001ED1 */
+	945,						/* U+001ED2 */
+	945,						/* U+001ED3 */
+	946,						/* U+001ED4 */
+	946,						/* U+001ED5 */
+	947,						/* U+001ED6 */
+	947,						/* U+001ED7 */
+	948,						/* U+001ED8 */
+	948,						/* U+001ED9 */
+	949,						/* U+001EDA */
+	949,						/* U+001EDB */
+	950,						/* U+001EDC */
+	950,						/* U+001EDD */
+	951,						/* U+001EDE */
+	951,						/* U+001EDF */
+	952,						/* U+001EE0 */
+	952,						/* U+001EE1 */
+	953,						/* U+001EE2 */
+	953,						/* U+001EE3 */
+	954,						/* U+001EE4 */
+	954,						/* U+001EE5 */
+	955,						/* U+001EE6 */
+	955,						/* U+001EE7 */
+	956,						/* U+001EE8 */
+	956,						/* U+001EE9 */
+	957,						/* U+001EEA */
+	957,						/* U+001EEB */
+	958,						/* U+001EEC */
+	958,						/* U+001EED */
+	959,						/* U+001EEE */
+	959,						/* U+001EEF */
+	960,						/* U+001EF0 */
+	960,						/* U+001EF1 */
+	961,						/* U+001EF2 */
+	961,						/* U+001EF3 */
+	962,						/* U+001EF4 */
+	962,						/* U+001EF5 */
+	963,						/* U+001EF6 */
+	963,						/* U+001EF7 */
+	964,						/* U+001EF8 */
+	964,						/* U+001EF9 */
+	965,						/* U+001EFA */
+	965,						/* U+001EFB */
+	966,						/* U+001EFC */
+	966,						/* U+001EFD */
+	967,						/* U+001EFE */
+	967,						/* U+001EFF */
+	968,						/* U+001F00 */
+	969,						/* U+001F01 */
+	970,						/* U+001F02 */
+	971,						/* U+001F03 */
+	972,						/* U+001F04 */
+	973,						/* U+001F05 */
+	974,						/* U+001F06 */
+	975,						/* U+001F07 */
+	968,						/* U+001F08 */
+	969,						/* U+001F09 */
+	970,						/* U+001F0A */
+	971,						/* U+001F0B */
+	972,						/* U+001F0C */
+	973,						/* U+001F0D */
+	974,						/* U+001F0E */
+	975,						/* U+001F0F */
+	976,						/* U+001F10 */
+	977,						/* U+001F11 */
+	978,						/* U+001F12 */
+	979,						/* U+001F13 */
+	980,						/* U+001F14 */
+	981,						/* U+001F15 */
 	0,							/* U+001F16 */
 	0,							/* U+001F17 */
-	973,						/* U+001F18 */
-	974,						/* U+001F19 */
-	975,						/* U+001F1A */
-	976,						/* U+001F1B */
-	977,						/* U+001F1C */
-	978,						/* U+001F1D */
+	976,						/* U+001F18 */
+	977,						/* U+001F19 */
+	978,						/* U+001F1A */
+	979,						/* U+001F1B */
+	980,						/* U+001F1C */
+	981,						/* U+001F1D */
 	0,							/* U+001F1E */
 	0,							/* U+001F1F */
-	979,						/* U+001F20 */
-	980,						/* U+001F21 */
-	981,						/* U+001F22 */
-	982,						/* U+001F23 */
-	983,						/* U+001F24 */
-	984,						/* U+001F25 */
-	985,						/* U+001F26 */
-	986,						/* U+001F27 */
-	979,						/* U+001F28 */
-	980,						/* U+001F29 */
-	981,						/* U+001F2A */
-	982,						/* U+001F2B */
-	983,						/* U+001F2C */
-	984,						/* U+001F2D */
-	985,						/* U+001F2E */
-	986,						/* U+001F2F */
-	987,						/* U+001F30 */
-	988,						/* U+001F31 */
-	989,						/* U+001F32 */
-	990,						/* U+001F33 */
-	991,						/* U+001F34 */
-	992,						/* U+001F35 */
-	993,						/* U+001F36 */
-	994,						/* U+001F37 */
-	987,						/* U+001F38 */
-	988,						/* U+001F39 */
-	989,						/* U+001F3A */
-	990,						/* U+001F3B */
-	991,						/* U+001F3C */
-	992,						/* U+001F3D */
-	993,						/* U+001F3E */
-	994,						/* U+001F3F */
-	995,						/* U+001F40 */
-	996,						/* U+001F41 */
-	997,						/* U+001F42 */
-	998,						/* U+001F43 */
-	999,						/* U+001F44 */
-	1000,						/* U+001F45 */
+	982,						/* U+001F20 */
+	983,						/* U+001F21 */
+	984,						/* U+001F22 */
+	985,						/* U+001F23 */
+	986,						/* U+001F24 */
+	987,						/* U+001F25 */
+	988,						/* U+001F26 */
+	989,						/* U+001F27 */
+	982,						/* U+001F28 */
+	983,						/* U+001F29 */
+	984,						/* U+001F2A */
+	985,						/* U+001F2B */
+	986,						/* U+001F2C */
+	987,						/* U+001F2D */
+	988,						/* U+001F2E */
+	989,						/* U+001F2F */
+	990,						/* U+001F30 */
+	991,						/* U+001F31 */
+	992,						/* U+001F32 */
+	993,						/* U+001F33 */
+	994,						/* U+001F34 */
+	995,						/* U+001F35 */
+	996,						/* U+001F36 */
+	997,						/* U+001F37 */
+	990,						/* U+001F38 */
+	991,						/* U+001F39 */
+	992,						/* U+001F3A */
+	993,						/* U+001F3B */
+	994,						/* U+001F3C */
+	995,						/* U+001F3D */
+	996,						/* U+001F3E */
+	997,						/* U+001F3F */
+	998,						/* U+001F40 */
+	999,						/* U+001F41 */
+	1000,						/* U+001F42 */
+	1001,						/* U+001F43 */
+	1002,						/* U+001F44 */
+	1003,						/* U+001F45 */
 	0,							/* U+001F46 */
 	0,							/* U+001F47 */
-	995,						/* U+001F48 */
-	996,						/* U+001F49 */
-	997,						/* U+001F4A */
-	998,						/* U+001F4B */
-	999,						/* U+001F4C */
-	1000,						/* U+001F4D */
+	998,						/* U+001F48 */
+	999,						/* U+001F49 */
+	1000,						/* U+001F4A */
+	1001,						/* U+001F4B */
+	1002,						/* U+001F4C */
+	1003,						/* U+001F4D */
 	0,							/* U+001F4E */
 	0,							/* U+001F4F */
-	1001,						/* U+001F50 */
-	1002,						/* U+001F51 */
-	1003,						/* U+001F52 */
-	1004,						/* U+001F53 */
-	1005,						/* U+001F54 */
-	1006,						/* U+001F55 */
-	1007,						/* U+001F56 */
-	1008,						/* U+001F57 */
+	1004,						/* U+001F50 */
+	1005,						/* U+001F51 */
+	1006,						/* U+001F52 */
+	1007,						/* U+001F53 */
+	1008,						/* U+001F54 */
+	1009,						/* U+001F55 */
+	1010,						/* U+001F56 */
+	1011,						/* U+001F57 */
 	0,							/* U+001F58 */
-	1002,						/* U+001F59 */
+	1005,						/* U+001F59 */
 	0,							/* U+001F5A */
-	1004,						/* U+001F5B */
+	1007,						/* U+001F5B */
 	0,							/* U+001F5C */
-	1006,						/* U+001F5D */
+	1009,						/* U+001F5D */
 	0,							/* U+001F5E */
-	1008,						/* U+001F5F */
-	1009,						/* U+001F60 */
-	1010,						/* U+001F61 */
-	1011,						/* U+001F62 */
-	1012,						/* U+001F63 */
-	1013,						/* U+001F64 */
-	1014,						/* U+001F65 */
-	1015,						/* U+001F66 */
-	1016,						/* U+001F67 */
-	1009,						/* U+001F68 */
-	1010,						/* U+001F69 */
-	1011,						/* U+001F6A */
-	1012,						/* U+001F6B */
-	1013,						/* U+001F6C */
-	1014,						/* U+001F6D */
-	1015,						/* U+001F6E */
-	1016,						/* U+001F6F */
-	1017,						/* U+001F70 */
-	1018,						/* U+001F71 */
-	1019,						/* U+001F72 */
-	1020,						/* U+001F73 */
-	1021,						/* U+001F74 */
-	1022,						/* U+001F75 */
-	1023,						/* U+001F76 */
-	1024,						/* U+001F77 */
-	1025,						/* U+001F78 */
-	1026,						/* U+001F79 */
-	1027,						/* U+001F7A */
-	1028,						/* U+001F7B */
-	1029,						/* U+001F7C */
-	1030,						/* U+001F7D */
+	1011,						/* U+001F5F */
+	1012,						/* U+001F60 */
+	1013,						/* U+001F61 */
+	1014,						/* U+001F62 */
+	1015,						/* U+001F63 */
+	1016,						/* U+001F64 */
+	1017,						/* U+001F65 */
+	1018,						/* U+001F66 */
+	1019,						/* U+001F67 */
+	1012,						/* U+001F68 */
+	1013,						/* U+001F69 */
+	1014,						/* U+001F6A */
+	1015,						/* U+001F6B */
+	1016,						/* U+001F6C */
+	1017,						/* U+001F6D */
+	1018,						/* U+001F6E */
+	1019,						/* U+001F6F */
+	1020,						/* U+001F70 */
+	1021,						/* U+001F71 */
+	1022,						/* U+001F72 */
+	1023,						/* U+001F73 */
+	1024,						/* U+001F74 */
+	1025,						/* U+001F75 */
+	1026,						/* U+001F76 */
+	1027,						/* U+001F77 */
+	1028,						/* U+001F78 */
+	1029,						/* U+001F79 */
+	1030,						/* U+001F7A */
+	1031,						/* U+001F7B */
+	1032,						/* U+001F7C */
+	1033,						/* U+001F7D */
 	0,							/* U+001F7E */
 	0,							/* U+001F7F */
-	1031,						/* U+001F80 */
-	1032,						/* U+001F81 */
-	1033,						/* U+001F82 */
-	1034,						/* U+001F83 */
-	1035,						/* U+001F84 */
-	1036,						/* U+001F85 */
-	1037,						/* U+001F86 */
-	1038,						/* U+001F87 */
-	1039,						/* U+001F88 */
-	1040,						/* U+001F89 */
-	1041,						/* U+001F8A */
-	1042,						/* U+001F8B */
-	1043,						/* U+001F8C */
-	1044,						/* U+001F8D */
-	1045,						/* U+001F8E */
-	1046,						/* U+001F8F */
-	1047,						/* U+001F90 */
-	1048,						/* U+001F91 */
-	1049,						/* U+001F92 */
-	1050,						/* U+001F93 */
-	1051,						/* U+001F94 */
-	1052,						/* U+001F95 */
-	1053,						/* U+001F96 */
-	1054,						/* U+001F97 */
-	1055,						/* U+001F98 */
-	1056,						/* U+001F99 */
-	1057,						/* U+001F9A */
-	1058,						/* U+001F9B */
-	1059,						/* U+001F9C */
-	1060,						/* U+001F9D */
-	1061,						/* U+001F9E */
-	1062,						/* U+001F9F */
-	1063,						/* U+001FA0 */
-	1064,						/* U+001FA1 */
-	1065,						/* U+001FA2 */
-	1066,						/* U+001FA3 */
-	1067,						/* U+001FA4 */
-	1068,						/* U+001FA5 */
-	1069,						/* U+001FA6 */
-	1070,						/* U+001FA7 */
-	1071,						/* U+001FA8 */
-	1072,						/* U+001FA9 */
-	1073,						/* U+001FAA */
-	1074,						/* U+001FAB */
-	1075,						/* U+001FAC */
-	1076,						/* U+001FAD */
-	1077,						/* U+001FAE */
-	1078,						/* U+001FAF */
-	1079,						/* U+001FB0 */
-	1080,						/* U+001FB1 */
-	1081,						/* U+001FB2 */
-	1082,						/* U+001FB3 */
-	1083,						/* U+001FB4 */
+	1034,						/* U+001F80 */
+	1035,						/* U+001F81 */
+	1036,						/* U+001F82 */
+	1037,						/* U+001F83 */
+	1038,						/* U+001F84 */
+	1039,						/* U+001F85 */
+	1040,						/* U+001F86 */
+	1041,						/* U+001F87 */
+	1042,						/* U+001F88 */
+	1043,						/* U+001F89 */
+	1044,						/* U+001F8A */
+	1045,						/* U+001F8B */
+	1046,						/* U+001F8C */
+	1047,						/* U+001F8D */
+	1048,						/* U+001F8E */
+	1049,						/* U+001F8F */
+	1050,						/* U+001F90 */
+	1051,						/* U+001F91 */
+	1052,						/* U+001F92 */
+	1053,						/* U+001F93 */
+	1054,						/* U+001F94 */
+	1055,						/* U+001F95 */
+	1056,						/* U+001F96 */
+	1057,						/* U+001F97 */
+	1058,						/* U+001F98 */
+	1059,						/* U+001F99 */
+	1060,						/* U+001F9A */
+	1061,						/* U+001F9B */
+	1062,						/* U+001F9C */
+	1063,						/* U+001F9D */
+	1064,						/* U+001F9E */
+	1065,						/* U+001F9F */
+	1066,						/* U+001FA0 */
+	1067,						/* U+001FA1 */
+	1068,						/* U+001FA2 */
+	1069,						/* U+001FA3 */
+	1070,						/* U+001FA4 */
+	1071,						/* U+001FA5 */
+	1072,						/* U+001FA6 */
+	1073,						/* U+001FA7 */
+	1074,						/* U+001FA8 */
+	1075,						/* U+001FA9 */
+	1076,						/* U+001FAA */
+	1077,						/* U+001FAB */
+	1078,						/* U+001FAC */
+	1079,						/* U+001FAD */
+	1080,						/* U+001FAE */
+	1081,						/* U+001FAF */
+	1082,						/* U+001FB0 */
+	1083,						/* U+001FB1 */
+	1084,						/* U+001FB2 */
+	1085,						/* U+001FB3 */
+	1086,						/* U+001FB4 */
 	0,							/* U+001FB5 */
-	1084,						/* U+001FB6 */
-	1085,						/* U+001FB7 */
-	1079,						/* U+001FB8 */
-	1080,						/* U+001FB9 */
-	1017,						/* U+001FBA */
-	1018,						/* U+001FBB */
-	1086,						/* U+001FBC */
+	1087,						/* U+001FB6 */
+	1088,						/* U+001FB7 */
+	1082,						/* U+001FB8 */
+	1083,						/* U+001FB9 */
+	1020,						/* U+001FBA */
+	1021,						/* U+001FBB */
+	1089,						/* U+001FBC */
 	0,							/* U+001FBD */
-	1087,						/* U+001FBE */
+	1090,						/* U+001FBE */
 	0,							/* U+001FBF */
 	0,							/* U+001FC0 */
 	0,							/* U+001FC1 */
-	1088,						/* U+001FC2 */
-	1089,						/* U+001FC3 */
-	1090,						/* U+001FC4 */
+	1091,						/* U+001FC2 */
+	1092,						/* U+001FC3 */
+	1093,						/* U+001FC4 */
 	0,							/* U+001FC5 */
-	1091,						/* U+001FC6 */
-	1092,						/* U+001FC7 */
-	1019,						/* U+001FC8 */
-	1020,						/* U+001FC9 */
-	1021,						/* U+001FCA */
-	1022,						/* U+001FCB */
-	1093,						/* U+001FCC */
+	1094,						/* U+001FC6 */
+	1095,						/* U+001FC7 */
+	1022,						/* U+001FC8 */
+	1023,						/* U+001FC9 */
+	1024,						/* U+001FCA */
+	1025,						/* U+001FCB */
+	1096,						/* U+001FCC */
 	0,							/* U+001FCD */
 	0,							/* U+001FCE */
 	0,							/* U+001FCF */
-	1094,						/* U+001FD0 */
-	1095,						/* U+001FD1 */
-	1096,						/* U+001FD2 */
-	1097,						/* U+001FD3 */
+	1097,						/* U+001FD0 */
+	1098,						/* U+001FD1 */
+	1099,						/* U+001FD2 */
+	1100,						/* U+001FD3 */
 	0,							/* U+001FD4 */
 	0,							/* U+001FD5 */
-	1098,						/* U+001FD6 */
-	1099,						/* U+001FD7 */
-	1094,						/* U+001FD8 */
-	1095,						/* U+001FD9 */
-	1023,						/* U+001FDA */
-	1024,						/* U+001FDB */
+	1101,						/* U+001FD6 */
+	1102,						/* U+001FD7 */
+	1097,						/* U+001FD8 */
+	1098,						/* U+001FD9 */
+	1026,						/* U+001FDA */
+	1027,						/* U+001FDB */
 	0,							/* U+001FDC */
 	0,							/* U+001FDD */
 	0,							/* U+001FDE */
 	0,							/* U+001FDF */
-	1100,						/* U+001FE0 */
-	1101,						/* U+001FE1 */
-	1102,						/* U+001FE2 */
-	1103,						/* U+001FE3 */
-	1104,						/* U+001FE4 */
-	1105,						/* U+001FE5 */
-	1106,						/* U+001FE6 */
-	1107,						/* U+001FE7 */
-	1100,						/* U+001FE8 */
-	1101,						/* U+001FE9 */
-	1027,						/* U+001FEA */
-	1028,						/* U+001FEB */
-	1105,						/* U+001FEC */
+	1103,						/* U+001FE0 */
+	1104,						/* U+001FE1 */
+	1105,						/* U+001FE2 */
+	1106,						/* U+001FE3 */
+	1107,						/* U+001FE4 */
+	1108,						/* U+001FE5 */
+	1109,						/* U+001FE6 */
+	1110,						/* U+001FE7 */
+	1103,						/* U+001FE8 */
+	1104,						/* U+001FE9 */
+	1030,						/* U+001FEA */
+	1031,						/* U+001FEB */
+	1108,						/* U+001FEC */
 	0,							/* U+001FED */
 	0,							/* U+001FEE */
 	0,							/* U+001FEF */
 	0,							/* U+001FF0 */
 	0,							/* U+001FF1 */
-	1108,						/* U+001FF2 */
-	1109,						/* U+001FF3 */
-	1110,						/* U+001FF4 */
+	1111,						/* U+001FF2 */
+	1112,						/* U+001FF3 */
+	1113,						/* U+001FF4 */
 	0,							/* U+001FF5 */
-	1111,						/* U+001FF6 */
-	1112,						/* U+001FF7 */
-	1025,						/* U+001FF8 */
-	1026,						/* U+001FF9 */
-	1029,						/* U+001FFA */
-	1030,						/* U+001FFB */
-	1113,						/* U+001FFC */
+	1114,						/* U+001FF6 */
+	1115,						/* U+001FF7 */
+	1028,						/* U+001FF8 */
+	1029,						/* U+001FF9 */
+	1032,						/* U+001FFA */
+	1033,						/* U+001FFB */
+	1116,						/* U+001FFC */
 	0,							/* U+001FFD */
 	0,							/* U+001FFE */
 	0,							/* U+001FFF */
@@ -11406,19 +11541,19 @@ static const uint16 case_map[4631] =
 	0,							/* U+002123 */
 	0,							/* U+002124 */
 	0,							/* U+002125 */
-	1114,						/* U+002126 */
+	1117,						/* U+002126 */
 	0,							/* U+002127 */
 	0,							/* U+002128 */
 	0,							/* U+002129 */
-	1115,						/* U+00212A */
-	1116,						/* U+00212B */
+	1118,						/* U+00212A */
+	1119,						/* U+00212B */
 	0,							/* U+00212C */
 	0,							/* U+00212D */
 	0,							/* U+00212E */
 	0,							/* U+00212F */
 	0,							/* U+002130 */
 	0,							/* U+002131 */
-	1117,						/* U+002132 */
+	1120,						/* U+002132 */
 	0,							/* U+002133 */
 	0,							/* U+002134 */
 	0,							/* U+002135 */
@@ -11446,7 +11581,7 @@ static const uint16 case_map[4631] =
 	0,							/* U+00214B */
 	0,							/* U+00214C */
 	0,							/* U+00214D */
-	1117,						/* U+00214E */
+	1120,						/* U+00214E */
 	0,							/* U+00214F */
 	0,							/* U+002150 */
 	0,							/* U+002151 */
@@ -11464,214 +11599,214 @@ static const uint16 case_map[4631] =
 	0,							/* U+00215D */
 	0,							/* U+00215E */
 	0,							/* U+00215F */
-	1118,						/* U+002160 */
-	1119,						/* U+002161 */
-	1120,						/* U+002162 */
-	1121,						/* U+002163 */
-	1122,						/* U+002164 */
-	1123,						/* U+002165 */
-	1124,						/* U+002166 */
-	1125,						/* U+002167 */
-	1126,						/* U+002168 */
-	1127,						/* U+002169 */
-	1128,						/* U+00216A */
-	1129,						/* U+00216B */
-	1130,						/* U+00216C */
-	1131,						/* U+00216D */
-	1132,						/* U+00216E */
-	1133,						/* U+00216F */
-	1118,						/* U+002170 */
-	1119,						/* U+002171 */
-	1120,						/* U+002172 */
-	1121,						/* U+002173 */
-	1122,						/* U+002174 */
-	1123,						/* U+002175 */
-	1124,						/* U+002176 */
-	1125,						/* U+002177 */
-	1126,						/* U+002178 */
-	1127,						/* U+002179 */
-	1128,						/* U+00217A */
-	1129,						/* U+00217B */
-	1130,						/* U+00217C */
-	1131,						/* U+00217D */
-	1132,						/* U+00217E */
-	1133,						/* U+00217F */
+	1121,						/* U+002160 */
+	1122,						/* U+002161 */
+	1123,						/* U+002162 */
+	1124,						/* U+002163 */
+	1125,						/* U+002164 */
+	1126,						/* U+002165 */
+	1127,						/* U+002166 */
+	1128,						/* U+002167 */
+	1129,						/* U+002168 */
+	1130,						/* U+002169 */
+	1131,						/* U+00216A */
+	1132,						/* U+00216B */
+	1133,						/* U+00216C */
+	1134,						/* U+00216D */
+	1135,						/* U+00216E */
+	1136,						/* U+00216F */
+	1121,						/* U+002170 */
+	1122,						/* U+002171 */
+	1123,						/* U+002172 */
+	1124,						/* U+002173 */
+	1125,						/* U+002174 */
+	1126,						/* U+002175 */
+	1127,						/* U+002176 */
+	1128,						/* U+002177 */
+	1129,						/* U+002178 */
+	1130,						/* U+002179 */
+	1131,						/* U+00217A */
+	1132,						/* U+00217B */
+	1133,						/* U+00217C */
+	1134,						/* U+00217D */
+	1135,						/* U+00217E */
+	1136,						/* U+00217F */
 	0,							/* U+002180 */
 	0,							/* U+002181 */
 	0,							/* U+002182 */
-	1134,						/* U+002183 */
-	1134,						/* U+002184 */
-	1135,						/* U+0024B6 */
-	1136,						/* U+0024B7 */
-	1137,						/* U+0024B8 */
-	1138,						/* U+0024B9 */
-	1139,						/* U+0024BA */
-	1140,						/* U+0024BB */
-	1141,						/* U+0024BC */
-	1142,						/* U+0024BD */
-	1143,						/* U+0024BE */
-	1144,						/* U+0024BF */
-	1145,						/* U+0024C0 */
-	1146,						/* U+0024C1 */
-	1147,						/* U+0024C2 */
-	1148,						/* U+0024C3 */
-	1149,						/* U+0024C4 */
-	1150,						/* U+0024C5 */
-	1151,						/* U+0024C6 */
-	1152,						/* U+0024C7 */
-	1153,						/* U+0024C8 */
-	1154,						/* U+0024C9 */
-	1155,						/* U+0024CA */
-	1156,						/* U+0024CB */
-	1157,						/* U+0024CC */
-	1158,						/* U+0024CD */
-	1159,						/* U+0024CE */
-	1160,						/* U+0024CF */
-	1135,						/* U+0024D0 */
-	1136,						/* U+0024D1 */
-	1137,						/* U+0024D2 */
-	1138,						/* U+0024D3 */
-	1139,						/* U+0024D4 */
-	1140,						/* U+0024D5 */
-	1141,						/* U+0024D6 */
-	1142,						/* U+0024D7 */
-	1143,						/* U+0024D8 */
-	1144,						/* U+0024D9 */
-	1145,						/* U+0024DA */
-	1146,						/* U+0024DB */
-	1147,						/* U+0024DC */
-	1148,						/* U+0024DD */
-	1149,						/* U+0024DE */
-	1150,						/* U+0024DF */
-	1151,						/* U+0024E0 */
-	1152,						/* U+0024E1 */
-	1153,						/* U+0024E2 */
-	1154,						/* U+0024E3 */
-	1155,						/* U+0024E4 */
-	1156,						/* U+0024E5 */
-	1157,						/* U+0024E6 */
-	1158,						/* U+0024E7 */
-	1159,						/* U+0024E8 */
-	1160,						/* U+0024E9 */
-	1161,						/* U+002C00 */
-	1162,						/* U+002C01 */
-	1163,						/* U+002C02 */
-	1164,						/* U+002C03 */
-	1165,						/* U+002C04 */
-	1166,						/* U+002C05 */
-	1167,						/* U+002C06 */
-	1168,						/* U+002C07 */
-	1169,						/* U+002C08 */
-	1170,						/* U+002C09 */
-	1171,						/* U+002C0A */
-	1172,						/* U+002C0B */
-	1173,						/* U+002C0C */
-	1174,						/* U+002C0D */
-	1175,						/* U+002C0E */
-	1176,						/* U+002C0F */
-	1177,						/* U+002C10 */
-	1178,						/* U+002C11 */
-	1179,						/* U+002C12 */
-	1180,						/* U+002C13 */
-	1181,						/* U+002C14 */
-	1182,						/* U+002C15 */
-	1183,						/* U+002C16 */
-	1184,						/* U+002C17 */
-	1185,						/* U+002C18 */
-	1186,						/* U+002C19 */
-	1187,						/* U+002C1A */
-	1188,						/* U+002C1B */
-	1189,						/* U+002C1C */
-	1190,						/* U+002C1D */
-	1191,						/* U+002C1E */
-	1192,						/* U+002C1F */
-	1193,						/* U+002C20 */
-	1194,						/* U+002C21 */
-	1195,						/* U+002C22 */
-	1196,						/* U+002C23 */
-	1197,						/* U+002C24 */
-	1198,						/* U+002C25 */
-	1199,						/* U+002C26 */
-	1200,						/* U+002C27 */
-	1201,						/* U+002C28 */
-	1202,						/* U+002C29 */
-	1203,						/* U+002C2A */
-	1204,						/* U+002C2B */
-	1205,						/* U+002C2C */
-	1206,						/* U+002C2D */
-	1207,						/* U+002C2E */
-	1208,						/* U+002C2F */
-	1161,						/* U+002C30 */
-	1162,						/* U+002C31 */
-	1163,						/* U+002C32 */
-	1164,						/* U+002C33 */
-	1165,						/* U+002C34 */
-	1166,						/* U+002C35 */
-	1167,						/* U+002C36 */
-	1168,						/* U+002C37 */
-	1169,						/* U+002C38 */
-	1170,						/* U+002C39 */
-	1171,						/* U+002C3A */
-	1172,						/* U+002C3B */
-	1173,						/* U+002C3C */
-	1174,						/* U+002C3D */
-	1175,						/* U+002C3E */
-	1176,						/* U+002C3F */
-	1177,						/* U+002C40 */
-	1178,						/* U+002C41 */
-	1179,						/* U+002C42 */
-	1180,						/* U+002C43 */
-	1181,						/* U+002C44 */
-	1182,						/* U+002C45 */
-	1183,						/* U+002C46 */
-	1184,						/* U+002C47 */
-	1185,						/* U+002C48 */
-	1186,						/* U+002C49 */
-	1187,						/* U+002C4A */
-	1188,						/* U+002C4B */
-	1189,						/* U+002C4C */
-	1190,						/* U+002C4D */
-	1191,						/* U+002C4E */
-	1192,						/* U+002C4F */
-	1193,						/* U+002C50 */
-	1194,						/* U+002C51 */
-	1195,						/* U+002C52 */
-	1196,						/* U+002C53 */
-	1197,						/* U+002C54 */
-	1198,						/* U+002C55 */
-	1199,						/* U+002C56 */
-	1200,						/* U+002C57 */
-	1201,						/* U+002C58 */
-	1202,						/* U+002C59 */
-	1203,						/* U+002C5A */
-	1204,						/* U+002C5B */
-	1205,						/* U+002C5C */
-	1206,						/* U+002C5D */
-	1207,						/* U+002C5E */
-	1208,						/* U+002C5F */
-	1209,						/* U+002C60 */
-	1209,						/* U+002C61 */
-	341,						/* U+002C62 */
-	833,						/* U+002C63 */
-	344,						/* U+002C64 */
-	320,						/* U+002C65 */
-	322,						/* U+002C66 */
-	1210,						/* U+002C67 */
-	1210,						/* U+002C68 */
-	1211,						/* U+002C69 */
-	1211,						/* U+002C6A */
-	1212,						/* U+002C6B */
-	1212,						/* U+002C6C */
-	334,						/* U+002C6D */
-	343,						/* U+002C6E */
-	333,						/* U+002C6F */
-	335,						/* U+002C70 */
+	1137,						/* U+002183 */
+	1137,						/* U+002184 */
+	1138,						/* U+0024B6 */
+	1139,						/* U+0024B7 */
+	1140,						/* U+0024B8 */
+	1141,						/* U+0024B9 */
+	1142,						/* U+0024BA */
+	1143,						/* U+0024BB */
+	1144,						/* U+0024BC */
+	1145,						/* U+0024BD */
+	1146,						/* U+0024BE */
+	1147,						/* U+0024BF */
+	1148,						/* U+0024C0 */
+	1149,						/* U+0024C1 */
+	1150,						/* U+0024C2 */
+	1151,						/* U+0024C3 */
+	1152,						/* U+0024C4 */
+	1153,						/* U+0024C5 */
+	1154,						/* U+0024C6 */
+	1155,						/* U+0024C7 */
+	1156,						/* U+0024C8 */
+	1157,						/* U+0024C9 */
+	1158,						/* U+0024CA */
+	1159,						/* U+0024CB */
+	1160,						/* U+0024CC */
+	1161,						/* U+0024CD */
+	1162,						/* U+0024CE */
+	1163,						/* U+0024CF */
+	1138,						/* U+0024D0 */
+	1139,						/* U+0024D1 */
+	1140,						/* U+0024D2 */
+	1141,						/* U+0024D3 */
+	1142,						/* U+0024D4 */
+	1143,						/* U+0024D5 */
+	1144,						/* U+0024D6 */
+	1145,						/* U+0024D7 */
+	1146,						/* U+0024D8 */
+	1147,						/* U+0024D9 */
+	1148,						/* U+0024DA */
+	1149,						/* U+0024DB */
+	1150,						/* U+0024DC */
+	1151,						/* U+0024DD */
+	1152,						/* U+0024DE */
+	1153,						/* U+0024DF */
+	1154,						/* U+0024E0 */
+	1155,						/* U+0024E1 */
+	1156,						/* U+0024E2 */
+	1157,						/* U+0024E3 */
+	1158,						/* U+0024E4 */
+	1159,						/* U+0024E5 */
+	1160,						/* U+0024E6 */
+	1161,						/* U+0024E7 */
+	1162,						/* U+0024E8 */
+	1163,						/* U+0024E9 */
+	1164,						/* U+002C00 */
+	1165,						/* U+002C01 */
+	1166,						/* U+002C02 */
+	1167,						/* U+002C03 */
+	1168,						/* U+002C04 */
+	1169,						/* U+002C05 */
+	1170,						/* U+002C06 */
+	1171,						/* U+002C07 */
+	1172,						/* U+002C08 */
+	1173,						/* U+002C09 */
+	1174,						/* U+002C0A */
+	1175,						/* U+002C0B */
+	1176,						/* U+002C0C */
+	1177,						/* U+002C0D */
+	1178,						/* U+002C0E */
+	1179,						/* U+002C0F */
+	1180,						/* U+002C10 */
+	1181,						/* U+002C11 */
+	1182,						/* U+002C12 */
+	1183,						/* U+002C13 */
+	1184,						/* U+002C14 */
+	1185,						/* U+002C15 */
+	1186,						/* U+002C16 */
+	1187,						/* U+002C17 */
+	1188,						/* U+002C18 */
+	1189,						/* U+002C19 */
+	1190,						/* U+002C1A */
+	1191,						/* U+002C1B */
+	1192,						/* U+002C1C */
+	1193,						/* U+002C1D */
+	1194,						/* U+002C1E */
+	1195,						/* U+002C1F */
+	1196,						/* U+002C20 */
+	1197,						/* U+002C21 */
+	1198,						/* U+002C22 */
+	1199,						/* U+002C23 */
+	1200,						/* U+002C24 */
+	1201,						/* U+002C25 */
+	1202,						/* U+002C26 */
+	1203,						/* U+002C27 */
+	1204,						/* U+002C28 */
+	1205,						/* U+002C29 */
+	1206,						/* U+002C2A */
+	1207,						/* U+002C2B */
+	1208,						/* U+002C2C */
+	1209,						/* U+002C2D */
+	1210,						/* U+002C2E */
+	1211,						/* U+002C2F */
+	1164,						/* U+002C30 */
+	1165,						/* U+002C31 */
+	1166,						/* U+002C32 */
+	1167,						/* U+002C33 */
+	1168,						/* U+002C34 */
+	1169,						/* U+002C35 */
+	1170,						/* U+002C36 */
+	1171,						/* U+002C37 */
+	1172,						/* U+002C38 */
+	1173,						/* U+002C39 */
+	1174,						/* U+002C3A */
+	1175,						/* U+002C3B */
+	1176,						/* U+002C3C */
+	1177,						/* U+002C3D */
+	1178,						/* U+002C3E */
+	1179,						/* U+002C3F */
+	1180,						/* U+002C40 */
+	1181,						/* U+002C41 */
+	1182,						/* U+002C42 */
+	1183,						/* U+002C43 */
+	1184,						/* U+002C44 */
+	1185,						/* U+002C45 */
+	1186,						/* U+002C46 */
+	1187,						/* U+002C47 */
+	1188,						/* U+002C48 */
+	1189,						/* U+002C49 */
+	1190,						/* U+002C4A */
+	1191,						/* U+002C4B */
+	1192,						/* U+002C4C */
+	1193,						/* U+002C4D */
+	1194,						/* U+002C4E */
+	1195,						/* U+002C4F */
+	1196,						/* U+002C50 */
+	1197,						/* U+002C51 */
+	1198,						/* U+002C52 */
+	1199,						/* U+002C53 */
+	1200,						/* U+002C54 */
+	1201,						/* U+002C55 */
+	1202,						/* U+002C56 */
+	1203,						/* U+002C57 */
+	1204,						/* U+002C58 */
+	1205,						/* U+002C59 */
+	1206,						/* U+002C5A */
+	1207,						/* U+002C5B */
+	1208,						/* U+002C5C */
+	1209,						/* U+002C5D */
+	1210,						/* U+002C5E */
+	1211,						/* U+002C5F */
+	1212,						/* U+002C60 */
+	1212,						/* U+002C61 */
+	343,						/* U+002C62 */
+	836,						/* U+002C63 */
+	346,						/* U+002C64 */
+	321,						/* U+002C65 */
+	323,						/* U+002C66 */
+	1213,						/* U+002C67 */
+	1213,						/* U+002C68 */
+	1214,						/* U+002C69 */
+	1214,						/* U+002C6A */
+	1215,						/* U+002C6B */
+	1215,						/* U+002C6C */
+	335,						/* U+002C6D */
+	345,						/* U+002C6E */
+	334,						/* U+002C6F */
+	336,						/* U+002C70 */
 	0,							/* U+002C71 */
-	1213,						/* U+002C72 */
-	1213,						/* U+002C73 */
+	1216,						/* U+002C72 */
+	1216,						/* U+002C73 */
 	0,							/* U+002C74 */
-	1214,						/* U+002C75 */
-	1214,						/* U+002C76 */
+	1217,						/* U+002C75 */
+	1217,						/* U+002C76 */
 	0,							/* U+002C77 */
 	0,							/* U+002C78 */
 	0,							/* U+002C79 */
@@ -11679,108 +11814,108 @@ static const uint16 case_map[4631] =
 	0,							/* U+002C7B */
 	0,							/* U+002C7C */
 	0,							/* U+002C7D */
-	323,						/* U+002C7E */
-	324,						/* U+002C7F */
-	1215,						/* U+002C80 */
-	1215,						/* U+002C81 */
-	1216,						/* U+002C82 */
-	1216,						/* U+002C83 */
-	1217,						/* U+002C84 */
-	1217,						/* U+002C85 */
-	1218,						/* U+002C86 */
-	1218,						/* U+002C87 */
-	1219,						/* U+002C88 */
-	1219,						/* U+002C89 */
-	1220,						/* U+002C8A */
-	1220,						/* U+002C8B */
-	1221,						/* U+002C8C */
-	1221,						/* U+002C8D */
-	1222,						/* U+002C8E */
-	1222,						/* U+002C8F */
-	1223,						/* U+002C90 */
-	1223,						/* U+002C91 */
-	1224,						/* U+002C92 */
-	1224,						/* U+002C93 */
-	1225,						/* U+002C94 */
-	1225,						/* U+002C95 */
-	1226,						/* U+002C96 */
-	1226,						/* U+002C97 */
-	1227,						/* U+002C98 */
-	1227,						/* U+002C99 */
-	1228,						/* U+002C9A */
-	1228,						/* U+002C9B */
-	1229,						/* U+002C9C */
-	1229,						/* U+002C9D */
-	1230,						/* U+002C9E */
-	1230,						/* U+002C9F */
-	1231,						/* U+002CA0 */
-	1231,						/* U+002CA1 */
-	1232,						/* U+002CA2 */
-	1232,						/* U+002CA3 */
-	1233,						/* U+002CA4 */
-	1233,						/* U+002CA5 */
-	1234,						/* U+002CA6 */
-	1234,						/* U+002CA7 */
-	1235,						/* U+002CA8 */
-	1235,						/* U+002CA9 */
-	1236,						/* U+002CAA */
-	1236,						/* U+002CAB */
-	1237,						/* U+002CAC */
-	1237,						/* U+002CAD */
-	1238,						/* U+002CAE */
-	1238,						/* U+002CAF */
-	1239,						/* U+002CB0 */
-	1239,						/* U+002CB1 */
-	1240,						/* U+002CB2 */
-	1240,						/* U+002CB3 */
-	1241,						/* U+002CB4 */
-	1241,						/* U+002CB5 */
-	1242,						/* U+002CB6 */
-	1242,						/* U+002CB7 */
-	1243,						/* U+002CB8 */
-	1243,						/* U+002CB9 */
-	1244,						/* U+002CBA */
-	1244,						/* U+002CBB */
-	1245,						/* U+002CBC */
-	1245,						/* U+002CBD */
-	1246,						/* U+002CBE */
-	1246,						/* U+002CBF */
-	1247,						/* U+002CC0 */
-	1247,						/* U+002CC1 */
-	1248,						/* U+002CC2 */
-	1248,						/* U+002CC3 */
-	1249,						/* U+002CC4 */
-	1249,						/* U+002CC5 */
-	1250,						/* U+002CC6 */
-	1250,						/* U+002CC7 */
-	1251,						/* U+002CC8 */
-	1251,						/* U+002CC9 */
-	1252,						/* U+002CCA */
-	1252,						/* U+002CCB */
-	1253,						/* U+002CCC */
-	1253,						/* U+002CCD */
-	1254,						/* U+002CCE */
-	1254,						/* U+002CCF */
-	1255,						/* U+002CD0 */
-	1255,						/* U+002CD1 */
-	1256,						/* U+002CD2 */
-	1256,						/* U+002CD3 */
-	1257,						/* U+002CD4 */
-	1257,						/* U+002CD5 */
-	1258,						/* U+002CD6 */
-	1258,						/* U+002CD7 */
-	1259,						/* U+002CD8 */
-	1259,						/* U+002CD9 */
-	1260,						/* U+002CDA */
-	1260,						/* U+002CDB */
-	1261,						/* U+002CDC */
-	1261,						/* U+002CDD */
-	1262,						/* U+002CDE */
-	1262,						/* U+002CDF */
-	1263,						/* U+002CE0 */
-	1263,						/* U+002CE1 */
-	1264,						/* U+002CE2 */
-	1264,						/* U+002CE3 */
+	324,						/* U+002C7E */
+	325,						/* U+002C7F */
+	1218,						/* U+002C80 */
+	1218,						/* U+002C81 */
+	1219,						/* U+002C82 */
+	1219,						/* U+002C83 */
+	1220,						/* U+002C84 */
+	1220,						/* U+002C85 */
+	1221,						/* U+002C86 */
+	1221,						/* U+002C87 */
+	1222,						/* U+002C88 */
+	1222,						/* U+002C89 */
+	1223,						/* U+002C8A */
+	1223,						/* U+002C8B */
+	1224,						/* U+002C8C */
+	1224,						/* U+002C8D */
+	1225,						/* U+002C8E */
+	1225,						/* U+002C8F */
+	1226,						/* U+002C90 */
+	1226,						/* U+002C91 */
+	1227,						/* U+002C92 */
+	1227,						/* U+002C93 */
+	1228,						/* U+002C94 */
+	1228,						/* U+002C95 */
+	1229,						/* U+002C96 */
+	1229,						/* U+002C97 */
+	1230,						/* U+002C98 */
+	1230,						/* U+002C99 */
+	1231,						/* U+002C9A */
+	1231,						/* U+002C9B */
+	1232,						/* U+002C9C */
+	1232,						/* U+002C9D */
+	1233,						/* U+002C9E */
+	1233,						/* U+002C9F */
+	1234,						/* U+002CA0 */
+	1234,						/* U+002CA1 */
+	1235,						/* U+002CA2 */
+	1235,						/* U+002CA3 */
+	1236,						/* U+002CA4 */
+	1236,						/* U+002CA5 */
+	1237,						/* U+002CA6 */
+	1237,						/* U+002CA7 */
+	1238,						/* U+002CA8 */
+	1238,						/* U+002CA9 */
+	1239,						/* U+002CAA */
+	1239,						/* U+002CAB */
+	1240,						/* U+002CAC */
+	1240,						/* U+002CAD */
+	1241,						/* U+002CAE */
+	1241,						/* U+002CAF */
+	1242,						/* U+002CB0 */
+	1242,						/* U+002CB1 */
+	1243,						/* U+002CB2 */
+	1243,						/* U+002CB3 */
+	1244,						/* U+002CB4 */
+	1244,						/* U+002CB5 */
+	1245,						/* U+002CB6 */
+	1245,						/* U+002CB7 */
+	1246,						/* U+002CB8 */
+	1246,						/* U+002CB9 */
+	1247,						/* U+002CBA */
+	1247,						/* U+002CBB */
+	1248,						/* U+002CBC */
+	1248,						/* U+002CBD */
+	1249,						/* U+002CBE */
+	1249,						/* U+002CBF */
+	1250,						/* U+002CC0 */
+	1250,						/* U+002CC1 */
+	1251,						/* U+002CC2 */
+	1251,						/* U+002CC3 */
+	1252,						/* U+002CC4 */
+	1252,						/* U+002CC5 */
+	1253,						/* U+002CC6 */
+	1253,						/* U+002CC7 */
+	1254,						/* U+002CC8 */
+	1254,						/* U+002CC9 */
+	1255,						/* U+002CCA */
+	1255,						/* U+002CCB */
+	1256,						/* U+002CCC */
+	1256,						/* U+002CCD */
+	1257,						/* U+002CCE */
+	1257,						/* U+002CCF */
+	1258,						/* U+002CD0 */
+	1258,						/* U+002CD1 */
+	1259,						/* U+002CD2 */
+	1259,						/* U+002CD3 */
+	1260,						/* U+002CD4 */
+	1260,						/* U+002CD5 */
+	1261,						/* U+002CD6 */
+	1261,						/* U+002CD7 */
+	1262,						/* U+002CD8 */
+	1262,						/* U+002CD9 */
+	1263,						/* U+002CDA */
+	1263,						/* U+002CDB */
+	1264,						/* U+002CDC */
+	1264,						/* U+002CDD */
+	1265,						/* U+002CDE */
+	1265,						/* U+002CDF */
+	1266,						/* U+002CE0 */
+	1266,						/* U+002CE1 */
+	1267,						/* U+002CE2 */
+	1267,						/* U+002CE3 */
 	0,							/* U+002CE4 */
 	0,							/* U+002CE5 */
 	0,							/* U+002CE6 */
@@ -11788,15 +11923,15 @@ static const uint16 case_map[4631] =
 	0,							/* U+002CE8 */
 	0,							/* U+002CE9 */
 	0,							/* U+002CEA */
-	1265,						/* U+002CEB */
-	1265,						/* U+002CEC */
-	1266,						/* U+002CED */
-	1266,						/* U+002CEE */
+	1268,						/* U+002CEB */
+	1268,						/* U+002CEC */
+	1269,						/* U+002CED */
+	1269,						/* U+002CEE */
 	0,							/* U+002CEF */
 	0,							/* U+002CF0 */
 	0,							/* U+002CF1 */
-	1267,						/* U+002CF2 */
-	1267,						/* U+002CF3 */
+	1270,						/* U+002CF2 */
+	1270,						/* U+002CF3 */
 	0,							/* U+002CF4 */
 	0,							/* U+002CF5 */
 	0,							/* U+002CF6 */
@@ -11809,98 +11944,98 @@ static const uint16 case_map[4631] =
 	0,							/* U+002CFD */
 	0,							/* U+002CFE */
 	0,							/* U+002CFF */
-	605,						/* U+002D00 */
-	606,						/* U+002D01 */
-	607,						/* U+002D02 */
-	608,						/* U+002D03 */
-	609,						/* U+002D04 */
-	610,						/* U+002D05 */
-	611,						/* U+002D06 */
-	612,						/* U+002D07 */
-	613,						/* U+002D08 */
-	614,						/* U+002D09 */
-	615,						/* U+002D0A */
-	616,						/* U+002D0B */
-	617,						/* U+002D0C */
-	618,						/* U+002D0D */
-	619,						/* U+002D0E */
-	620,						/* U+002D0F */
-	621,						/* U+002D10 */
-	622,						/* U+002D11 */
-	623,						/* U+002D12 */
-	624,						/* U+002D13 */
-	625,						/* U+002D14 */
-	626,						/* U+002D15 */
-	627,						/* U+002D16 */
-	628,						/* U+002D17 */
-	629,						/* U+002D18 */
-	630,						/* U+002D19 */
-	631,						/* U+002D1A */
-	632,						/* U+002D1B */
-	633,						/* U+002D1C */
-	634,						/* U+002D1D */
-	635,						/* U+002D1E */
-	636,						/* U+002D1F */
-	637,						/* U+002D20 */
-	638,						/* U+002D21 */
-	639,						/* U+002D22 */
-	640,						/* U+002D23 */
-	641,						/* U+002D24 */
-	642,						/* U+002D25 */
+	607,						/* U+002D00 */
+	608,						/* U+002D01 */
+	609,						/* U+002D02 */
+	610,						/* U+002D03 */
+	611,						/* U+002D04 */
+	612,						/* U+002D05 */
+	613,						/* U+002D06 */
+	614,						/* U+002D07 */
+	615,						/* U+002D08 */
+	616,						/* U+002D09 */
+	617,						/* U+002D0A */
+	618,						/* U+002D0B */
+	619,						/* U+002D0C */
+	620,						/* U+002D0D */
+	621,						/* U+002D0E */
+	622,						/* U+002D0F */
+	623,						/* U+002D10 */
+	624,						/* U+002D11 */
+	625,						/* U+002D12 */
+	626,						/* U+002D13 */
+	627,						/* U+002D14 */
+	628,						/* U+002D15 */
+	629,						/* U+002D16 */
+	630,						/* U+002D17 */
+	631,						/* U+002D18 */
+	632,						/* U+002D19 */
+	633,						/* U+002D1A */
+	634,						/* U+002D1B */
+	635,						/* U+002D1C */
+	636,						/* U+002D1D */
+	637,						/* U+002D1E */
+	638,						/* U+002D1F */
+	639,						/* U+002D20 */
+	640,						/* U+002D21 */
+	641,						/* U+002D22 */
+	642,						/* U+002D23 */
+	643,						/* U+002D24 */
+	644,						/* U+002D25 */
 	0,							/* U+002D26 */
-	643,						/* U+002D27 */
+	645,						/* U+002D27 */
 	0,							/* U+002D28 */
 	0,							/* U+002D29 */
 	0,							/* U+002D2A */
 	0,							/* U+002D2B */
 	0,							/* U+002D2C */
-	644,						/* U+002D2D */
-	1268,						/* U+00A640 */
-	1268,						/* U+00A641 */
-	1269,						/* U+00A642 */
-	1269,						/* U+00A643 */
-	1270,						/* U+00A644 */
-	1270,						/* U+00A645 */
-	1271,						/* U+00A646 */
-	1271,						/* U+00A647 */
-	1272,						/* U+00A648 */
-	1272,						/* U+00A649 */
-	1273,						/* U+00A64A */
-	1273,						/* U+00A64B */
-	1274,						/* U+00A64C */
-	1274,						/* U+00A64D */
-	1275,						/* U+00A64E */
-	1275,						/* U+00A64F */
-	1276,						/* U+00A650 */
-	1276,						/* U+00A651 */
-	1277,						/* U+00A652 */
-	1277,						/* U+00A653 */
-	1278,						/* U+00A654 */
-	1278,						/* U+00A655 */
-	1279,						/* U+00A656 */
-	1279,						/* U+00A657 */
-	1280,						/* U+00A658 */
-	1280,						/* U+00A659 */
-	1281,						/* U+00A65A */
-	1281,						/* U+00A65B */
-	1282,						/* U+00A65C */
-	1282,						/* U+00A65D */
-	1283,						/* U+00A65E */
-	1283,						/* U+00A65F */
-	1284,						/* U+00A660 */
-	1284,						/* U+00A661 */
-	1285,						/* U+00A662 */
-	1285,						/* U+00A663 */
-	1286,						/* U+00A664 */
-	1286,						/* U+00A665 */
-	1287,						/* U+00A666 */
-	1287,						/* U+00A667 */
-	1288,						/* U+00A668 */
-	1288,						/* U+00A669 */
-	1289,						/* U+00A66A */
-	1289,						/* U+00A66B */
-	1290,						/* U+00A66C */
-	1290,						/* U+00A66D */
+	646,						/* U+002D2D */
+	1271,						/* U+00A640 */
+	1271,						/* U+00A641 */
+	1272,						/* U+00A642 */
+	1272,						/* U+00A643 */
+	1273,						/* U+00A644 */
+	1273,						/* U+00A645 */
+	1274,						/* U+00A646 */
+	1274,						/* U+00A647 */
+	1275,						/* U+00A648 */
+	1275,						/* U+00A649 */
+	1276,						/* U+00A64A */
+	1276,						/* U+00A64B */
+	1277,						/* U+00A64C */
+	1277,						/* U+00A64D */
+	1278,						/* U+00A64E */
+	1278,						/* U+00A64F */
+	1279,						/* U+00A650 */
+	1279,						/* U+00A651 */
+	1280,						/* U+00A652 */
+	1280,						/* U+00A653 */
+	1281,						/* U+00A654 */
+	1281,						/* U+00A655 */
+	1282,						/* U+00A656 */
+	1282,						/* U+00A657 */
+	1283,						/* U+00A658 */
+	1283,						/* U+00A659 */
+	1284,						/* U+00A65A */
+	1284,						/* U+00A65B */
+	1285,						/* U+00A65C */
+	1285,						/* U+00A65D */
+	1286,						/* U+00A65E */
+	1286,						/* U+00A65F */
+	1287,						/* U+00A660 */
+	1287,						/* U+00A661 */
+	1288,						/* U+00A662 */
+	1288,						/* U+00A663 */
+	1289,						/* U+00A664 */
+	1289,						/* U+00A665 */
+	1290,						/* U+00A666 */
+	1290,						/* U+00A667 */
+	1291,						/* U+00A668 */
+	1291,						/* U+00A669 */
+	1292,						/* U+00A66A */
+	1292,						/* U+00A66B */
+	1293,						/* U+00A66C */
+	1293,						/* U+00A66D */
 	0,							/* U+00A66E */
 	0,							/* U+00A66F */
 	0,							/* U+00A670 */
@@ -11919,34 +12054,34 @@ static const uint16 case_map[4631] =
 	0,							/* U+00A67D */
 	0,							/* U+00A67E */
 	0,							/* U+00A67F */
-	1291,						/* U+00A680 */
-	1291,						/* U+00A681 */
-	1292,						/* U+00A682 */
-	1292,						/* U+00A683 */
-	1293,						/* U+00A684 */
-	1293,						/* U+00A685 */
-	1294,						/* U+00A686 */
-	1294,						/* U+00A687 */
-	1295,						/* U+00A688 */
-	1295,						/* U+00A689 */
-	1296,						/* U+00A68A */
-	1296,						/* U+00A68B */
-	1297,						/* U+00A68C */
-	1297,						/* U+00A68D */
-	1298,						/* U+00A68E */
-	1298,						/* U+00A68F */
-	1299,						/* U+00A690 */
-	1299,						/* U+00A691 */
-	1300,						/* U+00A692 */
-	1300,						/* U+00A693 */
-	1301,						/* U+00A694 */
-	1301,						/* U+00A695 */
-	1302,						/* U+00A696 */
-	1302,						/* U+00A697 */
-	1303,						/* U+00A698 */
-	1303,						/* U+00A699 */
-	1304,						/* U+00A69A */
-	1304,						/* U+00A69B */
+	1294,						/* U+00A680 */
+	1294,						/* U+00A681 */
+	1295,						/* U+00A682 */
+	1295,						/* U+00A683 */
+	1296,						/* U+00A684 */
+	1296,						/* U+00A685 */
+	1297,						/* U+00A686 */
+	1297,						/* U+00A687 */
+	1298,						/* U+00A688 */
+	1298,						/* U+00A689 */
+	1299,						/* U+00A68A */
+	1299,						/* U+00A68B */
+	1300,						/* U+00A68C */
+	1300,						/* U+00A68D */
+	1301,						/* U+00A68E */
+	1301,						/* U+00A68F */
+	1302,						/* U+00A690 */
+	1302,						/* U+00A691 */
+	1303,						/* U+00A692 */
+	1303,						/* U+00A693 */
+	1304,						/* U+00A694 */
+	1304,						/* U+00A695 */
+	1305,						/* U+00A696 */
+	1305,						/* U+00A697 */
+	1306,						/* U+00A698 */
+	1306,						/* U+00A699 */
+	1307,						/* U+00A69A */
+	1307,						/* U+00A69B */
 	0,							/* U+00A69C */
 	0,							/* U+00A69D */
 	0,							/* U+00A69E */
@@ -12081,84 +12216,84 @@ static const uint16 case_map[4631] =
 	0,							/* U+00A71F */
 	0,							/* U+00A720 */
 	0,							/* U+00A721 */
-	1305,						/* U+00A722 */
-	1305,						/* U+00A723 */
-	1306,						/* U+00A724 */
-	1306,						/* U+00A725 */
-	1307,						/* U+00A726 */
-	1307,						/* U+00A727 */
-	1308,						/* U+00A728 */
-	1308,						/* U+00A729 */
-	1309,						/* U+00A72A */
-	1309,						/* U+00A72B */
-	1310,						/* U+00A72C */
-	1310,						/* U+00A72D */
-	1311,						/* U+00A72E */
-	1311,						/* U+00A72F */
+	1308,						/* U+00A722 */
+	1308,						/* U+00A723 */
+	1309,						/* U+00A724 */
+	1309,						/* U+00A725 */
+	1310,						/* U+00A726 */
+	1310,						/* U+00A727 */
+	1311,						/* U+00A728 */
+	1311,						/* U+00A729 */
+	1312,						/* U+00A72A */
+	1312,						/* U+00A72B */
+	1313,						/* U+00A72C */
+	1313,						/* U+00A72D */
+	1314,						/* U+00A72E */
+	1314,						/* U+00A72F */
 	0,							/* U+00A730 */
 	0,							/* U+00A731 */
-	1312,						/* U+00A732 */
-	1312,						/* U+00A733 */
-	1313,						/* U+00A734 */
-	1313,						/* U+00A735 */
-	1314,						/* U+00A736 */
-	1314,						/* U+00A737 */
-	1315,						/* U+00A738 */
-	1315,						/* U+00A739 */
-	1316,						/* U+00A73A */
-	1316,						/* U+00A73B */
-	1317,						/* U+00A73C */
-	1317,						/* U+00A73D */
-	1318,						/* U+00A73E */
-	1318,						/* U+00A73F */
-	1319,						/* U+00A740 */
-	1319,						/* U+00A741 */
-	1320,						/* U+00A742 */
-	1320,						/* U+00A743 */
-	1321,						/* U+00A744 */
-	1321,						/* U+00A745 */
-	1322,						/* U+00A746 */
-	1322,						/* U+00A747 */
-	1323,						/* U+00A748 */
-	1323,						/* U+00A749 */
-	1324,						/* U+00A74A */
-	1324,						/* U+00A74B */
-	1325,						/* U+00A74C */
-	1325,						/* U+00A74D */
-	1326,						/* U+00A74E */
-	1326,						/* U+00A74F */
-	1327,						/* U+00A750 */
-	1327,						/* U+00A751 */
-	1328,						/* U+00A752 */
-	1328,						/* U+00A753 */
-	1329,						/* U+00A754 */
-	1329,						/* U+00A755 */
-	1330,						/* U+00A756 */
-	1330,						/* U+00A757 */
-	1331,						/* U+00A758 */
-	1331,						/* U+00A759 */
-	1332,						/* U+00A75A */
-	1332,						/* U+00A75B */
-	1333,						/* U+00A75C */
-	1333,						/* U+00A75D */
-	1334,						/* U+00A75E */
-	1334,						/* U+00A75F */
-	1335,						/* U+00A760 */
-	1335,						/* U+00A761 */
-	1336,						/* U+00A762 */
-	1336,						/* U+00A763 */
-	1337,						/* U+00A764 */
-	1337,						/* U+00A765 */
-	1338,						/* U+00A766 */
-	1338,						/* U+00A767 */
-	1339,						/* U+00A768 */
-	1339,						/* U+00A769 */
-	1340,						/* U+00A76A */
-	1340,						/* U+00A76B */
-	1341,						/* U+00A76C */
-	1341,						/* U+00A76D */
-	1342,						/* U+00A76E */
-	1342,						/* U+00A76F */
+	1315,						/* U+00A732 */
+	1315,						/* U+00A733 */
+	1316,						/* U+00A734 */
+	1316,						/* U+00A735 */
+	1317,						/* U+00A736 */
+	1317,						/* U+00A737 */
+	1318,						/* U+00A738 */
+	1318,						/* U+00A739 */
+	1319,						/* U+00A73A */
+	1319,						/* U+00A73B */
+	1320,						/* U+00A73C */
+	1320,						/* U+00A73D */
+	1321,						/* U+00A73E */
+	1321,						/* U+00A73F */
+	1322,						/* U+00A740 */
+	1322,						/* U+00A741 */
+	1323,						/* U+00A742 */
+	1323,						/* U+00A743 */
+	1324,						/* U+00A744 */
+	1324,						/* U+00A745 */
+	1325,						/* U+00A746 */
+	1325,						/* U+00A747 */
+	1326,						/* U+00A748 */
+	1326,						/* U+00A749 */
+	1327,						/* U+00A74A */
+	1327,						/* U+00A74B */
+	1328,						/* U+00A74C */
+	1328,						/* U+00A74D */
+	1329,						/* U+00A74E */
+	1329,						/* U+00A74F */
+	1330,						/* U+00A750 */
+	1330,						/* U+00A751 */
+	1331,						/* U+00A752 */
+	1331,						/* U+00A753 */
+	1332,						/* U+00A754 */
+	1332,						/* U+00A755 */
+	1333,						/* U+00A756 */
+	1333,						/* U+00A757 */
+	1334,						/* U+00A758 */
+	1334,						/* U+00A759 */
+	1335,						/* U+00A75A */
+	1335,						/* U+00A75B */
+	1336,						/* U+00A75C */
+	1336,						/* U+00A75D */
+	1337,						/* U+00A75E */
+	1337,						/* U+00A75F */
+	1338,						/* U+00A760 */
+	1338,						/* U+00A761 */
+	1339,						/* U+00A762 */
+	1339,						/* U+00A763 */
+	1340,						/* U+00A764 */
+	1340,						/* U+00A765 */
+	1341,						/* U+00A766 */
+	1341,						/* U+00A767 */
+	1342,						/* U+00A768 */
+	1342,						/* U+00A769 */
+	1343,						/* U+00A76A */
+	1343,						/* U+00A76B */
+	1344,						/* U+00A76C */
+	1344,						/* U+00A76D */
+	1345,						/* U+00A76E */
+	1345,						/* U+00A76F */
 	0,							/* U+00A770 */
 	0,							/* U+00A771 */
 	0,							/* U+00A772 */
@@ -12168,106 +12303,106 @@ static const uint16 case_map[4631] =
 	0,							/* U+00A776 */
 	0,							/* U+00A777 */
 	0,							/* U+00A778 */
-	1343,						/* U+00A779 */
-	1343,						/* U+00A77A */
-	1344,						/* U+00A77B */
-	1344,						/* U+00A77C */
-	832,						/* U+00A77D */
-	1345,						/* U+00A77E */
-	1345,						/* U+00A77F */
-	1346,						/* U+00A780 */
-	1346,						/* U+00A781 */
-	1347,						/* U+00A782 */
-	1347,						/* U+00A783 */
-	1348,						/* U+00A784 */
-	1348,						/* U+00A785 */
-	1349,						/* U+00A786 */
-	1349,						/* U+00A787 */
+	1346,						/* U+00A779 */
+	1346,						/* U+00A77A */
+	1347,						/* U+00A77B */
+	1347,						/* U+00A77C */
+	835,						/* U+00A77D */
+	1348,						/* U+00A77E */
+	1348,						/* U+00A77F */
+	1349,						/* U+00A780 */
+	1349,						/* U+00A781 */
+	1350,						/* U+00A782 */
+	1350,						/* U+00A783 */
+	1351,						/* U+00A784 */
+	1351,						/* U+00A785 */
+	1352,						/* U+00A786 */
+	1352,						/* U+00A787 */
 	0,							/* U+00A788 */
 	0,							/* U+00A789 */
 	0,							/* U+00A78A */
-	1350,						/* U+00A78B */
-	1350,						/* U+00A78C */
-	338,						/* U+00A78D */
+	1353,						/* U+00A78B */
+	1353,						/* U+00A78C */
+	340,						/* U+00A78D */
 	0,							/* U+00A78E */
 	0,							/* U+00A78F */
-	1351,						/* U+00A790 */
-	1351,						/* U+00A791 */
-	1352,						/* U+00A792 */
-	1352,						/* U+00A793 */
-	1353,						/* U+00A794 */
+	1354,						/* U+00A790 */
+	1354,						/* U+00A791 */
+	1355,						/* U+00A792 */
+	1355,						/* U+00A793 */
+	1356,						/* U+00A794 */
 	0,							/* U+00A795 */
-	1354,						/* U+00A796 */
-	1354,						/* U+00A797 */
-	1355,						/* U+00A798 */
-	1355,						/* U+00A799 */
-	1356,						/* U+00A79A */
-	1356,						/* U+00A79B */
-	1357,						/* U+00A79C */
-	1357,						/* U+00A79D */
-	1358,						/* U+00A79E */
-	1358,						/* U+00A79F */
-	1359,						/* U+00A7A0 */
-	1359,						/* U+00A7A1 */
-	1360,						/* U+00A7A2 */
-	1360,						/* U+00A7A3 */
-	1361,						/* U+00A7A4 */
-	1361,						/* U+00A7A5 */
-	1362,						/* U+00A7A6 */
-	1362,						/* U+00A7A7 */
-	1363,						/* U+00A7A8 */
-	1363,						/* U+00A7A9 */
-	339,						/* U+00A7AA */
-	336,						/* U+00A7AB */
-	337,						/* U+00A7AC */
-	342,						/* U+00A7AD */
-	340,						/* U+00A7AE */
+	1357,						/* U+00A796 */
+	1357,						/* U+00A797 */
+	1358,						/* U+00A798 */
+	1358,						/* U+00A799 */
+	1359,						/* U+00A79A */
+	1359,						/* U+00A79B */
+	1360,						/* U+00A79C */
+	1360,						/* U+00A79D */
+	1361,						/* U+00A79E */
+	1361,						/* U+00A79F */
+	1362,						/* U+00A7A0 */
+	1362,						/* U+00A7A1 */
+	1363,						/* U+00A7A2 */
+	1363,						/* U+00A7A3 */
+	1364,						/* U+00A7A4 */
+	1364,						/* U+00A7A5 */
+	1365,						/* U+00A7A6 */
+	1365,						/* U+00A7A7 */
+	1366,						/* U+00A7A8 */
+	1366,						/* U+00A7A9 */
+	341,						/* U+00A7AA */
+	337,						/* U+00A7AB */
+	338,						/* U+00A7AC */
+	344,						/* U+00A7AD */
+	342,						/* U+00A7AE */
 	0,							/* U+00A7AF */
-	348,						/* U+00A7B0 */
-	346,						/* U+00A7B1 */
-	347,						/* U+00A7B2 */
-	1364,						/* U+00A7B3 */
-	1365,						/* U+00A7B4 */
-	1365,						/* U+00A7B5 */
-	1366,						/* U+00A7B6 */
-	1366,						/* U+00A7B7 */
-	1367,						/* U+00A7B8 */
-	1367,						/* U+00A7B9 */
-	1368,						/* U+00A7BA */
-	1368,						/* U+00A7BB */
-	1369,						/* U+00A7BC */
-	1369,						/* U+00A7BD */
-	1370,						/* U+00A7BE */
-	1370,						/* U+00A7BF */
-	1371,						/* U+00A7C0 */
-	1371,						/* U+00A7C1 */
-	1372,						/* U+00A7C2 */
-	1372,						/* U+00A7C3 */
-	1353,						/* U+00A7C4 */
-	345,						/* U+00A7C5 */
-	834,						/* U+00A7C6 */
-	1373,						/* U+00A7C7 */
-	1373,						/* U+00A7C8 */
-	1374,						/* U+00A7C9 */
-	1374,						/* U+00A7CA */
-	0,							/* U+00A7CB */
-	0,							/* U+00A7CC */
-	0,							/* U+00A7CD */
+	350,						/* U+00A7B0 */
+	348,						/* U+00A7B1 */
+	349,						/* U+00A7B2 */
+	1367,						/* U+00A7B3 */
+	1368,						/* U+00A7B4 */
+	1368,						/* U+00A7B5 */
+	1369,						/* U+00A7B6 */
+	1369,						/* U+00A7B7 */
+	1370,						/* U+00A7B8 */
+	1370,						/* U+00A7B9 */
+	1371,						/* U+00A7BA */
+	1371,						/* U+00A7BB */
+	1372,						/* U+00A7BC */
+	1372,						/* U+00A7BD */
+	1373,						/* U+00A7BE */
+	1373,						/* U+00A7BF */
+	1374,						/* U+00A7C0 */
+	1374,						/* U+00A7C1 */
+	1375,						/* U+00A7C2 */
+	1375,						/* U+00A7C3 */
+	1356,						/* U+00A7C4 */
+	347,						/* U+00A7C5 */
+	837,						/* U+00A7C6 */
+	1376,						/* U+00A7C7 */
+	1376,						/* U+00A7C8 */
+	1377,						/* U+00A7C9 */
+	1377,						/* U+00A7CA */
+	339,						/* U+00A7CB */
+	1378,						/* U+00A7CC */
+	1378,						/* U+00A7CD */
 	0,							/* U+00A7CE */
 	0,							/* U+00A7CF */
-	1375,						/* U+00A7D0 */
-	1375,						/* U+00A7D1 */
+	1379,						/* U+00A7D0 */
+	1379,						/* U+00A7D1 */
 	0,							/* U+00A7D2 */
 	0,							/* U+00A7D3 */
 	0,							/* U+00A7D4 */
 	0,							/* U+00A7D5 */
-	1376,						/* U+00A7D6 */
-	1376,						/* U+00A7D7 */
-	1377,						/* U+00A7D8 */
-	1377,						/* U+00A7D9 */
-	0,							/* U+00A7DA */
-	0,							/* U+00A7DB */
-	0,							/* U+00A7DC */
+	1380,						/* U+00A7D6 */
+	1380,						/* U+00A7D7 */
+	1381,						/* U+00A7D8 */
+	1381,						/* U+00A7D9 */
+	1382,						/* U+00A7DA */
+	1382,						/* U+00A7DB */
+	247,						/* U+00A7DC */
 	0,							/* U+00A7DD */
 	0,							/* U+00A7DE */
 	0,							/* U+00A7DF */
@@ -12292,9 +12427,9 @@ static const uint16 case_map[4631] =
 	0,							/* U+00A7F2 */
 	0,							/* U+00A7F3 */
 	0,							/* U+00A7F4 */
-	1378,						/* U+00A7F5 */
-	1378,						/* U+00A7F6 */
-	1364,						/* U+00AB53 */
+	1383,						/* U+00A7F5 */
+	1383,						/* U+00A7F6 */
+	1367,						/* U+00AB53 */
 	0,							/* U+00AB54 */
 	0,							/* U+00AB55 */
 	0,							/* U+00AB56 */
@@ -12323,93 +12458,93 @@ static const uint16 case_map[4631] =
 	0,							/* U+00AB6D */
 	0,							/* U+00AB6E */
 	0,							/* U+00AB6F */
-	691,						/* U+00AB70 */
-	692,						/* U+00AB71 */
-	693,						/* U+00AB72 */
-	694,						/* U+00AB73 */
-	695,						/* U+00AB74 */
-	696,						/* U+00AB75 */
-	697,						/* U+00AB76 */
-	698,						/* U+00AB77 */
-	699,						/* U+00AB78 */
-	700,						/* U+00AB79 */
-	701,						/* U+00AB7A */
-	702,						/* U+00AB7B */
-	703,						/* U+00AB7C */
-	704,						/* U+00AB7D */
-	705,						/* U+00AB7E */
-	706,						/* U+00AB7F */
-	707,						/* U+00AB80 */
-	708,						/* U+00AB81 */
-	709,						/* U+00AB82 */
-	710,						/* U+00AB83 */
-	711,						/* U+00AB84 */
-	712,						/* U+00AB85 */
-	713,						/* U+00AB86 */
-	714,						/* U+00AB87 */
-	715,						/* U+00AB88 */
-	716,						/* U+00AB89 */
-	717,						/* U+00AB8A */
-	718,						/* U+00AB8B */
-	719,						/* U+00AB8C */
-	720,						/* U+00AB8D */
-	721,						/* U+00AB8E */
-	722,						/* U+00AB8F */
-	723,						/* U+00AB90 */
-	724,						/* U+00AB91 */
-	725,						/* U+00AB92 */
-	726,						/* U+00AB93 */
-	727,						/* U+00AB94 */
-	728,						/* U+00AB95 */
-	729,						/* U+00AB96 */
-	730,						/* U+00AB97 */
-	731,						/* U+00AB98 */
-	732,						/* U+00AB99 */
-	733,						/* U+00AB9A */
-	734,						/* U+00AB9B */
-	735,						/* U+00AB9C */
-	736,						/* U+00AB9D */
-	737,						/* U+00AB9E */
-	738,						/* U+00AB9F */
-	739,						/* U+00ABA0 */
-	740,						/* U+00ABA1 */
-	741,						/* U+00ABA2 */
-	742,						/* U+00ABA3 */
-	743,						/* U+00ABA4 */
-	744,						/* U+00ABA5 */
-	745,						/* U+00ABA6 */
-	746,						/* U+00ABA7 */
-	747,						/* U+00ABA8 */
-	748,						/* U+00ABA9 */
-	749,						/* U+00ABAA */
-	750,						/* U+00ABAB */
-	751,						/* U+00ABAC */
-	752,						/* U+00ABAD */
-	753,						/* U+00ABAE */
-	754,						/* U+00ABAF */
-	755,						/* U+00ABB0 */
-	756,						/* U+00ABB1 */
-	757,						/* U+00ABB2 */
-	758,						/* U+00ABB3 */
-	759,						/* U+00ABB4 */
-	760,						/* U+00ABB5 */
-	761,						/* U+00ABB6 */
-	762,						/* U+00ABB7 */
-	763,						/* U+00ABB8 */
-	764,						/* U+00ABB9 */
-	765,						/* U+00ABBA */
-	766,						/* U+00ABBB */
-	767,						/* U+00ABBC */
-	768,						/* U+00ABBD */
-	769,						/* U+00ABBE */
-	770,						/* U+00ABBF */
-	1379,						/* U+00FB00 */
-	1380,						/* U+00FB01 */
-	1381,						/* U+00FB02 */
-	1382,						/* U+00FB03 */
-	1383,						/* U+00FB04 */
-	1384,						/* U+00FB05 */
-	1385,						/* U+00FB06 */
+	693,						/* U+00AB70 */
+	694,						/* U+00AB71 */
+	695,						/* U+00AB72 */
+	696,						/* U+00AB73 */
+	697,						/* U+00AB74 */
+	698,						/* U+00AB75 */
+	699,						/* U+00AB76 */
+	700,						/* U+00AB77 */
+	701,						/* U+00AB78 */
+	702,						/* U+00AB79 */
+	703,						/* U+00AB7A */
+	704,						/* U+00AB7B */
+	705,						/* U+00AB7C */
+	706,						/* U+00AB7D */
+	707,						/* U+00AB7E */
+	708,						/* U+00AB7F */
+	709,						/* U+00AB80 */
+	710,						/* U+00AB81 */
+	711,						/* U+00AB82 */
+	712,						/* U+00AB83 */
+	713,						/* U+00AB84 */
+	714,						/* U+00AB85 */
+	715,						/* U+00AB86 */
+	716,						/* U+00AB87 */
+	717,						/* U+00AB88 */
+	718,						/* U+00AB89 */
+	719,						/* U+00AB8A */
+	720,						/* U+00AB8B */
+	721,						/* U+00AB8C */
+	722,						/* U+00AB8D */
+	723,						/* U+00AB8E */
+	724,						/* U+00AB8F */
+	725,						/* U+00AB90 */
+	726,						/* U+00AB91 */
+	727,						/* U+00AB92 */
+	728,						/* U+00AB93 */
+	729,						/* U+00AB94 */
+	730,						/* U+00AB95 */
+	731,						/* U+00AB96 */
+	732,						/* U+00AB97 */
+	733,						/* U+00AB98 */
+	734,						/* U+00AB99 */
+	735,						/* U+00AB9A */
+	736,						/* U+00AB9B */
+	737,						/* U+00AB9C */
+	738,						/* U+00AB9D */
+	739,						/* U+00AB9E */
+	740,						/* U+00AB9F */
+	741,						/* U+00ABA0 */
+	742,						/* U+00ABA1 */
+	743,						/* U+00ABA2 */
+	744,						/* U+00ABA3 */
+	745,						/* U+00ABA4 */
+	746,						/* U+00ABA5 */
+	747,						/* U+00ABA6 */
+	748,						/* U+00ABA7 */
+	749,						/* U+00ABA8 */
+	750,						/* U+00ABA9 */
+	751,						/* U+00ABAA */
+	752,						/* U+00ABAB */
+	753,						/* U+00ABAC */
+	754,						/* U+00ABAD */
+	755,						/* U+00ABAE */
+	756,						/* U+00ABAF */
+	757,						/* U+00ABB0 */
+	758,						/* U+00ABB1 */
+	759,						/* U+00ABB2 */
+	760,						/* U+00ABB3 */
+	761,						/* U+00ABB4 */
+	762,						/* U+00ABB5 */
+	763,						/* U+00ABB6 */
+	764,						/* U+00ABB7 */
+	765,						/* U+00ABB8 */
+	766,						/* U+00ABB9 */
+	767,						/* U+00ABBA */
+	768,						/* U+00ABBB */
+	769,						/* U+00ABBC */
+	770,						/* U+00ABBD */
+	771,						/* U+00ABBE */
+	772,						/* U+00ABBF */
+	1384,						/* U+00FB00 */
+	1385,						/* U+00FB01 */
+	1386,						/* U+00FB02 */
+	1387,						/* U+00FB03 */
+	1388,						/* U+00FB04 */
+	1389,						/* U+00FB05 */
+	1390,						/* U+00FB06 */
 	0,							/* U+00FB07 */
 	0,							/* U+00FB08 */
 	0,							/* U+00FB09 */
@@ -12422,149 +12557,149 @@ static const uint16 case_map[4631] =
 	0,							/* U+00FB10 */
 	0,							/* U+00FB11 */
 	0,							/* U+00FB12 */
-	1386,						/* U+00FB13 */
-	1387,						/* U+00FB14 */
-	1388,						/* U+00FB15 */
-	1389,						/* U+00FB16 */
-	1390,						/* U+00FB17 */
-	1391,						/* U+00FF21 */
-	1392,						/* U+00FF22 */
-	1393,						/* U+00FF23 */
-	1394,						/* U+00FF24 */
-	1395,						/* U+00FF25 */
-	1396,						/* U+00FF26 */
-	1397,						/* U+00FF27 */
-	1398,						/* U+00FF28 */
-	1399,						/* U+00FF29 */
-	1400,						/* U+00FF2A */
-	1401,						/* U+00FF2B */
-	1402,						/* U+00FF2C */
-	1403,						/* U+00FF2D */
-	1404,						/* U+00FF2E */
-	1405,						/* U+00FF2F */
-	1406,						/* U+00FF30 */
-	1407,						/* U+00FF31 */
-	1408,						/* U+00FF32 */
-	1409,						/* U+00FF33 */
-	1410,						/* U+00FF34 */
-	1411,						/* U+00FF35 */
-	1412,						/* U+00FF36 */
-	1413,						/* U+00FF37 */
-	1414,						/* U+00FF38 */
-	1415,						/* U+00FF39 */
-	1416,						/* U+00FF3A */
+	1391,						/* U+00FB13 */
+	1392,						/* U+00FB14 */
+	1393,						/* U+00FB15 */
+	1394,						/* U+00FB16 */
+	1395,						/* U+00FB17 */
+	1396,						/* U+00FF21 */
+	1397,						/* U+00FF22 */
+	1398,						/* U+00FF23 */
+	1399,						/* U+00FF24 */
+	1400,						/* U+00FF25 */
+	1401,						/* U+00FF26 */
+	1402,						/* U+00FF27 */
+	1403,						/* U+00FF28 */
+	1404,						/* U+00FF29 */
+	1405,						/* U+00FF2A */
+	1406,						/* U+00FF2B */
+	1407,						/* U+00FF2C */
+	1408,						/* U+00FF2D */
+	1409,						/* U+00FF2E */
+	1410,						/* U+00FF2F */
+	1411,						/* U+00FF30 */
+	1412,						/* U+00FF31 */
+	1413,						/* U+00FF32 */
+	1414,						/* U+00FF33 */
+	1415,						/* U+00FF34 */
+	1416,						/* U+00FF35 */
+	1417,						/* U+00FF36 */
+	1418,						/* U+00FF37 */
+	1419,						/* U+00FF38 */
+	1420,						/* U+00FF39 */
+	1421,						/* U+00FF3A */
 	0,							/* U+00FF3B */
 	0,							/* U+00FF3C */
 	0,							/* U+00FF3D */
 	0,							/* U+00FF3E */
 	0,							/* U+00FF3F */
 	0,							/* U+00FF40 */
-	1391,						/* U+00FF41 */
-	1392,						/* U+00FF42 */
-	1393,						/* U+00FF43 */
-	1394,						/* U+00FF44 */
-	1395,						/* U+00FF45 */
-	1396,						/* U+00FF46 */
-	1397,						/* U+00FF47 */
-	1398,						/* U+00FF48 */
-	1399,						/* U+00FF49 */
-	1400,						/* U+00FF4A */
-	1401,						/* U+00FF4B */
-	1402,						/* U+00FF4C */
-	1403,						/* U+00FF4D */
-	1404,						/* U+00FF4E */
-	1405,						/* U+00FF4F */
-	1406,						/* U+00FF50 */
-	1407,						/* U+00FF51 */
-	1408,						/* U+00FF52 */
-	1409,						/* U+00FF53 */
-	1410,						/* U+00FF54 */
-	1411,						/* U+00FF55 */
-	1412,						/* U+00FF56 */
-	1413,						/* U+00FF57 */
-	1414,						/* U+00FF58 */
-	1415,						/* U+00FF59 */
-	1416,						/* U+00FF5A */
-	1417,						/* U+010400 */
-	1418,						/* U+010401 */
-	1419,						/* U+010402 */
-	1420,						/* U+010403 */
-	1421,						/* U+010404 */
-	1422,						/* U+010405 */
-	1423,						/* U+010406 */
-	1424,						/* U+010407 */
-	1425,						/* U+010408 */
-	1426,						/* U+010409 */
-	1427,						/* U+01040A */
-	1428,						/* U+01040B */
-	1429,						/* U+01040C */
-	1430,						/* U+01040D */
-	1431,						/* U+01040E */
-	1432,						/* U+01040F */
-	1433,						/* U+010410 */
-	1434,						/* U+010411 */
-	1435,						/* U+010412 */
-	1436,						/* U+010413 */
-	1437,						/* U+010414 */
-	1438,						/* U+010415 */
-	1439,						/* U+010416 */
-	1440,						/* U+010417 */
-	1441,						/* U+010418 */
-	1442,						/* U+010419 */
-	1443,						/* U+01041A */
-	1444,						/* U+01041B */
-	1445,						/* U+01041C */
-	1446,						/* U+01041D */
-	1447,						/* U+01041E */
-	1448,						/* U+01041F */
-	1449,						/* U+010420 */
-	1450,						/* U+010421 */
-	1451,						/* U+010422 */
-	1452,						/* U+010423 */
-	1453,						/* U+010424 */
-	1454,						/* U+010425 */
-	1455,						/* U+010426 */
-	1456,						/* U+010427 */
-	1417,						/* U+010428 */
-	1418,						/* U+010429 */
-	1419,						/* U+01042A */
-	1420,						/* U+01042B */
-	1421,						/* U+01042C */
-	1422,						/* U+01042D */
-	1423,						/* U+01042E */
-	1424,						/* U+01042F */
-	1425,						/* U+010430 */
-	1426,						/* U+010431 */
-	1427,						/* U+010432 */
-	1428,						/* U+010433 */
-	1429,						/* U+010434 */
-	1430,						/* U+010435 */
-	1431,						/* U+010436 */
-	1432,						/* U+010437 */
-	1433,						/* U+010438 */
-	1434,						/* U+010439 */
-	1435,						/* U+01043A */
-	1436,						/* U+01043B */
-	1437,						/* U+01043C */
-	1438,						/* U+01043D */
-	1439,						/* U+01043E */
-	1440,						/* U+01043F */
-	1441,						/* U+010440 */
-	1442,						/* U+010441 */
-	1443,						/* U+010442 */
-	1444,						/* U+010443 */
-	1445,						/* U+010444 */
-	1446,						/* U+010445 */
-	1447,						/* U+010446 */
-	1448,						/* U+010447 */
-	1449,						/* U+010448 */
-	1450,						/* U+010449 */
-	1451,						/* U+01044A */
-	1452,						/* U+01044B */
-	1453,						/* U+01044C */
-	1454,						/* U+01044D */
-	1455,						/* U+01044E */
-	1456,						/* U+01044F */
+	1396,						/* U+00FF41 */
+	1397,						/* U+00FF42 */
+	1398,						/* U+00FF43 */
+	1399,						/* U+00FF44 */
+	1400,						/* U+00FF45 */
+	1401,						/* U+00FF46 */
+	1402,						/* U+00FF47 */
+	1403,						/* U+00FF48 */
+	1404,						/* U+00FF49 */
+	1405,						/* U+00FF4A */
+	1406,						/* U+00FF4B */
+	1407,						/* U+00FF4C */
+	1408,						/* U+00FF4D */
+	1409,						/* U+00FF4E */
+	1410,						/* U+00FF4F */
+	1411,						/* U+00FF50 */
+	1412,						/* U+00FF51 */
+	1413,						/* U+00FF52 */
+	1414,						/* U+00FF53 */
+	1415,						/* U+00FF54 */
+	1416,						/* U+00FF55 */
+	1417,						/* U+00FF56 */
+	1418,						/* U+00FF57 */
+	1419,						/* U+00FF58 */
+	1420,						/* U+00FF59 */
+	1421,						/* U+00FF5A */
+	1422,						/* U+010400 */
+	1423,						/* U+010401 */
+	1424,						/* U+010402 */
+	1425,						/* U+010403 */
+	1426,						/* U+010404 */
+	1427,						/* U+010405 */
+	1428,						/* U+010406 */
+	1429,						/* U+010407 */
+	1430,						/* U+010408 */
+	1431,						/* U+010409 */
+	1432,						/* U+01040A */
+	1433,						/* U+01040B */
+	1434,						/* U+01040C */
+	1435,						/* U+01040D */
+	1436,						/* U+01040E */
+	1437,						/* U+01040F */
+	1438,						/* U+010410 */
+	1439,						/* U+010411 */
+	1440,						/* U+010412 */
+	1441,						/* U+010413 */
+	1442,						/* U+010414 */
+	1443,						/* U+010415 */
+	1444,						/* U+010416 */
+	1445,						/* U+010417 */
+	1446,						/* U+010418 */
+	1447,						/* U+010419 */
+	1448,						/* U+01041A */
+	1449,						/* U+01041B */
+	1450,						/* U+01041C */
+	1451,						/* U+01041D */
+	1452,						/* U+01041E */
+	1453,						/* U+01041F */
+	1454,						/* U+010420 */
+	1455,						/* U+010421 */
+	1456,						/* U+010422 */
+	1457,						/* U+010423 */
+	1458,						/* U+010424 */
+	1459,						/* U+010425 */
+	1460,						/* U+010426 */
+	1461,						/* U+010427 */
+	1422,						/* U+010428 */
+	1423,						/* U+010429 */
+	1424,						/* U+01042A */
+	1425,						/* U+01042B */
+	1426,						/* U+01042C */
+	1427,						/* U+01042D */
+	1428,						/* U+01042E */
+	1429,						/* U+01042F */
+	1430,						/* U+010430 */
+	1431,						/* U+010431 */
+	1432,						/* U+010432 */
+	1433,						/* U+010433 */
+	1434,						/* U+010434 */
+	1435,						/* U+010435 */
+	1436,						/* U+010436 */
+	1437,						/* U+010437 */
+	1438,						/* U+010438 */
+	1439,						/* U+010439 */
+	1440,						/* U+01043A */
+	1441,						/* U+01043B */
+	1442,						/* U+01043C */
+	1443,						/* U+01043D */
+	1444,						/* U+01043E */
+	1445,						/* U+01043F */
+	1446,						/* U+010440 */
+	1447,						/* U+010441 */
+	1448,						/* U+010442 */
+	1449,						/* U+010443 */
+	1450,						/* U+010444 */
+	1451,						/* U+010445 */
+	1452,						/* U+010446 */
+	1453,						/* U+010447 */
+	1454,						/* U+010448 */
+	1455,						/* U+010449 */
+	1456,						/* U+01044A */
+	1457,						/* U+01044B */
+	1458,						/* U+01044C */
+	1459,						/* U+01044D */
+	1460,						/* U+01044E */
+	1461,						/* U+01044F */
 	0,							/* U+010450 */
 	0,							/* U+010451 */
 	0,							/* U+010452 */
@@ -12661,82 +12796,82 @@ static const uint16 case_map[4631] =
 	0,							/* U+0104AD */
 	0,							/* U+0104AE */
 	0,							/* U+0104AF */
-	1457,						/* U+0104B0 */
-	1458,						/* U+0104B1 */
-	1459,						/* U+0104B2 */
-	1460,						/* U+0104B3 */
-	1461,						/* U+0104B4 */
-	1462,						/* U+0104B5 */
-	1463,						/* U+0104B6 */
-	1464,						/* U+0104B7 */
-	1465,						/* U+0104B8 */
-	1466,						/* U+0104B9 */
-	1467,						/* U+0104BA */
-	1468,						/* U+0104BB */
-	1469,						/* U+0104BC */
-	1470,						/* U+0104BD */
-	1471,						/* U+0104BE */
-	1472,						/* U+0104BF */
-	1473,						/* U+0104C0 */
-	1474,						/* U+0104C1 */
-	1475,						/* U+0104C2 */
-	1476,						/* U+0104C3 */
-	1477,						/* U+0104C4 */
-	1478,						/* U+0104C5 */
-	1479,						/* U+0104C6 */
-	1480,						/* U+0104C7 */
-	1481,						/* U+0104C8 */
-	1482,						/* U+0104C9 */
-	1483,						/* U+0104CA */
-	1484,						/* U+0104CB */
-	1485,						/* U+0104CC */
-	1486,						/* U+0104CD */
-	1487,						/* U+0104CE */
-	1488,						/* U+0104CF */
-	1489,						/* U+0104D0 */
-	1490,						/* U+0104D1 */
-	1491,						/* U+0104D2 */
-	1492,						/* U+0104D3 */
+	1462,						/* U+0104B0 */
+	1463,						/* U+0104B1 */
+	1464,						/* U+0104B2 */
+	1465,						/* U+0104B3 */
+	1466,						/* U+0104B4 */
+	1467,						/* U+0104B5 */
+	1468,						/* U+0104B6 */
+	1469,						/* U+0104B7 */
+	1470,						/* U+0104B8 */
+	1471,						/* U+0104B9 */
+	1472,						/* U+0104BA */
+	1473,						/* U+0104BB */
+	1474,						/* U+0104BC */
+	1475,						/* U+0104BD */
+	1476,						/* U+0104BE */
+	1477,						/* U+0104BF */
+	1478,						/* U+0104C0 */
+	1479,						/* U+0104C1 */
+	1480,						/* U+0104C2 */
+	1481,						/* U+0104C3 */
+	1482,						/* U+0104C4 */
+	1483,						/* U+0104C5 */
+	1484,						/* U+0104C6 */
+	1485,						/* U+0104C7 */
+	1486,						/* U+0104C8 */
+	1487,						/* U+0104C9 */
+	1488,						/* U+0104CA */
+	1489,						/* U+0104CB */
+	1490,						/* U+0104CC */
+	1491,						/* U+0104CD */
+	1492,						/* U+0104CE */
+	1493,						/* U+0104CF */
+	1494,						/* U+0104D0 */
+	1495,						/* U+0104D1 */
+	1496,						/* U+0104D2 */
+	1497,						/* U+0104D3 */
 	0,							/* U+0104D4 */
 	0,							/* U+0104D5 */
 	0,							/* U+0104D6 */
 	0,							/* U+0104D7 */
-	1457,						/* U+0104D8 */
-	1458,						/* U+0104D9 */
-	1459,						/* U+0104DA */
-	1460,						/* U+0104DB */
-	1461,						/* U+0104DC */
-	1462,						/* U+0104DD */
-	1463,						/* U+0104DE */
-	1464,						/* U+0104DF */
-	1465,						/* U+0104E0 */
-	1466,						/* U+0104E1 */
-	1467,						/* U+0104E2 */
-	1468,						/* U+0104E3 */
-	1469,						/* U+0104E4 */
-	1470,						/* U+0104E5 */
-	1471,						/* U+0104E6 */
-	1472,						/* U+0104E7 */
-	1473,						/* U+0104E8 */
-	1474,						/* U+0104E9 */
-	1475,						/* U+0104EA */
-	1476,						/* U+0104EB */
-	1477,						/* U+0104EC */
-	1478,						/* U+0104ED */
-	1479,						/* U+0104EE */
-	1480,						/* U+0104EF */
-	1481,						/* U+0104F0 */
-	1482,						/* U+0104F1 */
-	1483,						/* U+0104F2 */
-	1484,						/* U+0104F3 */
-	1485,						/* U+0104F4 */
-	1486,						/* U+0104F5 */
-	1487,						/* U+0104F6 */
-	1488,						/* U+0104F7 */
-	1489,						/* U+0104F8 */
-	1490,						/* U+0104F9 */
-	1491,						/* U+0104FA */
-	1492,						/* U+0104FB */
+	1462,						/* U+0104D8 */
+	1463,						/* U+0104D9 */
+	1464,						/* U+0104DA */
+	1465,						/* U+0104DB */
+	1466,						/* U+0104DC */
+	1467,						/* U+0104DD */
+	1468,						/* U+0104DE */
+	1469,						/* U+0104DF */
+	1470,						/* U+0104E0 */
+	1471,						/* U+0104E1 */
+	1472,						/* U+0104E2 */
+	1473,						/* U+0104E3 */
+	1474,						/* U+0104E4 */
+	1475,						/* U+0104E5 */
+	1476,						/* U+0104E6 */
+	1477,						/* U+0104E7 */
+	1478,						/* U+0104E8 */
+	1479,						/* U+0104E9 */
+	1480,						/* U+0104EA */
+	1481,						/* U+0104EB */
+	1482,						/* U+0104EC */
+	1483,						/* U+0104ED */
+	1484,						/* U+0104EE */
+	1485,						/* U+0104EF */
+	1486,						/* U+0104F0 */
+	1487,						/* U+0104F1 */
+	1488,						/* U+0104F2 */
+	1489,						/* U+0104F3 */
+	1490,						/* U+0104F4 */
+	1491,						/* U+0104F5 */
+	1492,						/* U+0104F6 */
+	1493,						/* U+0104F7 */
+	1494,						/* U+0104F8 */
+	1495,						/* U+0104F9 */
+	1496,						/* U+0104FA */
+	1497,						/* U+0104FB */
 	0,							/* U+0104FC */
 	0,							/* U+0104FD */
 	0,							/* U+0104FE */
@@ -12853,134 +12988,134 @@ static const uint16 case_map[4631] =
 	0,							/* U+01056D */
 	0,							/* U+01056E */
 	0,							/* U+01056F */
-	1493,						/* U+010570 */
-	1494,						/* U+010571 */
-	1495,						/* U+010572 */
-	1496,						/* U+010573 */
-	1497,						/* U+010574 */
-	1498,						/* U+010575 */
-	1499,						/* U+010576 */
-	1500,						/* U+010577 */
-	1501,						/* U+010578 */
-	1502,						/* U+010579 */
-	1503,						/* U+01057A */
+	1498,						/* U+010570 */
+	1499,						/* U+010571 */
+	1500,						/* U+010572 */
+	1501,						/* U+010573 */
+	1502,						/* U+010574 */
+	1503,						/* U+010575 */
+	1504,						/* U+010576 */
+	1505,						/* U+010577 */
+	1506,						/* U+010578 */
+	1507,						/* U+010579 */
+	1508,						/* U+01057A */
 	0,							/* U+01057B */
-	1504,						/* U+01057C */
-	1505,						/* U+01057D */
-	1506,						/* U+01057E */
-	1507,						/* U+01057F */
-	1508,						/* U+010580 */
-	1509,						/* U+010581 */
-	1510,						/* U+010582 */
-	1511,						/* U+010583 */
-	1512,						/* U+010584 */
-	1513,						/* U+010585 */
-	1514,						/* U+010586 */
-	1515,						/* U+010587 */
-	1516,						/* U+010588 */
-	1517,						/* U+010589 */
-	1518,						/* U+01058A */
+	1509,						/* U+01057C */
+	1510,						/* U+01057D */
+	1511,						/* U+01057E */
+	1512,						/* U+01057F */
+	1513,						/* U+010580 */
+	1514,						/* U+010581 */
+	1515,						/* U+010582 */
+	1516,						/* U+010583 */
+	1517,						/* U+010584 */
+	1518,						/* U+010585 */
+	1519,						/* U+010586 */
+	1520,						/* U+010587 */
+	1521,						/* U+010588 */
+	1522,						/* U+010589 */
+	1523,						/* U+01058A */
 	0,							/* U+01058B */
-	1519,						/* U+01058C */
-	1520,						/* U+01058D */
-	1521,						/* U+01058E */
-	1522,						/* U+01058F */
-	1523,						/* U+010590 */
-	1524,						/* U+010591 */
-	1525,						/* U+010592 */
+	1524,						/* U+01058C */
+	1525,						/* U+01058D */
+	1526,						/* U+01058E */
+	1527,						/* U+01058F */
+	1528,						/* U+010590 */
+	1529,						/* U+010591 */
+	1530,						/* U+010592 */
 	0,							/* U+010593 */
-	1526,						/* U+010594 */
-	1527,						/* U+010595 */
+	1531,						/* U+010594 */
+	1532,						/* U+010595 */
 	0,							/* U+010596 */
-	1493,						/* U+010597 */
-	1494,						/* U+010598 */
-	1495,						/* U+010599 */
-	1496,						/* U+01059A */
-	1497,						/* U+01059B */
-	1498,						/* U+01059C */
-	1499,						/* U+01059D */
-	1500,						/* U+01059E */
-	1501,						/* U+01059F */
-	1502,						/* U+0105A0 */
-	1503,						/* U+0105A1 */
+	1498,						/* U+010597 */
+	1499,						/* U+010598 */
+	1500,						/* U+010599 */
+	1501,						/* U+01059A */
+	1502,						/* U+01059B */
+	1503,						/* U+01059C */
+	1504,						/* U+01059D */
+	1505,						/* U+01059E */
+	1506,						/* U+01059F */
+	1507,						/* U+0105A0 */
+	1508,						/* U+0105A1 */
 	0,							/* U+0105A2 */
-	1504,						/* U+0105A3 */
-	1505,						/* U+0105A4 */
-	1506,						/* U+0105A5 */
-	1507,						/* U+0105A6 */
-	1508,						/* U+0105A7 */
-	1509,						/* U+0105A8 */
-	1510,						/* U+0105A9 */
-	1511,						/* U+0105AA */
-	1512,						/* U+0105AB */
-	1513,						/* U+0105AC */
-	1514,						/* U+0105AD */
-	1515,						/* U+0105AE */
-	1516,						/* U+0105AF */
-	1517,						/* U+0105B0 */
-	1518,						/* U+0105B1 */
+	1509,						/* U+0105A3 */
+	1510,						/* U+0105A4 */
+	1511,						/* U+0105A5 */
+	1512,						/* U+0105A6 */
+	1513,						/* U+0105A7 */
+	1514,						/* U+0105A8 */
+	1515,						/* U+0105A9 */
+	1516,						/* U+0105AA */
+	1517,						/* U+0105AB */
+	1518,						/* U+0105AC */
+	1519,						/* U+0105AD */
+	1520,						/* U+0105AE */
+	1521,						/* U+0105AF */
+	1522,						/* U+0105B0 */
+	1523,						/* U+0105B1 */
 	0,							/* U+0105B2 */
-	1519,						/* U+0105B3 */
-	1520,						/* U+0105B4 */
-	1521,						/* U+0105B5 */
-	1522,						/* U+0105B6 */
-	1523,						/* U+0105B7 */
-	1524,						/* U+0105B8 */
-	1525,						/* U+0105B9 */
+	1524,						/* U+0105B3 */
+	1525,						/* U+0105B4 */
+	1526,						/* U+0105B5 */
+	1527,						/* U+0105B6 */
+	1528,						/* U+0105B7 */
+	1529,						/* U+0105B8 */
+	1530,						/* U+0105B9 */
 	0,							/* U+0105BA */
-	1526,						/* U+0105BB */
-	1527,						/* U+0105BC */
-	1528,						/* U+010C80 */
-	1529,						/* U+010C81 */
-	1530,						/* U+010C82 */
-	1531,						/* U+010C83 */
-	1532,						/* U+010C84 */
-	1533,						/* U+010C85 */
-	1534,						/* U+010C86 */
-	1535,						/* U+010C87 */
-	1536,						/* U+010C88 */
-	1537,						/* U+010C89 */
-	1538,						/* U+010C8A */
-	1539,						/* U+010C8B */
-	1540,						/* U+010C8C */
-	1541,						/* U+010C8D */
-	1542,						/* U+010C8E */
-	1543,						/* U+010C8F */
-	1544,						/* U+010C90 */
-	1545,						/* U+010C91 */
-	1546,						/* U+010C92 */
-	1547,						/* U+010C93 */
-	1548,						/* U+010C94 */
-	1549,						/* U+010C95 */
-	1550,						/* U+010C96 */
-	1551,						/* U+010C97 */
-	1552,						/* U+010C98 */
-	1553,						/* U+010C99 */
-	1554,						/* U+010C9A */
-	1555,						/* U+010C9B */
-	1556,						/* U+010C9C */
-	1557,						/* U+010C9D */
-	1558,						/* U+010C9E */
-	1559,						/* U+010C9F */
-	1560,						/* U+010CA0 */
-	1561,						/* U+010CA1 */
-	1562,						/* U+010CA2 */
-	1563,						/* U+010CA3 */
-	1564,						/* U+010CA4 */
-	1565,						/* U+010CA5 */
-	1566,						/* U+010CA6 */
-	1567,						/* U+010CA7 */
-	1568,						/* U+010CA8 */
-	1569,						/* U+010CA9 */
-	1570,						/* U+010CAA */
-	1571,						/* U+010CAB */
-	1572,						/* U+010CAC */
-	1573,						/* U+010CAD */
-	1574,						/* U+010CAE */
-	1575,						/* U+010CAF */
-	1576,						/* U+010CB0 */
-	1577,						/* U+010CB1 */
-	1578,						/* U+010CB2 */
+	1531,						/* U+0105BB */
+	1532,						/* U+0105BC */
+	1533,						/* U+010C80 */
+	1534,						/* U+010C81 */
+	1535,						/* U+010C82 */
+	1536,						/* U+010C83 */
+	1537,						/* U+010C84 */
+	1538,						/* U+010C85 */
+	1539,						/* U+010C86 */
+	1540,						/* U+010C87 */
+	1541,						/* U+010C88 */
+	1542,						/* U+010C89 */
+	1543,						/* U+010C8A */
+	1544,						/* U+010C8B */
+	1545,						/* U+010C8C */
+	1546,						/* U+010C8D */
+	1547,						/* U+010C8E */
+	1548,						/* U+010C8F */
+	1549,						/* U+010C90 */
+	1550,						/* U+010C91 */
+	1551,						/* U+010C92 */
+	1552,						/* U+010C93 */
+	1553,						/* U+010C94 */
+	1554,						/* U+010C95 */
+	1555,						/* U+010C96 */
+	1556,						/* U+010C97 */
+	1557,						/* U+010C98 */
+	1558,						/* U+010C99 */
+	1559,						/* U+010C9A */
+	1560,						/* U+010C9B */
+	1561,						/* U+010C9C */
+	1562,						/* U+010C9D */
+	1563,						/* U+010C9E */
+	1564,						/* U+010C9F */
+	1565,						/* U+010CA0 */
+	1566,						/* U+010CA1 */
+	1567,						/* U+010CA2 */
+	1568,						/* U+010CA3 */
+	1569,						/* U+010CA4 */
+	1570,						/* U+010CA5 */
+	1571,						/* U+010CA6 */
+	1572,						/* U+010CA7 */
+	1573,						/* U+010CA8 */
+	1574,						/* U+010CA9 */
+	1575,						/* U+010CAA */
+	1576,						/* U+010CAB */
+	1577,						/* U+010CAC */
+	1578,						/* U+010CAD */
+	1579,						/* U+010CAE */
+	1580,						/* U+010CAF */
+	1581,						/* U+010CB0 */
+	1582,						/* U+010CB1 */
+	1583,						/* U+010CB2 */
 	0,							/* U+010CB3 */
 	0,							/* U+010CB4 */
 	0,							/* U+010CB5 */
@@ -12994,253 +13129,400 @@ static const uint16 case_map[4631] =
 	0,							/* U+010CBD */
 	0,							/* U+010CBE */
 	0,							/* U+010CBF */
-	1528,						/* U+010CC0 */
-	1529,						/* U+010CC1 */
-	1530,						/* U+010CC2 */
-	1531,						/* U+010CC3 */
-	1532,						/* U+010CC4 */
-	1533,						/* U+010CC5 */
-	1534,						/* U+010CC6 */
-	1535,						/* U+010CC7 */
-	1536,						/* U+010CC8 */
-	1537,						/* U+010CC9 */
-	1538,						/* U+010CCA */
-	1539,						/* U+010CCB */
-	1540,						/* U+010CCC */
-	1541,						/* U+010CCD */
-	1542,						/* U+010CCE */
-	1543,						/* U+010CCF */
-	1544,						/* U+010CD0 */
-	1545,						/* U+010CD1 */
-	1546,						/* U+010CD2 */
-	1547,						/* U+010CD3 */
-	1548,						/* U+010CD4 */
-	1549,						/* U+010CD5 */
-	1550,						/* U+010CD6 */
-	1551,						/* U+010CD7 */
-	1552,						/* U+010CD8 */
-	1553,						/* U+010CD9 */
-	1554,						/* U+010CDA */
-	1555,						/* U+010CDB */
-	1556,						/* U+010CDC */
-	1557,						/* U+010CDD */
-	1558,						/* U+010CDE */
-	1559,						/* U+010CDF */
-	1560,						/* U+010CE0 */
-	1561,						/* U+010CE1 */
-	1562,						/* U+010CE2 */
-	1563,						/* U+010CE3 */
-	1564,						/* U+010CE4 */
-	1565,						/* U+010CE5 */
-	1566,						/* U+010CE6 */
-	1567,						/* U+010CE7 */
-	1568,						/* U+010CE8 */
-	1569,						/* U+010CE9 */
-	1570,						/* U+010CEA */
-	1571,						/* U+010CEB */
-	1572,						/* U+010CEC */
-	1573,						/* U+010CED */
-	1574,						/* U+010CEE */
-	1575,						/* U+010CEF */
-	1576,						/* U+010CF0 */
-	1577,						/* U+010CF1 */
-	1578,						/* U+010CF2 */
-	1579,						/* U+0118A0 */
-	1580,						/* U+0118A1 */
-	1581,						/* U+0118A2 */
-	1582,						/* U+0118A3 */
-	1583,						/* U+0118A4 */
-	1584,						/* U+0118A5 */
-	1585,						/* U+0118A6 */
-	1586,						/* U+0118A7 */
-	1587,						/* U+0118A8 */
-	1588,						/* U+0118A9 */
-	1589,						/* U+0118AA */
-	1590,						/* U+0118AB */
-	1591,						/* U+0118AC */
-	1592,						/* U+0118AD */
-	1593,						/* U+0118AE */
-	1594,						/* U+0118AF */
-	1595,						/* U+0118B0 */
-	1596,						/* U+0118B1 */
-	1597,						/* U+0118B2 */
-	1598,						/* U+0118B3 */
-	1599,						/* U+0118B4 */
-	1600,						/* U+0118B5 */
-	1601,						/* U+0118B6 */
-	1602,						/* U+0118B7 */
-	1603,						/* U+0118B8 */
-	1604,						/* U+0118B9 */
-	1605,						/* U+0118BA */
-	1606,						/* U+0118BB */
-	1607,						/* U+0118BC */
-	1608,						/* U+0118BD */
-	1609,						/* U+0118BE */
-	1610,						/* U+0118BF */
-	1579,						/* U+0118C0 */
-	1580,						/* U+0118C1 */
-	1581,						/* U+0118C2 */
-	1582,						/* U+0118C3 */
-	1583,						/* U+0118C4 */
-	1584,						/* U+0118C5 */
-	1585,						/* U+0118C6 */
-	1586,						/* U+0118C7 */
-	1587,						/* U+0118C8 */
-	1588,						/* U+0118C9 */
-	1589,						/* U+0118CA */
-	1590,						/* U+0118CB */
-	1591,						/* U+0118CC */
-	1592,						/* U+0118CD */
-	1593,						/* U+0118CE */
-	1594,						/* U+0118CF */
-	1595,						/* U+0118D0 */
-	1596,						/* U+0118D1 */
-	1597,						/* U+0118D2 */
-	1598,						/* U+0118D3 */
-	1599,						/* U+0118D4 */
-	1600,						/* U+0118D5 */
-	1601,						/* U+0118D6 */
-	1602,						/* U+0118D7 */
-	1603,						/* U+0118D8 */
-	1604,						/* U+0118D9 */
-	1605,						/* U+0118DA */
-	1606,						/* U+0118DB */
-	1607,						/* U+0118DC */
-	1608,						/* U+0118DD */
-	1609,						/* U+0118DE */
-	1610,						/* U+0118DF */
-	1611,						/* U+016E40 */
-	1612,						/* U+016E41 */
-	1613,						/* U+016E42 */
-	1614,						/* U+016E43 */
-	1615,						/* U+016E44 */
-	1616,						/* U+016E45 */
-	1617,						/* U+016E46 */
-	1618,						/* U+016E47 */
-	1619,						/* U+016E48 */
-	1620,						/* U+016E49 */
-	1621,						/* U+016E4A */
-	1622,						/* U+016E4B */
-	1623,						/* U+016E4C */
-	1624,						/* U+016E4D */
-	1625,						/* U+016E4E */
-	1626,						/* U+016E4F */
-	1627,						/* U+016E50 */
-	1628,						/* U+016E51 */
-	1629,						/* U+016E52 */
-	1630,						/* U+016E53 */
-	1631,						/* U+016E54 */
-	1632,						/* U+016E55 */
-	1633,						/* U+016E56 */
-	1634,						/* U+016E57 */
-	1635,						/* U+016E58 */
-	1636,						/* U+016E59 */
-	1637,						/* U+016E5A */
-	1638,						/* U+016E5B */
-	1639,						/* U+016E5C */
-	1640,						/* U+016E5D */
-	1641,						/* U+016E5E */
-	1642,						/* U+016E5F */
-	1611,						/* U+016E60 */
-	1612,						/* U+016E61 */
-	1613,						/* U+016E62 */
-	1614,						/* U+016E63 */
-	1615,						/* U+016E64 */
-	1616,						/* U+016E65 */
-	1617,						/* U+016E66 */
-	1618,						/* U+016E67 */
-	1619,						/* U+016E68 */
-	1620,						/* U+016E69 */
-	1621,						/* U+016E6A */
-	1622,						/* U+016E6B */
-	1623,						/* U+016E6C */
-	1624,						/* U+016E6D */
-	1625,						/* U+016E6E */
-	1626,						/* U+016E6F */
-	1627,						/* U+016E70 */
-	1628,						/* U+016E71 */
-	1629,						/* U+016E72 */
-	1630,						/* U+016E73 */
-	1631,						/* U+016E74 */
-	1632,						/* U+016E75 */
-	1633,						/* U+016E76 */
-	1634,						/* U+016E77 */
-	1635,						/* U+016E78 */
-	1636,						/* U+016E79 */
-	1637,						/* U+016E7A */
-	1638,						/* U+016E7B */
-	1639,						/* U+016E7C */
-	1640,						/* U+016E7D */
-	1641,						/* U+016E7E */
-	1642,						/* U+016E7F */
-	1643,						/* U+01E900 */
-	1644,						/* U+01E901 */
-	1645,						/* U+01E902 */
-	1646,						/* U+01E903 */
-	1647,						/* U+01E904 */
-	1648,						/* U+01E905 */
-	1649,						/* U+01E906 */
-	1650,						/* U+01E907 */
-	1651,						/* U+01E908 */
-	1652,						/* U+01E909 */
-	1653,						/* U+01E90A */
-	1654,						/* U+01E90B */
-	1655,						/* U+01E90C */
-	1656,						/* U+01E90D */
-	1657,						/* U+01E90E */
-	1658,						/* U+01E90F */
-	1659,						/* U+01E910 */
-	1660,						/* U+01E911 */
-	1661,						/* U+01E912 */
-	1662,						/* U+01E913 */
-	1663,						/* U+01E914 */
-	1664,						/* U+01E915 */
-	1665,						/* U+01E916 */
-	1666,						/* U+01E917 */
-	1667,						/* U+01E918 */
-	1668,						/* U+01E919 */
-	1669,						/* U+01E91A */
-	1670,						/* U+01E91B */
-	1671,						/* U+01E91C */
-	1672,						/* U+01E91D */
-	1673,						/* U+01E91E */
-	1674,						/* U+01E91F */
-	1675,						/* U+01E920 */
-	1676,						/* U+01E921 */
-	1643,						/* U+01E922 */
-	1644,						/* U+01E923 */
-	1645,						/* U+01E924 */
-	1646,						/* U+01E925 */
-	1647,						/* U+01E926 */
-	1648,						/* U+01E927 */
-	1649,						/* U+01E928 */
-	1650,						/* U+01E929 */
-	1651,						/* U+01E92A */
-	1652,						/* U+01E92B */
-	1653,						/* U+01E92C */
-	1654,						/* U+01E92D */
-	1655,						/* U+01E92E */
-	1656,						/* U+01E92F */
-	1657,						/* U+01E930 */
-	1658,						/* U+01E931 */
-	1659,						/* U+01E932 */
-	1660,						/* U+01E933 */
-	1661,						/* U+01E934 */
-	1662,						/* U+01E935 */
-	1663,						/* U+01E936 */
-	1664,						/* U+01E937 */
-	1665,						/* U+01E938 */
-	1666,						/* U+01E939 */
-	1667,						/* U+01E93A */
-	1668,						/* U+01E93B */
-	1669,						/* U+01E93C */
-	1670,						/* U+01E93D */
-	1671,						/* U+01E93E */
-	1672,						/* U+01E93F */
-	1673,						/* U+01E940 */
-	1674,						/* U+01E941 */
-	1675,						/* U+01E942 */
-	1676,						/* U+01E943 */
+	1533,						/* U+010CC0 */
+	1534,						/* U+010CC1 */
+	1535,						/* U+010CC2 */
+	1536,						/* U+010CC3 */
+	1537,						/* U+010CC4 */
+	1538,						/* U+010CC5 */
+	1539,						/* U+010CC6 */
+	1540,						/* U+010CC7 */
+	1541,						/* U+010CC8 */
+	1542,						/* U+010CC9 */
+	1543,						/* U+010CCA */
+	1544,						/* U+010CCB */
+	1545,						/* U+010CCC */
+	1546,						/* U+010CCD */
+	1547,						/* U+010CCE */
+	1548,						/* U+010CCF */
+	1549,						/* U+010CD0 */
+	1550,						/* U+010CD1 */
+	1551,						/* U+010CD2 */
+	1552,						/* U+010CD3 */
+	1553,						/* U+010CD4 */
+	1554,						/* U+010CD5 */
+	1555,						/* U+010CD6 */
+	1556,						/* U+010CD7 */
+	1557,						/* U+010CD8 */
+	1558,						/* U+010CD9 */
+	1559,						/* U+010CDA */
+	1560,						/* U+010CDB */
+	1561,						/* U+010CDC */
+	1562,						/* U+010CDD */
+	1563,						/* U+010CDE */
+	1564,						/* U+010CDF */
+	1565,						/* U+010CE0 */
+	1566,						/* U+010CE1 */
+	1567,						/* U+010CE2 */
+	1568,						/* U+010CE3 */
+	1569,						/* U+010CE4 */
+	1570,						/* U+010CE5 */
+	1571,						/* U+010CE6 */
+	1572,						/* U+010CE7 */
+	1573,						/* U+010CE8 */
+	1574,						/* U+010CE9 */
+	1575,						/* U+010CEA */
+	1576,						/* U+010CEB */
+	1577,						/* U+010CEC */
+	1578,						/* U+010CED */
+	1579,						/* U+010CEE */
+	1580,						/* U+010CEF */
+	1581,						/* U+010CF0 */
+	1582,						/* U+010CF1 */
+	1583,						/* U+010CF2 */
+	0,							/* U+010CF3 */
+	0,							/* U+010CF4 */
+	0,							/* U+010CF5 */
+	0,							/* U+010CF6 */
+	0,							/* U+010CF7 */
+	0,							/* U+010CF8 */
+	0,							/* U+010CF9 */
+	0,							/* U+010CFA */
+	0,							/* U+010CFB */
+	0,							/* U+010CFC */
+	0,							/* U+010CFD */
+	0,							/* U+010CFE */
+	0,							/* U+010CFF */
+	0,							/* U+010D00 */
+	0,							/* U+010D01 */
+	0,							/* U+010D02 */
+	0,							/* U+010D03 */
+	0,							/* U+010D04 */
+	0,							/* U+010D05 */
+	0,							/* U+010D06 */
+	0,							/* U+010D07 */
+	0,							/* U+010D08 */
+	0,							/* U+010D09 */
+	0,							/* U+010D0A */
+	0,							/* U+010D0B */
+	0,							/* U+010D0C */
+	0,							/* U+010D0D */
+	0,							/* U+010D0E */
+	0,							/* U+010D0F */
+	0,							/* U+010D10 */
+	0,							/* U+010D11 */
+	0,							/* U+010D12 */
+	0,							/* U+010D13 */
+	0,							/* U+010D14 */
+	0,							/* U+010D15 */
+	0,							/* U+010D16 */
+	0,							/* U+010D17 */
+	0,							/* U+010D18 */
+	0,							/* U+010D19 */
+	0,							/* U+010D1A */
+	0,							/* U+010D1B */
+	0,							/* U+010D1C */
+	0,							/* U+010D1D */
+	0,							/* U+010D1E */
+	0,							/* U+010D1F */
+	0,							/* U+010D20 */
+	0,							/* U+010D21 */
+	0,							/* U+010D22 */
+	0,							/* U+010D23 */
+	0,							/* U+010D24 */
+	0,							/* U+010D25 */
+	0,							/* U+010D26 */
+	0,							/* U+010D27 */
+	0,							/* U+010D28 */
+	0,							/* U+010D29 */
+	0,							/* U+010D2A */
+	0,							/* U+010D2B */
+	0,							/* U+010D2C */
+	0,							/* U+010D2D */
+	0,							/* U+010D2E */
+	0,							/* U+010D2F */
+	0,							/* U+010D30 */
+	0,							/* U+010D31 */
+	0,							/* U+010D32 */
+	0,							/* U+010D33 */
+	0,							/* U+010D34 */
+	0,							/* U+010D35 */
+	0,							/* U+010D36 */
+	0,							/* U+010D37 */
+	0,							/* U+010D38 */
+	0,							/* U+010D39 */
+	0,							/* U+010D3A */
+	0,							/* U+010D3B */
+	0,							/* U+010D3C */
+	0,							/* U+010D3D */
+	0,							/* U+010D3E */
+	0,							/* U+010D3F */
+	0,							/* U+010D40 */
+	0,							/* U+010D41 */
+	0,							/* U+010D42 */
+	0,							/* U+010D43 */
+	0,							/* U+010D44 */
+	0,							/* U+010D45 */
+	0,							/* U+010D46 */
+	0,							/* U+010D47 */
+	0,							/* U+010D48 */
+	0,							/* U+010D49 */
+	0,							/* U+010D4A */
+	0,							/* U+010D4B */
+	0,							/* U+010D4C */
+	0,							/* U+010D4D */
+	0,							/* U+010D4E */
+	0,							/* U+010D4F */
+	1584,						/* U+010D50 */
+	1585,						/* U+010D51 */
+	1586,						/* U+010D52 */
+	1587,						/* U+010D53 */
+	1588,						/* U+010D54 */
+	1589,						/* U+010D55 */
+	1590,						/* U+010D56 */
+	1591,						/* U+010D57 */
+	1592,						/* U+010D58 */
+	1593,						/* U+010D59 */
+	1594,						/* U+010D5A */
+	1595,						/* U+010D5B */
+	1596,						/* U+010D5C */
+	1597,						/* U+010D5D */
+	1598,						/* U+010D5E */
+	1599,						/* U+010D5F */
+	1600,						/* U+010D60 */
+	1601,						/* U+010D61 */
+	1602,						/* U+010D62 */
+	1603,						/* U+010D63 */
+	1604,						/* U+010D64 */
+	1605,						/* U+010D65 */
+	0,							/* U+010D66 */
+	0,							/* U+010D67 */
+	0,							/* U+010D68 */
+	0,							/* U+010D69 */
+	0,							/* U+010D6A */
+	0,							/* U+010D6B */
+	0,							/* U+010D6C */
+	0,							/* U+010D6D */
+	0,							/* U+010D6E */
+	0,							/* U+010D6F */
+	1584,						/* U+010D70 */
+	1585,						/* U+010D71 */
+	1586,						/* U+010D72 */
+	1587,						/* U+010D73 */
+	1588,						/* U+010D74 */
+	1589,						/* U+010D75 */
+	1590,						/* U+010D76 */
+	1591,						/* U+010D77 */
+	1592,						/* U+010D78 */
+	1593,						/* U+010D79 */
+	1594,						/* U+010D7A */
+	1595,						/* U+010D7B */
+	1596,						/* U+010D7C */
+	1597,						/* U+010D7D */
+	1598,						/* U+010D7E */
+	1599,						/* U+010D7F */
+	1600,						/* U+010D80 */
+	1601,						/* U+010D81 */
+	1602,						/* U+010D82 */
+	1603,						/* U+010D83 */
+	1604,						/* U+010D84 */
+	1605,						/* U+010D85 */
+	1606,						/* U+0118A0 */
+	1607,						/* U+0118A1 */
+	1608,						/* U+0118A2 */
+	1609,						/* U+0118A3 */
+	1610,						/* U+0118A4 */
+	1611,						/* U+0118A5 */
+	1612,						/* U+0118A6 */
+	1613,						/* U+0118A7 */
+	1614,						/* U+0118A8 */
+	1615,						/* U+0118A9 */
+	1616,						/* U+0118AA */
+	1617,						/* U+0118AB */
+	1618,						/* U+0118AC */
+	1619,						/* U+0118AD */
+	1620,						/* U+0118AE */
+	1621,						/* U+0118AF */
+	1622,						/* U+0118B0 */
+	1623,						/* U+0118B1 */
+	1624,						/* U+0118B2 */
+	1625,						/* U+0118B3 */
+	1626,						/* U+0118B4 */
+	1627,						/* U+0118B5 */
+	1628,						/* U+0118B6 */
+	1629,						/* U+0118B7 */
+	1630,						/* U+0118B8 */
+	1631,						/* U+0118B9 */
+	1632,						/* U+0118BA */
+	1633,						/* U+0118BB */
+	1634,						/* U+0118BC */
+	1635,						/* U+0118BD */
+	1636,						/* U+0118BE */
+	1637,						/* U+0118BF */
+	1606,						/* U+0118C0 */
+	1607,						/* U+0118C1 */
+	1608,						/* U+0118C2 */
+	1609,						/* U+0118C3 */
+	1610,						/* U+0118C4 */
+	1611,						/* U+0118C5 */
+	1612,						/* U+0118C6 */
+	1613,						/* U+0118C7 */
+	1614,						/* U+0118C8 */
+	1615,						/* U+0118C9 */
+	1616,						/* U+0118CA */
+	1617,						/* U+0118CB */
+	1618,						/* U+0118CC */
+	1619,						/* U+0118CD */
+	1620,						/* U+0118CE */
+	1621,						/* U+0118CF */
+	1622,						/* U+0118D0 */
+	1623,						/* U+0118D1 */
+	1624,						/* U+0118D2 */
+	1625,						/* U+0118D3 */
+	1626,						/* U+0118D4 */
+	1627,						/* U+0118D5 */
+	1628,						/* U+0118D6 */
+	1629,						/* U+0118D7 */
+	1630,						/* U+0118D8 */
+	1631,						/* U+0118D9 */
+	1632,						/* U+0118DA */
+	1633,						/* U+0118DB */
+	1634,						/* U+0118DC */
+	1635,						/* U+0118DD */
+	1636,						/* U+0118DE */
+	1637,						/* U+0118DF */
+	1638,						/* U+016E40 */
+	1639,						/* U+016E41 */
+	1640,						/* U+016E42 */
+	1641,						/* U+016E43 */
+	1642,						/* U+016E44 */
+	1643,						/* U+016E45 */
+	1644,						/* U+016E46 */
+	1645,						/* U+016E47 */
+	1646,						/* U+016E48 */
+	1647,						/* U+016E49 */
+	1648,						/* U+016E4A */
+	1649,						/* U+016E4B */
+	1650,						/* U+016E4C */
+	1651,						/* U+016E4D */
+	1652,						/* U+016E4E */
+	1653,						/* U+016E4F */
+	1654,						/* U+016E50 */
+	1655,						/* U+016E51 */
+	1656,						/* U+016E52 */
+	1657,						/* U+016E53 */
+	1658,						/* U+016E54 */
+	1659,						/* U+016E55 */
+	1660,						/* U+016E56 */
+	1661,						/* U+016E57 */
+	1662,						/* U+016E58 */
+	1663,						/* U+016E59 */
+	1664,						/* U+016E5A */
+	1665,						/* U+016E5B */
+	1666,						/* U+016E5C */
+	1667,						/* U+016E5D */
+	1668,						/* U+016E5E */
+	1669,						/* U+016E5F */
+	1638,						/* U+016E60 */
+	1639,						/* U+016E61 */
+	1640,						/* U+016E62 */
+	1641,						/* U+016E63 */
+	1642,						/* U+016E64 */
+	1643,						/* U+016E65 */
+	1644,						/* U+016E66 */
+	1645,						/* U+016E67 */
+	1646,						/* U+016E68 */
+	1647,						/* U+016E69 */
+	1648,						/* U+016E6A */
+	1649,						/* U+016E6B */
+	1650,						/* U+016E6C */
+	1651,						/* U+016E6D */
+	1652,						/* U+016E6E */
+	1653,						/* U+016E6F */
+	1654,						/* U+016E70 */
+	1655,						/* U+016E71 */
+	1656,						/* U+016E72 */
+	1657,						/* U+016E73 */
+	1658,						/* U+016E74 */
+	1659,						/* U+016E75 */
+	1660,						/* U+016E76 */
+	1661,						/* U+016E77 */
+	1662,						/* U+016E78 */
+	1663,						/* U+016E79 */
+	1664,						/* U+016E7A */
+	1665,						/* U+016E7B */
+	1666,						/* U+016E7C */
+	1667,						/* U+016E7D */
+	1668,						/* U+016E7E */
+	1669,						/* U+016E7F */
+	1670,						/* U+01E900 */
+	1671,						/* U+01E901 */
+	1672,						/* U+01E902 */
+	1673,						/* U+01E903 */
+	1674,						/* U+01E904 */
+	1675,						/* U+01E905 */
+	1676,						/* U+01E906 */
+	1677,						/* U+01E907 */
+	1678,						/* U+01E908 */
+	1679,						/* U+01E909 */
+	1680,						/* U+01E90A */
+	1681,						/* U+01E90B */
+	1682,						/* U+01E90C */
+	1683,						/* U+01E90D */
+	1684,						/* U+01E90E */
+	1685,						/* U+01E90F */
+	1686,						/* U+01E910 */
+	1687,						/* U+01E911 */
+	1688,						/* U+01E912 */
+	1689,						/* U+01E913 */
+	1690,						/* U+01E914 */
+	1691,						/* U+01E915 */
+	1692,						/* U+01E916 */
+	1693,						/* U+01E917 */
+	1694,						/* U+01E918 */
+	1695,						/* U+01E919 */
+	1696,						/* U+01E91A */
+	1697,						/* U+01E91B */
+	1698,						/* U+01E91C */
+	1699,						/* U+01E91D */
+	1700,						/* U+01E91E */
+	1701,						/* U+01E91F */
+	1702,						/* U+01E920 */
+	1703,						/* U+01E921 */
+	1670,						/* U+01E922 */
+	1671,						/* U+01E923 */
+	1672,						/* U+01E924 */
+	1673,						/* U+01E925 */
+	1674,						/* U+01E926 */
+	1675,						/* U+01E927 */
+	1676,						/* U+01E928 */
+	1677,						/* U+01E929 */
+	1678,						/* U+01E92A */
+	1679,						/* U+01E92B */
+	1680,						/* U+01E92C */
+	1681,						/* U+01E92D */
+	1682,						/* U+01E92E */
+	1683,						/* U+01E92F */
+	1684,						/* U+01E930 */
+	1685,						/* U+01E931 */
+	1686,						/* U+01E932 */
+	1687,						/* U+01E933 */
+	1688,						/* U+01E934 */
+	1689,						/* U+01E935 */
+	1690,						/* U+01E936 */
+	1691,						/* U+01E937 */
+	1692,						/* U+01E938 */
+	1693,						/* U+01E939 */
+	1694,						/* U+01E93A */
+	1695,						/* U+01E93B */
+	1696,						/* U+01E93C */
+	1697,						/* U+01E93D */
+	1698,						/* U+01E93E */
+	1699,						/* U+01E93F */
+	1700,						/* U+01E940 */
+	1701,						/* U+01E941 */
+	1702,						/* U+01E942 */
+	1703,						/* U+01E943 */
 };
 
 
@@ -13307,7 +13589,7 @@ case_index(pg_wchar cp)
 	}
 	else if (cp >= 0xFB00)
 	{
-		if (cp < 0x10CF3)
+		if (cp < 0x10D86)
 		{
 			if (cp < 0xFF5B)
 			{
@@ -13338,18 +13620,18 @@ case_index(pg_wchar cp)
 			{
 				if (cp < 0x118E0)
 				{
-					return case_map[cp - 0x118A0 + 4435];
+					return case_map[cp - 0x118A0 + 4582];
 				}
 				else if (cp >= 0x16E40)
 				{
-					return case_map[cp - 0x16E40 + 4499];
+					return case_map[cp - 0x16E40 + 4646];
 				}
 			}
 			else if (cp >= 0x1E900)
 			{
 				if (cp < 0x1E944)
 				{
-					return case_map[cp - 0x1E900 + 4563];
+					return case_map[cp - 0x1E900 + 4710];
 				}
 			}
 		}
diff --git a/src/include/common/unicode_category_table.h b/src/include/common/unicode_category_table.h
index d3f468a1ebc..95a1c65da7e 100644
--- a/src/include/common/unicode_category_table.h
+++ b/src/include/common/unicode_category_table.h
@@ -696,7 +696,7 @@ static const pg_unicode_properties unicode_opt_ascii[128] =
 };
 
 /* table of Unicode codepoint ranges and their categories */
-static const pg_category_range unicode_categories[3302] =
+static const pg_category_range unicode_categories[3368] =
 {
 	{0x000000, 0x00001f, PG_U_CONTROL},
 	{0x000020, 0x000020, PG_U_SPACE_SEPARATOR},
@@ -1408,7 +1408,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x000888, 0x000888, PG_U_MODIFIER_SYMBOL},
 	{0x000889, 0x00088e, PG_U_OTHER_LETTER},
 	{0x000890, 0x000891, PG_U_FORMAT},
-	{0x000898, 0x00089f, PG_U_NONSPACING_MARK},
+	{0x000897, 0x00089f, PG_U_NONSPACING_MARK},
 	{0x0008a0, 0x0008c8, PG_U_OTHER_LETTER},
 	{0x0008c9, 0x0008c9, PG_U_MODIFIER_LETTER},
 	{0x0008ca, 0x0008e1, PG_U_NONSPACING_MARK},
@@ -1887,12 +1887,13 @@ static const pg_category_range unicode_categories[3302] =
 	{0x001b42, 0x001b42, PG_U_NONSPACING_MARK},
 	{0x001b43, 0x001b44, PG_U_SPACING_MARK},
 	{0x001b45, 0x001b4c, PG_U_OTHER_LETTER},
+	{0x001b4e, 0x001b4f, PG_U_OTHER_PUNCTUATION},
 	{0x001b50, 0x001b59, PG_U_DECIMAL_NUMBER},
 	{0x001b5a, 0x001b60, PG_U_OTHER_PUNCTUATION},
 	{0x001b61, 0x001b6a, PG_U_OTHER_SYMBOL},
 	{0x001b6b, 0x001b73, PG_U_NONSPACING_MARK},
 	{0x001b74, 0x001b7c, PG_U_OTHER_SYMBOL},
-	{0x001b7d, 0x001b7e, PG_U_OTHER_PUNCTUATION},
+	{0x001b7d, 0x001b7f, PG_U_OTHER_PUNCTUATION},
 	{0x001b80, 0x001b81, PG_U_NONSPACING_MARK},
 	{0x001b82, 0x001b82, PG_U_SPACING_MARK},
 	{0x001b83, 0x001ba0, PG_U_OTHER_LETTER},
@@ -1927,6 +1928,8 @@ static const pg_category_range unicode_categories[3302] =
 	{0x001c78, 0x001c7d, PG_U_MODIFIER_LETTER},
 	{0x001c7e, 0x001c7f, PG_U_OTHER_PUNCTUATION},
 	{0x001c80, 0x001c88, PG_U_LOWERCASE_LETTER},
+	{0x001c89, 0x001c89, PG_U_UPPERCASE_LETTER},
+	{0x001c8a, 0x001c8a, PG_U_LOWERCASE_LETTER},
 	{0x001c90, 0x001cba, PG_U_UPPERCASE_LETTER},
 	{0x001cbd, 0x001cbf, PG_U_UPPERCASE_LETTER},
 	{0x001cc0, 0x001cc7, PG_U_OTHER_PUNCTUATION},
@@ -2378,7 +2381,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x00239b, 0x0023b3, PG_U_MATH_SYMBOL},
 	{0x0023b4, 0x0023db, PG_U_OTHER_SYMBOL},
 	{0x0023dc, 0x0023e1, PG_U_MATH_SYMBOL},
-	{0x0023e2, 0x002426, PG_U_OTHER_SYMBOL},
+	{0x0023e2, 0x002429, PG_U_OTHER_SYMBOL},
 	{0x002440, 0x00244a, PG_U_OTHER_SYMBOL},
 	{0x002460, 0x00249b, PG_U_OTHER_NUMBER},
 	{0x00249c, 0x0024e9, PG_U_OTHER_SYMBOL},
@@ -2719,7 +2722,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x003192, 0x003195, PG_U_OTHER_NUMBER},
 	{0x003196, 0x00319f, PG_U_OTHER_SYMBOL},
 	{0x0031a0, 0x0031bf, PG_U_OTHER_LETTER},
-	{0x0031c0, 0x0031e3, PG_U_OTHER_SYMBOL},
+	{0x0031c0, 0x0031e5, PG_U_OTHER_SYMBOL},
 	{0x0031ef, 0x0031ef, PG_U_OTHER_SYMBOL},
 	{0x0031f0, 0x0031ff, PG_U_OTHER_LETTER},
 	{0x003200, 0x00321e, PG_U_OTHER_SYMBOL},
@@ -2983,6 +2986,8 @@ static const pg_category_range unicode_categories[3302] =
 	{0x00a7c8, 0x00a7c8, PG_U_LOWERCASE_LETTER},
 	{0x00a7c9, 0x00a7c9, PG_U_UPPERCASE_LETTER},
 	{0x00a7ca, 0x00a7ca, PG_U_LOWERCASE_LETTER},
+	{0x00a7cb, 0x00a7cc, PG_U_UPPERCASE_LETTER},
+	{0x00a7cd, 0x00a7cd, PG_U_LOWERCASE_LETTER},
 	{0x00a7d0, 0x00a7d0, PG_U_UPPERCASE_LETTER},
 	{0x00a7d1, 0x00a7d1, PG_U_LOWERCASE_LETTER},
 	{0x00a7d3, 0x00a7d3, PG_U_LOWERCASE_LETTER},
@@ -2991,6 +2996,9 @@ static const pg_category_range unicode_categories[3302] =
 	{0x00a7d7, 0x00a7d7, PG_U_LOWERCASE_LETTER},
 	{0x00a7d8, 0x00a7d8, PG_U_UPPERCASE_LETTER},
 	{0x00a7d9, 0x00a7d9, PG_U_LOWERCASE_LETTER},
+	{0x00a7da, 0x00a7da, PG_U_UPPERCASE_LETTER},
+	{0x00a7db, 0x00a7db, PG_U_LOWERCASE_LETTER},
+	{0x00a7dc, 0x00a7dc, PG_U_UPPERCASE_LETTER},
 	{0x00a7f2, 0x00a7f4, PG_U_MODIFIER_LETTER},
 	{0x00a7f5, 0x00a7f5, PG_U_UPPERCASE_LETTER},
 	{0x00a7f6, 0x00a7f6, PG_U_LOWERCASE_LETTER},
@@ -3306,6 +3314,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x0105a3, 0x0105b1, PG_U_LOWERCASE_LETTER},
 	{0x0105b3, 0x0105b9, PG_U_LOWERCASE_LETTER},
 	{0x0105bb, 0x0105bc, PG_U_LOWERCASE_LETTER},
+	{0x0105c0, 0x0105f3, PG_U_OTHER_LETTER},
 	{0x010600, 0x010736, PG_U_OTHER_LETTER},
 	{0x010740, 0x010755, PG_U_OTHER_LETTER},
 	{0x010760, 0x010767, PG_U_OTHER_LETTER},
@@ -3376,12 +3385,23 @@ static const pg_category_range unicode_categories[3302] =
 	{0x010d00, 0x010d23, PG_U_OTHER_LETTER},
 	{0x010d24, 0x010d27, PG_U_NONSPACING_MARK},
 	{0x010d30, 0x010d39, PG_U_DECIMAL_NUMBER},
+	{0x010d40, 0x010d49, PG_U_DECIMAL_NUMBER},
+	{0x010d4a, 0x010d4d, PG_U_OTHER_LETTER},
+	{0x010d4e, 0x010d4e, PG_U_MODIFIER_LETTER},
+	{0x010d4f, 0x010d4f, PG_U_OTHER_LETTER},
+	{0x010d50, 0x010d65, PG_U_UPPERCASE_LETTER},
+	{0x010d69, 0x010d6d, PG_U_NONSPACING_MARK},
+	{0x010d6e, 0x010d6e, PG_U_DASH_PUNCTUATION},
+	{0x010d6f, 0x010d6f, PG_U_MODIFIER_LETTER},
+	{0x010d70, 0x010d85, PG_U_LOWERCASE_LETTER},
+	{0x010d8e, 0x010d8f, PG_U_MATH_SYMBOL},
 	{0x010e60, 0x010e7e, PG_U_OTHER_NUMBER},
 	{0x010e80, 0x010ea9, PG_U_OTHER_LETTER},
 	{0x010eab, 0x010eac, PG_U_NONSPACING_MARK},
 	{0x010ead, 0x010ead, PG_U_DASH_PUNCTUATION},
 	{0x010eb0, 0x010eb1, PG_U_OTHER_LETTER},
-	{0x010efd, 0x010eff, PG_U_NONSPACING_MARK},
+	{0x010ec2, 0x010ec4, PG_U_OTHER_LETTER},
+	{0x010efc, 0x010eff, PG_U_NONSPACING_MARK},
 	{0x010f00, 0x010f1c, PG_U_OTHER_LETTER},
 	{0x010f1d, 0x010f26, PG_U_OTHER_NUMBER},
 	{0x010f27, 0x010f27, PG_U_OTHER_LETTER},
@@ -3497,6 +3517,26 @@ static const pg_category_range unicode_categories[3302] =
 	{0x011362, 0x011363, PG_U_SPACING_MARK},
 	{0x011366, 0x01136c, PG_U_NONSPACING_MARK},
 	{0x011370, 0x011374, PG_U_NONSPACING_MARK},
+	{0x011380, 0x011389, PG_U_OTHER_LETTER},
+	{0x01138b, 0x01138b, PG_U_OTHER_LETTER},
+	{0x01138e, 0x01138e, PG_U_OTHER_LETTER},
+	{0x011390, 0x0113b5, PG_U_OTHER_LETTER},
+	{0x0113b7, 0x0113b7, PG_U_OTHER_LETTER},
+	{0x0113b8, 0x0113ba, PG_U_SPACING_MARK},
+	{0x0113bb, 0x0113c0, PG_U_NONSPACING_MARK},
+	{0x0113c2, 0x0113c2, PG_U_SPACING_MARK},
+	{0x0113c5, 0x0113c5, PG_U_SPACING_MARK},
+	{0x0113c7, 0x0113ca, PG_U_SPACING_MARK},
+	{0x0113cc, 0x0113cd, PG_U_SPACING_MARK},
+	{0x0113ce, 0x0113ce, PG_U_NONSPACING_MARK},
+	{0x0113cf, 0x0113cf, PG_U_SPACING_MARK},
+	{0x0113d0, 0x0113d0, PG_U_NONSPACING_MARK},
+	{0x0113d1, 0x0113d1, PG_U_OTHER_LETTER},
+	{0x0113d2, 0x0113d2, PG_U_NONSPACING_MARK},
+	{0x0113d3, 0x0113d3, PG_U_OTHER_LETTER},
+	{0x0113d4, 0x0113d5, PG_U_OTHER_PUNCTUATION},
+	{0x0113d7, 0x0113d8, PG_U_OTHER_PUNCTUATION},
+	{0x0113e1, 0x0113e2, PG_U_NONSPACING_MARK},
 	{0x011400, 0x011434, PG_U_OTHER_LETTER},
 	{0x011435, 0x011437, PG_U_SPACING_MARK},
 	{0x011438, 0x01143f, PG_U_NONSPACING_MARK},
@@ -3556,8 +3596,11 @@ static const pg_category_range unicode_categories[3302] =
 	{0x0116b8, 0x0116b8, PG_U_OTHER_LETTER},
 	{0x0116b9, 0x0116b9, PG_U_OTHER_PUNCTUATION},
 	{0x0116c0, 0x0116c9, PG_U_DECIMAL_NUMBER},
+	{0x0116d0, 0x0116e3, PG_U_DECIMAL_NUMBER},
 	{0x011700, 0x01171a, PG_U_OTHER_LETTER},
-	{0x01171d, 0x01171f, PG_U_NONSPACING_MARK},
+	{0x01171d, 0x01171d, PG_U_NONSPACING_MARK},
+	{0x01171e, 0x01171e, PG_U_SPACING_MARK},
+	{0x01171f, 0x01171f, PG_U_NONSPACING_MARK},
 	{0x011720, 0x011721, PG_U_SPACING_MARK},
 	{0x011722, 0x011725, PG_U_NONSPACING_MARK},
 	{0x011726, 0x011726, PG_U_SPACING_MARK},
@@ -3627,6 +3670,9 @@ static const pg_category_range unicode_categories[3302] =
 	{0x011a9e, 0x011aa2, PG_U_OTHER_PUNCTUATION},
 	{0x011ab0, 0x011af8, PG_U_OTHER_LETTER},
 	{0x011b00, 0x011b09, PG_U_OTHER_PUNCTUATION},
+	{0x011bc0, 0x011be0, PG_U_OTHER_LETTER},
+	{0x011be1, 0x011be1, PG_U_OTHER_PUNCTUATION},
+	{0x011bf0, 0x011bf9, PG_U_DECIMAL_NUMBER},
 	{0x011c00, 0x011c08, PG_U_OTHER_LETTER},
 	{0x011c0a, 0x011c2e, PG_U_OTHER_LETTER},
 	{0x011c2f, 0x011c2f, PG_U_SPACING_MARK},
@@ -3685,6 +3731,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x011f42, 0x011f42, PG_U_NONSPACING_MARK},
 	{0x011f43, 0x011f4f, PG_U_OTHER_PUNCTUATION},
 	{0x011f50, 0x011f59, PG_U_DECIMAL_NUMBER},
+	{0x011f5a, 0x011f5a, PG_U_NONSPACING_MARK},
 	{0x011fb0, 0x011fb0, PG_U_OTHER_LETTER},
 	{0x011fc0, 0x011fd4, PG_U_OTHER_NUMBER},
 	{0x011fd5, 0x011fdc, PG_U_OTHER_SYMBOL},
@@ -3702,7 +3749,13 @@ static const pg_category_range unicode_categories[3302] =
 	{0x013440, 0x013440, PG_U_NONSPACING_MARK},
 	{0x013441, 0x013446, PG_U_OTHER_LETTER},
 	{0x013447, 0x013455, PG_U_NONSPACING_MARK},
+	{0x013460, 0x0143fa, PG_U_OTHER_LETTER},
 	{0x014400, 0x014646, PG_U_OTHER_LETTER},
+	{0x016100, 0x01611d, PG_U_OTHER_LETTER},
+	{0x01611e, 0x016129, PG_U_NONSPACING_MARK},
+	{0x01612a, 0x01612c, PG_U_SPACING_MARK},
+	{0x01612d, 0x01612f, PG_U_NONSPACING_MARK},
+	{0x016130, 0x016139, PG_U_DECIMAL_NUMBER},
 	{0x016800, 0x016a38, PG_U_OTHER_LETTER},
 	{0x016a40, 0x016a5e, PG_U_OTHER_LETTER},
 	{0x016a60, 0x016a69, PG_U_DECIMAL_NUMBER},
@@ -3723,6 +3776,11 @@ static const pg_category_range unicode_categories[3302] =
 	{0x016b5b, 0x016b61, PG_U_OTHER_NUMBER},
 	{0x016b63, 0x016b77, PG_U_OTHER_LETTER},
 	{0x016b7d, 0x016b8f, PG_U_OTHER_LETTER},
+	{0x016d40, 0x016d42, PG_U_MODIFIER_LETTER},
+	{0x016d43, 0x016d6a, PG_U_OTHER_LETTER},
+	{0x016d6b, 0x016d6c, PG_U_MODIFIER_LETTER},
+	{0x016d6d, 0x016d6f, PG_U_OTHER_PUNCTUATION},
+	{0x016d70, 0x016d79, PG_U_DECIMAL_NUMBER},
 	{0x016e40, 0x016e5f, PG_U_UPPERCASE_LETTER},
 	{0x016e60, 0x016e7f, PG_U_LOWERCASE_LETTER},
 	{0x016e80, 0x016e96, PG_U_OTHER_NUMBER},
@@ -3740,7 +3798,7 @@ static const pg_category_range unicode_categories[3302] =
 	{0x016ff0, 0x016ff1, PG_U_SPACING_MARK},
 	{0x017000, 0x0187f7, PG_U_OTHER_LETTER},
 	{0x018800, 0x018cd5, PG_U_OTHER_LETTER},
-	{0x018d00, 0x018d08, PG_U_OTHER_LETTER},
+	{0x018cff, 0x018d08, PG_U_OTHER_LETTER},
 	{0x01aff0, 0x01aff3, PG_U_MODIFIER_LETTER},
 	{0x01aff5, 0x01affb, PG_U_MODIFIER_LETTER},
 	{0x01affd, 0x01affe, PG_U_MODIFIER_LETTER},
@@ -3758,6 +3816,9 @@ static const pg_category_range unicode_categories[3302] =
 	{0x01bc9d, 0x01bc9e, PG_U_NONSPACING_MARK},
 	{0x01bc9f, 0x01bc9f, PG_U_OTHER_PUNCTUATION},
 	{0x01bca0, 0x01bca3, PG_U_FORMAT},
+	{0x01cc00, 0x01ccef, PG_U_OTHER_SYMBOL},
+	{0x01ccf0, 0x01ccf9, PG_U_DECIMAL_NUMBER},
+	{0x01cd00, 0x01ceb3, PG_U_OTHER_SYMBOL},
 	{0x01cf00, 0x01cf2d, PG_U_NONSPACING_MARK},
 	{0x01cf30, 0x01cf46, PG_U_NONSPACING_MARK},
 	{0x01cf50, 0x01cfc3, PG_U_OTHER_SYMBOL},
@@ -3891,6 +3952,11 @@ static const pg_category_range unicode_categories[3302] =
 	{0x01e4eb, 0x01e4eb, PG_U_MODIFIER_LETTER},
 	{0x01e4ec, 0x01e4ef, PG_U_NONSPACING_MARK},
 	{0x01e4f0, 0x01e4f9, PG_U_DECIMAL_NUMBER},
+	{0x01e5d0, 0x01e5ed, PG_U_OTHER_LETTER},
+	{0x01e5ee, 0x01e5ef, PG_U_NONSPACING_MARK},
+	{0x01e5f0, 0x01e5f0, PG_U_OTHER_LETTER},
+	{0x01e5f1, 0x01e5fa, PG_U_DECIMAL_NUMBER},
+	{0x01e5ff, 0x01e5ff, PG_U_OTHER_PUNCTUATION},
 	{0x01e7e0, 0x01e7e6, PG_U_OTHER_LETTER},
 	{0x01e7e8, 0x01e7eb, PG_U_OTHER_LETTER},
 	{0x01e7ed, 0x01e7ee, PG_U_OTHER_LETTER},
@@ -3973,18 +4039,18 @@ static const pg_category_range unicode_categories[3302] =
 	{0x01f850, 0x01f859, PG_U_OTHER_SYMBOL},
 	{0x01f860, 0x01f887, PG_U_OTHER_SYMBOL},
 	{0x01f890, 0x01f8ad, PG_U_OTHER_SYMBOL},
-	{0x01f8b0, 0x01f8b1, PG_U_OTHER_SYMBOL},
+	{0x01f8b0, 0x01f8bb, PG_U_OTHER_SYMBOL},
+	{0x01f8c0, 0x01f8c1, PG_U_OTHER_SYMBOL},
 	{0x01f900, 0x01fa53, PG_U_OTHER_SYMBOL},
 	{0x01fa60, 0x01fa6d, PG_U_OTHER_SYMBOL},
 	{0x01fa70, 0x01fa7c, PG_U_OTHER_SYMBOL},
-	{0x01fa80, 0x01fa88, PG_U_OTHER_SYMBOL},
-	{0x01fa90, 0x01fabd, PG_U_OTHER_SYMBOL},
-	{0x01fabf, 0x01fac5, PG_U_OTHER_SYMBOL},
-	{0x01face, 0x01fadb, PG_U_OTHER_SYMBOL},
-	{0x01fae0, 0x01fae8, PG_U_OTHER_SYMBOL},
+	{0x01fa80, 0x01fa89, PG_U_OTHER_SYMBOL},
+	{0x01fa8f, 0x01fac6, PG_U_OTHER_SYMBOL},
+	{0x01face, 0x01fadc, PG_U_OTHER_SYMBOL},
+	{0x01fadf, 0x01fae9, PG_U_OTHER_SYMBOL},
 	{0x01faf0, 0x01faf8, PG_U_OTHER_SYMBOL},
 	{0x01fb00, 0x01fb92, PG_U_OTHER_SYMBOL},
-	{0x01fb94, 0x01fbca, PG_U_OTHER_SYMBOL},
+	{0x01fb94, 0x01fbef, PG_U_OTHER_SYMBOL},
 	{0x01fbf0, 0x01fbf9, PG_U_DECIMAL_NUMBER},
 	{0x020000, 0x02a6df, PG_U_OTHER_LETTER},
 	{0x02a700, 0x02b739, PG_U_OTHER_LETTER},
@@ -4003,7 +4069,7 @@ static const pg_category_range unicode_categories[3302] =
 };
 
 /* table of Unicode codepoint ranges of Alphabetic characters */
-static const pg_unicode_range unicode_alphabetic[1141] =
+static const pg_unicode_range unicode_alphabetic[1179] =
 {
 	{0x000041, 0x00005a},
 	{0x000061, 0x00007a},
@@ -4025,6 +4091,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x0002ec, 0x0002ec},
 	{0x0002ee, 0x0002ee},
 	{0x000345, 0x000345},
+	{0x000363, 0x00036f},
 	{0x000370, 0x000373},
 	{0x000374, 0x000374},
 	{0x000376, 0x000377},
@@ -4088,6 +4155,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x000860, 0x00086a},
 	{0x000870, 0x000887},
 	{0x000889, 0x00088e},
+	{0x000897, 0x000897},
 	{0x0008a0, 0x0008c8},
 	{0x0008c9, 0x0008c9},
 	{0x0008d4, 0x0008df},
@@ -4455,7 +4523,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x001c4d, 0x001c4f},
 	{0x001c5a, 0x001c77},
 	{0x001c78, 0x001c7d},
-	{0x001c80, 0x001c88},
+	{0x001c80, 0x001c8a},
 	{0x001c90, 0x001cba},
 	{0x001cbd, 0x001cbf},
 	{0x001ce9, 0x001cec},
@@ -4468,7 +4536,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x001d78, 0x001d78},
 	{0x001d79, 0x001d9a},
 	{0x001d9b, 0x001dbf},
-	{0x001de7, 0x001df4},
+	{0x001dd3, 0x001df4},
 	{0x001e00, 0x001f15},
 	{0x001f18, 0x001f1d},
 	{0x001f20, 0x001f45},
@@ -4575,10 +4643,10 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x00a788, 0x00a788},
 	{0x00a78b, 0x00a78e},
 	{0x00a78f, 0x00a78f},
-	{0x00a790, 0x00a7ca},
+	{0x00a790, 0x00a7cd},
 	{0x00a7d0, 0x00a7d1},
 	{0x00a7d3, 0x00a7d3},
-	{0x00a7d5, 0x00a7d9},
+	{0x00a7d5, 0x00a7dc},
 	{0x00a7f2, 0x00a7f4},
 	{0x00a7f5, 0x00a7f6},
 	{0x00a7f7, 0x00a7f7},
@@ -4743,6 +4811,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x0105a3, 0x0105b1},
 	{0x0105b3, 0x0105b9},
 	{0x0105bb, 0x0105bc},
+	{0x0105c0, 0x0105f3},
 	{0x010600, 0x010736},
 	{0x010740, 0x010755},
 	{0x010760, 0x010767},
@@ -4783,9 +4852,18 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x010cc0, 0x010cf2},
 	{0x010d00, 0x010d23},
 	{0x010d24, 0x010d27},
+	{0x010d4a, 0x010d4d},
+	{0x010d4e, 0x010d4e},
+	{0x010d4f, 0x010d4f},
+	{0x010d50, 0x010d65},
+	{0x010d69, 0x010d69},
+	{0x010d6f, 0x010d6f},
+	{0x010d70, 0x010d85},
 	{0x010e80, 0x010ea9},
 	{0x010eab, 0x010eac},
 	{0x010eb0, 0x010eb1},
+	{0x010ec2, 0x010ec4},
+	{0x010efc, 0x010efc},
 	{0x010f00, 0x010f1c},
 	{0x010f27, 0x010f27},
 	{0x010f30, 0x010f45},
@@ -4866,6 +4944,19 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x011357, 0x011357},
 	{0x01135d, 0x011361},
 	{0x011362, 0x011363},
+	{0x011380, 0x011389},
+	{0x01138b, 0x01138b},
+	{0x01138e, 0x01138e},
+	{0x011390, 0x0113b5},
+	{0x0113b7, 0x0113b7},
+	{0x0113b8, 0x0113ba},
+	{0x0113bb, 0x0113c0},
+	{0x0113c2, 0x0113c2},
+	{0x0113c5, 0x0113c5},
+	{0x0113c7, 0x0113ca},
+	{0x0113cc, 0x0113cd},
+	{0x0113d1, 0x0113d1},
+	{0x0113d3, 0x0113d3},
 	{0x011400, 0x011434},
 	{0x011435, 0x011437},
 	{0x011438, 0x01143f},
@@ -4908,7 +4999,9 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x0116b0, 0x0116b5},
 	{0x0116b8, 0x0116b8},
 	{0x011700, 0x01171a},
-	{0x01171d, 0x01171f},
+	{0x01171d, 0x01171d},
+	{0x01171e, 0x01171e},
+	{0x01171f, 0x01171f},
 	{0x011720, 0x011721},
 	{0x011722, 0x011725},
 	{0x011726, 0x011726},
@@ -4956,6 +5049,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x011a97, 0x011a97},
 	{0x011a9d, 0x011a9d},
 	{0x011ab0, 0x011af8},
+	{0x011bc0, 0x011be0},
 	{0x011c00, 0x011c08},
 	{0x011c0a, 0x011c2e},
 	{0x011c2f, 0x011c2f},
@@ -5009,7 +5103,12 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x012f90, 0x012ff0},
 	{0x013000, 0x01342f},
 	{0x013441, 0x013446},
+	{0x013460, 0x0143fa},
 	{0x014400, 0x014646},
+	{0x016100, 0x01611d},
+	{0x01611e, 0x016129},
+	{0x01612a, 0x01612c},
+	{0x01612d, 0x01612e},
 	{0x016800, 0x016a38},
 	{0x016a40, 0x016a5e},
 	{0x016a70, 0x016abe},
@@ -5018,6 +5117,9 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x016b40, 0x016b43},
 	{0x016b63, 0x016b77},
 	{0x016b7d, 0x016b8f},
+	{0x016d40, 0x016d42},
+	{0x016d43, 0x016d6a},
+	{0x016d6b, 0x016d6c},
 	{0x016e40, 0x016e7f},
 	{0x016f00, 0x016f4a},
 	{0x016f4f, 0x016f4f},
@@ -5030,7 +5132,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x016ff0, 0x016ff1},
 	{0x017000, 0x0187f7},
 	{0x018800, 0x018cd5},
-	{0x018d00, 0x018d08},
+	{0x018cff, 0x018d08},
 	{0x01aff0, 0x01aff3},
 	{0x01aff5, 0x01affb},
 	{0x01affd, 0x01affe},
@@ -5093,6 +5195,8 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 	{0x01e2c0, 0x01e2eb},
 	{0x01e4d0, 0x01e4ea},
 	{0x01e4eb, 0x01e4eb},
+	{0x01e5d0, 0x01e5ed},
+	{0x01e5f0, 0x01e5f0},
 	{0x01e7e0, 0x01e7e6},
 	{0x01e7e8, 0x01e7eb},
 	{0x01e7ed, 0x01e7ee},
@@ -5149,7 +5253,7 @@ static const pg_unicode_range unicode_alphabetic[1141] =
 };
 
 /* table of Unicode codepoint ranges of Lowercase characters */
-static const pg_unicode_range unicode_lowercase[686] =
+static const pg_unicode_range unicode_lowercase[690] =
 {
 	{0x000061, 0x00007a},
 	{0x0000aa, 0x0000aa},
@@ -5433,6 +5537,7 @@ static const pg_unicode_range unicode_lowercase[686] =
 	{0x0010fd, 0x0010ff},
 	{0x0013f8, 0x0013fd},
 	{0x001c80, 0x001c88},
+	{0x001c8a, 0x001c8a},
 	{0x001d00, 0x001d2b},
 	{0x001d2c, 0x001d6a},
 	{0x001d6b, 0x001d77},
@@ -5774,11 +5879,13 @@ static const pg_unicode_range unicode_lowercase[686] =
 	{0x00a7c3, 0x00a7c3},
 	{0x00a7c8, 0x00a7c8},
 	{0x00a7ca, 0x00a7ca},
+	{0x00a7cd, 0x00a7cd},
 	{0x00a7d1, 0x00a7d1},
 	{0x00a7d3, 0x00a7d3},
 	{0x00a7d5, 0x00a7d5},
 	{0x00a7d7, 0x00a7d7},
 	{0x00a7d9, 0x00a7d9},
+	{0x00a7db, 0x00a7db},
 	{0x00a7f2, 0x00a7f4},
 	{0x00a7f6, 0x00a7f6},
 	{0x00a7f8, 0x00a7f9},
@@ -5802,6 +5909,7 @@ static const pg_unicode_range unicode_lowercase[686] =
 	{0x010787, 0x0107b0},
 	{0x0107b2, 0x0107ba},
 	{0x010cc0, 0x010cf2},
+	{0x010d70, 0x010d85},
 	{0x0118c0, 0x0118df},
 	{0x016e60, 0x016e7f},
 	{0x01d41a, 0x01d433},
@@ -5840,7 +5948,7 @@ static const pg_unicode_range unicode_lowercase[686] =
 };
 
 /* table of Unicode codepoint ranges of Uppercase characters */
-static const pg_unicode_range unicode_uppercase[651] =
+static const pg_unicode_range unicode_uppercase[656] =
 {
 	{0x000041, 0x00005a},
 	{0x0000c0, 0x0000d6},
@@ -6118,6 +6226,7 @@ static const pg_unicode_range unicode_uppercase[651] =
 	{0x0010c7, 0x0010c7},
 	{0x0010cd, 0x0010cd},
 	{0x0013a0, 0x0013f5},
+	{0x001c89, 0x001c89},
 	{0x001c90, 0x001cba},
 	{0x001cbd, 0x001cbf},
 	{0x001e00, 0x001e00},
@@ -6444,9 +6553,12 @@ static const pg_unicode_range unicode_uppercase[651] =
 	{0x00a7c2, 0x00a7c2},
 	{0x00a7c4, 0x00a7c7},
 	{0x00a7c9, 0x00a7c9},
+	{0x00a7cb, 0x00a7cc},
 	{0x00a7d0, 0x00a7d0},
 	{0x00a7d6, 0x00a7d6},
 	{0x00a7d8, 0x00a7d8},
+	{0x00a7da, 0x00a7da},
+	{0x00a7dc, 0x00a7dc},
 	{0x00a7f5, 0x00a7f5},
 	{0x00ff21, 0x00ff3a},
 	{0x010400, 0x010427},
@@ -6456,6 +6568,7 @@ static const pg_unicode_range unicode_uppercase[651] =
 	{0x01058c, 0x010592},
 	{0x010594, 0x010595},
 	{0x010c80, 0x010cb2},
+	{0x010d50, 0x010d65},
 	{0x0118a0, 0x0118bf},
 	{0x016e40, 0x016e5f},
 	{0x01d400, 0x01d419},
@@ -6496,7 +6609,7 @@ static const pg_unicode_range unicode_uppercase[651] =
 };
 
 /* table of Unicode codepoint ranges of Case_Ignorable characters */
-static const pg_unicode_range unicode_case_ignorable[491] =
+static const pg_unicode_range unicode_case_ignorable[506] =
 {
 	{0x000027, 0x000027},
 	{0x00002e, 0x00002e},
@@ -6565,7 +6678,7 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x000859, 0x00085b},
 	{0x000888, 0x000888},
 	{0x000890, 0x000891},
-	{0x000898, 0x00089f},
+	{0x000897, 0x00089f},
 	{0x0008c9, 0x0008c9},
 	{0x0008ca, 0x0008e1},
 	{0x0008e2, 0x0008e2},
@@ -6846,8 +6959,11 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x010a3f, 0x010a3f},
 	{0x010ae5, 0x010ae6},
 	{0x010d24, 0x010d27},
+	{0x010d4e, 0x010d4e},
+	{0x010d69, 0x010d6d},
+	{0x010d6f, 0x010d6f},
 	{0x010eab, 0x010eac},
-	{0x010efd, 0x010eff},
+	{0x010efc, 0x010eff},
 	{0x010f46, 0x010f50},
 	{0x010f82, 0x010f85},
 	{0x011001, 0x011001},
@@ -6880,6 +6996,11 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x011340, 0x011340},
 	{0x011366, 0x01136c},
 	{0x011370, 0x011374},
+	{0x0113bb, 0x0113c0},
+	{0x0113ce, 0x0113ce},
+	{0x0113d0, 0x0113d0},
+	{0x0113d2, 0x0113d2},
+	{0x0113e1, 0x0113e2},
 	{0x011438, 0x01143f},
 	{0x011442, 0x011444},
 	{0x011446, 0x011446},
@@ -6899,7 +7020,8 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x0116ad, 0x0116ad},
 	{0x0116b0, 0x0116b5},
 	{0x0116b7, 0x0116b7},
-	{0x01171d, 0x01171f},
+	{0x01171d, 0x01171d},
+	{0x01171f, 0x01171f},
 	{0x011722, 0x011725},
 	{0x011727, 0x01172b},
 	{0x01182f, 0x011837},
@@ -6938,12 +7060,17 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x011f36, 0x011f3a},
 	{0x011f40, 0x011f40},
 	{0x011f42, 0x011f42},
+	{0x011f5a, 0x011f5a},
 	{0x013430, 0x01343f},
 	{0x013440, 0x013440},
 	{0x013447, 0x013455},
+	{0x01611e, 0x016129},
+	{0x01612d, 0x01612f},
 	{0x016af0, 0x016af4},
 	{0x016b30, 0x016b36},
 	{0x016b40, 0x016b43},
+	{0x016d40, 0x016d42},
+	{0x016d6b, 0x016d6c},
 	{0x016f4f, 0x016f4f},
 	{0x016f8f, 0x016f92},
 	{0x016f93, 0x016f9f},
@@ -6982,6 +7109,7 @@ static const pg_unicode_range unicode_case_ignorable[491] =
 	{0x01e2ec, 0x01e2ef},
 	{0x01e4eb, 0x01e4eb},
 	{0x01e4ec, 0x01e4ef},
+	{0x01e5ee, 0x01e5ef},
 	{0x01e8d0, 0x01e8d6},
 	{0x01e944, 0x01e94a},
 	{0x01e94b, 0x01e94b},
diff --git a/src/include/common/unicode_east_asian_fw_table.h b/src/include/common/unicode_east_asian_fw_table.h
index dcd1f136eb7..db8bd0ad897 100644
--- a/src/include/common/unicode_east_asian_fw_table.h
+++ b/src/include/common/unicode_east_asian_fw_table.h
@@ -9,8 +9,10 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x23F3, 0x23F3},
 	{0x25FD, 0x25FE},
 	{0x2614, 0x2615},
+	{0x2630, 0x2637},
 	{0x2648, 0x2653},
 	{0x267F, 0x267F},
+	{0x268A, 0x268F},
 	{0x2693, 0x2693},
 	{0x26A1, 0x26A1},
 	{0x26AA, 0x26AB},
@@ -44,11 +46,10 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x3099, 0x30FF},
 	{0x3105, 0x312F},
 	{0x3131, 0x318E},
-	{0x3190, 0x31E3},
+	{0x3190, 0x31E5},
 	{0x31EF, 0x321E},
 	{0x3220, 0x3247},
-	{0x3250, 0x4DBF},
-	{0x4E00, 0xA48C},
+	{0x3250, 0xA48C},
 	{0xA490, 0xA4C6},
 	{0xA960, 0xA97C},
 	{0xAC00, 0xD7A3},
@@ -63,7 +64,7 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x16FF0, 0x16FF1},
 	{0x17000, 0x187F7},
 	{0x18800, 0x18CD5},
-	{0x18D00, 0x18D08},
+	{0x18CFF, 0x18D08},
 	{0x1AFF0, 0x1AFF3},
 	{0x1AFF5, 0x1AFFB},
 	{0x1AFFD, 0x1AFFE},
@@ -73,6 +74,8 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x1B155, 0x1B155},
 	{0x1B164, 0x1B167},
 	{0x1B170, 0x1B2FB},
+	{0x1D300, 0x1D356},
+	{0x1D360, 0x1D376},
 	{0x1F004, 0x1F004},
 	{0x1F0CF, 0x1F0CF},
 	{0x1F18E, 0x1F18E},
@@ -113,11 +116,10 @@ static const struct mbinterval east_asian_fw[] = {
 	{0x1F93C, 0x1F945},
 	{0x1F947, 0x1F9FF},
 	{0x1FA70, 0x1FA7C},
-	{0x1FA80, 0x1FA88},
-	{0x1FA90, 0x1FABD},
-	{0x1FABF, 0x1FAC5},
-	{0x1FACE, 0x1FADB},
-	{0x1FAE0, 0x1FAE8},
+	{0x1FA80, 0x1FA89},
+	{0x1FA8F, 0x1FAC6},
+	{0x1FACE, 0x1FADC},
+	{0x1FADF, 0x1FAE9},
 	{0x1FAF0, 0x1FAF8},
 	{0x20000, 0x2FFFD},
 	{0x30000, 0x3FFFD},
diff --git a/src/include/common/unicode_nonspacing_table.h b/src/include/common/unicode_nonspacing_table.h
index 8d00e127fcd..d67f5b3f281 100644
--- a/src/include/common/unicode_nonspacing_table.h
+++ b/src/include/common/unicode_nonspacing_table.h
@@ -210,8 +210,9 @@ static const struct mbinterval nonspacing[] = {
 	{0x10A38, 0x10A3F},
 	{0x10AE5, 0x10AE6},
 	{0x10D24, 0x10D27},
+	{0x10D69, 0x10D6D},
 	{0x10EAB, 0x10EAC},
-	{0x10EFD, 0x10EFF},
+	{0x10EFC, 0x10EFF},
 	{0x10F46, 0x10F50},
 	{0x10F82, 0x10F85},
 	{0x11001, 0x11001},
@@ -242,6 +243,11 @@ static const struct mbinterval nonspacing[] = {
 	{0x1133B, 0x1133C},
 	{0x11340, 0x11340},
 	{0x11366, 0x11374},
+	{0x113BB, 0x113C0},
+	{0x113CE, 0x113CE},
+	{0x113D0, 0x113D0},
+	{0x113D2, 0x113D2},
+	{0x113E1, 0x113E2},
 	{0x11438, 0x1143F},
 	{0x11442, 0x11444},
 	{0x11446, 0x11446},
@@ -261,7 +267,8 @@ static const struct mbinterval nonspacing[] = {
 	{0x116AD, 0x116AD},
 	{0x116B0, 0x116B5},
 	{0x116B7, 0x116B7},
-	{0x1171D, 0x1171F},
+	{0x1171D, 0x1171D},
+	{0x1171F, 0x1171F},
 	{0x11722, 0x11725},
 	{0x11727, 0x1172B},
 	{0x1182F, 0x11837},
@@ -295,15 +302,19 @@ static const struct mbinterval nonspacing[] = {
 	{0x11F36, 0x11F3A},
 	{0x11F40, 0x11F40},
 	{0x11F42, 0x11F42},
+	{0x11F5A, 0x11F5A},
 	{0x13430, 0x13440},
 	{0x13447, 0x13455},
+	{0x1611E, 0x16129},
+	{0x1612D, 0x1612F},
 	{0x16AF0, 0x16AF4},
 	{0x16B30, 0x16B36},
 	{0x16F4F, 0x16F4F},
 	{0x16F8F, 0x16F92},
 	{0x16FE4, 0x16FE4},
 	{0x1BC9D, 0x1BC9E},
-	{0x1BCA0, 0x1CF46},
+	{0x1BCA0, 0x1BCA3},
+	{0x1CF00, 0x1CF46},
 	{0x1D167, 0x1D169},
 	{0x1D173, 0x1D182},
 	{0x1D185, 0x1D18B},
@@ -320,6 +331,7 @@ static const struct mbinterval nonspacing[] = {
 	{0x1E2AE, 0x1E2AE},
 	{0x1E2EC, 0x1E2EF},
 	{0x1E4EC, 0x1E4EF},
+	{0x1E5EE, 0x1E5EF},
 	{0x1E8D0, 0x1E8D6},
 	{0x1E944, 0x1E94A},
 	{0xE0001, 0xE01EF},
diff --git a/src/include/common/unicode_norm_hashfunc.h b/src/include/common/unicode_norm_hashfunc.h
index decab8f8c7d..89e04c744d9 100644
--- a/src/include/common/unicode_norm_hashfunc.h
+++ b/src/include/common/unicode_norm_hashfunc.h
@@ -41,702 +41,662 @@ typedef struct
 static int
 Decomp_hash_func(const void *key)
 {
-	static const int16 h[13551] = {
-		6102,  6103,  6104,  6105,  6106,  11163, 11164, 9247,
-		3108,  32767, 32767, 5839,  5840,  11166, 3130,  3130,
-		3130,  3130,  -1926, -1926, 9274,  9275,  9276,  9277,
-		9278,  473,   473,   6107,  0,     6110,  6111,  -1569,
-		9287,  9288,  9289,  9290,  9291,  9292,  9293,  9294,
-		9295,  11077, 11078, 11079, 11080, 9300,  9301,  9302,
-		9303,  9304,  9305,  9306,  9307,  9308,  9309,  9310,
-		9311,  9312,  9313,  9314,  9315,  9316,  9317,  9318,
-		9319,  9320,  4265,  4266,  -1834, 4268,  4269,  4270,
-		4271,  4272,  9329,  9330,  7413,  1274,  1274,  1274,
-		5264,  1274,  9337,  1301,  1301,  1301,  1301,  8982,
-		-3754, 11381, 11382, 11383, 11384, 10049, 11386, 5605,
-		5606,  5607,  5608,  5609,  5610,  5611,  5612,  465,
-		465,   5617,  5618,  5619,  5620,  5621,  5622,  5623,
-		465,   465,   465,   465,   465,   465,   465,   465,
-		465,   465,   465,   465,   465,   465,   465,   465,
-		465,   465,   465,   465,   465,   465,   465,   465,
-		465,   465,   465,   465,   465,   465,   5256,  5256,
-		-10103,5256,  465,   465,   5256,  5256,  465,   5939,
-		465,   465,   465,   465,   465,   0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     -71,   0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     -884,  -884,  -884,  -884,  -884,  -884,
-		0,     -885,  -885,  -885,  -885,  -885,  -885,  0,
-		0,     -886,  -886,  -886,  -886,  -886,  -4378, 0,
-		-888,  -888,  422,   -888,  -888,  -888,  0,     -7896,
-		-7896, -7896, 0,     0,     0,     0,     0,     1463,
-		1463,  1463,  1463,  2951,  1464,  1464,  -18469,1464,
-		1464,  1464,  1464,  1464,  1464,  1464,  1464,  1464,
-		1215,  1216,  1464,  1464,  1464,  1464,  1464,  1464,
-		1464,  1464,  0,     1465,  1465,  1465,  80,    1464,
-		1464,  1464,  7565,  1464,  1464,  1464,  1464,  1464,
-		88,    89,    90,    91,    92,    93,    94,    95,
-		96,    97,    98,    99,    100,   101,   102,   32767,
-		32767, 103,   104,   105,   106,   107,   108,   109,
-		110,   111,   32767, 112,   113,   114,   115,   116,
-		117,   32767, 118,   119,   120,   121,   122,   123,
-		124,   0,     0,     0,     126,   0,     0,     0,
-		0,     0,     0,     0,     4145,  4146,  4147,  4148,
-		4149,  4150,  4151,  4152,  4153,  4154,  0,     0,
-		0,     0,     0,     0,     4155,  4156,  4157,  4158,
-		4159,  4160,  4161,  4162,  4163,  4164,  4165,  4166,
-		4167,  4168,  4169,  4170,  4171,  4172,  4173,  4174,
-		4175,  4176,  4177,  4178,  4179,  4180,  4181,  4182,
-		4183,  4184,  4185,  4186,  4187,  4188,  4189,  179,
-		180,   32767, 32767, 4192,  4193,  4194,  4195,  4196,
-		4197,  4198,  4199,  4200,  4201,  4202,  4203,  32767,
-		4204,  4205,  4206,  4207,  4208,  4209,  4210,  4211,
-		4212,  4213,  4214,  4215,  4216,  4217,  4218,  4219,
-		4220,  4221,  4222,  32767, 4223,  4224,  4225,  4226,
-		32767, 32767, 32767, 32767, 4227,  4228,  4229,  32767,
-		-4545, -5662, -5662, -5662, -5662, -5662, -5662, -5662,
-		-5662, 4238,  4239,  -5664, -5664, -5664, -5664, -5664,
-		-5664, -5664, -5664, 4248,  4249,  4250,  4251,  4252,
-		4253,  -6935, -1879, -1879, 4222,  -1879, -1879, -1879,
-		-1879, -1879, -6935, -6935, 4265,  4266,  4267,  4268,
-		4269,  -4536, -4536, 1098,  1099,  1100,  1101,  -6579,
-		4277,  4278,  4279,  4280,  4281,  4282,  4283,  4284,
-		4285,  6067,  6068,  6069,  6070,  4290,  4291,  4292,
-		4293,  4294,  4295,  4296,  4297,  4298,  4299,  4300,
-		4301,  4302,  4303,  4304,  4305,  4306,  4307,  4308,
-		4309,  4310,  -745,  -744,  -6844, -742,  -741,  -740,
-		-739,  -738,  4319,  4320,  2403,  -3736, -3736, -3736,
-		254,   -3736, 4327,  -3709, -3709, 4330,  0,     0,
-		0,     0,     0,     0,     0,     -2997, -2997, 2705,
-		2705,  2705,  2705,  2705,  2705,  2705,  2705,  2705,
-		0,     0,     0,     0,     0,     0,     -4452, 0,
-		0,     0,     0,     0,     2716,  0,     0,     0,
-		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 1841,
-		32767, 32767, 4710,  32767, 0,     32767, 32767, 0,
+	static const int16 h[13687] = {
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 0,     32767, 32767, 32767, 32767, 0,
+		0,     0,     0,     32767, 0,     0,     32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
-		32767, 1845,  32767, 32767, 32767, 32767, 32767, 0,
-		0,     32767, 0,     0,     32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 1850,  32767, 32767, 0,
-		32767, 32767, 0,     32767, 1853,  32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 0,     32767, 0,     32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		0,     0,     284,   285,   286,   287,   288,   289,
-		290,   291,   292,   0,     0,     32767, 32767, 32767,
-		32767, 32767, 32767, 0,     0,     32767, 32767, 0,
-		0,     32767, 32767, 0,     0,     32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 567,   567,   567,   567,   -1649, -4447,
-		32767, 32767, 566,   566,   -1644, 566,   566,   32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
-		0,     -1144, 0,     32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 0,     0,
-		0,     0,     0,     304,   305,   306,   -2209, -2208,
-		309,   2223,  311,   312,   313,   314,   315,   316,
-		317,   318,   319,   320,   321,   322,   323,   324,
-		325,   326,   -550,  328,   329,   330,   331,   332,
-		333,   334,   335,   0,     0,     0,     0,     340,
-		341,   342,   343,   -534,  345,   0,     0,     0,
-		0,     -6511, 351,   352,   353,   354,   355,   356,
-		357,   358,   359,   360,   361,   362,   363,   364,
-		365,   366,   367,   368,   369,   370,   371,   372,
-		373,   374,   375,   376,   377,   378,   379,   380,
-		381,   382,   32767, 383,   384,   385,   386,   387,
-		388,   389,   390,   391,   392,   393,   394,   395,
-		396,   397,   398,   399,   400,   401,   402,   403,
-		404,   405,   406,   407,   408,   4654,  410,   4655,
-		412,   413,   414,   32767, 32767, 32767, 32767, 415,
-		32767, 32767, 32767, 32767, 32767, 416,   32767, 32767,
-		32767, -464,  32767, 32767, 32767, 32767, 32767, 418,
-		419,   420,   421,   422,   423,   424,   32767, 425,
-		32767, 426,   427,   428,   32767, 32767, 32767, 32767,
-		4656,  4657,  4658,  32767, 32767, 32767, 32767, 4659,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 429,   430,   431,
-		432,   433,   434,   435,   32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -2290, -2290, -2290,
-		-2290, -2290, 32767, -2291, -2291, -2291, -2291, -2291,
-		-2291, 2502,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 733,   733,   733,   32767, 732,
-		732,   32767, 32767, 32767, 729,   32767, 0,     0,
-		32767, 32767, 32767, 32767, -241,  -241,  32767, -242,
-		32767, 32767, 32767, -4550, 32767, 32767, 32767, 32767,
-		-249,  -1737, -1737, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -1747, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -291,  32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 4660,  4661,  32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		3982,  3982,  3982,  32767, -1149, -1148, 32767, -1147,
-		32767, 32767, 32767, -1146, 32767, 32767, 32767, 32767,
-		-1145, -1144, -1143, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, -4642, -1836, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, -1839,
-		-4651, -1838, -1838, 476,   32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 4708,  4709,  32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -4703, -1851, 32767,
-		32767, 32767, 32767, 32767, 4710,  4711,  4712,  32767,
-		32767, 32767, 32767, 32767, -1857, -4716, -1856, -4716,
-		32767, 32767, -4718, -1855, 32767, 32767, -4720, -905,
-		-4720, -4720, -4720, -4720, 32767, 32767, -894,  -893,
-		4714,  4715,  4716,  1689,  8219,  4719,  -4724, -1850,
-		-1850, 3912,  4721,  4722,  4723,  4724,  -4724, -4724,
-		-4724, -4724, 32767, 32767, -4726, -4726, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		-1149, -1396, -1395, -1394, -1393, -1392, -1391, -1390,
-		-1389, 76,    -1388, -1387, -1386, 0,     -1383, -1382,
-		32767, 32767, -1381, -1380, -1379, -1378, -1377, 0,
+		0,     0,     0,     32767, 0,     32767, 0,     32767,
+		0,     32767, 0,     32767, 0,     32767, 0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     32767, 32767,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     32767, 0,     0,     0,     0,     0,     0,
-		32767, 0,     0,     0,     0,     0,     0,     0,
-		125,   32767, 32767, 0,     127,   128,   129,   130,
-		131,   132,   32767, 32767, -4013, -4013, -4013, -4013,
-		-4013, -4013, 32767, 32767, -4015, 140,   141,   142,
-		143,   144,   145,   -4009, -4009, -4009, -4009, -4009,
-		-4009, -4009, -4009, -4009, -4009, -4009, 32767, 32767,
-		-4011, -4011, -4011, -4011, -4011, -4011, -4011, -4011,
-		-4011, -4011, -4011, -4011, -4011, -4011, -4011, -4011,
-		-4011, -4011, -4011, -4011, -4011, -4011, 0,     0,
-		-2541, 32767, 32767, 32767, 32767, 32767, 512,   513,
-		514,   515,   516,   517,   -441,  -441,  520,   521,
-		522,   523,   524,   525,   526,   527,   528,   529,
-		530,   531,   532,   533,   534,   535,   536,   537,
-		-4040, -4040, 540,   541,   542,   543,   544,   545,
-		546,   547,   548,   549,   550,   551,   552,   4728,
-		5846,  555,   556,   32767, 557,   32767, 558,   559,
-		32767, 560,   561,   32767, 562,   32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -4065, -4065, -4065, -4065,
-		7124,  2069,  2070,  -4030, 2072,  2073,  2074,  2075,
-		2076,  7133,  7134,  -4065, -4065, -4065, -4065, -4065,
-		4741,  4742,  -891,  -891,  -891,  32767, 6789,  -4066,
-		-4066, -4066, -4066, -4066, 32767, 32767, -4068, -4068,
-		-5849, -5849, -5849, -5849, -4068, -4068, -4068, -4068,
-		-4068, -4068, -4068, -4068, -4068, -4068, 5832,  5833,
-		-4070, -4070, -4070, -4070, -4070, -4070, -4070, -4070,
-		5842,  5843,  5844,  5845,  5846,  5847,  -5341, -285,
-		-285,  5816,  -285,  -285,  -285,  -285,  -285,  -5341,
-		-5341, 5859,  5860,  5861,  5862,  5863,  -2942, -2942,
-		2692,  2693,  2694,  2695,  -4985, 5871,  5872,  5873,
-		5874,  5875,  5876,  5877,  5878,  5879,  7661,  7662,
-		7663,  7664,  5884,  5885,  5886,  5887,  5888,  5889,
-		5890,  5891,  5892,  5893,  5894,  5895,  5896,  5897,
-		5898,  5899,  5900,  5901,  5902,  5903,  5904,  849,
-		850,   -5250, 852,   853,   854,   855,   856,   5913,
-		5914,  3997,  -2142, -2142, 590,   591,   592,   5918,
-		-2118, -2118, -2118, -2118, 5563,  -7173, 7962,  7963,
-		7964,  7965,  6630,  7967,  2186,  32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 4034,  32767,
-		32767, 32767, 5815,  5816,  5817,  5818,  5819,  5820,
-		5821,  32767, 5822,  5823,  5824,  5825,  5826,  5827,
-		5828,  5829,  -272,  -272,  -272,  -272,  -272,  -5328,
-		-5328, -3410, 2730,  2731,  0,     0,     0,     -5325,
-		2712,  2713,  2714,  2715,  -4965, 7772,  -3427, 32767,
-		-3428, -3428, -3428, 5378,  5379,  32767, 32767, 32767,
-		32767, 32767, -3434, -3434, -3434, -3434, -3434, -3434,
-		-3434, -3434, -3434, -5215, -5215, -5215, -5215, -3434,
-		-3434, -3434, -3434, -3434, -3434, -3434, -3434, -3434,
-		-3434, -3434, -3434, -3434, -3434, -3434, -3434, -3434,
-		-3434, -3434, -3434, -3434, 1622,  1622,  7723,  1622,
-		1622,  1622,  1622,  1622,  -3434, -3434, -1516, 4624,
-		4625,  4626,  637,   4628,  -3434, 4603,  4604,  4605,
-		4606,  -3074, 9663,  -5471, -5471, -5471, -5471, -4135,
-		618,   -4134, -4134, 32767, 32767, 621,   622,   32767,
-		623,   624,   625,   626,   32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 4039,  32767,
-		4040,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 5450,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, -4019, 32767, 32767, 4042,  -3994, -3994, -3994,
-		-3994, 3687,  -9049, 32767, 32767, 6086,  6087,  4752,
-		0,     4753,  4754,  32767, 32767, 0,     0,     32767,
-		0,     0,     0,     0,     32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 6862,
-		6863,  6864,  6865,  1810,  1811,  -4289, 1813,  1814,
-		1815,  1816,  1817,  6874,  6875,  4958,  -1181, -1181,
-		-1181, 2809,  -1181, 6882,  -1154, -1154, -1154, -1154,
-		6527,  -6209, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 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,
-		82,    32767, 32767, 11618, 11619, 11620, 5919,  5920,
-		5921,  5922,  32767, 32767, 786,   32767, 32767, 787,
-		788,   789,   32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		790,   791,   32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, -1151, -1151, -1151, -1151, -1151, -1151,
-		-1151, -1400, -1399, 32767, 32767, 32767, 32767, 32767,
-		792,   32767, 32767, 32767, -1159, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4666,
-		4667,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 665,   666,
-		667,   668,   32767, 669,   670,   671,   672,   673,
-		674,   675,   676,   677,   32767, 678,   679,   680,
-		32767, 681,   682,   683,   684,   685,   -1578, -5751,
-		-5751, -5751, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		-1193, 32767, 32767, 32767, 32767, -5986, -5986, -5986,
-		-5986, -5986, -5986, -5986, -5986, -5986, -5986, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 686,   687,   688,   32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -174,  1314,  -173,
-		-173,  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,     32767, 32767, 32767, 32767, 0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		32767, 32767, 0,     32767, 32767, 0,     0,     0,
+		0,     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,
-		689,   690,   691,   692,   693,   694,   695,   696,
-		32767, 32767, 32767, 4671,  4672,  4673,  4674,  4675,
-		4676,  4677,  4678,  4679,  4680,  4681,  32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, -1552, -1552, 32767, 32767, 32767, 32767, 32767,
-		32767, 0,     697,   533,   533,   700,   701,   702,
-		703,   704,   705,   706,   707,   708,   709,   710,
-		711,   712,   713,   714,   715,   716,   717,   4682,
-		6946,  2158,  4685,  721,   722,   723,   724,   725,
-		726,   727,   728,   729,   730,   731,   732,   733,
-		734,   735,   736,   737,   738,   739,   740,   741,
-		742,   743,   744,   745,   746,   747,   748,   749,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 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, 5923,  32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 4215,  32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 4181,  32767, 32767, -1922, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 4218,  32767, 32767,
-		32767, 32767, 2986,  32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 4219,  32767,
-		32767, 32767, 6001,  4221,  4222,  4223,  32767, 32767,
-		32767, 4224,  4225,  4226,  4227,  4228,  4229,  4230,
-		4231,  5925,  5926,  5927,  32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 1170,  32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		1,     32767, 2,     32767, 32767, 32767, 32767, 2792,
+		32767, 32767, 4,     5,     6,     7,     32767, 32767,
+		8,     9,     10,    32767, 11,    12,    13,    1734,
+		14,    -822,  -822,  17,    18,    3020,  1739,  3021,
+		3022,  3023,  1110,  24,    3024,  3025,  27,    -3019,
+		32767, 29,    30,    3026,  3027,  33,    34,    5016,
+		1754,  -4252, 36,    37,    -4254, -4254, -4254, 32767,
+		40,    41,    42,    43,    44,    45,    1912,  46,
+		47,    48,    49,    50,    51,    52,    53,    54,
+		1770,  55,    606,   57,    58,    59,    60,    1776,
+		1777,  61,    62,    63,    64,    65,    32767, 66,
+		32767, -1290, 6662,  3534,  3534,  3534,  -172,  3322,
+		-170,  -169,  -168,  -167,  3331,  1788,  0,     1790,
+		1791,  1792,  1793,  1794,  1795,  1796,  1797,  1798,
+		1799,  3354,  1801,  1802,  -964,  -964,  -964,  -964,
+		1807,  4976,  4976,  4976,  4976,  4976,  4976,  1814,
+		1815,  4974,  2192,  11244, 2194,  11245, 0,     0,
+		1605,  11251, 0,     11252, 0,     0,     3571,  3571,
+		-47,   -47,   0,     0,     -124,  -123,  -122,  -4877,
+		-4877, -119,  32767, 32767, -118,  0,     -116,  -11032,
+		-114,  -113,  -112,  32767, 32767, -887,  -110,  -109,
+		-885,  -107,  5320,  32767, 32767, -105,  -882,  5328,
+		-102,  -101,  -100,  -99,   -4221, -4221, -4221, -95,
+		-94,   -93,   -92,   -4221, -4221, -4221, -4221, 32767,
+		32767, -4223, -4223, -4223, -4223, -4223, -4223, -4223,
+		-4223, -5481, -4223, -4223, -4223, -4223, -4223, -4223,
+		-4223, -4223, -4223, -4223, -4223, -4223, -4223, -4223,
+		-5495, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 1839,  1840,  1841,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 4663,  4664,  32767,
+		32767, -4255, -4255, 32767, 0,     0,     32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		-4268, -4268, 5881,  5882,  4722,  5884,  5885,  5886,
+		5887,  32767, 5888,  5889,  5890,  5891,  5892,  5893,
+		5894,  5895,  5896,  5897,  5898,  185,   186,   -3976,
+		-3976, -3976, -3976, 6000,  6001,  6002,  6003,  6004,
+		6005,  6006,  198,   5911,  -3968, -3968, -826,  -3968,
+		-3968, -3968, -3968, -3968, 208,   209,   32767, -3967,
+		-3967, -3032, -3967, -3967, -3030, 5922,  5923,  -813,
+		5925,  5926,  219,   220,   5929,  5930,  5931,  224,
+		-4290, -4290, -4290, -4290, -4290, -4290, -4290, 5940,
+		5941,  -4292, -4292, -4292, -4292, -4292, -4292, -4292,
+		-4292, 5950,  5951,  0,     0,     0,     0,     245,
+		0,     0,     0,     0,     0,     0,     0,     253,
+		254,   255,   256,   -635,  258,   259,   260,   261,
+		262,   263,   0,     265,   266,   267,   0,     0,
+		268,   269,   32767, 32767, 32767, 32767, 32767, 32767,
+		270,   271,   272,   273,   274,   275,   276,   277,
+		278,   279,   280,   281,   282,   283,   32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 5981,  32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -901,  32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 767,   32767, 32767,
-		32767, 32767, 32767, 32767, -5005, -4757, -4757, 32767,
-		32767, 32767, -4760, -4760, 68,    68,    68,    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, 287,   32767, 32767, 32767, 58,    58,    32767,
-		57,    32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		4689,  32767, 4690,  32767, 32767, 32767, 32767, -1717,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 4691,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 6903,
-		4693,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 2763,
+		975,   32767, 32767, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     289,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     4382,  4382,  4382,  0,     7408,
+		4383,  4383,  0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		-4027, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     -1642, -1641, -1640, -1639,
+		-1638, 3694,  -1636, 3697,  3698,  3699,  0,     0,
+		-1627, 0,     0,     -1622, -1621, 0,     6198,  -1616,
+		-1615, -1614, -1613, 0,     -1610, -1609, -1608, 0,
+		0,     0,     0,     0,     0,     9558,  -10546,0,
+		6270,  6271,  6272,  6273,  6274,  6275,  -3369, 6277,
+		6545,  6279,  9583,  6281,  -1402, -1402, 6284,  6285,
+		304,   1947,  1947,  1947,  1947,  1947,  -3384, 1947,
+		-3385, -3385, -3385, 315,   316,   1944,  318,   319,
+		1942,  1942,  322,   -5875, 1940,  1940,  1940,  1940,
+		328,   1939,  1939,  1939,  332,   333,   334,   335,
+		336,   337,   -9220, 10885, 340,   -5929, -5929, -5929,
+		-5929, -5929, -5929, 3716,  -5929, -6196, -5929, -9232,
+		-5929, 1755,  1756,  -5929, -5929, 53,    -1589, -1588,
+		-1587, -1586, -1585, 3747,  -1583, 3750,  3751,  3752,
+		53,    53,    -1574, 53,    53,    -1569, -1568, 53,
+		6251,  -1563, -1562, -1561, -1560, 53,    -1557, 5101,
+		-1556, 52,    52,    52,    52,    52,    52,    9610,
+		-10494,52,    6322,  6323,  6324,  6325,  6326,  6327,
+		-3317, 6329,  6597,  6331,  9635,  6333,  -1350, -1350,
+		6336,  6337,  356,   1999,  1999,  1999,  1999,  1999,
+		0,     0,     -2173, -3888, -3337, -5616, 0,     0,
+		432,   -2164, 1985,  0,     0,     0,     1980,  0,
+		0,     0,     0,     -1319, -4683, 1975,  368,   369,
+		370,   371,   372,   0,     -9185, 0,     374,   -5895,
+		-5895, 0,     0,     0,     0,     864,   437,   -16,
+		-16,   440,   32767, 441,   442,   443,   -13,   445,
+		446,   447,   32767, 32767, 32767, 32767, 32767, 6042,
+		6043,  6044,  6045,  430,   431,   0,     2597,  -1551,
+		435,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 448,   449,   450,   32767, 451,
+		452,   32767, 32767, 32767, 453,   0,     0,     0,
+		0,     0,     -428,  0,     454,   455,   0,     456,
+		0,     0,     0,     457,   0,     0,     0,     0,
+		458,   459,   460,   0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		3733,  3734,  0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     462,   0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     463,   464,   0,     465,
+		0,     0,     0,     466,   0,     0,     0,     0,
+		467,   0,     469,   0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     5493,  0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		5530,  0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     -4339, -4339, 0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     -7353, -7353, -7353, -5439,
+		0,     0,     -7353, -4354, 0,     0,     485,   486,
+		487,   488,   489,   490,   0,     0,     491,   492,
+		493,   494,   -2541, -5542, 0,     0,     -5544, -5544,
+		-3630, -2543, -5542, -5542, -2543, 504,   -2543, -2543,
+		-2543, -5538, 0,     0,     -2545, -2545, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 775,   32767, 32767,
-		776,   32767, 32767, 32767, 32767, 32767, 777,   32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 778,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 779,   780,   781,   32767, 4694,
-		4695,  4696,  32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 4697,  4698,  32767,
-		32767, 32767, 4699,  4700,  32767, 32767, 32767, 2428,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 2995,  2996,  2997,  2998,  2999,
-		2696,  2696,  2696,  5212,  5212,  2696,  783,   2696,
-		2696,  2696,  2696,  2696,  2696,  32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 784,
-		32767, 32767, 4701,  32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 3448,
+		3448,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 3013,
-		3014,  3015,  32767, 32767, 32767, 0,     0,     32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 2139,  2140,  -808,
-		681,   682,   683,   684,   32767, 32767, 32767, 2633,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 3016,
-		685,   686,   936,   936,   689,   32767, 32767, 32767,
-		32767, 32767, 690,   691,   692,   693,   694,   695,
-		696,   697,   698,   699,   -5401, 701,   702,   703,
-		704,   705,   706,   707,   -779,  709,   80,    -7189,
-		-7189, -7189, 0,     0,     32767, 0,     0,     0,
-		0,     0,     32767, 0,     32767, 0,     0,     32767,
-		0,     0,     32767, 0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
+		32767, 32767, 32767, 32767, -3213, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 2540,  2540,
+		2540,  2540,  2540,  0,     4830,  4831,  -307,  -307,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     4166,  0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     1310,  0,
-		0,     0,     0,     -7007, -7007, 0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     6538,
-		6539,  6540,  6541,  6542,  6543,  2371,  6545,  6546,
-		6547,  6548,  6549,  0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     1693,  0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     -31,   0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     -796,  -795,
+		-794,  -793,  -792,  -791,  1061,  1062,  1063,  1064,
+		1065,  0,     0,     0,     0,     0,     0,     0,
+		-785,  -784,  -783,  -782,  -4016, 0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     -1097, -1096, -1095, -5270, -5270, -1094, -1093,
+		-1092, -2026, -1090, -1089, -2025, -2024, -765,  -4241,
+		-10978,-10978,-5270, -5270, -10978,-10978,0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     3849,  0,
+		0,     0,     0,     3854,  2311,  523,   2313,  0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		-6893, 0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     -6902, 0,     0,     0,
-		0,     -2600, 0,     1974,  1974,  0,     0,     0,
-		0,     -6912, -5556, 0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     3019,  0,     3020,
-		3021,  3022,  0,     0,     3023,  3024,  0,     0,
-		0,     0,     0,     2206,  3026,  0,     3027,  0,
-		0,     0,     32767, 32767, 0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		-3504, 0,     0,     0,     -6893, 0,     0,     5606,
-		0,     0,     0,     3028,  -3501, 0,     -3500, -3499,
-		0,     808,   0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     32767, 0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		32767, 32767, 0,     0,     0,     0,     0,     0,
-		32767, 0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     1619,  1620,  32767, 32767, 1621,  1622,
-		1623,  32767, 1624,  1625,  1626,  1627,  1628,  1629,
-		0,     0,     1632,  32767, 32767, 32767, 32767, 32767,
+		0,     0,     0,     32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 5994,  4146,  4146,  5997,  32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		2970,  32767, 32767, 32767, 32767, 1264,  1264,  1264,
+		2215,  2216,  2217,  2218,  2219,  2220,  2221,  32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 5792,  32767,
+		362,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 3029,  3030,  3031,  3032,  32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 3033,
-		-1994, 810,   32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 811,
-		1188,  -1999, 814,   32767, 32767, 32767, 32767, 32767,
+		32767, -3774, 32767, 32767, -3776, -3776, -3776, -3776,
+		-5034, -3776, -3776, 32767, 32767, -3778, -3778, -3778,
+		-3778, -3778, -3778, 32767, 32767, -3780, -3780, 32767,
+		-5053, -3781, -3781, -3781, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, -157,  32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		627,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 4695,  32767,
+		32767, 2985,  2986,  32767, 32767, 32767, 32767, 628,
+		629,   630,   631,   632,   633,   -5911, 635,   636,
+		637,   638,   639,   640,   641,   642,   643,   644,
+		645,   646,   647,   648,   649,   650,   651,   652,
+		653,   654,   32767, 32767, 32767, 32767, 32767, 32767,
+		-2208, 32767, 8339,  32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 4699,  32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4700,
+		4701,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 2778,  32767, 32767, 32767,
-		2775,  32767, 0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     -2863, -2863, -2863, -2863,
-		-2863, 0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     986,   0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     815,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     817,   818,   819,   0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     -2752, 0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     4452,  0,
-		4451,  0,     0,     0,     4448,  4732,  0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     2022,  0,     32767, 32767, 32767,
-		32767, -7994, 32767, 32767, 32767, 32767, -4824, -4824,
-		2857,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, -8011, -8011,
-		-8011, -8011, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 5998,  0,     32767,
+		32767, 32767, 32767, 0,     0,     32767, 32767, 32767,
+		32767, 0,     2987,  32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -1459,
+		-1459, -1459, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, -1496, -2931, 32767,
+		32767, 32767, 655,   656,   657,   658,   659,   660,
+		661,   662,   663,   32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 664,   32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, -251,  -251,  -251,  -251,  -251,  -251,  4127,
-		3239,  3239,  4549,  4549,  32767, 32767, 32767, 32767,
-		32767, -3773, 4123,  4123,  4123,  4123,  4123,  5586,
-		5586,  5586,  5586,  7074,  5587,  5587,  -14346,5587,
-		5587,  5587,  5587,  5587,  5587,  5587,  5587,  5587,
-		5338,  0,     0,     0,     0,     0,     0,     0,
-		32767, 0,     4131,  0,     0,     0,     0,     0,
-		0,     828,   0,     0,     0,     0,     829,   830,
-		-3958, 0,     0,     8614,  4312,  0,     0,     0,
-		0,     0,     4619,  0,     0,     0,     832,   833,
-		834,   835,   32767, 32767, 32767, 32767, -215,  -215,
-		4094,  4630,  -213,  -213,  -213,  32767, 32767, 32767,
-		32767, 32767, -3542, -2653, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, -21505,-1572, -1572, 32767, 32767,
-		32767, 32767, 32767, 32767, 0,     32767, 0,     32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 0,     32767, 32767,
+		32767, 32767, 4743,  32767, 32767, 32767, -3717, -3716,
+		667,   -6740, 32767, -3714, 670,   671,   672,   673,
+		674,   675,   676,   677,   32767, 678,   679,   680,
+		32767, 681,   4709,  683,   684,   685,   2990,  32767,
+		32767, 32767, 2991,  2992,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, -977,  32767, -2211, 0,     32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 4386,  4386,  -2210,
-		-2209, 32767, 4735,  4736,  32767, 32767, 32767, 32767,
+		32767, 538,   32767, 32767, 32767, 32767, -1583, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -5881, 32767, 4018,  32767,
-		-5885, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 4020,  1382,  1382,  1382,  1382,  1382,
-		5938,  32767, 32767, 32767, -2118, 32767, 32767, 32767,
-		32767, 4022,  32767, 32767, 32767, 32767, -4783, 32767,
-		32767, 32767, 32767, 850,   32767, 32767, 32767, 32767,
+		32767, 686,   -5583, -5583, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -1622,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		5806,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		4026,  4027,  4028,  4029,  4030,  4031,  4032,  4033,
-		4034,  4035,  4036,  4037,  4038,  32767, 32767, -1017,
-		-1016, -7116, -1014, -1013, 32767, -1012, -1011, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4710,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, -3993, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 4737,  302,   32767, 32767, 32767,
-		32767, 303,   32767, 32767, 32767, 32767, 306,   32767,
-		32767, 32767, 32767, 307,   32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 5939,
-		-4862, 5941,  -388,  -388,  -388,  -388,  32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -4874, 32767, 32767,
+		4679,  4711,  4681,  4682,  4683,  4684,  4685,  4686,
+		4687,  4688,  4689,  0,     0,     32767, 0,     32767,
+		32767, 32767, 0,     5257,  32767, 32767, 32767, 6885,
+		6619,  9923,  6621,  -1062, -1062, 6624,  6625,  644,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 1637,  32767, 1637,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 4690,  4691,  4692,  4693,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 4015,  -5630, -5897, -5630, -8933, -5630,
+		2054,  2055,  -5630, -5630, 352,   -1290, -1289, -1288,
+		-1287, -1286, 714,   715,   2889,  4605,  4055,  6335,
+		720,   721,   32767, 2886,  -1262, 724,   725,   726,
+		-1253, 728,   729,   730,   731,   2051,  5416,  -1241,
+		367,   367,   367,   367,   367,   740,   9926,  742,
+		369,   6639,  6640,  746,   747,   748,   749,   -114,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, -8006, -8006, -2024, -3666, -3665,
+		-3664, -3663, -3662, 1670,  -3660, 1673,  1674,  1675,
+		-2024, -2024, -3651, -2024, -2024, 32767, 32767, 32767,
+		32767, 32767, -2866, 32767, 32767, -2865, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, -2866, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, -2866, 32767,
+		32767, 32767, -4485, -4485, 758,   759,   32767, 32767,
+		32767, 760,   -2863, -2862, -2861, -2860, -2859, -2858,
+		-2857, 32767, 32767, 32767, 32767, 32767, 32767, 3014,
+		3015,  3016,  32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
-		0,     0,     2516,  2516,  0,     -1913, 0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     877,   0,
-		0,     0,     0,     0,     0,     0,     0,     336,
-		337,   338,   339,   0,     0,     0,     0,     878,
-		0,     346,   347,   348,   349,   6861,  0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     32767, 0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     -4245, 0,     -4244, 0,     0,     0,     32767,
-		32767, 32767, 32767, 0,     32767, 32767, 32767, 32767,
-		3833,  0,     32767, 32767, 32767, 881,   32767, 32767,
-		32767, 0,     32767, 0,     0,     0,     0,     0,
-		0,     0,     32767, 0,     32767, 0,     0,     0,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 0,     0,     32767, 32767, 32767, 32767, 3017,
 		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, 2713,  -2075, -2074, -2073,
-		-2072, -2071, -2070, 2720,  -2068, -2067, -2066, 2724,
-		2725,  2726,  2727,  2728,  2729,  2730,  2731,  2732,
-		2733,  2734,  2735,  2736,  2737,  -2055, -2054, 2740,
-		-2052, 2742,  2743,  2744,  2745,  2746,  2747,  -1630,
-		-741,  -740,  -2049, -2048, -738,  -737,  -1624, 6273,
-		6274,  -291,  -290,  -289,  -288,  -287,  -286,  -285,
-		-284,  -283,  -282,  -281,  -280,  -279,  -278,  -277,
-		-276,  2772,  0,     0,     0,     0,     2779,  -5015,
-		-269,  -268,  0,     0,     -2210, 0,     0,     -262,
-		-261,  -260,  -259,  -258,  0,     0,     0,     0,
+		32767, 2180,  2180,  32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 768,   32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 769,   770,   771,   32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
+		32767, 32767, 32767, 32767, 32767, 772,   773,   32767,
+		774,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 3018,
+		32767, 32767, 0,     32767, 4716,  4717,  32767, 32767,
+		32767, 32767, 32767, 32767, 3019,  0,     3919,  0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     32767, 0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     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, 3643,
+		32767, 32767, 3641,  32767, 32767, 0,     0,     -3355,
+		0,     0,     0,     0,     1998,  0,     0,     0,
+		0,     0,     0,     -3366, -3366, -3366, 0,     0,
+		-3368, 0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     32767, 0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     2040,  2040,
-		2040,  0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     3365,  0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     676,   0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     32767,
-		32767, 32767, 32767, 32767, 32767, 0,     0,     0,
-		0,     0,     0,     0,     0,     32767, 32767, 32767,
+		0,     0,     0,     0,     0,     0,     677,   0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     13799, 0,     0,     0,     9279,  2994,  32767,
+		8461,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		1755,  32767, 32767, 32767, 32767, 32767, 32767, 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,
-		165,   166,   0,     0,     0,     0,     0,     0,
+		32767, 32767, 32767, 3196,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -4700,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -3816,
+		360,   361,   362,   -572,  364,   365,   -571,  -570,
+		689,   -2787, -9524, -9524, -3816, -3816, -9524, -9524,
+		-9524, -3816, 699,   700,   701,   702,   703,   704,
+		705,   706,   707,   8659,  5531,  5531,  5531,  32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 0,     32767,
+		32767, 32767, 32767, 32767, 32767, 4746,  4747,  32767,
+		4748,  32767, 32767, 32767, 4749,  -507,  -507,  -507,
+		-507,  -507,  -507,  -507,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -872,
+		32767, 32767, 3030,  3031,  3032,  3033,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, -3585, -3585, -3585,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     -3964, -6227, -1438, 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,     32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 2824,  2825,  5791,  3454,
-		3455,  3456,  32767, 10734, -115,  3459,  1375,  32767,
-		32767, 3461,  10743, 5953,  3464,  3465,  3466,  3467,
-		10751, 32767, 10753, 3470,  3471,  3472,  3473,  3474,
-		3475,  32767, 3476,  5980,  10770, 5982,  7789,  7790,
-		3482,  0,     2797,  0,     2798,  0,     2799,  0,
-		2800,  0,     2801,  0,     2802,  0,     2803,  0,
-		2804,  0,     0,     2806,  0,     2807,  32767, 2807,
-		0,     0,     0,     32767, 0,     0,     -376,  2812,
-		0,     32767, 2812,  32767, 32767, 32767, 0,     2811,
-		2811,  0,     2812,  2812,  0,     32767, 0,     0,
+		0,     0,     0,     0,     0,     -10784,-5076, -561,
+		-560,  0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     2833,  0,     0,     0,     0,     3781,
-		2837,  3782,  2837,  0,     3784,  3785,  0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     2850,  0,     2851,  0,     2852,  0,
-		2853,  0,     2854,  0,     2855,  0,     2856,  0,
-		2857,  0,     2858,  0,     2859,  0,     2860,  0,
-		2861,  0,     0,     2863,  0,     2864,  0,     3815,
-		0,     0,     0,     0,     0,     0,     3828,  3829,
-		9436,  9437,  9438,  6411,  2873,  2873,  0,     2874,
-		2874,  8636,  9445,  9446,  9447,  9448,  0,     0,
+		2304,  2304,  0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     2897,  0,     0,     660,   7421,  7236,
-		2899,  0,     0,     0,     2902,  816,   0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     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, 2013,  32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 5486,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 4750,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		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,     -3368, -3368,
+		798,   32767, -372,  -372,  -372,  -372,  -372,  -372,
+		0,     1160,  0,     0,     0,     0,     0,     0,
+		1161,  0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     5714,  5714,  9877,  9878,  9879,  9880,  0,
+		0,     -97,   -97,   -97,   -97,   -97,   5712,  0,
+		0,     9880,  6739,  0,     9882,  9883,  9884,  9885,
+		5710,  0,     3820,  679,   0,     0,     9886,  9887,
+		8951,  0,     0,     6737,  0,     0,     5708,  5708,
+		0,     0,     0,     5708,  10223, 10224, 10225, 10226,
+		10227, 10228, 10229, 0,     0,     10234, 10235, 10236,
+		10237, 10238, 10239, 10240, 10241, 0,     0,     5952,
+		5953,  5954,  5955,  5711,  5957,  5958,  5959,  5960,
+		5961,  5962,  5963,  5711,  5711,  5711,  5711,  6603,
+		5711,  5711,  5711,  5711,  5711,  5711,  5975,  5711,
+		5711,  5711,  5979,  5980,  32767, 32767, 32767, 32767,
+		803,   32767, 32767, 32767, 804,   32767, 32767, 32767,
+		32767, 32767, 32767, 805,   806,   32767, 807,   808,
+		32767, 809,   0,     5999,  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, 1389,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 840,   841,   32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		842,   32767, 843,   32767, 844,   32767, 32767, 32767,
+		32767, 32767, 0,     0,     10606, 0,     845,   5378,
+		0,     0,     0,     0,     1113,  1113,  1113,  1113,
+		1113,  1113,  1113,  1113,  1113,  -6838, -3709, -3708,
+		-3707, 0,     -3493, 0,     0,     0,     0,     -3497,
+		-1953, -164,  -1953, -1953, 5407,  5408,  -1955, -1955,
+		-1955, -1955, -1955, -1955, -3509, -1955, -1955, 812,
+		813,   814,   815,   -1955, -5123, -5122, -5121, -5120,
+		-5119, -5118, -14675,5430,  -5115, -2332, -11383,-2332,
+		-11382,-136,  -135,  -1739, -11384,-11651,-11384,-131,
+		-130,  -3700, -3699, -80,   5447,  -126,  -125,  0,
+		0,     0,     4756,  4757,  0,     5456,  -1715, 0,
+		-117,  0,     10917, 0,     0,     0,     5465,  5466,
+		776,   0,     0,     777,   0,     -5426, 5473,  5474,
+		0,     778,   -5431, 0,     0,     0,     0,     4123,
+		4124,  4125,  0,     0,     0,     0,     4130,  4131,
+		4132,  4133,  4134,  4135,  4136,  4137,  4138,  4139,
+		4140,  4141,  4142,  4143,  5402,  4145,  4146,  4147,
+		4148,  4149,  4150,  4151,  4152,  4153,  4154,  4155,
+		4156,  4157,  4158,  5431,  5432,  4161,  4162,  4163,
+		4164,  4165,  4166,  4167,  4168,  4169,  4170,  4171,
+		4172,  4173,  4174,  4175,  4176,  4177,  4178,  4179,
+		32767, 32767, 4180,  4181,  4182,  4183,  4184,  4185,
+		4186,  4187,  4188,  4189,  4190,  4191,  4192,  6044,
+		6045,  6046,  6047,  6048,  4198,  4199,  4200,  4201,
+		4202,  4203,  4204,  4205,  4206,  4207,  4208,  974,
+		4210,  11136, 3906,  3907,  3908,  3909,  3910,  3911,
+		3912,  3913,  3914,  3915,  3916,  3917,  5988,  5989,
+		0,     0,     3919,  3920,  3921,  3922,  -6053, -6053,
+		-6053, -6053, -6053, -6053, -6053, -244,  -5956, 3924,
+		3925,  784,   3927,  3928,  3929,  3930,  3931,  -244,
+		-244,  3932,  3933,  3934,  3000,  3936,  3937,  3001,
+		3002,  4261,  785,   -5952, -5952, -244,  -244,  -5952,
+		-5952, -5952, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, -5739, -408,
+		-408,  -408,  32767, 32767, 32767, 32767, 3724,  823,
+		824,   32767, 32767, 32767, 32767, 32767, 32767, -421,
+		-2028, -2027, -2026, -2025, -2024, 517,   -4312, -4312,
+		827,   828,   522,   523,   524,   525,   526,   527,
+		528,   529,   530,   531,   532,   533,   534,   535,
+		536,   537,   538,   539,   540,   541,   542,   543,
+		544,   545,   546,   547,   548,   -3617, 550,   551,
+		552,   553,   554,   555,   556,   32767, 557,   32767,
+		558,   559,   32767, 560,   561,   32767, 562,   32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     32767, 32767, 32767,
+		32767, 32767, 32767, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     -1191, -1191,
+		-1191, -2792, 0,     0,     0,     0,     -2791, -2790,
+		-4408, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     -2791, -2790,
+		-2789, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     837,   838,   0,     0,     -3001, 3038,
+		-3001, -3001, -3001, -1087, 0,     -2999, -2999, 0,
+		3047,  0,     0,     0,     -2995, -2995, 0,     0,
+		0,     0,     4287,  0,     0,     4292,  4293,  0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     -550,  0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     3918,  0,     0,     0,     0,     9976,  0,
+		0,     0,     0,     -6065, -6065, 0,     0,     0,
+		0,     3142,  0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     935,   0,     0,     937,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     9645,  0,     -267,  0,     -3303, 0,
+		7684,  7685,  0,     0,     5982,  4340,  4341,  4342,
+		4343,  4344,  9676,  4346,  4347,  9679,  9680,  4350,
+		4351,  4352,  4353,  4354,  4355,  4356,  4357,  4358,
+		4359,  4360,  4361,  4362,  4363,  4364,  4365,  4366,
+		5974,  5974,  5974,  5974,  5974,  5974,  15532, -4572,
+		5974,  3192,  12244, 3194,  12245, 12246, 12247, 2603,
+		12249, 12517, 12251, 999,   12252, 4569,  4569,  12255,
+		12256, 6275,  7918,  7918,  7918,  7918,  7918,  2587,
+		7918,  2586,  2586,  2586,  6286,  6287,  7915,  6289,
+		6290,  7913,  7913,  6293,  96,    7911,  7911,  7911,
+		7911,  6299,  7910,  1253,  7911,  6304,  6305,  6306,
+		6307,  6308,  6309,  -3248, 16857, 6312,  43,    43,
+		43,    43,    43,    43,    9688,  43,    -224,  43,
+		-3260, 43,    7727,  7728,  43,    43,    6025,  1253,
+		6234,  1253,  6384,  6385,  10526, -3272, 1253,  6388,
+		10531, 1253,  1253,  1253,  1253,  6392,  6393,  0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     6053,  6054,  6055,
+		6056,  6057,  6058,  32767, 6059,  6060,  6061,  6062,
+		32767, 6063,  32767, 6064,  32767, 32767, 32767, 4761,
+		32767, 32767, 6065,  32767, 4762,  4763,  32767, 9404,
+		32767, 6067,  4764,  6068,  32767, 6069,  6070,  6071,
+		32767, 6072,  6073,  32767, 6074,  32767, 32767, 6075,
+		32767, 6076,  32767, 6077,  32767, 6078,  32767, 6079,
+		32767, 4374,  4374,  32767, 4373,  32767, 32767, 5324,
+		5325,  5326,  5327,  32767, 6087,  6088,  6089,  6090,
+		6091,  3057,  6093,  32767, 6094,  4376,  -4013, 4376,
+		32767, 4375,  4375,  4375,  4375,  32767, 4374,  32767,
+		4373,  6104,  6105,  6106,  6107,  6108,  6109,  6110,
+		6111,  -3652, 881,   -645,  -645,  -1903, 6116,  6117,
+		6118,  4399,  4400,  4401,  6122,  6123,  3567,  3567,
+		4406,  6127,  7410,  6129,  32767, 32767, 32767, 32767,
+		32767, 7409,  7410,  4412,  32767, 6133,  4414,  4415,
+		6136,  6137,  32767, 4420,  9402,  6140,  134,   134,
+		13933, 134,   134,   134,   9413,  4429,  6149,  4432,
+		6151,  4435,  6153,  6304,  6305,  6306,  6307,  6308,
+		6309,  6310,  6311,  6312,  6313,  6314,  1068,  6316,
+		5378,  6318,  5379,  6320,  803,   6322,  -2232, 6324,
+		6325,  6326,  1074,  6328,  6329,  6330,  6331,  6332,
+		6333,  6334,  6335,  6336,  6337,  6338,  6339,  6340,
+		6341,  6342,  6343,  6344,  6345,  6346,  6347,  6348,
+		6349,  6350,  6351,  6352,  6353,  6354,  6355,  6356,
+		6357,  6358,  6359,  6360,  5417,  6362,  6363,  6364,
+		6365,  6366,  6367,  5423,  6369,  5424,  6371,  6372,
+		5426,  5426,  6375,  5427,  5427,  6378,  6379,  6380,
+		6381,  6382,  6383,  6384,  6385,  6386,  6387,  6388,
+		6389,  6390,  6391,  6392,  6393,  6394,  6395,  6396,
+		6397,  6398,  6399,  6400,  6401,  6402,  6403,  6404,
+		6405,  6406,  6407,  6408,  6409,  6410,  6411,  6412,
+		6413,  6414,  6415,  6416,  6417,  6418,  6419,  6420,
+		6421,  6422,  7182,  5465,  6425,  6426,  6427,  6428,
+		6429,  6430,  6431,  6432,  6433,  6434,  6435,  6436,
+		6437,  6438,  6439,  6440,  6441,  6442,  6443,  6444,
+		6445,  6446,  6447,  6448,  6449,  6450,  6451,  6452,
+		6453,  6454,  6455,  6456,  6457,  6458,  6459,  6460,
+		6461,  6462,  6463,  6464,  6465,  6466,  6467,  6468,
+		6469,  6470,  6471,  6472,  6473,  6474,  6475,  6476,
+		6477,  6478,  5519,  5519,  6481,  6482,  6483,  6484,
+		6485,  6486,  6487,  6488,  6489,  6490,  6491,  6492,
+		6493,  6494,  6495,  6496,  6497,  6498,  6499,  6500,
+		6501,  6502,  6503,  6504,  6505,  6506,  6507,  6508,
+		6509,  6510,  6511,  6512,  6513,  6514,  6515,  6516,
+		6517,  6518,  6519,  6520,  6521,  6522,  6523,  6524,
+		6525,  6526,  6527,  6528,  6529,  6530,  6531,  6532,
+		6533,  1330,  6535,  6536,  6537,  6538,  5577,  6540,
+		6541,  6542,  6543,  6544,  6545,  6546,  6547,  6548,
+		6549,  6550,  5588,  5588,  6553,  6554,  6555,  6556,
+		32767, 6557,  1728,  1728,  6867,  6868,  6562,  6563,
+		6564,  6565,  6566,  6567,  6568,  6569,  6570,  6571,
+		6572,  6573,  6574,  6575,  6576,  6577,  6578,  6579,
+		6580,  6581,  6582,  6583,  6584,  6585,  6586,  6587,
+		6588,  2423,  6590,  6591,  6592,  6593,  6594,  6595,
+		6596,  6597,  6598,  6599,  6600,  6601,  6602,  6603,
+		6604,  6605,  6606,  6607,  6608,  6609,  6610,  6611,
+		6612,  6613,  6614,  6615,  6616,  6617,  6618,  6619,
+		6620,  6621,  6622,  6623,  6624,  6625,  6626,  6627,
+		6628,  6629,  6630,  6631,  6632,  6633,  6634,  6635,
+		6636,  6637,  6638,  6639,  6640,  6641,  6642,  6643,
+		6644,  6645,  6646,  6647,  6648,  6649,  6650,  6651,
+		6652,  6653,  6654,  6655,  6656,  6657,  6658,  6659,
+		6660,  6661,  6693,  6663,  6664,  6665,  6666,  6667,
+		6668,  6669,  6670,  6671,  6672,  6673,  6674,  6675,
+		6676,  6677,  6678,  6679,  7476,  7476,  7476,  7476,
+		7476,  7476,  5625,  5625,  5625,  5625,  5625,  6691,
+		6692,  6693,  6694,  6695,  6696,  6697,  7483,  7483,
+		7483,  7483,  10718, 6703,  6704,  6705,  6706,  6707,
+		6708,  6709,  6710,  6711,  6712,  6713,  6714,  6715,
+		6716,  6717,  6718,  6719,  6720,  6721,  6722,  6723,
+		6724,  6725,  6726,  6727,  6728,  6729,  6730,  6731,
+		6732,  6733,  6734,  6735,  6736,  6737,  6738,  7836,
+		7836,  7836,  12012, 12013, 7838,  7838,  7838,  8773,
+		7838,  7838,  8775,  8775,  7517,  10994, 17732, 17733,
+		12026, 12027, 17736, 17737, 6760,  6761,  6762,  6763,
+		6764,  6765,  6766,  6767,  6768,  6769,  6770,  6771,
+		6772,  6773,  6774,  6775,  2927,  6777,  6778,  6779,
+		6780,  2927,  4471,  6260,  4471,  6785,  6786,  6787,
+		6788,  6789,  6790,  6791,  6792,  6793,  6794,  6795,
+		6796,  6797,  6798,  6799,  6800,  6801,  6802,  6803,
+		6804,  6805,  6806,  6807,  6808,  6809,  6810,  6811,
+		6812,  32767, 3411,  5540,  5541,  3411,  12221, 3411,
+		3411,  3411,  3411,  5548,  5549,  5550,  5551,  5552,
+		5553,  5554,  5555,  5556,  5557,  5558,  5559,  5560,
+		5561,  5562,  5563,  5564,  5565,  5566,  5567,  5568,
+		32767, 32767, 32767, 32767, 32767, 32767, 3915,  32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 6155,  6156,  6157,  6158,  6159,
+		6160,  6161,  6162,  6163,  6164,  6165,  32767, 32767,
+		32767, 32767, 32767, 6166,  6167,  6168,  6169,  6170,
+		6171,  6172,  6173,  6174,  6175,  6176,  6177,  6178,
+		6179,  6180,  4615,  4616,  4617,  4618,  4619,  6186,
+		6187,  6188,  6189,  6190,  6191,  6192,  6193,  6194,
+		6195,  6196,  32767, 6197,  6198,  6199,  6200,  6201,
+		7637,  4495,  4495,  6205,  4052,  4052,  6208,  6209,
+		6210,  6211,  6212,  6213,  6214,  6215,  6216,  6217,
+		6218,  6219,  6220,  6221,  6222,  6223,  6224,  6225,
+		6226,  6227,  6228,  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, 6229,  6230,  6231,
 		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, 6232,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		1009,  -417,  -417,  -417,  32767, 3553,  -9183, 5952,
-		5953,  5954,  5955,  4620,  5957,  176,   177,   178,
-		179,   180,   181,   182,   183,   -4964, -4964, 188,
-		189,   190,   191,   192,   193,   194,   -4964, -4964,
-		32767, -4965, -4965, 32767, -4966, 32767, 32767, -4968,
-		32767, -4969, -4969, -4969, -4969, -4969, -4969, -4969,
-		-4969, -4969, -4969, 32767, -4970, -4970, -4970, -4970,
-		32767, -4971, 32767, -4972, 32767, 32767, 32767, 32767,
-		32767, 32767, -187,  32767, 32767, 32767, 32767, -4980,
-		32767, -4981, 32767, -4982, 32767, -194,  -194,  -194,
-		32767, -195,  -195,  32767, -196,  32767, 32767, -4987,
-		32767, -4988, 32767, -4989, 32767, -4990, 32767, -4991,
-		32767, -4992, -4992, 0,     -4993, 32767, 32767, -4995,
-		-202,  -4995, -4995, 32767, -4996, -4996, -4996, -618,
-		-1506, -1506, -196,  32767, -1506, -1506, -618,  -8514,
-		32767, -8515, -619,  -619,  -619,  32767, 6034,  32767,
-		-455,  -455,  -455,  -455,  -455,  -455,  -455,  -455,
-		-455,  -455,  32767, -456,  -456,  -456,  -456,  -456,
-		-456,  -456,  -456,  -456,  -456,  -456,  -456,  -456,
-		-456,  -456,  -456,  -456,  32767, 32767, 32767, 32767,
-		32767, -461,  -461,  -461,  32767, -7469, -462,  -462,
-		-462,  -462,  32767, -463,  -463,  -463,  -463,  -463,
-		6075,  6076,  6077,  6078,  6079,  6080,  1908,  6082,
-		6083,  6084,  6085,  6086,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		884,   885,   886,   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, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 5994,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 6233,  6234,  6235,  32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 6236,  6237,  6238,  6239,
+		6240,  6241,  6242,  6243,  6244,  6245,  6246,  6247,
+		6248,  6249,  6250,  6251,  6252,  6253,  6254,  6255,
+		6256,  6257,  6258,  6259,  6260,  6261,  6262,  6263,
+		6264,  6265,  6266,  6267,  6268,  6269,  6270,  6271,
+		6272,  6273,  6274,  6275,  6276,  6277,  6278,  6279,
+		32767, 32767, 32767, 32767, 6280,  6281,  6282,  6283,
+		6284,  6285,  6286,  6287,  6288,  4770,  32767, 4771,
+		4772,  32767, 32767, 32767, 6289,  6290,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, -5160, 2071,
+		2071,  2071,  2071,  32767, 2070,  2070,  2070,  2070,
+		2070,  2070,  2070,  0,     0,     6236,  6237,  2075,
+		2075,  2075,  2075,  12051, 12052, 12053, 12054, 12055,
+		12056, 12057, 6249,  11962, 2083,  2083,  5225,  2083,
+		2083,  2083,  2083,  2083,  6259,  6260,  2085,  2085,
+		2085,  3020,  2085,  2085,  3022,  3022,  32767, 5240,
+		11978, 11979, 6272,  6273,  11982, 11983, 11984, 6277,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 4773,  32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, -9650, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 4751,  32767, 32767, -6842, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -750,428 +710,137 @@ Decomp_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 415,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 0,     0,     0,     0,
+		32767, 32767, 32767, 32767, 32767, 32767, -2468, -2468,
+		-2468, -2468, -2468, -2468, -2468, -2468, -2468, -2468,
+		-2468, -2468, -2468, -2468, -2468, -2468, -2468, -2468,
+		2089,  2090,  2091,  -2465, -2465, -2465, -2465, -2465,
+		-2465, 2098,  2099,  -2463, -2463, -2463, -2463, -2463,
+		-2463, 2106,  2107,  -2461, -2461, -2461, -2461, -2461,
+		-2461, 0,     0,     -2459, -2459, -2459, 2119,  2120,
+		2121,  -2456, 2123,  2124,  2125,  2126,  2127,  2128,
+		0,     0,     2131,  -6678, 2133,  2134,  2135,  2136,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     2158,  2159,  2160,
+		2161,  2162,  2163,  2164,  2165,  2166,  2167,  2168,
+		2169,  2170,  2171,  2172,  2173,  2174,  2175,  2176,
+		2177,  2178,  2179,  2180,  2181,  -2412, -2412, -2412,
+		-2412, -2412, 2187,  2188,  2025,  2190,  2191,  2192,
+		2193,  2194,  2195,  2196,  2197,  2198,  2199,  2200,
+		2201,  2202,  2203,  2204,  2205,  2206,  2207,  2208,
+		2209,  2210,  2211,  2212,  2213,  2214,  2215,  2216,
+		2217,  2218,  2219,  2220,  2221,  0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		3990,  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, 0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     2002,  2002,  2002,  0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     32767, 32767, 0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     4118,  0,
-		0,     0,     0,     0,     0,     0,     4126,  0,
-		0,     2728,  0,     0,     32767, 32767, 32767, 32767,
-		32767, 0,     5928,  5929,  5930,  5931,  0,     32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 4755,  32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 4132,  4133,  4134,  4135,
-		4136,  4137,  4138,  4139,  4140,  4141,  4142,  4143,
-		4144,  32767, 32767, 886,   5880,  32767, 32767, 32767,
-		32767, 32767, 32767, 1132,  1132,  1132,  1132,  32767,
-		6280,  1129,  1129,  32767, 1128,  1128,  1128,  1128,
-		6287,  6288,  6289,  6290,  6291,  6292,  6293,  32767,
-		6294,  6295,  32767, 1343,  6296,  6297,  6298,  6299,
-		6300,  32767, 32767, 6301,  6302,  6303,  32767, 6304,
-		32767, 6305,  32767, 6306,  32767, 6307,  1517,  1518,
-		16878, 32767, 6311,  6312,  1522,  32767, 6314,  1524,
-		1525,  6315,  6316,  6317,  6318,  32767, 6319,  1531,
-		1532,  1533,  1534,  1535,  32767, 32767, 32767, 32767,
-		1536,  6326,  6327,  6328,  6329,  32767, 0,     32767,
-		0,     10802, 0,     6330,  6331,  6332,  6333,  1541,
-		1542,  6336,  1544,  6338,  6339,  6340,  6341,  6342,
-		6343,  1966,  2855,  2856,  1547,  1548,  2858,  2859,
-		1972,  9869,  9870,  9871,  1976,  1977,  1978,  1979,
-		1980,  518,   519,   520,   521,   -966,  522,   523,
-		20457, 525,   526,   527,   528,   529,   530,   531,
-		532,   533,   783,   6122,  6123,  6124,  6125,  6126,
-		6127,  6128,  32767, 6129,  1999,  6131,  6132,  6133,
-		6134,  6135,  6136,  5309,  6138,  6139,  6140,  6141,
-		5313,  5313,  10102, 6145,  6146,  -2467, 1836,  6149,
-		6150,  6151,  6152,  6153,  1535,  6155,  6156,  6157,
-		5326,  5326,  5326,  32767, 32767, 32767, 32767, 32767,
-		32767, 1837,  32767, 1741,  32767, 32767, 32767, 32767,
-		10538, 10539, 9184,  9185,  6237,  7726,  7727,  7728,
-		7729,  7730,  6243,  7731,  7732,  27666, 7734,  7735,
-		7736,  7737,  7738,  7739,  7740,  7741,  7742,  7992,
-		7992,  7745,  7746,  7747,  7748,  7749,  7750,  7751,
-		7752,  7753,  7754,  7755,  7756,  7757,  7758,  7759,
-		7760,  1660,  7762,  7763,  7764,  7765,  7766,  7767,
-		7768,  6282,  7770,  7141,  -128,  -128,  -128,  7768,
-		7768,  7768,  4803,  7141,  7141,  7141,  5529,  -136,
-		10714, 7141,  9226,  -10707,4652,  7141,  -140,  4651,
-		7141,  7141,  7141,  7141,  -142,  5529,  -143,  7141,
-		7141,  7141,  6315,  7140,  7140,  6318,  6319,  4635,
-		6321,  6322,  6323,  6324,  6325,  6326,  6327,  6328,
-		6329,  6330,  9168,  9169,  9170,  15325, 15078, 15079,
-		9174,  9175,  9176,  6539,  9178,  9179,  9180,  6344,
-		6345,  6346,  6347,  8761,  6349,  6350,  6351,  9193,
-		9194,  9195,  4634,  4634,  9196,  9197,  9198,  -1165,
-		-1165, -1165, 4937,  6364,  6365,  6366,  10077, 2397,
-		15134, 0,     0,     0,     0,     1336,  0,     5782,
-		5782,  5782,  5782,  5782,  5782,  5782,  5782,  10930,
-		10931, 5780,  5780,  5780,  5780,  5780,  5780,  5780,
-		10939, 10940, 10941, 10942, 10943, 10944, 10945, 10946,
-		10947, 10948, 10949, 10950, 10951, 10952, 10953, 10954,
-		10955, 10956, 10957, 10958, 10959, 10960, 10961, 10962,
-		10963, 10964, 10965, 10966, 10967, 10968, 6178,  6179,
-		21539, 6181,  10973, 10974, 6184,  6185,  10977, 6187,
-		6188,  10978, 10979, 10980, 10981, 10982, 10983, 6195,
-		6196,  6197,  6198,  6199,  6200,  10990, 6202,  6203,
-		6204,  10994, 10995, 10996, 10997, 10998, 10999, 11000,
-		11001, 11002, 11003, 11004, 11005, 11006, 11007, 6215,
-		6216,  11010, 6218,  11012, 11013, 11014, 11015, 11016,
-		11017, 6640,  7529,  7530,  6221,  6222,  7532,  7533,
-		6646,  14543, 14544, 14545, 6650,  6651,  6652,  6653,
-		0,     6489,  6490,  6491,  6492,  6493,  6494,  6495,
-		6496,  6497,  6498,  6499,  6500,  6501,  6502,  6503,
-		6504,  6505,  6506,  6507,  6508,  6509,  6510,  6511,
-		6512,  6513,  6514,  6515,  6516,  6517,  6518,  6519,
-		6520,  5211,  6522,  6523,  6524,  6525,  13533, 13534,
-		6528,  6529,  6530,  6531,  6532,  6533,  6534,  6535,
-		6536,  6537,  0,     0,     0,     0,     0,     0,
-		4173,  0,     0,     0,     0,     0,     6550,  6551,
-		6552,  6553,  6554,  6555,  6556,  6557,  6558,  6559,
-		6560,  6561,  6562,  6563,  6564,  6565,  4873,  6567,
-		6568,  6569,  6570,  6571,  6572,  6573,  6574,  6575,
-		6576,  6577,  6578,  6579,  6580,  6581,  6582,  6583,
-		6584,  6585,  6586,  6587,  6588,  6589,  6590,  6591,
-		6592,  6593,  6594,  6595,  6596,  6597,  6598,  6599,
-		6600,  6601,  6602,  6603,  6604,  6605,  6606,  6607,
-		6608,  6609,  6610,  6611,  6612,  6613,  6614,  6615,
-		6616,  6617,  6618,  6619,  6620,  6621,  6622,  6623,
-		6624,  6625,  6626,  6627,  6628,  6629,  6630,  6631,
-		6632,  6633,  6634,  6635,  6636,  6637,  6638,  6639,
-		6640,  6641,  6642,  6643,  6644,  6645,  6646,  6647,
-		6648,  6649,  6650,  6651,  6652,  6653,  6654,  6655,
-		6656,  6657,  6658,  13552, 6660,  6661,  6662,  6663,
-		6664,  6665,  6666,  6667,  6668,  6669,  6670,  13573,
-		6672,  6673,  6674,  6675,  9276,  6677,  4704,  4705,
-		6680,  6681,  6682,  6683,  13596, 12241, 6686,  6687,
-		6688,  6689,  6690,  6691,  6692,  6693,  6694,  6695,
-		6696,  6697,  6698,  6699,  6700,  6701,  6702,  6703,
-		6704,  6705,  6706,  6707,  6708,  6709,  6710,  6711,
-		6712,  6713,  6714,  6715,  6716,  6717,  6718,  6719,
-		6720,  6721,  6722,  6723,  6724,  6725,  6726,  6727,
-		3709,  6729,  3710,  3710,  3710,  6733,  6734,  3712,
-		3712,  6737,  6738,  6739,  6740,  6741,  4536,  3717,
-		6744,  32767, 6745,  6746,  6747,  6748,  6749,  6750,
-		6751,  6752,  6753,  6754,  6755,  6756,  6757,  6758,
-		6759,  6760,  6761,  6762,  6763,  6764,  6765,  6766,
-		6767,  6768,  6769,  -2005, 6771,  -3121, -3121, -3121,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 895,   896,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 4706,  4707,  32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 897,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 898,
-		899,   900,   901,   902,   903,   904,   905,   32767,
-		32767, 906,   32767, 32767, 32767, 32767, 32767, 32767,
-		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		1,     32767, 2,     32767, 32767, 32767, 32767, 3,
-		32767, 32767, 4,     5,     6,     7,     32767, 32767,
-		8,     9,     10,    32767, 11,    83,    13,    32767,
-		14,    15,    16,    17,    18,    19,    32767, 20,
-		21,    22,    907,   908,   909,   910,   911,   912,
-		913,   914,   915,   916,   917,   918,   919,   920,
-		32767, 921,   922,   923,   924,   925,   926,   927,
-		928,   929,   -380,  931,   932,   933,   934,   7942,
-		7943,  7944,  49,    50,    51,    52,    53,    -1409,
-		32767, -1408, -1407, -2894, -1406, -1405, 18529, 3171,
-		32767, -1403, -1402, -1401, -1400, -1399, 32767, -1398,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 683,   32767, 7976,  32767, 4994,  32767, 686,
-		32767, 0,     32767, 0,     32767, 0,     32767, 0,
-		32767, 0,     32767, 0,     32767, 0,     32767, 0,
-		32767, 937,   0,     -3182, 0,     -3183, 0,     -3184,
-		32767, 941,   32767, 32767, 32767, -3188, 0,     32767,
-		0,     0,     32767, 0,     0,     32767, 0,     0,
-		32767, 0,     0,     32767, 32767, 32767, 32767, 32767,
+		0,     0,     0,     0,     0,     0,     1566,  1566,
+		1566,  1566,  1566,  0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     32767, 0,
+		0,     0,     0,     0,     -1435, 1708,  1709,  0,
+		2154,  2155,  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, 943,
-		32767, 0,     32767, 32767, 32767, 32767, 944,   0,
-		945,   0,     32767, 946,   947,   32767, 948,   949,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 0,     32767, 0,     32767, 0,     32767, 0,
-		32767, 0,     32767, 0,     32767, 0,     32767, 0,
-		32767, 0,     32767, 0,     32767, 0,     32767, 0,
-		32767, 32767, 0,     32767, 0,     32767, 950,   951,
-		952,   953,   954,   955,   956,   957,   958,   32767,
-		6565,  6566,  32767, 0,     0,     32767, 0,     0,
-		32767, 6570,  6571,  32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 0,     0,     0,     32767, 32767, 4774,  4775,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 0,     32767, 32767, -2239, 4522,  4337,  0,
-		32767, 32767, 32767, 0,     -2086, 32767, 32767, 0,
-		0,     0,     0,     0,     0,     959,   960,   0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     4578,  4579,  0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		-4175, -5292, 0,     0,     32767, 0,     32767, 0,
-		0,     32767, 0,     0,     32767, 0,     32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 961,   32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 0,     962,   963,   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, 0,     0,     0,     0,
+		0,     0,     0,     0,     -2552, 0,     0,     32767,
+		0,     32767, 32767, 32767, 1551,  293,   3770,  32767,
+		32767, 32767, 32767, 0,     32767, 0,     32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		0,     0,     0,     32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     32767, 32767, 32767, 0,
+		0,     32767, 0,     0,     32767, 32767, 32767, 32767,
+		0,     32767, 0,     32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     0,     0,     32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, -4309, -4309, 0,     32767,
+		0,     -4310, -4577, -4310, -7613, -4310, 3374,  3375,
+		-4310, -4310, 1672,  -3100, 1881,  -3100, 2031,  2032,
+		6173,  -7625, -3100, 2035,  6178,  -3100, -3100, -3100,
+		-3100, 2039,  2040,  32767, 0,     -4353, -4353, 0,
+		-4352, 0,     0,     -4350, 0,     -4349, -4349, -4349,
+		-4349, 32767, 0,     32767, 32767, 32767, 32767, 32767,
+		32767, 0,     32767, 0,     0,     32767, 0,     0,
+		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, 964,   32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 0,     0,     0,     0,
+		0,     951,   952,   953,   954,   955,   956,   957,
+		1717,  0,     32767, 32767, 32767, -1317, 32767, 32767,
+		32767, 0,     -8389, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     32767, 32767, 32767,
+		32767, 32767, 32767, 887,   888,   32767, 32767, 32767,
 		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, -5009, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 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, 0,     32767, 32767, 32767, 32767, 32767,
-		0,     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, 0,     0,     0,
-		32767, 32767, -3913, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 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, 5520,  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, 965,   966,   967,   32767,
-		968,   969,   970,   971,   972,   973,   974,   975,
-		976,   977,   978,   979,   980,   32767, 981,   982,
-		983,   984,   985,   986,   987,   32767, 32767, 32767,
-		32767, 988,   32767, 32767, 32767, 32767, 32767, 32767,
-		989,   32767, 32767, 32767, -4941, 991,   32767, 32767,
-		0,     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, 992,   993,   994,   32767, 995,   996,   997,
-		998,   999,   1000,  1001,  -3143, -3143, -3143, -3143,
-		32767, -3144, -3144, -3144, -3144, -3144, 1011,  1012,
-		1013,  1014,  1015,  1016,  -3138, -3138, -3138, -3138,
-		-3138, -3138, -3138, 32767, -3139, -3139, -3139, -3139,
-		-3139, -3139, -3139, -3139, -3139, -3139, -3139, -3139,
-		-3139, -3139, -3139, -3139, -3139, -3139, -3139, -3139,
-		-3139, -3139, -3139, -3139, -3139, -3139, -3139, 872,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 3049,  3049,  -3150, 3049,  3049,
-		3049,  3049,  3049,  3049,  3049,  3049,  3049,  3049,
-		3049,  3049,  3049,  3049,  3049,  3049,  3049,  3049,
-		3049,  3049,  3049,  3049,  3049,  0,     0,     0,
-		0,     0,     0,     0,     0,     3057,  5596,  5597,
-		5598,  6716,  6717,  6718,  6719,  6720,  6721,  6722,
-		6723,  -3176, -3176, 6728,  6729,  6730,  6731,  6732,
-		6733,  6734,  6735,  -3176, -3176, -3176, -3176, -3176,
-		-3176, 8013,  2958,  2959,  -3141, 2961,  2962,  2963,
-		2964,  2965,  8022,  8023,  -3176, -3176, -3176, -3176,
-		-3176, 5630,  5631,  -2,    -2,    -2,    -2,    7679,
-		-3176, -3176, -3176, -3176, -3176, -3176, -3176, -3176,
-		-3176, -4957, -4957, -4957, -4957, -3176, -3176, -3176,
-		-3176, -3176, -3176, -3176, -3176, -3176, -3176, -3176,
-		-3176, -3176, -3176, -3176, -3176, -3176, -3176, -3176,
-		-3176, -3176, 1880,  1880,  7981,  1880,  1880,  1880,
-		1880,  1880,  -3176, -3176, -1258, 4882,  4883,  4884,
-		895,   4886,  -3176, 4861,  4862,  4863,  4864,  -2816,
-		9921,  -5213, -5213, -5213, -5213, -3877, -5213, 569,
-		569,   569,   569,   569,   569,   569,   569,   5717,
-		5718,  567,   567,   567,   567,   567,   567,   567,
-		5726,  5727,  5728,  5729,  5730,  5731,  5732,  5733,
-		5734,  5735,  5736,  5737,  5738,  5739,  5740,  5741,
-		5742,  5743,  5744,  5745,  5746,  5747,  5748,  5749,
-		5750,  5751,  5752,  5753,  5754,  5755,  965,   966,
-		16326, 968,   5760,  5761,  971,   972,   5764,  974,
-		975,   5765,  5766,  5767,  5768,  5769,  5770,  982,
-		983,   984,   985,   986,   987,   5777,  989,   990,
-		991,   5781,  5782,  5783,  5784,  5785,  5786,  5787,
-		5788,  5789,  5790,  5791,  5792,  5793,  5794,  1002,
-		1003,  5797,  1005,  5799,  5800,  5801,  5802,  5803,
-		5804,  1427,  2316,  2317,  1008,  1009,  2319,  2320,
-		1433,  9330,  9331,  9332,  1437,  1438,  1439,  1440,
-		1441,  -21,   -20,   -19,   -18,   -1505, -17,   -16,
-		19918, -14,   -13,   -12,   -11,   -10,   -9,    -8,
-		-7,    -6,    244,   244,   -3,    -2,    -1,    0,
-		1,     2,     3,     4,     1469,  5,     6,     7,
-		8,     9,     32767, 32767, 32767, 32767, 10,    11,
-		12,    13,    5070,  5071,  3154,  -2985, 1318,  1319,
-		1320,  -2988, 5075,  -2961, -2961, -2961, -2961, 1327,
-		1328,  1329,  1330,  1331,  1332,  1333,  1334,  1335,
-		1336,  1337,  1338,  1339,  1340,  1341,  1342,  1343,
-		1344,  1345,  1346,  1347,  1348,  1349,  1350,  1351,
-		1352,  1353,  1354,  1355,  1356,  1357,  1358,  1359,
-		1360,  1361,  1362,  1363,  1364,  1365,  1366,  1367,
-		7522,  7275,  7276,  1371,  1372,  1373,  -1264, 1375,
-		1376,  1377,  1378,  1379,  1380,  1381,  1382,  957,
-		-14402,957,   1386,  1387,  1388,  1389,  1390,  1391,
-		1392,  1393,  -8970, -8970, -8970, 1397,  1398,  948,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 1400,
-		1401,  1402,  1403,  1404,  1405,  1406,  1407,  1408,
-		1409,  1410,  1411,  1412,  1413,  1414,  1415,  1416,
-		1417,  1418,  1419,  1420,  1421,  32767, 32767, 1422,
-		1423,  1424,  1425,  1426,  1427,  32767, 32767, 1428,
-		1429,  1430,  1431,  8325,  1433,  1434,  1435,  1436,
-		1437,  1438,  1439,  1440,  1441,  1442,  1443,  8346,
-		1445,  1446,  1447,  1448,  4049,  1450,  -523,  -522,
-		1453,  1454,  1455,  1456,  8369,  7014,  1459,  1460,
-		1461,  1462,  1463,  1464,  1465,  32767, 32767, 1466,
-		1467,  1468,  1469,  1470,  1471,  32767, 32767, 1472,
-		1473,  1474,  1475,  1476,  1477,  1478,  1479,  32767,
-		1480,  32767, 1481,  32767, 1482,  32767, 1483,  1484,
-		1485,  1486,  1487,  1488,  1489,  1490,  1491,  1492,
-		-1526, 1494,  -1525, -1525, -1525, 1498,  1499,  -1523,
-		-1523, 1502,  1503,  1504,  1505,  1506,  -699,  -1518,
-		1509,  -1517, 1511,  1512,  1513,  32767, 32767, 1514,
-		1515,  1516,  1517,  1518,  1519,  1520,  1521,  1522,
-		1523,  1524,  1525,  1526,  1527,  1528,  1529,  1530,
-		1531,  1532,  1533,  1534,  1535,  1536,  1537,  1538,
-		1539,  1540,  1541,  1542,  1543,  1544,  1545,  1546,
-		1547,  1548,  1549,  5054,  1551,  1552,  1553,  8447,
-		1555,  1556,  -4049, 1558,  1559,  1560,  -1467, 5063,
-		1563,  5064,  5064,  1566,  32767, 1567,  1568,  1569,
-		1570,  1571,  1572,  1573,  1574,  1575,  1576,  1577,
-		1578,  1579,  1580,  1581,  32767, 1582,  1583,  1584,
-		1585,  1586,  1587,  1588,  1589,  1590,  1591,  1592,
-		1593,  1594,  1595,  32767, 32767, 1596,  1597,  1598,
-		1599,  1600,  1601,  32767, 1602,  1603,  1604,  1605,
-		1606,  1607,  1608,  1609,  1610,  1611,  1612,  1613,
-		1614,  1615,  1616,  1617,  1618,  0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     1630,  1631,  0,     32767, -5702,
-		-5702, -5702, 0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     32767, 0,     32767, 0,
-		32767, -7163, 0,     0,     32767, 32767, 32767, 0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     -7269, -7269, -7269, 627,
-		627,   627,   -2338, 0,     0,     0,     -1612, -7277,
-		3573,  0,     2085,  -17848,-2489, 0,     -7281, -2490,
-		0,     0,     0,     0,     -7283, -1612, -7284, 0,
-		0,     0,     0,     0,     0,     0,     0,     -2503,
-		-7292, -2503, -4309, -4309, 0,     536,   -4307, -4307,
-		-4307, -4307, 677,   -4306, -4306, -4306, -4306, -7305,
-		0,     -4306, -4306, 32767, 32767, -4308, -4308, -7312,
-		-4307, 690,   -4306, -6530, 0,     -4306, 0,     0,
-		-4306, 0,     -4305, -4305, -4305, -4305, -4305, -4305,
-		-2949, -2949, 0,     -1488, -1488, -1488, -1488, -1488,
-		0,     -1487, -1487, -21420,-1487, -1487, -1487, -1487,
-		-1487, -1487, -1487, -1487, -1487, -1736, -1735, -1487,
-		-1487, -1487, -1487, -1487, -1487, -1487, -1487, -1487,
-		-1487, -1487, -1487, -1487, -1487, -1487, -1487, 4614,
-		-1487, -1487, -1487, -1487, -1487, -1487, -1487, 0,
-		-1487, -857,  6413,  6414,  6415,  -1480, -1479, -1478,
-		1488,  -849,  -848,  -847,  766,   6432,  -4417, -843,
-		-2927, 17007, 1649,  -839,  6443,  1653,  -836,  -835,
-		-834,  -833,  6451,  781,   6454,  -829,  -828,  -827,
-		0,     -824,  -823,  0,     0,     1685,  0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		-2837, -2837, -2837, -8991, -8743, -8743, -2837, -2837,
-		-2837, -199,  -2837, -2837, -2837, 0,     0,     0,
-		0,     -2413, 0,     0,     0,     -2841, -2841, -2841,
-		1721,  1722,  -2839, -2839, -2839, 7525,  7526,  7527,
-		1426,  0,     0,     0,     -3710, 3971,  -8765, 6370,
-		6371,  6372,  6373,  5038,  6375,  594,   595,   596,
-		597,   598,   599,   600,   601,   -4546, -4546, 606,
-		607,   608,   609,   610,   611,   612,   -4546, -4546,
-		-4546, -4546, -4546, -4546, -4546, -4546, -4546, -4546,
-		-4546, -4546, -4546, -4546, -4546, -4546, -4546, -4546,
-		-4546, -4546, -4546, -4546, -4546, -4546, -4546, -4546,
-		-4546, -4546, -4546, -4546, 245,   245,   -15114,245,
-		-4546, -4546, 245,   245,   -4546, 245,   245,   -4544,
-		-4544, -4544, -4544, -4544, -4544, 245,   245,   245,
-		245,   245,   245,   -4544, 245,   245,   245,   -4544,
-		-4544, -4544, -4544, -4544, -4544, -4544, -4544, -4544,
-		-4544, -4544, -4544, -4544, -4544, 249,   249,   -4544,
-		249,   -4544, -4544, -4544, -4544, -4544, -4544, -166,
-		-1054, -1054, 256,   256,   -1053, -1053, -165,  -8061,
-		-8061, -8061, -165,  -165,  -165,  -165,  -165,  1298,
-		1298,  1298,  1298,  2786,  1299,  1299,  -18634,1299,
-		1299,  1299,  1299,  1299,  1299,  1299,  1299,  1299,
-		1050,  1051,  1299,  1299,  1299,  1299,  1299,  1299,
-		1299,  1299,  -165,  1300,  1300,  1300,  1300,  1300,
-		1300,  1300,  7401,  1300,  1300,  1300,  1300,  1300,
-		-3756, -3756, -1838, 4302,  0,     0,     0,     4309,
-		-3753, 4284,  4285,  4286,  4287,  0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     -6154, -5906,
-		-5906, 0,     0,     0,     2638,  0,     0,     0,
-		0,     0,     0,     0,     0,     426,   15786, 428,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		10364, 10365, 10366, 0,     0,     451,   452,   453,
-		454,   455,   456,   32767, 32767, 0,     0,     0,
-		32767, 32767, 32767, 0,     0,     0,     0,     0,
-		0,     0,     32767, 0,     0,     0,     0,     0,
-		0,     0,     32767, 1842,  32767, 32767, 1843,  32767,
-		32767, 0,     32767, 0,     32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 1844,  32767,
-		0,     0,     0,     32767, 32767, 32767, 1846,  1847,
-		32767, 1848,  1849,  32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 0,     0,     0,     32767,
-		32767, 32767, 32767, 0,     32767, 32767, 1851,  32767,
-		32767, 1852,  32767, 0,     0,     32767, 32767, 32767,
-		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 5990,  5991,  5992,  5993,  32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 1854,  32767, 1855,  6223,  6224,  6225,
-		6226,  6227,  6228,  6229,  6230,  6231,  6232,  1856,
-		1857,  1574,  1574,  1574,  32767, 32767, 1572,  1572,
-		32767, 32767, 1863,  1864,  32767, 32767, 32767, 32767,
-		32767, 32767, 1865,  1866,  32767, 32767, 1867,  1868,
-		32767, 32767, 1869,  1870,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 890,   32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 891,   32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 1871,  1872,
-		3017,  1874,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 3018,  32767, 32767,
 		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, 799,   32767, 32767, 32767,
+		32767, 800,   32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 801,   802,   32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 1875,  1876,  1877,  1878,  32767, 32767,
-		32767, 0,     0,     32767, 1879,  1880,  1881,  1882,
 		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, 0,     0,
+		0,     0,     0,     0,     6545,  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,
+		0,     32767, 32767, 32767, 0,     32767, 32767, 32767,
+		32767, 32767, 32767, 0,     0,     32767, 0,     0,
+		32767, 0,     32767, 32767, 32767, 32767, 32767, 32767,
+		-5711, 241,   242,   243,   244,   0,     246,   247,
+		248,   249,   250,   251,   252,   0,     0,     0,
+		0,     892,   0,     0,     0,     0,     0,     0,
+		264,   0,     0,     0,     32767, 32767, 0,     0,
+		32767, 32767, 32767, 32767, 32767, 32767, 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, 1883,  1884,  32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -1179,23 +848,99 @@ Decomp_hash_func(const void *key)
 		32767, 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,     32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 893,   -266,  895,   32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		0,     0,     0,     0,     0,     0,     0,     0,
+		284,   285,   286,   287,   288,   0,     290,   291,
+		292,   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, 0,
+		293,   294,   295,   296,   297,   298,   32767, 32767,
+		299,   -4082, -4081, -4080, 303,   0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     32767, 0,     0,     0,     0,
+		0,     32767, 0,     32767, 0,     0,     32767, 0,
+		0,     32767, 0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     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, -4245, -4245, 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,     32767, 32767, 32767, 32767,
+		32767, 32767, -689,  32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -706,
+		-706,  -706,  -706,  -706,  -706,  -706,  -706,  32767,
+		32767, -7551, 32767, 32767, 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,     -2263, 2526,  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, -4377, -4377, -8024, -8023, -4377, -4377,
+		-3916, -4377, -4377, -4377, -4377, -4377, -4377, -4377,
+		32767, -4378, -4378, -4378, -4378, -4378, -4378, -4378,
+		-4378, -4378, -4378, -4378, -4378, -4378, -4378, -4378,
+		-4378, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 150,   1867,  150,   0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     5247,  0,     939,   0,     940,   0,     5518,
+		0,     8555,  0,     0,     0,     5253,  0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     944,
+		0,     0,     0,     0,     0,     0,     945,   0,
+		946,   0,     0,     947,   948,   0,     949,   950,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     -759,  959,   0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     960,   961,   0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     5204,  0,     0,     0,
+		0,     962,   0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     963,   964,   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,
@@ -1203,6 +948,7 @@ Decomp_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 5186,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -1210,219 +956,176 @@ Decomp_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 1885,  1886,  1887,  1888,
-		1889,  1890,  1891,  1892,  1893,  1894,  4758,  4759,
-		4760,  4761,  4762,  1900,  1901,  1902,  1903,  1904,
-		1905,  1906,  1907,  1908,  1909,  924,   1911,  1912,
-		1913,  1914,  1915,  1916,  1917,  1918,  1919,  1920,
-		1921,  1107,  1923,  1924,  1925,  1926,  1927,  1928,
-		1929,  1930,  1931,  1932,  1933,  1934,  1935,  1936,
-		1937,  1938,  1939,  1123,  1123,  1123,  1943,  1944,
-		1945,  1946,  1947,  1948,  1949,  1950,  1951,  1952,
-		1953,  1954,  1955,  1956,  1957,  1958,  1959,  1960,
-		1961,  1962,  1963,  1964,  1965,  1966,  1967,  1968,
-		1969,  1970,  1971,  1972,  1973,  1974,  4727,  1976,
-		1977,  1978,  1979,  1980,  1981,  1982,  1983,  1984,
-		1985,  1986,  1987,  1988,  1989,  1990,  1991,  1992,
-		1993,  1994,  1995,  1996,  1997,  1998,  1999,  2000,
-		-2451, 2002,  -2448, 2004,  2005,  2006,  -2441, -2724,
-		2009,  2010,  2011,  2012,  2013,  2014,  2015,  2016,
-		2017,  2018,  2019,  2020,  2021,  0,     2023,  985,
-		985,   7086,  985,   985,   985,   985,   985,   -4071,
-		-4071, -2153, 3987,  3988,  3989,  0,     3991,  -4071,
-		3966,  3967,  -4071, 260,   261,   262,   263,   264,
-		265,   266,   3264,  32767, 32767, -2437, -2436, 32767,
-		32767, 32767, 32767, 32767, 32767, 270,   271,   272,
-		273,   274,   275,   4728,  277,   278,   279,   280,
-		281,   -2434, 283,   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, 0,     32767,
+		0,     0,     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,     32767, 32767,
 		32767, 32767, 32767, 32767, 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, 0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		32767, 32767, 32767, 32767, 1329,  441,   441,   1751,
-		1751,  442,   442,   1330,  -6566, -6566, 0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     -3047, -274,
-		-273,  -272,  -271,  1946,  4745,  0,     0,     -267,
-		-266,  1945,  -264,  -263,  0,     0,     0,     0,
-		0,     0,     0,     0,     -6199, 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, 0,     2539,  2540,  2541,
-		3659,  3660,  3661,  3662,  3663,  3664,  3665,  3666,
-		-6233, -6233, 3671,  3672,  3673,  3674,  3675,  3676,
-		3677,  3678,  -6233, -6233, -6233, -6233, -6233, -6233,
-		4956,  -99,   -98,   -6198, -96,   -95,   -94,   -93,
-		-92,   4965,  4966,  -6233, -6233, -6233, -6233, -6233,
-		2573,  2574,  -3059, 3049,  -3060, -3060, 4621,  -6234,
-		-6234, -6234, -6234, -6234, -6234, -6234, -6234, -6234,
-		-8015, -8015, -8015, -8015, -6234, -6234, -6234, -6234,
-		-6234, -6234, -6234, -6234, -6234, -6234, -6234, -6234,
-		-6234, -6234, -6234, -6234, -6234, -6234, -6234, -6234,
-		-6234, -1178, -1178, 4923,  -1178, -1178, -1178, -1178,
-		-1178, -6234, -6234, -4316, 1824,  1825,  1826,  -2163,
-		1828,  -6234, 1803,  1804,  1805,  1806,  -5874, 6863,
-		-8271, -8271, -8271, -8271, -6935, -8271, -2489, -2489,
-		-2489, -2489, -2489, -2489, -2489, -2489, 2659,  2660,
-		-2491, -2491, -2491, -2491, -2491, -2491, -2491, 2668,
-		2669,  2670,  2671,  2672,  2673,  2674,  2675,  2676,
-		2677,  2678,  2679,  2680,  2681,  2682,  2683,  2684,
-		2685,  2686,  2687,  2688,  2689,  2690,  2691,  2692,
-		2693,  2694,  2695,  2696,  2697,  -2093, -2092, 13268,
-		-2090, 2702,  2703,  -2087, -2086, 2706,  -2767, 2708,
-		2709,  2710,  2711,  2712,  3178,  3179,  3180,  3181,
-		3182,  3183,  3184,  3185,  3186,  3187,  3188,  3189,
-		3190,  3191,  3192,  3193,  3194,  3195,  3196,  3197,
-		3198,  3199,  3200,  3201,  3202,  3203,  3204,  3205,
-		3206,  3207,  3208,  3209,  3281,  3211,  3212,  3213,
-		3214,  3215,  3216,  3217,  3218,  3219,  3220,  3221,
-		3222,  4107,  4108,  4109,  4110,  4111,  4112,  3229,
-		4115,  4116,  4117,  4118,  4119,  4120,  3236,  3237,
-		4124,  4125,  4126,  4127,  4128,  7621,  3244,  4133,
-		4134,  2825,  4136,  4137,  4138,  3251,  11148, 11149,
-		11150, 3255,  3256,  3257,  3258,  3259,  1797,  1798,
-		1799,  1800,  313,   1801,  1802,  21736, 1804,  1805,
-		1806,  1807,  1808,  1809,  1810,  1811,  1812,  2062,
-		2062,  1815,  1816,  1817,  1818,  1819,  1820,  1821,
-		1822,  3287,  1823,  1824,  1825,  32767, 3291,  3292,
-		3293,  3294,  3295,  3296,  3297,  3298,  3299,  3300,
-		3301,  3302,  3303,  3304,  32767, 32767, 3305,  32767,
-		9008,  32767, 32767, 3307,  3308,  3309,  3310,  3311,
-		3312,  3313,  3314,  3315,  3316,  32767, 3317,  32767,
-		3318,  32767, 32767, 3319,  3320,  32767, 32767, 32767,
-		3321,  3322,  3323,  3324,  3325,  3326,  3327,  3328,
-		3329,  3330,  3331,  3332,  3333,  10603, 10604, 10605,
-		2710,  2711,  2712,  5678,  3341,  3342,  3343,  4956,
-		10622, -227,  3347,  1263,  21197, 5839,  3351,  10633,
-		5843,  3354,  3355,  3356,  3357,  10641, 4971,  10644,
-		3361,  3362,  3363,  3364,  3365,  3366,  3367,  3368,
-		5872,  10662, 5874,  7681,  7682,  3374,  2839,  7683,
-		7684,  7685,  7686,  2703,  7687,  7688,  7689,  7690,
-		10690, 3386,  7693,  7694,  7695,  0,     7697,  7698,
-		10703, 7699,  2703,  7700,  9925,  3396,  7703,  3398,
-		3399,  7706,  3401,  7707,  7708,  7709,  7710,  7711,
-		7712,  6357,  6358,  3410,  4899,  4900,  4901,  4902,
-		4903,  3416,  4904,  4905,  24839, 4907,  4908,  4909,
-		4910,  4911,  4912,  4913,  4914,  4915,  5165,  5165,
-		4918,  4919,  4920,  4921,  4922,  4923,  4924,  4925,
-		4926,  4927,  4928,  4929,  4930,  4931,  4932,  4933,
-		-1167, 4935,  4936,  4937,  4938,  4939,  4940,  4941,
-		3455,  4943,  4314,  -2955, -2955, -2955, 4941,  4941,
-		4941,  1976,  4314,  4314,  4314,  2702,  -2963, 7887,
-		4314,  6399,  -13534,1825,  4314,  -2967, 1824,  4314,
-		4314,  4314,  4314,  -2969, 2702,  -2970, 4314,  4314,
-		4314,  3488,  4313,  4313,  3491,  3492,  1808,  3494,
-		32767, 0,     0,     32767, 32767, 0,     0,     0,
-		0,     32767, 0,     0,     0,     0,     -2999, 4306,
-		0,     0,     0,     7696,  0,     0,     32767, 0,
-		32767, 0,     -2224, 4306,  0,     4306,  4306,  0,
-		0,     0,     0,     0,     0,     0,     0,     1356,
-		1356,  4305,  2817,  2817,  2817,  2817,  2817,  2817,
-		2817,  2817,  -17116,2817,  2817,  2817,  2817,  2817,
-		2817,  2817,  2817,  2817,  2568,  2569,  2817,  2817,
-		2817,  2817,  2817,  2817,  2817,  2817,  2817,  2817,
-		2817,  2817,  2817,  2817,  2817,  2817,  8918,  2817,
-		2817,  2817,  2817,  2817,  2817,  2817,  4304,  2817,
-		3447,  10717, 10718, 10719, 3531,  3532,  32767, 3533,
-		3534,  3535,  3536,  3537,  32767, 3538,  32767, 3539,
-		3540,  32767, 3541,  3542,  32767, 3543,  3544,  3545,
-		3546,  3547,  3548,  3549,  3550,  3551,  3552,  3553,
-		3554,  3555,  3556,  3557,  3558,  3559,  3560,  3561,
-		3562,  3563,  3564,  3565,  3566,  3567,  3568,  3569,
-		3570,  3571,  3572,  3573,  3574,  3575,  3576,  3577,
-		3578,  3579,  3580,  3581,  3582,  3583,  3584,  3585,
-		3586,  3587,  3588,  3589,  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,
-		2324,  3635,  3636,  3637,  3638,  10646, 10647, 3641,
-		3642,  3643,  3644,  3645,  3646,  3647,  3648,  3649,
-		3650,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 3651,  3652,  3653,  3654,  3655,  3656,
-		3657,  3658,  3659,  3660,  3661,  3662,  3663,  3664,
-		3665,  3666,  3667,  3668,  3669,  3670,  3671,  3672,
-		3673,  3674,  3675,  3676,  3677,  3678,  3679,  3680,
-		3681,  3682,  3683,  3684,  3685,  3686,  3687,  3688,
-		3689,  3690,  3691,  3692,  3693,  3694,  3695,  32767,
-		3696,  3697,  3698,  3699,  3700,  3701,  3702,  3703,
-		3704,  3705,  3706,  3707,  3708,  3709,  3710,  3711,
-		3712,  3713,  3714,  3715,  3716,  3717,  3718,  3719,
-		3720,  3721,  3722,  3723,  3724,  3725,  3726,  3727,
-		3728,  3729,  3730,  3731,  3732,  3733,  3734,  3735,
-		3736,  3737,  3738,  3739,  3740,  3741,  3742,  3743,
-		3744,  3745,  3746,  3747,  3748,  3749,  3750,  3751,
-		3752,  3753,  3754,  3755,  3756,  3757,  3758,  3759,
-		3760,  3761,  3762,  3763,  3764,  3765,  3766,  3767,
-		3768,  3769,  3770,  3771,  3772,  3773,  3774,  3775,
-		3776,  3777,  3778,  3779,  3780,  3781,  3782,  3783,
-		3784,  3785,  3786,  3787,  3788,  3789,  3790,  3791,
-		3792,  3793,  3794,  3795,  3796,  3797,  3798,  3799,
-		3800,  -210,  -209,  3803,  3804,  3805,  3806,  3807,
-		3808,  3809,  3810,  3811,  3812,  3813,  3814,  3815,
-		3816,  3817,  3818,  3819,  3820,  3821,  3822,  3823,
-		3824,  3825,  3826,  3827,  3828,  3829,  3830,  3831,
-		3832,  3833,  3834,  3835,  3836,  3837,  3838,  3839,
-		3840,  3841,  3842,  3843,  3844,  3845,  3846,  3847,
-		3848,  3849,  -4925, 3851,  -6041, -6041, -6041, -6041,
-		-6041, -6041, -6041, 3859,  3860,  -6043, -6043, -6043,
-		-6043, -6043, -6043, -6043, -6043, 3869,  3870,  3871,
-		3872,  3873,  3874,  -7314, -2258, -2258, 3843,  -2258,
-		-2258, -2258, -2258, -2258, -7314, -7314, 3886,  3887,
-		3888,  3889,  3890,  -4915, -4915, 719,   720,   721,
-		722,   -6958, 3898,  3899,  3900,  3901,  3902,  3903,
-		3904,  3905,  3906,  5688,  5689,  5690,  5691,  3911,
-		3912,  3913,  3914,  3915,  3916,  3917,  3918,  3919,
-		3920,  3921,  3922,  3923,  3924,  3925,  3926,  3927,
-		3928,  3929,  3930,  3931,  -1124, -1123, -7223, -1121,
-		-1120, -1119, -1118, -1117, 3940,  3941,  2024,  -4115,
-		-4115, -4115, -125,  -4115, 3948,  -4088, -4088, 3951,
-		32767, 3952,  3953,  3954,  3955,  3956,  3957,  3958,
-		3959,  3960,  3961,  3962,  3963,  3964,  3965,  3966,
-		3967,  3968,  3969,  3970,  3971,  3972,  3973,  3974,
-		3975,  3976,  3977,  3978,  3979,  3980,  3981,  3982,
-		3983,  3984,  3985,  3986,  3987,  3988,  3989,  3990,
-		3991,  3992,  3993,  3994,  3995,  3996,  3997,  3998,
-		3999,  4000,  4001,  4002,  4003,  14,    4005,  4006,
-		4007,  4008,  4009,  4010,  4011,  4012,  4013,  32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 4014,  4015,  4016,  4017,  4018,  4019,  4020,
-		4021,  4022,  4023,  4024,  4025,  4026,  2025,  2026,
-		2027,  4030,  4031,  4032,  4033,  4034,  4035,  4036,
-		4037,  4038,  4039,  4040,  4041,  4042,  4043,  4044,
-		4045,  4046,  4047,  4048,  4049,  4050,  4051,  4052,
-		4053,  4054,  4055,  4056,  4057,  4058,  4059,  4060,
-		4061,  4062,  4063,  4064,  4065,  4066,  4067,  4068,
-		4069,  4070,  4071,  4072,  4073,  4074,  4075,  4076,
-		4077,  32767, 32767, 4078,  4079,  4080,  4081,  4082,
-		4083,  4084,  4085,  4086,  4087,  4088,  4089,  4090,
-		4091,  4092,  4093,  4094,  4095,  4096,  4097,  4098,
-		4099,  4100,  4101,  4102,  4103,  4104,  4105,  4106,
-		4107,  4108,  4109,  4110,  4111,  4112,  4113,  4114,
-		4115,  4116,  4117,  0,     4119,  4120,  4121,  4122,
-		4123,  4124,  4125,  0,     4127,  4128,  1401,  4130,
-		4131,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 5256,  -4973, -4973, 32767,
+		5261,  5262,  5263,  5264,  5265,  5266,  5267,  -4974,
+		-4974, 978,   979,   980,   981,   32767, 982,   983,
+		984,   985,   986,   987,   988,   32767, 32767, 32767,
+		32767, 1624,  32767, 32767, 32767, 32767, 32767, 32767,
+		990,   32767, 32767, 0,     991,   992,   32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4759,
+		4760,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, -723,  -722,  -2974, 32767, 996,   -719,  -168,
+		-717,  -716,  -715,  1002,  1003,  1004,  -712,  -711,
+		32767, -710,  1008,  1009,  1010,  1011,  -2060, 5892,
+		2764,  2764,  2764,  1017,  1018,  1019,  1020,  1021,
+		1022,  2567,  1024,  32767, 1025,  1026,  1027,  1028,
+		1029,  1030,  1031,  1032,  1033,  1034,  2589,  1036,
+		1037,  -1729, -1729, -1729, -1729, 1042,  4211,  4211,
+		4211,  4211,  4211,  4211,  1049,  1050,  4209,  1427,
+		32767, 32767, 32767, 0,     0,     32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, -825,  32767, 32767,
+		32767, 32767, 32767, 4718,  4719,  4720,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 4721,  4722,
+		4723,  4724,  4725,  4726,  4727,  6291,  6292,  6293,
+		4728,  4729,  4730,  4731,  4732,  6299,  6300,  -4992,
+		1070,  1071,  1072,  1073,  1074,  1075,  1076,  1077,
+		1078,  1079,  1080,  4733,  1082,  4734,  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,  4737,  1148,  4738,
+		4739,  1151,  1152,  1153,  1154,  32767, 4740,  4741,
+		4742,  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,  1183,  1184,  1185,  1186,  1187,  1188,
+		1189,  1190,  1191,  1192,  1193,  1194,  11979, 6272,
+		1758,  1758,  1199,  1200,  1201,  1202,  1203,  1204,
+		1205,  1206,  1207,  1208,  1209,  1210,  1211,  1212,
+		1213,  1214,  1215,  1216,  1217,  1218,  1219,  1220,
+		1221,  1222,  1223,  1224,  1225,  1226,  1227,  1228,
+		1229,  -1074, -1073, 1232,  1233,  1234,  1235,  1236,
+		1237,  1238,  1239,  1240,  1241,  1242,  1243,  1244,
+		1245,  1246,  1247,  1248,  1249,  1250,  1251,  1252,
+		1253,  1254,  1255,  1256,  1257,  1258,  1259,  1260,
+		1261,  1262,  1263,  1264,  1265,  1266,  1267,  1268,
+		1269,  1270,  1271,  1272,  1273,  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,  4676,
+		4677,  512,   32767, 32767, 32767, 32767, 1683,  1684,
+		1685,  1314,  155,   1316,  1317,  1318,  1319,  1320,
+		1321,  161,   1323,  1324,  1325,  1326,  1327,  1328,
+		1329,  1330,  1331,  1332,  1333,  1334,  1335,  1336,
+		1337,  1338,  -4375, -4374, -8536, -8536, -8536, -8536,
+		1345,  1346,  1444,  1445,  1446,  1447,  1448,  -4360,
+		1353,  1354,  -8525, -5383, 1357,  -8524, -8524, -8524,
+		-8524, -4348, 1363,  -2456, 686,   1366,  1367,  -8518,
+		-8518, -7581, 1371,  1372,  -5364, 1374,  1375,  -4332,
+		-4331, 1378,  1379,  1380,  -4327, -8841, -8841, -8841,
+		-8841, -8841, -8841, -8841, 1389,  1390,  -8843, -8843,
+		-8843, -8843, -8843, -8843, -8843, -8843, 1399,  1400,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 5957,
+		2655,  -5028, -5028, 2658,  2659,  -3322, -1679, -1679,
+		-1679, -1679, -1679, -7010, -1679, -1679, -7010, -7010,
+		-1679, -1679, -1679, -1679, -1679, 32767, 32767, -1681,
+		-1681, -1681, -1681, -1681, -1681, 32767, 32767, -1683,
+		-1683, -3290, -3289, -3288, -3287, -3286, -3285, -12842,
+		7263,  -3282, -499,  -9550, -499,  -9549, -9549, -9549,
+		96,    -9549, -9816, -9549, 1704,  -9548, -1864, -1863,
+		-9548, -9548, -3566, -5208, -5207, -5206, -5205, -5204,
+		128,   -5202, 131,   132,   133,   32767, 32767, -5195,
+		-3568, -3568, -5190, -5189, -3568, 32767, 32767, -5185,
+		-5184, -5183, -3570, -5180, 1478,  -5179, -3571, 32767,
+		-3572, 32767, -3573, 32767, 5984,  32767, -3575, 2695,
+		2696,  2697,  2698,  2699,  2700,  -6944, 2702,  2970,
+		2704,  6008,  2706,  -4977, -4977, 2709,  2710,  -3271,
+		1502,  -3478, 1504,  -3626, -3626, -7766, 6033,  1509,
+		-3625, -7767, 1512,  1513,  1514,  32767, 32767, -3625,
+		-3625, -3625, -3625, -3625, -3625, -3625, 1522,  -3624,
+		1524,  1525,  1526,  1527,  1528,  1529,  0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     3128,  0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     1581,  -673,  0,     784,   0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     3025,  0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     -6843,
+		-6843, 0,     0,     0,     1619,  1620,  1621,  0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     -2788, 32767, 32767,
+		1634,  1635,  1636,  1637,  1638,  1639,  1640,  1641,
+		4194,  1643,  1644,  32767, 32767, 32767, 32767, 32767,
+		32767, 1352,  32767, 32767, 32767, 32767, 32767, 1646,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 1647,  1648,  1649,  32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 1650,
+		32767, 32767, 32767, 1651,  1652,  32767, 1653,  1654,
+		32767, 32767, 32767, 32767, 1655,  32767, 1656,  32767,
+		32767, 32767, 32767, 399,   399,   32767, 32767, 1657,
+		1658,  1659,  32767, 32767, 32767, 32767, 32767, 32767,
+		0,     0,     0,     0,     32767, 32767, 32767, 1660,
+		32767, 32767, 32767, 32767, 32767, 6619,  32767, 1661,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		5971,  5972,  5973,  5974,  1664,  5975,  6243,  5977,
+		9281,  5979,  -1704, -1704, 5982,  5983,  2,     4775,
+		-205,  4777,  -353,  -353,  -4493, 9306,  4782,  -352,
+		-4494, 4785,  4786,  4787,  4788,  -350,  -350,  6044,
+		1691,  6045,  6046,  1694,  6047,  1696,  1697,  6048,
+		1699,  6049,  6050,  6051,  6052,  0,     0,     0,
+		0,     0,     0,     32767, 0,     0,     0,     0,
+		1704,  0,     32767, 0,     32767, 32767, 32767, 32767,
+		32767, 32767, 0,     32767, 32767, 32767, -3338, -3338,
+		-3338, 0,     32767, 0,     32767, 0,     0,     0,
+		32767, 0,     0,     32767, 0,     32767, 32767, 0,
+		0,     0,     0,     0,     32767, 0,     32767, 0,
+		1705,  1706,  1707,  1708,  1709,  759,   759,   759,
+		759,   759,   759,   759,   0,     0,     0,     0,
+		0,     3035,  0,     32767, 0,     1719,  10109, 1721,
+		1722,  1723,  1724,  1725,  1726,  1727,  1728,  1729,
+		1730,  0,     0,     0,     0,     0,     0,     0,
+		0,     9764,  6757,  6758,  6759,  8018,  0,     0,
+		0,     1720,  1720,  1720,  0,     0,     2557,  2558,
+		1720,  0,     -1282, 0,     -1281, -1281, -1281, 633,
+		1720,  -1279, -1279, 1720,  4767,  0,     1720,  1720,
+		0,     0,     1718,  1718,  -3263, 0,     6007,  6008,
+		-7790, 6010,  6011,  6012,  -3266, 1719,  0,     1718,
+		0,     1717,  0,     -150,  1717,  1717,  1717,  32767,
+		1716,  1716,  1716,  3969,  1715,  0,     1716,  1166,
+		1716,  1716,  1716,  0,     0,     0,     1717,  1717,
+		1717,  1717,  0,     0,     0,     0,     3072,  -4879,
+		-1750, -1749, -1748, 0,     0,     0,     0,     0,
+		0,     -1544, 0,     1789,  0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     -1554, 0,
+		0,     2767,  2768,  2769,  2770,  0,     -3168, -3167,
+		-3166, -3165, -3164, -3163, 0,     0,     -3158, -375,
+		-9426, -375,  -9425, 1821,  1822,  218,   -9427, 1825,
+		-9426, 1827,  1828,  -1742, -1741, 1878,  1879,  1833,
+		1834,  32767, 32767, 32767, 32767, 2642,  -4765, -1739,
+		-1738, 32767, 1835,  32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 0,     0,     0,     0,
+		32767, 32767, 32767, 2718,  -3491, 3174,  3174,  3174,
+		-3669, -3669, -3669, -3669, -3669, -5232, -5232, -5232,
+		-3666, -3666, -3666, -3666, -3666, -5232, -5232, 6061,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     -3652, 0,     -3651, 0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
@@ -1430,83 +1133,586 @@ Decomp_hash_func(const void *key)
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     -3590, 0,     -3589,
+		-3589, 0,     0,     0,     0,     32767, 1842,  32767,
+		32767, 32767, 32767, 1843,  32767, 32767, 1844,  32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 1845,  32767,
+		1846,  32767, 32767, 32767, 32767, 32767, 1847,  1848,
+		0,     1849,  1850,  0,     32767, 32767, 0,     0,
+		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 1851,  32767, 32767, 1852,  32767,
+		32767, 1853,  32767, 1854,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, -4903, 32767, -6162, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 137,
+		1858,  3141,  1860,  3142,  32767, 32767, 1229,  143,
+		32767, 32767, 144,   -2902, 0,     0,     32767, 32767,
+		32767, 32767, 148,   5130,  0,     0,     -4140, 9659,
+		32767, 0,     -4142, 5137,  5138,  0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     32767,
+		0,     5148,  5149,  5150,  5151,  5152,  5153,  4782,
+		3623,  3623,  3623,  3623,  3623,  3623,  3623,  3623,
+		3623,  3623,  3623,  3623,  3623,  3623,  6751,  3623,
+		3623,  3623,  3623,  3623,  3623,  3623,  3623,  3623,
+		3623,  3623,  3623,  3623,  32767, 3622,  3622,  3622,
+		3622,  32767, 3621,  3621,  3621,  0,     3622,  32767,
+		3621,  32767, 32767, 32767, 3618,  3618,  3618,  3618,
+		3618,  3618,  3618,  32767, 2944,  0,     4402,  3618,
+		3618,  3618,  3618,  3618,  3618,  3618,  3618,  3618,
+		3618,  3618,  3618,  3618,  0,     0,     3620,  3620,
+		3620,  3620,  3620,  3620,  -762,  6646,  3621,  3621,
+		3621,  3621,  3621,  3621,  3621,  3621,  3621,  3621,
+		-3222, -3222, 3621,  3621,  3621,  5240,  5241,  5242,
+		0,     0,     3623,  3623,  3623,  0,     3624,  3624,
+		3624,  3624,  3624,  3624,  3624,  3624,  836,   0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     -3647, -3646, 0,     0,
+		461,   0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     4011,  4011,  0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     8775,  0,
-		9893,  9894,  9895,  9896,  9897,  9898,  9899,  0,
-		0,     9904,  9905,  9906,  9907,  9908,  9909,  9910,
-		9911,  0,     0,     0,     0,     0,     0,     11189,
-		6134,  6135,  35,    6137,  6138,  6139,  6140,  6141,
-		11198, 11199, 0,     0,     0,     0,     0,     8806,
-		8807,  3174,  3174,  3174,  3174,  10855, 0,     0,
-		0,     0,     0,     0,     0,     0,     0,     -1781,
-		-1781, -1781, -1781, 0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     468,   0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		5056,  5056,  11157, 5056,  5056,  5056,  5056,  5056,
-		0,     0,     1918,  8058,  8059,  8060,  4071,  8062,
-		0,     8037,  8038,  0,     4331,  4332,  4333,  4334,
-		4335,  4336,  4337,  7335,  7336,  1635,  1636,  1637,
-		1638,  1639,  1640,  1641,  1642,  1643,  4349,  4350,
-		4351,  4352,  4353,  4354,  8807,  4356,  4357,  4358,
-		4359,  4360,  1645,  4362,  4363,  4364,  4365,  32767,
-		32767, 32767, 32767, 32767, 8912,  8913,  8914,  8915,
-		8916,  8917,  8918,  8919,  8920,  8921,  8922,  8923,
-		8924,  8925,  8926,  8927,  4137,  4138,  19498, 4140,
-		8932,  8933,  4143,  4144,  8936,  4146,  4147,  8937,
-		8938,  8939,  8940,  8941,  8942,  4154,  4155,  4156,
-		4157,  4158,  4159,  8949,  4161,  4162,  4163,  8953,
-		8954,  8955,  8956,  8957,  8958,  8959,  8960,  8961,
-		8962,  8963,  8964,  8965,  8966,  4174,  4175,  8969,
-		4177,  8971,  8972,  8973,  8974,  8975,  8976,  4599,
-		5488,  5489,  4180,  4181,  5491,  5492,  4605,  12502,
-		12503, 12504, 4609,  4610,  4611,  4612,  4613,  3151,
-		3152,  3153,  3154,  1667,  3155,  3156,  23090, 3158,
-		3159,  3160,  3161,  3162,  3163,  3164,  3165,  3166,
-		3416,  3416,  3169,  3170,  3171,  3172,  3173,  3174,
-		3175,  3176,  4641,  3177,  3178,  3179,  3180,  3181,
-		3182,  3183,  -2917, 3185,  3186,  3187,  3188,  3189,
-		8246,  8247,  6330,  191,   4494,  4495,  4496,  188,
-		8251,  215,   215,   215,   215,   4503,  4504,  4505,
-		4506,  4507,  4508,  4509,  4510,  4511,  4512,  4513,
-		4514,  4515,  4516,  4517,  4518,  4519,  4520,  4521,
-		4522,  4523,  4524,  4525,  4526,  4527,  4528,  4529,
-		4530,  4531,  4532,  4533,  4534,  4535,  4536,  4537,
-		4538,  4539,  4540,  4541,  4542,  4543,  10698, 10451,
-		10452, 4547,  4548,  4549,  1912,  4551,  4552,  4553,
-		4554,  4555,  0,     32767, 4130,  4130,  -11229,4130,
-		4559,  4560,  4561,  0,     0,     4562,  4563,  4564,
-		-5799, -5799, -5799, 303,   32767, 4117,  4117,  4117,
-		4117,  4117,  4117,  2031,  2032,  4574,  4575,  4576,
-		32767, 32767, 32767, 4577,  4578,  4579,  4580,  4581,
-		4582,  4583,  32767, 4584,  4585,  4586,  4587,  4588,
-		4589,  4590,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		0,     0,     0,     0,     32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 0,     32767, 32767,
-		32767, 32767, 32767, 32767, 2034,  4816,  4817,  4818,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 2035,  32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		0,     0,     32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 0,     0,     32767, 0,     470,   471,   32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 472,   473,   474,   475,   476,   32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 775,   32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 4803,  4804,  7596,  7596,  7596,
+		4808,  4809,  4810,  4811,  4812,  4813,  4814,  4815,
+		4816,  4817,  4818,  4819,  4820,  4821,  4822,  4823,
+		4824,  3988,  3988,  4827,  4828,  7830,  1792,  7832,
+		7833,  7834,  5921,  4835,  7835,  7836,  4838,  0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     3036,  6038,  0,
+		6040,  6041,  6042,  4129,  3043,  6043,  6044,  3046,
+		0,     3048,  3049,  3050,  6046,  6047,  3053,  3054,
+		3055,  3056,  -1230, 3058,  3059,  -1232, -1232, 3062,
+		3063,  3064,  3065,  3066,  3067,  3068,  3069,  3070,
+		3071,  3072,  3073,  3074,  3075,  3076,  3077,  3078,
+		3079,  3080,  3081,  3632,  3083,  3084,  3085,  3086,
+		3087,  3088,  3089,  3090,  3091,  3092,  3093,  3094,
+		3095,  3096,  3097,  3098,  3099,  3100,  3101,  3102,
+		3103,  -814,  3105,  3106,  3107,  3108,  -6867, 3110,
+		3111,  3112,  3113,  9179,  9180,  3116,  3117,  3118,
+		3119,  -22,   3121,  3122,  3123,  3124,  3125,  3126,
+		3127,  3128,  3129,  3130,  2196,  3132,  3133,  2197,
+		3135,  3136,  3137,  3138,  3139,  3140,  3141,  3142,
+		3143,  3144,  -6500, 3146,  3414,  3148,  6452,  3150,
+		-4533, -4533, 3153,  3154,  -2827, -1184, -1184, -1184,
+		-1184, -1184, -6515, -1184, -1184, -6515, -6515, -1184,
+		-1184, -1184, -1184, -1184, -1184, -1184, -1184, -1184,
+		-1184, -1184, -1184, -1184, -1184, -1184, -1184, -1184,
+		-2791, -2790, -2789, -2788, -2787, -2786, -12343,7762,
+		-2783, 0,     -9051, 0,     -9050, -9050, -9050, 595,
+		-9050, -9317, -9050, 2203,  -9049, -1365, -1364, -9049,
+		-9049, -3067, -4709, -4708, -4707, -4706, -4705, 627,
+		-4703, 630,   631,   632,   -3067, -3067, -4694, -3067,
+		-3067, -4689, -4688, -3067, 3131,  -4683, -4682, -4681,
+		-4680, -3067, -4677, 1981,  -4676, -3068, -3068, -3068,
+		-3068, -3068, -3068, 6490,  -13614,-3068, 3202,  3203,
+		3204,  3205,  3206,  3207,  -6437, 3209,  3477,  3211,
+		6515,  3213,  -4470, -4470, 3216,  3217,  -2764, 2009,
+		-2971, 2011,  -3119, -3119, -7259, 6540,  2016,  -3118,
+		-7260, 2019,  2020,  2021,  2022,  -3116, -3116, 3278,
+		3279,  3280,  3281,  3282,  3283,  3284,  3285,  3286,
+		3287,  3288,  3289,  3290,  3291,  32767, 3292,  3293,
+		-869,  -869,  -869,  -869,  9107,  9108,  9109,  9110,
+		9111,  9112,  9113,  3305,  32767, 32767, -863,  32767,
+		-864,  32767, 32767, -866,  -866,  3310,  3311,  -864,
+		-864,  -864,  71,    -864,  -864,  32767, 72,    32767,
+		2290,  32767, 32767, 3320,  3321,  32767, 32767, 32767,
+		3322,  -1192, -1192, -1192, -1192, -1192, -1192, -1192,
+		-1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192,
+		-1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192,
+		-1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192,
+		-1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192,
+		-1192, -1192, -1192, 3365,  3366,  3367,  -1189, -1189,
+		-1189, -1189, -1189, -1189, 3374,  3375,  -1187, -1187,
+		-1187, -1187, -1187, -1187, 3382,  3383,  -1185, -1185,
+		-1185, -1185, -1185, -1185, 32767, 32767, -1185, -1185,
+		-1185, 3393,  3394,  3395,  -1182, 3397,  3398,  3399,
+		3400,  3401,  3402,  1274,  1274,  3405,  -5404, 3407,
+		3408,  3409,  3410,  1274,  1274,  1274,  1274,  1274,
+		1274,  1274,  1274,  1274,  1274,  1274,  1274,  1274,
+		1274,  1274,  1274,  1274,  1274,  1274,  1274,  1274,
+		3432,  3433,  3434,  3435,  3436,  3437,  3438,  3439,
+		3440,  3441,  3442,  3443,  3444,  3445,  3446,  3447,
+		3448,  3449,  3450,  3451,  3452,  3453,  3454,  3455,
+		-1138, -1138, -1138, -1138, -1138, 3461,  3462,  3299,
+		3464,  3465,  3466,  3467,  3468,  3469,  3470,  3471,
+		3472,  3473,  3474,  3475,  3476,  3477,  3478,  3479,
+		3480,  3481,  3482,  3483,  3484,  3485,  3486,  3487,
+		3488,  3489,  3490,  3491,  3492,  3493,  3494,  3495,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 3496,
+		3497,  3498,  3499,  3500,  3501,  3502,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 3503,  3211,  3211,  3211,  3211,  32767,
+		32767, 32767, 32767, 32767, 7590,  7590,  7590,  3208,
+		3512,  3513,  3514,  3515,  3516,  3517,  3518,  3519,
+		3520,  3521,  3522,  3523,  3524,  3525,  3526,  3527,
+		3528,  3529,  3530,  3531,  3532,  3533,  32767, 3534,
+		3535,  3536,  3537,  3538,  32767, 3539,  32767, 3540,
+		3541,  32767, 3542,  3543,  32767, 3544,  3545,  3546,
+		3547,  3548,  3549,  3550,  3551,  3552,  3553,  3554,
+		3555,  3556,  3557,  3558,  3559,  3560,  3561,  3562,
+		3563,  3564,  3565,  3566,  3567,  3568,  3569,  3570,
+		3571,  3572,  3573,  3574,  3575,  3576,  3577,  3578,
+		3579,  3580,  3581,  3582,  3583,  3584,  3585,  3586,
+		3587,  3588,  3589,  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,  3647,  3648,  3649,  3650,
+		3651,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 3652,  3653,  3654,  3655,  3656,  3657,
+		3658,  3659,  3660,  3661,  3662,  3663,  3664,  3665,
+		3666,  3667,  3668,  3669,  3670,  3671,  3672,  3673,
+		3674,  3675,  3676,  3677,  3678,  3679,  3680,  3681,
+		3682,  3683,  3684,  3685,  3686,  3687,  3688,  3689,
+		3690,  3691,  3692,  3693,  3694,  3695,  3696,  32767,
+		3244,  3698,  3699,  3700,  3701,  3702,  4131,  3704,
+		3251,  3251,  3707,  3252,  3709,  3710,  3711,  3255,
+		3713,  3714,  3715,  3716,  3259,  3259,  3259,  3720,
+		3721,  3722,  3723,  3724,  3725,  3726,  3727,  3728,
+		3729,  3730,  3731,  3732,  0,     0,     3735,  3736,
+		3737,  3738,  3739,  3740,  3741,  3742,  3743,  3744,
+		3745,  3746,  3747,  3748,  3749,  3750,  3751,  3752,
+		3753,  3754,  3755,  3756,  3757,  3758,  3759,  3760,
+		3761,  3300,  3763,  3764,  3765,  3766,  3767,  3768,
+		3769,  3770,  3771,  3772,  3773,  3774,  3775,  3776,
+		3777,  3778,  3779,  3780,  3781,  3782,  3783,  3784,
+		3322,  3322,  3787,  3323,  3789,  3790,  3791,  3326,
+		3793,  3794,  3795,  3796,  3330,  3798,  3330,  3800,
+		3801,  3802,  3803,  3804,  3805,  3806,  3807,  3808,
+		3809,  3810,  3811,  3812,  3813,  3814,  3815,  3816,
+		3817,  3818,  3819,  3820,  3821,  3822,  3823,  3824,
+		3825,  -1667, 3827,  3828,  3829,  3830,  3831,  3832,
+		3833,  3834,  3835,  3836,  3837,  3838,  3839,  3840,
+		3841,  3842,  3843,  3844,  -1685, 3846,  3847,  3848,
+		3849,  3850,  3851,  3852,  3853,  3854,  3855,  3856,
+		3857,  3858,  3859,  3860,  3861,  3862,  3863,  3864,
+		3865,  3866,  3867,  3868,  3869,  3870,  3871,  3872,
+		3873,  3874,  3875,  3876,  3877,  3878,  3879,  3880,
+		3881,  3882,  3883,  3884,  3885,  3886,  3887,  3888,
+		3889,  3890,  3891,  3892,  3893,  3894,  3895,  3896,
+		3897,  8237,  8238,  3900,  3901,  3902,  3903,  3904,
+		3905,  3906,  3907,  3908,  3909,  3910,  3911,  3912,
+		11266, 11267, 11268, 9355,  3917,  3918,  11272, 8274,
+		3921,  3922,  3438,  3438,  3438,  3438,  3438,  3438,
+		3929,  3930,  3440,  3440,  3440,  3440,  6476,  9478,
+		3937,  3938,  9483,  9484,  7571,  6485,  9485,  9486,
+		6488,  3442,  6490,  6491,  6492,  9488,  3951,  3952,
+		32767, -866,  -866,  -866,  -866,  -866,  -866,  -29,
+		-28,   -866,  -866,  -3867, 2172,  -3867, -3867, -3867,
+		-1953, -866,  -3865, -3865, -866,  3973,  3974,  3975,
+		3976,  3977,  3978,  3979,  3980,  3981,  3982,  3983,
+		3984,  3985,  3986,  951,   -2050, 3989,  -2050, -2050,
+		-2050, -136,  951,   -2048, -2048, 951,   3998,  951,
+		951,   951,   -2044, -2044, 951,   951,   951,   951,
+		5238,  951,   951,   5243,  5244,  951,   951,   32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 383,   933,   933,   933,   933,   933,   933,
+		933,   933,   933,   933,   933,   933,   933,   933,
+		933,   933,   933,   933,   933,   933,   933,   4851,
+		933,   933,   933,   933,   10909, 933,   933,   933,
+		933,   -5132, -5132, 933,   933,   933,   933,   4075,
+		933,   933,   933,   933,   933,   933,   933,   933,
+		933,   933,   1868,  933,   933,   1870,  933,   933,
+		933,   933,   933,   933,   933,   933,   933,   933,
+		10578, 0,     32767, 931,   -2372, 931,   8615,  8616,
+		931,   931,   6913,  5271,  5272,  5273,  5274,  5275,
+		10607, 5277,  5278,  10610, 10611, 5281,  5282,  5283,
+		5284,  5285,  5286,  5287,  5288,  5289,  5290,  5291,
+		5292,  5293,  5294,  5295,  5296,  5297,  6905,  6905,
+		6905,  6905,  6905,  6905,  16463, -3641, 6905,  4123,
+		13175, 4125,  13176, 13177, 13178, 3534,  13180, 13448,
+		13182, 32767, 32767, 32767, 0,     32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 0,     0,     32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, -2357, 17748, 7203,  934,   934,   934,   934,
+		934,   934,   10579, 934,   667,   934,   32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 4146,  4147,  4148,  4149,  4150,  4151,
+		4152,  4153,  4154,  4155,  32767, 32767, 32767, 32767,
+		32767, 32767, 4156,  4157,  4158,  4159,  4160,  4161,
+		4162,  4163,  4164,  4165,  4166,  4167,  4168,  4169,
+		4170,  4171,  4172,  4173,  4174,  4175,  4176,  4177,
+		4178,  4179,  4180,  4181,  4182,  5374,  5375,  5376,
+		6978,  4187,  4188,  4189,  4190,  6982,  6982,  32767,
+		32767, 4193,  4194,  4195,  4196,  4197,  4198,  4199,
+		4200,  4201,  4202,  4203,  4204,  32767, 6995,  6995,
+		4207,  4208,  4209,  4210,  4211,  4212,  4213,  4214,
+		4215,  4216,  4217,  4218,  4219,  4220,  4221,  4222,
+		4223,  32767, 3386,  4225,  4226,  7228,  32767, 32767,
+		32767, 32767, 5315,  4229,  7229,  32767, 4231,  32767,
+		4232,  4233,  4234,  7230,  7231,  4237,  4238,  4239,
+		4240,  -46,   4242,  4243,  -48,   -48,   4246,  4247,
+		4248,  4249,  4250,  4251,  4252,  4253,  4254,  4255,
+		4256,  4257,  4258,  4259,  4260,  4261,  4262,  4263,
+		4264,  4265,  4816,  4267,  4268,  4269,  4270,  4271,
+		4272,  4273,  4274,  4275,  4276,  4277,  4278,  4279,
+		4280,  4281,  4282,  4283,  4284,  4285,  4286,  4287,
+		370,   4289,  4290,  4291,  4292,  -5683, 4294,  4295,
+		4296,  4297,  10363, 10364, 4300,  4301,  4302,  4303,
+		1162,  4305,  4306,  4307,  4308,  4309,  4310,  4311,
+		4312,  4313,  4314,  3380,  4316,  4317,  3381,  4319,
+		4320,  4321,  4322,  4323,  4324,  4325,  4326,  4327,
+		4328,  -5316, 4330,  4598,  4332,  7636,  4334,  -3349,
+		-3349, 4337,  4338,  -1643, 0,     0,     0,     0,
+		0,     -5331, 0,     0,     -5331, -5331, 0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     4126,
+		4127,  4128,  4129,  0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     -1258, 0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		-1272, -1272, 0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     -1851, -1851, -1851, -1851,
+		-1851, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     3235,  0,     -6925, 306,
+		306,   306,   306,   306,   306,   306,   306,   306,
+		306,   306,   306,   -1764, -1764, 4472,  4473,  311,
+		311,   311,   311,   10287, 10288, 10289, 10290, 10291,
+		10292, 10293, 4485,  10198, 319,   319,   3461,  319,
+		319,   319,   319,   319,   4495,  4496,  321,   321,
+		321,   1256,  321,   321,   1258,  1258,  0,     3477,
+		10215, 10216, 4509,  4510,  10219, 10220, 10221, 4514,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     4579,  4580,  4581,  4582,
+		4583,  4584,  32767, 2455,  4586,  -4223, 4588,  4589,
+		4590,  4591,  32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 4885,  4886,  4887,
+		4888,  4889,  4890,  4891,  4892,  4893,  4894,  4895,
+		4896,  4897,  4898,  4899,  4900,  4901,  4902,  4903,
+		4904,  4616,  4906,  4907,  4908,  4909,  4910,  4911,
+		4912,  4913,  4914,  4915,  4916,  4917,  4918,  4919,
+		4920,  4921,  4922,  4923,  4924,  4925,  4926,  4927,
+		4928,  4929,  4930,  4931,  4932,  4933,  4934,  4935,
+		4936,  4937,  4938,  4939,  4940,  4941,  4942,  4943,
+		4944,  4945,  4946,  4947,  4948,  567,   568,   569,
+		4952,  -2455, 571,   572,   4956,  4957,  4958,  4959,
+		4960,  4961,  4962,  4963,  4964,  4965,  4966,  4967,
+		4968,  4969,  32767, 4970,  4971,  4972,  4973,  4974,
+		4975,  4976,  4977,  4978,  4979,  4980,  6623,  6623,
+		6623,  6623,  6623,  1292,  6623,  1291,  1291,  1291,
+		4991,  4992,  6620,  4994,  4995,  6618,  6618,  4998,
+		-1199, 6616,  6616,  6616,  6616,  5004,  6615,  6615,
+		6615,  5008,  5009,  5010,  5011,  5012,  5013,  -4544,
+		15561, 5016,  -1253, -1253, -1253, -1253, -1253, -1253,
+		8392,  -1253, -1520, -1253, -4556, -1253, 6431,  6432,
+		-1253, -1253, 4729,  3087,  3088,  3089,  3090,  3091,
+		8423,  3093,  3094,  8426,  8427,  3097,  3098,  3099,
+		3100,  3101,  3102,  3103,  3104,  3105,  3106,  3107,
+		3108,  3109,  3110,  3111,  3112,  3113,  4721,  4721,
+		4721,  4721,  4721,  4721,  14279, -5825, 4721,  1939,
+		10991, 1941,  10992, 10993, 10994, 1350,  10996, 11264,
+		10998, -254,  10999, 3316,  3316,  11002, 11003, 5022,
+		6665,  6665,  6665,  6665,  6665,  1334,  6665,  1333,
+		1333,  1333,  5033,  5034,  6662,  5036,  5037,  6660,
+		6660,  5040,  -1157, 6658,  6658,  6658,  6658,  5046,
+		6657,  0,     6658,  5051,  5052,  5053,  5054,  5055,
+		5056,  -4501, 15604, 5059,  -1210, -1210, -1210, -1210,
+		-1210, -1210, 8435,  -1210, -1477, -1210, -4513, -1210,
+		6474,  6475,  -1210, -1210, 4772,  0,     4981,  0,
+		5131,  5132,  9273,  -4525, 0,     5135,  9278,  0,
+		0,     0,     0,     5139,  5140,  5141,  5142,  5143,
+		5144,  5145,  5146,  0,     5147,  0,     0,     0,
+		0,     0,     0,     1530,  1531,  1532,  1533,  1534,
+		1535,  1536,  1537,  1538,  1539,  1540,  1541,  1542,
+		1543,  1544,  -1583, 1546,  1547,  1548,  1549,  1550,
+		1551,  1552,  1553,  1554,  1555,  1556,  1557,  1558,
+		1559,  1560,  1561,  1562,  1563,  1564,  1565,  1566,
+		1567,  5189,  1568,  1569,  1570,  1571,  1572,  1573,
+		1574,  1575,  1576,  1577,  1578,  1579,  1580,  0,
+		2255,  5200,  799,   1584,  1585,  1586,  1587,  1588,
+		1589,  1590,  1591,  1592,  1593,  1594,  1595,  1596,
+		5215,  5216,  1597,  1598,  1599,  1600,  1601,  1602,
+		5985,  -1422, 1604,  1605,  1606,  1607,  1608,  1609,
+		1610,  1611,  1612,  1613,  8457,  8458,  1616,  1617,
+		1618,  0,     0,     0,     5243,  5244,  1622,  1623,
+		1624,  5248,  1625,  1626,  1627,  1628,  1629,  1630,
+		1631,  1632,  4421,  5258,  5259,  5260,  5261,  5262,
+		5263,  5264,  5265,  5266,  5267,  5268,  5269,  5270,
+		5271,  5272,  5273,  5274,  5275,  5276,  5277,  5278,
+		5279,  5280,  5281,  5282,  5283,  5284,  5285,  5286,
+		8934,  8934,  5289,  5290,  4830,  5292,  5293,  5294,
+		5295,  5296,  5297,  5298,  5299,  5300,  5301,  5302,
+		5303,  5304,  5305,  5306,  5307,  5308,  5309,  5310,
+		5311,  5312,  5313,  5314,  5315,  5316,  5317,  5318,
+		5319,  5320,  5321,  5322,  5323,  5324,  5325,  5326,
+		5327,  5328,  5329,  5330,  5331,  5332,  5333,  5334,
+		5335,  5336,  5337,  5338,  5339,  5340,  5341,  5342,
+		5343,  5344,  5345,  5346,  5347,  5348,  5349,  5350,
+		5351,  5352,  5353,  5354,  5355,  5356,  5357,  5358,
+		4891,  5360,  5361,  5362,  5363,  5364,  5365,  5366,
+		5367,  5368,  5369,  5370,  5371,  5372,  32767, 5373,
+		5374,  -5231, 5376,  4532,  0,     5379,  5380,  5381,
+		5382,  4270,  4271,  4272,  4273,  4274,  4275,  4276,
+		4277,  4278,  12230, 9102,  9102,  9102,  5396,  8890,
+		5398,  5399,  5400,  5401,  8899,  7356,  5568,  7358,
+		7359,  0,     0,     7364,  7365,  7366,  7367,  7368,
+		7369,  8924,  7371,  7372,  4606,  4606,  4606,  4606,
+		7377,  10546, 10546, 10546, 10546, 10546, 10546, 20104,
+		0,     10546, 7764,  16816, 7766,  16817, 5572,  5572,
+		7177,  16823, 17091, 16825, 5573,  5573,  9144,  9144,
+		5526,  0,     5574,  5574,  5450,  5451,  5452,  697,
+		697,   5455,  0,     7172,  5458,  5576,  5460,  -5456,
+		5462,  5463,  5464,  0,     0,     4691,  5468,  5469,
+		4693,  5471,  10898, 0,     0,     5475,  4698,  10908,
+		5478,  5479,  5480,  5481,  1359,  1359,  1359,  5485,
+		5486,  5487,  5488,  1359,  1359,  1359,  1359,  1359,
+		1359,  1359,  1359,  1359,  1359,  1359,  1359,  1359,
+		1359,  101,   1359,  1359,  1359,  1359,  1359,  1359,
+		1359,  1359,  1359,  1359,  1359,  1359,  1359,  1359,
+		87,    87,    1359,  1359,  1359,  1359,  1359,  1359,
+		1359,  1359,  1359,  1359,  1359,  1359,  1359,  1359,
+		1359,  1359,  1359,  1359,  1359,  1359,  1359,  1359,
+		1359,  1359,  1359,  1359,  1359,  1359,  1359,  1359,
+		1359,  1359,  1359,  1359,  -492,  -492,  -492,  -492,
+		-492,  1359,  1359,  1359,  1359,  1359,  1359,  1359,
+		1359,  1359,  1359,  1359,  4594,  1359,  -5566, 1665,
+		1665,  1665,  1665,  1665,  1665,  1665,  1665,  1665,
+		1665,  1665,  1665,  -405,  -405,  5585,  5586,  1668,
+		1668,  1668,  1668,  11644, 11645, 11646, 11647, 11648,
+		11649, 11650, 5842,  11555, 1676,  1676,  4818,  1676,
+		1676,  1676,  1676,  1676,  5852,  5853,  1678,  1678,
+		1678,  2613,  1678,  1678,  2615,  2615,  1357,  4834,
+		11572, 11573, 5866,  5867,  11576, 11577, 11578, 5871,
+		1357,  1357,  1357,  1357,  1357,  1357,  1357,  1357,
+		1357,  -6594, -3465, -3464, -3463, 244,   -3249, 244,
+		244,   244,   244,   -3253, -1709, 80,    -1709, -1709,
+		5651,  5652,  -1711, -1711, -1711, -1711, -1711, -1711,
+		-3265, -1711, -1711, 1056,  1057,  1058,  1059,  -1711,
+		-4879, -4878, -4877, -4876, -4875, -4874, -14431,5674,
+		-4871, -2088, -11139,-2088, -11138,108,   109,   -1495,
+		-11140,-11407,-11140,113,   114,   -3456, -3455, 164,
+		5691,  118,   119,   244,   244,   244,   5000,  5001,
+		244,   5700,  -1471, 244,   127,   244,   11161, 244,
+		244,   244,   5709,  5710,  1020,  244,   244,   1021,
+		244,   -5182, 5717,  5718,  244,   1022,  -5187, 244,
+		244,   244,   244,   4367,  4368,  4369,  244,   244,
+		244,   244,   4374,  4375,  4376,  4377,  4378,  4379,
+		4380,  4381,  4382,  4383,  4384,  4385,  4386,  4387,
+		5646,  4389,  4390,  4391,  4392,  4393,  4394,  4395,
+		4396,  4397,  4398,  4399,  4400,  4401,  4402,  5675,
+		5676,  4405,  4406,  4407,  4408,  4409,  4410,  4411,
+		4412,  4413,  4414,  4415,  4416,  4417,  4418,  4419,
+		4420,  4421,  4422,  4423,  4424,  4425,  4426,  4427,
+		4428,  4429,  4430,  4431,  4432,  4433,  4434,  4435,
+		4436,  4437,  4438,  6290,  6291,  6292,  6293,  6294,
+		4444,  4445,  4446,  4447,  4448,  4449,  4450,  4451,
+		4452,  4453,  4454,  1220,  4456,  11382, 4152,  4153,
+		4154,  4155,  4156,  4157,  4158,  4159,  4160,  4161,
+		4162,  4163,  6234,  6235,  0,     0,     4163,  4164,
+		4165,  4166,  -5809, -5809, -5809, -5809, -5809, -5809,
+		-5809, 0,     -5712, 4168,  4169,  1028,  4171,  4172,
+		4173,  4174,  4175,  0,     0,     4176,  4177,  4178,
+		3244,  4180,  4181,  3245,  3246,  4505,  1029,  -5708,
+		-5708, 0,     0,     -5708, -5708, -5708, 0,     4515,
+		4516,  4517,  4518,  4519,  4520,  4521,  4522,  4523,
+		4524,  4525,  4526,  4527,  4528,  4529,  4530,  4531,
+		4532,  4533,  4534,  4535,  4536,  4537,  4538,  4539,
+		4540,  4541,  4542,  4543,  4544,  4545,  4546,  4547,
+		4548,  4549,  4550,  4551,  4552,  4553,  4554,  4555,
+		4556,  0,     0,     0,     4557,  4558,  4559,  4560,
+		4561,  4562,  0,     0,     4563,  4564,  4565,  4566,
+		4567,  4568,  0,     0,     4569,  4570,  4571,  4572,
+		4573,  4574,  2114,  2115,  4575,  4576,  4577,  0,
+		0,     0,     4578,  0,     0,     0,     0,     0,
+		0,     2129,  2130,  0,     8810,  0,     0,     0,
+		0,     2137,  2138,  2139,  2140,  2141,  2142,  2143,
+		2144,  2145,  2146,  2147,  2148,  2149,  2150,  2151,
+		2152,  2153,  2154,  2155,  2156,  2157,  0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     4594,  4595,
+		4596,  4597,  4598,  0,     0,     164,   0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     2222,  2223,
+		2224,  2225,  2226,  2227,  2228,  2229,  2230,  2231,
+		2232,  2233,  2234,  2235,  2236,  2237,  2238,  2239,
+		2240,  2241,  2242,  2243,  2244,  2245,  2246,  2247,
+		2248,  2249,  2250,  2251,  2252,  2253,  2254,  2255,
+		2256,  2257,  2258,  2259,  2260,  2261,  2262,  2263,
+		2264,  2265,  2266,  2267,  2268,  2269,  2270,  705,
+		706,   707,   708,   709,   2276,  2277,  2278,  2279,
+		2280,  2281,  2282,  2283,  2284,  32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		2285,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 2286,  2287,  2288,  2289,  2290,  2291,
+		32767, 32767, 32767, 32767, 32767, 32767, 2292,  32767,
+		2293,  2294,  2295,  32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 2296,  32767, 2297,  32767,
+		2298,  32767, 2299,  32767, 2300,  32767, 2301,  32767,
+		2302,  32767, 2303,  32767, 2304,  32767, 2305,  32767,
+		2306,  32767, 2307,  32767, 32767, 2308,  32767, 2309,
+		32767, 2310,  32767, 32767, 32767, 32767, 32767, 32767,
+		2311,  2312,  32767, 2313,  2314,  32767, 2315,  2316,
+		32767, 2317,  2318,  32767, 2319,  2320,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 2321,  32767, 32767, 32767,
+		32767, 2322,  2323,  2324,  2325,  32767, 2326,  2327,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 2328,  32767, 2329,  32767,
+		2330,  32767, 2331,  32767, 2332,  32767, 2333,  32767,
+		2334,  32767, 2335,  32767, 2336,  32767, 2337,  32767,
+		2338,  32767, 2339,  32767, 32767, 2340,  32767, 2341,
+		32767, 2342,  32767, 32767, 32767, 32767, 32767, 32767,
+		2343,  2344,  32767, 2345,  2346,  32767, 2347,  2348,
+		32767, 2349,  2350,  32767, 2351,  2352,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 2353,  32767, 32767, 2354,
+		2355,  2356,  2357,  32767, 32767, 32767, 2358,  2359,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 2360,  2361,  2362,  2363,  2364,  2365,
+		2366,  2367,  2368,  2369,  2370,  2371,  2372,  2373,
+		2374,  -753,  2376,  2377,  2378,  2379,  2380,  2381,
+		2382,  2383,  2384,  2385,  2386,  2387,  2388,  2389,
+		2390,  2391,  2392,  2393,  2394,  2395,  2396,  2397,
+		2398,  2399,  2400,  2401,  2402,  2403,  2404,  2405,
+		2406,  2407,  2408,  2409,  2410,  2411,  831,   3086,
+		2414,  1631,  2416,  2417,  2418,  2419,  2420,  2421,
+		2422,  2423,  2424,  2425,  2426,  2427,  2428,  2429,
+		2430,  2431,  2432,  2433,  2434,  2435,  2436,  2437,
+		-587,  2439,  2440,  2441,  2442,  2443,  2444,  2445,
+		2446,  2447,  2448,  9292,  9293,  2451,  2452,  2453,
+		32767, 32767, 32767, 2454,  2455,  2456,  2457,  2458,
+		2459,  2460,  2461,  2462,  2463,  2464,  2465,  2466,
+		2467,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 4599,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 4600,  32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 2468,  -1450, 2470,  2471,  2472,  2473,
+		2474,  2475,  2476,  2477,  2478,  2479,  2480,  2481,
+		2482,  2483,  2484,  2485,  2486,  2487,  2488,  2489,
+		2490,  2491,  2492,  2493,  2494,  2495,  2496,  2497,
+		2498,  32767, 2499,  2500,  2501,  2502,  2503,  2504,
+		2505,  2506,  2507,  2508,  2509,  2510,  2511,  2512,
+		2513,  2514,  2515,  2516,  2517,  2518,  2519,  2520,
+		2521,  2522,  2523,  2524,  2525,  2526,  2527,  2528,
+		2529,  2530,  2531,  2532,  2533,  2534,  2535,  2536,
+		2537,  2538,  32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 2539,  2540,  5896,  2542,  2543,  2544,
+		2545,  548,   2547,  2548,  2549,  2550,  2551,  2552,
+		5919,  5920,  5921,  2556,  2557,  5926,  2559,  2560,
+		2561,  2562,  2563,  2564,  2565,  2566,  2567,  2568,
+		2569,  2570,  2571,  2572,  2573,  2574,  2575,  2576,
+		2577,  2578,  2579,  2580,  2581,  2582,  2583,  2584,
+		2585,  32767, 2586,  2587,  2588,  2589,  2590,  2591,
+		2592,  2593,  2594,  2595,  2596,  2597,  2598,  2599,
+		2600,  2601,  2602,  2603,  2604,  2605,  2606,  2607,
+		2608,  2609,  2610,  2611,  2612,  2613,  2614,  2615,
+		2616,  2617,  2618,  2619,  2620,  2621,  2622,  2623,
+		2624,  2625,  2626,  2627,  2628,  2629,  2630,  2631,
+		2632,  2633,  2634,  2635,  2636,  2637,  2638,  2639,
+		2640,  2641,  2642,  2643,  2644,  2645,  2646,  2647,
+		2648,  2649,  2650,  2651,  2652,  2653,  2654,  2655,
+		2656,  2657,  2658,  2659,  2660,  2661,  -703,  2663,
+		2664,  2665,  2666,  2667,  2668,  2669,  2670,  2671,
+		2672,  2673,  2674,  1999,  2676,  2677,  2678,  2679,
+		2680,  2681,  2682,  2683,  2684,  2685,  2686,  2687,
+		2688,  2689,  2690,  2014,  2692,  2693,  2694,  2695,
+		2696,  2697,  2698,  2699,  2700,  2701,  2702,  2703,
+		2704,  2705,  2706,  2707,  2708,  2709,  -11089,2711,
+		2712,  2713,  32767, 2714,  2715,  2716,  2717,  2718,
+		8050,  2720,  2721,  8053,  8054,  2724,  2725,  2726,
+		2727,  2728,  2729,  2730,  2731,  2732,  2733,  2734,
+		2735,  2736,  2737,  2738,  2739,  2740,  2741,  2742,
+		2743,  2744,  2745,  2746,  2747,  2748,  -1377, -1377,
+		-1377, -1377, 2753,  2754,  2755,  2756,  2757,  2758,
+		2759,  2760,  2761,  2762,  2763,  2764,  2765,  2766,
+		4025,  2768,  2769,  2770,  2771,  2772,  2773,  2774,
+		2775,  2776,  2777,  2778,  2779,  2780,  2781,  4054,
+		4055,  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,  4669,  4670,  4671,  4672,  4673,
+		2823,  2824,  2825,  2826,  2827,  2828,  2829,  2830,
+		2831,  2832,  2833,  -401,  2835,  9761,  2531,  2532,
+		2533,  2534,  2535,  2536,  2537,  2538,  2539,  2540,
+		2541,  2542,  4613,  4614,  -1621, -1621, 2542,  2543,
+		2544,  2545,  -7430, -7430, -7430, -7430, -7430, -7430,
+		-7430, -1621, -7333, 2547,  2548,  -593,  2550,  2551,
+		2552,  2553,  2554,  -1621, -1621, 2555,  2556,  2557,
+		1623,  2559,  2560,  1624,  1625,  2884,  -592,  -7329,
+		-7329, -1621, -1621, -7329, -7329, -7329, -1621, 2894,
+		2895,  2896,  2897,  2898,  2899,  2900,  2901,  2902,
+		2903,  2904,  2905,  2906,  2907,  2908,  2909,  2910,
+		2911,  2912,  2913,  2914,  2915,  2916,  2917,  2918,
+		2919,  2920,  2921,  2922,  2923,  2924,  2925,  2926,
+		2927,  2928,  2929,  2930,  2931,  2932,  2933,  2934,
+		2935,  2936,  2937,  2938,  2939,  2940,  2941,  2942,
+		2943,  2944,  2945,  2946,  2947,  2948,  2949,  2950,
+		2951,  2952,  2953,  2954,  2955,  2956,  2957,  2958,
+		2959,  2960,  2961,  2962,  2963,  2964,  2965,  2966,
+		2967,  2968,  2969,  32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -1515,227 +1721,38 @@ Decomp_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 2036,  2037,  2038,
-		2039,  2040,  2041,  2042,  2043,  2044,  2045,  2046,
-		2047,  2048,  2049,  2050,  2051,  2052,  2053,  2054,
-		2055,  2056,  2057,  2058,  2059,  2060,  2061,  2062,
-		2063,  2064,  2065,  2066,  2067,  32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 0,     0,     0,     0,
+		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 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,
-		-4778, -4778, -4778, 0,     32767, 32767, 32767, 0,
-		0,     32767, 32767, 32767, 0,     0,     32767, 32767,
-		-4791, -4791, -4791, -4791, -4791, -4791, -4791, -4791,
-		-4791, -4791, 0,     0,     -15359,0,     -4791, -4791,
-		0,     0,     -4791, 0,     0,     -4789, -4789, -4789,
-		-4789, -4789, -4789, 0,     0,     0,     0,     0,
-		0,     -4789, 0,     0,     0,     -4789, -4789, -4789,
-		-4789, -4789, -4789, -4789, 32767, 32767, 32767, 32767,
-		-4793, -4793, -4793, 0,     0,     -4793, 0,     -4793,
-		-4793, 32767, 32767, 32767, 0,     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, 0,     0,     0,     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, 2069,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 4017,  32767, 32767, 32767, 2070,
-		2071,  2072,  2073,  2074,  2075,  2076,  2077,  22011,
-		2079,  2080,  2081,  2082,  2083,  2084,  2085,  2086,
-		2087,  2337,  2337,  2090,  2091,  2092,  2093,  2094,
-		2095,  2096,  2097,  2098,  2099,  2100,  2101,  2102,
-		2103,  2104,  2105,  -3995, 2107,  2108,  2109,  2110,
-		2111,  2112,  2113,  627,   2115,  1486,  -5783, -5783,
-		-5783, 2113,  2113,  2113,  -852,  1486,  1486,  1486,
-		-126,  -5791, 5059,  1486,  3571,  -16362,-1003, 1486,
-		-5795, -1004, 1486,  1486,  1486,  1486,  -5797, -126,
-		-5798, 1486,  1486,  1486,  1486,  1486,  1486,  1486,
-		1486,  -1017, -5806, -1017, -2823, -2823, 1486,  2022,
-		-2821, -2821, -2821, -2821, 2163,  -2820, -2820, -2820,
-		-2820, -5819, 1486,  -2820, -2820, -2820, 4876,  -2820,
-		-2820, -5824, -2819, 2178,  -2818, -5042, 1488,  -2818,
-		1488,  1488,  -2818, 1488,  -2817, -2817, -2817, -2817,
-		-2817, -2817, -1461, -1461, 1488,  0,     0,     0,
-		0,     0,     0,     0,     0,     -19933,0,     0,
-		0,     0,     0,     0,     0,     0,     0,     -249,
-		-248,  0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     6101,  0,     0,     0,     0,     0,     0,
-		0,     1487,  0,     630,   7900,  7901,  7902,  7,
-		8,     9,     2975,  638,   639,   640,   2253,  7919,
-		-2930, 644,   -1440, 18494, 3136,  648,   7930,  3140,
-		651,   652,   653,   654,   7938,  2268,  7941,  658,
-		659,   660,   661,   662,   663,   664,   665,   3169,
-		7959,  3171,  4978,  4979,  671,   136,   4980,  4981,
-		4982,  4983,  0,     4984,  4985,  4986,  4987,  7987,
-		683,   4990,  4991,  4992,  -2703, 4994,  4995,  8000,
-		4996,  0,     4997,  7222,  693,   5000,  695,   696,
-		5003,  698,   5004,  5005,  5006,  5007,  5008,  5009,
-		3654,  3655,  707,   2196,  2197,  2198,  2199,  2200,
-		2201,  2202,  2203,  22137, 2205,  2206,  2207,  2208,
-		2209,  2210,  2211,  2212,  2213,  2463,  2463,  2216,
-		2217,  2218,  2219,  2220,  2221,  2222,  2223,  2224,
-		2225,  2226,  2227,  2228,  2229,  2230,  2231,  -3869,
-		2233,  2234,  2235,  2236,  2237,  2238,  2239,  753,
-		2241,  1612,  -5657, -5657, -5657, 2239,  2239,  2239,
-		-726,  1612,  1612,  1612,  0,     -5665, 5185,  1612,
-		3697,  -16236,-877,  1612,  -5669, -878,  1612,  1612,
-		1612,  1612,  -5671, 0,     -5672, 1612,  1612,  1612,
-		1612,  1612,  1612,  1612,  1612,  -891,  -5680, -891,
-		-2697, -2697, 1612,  5095,  2299,  5097,  2300,  5099,
-		2301,  5101,  2302,  5103,  2303,  5105,  2304,  5107,
-		2305,  5109,  2306,  5111,  5112,  2307,  5114,  2308,
-		32767, 2309,  5117,  5118,  5119,  32767, 5120,  5121,
-		5498,  2311,  5124,  2312,  2313,  0,     2314,  2315,
-		5126,  2316,  2317,  5129,  2318,  2319,  5132,  32767,
-		5133,  5134,  5135,  5136,  5137,  5138,  5139,  5140,
-		5141,  5142,  5143,  5144,  5145,  5146,  5147,  5148,
-		5149,  5150,  5151,  5152,  2320,  5154,  5155,  5156,
-		5157,  1377,  2322,  1378,  2324,  5162,  1379,  1379,
-		5165,  5166,  5167,  5168,  5169,  5170,  5171,  5172,
-		5173,  5174,  5175,  5176,  2327,  5178,  2328,  5180,
-		2329,  5182,  2330,  5184,  2331,  5186,  2332,  5188,
-		2333,  5190,  2334,  5192,  2335,  5194,  2336,  5196,
-		2337,  5198,  2338,  5200,  5201,  2339,  5203,  2340,
-		5205,  1391,  5207,  5208,  5209,  5210,  5211,  5212,
-		1385,  1385,  -4221, -4221, -4221, -1193, 2346,  2347,
-		5221,  2348,  2349,  -3412, -4220, -4220, -4220, -4220,
-		5229,  5230,  5231,  5232,  5233,  5234,  5235,  5236,
-		5237,  5238,  5239,  5240,  5241,  5242,  5243,  5244,
-		5245,  5246,  5247,  5248,  2352,  5250,  5251,  4592,
-		-2168, -1982, 2356,  5256,  5257,  5258,  2357,  4444,
-		5261,  5262,  5263,  5264,  5265,  5266,  5267,  5268,
-		5269,  5270,  5271,  5272,  5273,  5274,  5275,  5276,
-		5277,  5278,  5279,  5280,  5281,  5282,  5283,  5284,
-		5285,  5286,  5287,  5288,  5289,  5290,  5291,  5292,
-		5293,  5294,  5295,  5296,  5297,  5298,  5299,  5300,
-		5301,  5302,  5303,  5304,  5305,  5306,  32767, 5307,
-		5308,  5309,  6427,  6428,  6429,  6430,  6431,  6432,
-		6433,  6434,  -3465, -3465, 6439,  6440,  6441,  6442,
-		6443,  6444,  6445,  6446,  -3465, -3465, -3465, -3465,
-		-3465, -3465, 7724,  2669,  2670,  -3430, 2672,  2673,
-		2674,  2675,  2676,  7733,  7734,  -3465, -3465, -3465,
-		-3465, -3465, 5341,  5342,  -291,  -291,  -291,  -291,
-		7390,  -3465, -3465, -3465, -3465, -3465, -3465, -3465,
-		-3465, -3465, -5246, -5246, -5246, -5246, -3465, -3465,
-		-3465, -3465, -3465, -3465, -3465, -3465, -3465, -3465,
-		-3465, -3465, -3465, -3465, -3465, -3465, -3465, -3465,
-		-3465, -3465, -3465, 1591,  1591,  7692,  1591,  1591,
-		1591,  1591,  1591,  -3465, -3465, -1547, 4593,  4594,
-		4595,  606,   4597,  -3465, 4572,  4573,  4574,  4575,
-		-3105, 9632,  -5502, -5502, -5502, -5502, -4166, -5502,
-		280,   280,   280,   280,   280,   280,   280,   280,
-		5428,  5429,  278,   278,   278,   278,   278,   278,
-		278,   5437,  5438,  5439,  5440,  5441,  5442,  5443,
-		5444,  5445,  5446,  5447,  5448,  5449,  5450,  5451,
-		5452,  5453,  5454,  5455,  5456,  5457,  5458,  5459,
-		5460,  5461,  5462,  5463,  5464,  5465,  5466,  676,
-		677,   16037, 679,   5471,  5472,  32767, 32767, 5473,
-		0,     5475,  5476,  5477,  5478,  5479,  5480,  5481,
-		693,   694,   695,   696,   697,   698,   5488,  700,
-		701,   702,   5492,  5493,  5494,  5495,  5496,  5497,
-		5498,  5499,  5500,  5501,  5502,  5503,  5504,  5505,
-		713,   714,   5508,  716,   5510,  5511,  5512,  5513,
-		5514,  5515,  1138,  2027,  2028,  719,   720,   2030,
-		2031,  1144,  9041,  9042,  2477,  2478,  2479,  2480,
-		2481,  2482,  2483,  2484,  2485,  2486,  2487,  2488,
-		2489,  2490,  2491,  2492,  5540,  2768,  2768,  2768,
-		2768,  5547,  -2247, 2499,  2500,  2768,  2768,  558,
-		2768,  2768,  2506,  2507,  2508,  2509,  2510,  2511,
-		2512,  2513,  8713,  2515,  2516,  2517,  2518,  2519,
-		2520,  2521,  2522,  2523,  2524,  2525,  2526,  2527,
-		2528,  2529,  2530,  2531,  2532,  2533,  2534,  2535,
-		2536,  2537,  5587,  5588,  5589,  5590,  5591,  5592,
-		5593,  5594,  2538,  0,     0,     0,     -1117, -1117,
-		-1117, -1117, -1117, -1117, -1117, -1117, 8783,  8784,
-		-1119, -1119, -1119, -1119, -1119, -1119, -1119, -1119,
-		8793,  8794,  8795,  8796,  8797,  8798,  -2390, 2666,
-		2666,  8767,  2666,  2666,  2666,  2666,  2666,  -2390,
-		-2390, 8810,  8811,  8812,  8813,  8814,  9,     9,
-		5643,  5644,  5645,  5646,  -2034, 8822,  8823,  8824,
-		8825,  8826,  8827,  8828,  8829,  8830,  10612, 10613,
-		10614, 10615, 8835,  8836,  8837,  8838,  8839,  8840,
-		8841,  8842,  8843,  8844,  8845,  8846,  8847,  8848,
-		8849,  8850,  8851,  8852,  8853,  8854,  8855,  3800,
-		3801,  -2299, 3803,  3804,  3805,  3806,  3807,  8864,
-		8865,  6948,  809,   809,   809,   4799,  809,   8872,
-		836,   836,   836,   836,   8517,  -4219, 10916, 10917,
-		10918, 10919, 9584,  10921, 5140,  5141,  5142,  5143,
-		5144,  5145,  5146,  5147,  0,     0,     5152,  5153,
-		5154,  5155,  5156,  5157,  5158,  0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     4791,  4791,  -10568,4791,  0,
-		0,     4791,  4791,  0,     5474,  0,     0,     0,
-		0,     0,     0,     0,     4789,  4789,  4789,  4789,
-		4789,  4789,  0,     4789,  4789,  4789,  0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     4793,  4793,  0,     4793,
-		0,     0,     0,     0,     0,     0,     4378,  3490,
-		3490,  4800,  4800,  3491,  3491,  4379,  -3517, -3517,
-		3049,  3049,  3049,  3049,  3049,  3049,  3049,  3049,
-		3049,  3049,  3049,  3049,  3049,  3049,  3049,  3049,
-		2,     2775,  2776,  2777,  2778,  0,     7795,  3050,
-		3050,  2783,  2784,  4995,  2786,  2787,  3050,  3050,
-		3050,  3050,  3050,  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,  2853,
-		2854,  2855,  2856,  2857,  2858,  2859,  2860,  2861,
-		2862,  2863,  2864,  2865,  2866,  2867,  2868,  2869,
-		2870,  2871,  2872,  2873,  2874,  2875,  2876,  2877,
-		2878,  2879,  2880,  2881,  2882,  2883,  2884,  2885,
-		2886,  2887,  2888,  2889,  2890,  2891,  2892,  2893,
-		2894,  2895,  2896,  2897,  2898,  2899,  2900,  2901,
-		2902,  2903,  2904,  2905,  2906,  2907,  2908,  2909,
-		2910,  2911,  2912,  2913,  2914,  2915,  2916,  2917,
-		2918,  2919,  2920,  2921,  2922,  883,   884,   885,
-		2926,  2927,  2928,  2929,  2930,  2931,  2932,  2933,
-		2934,  2935,  2936,  2937,  2938,  2939,  2940,  2941,
-		2942,  2943,  2944,  2945,  2946,  2947,  2948,  2949,
-		2950,  2951,  2952,  2953,  2954,  2955,  2956,  2957,
-		2958,  2959,  2960,  2961,  2962,  2963,  2964,  2965,
-		2966,  2967,  2968,  32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 4770,  4771,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
+		0,     0,     0,     0,     0,     32767, 32767, 32767,
+		32767, 32767, 32767, 0,     32767, 0,     0,     0,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
-		0,     0,     0,     0,     0,     0,     32767, 0,
-		0,     0,     0,     0,     0,     0,     0
+		32767, 0,     32767, 0,     32767, 0,     32767, 0,
+		32767, 0,     32767, 0,     32767, 0,     32767, 0,
+		32767, 0,     32767, 0,     32767, 0,     32767, 0,
+		32767, 32767, 0,     32767, 0,     32767, 0,     32767,
+		32767, 32767, 32767, 32767, 32767, 0,     0,     32767,
+		0,     0,     32767, 0,     0,     32767, 0,     0,
+		32767, 0,     0,     32767, 32767, 32767, 32767
 	};
 
 	const unsigned char *k = (const unsigned char *) key;
@@ -1750,7 +1767,7 @@ Decomp_hash_func(const void *key)
 		a = a * 257 + c;
 		b = b * 8191 + c;
 	}
-	return h[a % 13551] + h[b % 13551];
+	return h[a % 13687] + h[b % 13687];
 }
 
 /* Hash lookup information for decomposition */
@@ -1758,15 +1775,15 @@ static const pg_unicode_decompinfo UnicodeDecompInfo =
 {
 	UnicodeDecompMain,
 	Decomp_hash_func,
-	6775
+	6843
 };
 
 /* Inverse lookup array -- contains indexes into UnicodeDecompMain[] */
-static const uint16 RecompInverseLookup[941] =
+static const uint16 RecompInverseLookup[961] =
 {
-	/* U+003C+0338 -> U+226E */ 1857,
-	/* U+003D+0338 -> U+2260 */ 1854,
-	/* U+003E+0338 -> U+226F */ 1858,
+	/* U+003C+0338 -> U+226E */ 1858,
+	/* U+003D+0338 -> U+2260 */ 1855,
+	/* U+003E+0338 -> U+226F */ 1859,
 	/* U+0041+0300 -> U+00C0 */ 14,
 	/* U+0041+0301 -> U+00C1 */ 15,
 	/* U+0041+0302 -> U+00C2 */ 16,
@@ -1775,60 +1792,60 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+0041+0306 -> U+0102 */ 69,
 	/* U+0041+0307 -> U+0226 */ 270,
 	/* U+0041+0308 -> U+00C4 */ 18,
-	/* U+0041+0309 -> U+1EA2 */ 1312,
+	/* U+0041+0309 -> U+1EA2 */ 1313,
 	/* U+0041+030A -> U+00C5 */ 19,
 	/* U+0041+030C -> U+01CD */ 194,
 	/* U+0041+030F -> U+0200 */ 240,
 	/* U+0041+0311 -> U+0202 */ 242,
-	/* U+0041+0323 -> U+1EA0 */ 1310,
-	/* U+0041+0325 -> U+1E00 */ 1154,
+	/* U+0041+0323 -> U+1EA0 */ 1311,
+	/* U+0041+0325 -> U+1E00 */ 1155,
 	/* U+0041+0328 -> U+0104 */ 71,
-	/* U+0042+0307 -> U+1E02 */ 1156,
-	/* U+0042+0323 -> U+1E04 */ 1158,
-	/* U+0042+0331 -> U+1E06 */ 1160,
+	/* U+0042+0307 -> U+1E02 */ 1157,
+	/* U+0042+0323 -> U+1E04 */ 1159,
+	/* U+0042+0331 -> U+1E06 */ 1161,
 	/* U+0043+0301 -> U+0106 */ 73,
 	/* U+0043+0302 -> U+0108 */ 75,
 	/* U+0043+0307 -> U+010A */ 77,
 	/* U+0043+030C -> U+010C */ 79,
 	/* U+0043+0327 -> U+00C7 */ 20,
-	/* U+0044+0307 -> U+1E0A */ 1164,
+	/* U+0044+0307 -> U+1E0A */ 1165,
 	/* U+0044+030C -> U+010E */ 81,
-	/* U+0044+0323 -> U+1E0C */ 1166,
-	/* U+0044+0327 -> U+1E10 */ 1170,
-	/* U+0044+032D -> U+1E12 */ 1172,
-	/* U+0044+0331 -> U+1E0E */ 1168,
+	/* U+0044+0323 -> U+1E0C */ 1167,
+	/* U+0044+0327 -> U+1E10 */ 1171,
+	/* U+0044+032D -> U+1E12 */ 1173,
+	/* U+0044+0331 -> U+1E0E */ 1169,
 	/* U+0045+0300 -> U+00C8 */ 21,
 	/* U+0045+0301 -> U+00C9 */ 22,
 	/* U+0045+0302 -> U+00CA */ 23,
-	/* U+0045+0303 -> U+1EBC */ 1338,
+	/* U+0045+0303 -> U+1EBC */ 1339,
 	/* U+0045+0304 -> U+0112 */ 83,
 	/* U+0045+0306 -> U+0114 */ 85,
 	/* U+0045+0307 -> U+0116 */ 87,
 	/* U+0045+0308 -> U+00CB */ 24,
-	/* U+0045+0309 -> U+1EBA */ 1336,
+	/* U+0045+0309 -> U+1EBA */ 1337,
 	/* U+0045+030C -> U+011A */ 91,
 	/* U+0045+030F -> U+0204 */ 244,
 	/* U+0045+0311 -> U+0206 */ 246,
-	/* U+0045+0323 -> U+1EB8 */ 1334,
+	/* U+0045+0323 -> U+1EB8 */ 1335,
 	/* U+0045+0327 -> U+0228 */ 272,
 	/* U+0045+0328 -> U+0118 */ 89,
-	/* U+0045+032D -> U+1E18 */ 1178,
-	/* U+0045+0330 -> U+1E1A */ 1180,
-	/* U+0046+0307 -> U+1E1E */ 1184,
+	/* U+0045+032D -> U+1E18 */ 1179,
+	/* U+0045+0330 -> U+1E1A */ 1181,
+	/* U+0046+0307 -> U+1E1E */ 1185,
 	/* U+0047+0301 -> U+01F4 */ 230,
 	/* U+0047+0302 -> U+011C */ 93,
-	/* U+0047+0304 -> U+1E20 */ 1186,
+	/* U+0047+0304 -> U+1E20 */ 1187,
 	/* U+0047+0306 -> U+011E */ 95,
 	/* U+0047+0307 -> U+0120 */ 97,
 	/* U+0047+030C -> U+01E6 */ 216,
 	/* U+0047+0327 -> U+0122 */ 99,
 	/* U+0048+0302 -> U+0124 */ 101,
-	/* U+0048+0307 -> U+1E22 */ 1188,
-	/* U+0048+0308 -> U+1E26 */ 1192,
+	/* U+0048+0307 -> U+1E22 */ 1189,
+	/* U+0048+0308 -> U+1E26 */ 1193,
 	/* U+0048+030C -> U+021E */ 268,
-	/* U+0048+0323 -> U+1E24 */ 1190,
-	/* U+0048+0327 -> U+1E28 */ 1194,
-	/* U+0048+032E -> U+1E2A */ 1196,
+	/* U+0048+0323 -> U+1E24 */ 1191,
+	/* U+0048+0327 -> U+1E28 */ 1195,
+	/* U+0048+032E -> U+1E2A */ 1197,
 	/* U+0049+0300 -> U+00CC */ 25,
 	/* U+0049+0301 -> U+00CD */ 26,
 	/* U+0049+0302 -> U+00CE */ 27,
@@ -1837,37 +1854,37 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+0049+0306 -> U+012C */ 107,
 	/* U+0049+0307 -> U+0130 */ 111,
 	/* U+0049+0308 -> U+00CF */ 28,
-	/* U+0049+0309 -> U+1EC8 */ 1350,
+	/* U+0049+0309 -> U+1EC8 */ 1351,
 	/* U+0049+030C -> U+01CF */ 196,
 	/* U+0049+030F -> U+0208 */ 248,
 	/* U+0049+0311 -> U+020A */ 250,
-	/* U+0049+0323 -> U+1ECA */ 1352,
+	/* U+0049+0323 -> U+1ECA */ 1353,
 	/* U+0049+0328 -> U+012E */ 109,
-	/* U+0049+0330 -> U+1E2C */ 1198,
+	/* U+0049+0330 -> U+1E2C */ 1199,
 	/* U+004A+0302 -> U+0134 */ 114,
-	/* U+004B+0301 -> U+1E30 */ 1202,
+	/* U+004B+0301 -> U+1E30 */ 1203,
 	/* U+004B+030C -> U+01E8 */ 218,
-	/* U+004B+0323 -> U+1E32 */ 1204,
+	/* U+004B+0323 -> U+1E32 */ 1205,
 	/* U+004B+0327 -> U+0136 */ 116,
-	/* U+004B+0331 -> U+1E34 */ 1206,
+	/* U+004B+0331 -> U+1E34 */ 1207,
 	/* U+004C+0301 -> U+0139 */ 118,
 	/* U+004C+030C -> U+013D */ 122,
-	/* U+004C+0323 -> U+1E36 */ 1208,
+	/* U+004C+0323 -> U+1E36 */ 1209,
 	/* U+004C+0327 -> U+013B */ 120,
-	/* U+004C+032D -> U+1E3C */ 1214,
-	/* U+004C+0331 -> U+1E3A */ 1212,
-	/* U+004D+0301 -> U+1E3E */ 1216,
-	/* U+004D+0307 -> U+1E40 */ 1218,
-	/* U+004D+0323 -> U+1E42 */ 1220,
+	/* U+004C+032D -> U+1E3C */ 1215,
+	/* U+004C+0331 -> U+1E3A */ 1213,
+	/* U+004D+0301 -> U+1E3E */ 1217,
+	/* U+004D+0307 -> U+1E40 */ 1219,
+	/* U+004D+0323 -> U+1E42 */ 1221,
 	/* U+004E+0300 -> U+01F8 */ 232,
 	/* U+004E+0301 -> U+0143 */ 126,
 	/* U+004E+0303 -> U+00D1 */ 29,
-	/* U+004E+0307 -> U+1E44 */ 1222,
+	/* U+004E+0307 -> U+1E44 */ 1223,
 	/* U+004E+030C -> U+0147 */ 130,
-	/* U+004E+0323 -> U+1E46 */ 1224,
+	/* U+004E+0323 -> U+1E46 */ 1225,
 	/* U+004E+0327 -> U+0145 */ 128,
-	/* U+004E+032D -> U+1E4A */ 1228,
-	/* U+004E+0331 -> U+1E48 */ 1226,
+	/* U+004E+032D -> U+1E4A */ 1229,
+	/* U+004E+0331 -> U+1E48 */ 1227,
 	/* U+004F+0300 -> U+00D2 */ 30,
 	/* U+004F+0301 -> U+00D3 */ 31,
 	/* U+004F+0302 -> U+00D4 */ 32,
@@ -1876,38 +1893,38 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+004F+0306 -> U+014E */ 135,
 	/* U+004F+0307 -> U+022E */ 278,
 	/* U+004F+0308 -> U+00D6 */ 34,
-	/* U+004F+0309 -> U+1ECE */ 1356,
+	/* U+004F+0309 -> U+1ECE */ 1357,
 	/* U+004F+030B -> U+0150 */ 137,
 	/* U+004F+030C -> U+01D1 */ 198,
 	/* U+004F+030F -> U+020C */ 252,
 	/* U+004F+0311 -> U+020E */ 254,
 	/* U+004F+031B -> U+01A0 */ 181,
-	/* U+004F+0323 -> U+1ECC */ 1354,
+	/* U+004F+0323 -> U+1ECC */ 1355,
 	/* U+004F+0328 -> U+01EA */ 220,
-	/* U+0050+0301 -> U+1E54 */ 1238,
-	/* U+0050+0307 -> U+1E56 */ 1240,
+	/* U+0050+0301 -> U+1E54 */ 1239,
+	/* U+0050+0307 -> U+1E56 */ 1241,
 	/* U+0052+0301 -> U+0154 */ 139,
-	/* U+0052+0307 -> U+1E58 */ 1242,
+	/* U+0052+0307 -> U+1E58 */ 1243,
 	/* U+0052+030C -> U+0158 */ 143,
 	/* U+0052+030F -> U+0210 */ 256,
 	/* U+0052+0311 -> U+0212 */ 258,
-	/* U+0052+0323 -> U+1E5A */ 1244,
+	/* U+0052+0323 -> U+1E5A */ 1245,
 	/* U+0052+0327 -> U+0156 */ 141,
-	/* U+0052+0331 -> U+1E5E */ 1248,
+	/* U+0052+0331 -> U+1E5E */ 1249,
 	/* U+0053+0301 -> U+015A */ 145,
 	/* U+0053+0302 -> U+015C */ 147,
-	/* U+0053+0307 -> U+1E60 */ 1250,
+	/* U+0053+0307 -> U+1E60 */ 1251,
 	/* U+0053+030C -> U+0160 */ 151,
-	/* U+0053+0323 -> U+1E62 */ 1252,
+	/* U+0053+0323 -> U+1E62 */ 1253,
 	/* U+0053+0326 -> U+0218 */ 264,
 	/* U+0053+0327 -> U+015E */ 149,
-	/* U+0054+0307 -> U+1E6A */ 1260,
+	/* U+0054+0307 -> U+1E6A */ 1261,
 	/* U+0054+030C -> U+0164 */ 155,
-	/* U+0054+0323 -> U+1E6C */ 1262,
+	/* U+0054+0323 -> U+1E6C */ 1263,
 	/* U+0054+0326 -> U+021A */ 266,
 	/* U+0054+0327 -> U+0162 */ 153,
-	/* U+0054+032D -> U+1E70 */ 1266,
-	/* U+0054+0331 -> U+1E6E */ 1264,
+	/* U+0054+032D -> U+1E70 */ 1267,
+	/* U+0054+0331 -> U+1E6E */ 1265,
 	/* U+0055+0300 -> U+00D9 */ 35,
 	/* U+0055+0301 -> U+00DA */ 36,
 	/* U+0055+0302 -> U+00DB */ 37,
@@ -1915,43 +1932,43 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+0055+0304 -> U+016A */ 159,
 	/* U+0055+0306 -> U+016C */ 161,
 	/* U+0055+0308 -> U+00DC */ 38,
-	/* U+0055+0309 -> U+1EE6 */ 1380,
+	/* U+0055+0309 -> U+1EE6 */ 1381,
 	/* U+0055+030A -> U+016E */ 163,
 	/* U+0055+030B -> U+0170 */ 165,
 	/* U+0055+030C -> U+01D3 */ 200,
 	/* U+0055+030F -> U+0214 */ 260,
 	/* U+0055+0311 -> U+0216 */ 262,
 	/* U+0055+031B -> U+01AF */ 183,
-	/* U+0055+0323 -> U+1EE4 */ 1378,
-	/* U+0055+0324 -> U+1E72 */ 1268,
+	/* U+0055+0323 -> U+1EE4 */ 1379,
+	/* U+0055+0324 -> U+1E72 */ 1269,
 	/* U+0055+0328 -> U+0172 */ 167,
-	/* U+0055+032D -> U+1E76 */ 1272,
-	/* U+0055+0330 -> U+1E74 */ 1270,
-	/* U+0056+0303 -> U+1E7C */ 1278,
-	/* U+0056+0323 -> U+1E7E */ 1280,
-	/* U+0057+0300 -> U+1E80 */ 1282,
-	/* U+0057+0301 -> U+1E82 */ 1284,
+	/* U+0055+032D -> U+1E76 */ 1273,
+	/* U+0055+0330 -> U+1E74 */ 1271,
+	/* U+0056+0303 -> U+1E7C */ 1279,
+	/* U+0056+0323 -> U+1E7E */ 1281,
+	/* U+0057+0300 -> U+1E80 */ 1283,
+	/* U+0057+0301 -> U+1E82 */ 1285,
 	/* U+0057+0302 -> U+0174 */ 169,
-	/* U+0057+0307 -> U+1E86 */ 1288,
-	/* U+0057+0308 -> U+1E84 */ 1286,
-	/* U+0057+0323 -> U+1E88 */ 1290,
-	/* U+0058+0307 -> U+1E8A */ 1292,
-	/* U+0058+0308 -> U+1E8C */ 1294,
-	/* U+0059+0300 -> U+1EF2 */ 1392,
+	/* U+0057+0307 -> U+1E86 */ 1289,
+	/* U+0057+0308 -> U+1E84 */ 1287,
+	/* U+0057+0323 -> U+1E88 */ 1291,
+	/* U+0058+0307 -> U+1E8A */ 1293,
+	/* U+0058+0308 -> U+1E8C */ 1295,
+	/* U+0059+0300 -> U+1EF2 */ 1393,
 	/* U+0059+0301 -> U+00DD */ 39,
 	/* U+0059+0302 -> U+0176 */ 171,
-	/* U+0059+0303 -> U+1EF8 */ 1398,
+	/* U+0059+0303 -> U+1EF8 */ 1399,
 	/* U+0059+0304 -> U+0232 */ 282,
-	/* U+0059+0307 -> U+1E8E */ 1296,
+	/* U+0059+0307 -> U+1E8E */ 1297,
 	/* U+0059+0308 -> U+0178 */ 173,
-	/* U+0059+0309 -> U+1EF6 */ 1396,
-	/* U+0059+0323 -> U+1EF4 */ 1394,
+	/* U+0059+0309 -> U+1EF6 */ 1397,
+	/* U+0059+0323 -> U+1EF4 */ 1395,
 	/* U+005A+0301 -> U+0179 */ 174,
-	/* U+005A+0302 -> U+1E90 */ 1298,
+	/* U+005A+0302 -> U+1E90 */ 1299,
 	/* U+005A+0307 -> U+017B */ 176,
 	/* U+005A+030C -> U+017D */ 178,
-	/* U+005A+0323 -> U+1E92 */ 1300,
-	/* U+005A+0331 -> U+1E94 */ 1302,
+	/* U+005A+0323 -> U+1E92 */ 1301,
+	/* U+005A+0331 -> U+1E94 */ 1303,
 	/* U+0061+0300 -> U+00E0 */ 40,
 	/* U+0061+0301 -> U+00E1 */ 41,
 	/* U+0061+0302 -> U+00E2 */ 42,
@@ -1960,61 +1977,61 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+0061+0306 -> U+0103 */ 70,
 	/* U+0061+0307 -> U+0227 */ 271,
 	/* U+0061+0308 -> U+00E4 */ 44,
-	/* U+0061+0309 -> U+1EA3 */ 1313,
+	/* U+0061+0309 -> U+1EA3 */ 1314,
 	/* U+0061+030A -> U+00E5 */ 45,
 	/* U+0061+030C -> U+01CE */ 195,
 	/* U+0061+030F -> U+0201 */ 241,
 	/* U+0061+0311 -> U+0203 */ 243,
-	/* U+0061+0323 -> U+1EA1 */ 1311,
-	/* U+0061+0325 -> U+1E01 */ 1155,
+	/* U+0061+0323 -> U+1EA1 */ 1312,
+	/* U+0061+0325 -> U+1E01 */ 1156,
 	/* U+0061+0328 -> U+0105 */ 72,
-	/* U+0062+0307 -> U+1E03 */ 1157,
-	/* U+0062+0323 -> U+1E05 */ 1159,
-	/* U+0062+0331 -> U+1E07 */ 1161,
+	/* U+0062+0307 -> U+1E03 */ 1158,
+	/* U+0062+0323 -> U+1E05 */ 1160,
+	/* U+0062+0331 -> U+1E07 */ 1162,
 	/* U+0063+0301 -> U+0107 */ 74,
 	/* U+0063+0302 -> U+0109 */ 76,
 	/* U+0063+0307 -> U+010B */ 78,
 	/* U+0063+030C -> U+010D */ 80,
 	/* U+0063+0327 -> U+00E7 */ 46,
-	/* U+0064+0307 -> U+1E0B */ 1165,
+	/* U+0064+0307 -> U+1E0B */ 1166,
 	/* U+0064+030C -> U+010F */ 82,
-	/* U+0064+0323 -> U+1E0D */ 1167,
-	/* U+0064+0327 -> U+1E11 */ 1171,
-	/* U+0064+032D -> U+1E13 */ 1173,
-	/* U+0064+0331 -> U+1E0F */ 1169,
+	/* U+0064+0323 -> U+1E0D */ 1168,
+	/* U+0064+0327 -> U+1E11 */ 1172,
+	/* U+0064+032D -> U+1E13 */ 1174,
+	/* U+0064+0331 -> U+1E0F */ 1170,
 	/* U+0065+0300 -> U+00E8 */ 47,
 	/* U+0065+0301 -> U+00E9 */ 48,
 	/* U+0065+0302 -> U+00EA */ 49,
-	/* U+0065+0303 -> U+1EBD */ 1339,
+	/* U+0065+0303 -> U+1EBD */ 1340,
 	/* U+0065+0304 -> U+0113 */ 84,
 	/* U+0065+0306 -> U+0115 */ 86,
 	/* U+0065+0307 -> U+0117 */ 88,
 	/* U+0065+0308 -> U+00EB */ 50,
-	/* U+0065+0309 -> U+1EBB */ 1337,
+	/* U+0065+0309 -> U+1EBB */ 1338,
 	/* U+0065+030C -> U+011B */ 92,
 	/* U+0065+030F -> U+0205 */ 245,
 	/* U+0065+0311 -> U+0207 */ 247,
-	/* U+0065+0323 -> U+1EB9 */ 1335,
+	/* U+0065+0323 -> U+1EB9 */ 1336,
 	/* U+0065+0327 -> U+0229 */ 273,
 	/* U+0065+0328 -> U+0119 */ 90,
-	/* U+0065+032D -> U+1E19 */ 1179,
-	/* U+0065+0330 -> U+1E1B */ 1181,
-	/* U+0066+0307 -> U+1E1F */ 1185,
+	/* U+0065+032D -> U+1E19 */ 1180,
+	/* U+0065+0330 -> U+1E1B */ 1182,
+	/* U+0066+0307 -> U+1E1F */ 1186,
 	/* U+0067+0301 -> U+01F5 */ 231,
 	/* U+0067+0302 -> U+011D */ 94,
-	/* U+0067+0304 -> U+1E21 */ 1187,
+	/* U+0067+0304 -> U+1E21 */ 1188,
 	/* U+0067+0306 -> U+011F */ 96,
 	/* U+0067+0307 -> U+0121 */ 98,
 	/* U+0067+030C -> U+01E7 */ 217,
 	/* U+0067+0327 -> U+0123 */ 100,
 	/* U+0068+0302 -> U+0125 */ 102,
-	/* U+0068+0307 -> U+1E23 */ 1189,
-	/* U+0068+0308 -> U+1E27 */ 1193,
+	/* U+0068+0307 -> U+1E23 */ 1190,
+	/* U+0068+0308 -> U+1E27 */ 1194,
 	/* U+0068+030C -> U+021F */ 269,
-	/* U+0068+0323 -> U+1E25 */ 1191,
-	/* U+0068+0327 -> U+1E29 */ 1195,
-	/* U+0068+032E -> U+1E2B */ 1197,
-	/* U+0068+0331 -> U+1E96 */ 1304,
+	/* U+0068+0323 -> U+1E25 */ 1192,
+	/* U+0068+0327 -> U+1E29 */ 1196,
+	/* U+0068+032E -> U+1E2B */ 1198,
+	/* U+0068+0331 -> U+1E96 */ 1305,
 	/* U+0069+0300 -> U+00EC */ 51,
 	/* U+0069+0301 -> U+00ED */ 52,
 	/* U+0069+0302 -> U+00EE */ 53,
@@ -2022,38 +2039,38 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+0069+0304 -> U+012B */ 106,
 	/* U+0069+0306 -> U+012D */ 108,
 	/* U+0069+0308 -> U+00EF */ 54,
-	/* U+0069+0309 -> U+1EC9 */ 1351,
+	/* U+0069+0309 -> U+1EC9 */ 1352,
 	/* U+0069+030C -> U+01D0 */ 197,
 	/* U+0069+030F -> U+0209 */ 249,
 	/* U+0069+0311 -> U+020B */ 251,
-	/* U+0069+0323 -> U+1ECB */ 1353,
+	/* U+0069+0323 -> U+1ECB */ 1354,
 	/* U+0069+0328 -> U+012F */ 110,
-	/* U+0069+0330 -> U+1E2D */ 1199,
+	/* U+0069+0330 -> U+1E2D */ 1200,
 	/* U+006A+0302 -> U+0135 */ 115,
 	/* U+006A+030C -> U+01F0 */ 226,
-	/* U+006B+0301 -> U+1E31 */ 1203,
+	/* U+006B+0301 -> U+1E31 */ 1204,
 	/* U+006B+030C -> U+01E9 */ 219,
-	/* U+006B+0323 -> U+1E33 */ 1205,
+	/* U+006B+0323 -> U+1E33 */ 1206,
 	/* U+006B+0327 -> U+0137 */ 117,
-	/* U+006B+0331 -> U+1E35 */ 1207,
+	/* U+006B+0331 -> U+1E35 */ 1208,
 	/* U+006C+0301 -> U+013A */ 119,
 	/* U+006C+030C -> U+013E */ 123,
-	/* U+006C+0323 -> U+1E37 */ 1209,
+	/* U+006C+0323 -> U+1E37 */ 1210,
 	/* U+006C+0327 -> U+013C */ 121,
-	/* U+006C+032D -> U+1E3D */ 1215,
-	/* U+006C+0331 -> U+1E3B */ 1213,
-	/* U+006D+0301 -> U+1E3F */ 1217,
-	/* U+006D+0307 -> U+1E41 */ 1219,
-	/* U+006D+0323 -> U+1E43 */ 1221,
+	/* U+006C+032D -> U+1E3D */ 1216,
+	/* U+006C+0331 -> U+1E3B */ 1214,
+	/* U+006D+0301 -> U+1E3F */ 1218,
+	/* U+006D+0307 -> U+1E41 */ 1220,
+	/* U+006D+0323 -> U+1E43 */ 1222,
 	/* U+006E+0300 -> U+01F9 */ 233,
 	/* U+006E+0301 -> U+0144 */ 127,
 	/* U+006E+0303 -> U+00F1 */ 55,
-	/* U+006E+0307 -> U+1E45 */ 1223,
+	/* U+006E+0307 -> U+1E45 */ 1224,
 	/* U+006E+030C -> U+0148 */ 131,
-	/* U+006E+0323 -> U+1E47 */ 1225,
+	/* U+006E+0323 -> U+1E47 */ 1226,
 	/* U+006E+0327 -> U+0146 */ 129,
-	/* U+006E+032D -> U+1E4B */ 1229,
-	/* U+006E+0331 -> U+1E49 */ 1227,
+	/* U+006E+032D -> U+1E4B */ 1230,
+	/* U+006E+0331 -> U+1E49 */ 1228,
 	/* U+006F+0300 -> U+00F2 */ 56,
 	/* U+006F+0301 -> U+00F3 */ 57,
 	/* U+006F+0302 -> U+00F4 */ 58,
@@ -2062,39 +2079,39 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+006F+0306 -> U+014F */ 136,
 	/* U+006F+0307 -> U+022F */ 279,
 	/* U+006F+0308 -> U+00F6 */ 60,
-	/* U+006F+0309 -> U+1ECF */ 1357,
+	/* U+006F+0309 -> U+1ECF */ 1358,
 	/* U+006F+030B -> U+0151 */ 138,
 	/* U+006F+030C -> U+01D2 */ 199,
 	/* U+006F+030F -> U+020D */ 253,
 	/* U+006F+0311 -> U+020F */ 255,
 	/* U+006F+031B -> U+01A1 */ 182,
-	/* U+006F+0323 -> U+1ECD */ 1355,
+	/* U+006F+0323 -> U+1ECD */ 1356,
 	/* U+006F+0328 -> U+01EB */ 221,
-	/* U+0070+0301 -> U+1E55 */ 1239,
-	/* U+0070+0307 -> U+1E57 */ 1241,
+	/* U+0070+0301 -> U+1E55 */ 1240,
+	/* U+0070+0307 -> U+1E57 */ 1242,
 	/* U+0072+0301 -> U+0155 */ 140,
-	/* U+0072+0307 -> U+1E59 */ 1243,
+	/* U+0072+0307 -> U+1E59 */ 1244,
 	/* U+0072+030C -> U+0159 */ 144,
 	/* U+0072+030F -> U+0211 */ 257,
 	/* U+0072+0311 -> U+0213 */ 259,
-	/* U+0072+0323 -> U+1E5B */ 1245,
+	/* U+0072+0323 -> U+1E5B */ 1246,
 	/* U+0072+0327 -> U+0157 */ 142,
-	/* U+0072+0331 -> U+1E5F */ 1249,
+	/* U+0072+0331 -> U+1E5F */ 1250,
 	/* U+0073+0301 -> U+015B */ 146,
 	/* U+0073+0302 -> U+015D */ 148,
-	/* U+0073+0307 -> U+1E61 */ 1251,
+	/* U+0073+0307 -> U+1E61 */ 1252,
 	/* U+0073+030C -> U+0161 */ 152,
-	/* U+0073+0323 -> U+1E63 */ 1253,
+	/* U+0073+0323 -> U+1E63 */ 1254,
 	/* U+0073+0326 -> U+0219 */ 265,
 	/* U+0073+0327 -> U+015F */ 150,
-	/* U+0074+0307 -> U+1E6B */ 1261,
-	/* U+0074+0308 -> U+1E97 */ 1305,
+	/* U+0074+0307 -> U+1E6B */ 1262,
+	/* U+0074+0308 -> U+1E97 */ 1306,
 	/* U+0074+030C -> U+0165 */ 156,
-	/* U+0074+0323 -> U+1E6D */ 1263,
+	/* U+0074+0323 -> U+1E6D */ 1264,
 	/* U+0074+0326 -> U+021B */ 267,
 	/* U+0074+0327 -> U+0163 */ 154,
-	/* U+0074+032D -> U+1E71 */ 1267,
-	/* U+0074+0331 -> U+1E6F */ 1265,
+	/* U+0074+032D -> U+1E71 */ 1268,
+	/* U+0074+0331 -> U+1E6F */ 1266,
 	/* U+0075+0300 -> U+00F9 */ 61,
 	/* U+0075+0301 -> U+00FA */ 62,
 	/* U+0075+0302 -> U+00FB */ 63,
@@ -2102,251 +2119,251 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+0075+0304 -> U+016B */ 160,
 	/* U+0075+0306 -> U+016D */ 162,
 	/* U+0075+0308 -> U+00FC */ 64,
-	/* U+0075+0309 -> U+1EE7 */ 1381,
+	/* U+0075+0309 -> U+1EE7 */ 1382,
 	/* U+0075+030A -> U+016F */ 164,
 	/* U+0075+030B -> U+0171 */ 166,
 	/* U+0075+030C -> U+01D4 */ 201,
 	/* U+0075+030F -> U+0215 */ 261,
 	/* U+0075+0311 -> U+0217 */ 263,
 	/* U+0075+031B -> U+01B0 */ 184,
-	/* U+0075+0323 -> U+1EE5 */ 1379,
-	/* U+0075+0324 -> U+1E73 */ 1269,
+	/* U+0075+0323 -> U+1EE5 */ 1380,
+	/* U+0075+0324 -> U+1E73 */ 1270,
 	/* U+0075+0328 -> U+0173 */ 168,
-	/* U+0075+032D -> U+1E77 */ 1273,
-	/* U+0075+0330 -> U+1E75 */ 1271,
-	/* U+0076+0303 -> U+1E7D */ 1279,
-	/* U+0076+0323 -> U+1E7F */ 1281,
-	/* U+0077+0300 -> U+1E81 */ 1283,
-	/* U+0077+0301 -> U+1E83 */ 1285,
+	/* U+0075+032D -> U+1E77 */ 1274,
+	/* U+0075+0330 -> U+1E75 */ 1272,
+	/* U+0076+0303 -> U+1E7D */ 1280,
+	/* U+0076+0323 -> U+1E7F */ 1282,
+	/* U+0077+0300 -> U+1E81 */ 1284,
+	/* U+0077+0301 -> U+1E83 */ 1286,
 	/* U+0077+0302 -> U+0175 */ 170,
-	/* U+0077+0307 -> U+1E87 */ 1289,
-	/* U+0077+0308 -> U+1E85 */ 1287,
-	/* U+0077+030A -> U+1E98 */ 1306,
-	/* U+0077+0323 -> U+1E89 */ 1291,
-	/* U+0078+0307 -> U+1E8B */ 1293,
-	/* U+0078+0308 -> U+1E8D */ 1295,
-	/* U+0079+0300 -> U+1EF3 */ 1393,
+	/* U+0077+0307 -> U+1E87 */ 1290,
+	/* U+0077+0308 -> U+1E85 */ 1288,
+	/* U+0077+030A -> U+1E98 */ 1307,
+	/* U+0077+0323 -> U+1E89 */ 1292,
+	/* U+0078+0307 -> U+1E8B */ 1294,
+	/* U+0078+0308 -> U+1E8D */ 1296,
+	/* U+0079+0300 -> U+1EF3 */ 1394,
 	/* U+0079+0301 -> U+00FD */ 65,
 	/* U+0079+0302 -> U+0177 */ 172,
-	/* U+0079+0303 -> U+1EF9 */ 1399,
+	/* U+0079+0303 -> U+1EF9 */ 1400,
 	/* U+0079+0304 -> U+0233 */ 283,
-	/* U+0079+0307 -> U+1E8F */ 1297,
+	/* U+0079+0307 -> U+1E8F */ 1298,
 	/* U+0079+0308 -> U+00FF */ 66,
-	/* U+0079+0309 -> U+1EF7 */ 1397,
-	/* U+0079+030A -> U+1E99 */ 1307,
-	/* U+0079+0323 -> U+1EF5 */ 1395,
+	/* U+0079+0309 -> U+1EF7 */ 1398,
+	/* U+0079+030A -> U+1E99 */ 1308,
+	/* U+0079+0323 -> U+1EF5 */ 1396,
 	/* U+007A+0301 -> U+017A */ 175,
-	/* U+007A+0302 -> U+1E91 */ 1299,
+	/* U+007A+0302 -> U+1E91 */ 1300,
 	/* U+007A+0307 -> U+017C */ 177,
 	/* U+007A+030C -> U+017E */ 179,
-	/* U+007A+0323 -> U+1E93 */ 1301,
-	/* U+007A+0331 -> U+1E95 */ 1303,
-	/* U+00A8+0300 -> U+1FED */ 1618,
+	/* U+007A+0323 -> U+1E93 */ 1302,
+	/* U+007A+0331 -> U+1E95 */ 1304,
+	/* U+00A8+0300 -> U+1FED */ 1619,
 	/* U+00A8+0301 -> U+0385 */ 419,
-	/* U+00A8+0342 -> U+1FC1 */ 1578,
-	/* U+00C2+0300 -> U+1EA6 */ 1316,
-	/* U+00C2+0301 -> U+1EA4 */ 1314,
-	/* U+00C2+0303 -> U+1EAA */ 1320,
-	/* U+00C2+0309 -> U+1EA8 */ 1318,
+	/* U+00A8+0342 -> U+1FC1 */ 1579,
+	/* U+00C2+0300 -> U+1EA6 */ 1317,
+	/* U+00C2+0301 -> U+1EA4 */ 1315,
+	/* U+00C2+0303 -> U+1EAA */ 1321,
+	/* U+00C2+0309 -> U+1EA8 */ 1319,
 	/* U+00C4+0304 -> U+01DE */ 210,
 	/* U+00C5+0301 -> U+01FA */ 234,
 	/* U+00C6+0301 -> U+01FC */ 236,
 	/* U+00C6+0304 -> U+01E2 */ 214,
-	/* U+00C7+0301 -> U+1E08 */ 1162,
-	/* U+00CA+0300 -> U+1EC0 */ 1342,
-	/* U+00CA+0301 -> U+1EBE */ 1340,
-	/* U+00CA+0303 -> U+1EC4 */ 1346,
-	/* U+00CA+0309 -> U+1EC2 */ 1344,
-	/* U+00CF+0301 -> U+1E2E */ 1200,
-	/* U+00D4+0300 -> U+1ED2 */ 1360,
-	/* U+00D4+0301 -> U+1ED0 */ 1358,
-	/* U+00D4+0303 -> U+1ED6 */ 1364,
-	/* U+00D4+0309 -> U+1ED4 */ 1362,
-	/* U+00D5+0301 -> U+1E4C */ 1230,
+	/* U+00C7+0301 -> U+1E08 */ 1163,
+	/* U+00CA+0300 -> U+1EC0 */ 1343,
+	/* U+00CA+0301 -> U+1EBE */ 1341,
+	/* U+00CA+0303 -> U+1EC4 */ 1347,
+	/* U+00CA+0309 -> U+1EC2 */ 1345,
+	/* U+00CF+0301 -> U+1E2E */ 1201,
+	/* U+00D4+0300 -> U+1ED2 */ 1361,
+	/* U+00D4+0301 -> U+1ED0 */ 1359,
+	/* U+00D4+0303 -> U+1ED6 */ 1365,
+	/* U+00D4+0309 -> U+1ED4 */ 1363,
+	/* U+00D5+0301 -> U+1E4C */ 1231,
 	/* U+00D5+0304 -> U+022C */ 276,
-	/* U+00D5+0308 -> U+1E4E */ 1232,
+	/* U+00D5+0308 -> U+1E4E */ 1233,
 	/* U+00D6+0304 -> U+022A */ 274,
 	/* U+00D8+0301 -> U+01FE */ 238,
 	/* U+00DC+0300 -> U+01DB */ 208,
 	/* U+00DC+0301 -> U+01D7 */ 204,
 	/* U+00DC+0304 -> U+01D5 */ 202,
 	/* U+00DC+030C -> U+01D9 */ 206,
-	/* U+00E2+0300 -> U+1EA7 */ 1317,
-	/* U+00E2+0301 -> U+1EA5 */ 1315,
-	/* U+00E2+0303 -> U+1EAB */ 1321,
-	/* U+00E2+0309 -> U+1EA9 */ 1319,
+	/* U+00E2+0300 -> U+1EA7 */ 1318,
+	/* U+00E2+0301 -> U+1EA5 */ 1316,
+	/* U+00E2+0303 -> U+1EAB */ 1322,
+	/* U+00E2+0309 -> U+1EA9 */ 1320,
 	/* U+00E4+0304 -> U+01DF */ 211,
 	/* U+00E5+0301 -> U+01FB */ 235,
 	/* U+00E6+0301 -> U+01FD */ 237,
 	/* U+00E6+0304 -> U+01E3 */ 215,
-	/* U+00E7+0301 -> U+1E09 */ 1163,
-	/* U+00EA+0300 -> U+1EC1 */ 1343,
-	/* U+00EA+0301 -> U+1EBF */ 1341,
-	/* U+00EA+0303 -> U+1EC5 */ 1347,
-	/* U+00EA+0309 -> U+1EC3 */ 1345,
-	/* U+00EF+0301 -> U+1E2F */ 1201,
-	/* U+00F4+0300 -> U+1ED3 */ 1361,
-	/* U+00F4+0301 -> U+1ED1 */ 1359,
-	/* U+00F4+0303 -> U+1ED7 */ 1365,
-	/* U+00F4+0309 -> U+1ED5 */ 1363,
-	/* U+00F5+0301 -> U+1E4D */ 1231,
+	/* U+00E7+0301 -> U+1E09 */ 1164,
+	/* U+00EA+0300 -> U+1EC1 */ 1344,
+	/* U+00EA+0301 -> U+1EBF */ 1342,
+	/* U+00EA+0303 -> U+1EC5 */ 1348,
+	/* U+00EA+0309 -> U+1EC3 */ 1346,
+	/* U+00EF+0301 -> U+1E2F */ 1202,
+	/* U+00F4+0300 -> U+1ED3 */ 1362,
+	/* U+00F4+0301 -> U+1ED1 */ 1360,
+	/* U+00F4+0303 -> U+1ED7 */ 1366,
+	/* U+00F4+0309 -> U+1ED5 */ 1364,
+	/* U+00F5+0301 -> U+1E4D */ 1232,
 	/* U+00F5+0304 -> U+022D */ 277,
-	/* U+00F5+0308 -> U+1E4F */ 1233,
+	/* U+00F5+0308 -> U+1E4F */ 1234,
 	/* U+00F6+0304 -> U+022B */ 275,
 	/* U+00F8+0301 -> U+01FF */ 239,
 	/* U+00FC+0300 -> U+01DC */ 209,
 	/* U+00FC+0301 -> U+01D8 */ 205,
 	/* U+00FC+0304 -> U+01D6 */ 203,
 	/* U+00FC+030C -> U+01DA */ 207,
-	/* U+0102+0300 -> U+1EB0 */ 1326,
-	/* U+0102+0301 -> U+1EAE */ 1324,
-	/* U+0102+0303 -> U+1EB4 */ 1330,
-	/* U+0102+0309 -> U+1EB2 */ 1328,
-	/* U+0103+0300 -> U+1EB1 */ 1327,
-	/* U+0103+0301 -> U+1EAF */ 1325,
-	/* U+0103+0303 -> U+1EB5 */ 1331,
-	/* U+0103+0309 -> U+1EB3 */ 1329,
-	/* U+0112+0300 -> U+1E14 */ 1174,
-	/* U+0112+0301 -> U+1E16 */ 1176,
-	/* U+0113+0300 -> U+1E15 */ 1175,
-	/* U+0113+0301 -> U+1E17 */ 1177,
-	/* U+014C+0300 -> U+1E50 */ 1234,
-	/* U+014C+0301 -> U+1E52 */ 1236,
-	/* U+014D+0300 -> U+1E51 */ 1235,
-	/* U+014D+0301 -> U+1E53 */ 1237,
-	/* U+015A+0307 -> U+1E64 */ 1254,
-	/* U+015B+0307 -> U+1E65 */ 1255,
-	/* U+0160+0307 -> U+1E66 */ 1256,
-	/* U+0161+0307 -> U+1E67 */ 1257,
-	/* U+0168+0301 -> U+1E78 */ 1274,
-	/* U+0169+0301 -> U+1E79 */ 1275,
-	/* U+016A+0308 -> U+1E7A */ 1276,
-	/* U+016B+0308 -> U+1E7B */ 1277,
-	/* U+017F+0307 -> U+1E9B */ 1309,
-	/* U+01A0+0300 -> U+1EDC */ 1370,
-	/* U+01A0+0301 -> U+1EDA */ 1368,
-	/* U+01A0+0303 -> U+1EE0 */ 1374,
-	/* U+01A0+0309 -> U+1EDE */ 1372,
-	/* U+01A0+0323 -> U+1EE2 */ 1376,
-	/* U+01A1+0300 -> U+1EDD */ 1371,
-	/* U+01A1+0301 -> U+1EDB */ 1369,
-	/* U+01A1+0303 -> U+1EE1 */ 1375,
-	/* U+01A1+0309 -> U+1EDF */ 1373,
-	/* U+01A1+0323 -> U+1EE3 */ 1377,
-	/* U+01AF+0300 -> U+1EEA */ 1384,
-	/* U+01AF+0301 -> U+1EE8 */ 1382,
-	/* U+01AF+0303 -> U+1EEE */ 1388,
-	/* U+01AF+0309 -> U+1EEC */ 1386,
-	/* U+01AF+0323 -> U+1EF0 */ 1390,
-	/* U+01B0+0300 -> U+1EEB */ 1385,
-	/* U+01B0+0301 -> U+1EE9 */ 1383,
-	/* U+01B0+0303 -> U+1EEF */ 1389,
-	/* U+01B0+0309 -> U+1EED */ 1387,
-	/* U+01B0+0323 -> U+1EF1 */ 1391,
+	/* U+0102+0300 -> U+1EB0 */ 1327,
+	/* U+0102+0301 -> U+1EAE */ 1325,
+	/* U+0102+0303 -> U+1EB4 */ 1331,
+	/* U+0102+0309 -> U+1EB2 */ 1329,
+	/* U+0103+0300 -> U+1EB1 */ 1328,
+	/* U+0103+0301 -> U+1EAF */ 1326,
+	/* U+0103+0303 -> U+1EB5 */ 1332,
+	/* U+0103+0309 -> U+1EB3 */ 1330,
+	/* U+0112+0300 -> U+1E14 */ 1175,
+	/* U+0112+0301 -> U+1E16 */ 1177,
+	/* U+0113+0300 -> U+1E15 */ 1176,
+	/* U+0113+0301 -> U+1E17 */ 1178,
+	/* U+014C+0300 -> U+1E50 */ 1235,
+	/* U+014C+0301 -> U+1E52 */ 1237,
+	/* U+014D+0300 -> U+1E51 */ 1236,
+	/* U+014D+0301 -> U+1E53 */ 1238,
+	/* U+015A+0307 -> U+1E64 */ 1255,
+	/* U+015B+0307 -> U+1E65 */ 1256,
+	/* U+0160+0307 -> U+1E66 */ 1257,
+	/* U+0161+0307 -> U+1E67 */ 1258,
+	/* U+0168+0301 -> U+1E78 */ 1275,
+	/* U+0169+0301 -> U+1E79 */ 1276,
+	/* U+016A+0308 -> U+1E7A */ 1277,
+	/* U+016B+0308 -> U+1E7B */ 1278,
+	/* U+017F+0307 -> U+1E9B */ 1310,
+	/* U+01A0+0300 -> U+1EDC */ 1371,
+	/* U+01A0+0301 -> U+1EDA */ 1369,
+	/* U+01A0+0303 -> U+1EE0 */ 1375,
+	/* U+01A0+0309 -> U+1EDE */ 1373,
+	/* U+01A0+0323 -> U+1EE2 */ 1377,
+	/* U+01A1+0300 -> U+1EDD */ 1372,
+	/* U+01A1+0301 -> U+1EDB */ 1370,
+	/* U+01A1+0303 -> U+1EE1 */ 1376,
+	/* U+01A1+0309 -> U+1EDF */ 1374,
+	/* U+01A1+0323 -> U+1EE3 */ 1378,
+	/* U+01AF+0300 -> U+1EEA */ 1385,
+	/* U+01AF+0301 -> U+1EE8 */ 1383,
+	/* U+01AF+0303 -> U+1EEE */ 1389,
+	/* U+01AF+0309 -> U+1EEC */ 1387,
+	/* U+01AF+0323 -> U+1EF0 */ 1391,
+	/* U+01B0+0300 -> U+1EEB */ 1386,
+	/* U+01B0+0301 -> U+1EE9 */ 1384,
+	/* U+01B0+0303 -> U+1EEF */ 1390,
+	/* U+01B0+0309 -> U+1EED */ 1388,
+	/* U+01B0+0323 -> U+1EF1 */ 1392,
 	/* U+01B7+030C -> U+01EE */ 224,
 	/* U+01EA+0304 -> U+01EC */ 222,
 	/* U+01EB+0304 -> U+01ED */ 223,
 	/* U+0226+0304 -> U+01E0 */ 212,
 	/* U+0227+0304 -> U+01E1 */ 213,
-	/* U+0228+0306 -> U+1E1C */ 1182,
-	/* U+0229+0306 -> U+1E1D */ 1183,
+	/* U+0228+0306 -> U+1E1C */ 1183,
+	/* U+0229+0306 -> U+1E1D */ 1184,
 	/* U+022E+0304 -> U+0230 */ 280,
 	/* U+022F+0304 -> U+0231 */ 281,
 	/* U+0292+030C -> U+01EF */ 225,
-	/* U+0391+0300 -> U+1FBA */ 1571,
+	/* U+0391+0300 -> U+1FBA */ 1572,
 	/* U+0391+0301 -> U+0386 */ 420,
-	/* U+0391+0304 -> U+1FB9 */ 1570,
-	/* U+0391+0306 -> U+1FB8 */ 1569,
-	/* U+0391+0313 -> U+1F08 */ 1408,
-	/* U+0391+0314 -> U+1F09 */ 1409,
-	/* U+0391+0345 -> U+1FBC */ 1573,
-	/* U+0395+0300 -> U+1FC8 */ 1584,
+	/* U+0391+0304 -> U+1FB9 */ 1571,
+	/* U+0391+0306 -> U+1FB8 */ 1570,
+	/* U+0391+0313 -> U+1F08 */ 1409,
+	/* U+0391+0314 -> U+1F09 */ 1410,
+	/* U+0391+0345 -> U+1FBC */ 1574,
+	/* U+0395+0300 -> U+1FC8 */ 1585,
 	/* U+0395+0301 -> U+0388 */ 422,
-	/* U+0395+0313 -> U+1F18 */ 1422,
-	/* U+0395+0314 -> U+1F19 */ 1423,
-	/* U+0397+0300 -> U+1FCA */ 1586,
+	/* U+0395+0313 -> U+1F18 */ 1423,
+	/* U+0395+0314 -> U+1F19 */ 1424,
+	/* U+0397+0300 -> U+1FCA */ 1587,
 	/* U+0397+0301 -> U+0389 */ 423,
-	/* U+0397+0313 -> U+1F28 */ 1436,
-	/* U+0397+0314 -> U+1F29 */ 1437,
-	/* U+0397+0345 -> U+1FCC */ 1588,
-	/* U+0399+0300 -> U+1FDA */ 1600,
+	/* U+0397+0313 -> U+1F28 */ 1437,
+	/* U+0397+0314 -> U+1F29 */ 1438,
+	/* U+0397+0345 -> U+1FCC */ 1589,
+	/* U+0399+0300 -> U+1FDA */ 1601,
 	/* U+0399+0301 -> U+038A */ 424,
-	/* U+0399+0304 -> U+1FD9 */ 1599,
-	/* U+0399+0306 -> U+1FD8 */ 1598,
+	/* U+0399+0304 -> U+1FD9 */ 1600,
+	/* U+0399+0306 -> U+1FD8 */ 1599,
 	/* U+0399+0308 -> U+03AA */ 429,
-	/* U+0399+0313 -> U+1F38 */ 1452,
-	/* U+0399+0314 -> U+1F39 */ 1453,
-	/* U+039F+0300 -> U+1FF8 */ 1626,
+	/* U+0399+0313 -> U+1F38 */ 1453,
+	/* U+0399+0314 -> U+1F39 */ 1454,
+	/* U+039F+0300 -> U+1FF8 */ 1627,
 	/* U+039F+0301 -> U+038C */ 425,
-	/* U+039F+0313 -> U+1F48 */ 1466,
-	/* U+039F+0314 -> U+1F49 */ 1467,
-	/* U+03A1+0314 -> U+1FEC */ 1617,
-	/* U+03A5+0300 -> U+1FEA */ 1615,
+	/* U+039F+0313 -> U+1F48 */ 1467,
+	/* U+039F+0314 -> U+1F49 */ 1468,
+	/* U+03A1+0314 -> U+1FEC */ 1618,
+	/* U+03A5+0300 -> U+1FEA */ 1616,
 	/* U+03A5+0301 -> U+038E */ 426,
-	/* U+03A5+0304 -> U+1FE9 */ 1614,
-	/* U+03A5+0306 -> U+1FE8 */ 1613,
+	/* U+03A5+0304 -> U+1FE9 */ 1615,
+	/* U+03A5+0306 -> U+1FE8 */ 1614,
 	/* U+03A5+0308 -> U+03AB */ 430,
-	/* U+03A5+0314 -> U+1F59 */ 1480,
-	/* U+03A9+0300 -> U+1FFA */ 1628,
+	/* U+03A5+0314 -> U+1F59 */ 1481,
+	/* U+03A9+0300 -> U+1FFA */ 1629,
 	/* U+03A9+0301 -> U+038F */ 427,
-	/* U+03A9+0313 -> U+1F68 */ 1492,
-	/* U+03A9+0314 -> U+1F69 */ 1493,
-	/* U+03A9+0345 -> U+1FFC */ 1630,
-	/* U+03AC+0345 -> U+1FB4 */ 1566,
-	/* U+03AE+0345 -> U+1FC4 */ 1581,
-	/* U+03B1+0300 -> U+1F70 */ 1500,
+	/* U+03A9+0313 -> U+1F68 */ 1493,
+	/* U+03A9+0314 -> U+1F69 */ 1494,
+	/* U+03A9+0345 -> U+1FFC */ 1631,
+	/* U+03AC+0345 -> U+1FB4 */ 1567,
+	/* U+03AE+0345 -> U+1FC4 */ 1582,
+	/* U+03B1+0300 -> U+1F70 */ 1501,
 	/* U+03B1+0301 -> U+03AC */ 431,
-	/* U+03B1+0304 -> U+1FB1 */ 1563,
-	/* U+03B1+0306 -> U+1FB0 */ 1562,
-	/* U+03B1+0313 -> U+1F00 */ 1400,
-	/* U+03B1+0314 -> U+1F01 */ 1401,
-	/* U+03B1+0342 -> U+1FB6 */ 1567,
-	/* U+03B1+0345 -> U+1FB3 */ 1565,
-	/* U+03B5+0300 -> U+1F72 */ 1502,
+	/* U+03B1+0304 -> U+1FB1 */ 1564,
+	/* U+03B1+0306 -> U+1FB0 */ 1563,
+	/* U+03B1+0313 -> U+1F00 */ 1401,
+	/* U+03B1+0314 -> U+1F01 */ 1402,
+	/* U+03B1+0342 -> U+1FB6 */ 1568,
+	/* U+03B1+0345 -> U+1FB3 */ 1566,
+	/* U+03B5+0300 -> U+1F72 */ 1503,
 	/* U+03B5+0301 -> U+03AD */ 432,
-	/* U+03B5+0313 -> U+1F10 */ 1416,
-	/* U+03B5+0314 -> U+1F11 */ 1417,
-	/* U+03B7+0300 -> U+1F74 */ 1504,
+	/* U+03B5+0313 -> U+1F10 */ 1417,
+	/* U+03B5+0314 -> U+1F11 */ 1418,
+	/* U+03B7+0300 -> U+1F74 */ 1505,
 	/* U+03B7+0301 -> U+03AE */ 433,
-	/* U+03B7+0313 -> U+1F20 */ 1428,
-	/* U+03B7+0314 -> U+1F21 */ 1429,
-	/* U+03B7+0342 -> U+1FC6 */ 1582,
-	/* U+03B7+0345 -> U+1FC3 */ 1580,
-	/* U+03B9+0300 -> U+1F76 */ 1506,
+	/* U+03B7+0313 -> U+1F20 */ 1429,
+	/* U+03B7+0314 -> U+1F21 */ 1430,
+	/* U+03B7+0342 -> U+1FC6 */ 1583,
+	/* U+03B7+0345 -> U+1FC3 */ 1581,
+	/* U+03B9+0300 -> U+1F76 */ 1507,
 	/* U+03B9+0301 -> U+03AF */ 434,
-	/* U+03B9+0304 -> U+1FD1 */ 1593,
-	/* U+03B9+0306 -> U+1FD0 */ 1592,
+	/* U+03B9+0304 -> U+1FD1 */ 1594,
+	/* U+03B9+0306 -> U+1FD0 */ 1593,
 	/* U+03B9+0308 -> U+03CA */ 436,
-	/* U+03B9+0313 -> U+1F30 */ 1444,
-	/* U+03B9+0314 -> U+1F31 */ 1445,
-	/* U+03B9+0342 -> U+1FD6 */ 1596,
-	/* U+03BF+0300 -> U+1F78 */ 1508,
+	/* U+03B9+0313 -> U+1F30 */ 1445,
+	/* U+03B9+0314 -> U+1F31 */ 1446,
+	/* U+03B9+0342 -> U+1FD6 */ 1597,
+	/* U+03BF+0300 -> U+1F78 */ 1509,
 	/* U+03BF+0301 -> U+03CC */ 438,
-	/* U+03BF+0313 -> U+1F40 */ 1460,
-	/* U+03BF+0314 -> U+1F41 */ 1461,
-	/* U+03C1+0313 -> U+1FE4 */ 1609,
-	/* U+03C1+0314 -> U+1FE5 */ 1610,
-	/* U+03C5+0300 -> U+1F7A */ 1510,
+	/* U+03BF+0313 -> U+1F40 */ 1461,
+	/* U+03BF+0314 -> U+1F41 */ 1462,
+	/* U+03C1+0313 -> U+1FE4 */ 1610,
+	/* U+03C1+0314 -> U+1FE5 */ 1611,
+	/* U+03C5+0300 -> U+1F7A */ 1511,
 	/* U+03C5+0301 -> U+03CD */ 439,
-	/* U+03C5+0304 -> U+1FE1 */ 1606,
-	/* U+03C5+0306 -> U+1FE0 */ 1605,
+	/* U+03C5+0304 -> U+1FE1 */ 1607,
+	/* U+03C5+0306 -> U+1FE0 */ 1606,
 	/* U+03C5+0308 -> U+03CB */ 437,
-	/* U+03C5+0313 -> U+1F50 */ 1472,
-	/* U+03C5+0314 -> U+1F51 */ 1473,
-	/* U+03C5+0342 -> U+1FE6 */ 1611,
-	/* U+03C9+0300 -> U+1F7C */ 1512,
+	/* U+03C5+0313 -> U+1F50 */ 1473,
+	/* U+03C5+0314 -> U+1F51 */ 1474,
+	/* U+03C5+0342 -> U+1FE6 */ 1612,
+	/* U+03C9+0300 -> U+1F7C */ 1513,
 	/* U+03C9+0301 -> U+03CE */ 440,
-	/* U+03C9+0313 -> U+1F60 */ 1484,
-	/* U+03C9+0314 -> U+1F61 */ 1485,
-	/* U+03C9+0342 -> U+1FF6 */ 1624,
-	/* U+03C9+0345 -> U+1FF3 */ 1622,
-	/* U+03CA+0300 -> U+1FD2 */ 1594,
+	/* U+03C9+0313 -> U+1F60 */ 1485,
+	/* U+03C9+0314 -> U+1F61 */ 1486,
+	/* U+03C9+0342 -> U+1FF6 */ 1625,
+	/* U+03C9+0345 -> U+1FF3 */ 1623,
+	/* U+03CA+0300 -> U+1FD2 */ 1595,
 	/* U+03CA+0301 -> U+0390 */ 428,
-	/* U+03CA+0342 -> U+1FD7 */ 1597,
-	/* U+03CB+0300 -> U+1FE2 */ 1607,
+	/* U+03CA+0342 -> U+1FD7 */ 1598,
+	/* U+03CB+0300 -> U+1FE2 */ 1608,
 	/* U+03CB+0301 -> U+03B0 */ 435,
-	/* U+03CB+0342 -> U+1FE7 */ 1612,
-	/* U+03CE+0345 -> U+1FF4 */ 1623,
+	/* U+03CB+0342 -> U+1FE7 */ 1613,
+	/* U+03CE+0345 -> U+1FF4 */ 1624,
 	/* U+03D2+0301 -> U+03D3 */ 444,
 	/* U+03D2+0308 -> U+03D4 */ 445,
 	/* U+0406+0308 -> U+0407 */ 457,
@@ -2409,545 +2426,570 @@ static const uint16 RecompInverseLookup[941] =
 	/* U+06C1+0654 -> U+06C2 */ 606,
 	/* U+06D2+0654 -> U+06D3 */ 607,
 	/* U+06D5+0654 -> U+06C0 */ 605,
-	/* U+0928+093C -> U+0929 */ 750,
-	/* U+0930+093C -> U+0931 */ 751,
-	/* U+0933+093C -> U+0934 */ 752,
-	/* U+09C7+09BE -> U+09CB */ 768,
-	/* U+09C7+09D7 -> U+09CC */ 769,
-	/* U+0B47+0B3E -> U+0B4B */ 787,
-	/* U+0B47+0B56 -> U+0B48 */ 786,
-	/* U+0B47+0B57 -> U+0B4C */ 788,
-	/* U+0B92+0BD7 -> U+0B94 */ 792,
-	/* U+0BC6+0BBE -> U+0BCA */ 793,
-	/* U+0BC6+0BD7 -> U+0BCC */ 795,
-	/* U+0BC7+0BBE -> U+0BCB */ 794,
-	/* U+0C46+0C56 -> U+0C48 */ 798,
-	/* U+0CBF+0CD5 -> U+0CC0 */ 803,
-	/* U+0CC6+0CC2 -> U+0CCA */ 806,
-	/* U+0CC6+0CD5 -> U+0CC7 */ 804,
-	/* U+0CC6+0CD6 -> U+0CC8 */ 805,
-	/* U+0CCA+0CD5 -> U+0CCB */ 807,
-	/* U+0D46+0D3E -> U+0D4A */ 811,
-	/* U+0D46+0D57 -> U+0D4C */ 813,
-	/* U+0D47+0D3E -> U+0D4B */ 812,
-	/* U+0DD9+0DCA -> U+0DDA */ 816,
-	/* U+0DD9+0DCF -> U+0DDC */ 817,
-	/* U+0DD9+0DDF -> U+0DDE */ 819,
-	/* U+0DDC+0DCA -> U+0DDD */ 818,
-	/* U+1025+102E -> U+1026 */ 877,
-	/* U+1B05+1B35 -> U+1B06 */ 937,
-	/* U+1B07+1B35 -> U+1B08 */ 938,
-	/* U+1B09+1B35 -> U+1B0A */ 939,
-	/* U+1B0B+1B35 -> U+1B0C */ 940,
-	/* U+1B0D+1B35 -> U+1B0E */ 941,
-	/* U+1B11+1B35 -> U+1B12 */ 942,
-	/* U+1B3A+1B35 -> U+1B3B */ 944,
-	/* U+1B3C+1B35 -> U+1B3D */ 945,
-	/* U+1B3E+1B35 -> U+1B40 */ 946,
-	/* U+1B3F+1B35 -> U+1B41 */ 947,
-	/* U+1B42+1B35 -> U+1B43 */ 948,
-	/* U+1E36+0304 -> U+1E38 */ 1210,
-	/* U+1E37+0304 -> U+1E39 */ 1211,
-	/* U+1E5A+0304 -> U+1E5C */ 1246,
-	/* U+1E5B+0304 -> U+1E5D */ 1247,
-	/* U+1E62+0307 -> U+1E68 */ 1258,
-	/* U+1E63+0307 -> U+1E69 */ 1259,
-	/* U+1EA0+0302 -> U+1EAC */ 1322,
-	/* U+1EA0+0306 -> U+1EB6 */ 1332,
-	/* U+1EA1+0302 -> U+1EAD */ 1323,
-	/* U+1EA1+0306 -> U+1EB7 */ 1333,
-	/* U+1EB8+0302 -> U+1EC6 */ 1348,
-	/* U+1EB9+0302 -> U+1EC7 */ 1349,
-	/* U+1ECC+0302 -> U+1ED8 */ 1366,
-	/* U+1ECD+0302 -> U+1ED9 */ 1367,
-	/* U+1F00+0300 -> U+1F02 */ 1402,
-	/* U+1F00+0301 -> U+1F04 */ 1404,
-	/* U+1F00+0342 -> U+1F06 */ 1406,
-	/* U+1F00+0345 -> U+1F80 */ 1514,
-	/* U+1F01+0300 -> U+1F03 */ 1403,
-	/* U+1F01+0301 -> U+1F05 */ 1405,
-	/* U+1F01+0342 -> U+1F07 */ 1407,
-	/* U+1F01+0345 -> U+1F81 */ 1515,
-	/* U+1F02+0345 -> U+1F82 */ 1516,
-	/* U+1F03+0345 -> U+1F83 */ 1517,
-	/* U+1F04+0345 -> U+1F84 */ 1518,
-	/* U+1F05+0345 -> U+1F85 */ 1519,
-	/* U+1F06+0345 -> U+1F86 */ 1520,
-	/* U+1F07+0345 -> U+1F87 */ 1521,
-	/* U+1F08+0300 -> U+1F0A */ 1410,
-	/* U+1F08+0301 -> U+1F0C */ 1412,
-	/* U+1F08+0342 -> U+1F0E */ 1414,
-	/* U+1F08+0345 -> U+1F88 */ 1522,
-	/* U+1F09+0300 -> U+1F0B */ 1411,
-	/* U+1F09+0301 -> U+1F0D */ 1413,
-	/* U+1F09+0342 -> U+1F0F */ 1415,
-	/* U+1F09+0345 -> U+1F89 */ 1523,
-	/* U+1F0A+0345 -> U+1F8A */ 1524,
-	/* U+1F0B+0345 -> U+1F8B */ 1525,
-	/* U+1F0C+0345 -> U+1F8C */ 1526,
-	/* U+1F0D+0345 -> U+1F8D */ 1527,
-	/* U+1F0E+0345 -> U+1F8E */ 1528,
-	/* U+1F0F+0345 -> U+1F8F */ 1529,
-	/* U+1F10+0300 -> U+1F12 */ 1418,
-	/* U+1F10+0301 -> U+1F14 */ 1420,
-	/* U+1F11+0300 -> U+1F13 */ 1419,
-	/* U+1F11+0301 -> U+1F15 */ 1421,
-	/* U+1F18+0300 -> U+1F1A */ 1424,
-	/* U+1F18+0301 -> U+1F1C */ 1426,
-	/* U+1F19+0300 -> U+1F1B */ 1425,
-	/* U+1F19+0301 -> U+1F1D */ 1427,
-	/* U+1F20+0300 -> U+1F22 */ 1430,
-	/* U+1F20+0301 -> U+1F24 */ 1432,
-	/* U+1F20+0342 -> U+1F26 */ 1434,
-	/* U+1F20+0345 -> U+1F90 */ 1530,
-	/* U+1F21+0300 -> U+1F23 */ 1431,
-	/* U+1F21+0301 -> U+1F25 */ 1433,
-	/* U+1F21+0342 -> U+1F27 */ 1435,
-	/* U+1F21+0345 -> U+1F91 */ 1531,
-	/* U+1F22+0345 -> U+1F92 */ 1532,
-	/* U+1F23+0345 -> U+1F93 */ 1533,
-	/* U+1F24+0345 -> U+1F94 */ 1534,
-	/* U+1F25+0345 -> U+1F95 */ 1535,
-	/* U+1F26+0345 -> U+1F96 */ 1536,
-	/* U+1F27+0345 -> U+1F97 */ 1537,
-	/* U+1F28+0300 -> U+1F2A */ 1438,
-	/* U+1F28+0301 -> U+1F2C */ 1440,
-	/* U+1F28+0342 -> U+1F2E */ 1442,
-	/* U+1F28+0345 -> U+1F98 */ 1538,
-	/* U+1F29+0300 -> U+1F2B */ 1439,
-	/* U+1F29+0301 -> U+1F2D */ 1441,
-	/* U+1F29+0342 -> U+1F2F */ 1443,
-	/* U+1F29+0345 -> U+1F99 */ 1539,
-	/* U+1F2A+0345 -> U+1F9A */ 1540,
-	/* U+1F2B+0345 -> U+1F9B */ 1541,
-	/* U+1F2C+0345 -> U+1F9C */ 1542,
-	/* U+1F2D+0345 -> U+1F9D */ 1543,
-	/* U+1F2E+0345 -> U+1F9E */ 1544,
-	/* U+1F2F+0345 -> U+1F9F */ 1545,
-	/* U+1F30+0300 -> U+1F32 */ 1446,
-	/* U+1F30+0301 -> U+1F34 */ 1448,
-	/* U+1F30+0342 -> U+1F36 */ 1450,
-	/* U+1F31+0300 -> U+1F33 */ 1447,
-	/* U+1F31+0301 -> U+1F35 */ 1449,
-	/* U+1F31+0342 -> U+1F37 */ 1451,
-	/* U+1F38+0300 -> U+1F3A */ 1454,
-	/* U+1F38+0301 -> U+1F3C */ 1456,
-	/* U+1F38+0342 -> U+1F3E */ 1458,
-	/* U+1F39+0300 -> U+1F3B */ 1455,
-	/* U+1F39+0301 -> U+1F3D */ 1457,
-	/* U+1F39+0342 -> U+1F3F */ 1459,
-	/* U+1F40+0300 -> U+1F42 */ 1462,
-	/* U+1F40+0301 -> U+1F44 */ 1464,
-	/* U+1F41+0300 -> U+1F43 */ 1463,
-	/* U+1F41+0301 -> U+1F45 */ 1465,
-	/* U+1F48+0300 -> U+1F4A */ 1468,
-	/* U+1F48+0301 -> U+1F4C */ 1470,
-	/* U+1F49+0300 -> U+1F4B */ 1469,
-	/* U+1F49+0301 -> U+1F4D */ 1471,
-	/* U+1F50+0300 -> U+1F52 */ 1474,
-	/* U+1F50+0301 -> U+1F54 */ 1476,
-	/* U+1F50+0342 -> U+1F56 */ 1478,
-	/* U+1F51+0300 -> U+1F53 */ 1475,
-	/* U+1F51+0301 -> U+1F55 */ 1477,
-	/* U+1F51+0342 -> U+1F57 */ 1479,
-	/* U+1F59+0300 -> U+1F5B */ 1481,
-	/* U+1F59+0301 -> U+1F5D */ 1482,
-	/* U+1F59+0342 -> U+1F5F */ 1483,
-	/* U+1F60+0300 -> U+1F62 */ 1486,
-	/* U+1F60+0301 -> U+1F64 */ 1488,
-	/* U+1F60+0342 -> U+1F66 */ 1490,
-	/* U+1F60+0345 -> U+1FA0 */ 1546,
-	/* U+1F61+0300 -> U+1F63 */ 1487,
-	/* U+1F61+0301 -> U+1F65 */ 1489,
-	/* U+1F61+0342 -> U+1F67 */ 1491,
-	/* U+1F61+0345 -> U+1FA1 */ 1547,
-	/* U+1F62+0345 -> U+1FA2 */ 1548,
-	/* U+1F63+0345 -> U+1FA3 */ 1549,
-	/* U+1F64+0345 -> U+1FA4 */ 1550,
-	/* U+1F65+0345 -> U+1FA5 */ 1551,
-	/* U+1F66+0345 -> U+1FA6 */ 1552,
-	/* U+1F67+0345 -> U+1FA7 */ 1553,
-	/* U+1F68+0300 -> U+1F6A */ 1494,
-	/* U+1F68+0301 -> U+1F6C */ 1496,
-	/* U+1F68+0342 -> U+1F6E */ 1498,
-	/* U+1F68+0345 -> U+1FA8 */ 1554,
-	/* U+1F69+0300 -> U+1F6B */ 1495,
-	/* U+1F69+0301 -> U+1F6D */ 1497,
-	/* U+1F69+0342 -> U+1F6F */ 1499,
-	/* U+1F69+0345 -> U+1FA9 */ 1555,
-	/* U+1F6A+0345 -> U+1FAA */ 1556,
-	/* U+1F6B+0345 -> U+1FAB */ 1557,
-	/* U+1F6C+0345 -> U+1FAC */ 1558,
-	/* U+1F6D+0345 -> U+1FAD */ 1559,
-	/* U+1F6E+0345 -> U+1FAE */ 1560,
-	/* U+1F6F+0345 -> U+1FAF */ 1561,
-	/* U+1F70+0345 -> U+1FB2 */ 1564,
-	/* U+1F74+0345 -> U+1FC2 */ 1579,
-	/* U+1F7C+0345 -> U+1FF2 */ 1621,
-	/* U+1FB6+0345 -> U+1FB7 */ 1568,
-	/* U+1FBF+0300 -> U+1FCD */ 1589,
-	/* U+1FBF+0301 -> U+1FCE */ 1590,
-	/* U+1FBF+0342 -> U+1FCF */ 1591,
-	/* U+1FC6+0345 -> U+1FC7 */ 1583,
-	/* U+1FF6+0345 -> U+1FF7 */ 1625,
-	/* U+1FFE+0300 -> U+1FDD */ 1602,
-	/* U+1FFE+0301 -> U+1FDE */ 1603,
-	/* U+1FFE+0342 -> U+1FDF */ 1604,
-	/* U+2190+0338 -> U+219A */ 1835,
-	/* U+2192+0338 -> U+219B */ 1836,
-	/* U+2194+0338 -> U+21AE */ 1837,
-	/* U+21D0+0338 -> U+21CD */ 1838,
-	/* U+21D2+0338 -> U+21CF */ 1840,
-	/* U+21D4+0338 -> U+21CE */ 1839,
-	/* U+2203+0338 -> U+2204 */ 1841,
-	/* U+2208+0338 -> U+2209 */ 1842,
-	/* U+220B+0338 -> U+220C */ 1843,
-	/* U+2223+0338 -> U+2224 */ 1844,
-	/* U+2225+0338 -> U+2226 */ 1845,
-	/* U+223C+0338 -> U+2241 */ 1850,
-	/* U+2243+0338 -> U+2244 */ 1851,
-	/* U+2245+0338 -> U+2247 */ 1852,
-	/* U+2248+0338 -> U+2249 */ 1853,
-	/* U+224D+0338 -> U+226D */ 1856,
-	/* U+2261+0338 -> U+2262 */ 1855,
-	/* U+2264+0338 -> U+2270 */ 1859,
-	/* U+2265+0338 -> U+2271 */ 1860,
-	/* U+2272+0338 -> U+2274 */ 1861,
-	/* U+2273+0338 -> U+2275 */ 1862,
-	/* U+2276+0338 -> U+2278 */ 1863,
-	/* U+2277+0338 -> U+2279 */ 1864,
-	/* U+227A+0338 -> U+2280 */ 1865,
-	/* U+227B+0338 -> U+2281 */ 1866,
-	/* U+227C+0338 -> U+22E0 */ 1875,
-	/* U+227D+0338 -> U+22E1 */ 1876,
-	/* U+2282+0338 -> U+2284 */ 1867,
-	/* U+2283+0338 -> U+2285 */ 1868,
-	/* U+2286+0338 -> U+2288 */ 1869,
-	/* U+2287+0338 -> U+2289 */ 1870,
-	/* U+2291+0338 -> U+22E2 */ 1877,
-	/* U+2292+0338 -> U+22E3 */ 1878,
-	/* U+22A2+0338 -> U+22AC */ 1871,
-	/* U+22A8+0338 -> U+22AD */ 1872,
-	/* U+22A9+0338 -> U+22AE */ 1873,
-	/* U+22AB+0338 -> U+22AF */ 1874,
-	/* U+22B2+0338 -> U+22EA */ 1879,
-	/* U+22B3+0338 -> U+22EB */ 1880,
-	/* U+22B4+0338 -> U+22EC */ 1881,
-	/* U+22B5+0338 -> U+22ED */ 1882,
-	/* U+3046+3099 -> U+3094 */ 2320,
-	/* U+304B+3099 -> U+304C */ 2295,
-	/* U+304D+3099 -> U+304E */ 2296,
-	/* U+304F+3099 -> U+3050 */ 2297,
-	/* U+3051+3099 -> U+3052 */ 2298,
-	/* U+3053+3099 -> U+3054 */ 2299,
-	/* U+3055+3099 -> U+3056 */ 2300,
-	/* U+3057+3099 -> U+3058 */ 2301,
-	/* U+3059+3099 -> U+305A */ 2302,
-	/* U+305B+3099 -> U+305C */ 2303,
-	/* U+305D+3099 -> U+305E */ 2304,
-	/* U+305F+3099 -> U+3060 */ 2305,
-	/* U+3061+3099 -> U+3062 */ 2306,
-	/* U+3064+3099 -> U+3065 */ 2307,
-	/* U+3066+3099 -> U+3067 */ 2308,
-	/* U+3068+3099 -> U+3069 */ 2309,
-	/* U+306F+3099 -> U+3070 */ 2310,
-	/* U+306F+309A -> U+3071 */ 2311,
-	/* U+3072+3099 -> U+3073 */ 2312,
-	/* U+3072+309A -> U+3074 */ 2313,
-	/* U+3075+3099 -> U+3076 */ 2314,
-	/* U+3075+309A -> U+3077 */ 2315,
-	/* U+3078+3099 -> U+3079 */ 2316,
-	/* U+3078+309A -> U+307A */ 2317,
-	/* U+307B+3099 -> U+307C */ 2318,
-	/* U+307B+309A -> U+307D */ 2319,
-	/* U+309D+3099 -> U+309E */ 2325,
-	/* U+30A6+3099 -> U+30F4 */ 2352,
-	/* U+30AB+3099 -> U+30AC */ 2327,
-	/* U+30AD+3099 -> U+30AE */ 2328,
-	/* U+30AF+3099 -> U+30B0 */ 2329,
-	/* U+30B1+3099 -> U+30B2 */ 2330,
-	/* U+30B3+3099 -> U+30B4 */ 2331,
-	/* U+30B5+3099 -> U+30B6 */ 2332,
-	/* U+30B7+3099 -> U+30B8 */ 2333,
-	/* U+30B9+3099 -> U+30BA */ 2334,
-	/* U+30BB+3099 -> U+30BC */ 2335,
-	/* U+30BD+3099 -> U+30BE */ 2336,
-	/* U+30BF+3099 -> U+30C0 */ 2337,
-	/* U+30C1+3099 -> U+30C2 */ 2338,
-	/* U+30C4+3099 -> U+30C5 */ 2339,
-	/* U+30C6+3099 -> U+30C7 */ 2340,
-	/* U+30C8+3099 -> U+30C9 */ 2341,
-	/* U+30CF+3099 -> U+30D0 */ 2342,
-	/* U+30CF+309A -> U+30D1 */ 2343,
-	/* U+30D2+3099 -> U+30D3 */ 2344,
-	/* U+30D2+309A -> U+30D4 */ 2345,
-	/* U+30D5+3099 -> U+30D6 */ 2346,
-	/* U+30D5+309A -> U+30D7 */ 2347,
-	/* U+30D8+3099 -> U+30D9 */ 2348,
-	/* U+30D8+309A -> U+30DA */ 2349,
-	/* U+30DB+3099 -> U+30DC */ 2350,
-	/* U+30DB+309A -> U+30DD */ 2351,
-	/* U+30EF+3099 -> U+30F7 */ 2353,
-	/* U+30F0+3099 -> U+30F8 */ 2354,
-	/* U+30F1+3099 -> U+30F9 */ 2355,
-	/* U+30F2+3099 -> U+30FA */ 2356,
-	/* U+30FD+3099 -> U+30FE */ 2357,
-	/* U+11099+110BA -> U+1109A */ 4689,
-	/* U+1109B+110BA -> U+1109C */ 4690,
-	/* U+110A5+110BA -> U+110AB */ 4691,
-	/* U+11131+11127 -> U+1112E */ 4697,
-	/* U+11132+11127 -> U+1112F */ 4698,
-	/* U+11347+1133E -> U+1134B */ 4710,
-	/* U+11347+11357 -> U+1134C */ 4711,
-	/* U+114B9+114B0 -> U+114BC */ 4729,
-	/* U+114B9+114BA -> U+114BB */ 4728,
-	/* U+114B9+114BD -> U+114BE */ 4730,
-	/* U+115B8+115AF -> U+115BA */ 4733,
-	/* U+115B9+115AF -> U+115BB */ 4734,
-	/* U+11935+11930 -> U+11938 */ 4743
+	/* U+0928+093C -> U+0929 */ 751,
+	/* U+0930+093C -> U+0931 */ 752,
+	/* U+0933+093C -> U+0934 */ 753,
+	/* U+09C7+09BE -> U+09CB */ 769,
+	/* U+09C7+09D7 -> U+09CC */ 770,
+	/* U+0B47+0B3E -> U+0B4B */ 788,
+	/* U+0B47+0B56 -> U+0B48 */ 787,
+	/* U+0B47+0B57 -> U+0B4C */ 789,
+	/* U+0B92+0BD7 -> U+0B94 */ 793,
+	/* U+0BC6+0BBE -> U+0BCA */ 794,
+	/* U+0BC6+0BD7 -> U+0BCC */ 796,
+	/* U+0BC7+0BBE -> U+0BCB */ 795,
+	/* U+0C46+0C56 -> U+0C48 */ 799,
+	/* U+0CBF+0CD5 -> U+0CC0 */ 804,
+	/* U+0CC6+0CC2 -> U+0CCA */ 807,
+	/* U+0CC6+0CD5 -> U+0CC7 */ 805,
+	/* U+0CC6+0CD6 -> U+0CC8 */ 806,
+	/* U+0CCA+0CD5 -> U+0CCB */ 808,
+	/* U+0D46+0D3E -> U+0D4A */ 812,
+	/* U+0D46+0D57 -> U+0D4C */ 814,
+	/* U+0D47+0D3E -> U+0D4B */ 813,
+	/* U+0DD9+0DCA -> U+0DDA */ 817,
+	/* U+0DD9+0DCF -> U+0DDC */ 818,
+	/* U+0DD9+0DDF -> U+0DDE */ 820,
+	/* U+0DDC+0DCA -> U+0DDD */ 819,
+	/* U+1025+102E -> U+1026 */ 878,
+	/* U+1B05+1B35 -> U+1B06 */ 938,
+	/* U+1B07+1B35 -> U+1B08 */ 939,
+	/* U+1B09+1B35 -> U+1B0A */ 940,
+	/* U+1B0B+1B35 -> U+1B0C */ 941,
+	/* U+1B0D+1B35 -> U+1B0E */ 942,
+	/* U+1B11+1B35 -> U+1B12 */ 943,
+	/* U+1B3A+1B35 -> U+1B3B */ 945,
+	/* U+1B3C+1B35 -> U+1B3D */ 946,
+	/* U+1B3E+1B35 -> U+1B40 */ 947,
+	/* U+1B3F+1B35 -> U+1B41 */ 948,
+	/* U+1B42+1B35 -> U+1B43 */ 949,
+	/* U+1E36+0304 -> U+1E38 */ 1211,
+	/* U+1E37+0304 -> U+1E39 */ 1212,
+	/* U+1E5A+0304 -> U+1E5C */ 1247,
+	/* U+1E5B+0304 -> U+1E5D */ 1248,
+	/* U+1E62+0307 -> U+1E68 */ 1259,
+	/* U+1E63+0307 -> U+1E69 */ 1260,
+	/* U+1EA0+0302 -> U+1EAC */ 1323,
+	/* U+1EA0+0306 -> U+1EB6 */ 1333,
+	/* U+1EA1+0302 -> U+1EAD */ 1324,
+	/* U+1EA1+0306 -> U+1EB7 */ 1334,
+	/* U+1EB8+0302 -> U+1EC6 */ 1349,
+	/* U+1EB9+0302 -> U+1EC7 */ 1350,
+	/* U+1ECC+0302 -> U+1ED8 */ 1367,
+	/* U+1ECD+0302 -> U+1ED9 */ 1368,
+	/* U+1F00+0300 -> U+1F02 */ 1403,
+	/* U+1F00+0301 -> U+1F04 */ 1405,
+	/* U+1F00+0342 -> U+1F06 */ 1407,
+	/* U+1F00+0345 -> U+1F80 */ 1515,
+	/* U+1F01+0300 -> U+1F03 */ 1404,
+	/* U+1F01+0301 -> U+1F05 */ 1406,
+	/* U+1F01+0342 -> U+1F07 */ 1408,
+	/* U+1F01+0345 -> U+1F81 */ 1516,
+	/* U+1F02+0345 -> U+1F82 */ 1517,
+	/* U+1F03+0345 -> U+1F83 */ 1518,
+	/* U+1F04+0345 -> U+1F84 */ 1519,
+	/* U+1F05+0345 -> U+1F85 */ 1520,
+	/* U+1F06+0345 -> U+1F86 */ 1521,
+	/* U+1F07+0345 -> U+1F87 */ 1522,
+	/* U+1F08+0300 -> U+1F0A */ 1411,
+	/* U+1F08+0301 -> U+1F0C */ 1413,
+	/* U+1F08+0342 -> U+1F0E */ 1415,
+	/* U+1F08+0345 -> U+1F88 */ 1523,
+	/* U+1F09+0300 -> U+1F0B */ 1412,
+	/* U+1F09+0301 -> U+1F0D */ 1414,
+	/* U+1F09+0342 -> U+1F0F */ 1416,
+	/* U+1F09+0345 -> U+1F89 */ 1524,
+	/* U+1F0A+0345 -> U+1F8A */ 1525,
+	/* U+1F0B+0345 -> U+1F8B */ 1526,
+	/* U+1F0C+0345 -> U+1F8C */ 1527,
+	/* U+1F0D+0345 -> U+1F8D */ 1528,
+	/* U+1F0E+0345 -> U+1F8E */ 1529,
+	/* U+1F0F+0345 -> U+1F8F */ 1530,
+	/* U+1F10+0300 -> U+1F12 */ 1419,
+	/* U+1F10+0301 -> U+1F14 */ 1421,
+	/* U+1F11+0300 -> U+1F13 */ 1420,
+	/* U+1F11+0301 -> U+1F15 */ 1422,
+	/* U+1F18+0300 -> U+1F1A */ 1425,
+	/* U+1F18+0301 -> U+1F1C */ 1427,
+	/* U+1F19+0300 -> U+1F1B */ 1426,
+	/* U+1F19+0301 -> U+1F1D */ 1428,
+	/* U+1F20+0300 -> U+1F22 */ 1431,
+	/* U+1F20+0301 -> U+1F24 */ 1433,
+	/* U+1F20+0342 -> U+1F26 */ 1435,
+	/* U+1F20+0345 -> U+1F90 */ 1531,
+	/* U+1F21+0300 -> U+1F23 */ 1432,
+	/* U+1F21+0301 -> U+1F25 */ 1434,
+	/* U+1F21+0342 -> U+1F27 */ 1436,
+	/* U+1F21+0345 -> U+1F91 */ 1532,
+	/* U+1F22+0345 -> U+1F92 */ 1533,
+	/* U+1F23+0345 -> U+1F93 */ 1534,
+	/* U+1F24+0345 -> U+1F94 */ 1535,
+	/* U+1F25+0345 -> U+1F95 */ 1536,
+	/* U+1F26+0345 -> U+1F96 */ 1537,
+	/* U+1F27+0345 -> U+1F97 */ 1538,
+	/* U+1F28+0300 -> U+1F2A */ 1439,
+	/* U+1F28+0301 -> U+1F2C */ 1441,
+	/* U+1F28+0342 -> U+1F2E */ 1443,
+	/* U+1F28+0345 -> U+1F98 */ 1539,
+	/* U+1F29+0300 -> U+1F2B */ 1440,
+	/* U+1F29+0301 -> U+1F2D */ 1442,
+	/* U+1F29+0342 -> U+1F2F */ 1444,
+	/* U+1F29+0345 -> U+1F99 */ 1540,
+	/* U+1F2A+0345 -> U+1F9A */ 1541,
+	/* U+1F2B+0345 -> U+1F9B */ 1542,
+	/* U+1F2C+0345 -> U+1F9C */ 1543,
+	/* U+1F2D+0345 -> U+1F9D */ 1544,
+	/* U+1F2E+0345 -> U+1F9E */ 1545,
+	/* U+1F2F+0345 -> U+1F9F */ 1546,
+	/* U+1F30+0300 -> U+1F32 */ 1447,
+	/* U+1F30+0301 -> U+1F34 */ 1449,
+	/* U+1F30+0342 -> U+1F36 */ 1451,
+	/* U+1F31+0300 -> U+1F33 */ 1448,
+	/* U+1F31+0301 -> U+1F35 */ 1450,
+	/* U+1F31+0342 -> U+1F37 */ 1452,
+	/* U+1F38+0300 -> U+1F3A */ 1455,
+	/* U+1F38+0301 -> U+1F3C */ 1457,
+	/* U+1F38+0342 -> U+1F3E */ 1459,
+	/* U+1F39+0300 -> U+1F3B */ 1456,
+	/* U+1F39+0301 -> U+1F3D */ 1458,
+	/* U+1F39+0342 -> U+1F3F */ 1460,
+	/* U+1F40+0300 -> U+1F42 */ 1463,
+	/* U+1F40+0301 -> U+1F44 */ 1465,
+	/* U+1F41+0300 -> U+1F43 */ 1464,
+	/* U+1F41+0301 -> U+1F45 */ 1466,
+	/* U+1F48+0300 -> U+1F4A */ 1469,
+	/* U+1F48+0301 -> U+1F4C */ 1471,
+	/* U+1F49+0300 -> U+1F4B */ 1470,
+	/* U+1F49+0301 -> U+1F4D */ 1472,
+	/* U+1F50+0300 -> U+1F52 */ 1475,
+	/* U+1F50+0301 -> U+1F54 */ 1477,
+	/* U+1F50+0342 -> U+1F56 */ 1479,
+	/* U+1F51+0300 -> U+1F53 */ 1476,
+	/* U+1F51+0301 -> U+1F55 */ 1478,
+	/* U+1F51+0342 -> U+1F57 */ 1480,
+	/* U+1F59+0300 -> U+1F5B */ 1482,
+	/* U+1F59+0301 -> U+1F5D */ 1483,
+	/* U+1F59+0342 -> U+1F5F */ 1484,
+	/* U+1F60+0300 -> U+1F62 */ 1487,
+	/* U+1F60+0301 -> U+1F64 */ 1489,
+	/* U+1F60+0342 -> U+1F66 */ 1491,
+	/* U+1F60+0345 -> U+1FA0 */ 1547,
+	/* U+1F61+0300 -> U+1F63 */ 1488,
+	/* U+1F61+0301 -> U+1F65 */ 1490,
+	/* U+1F61+0342 -> U+1F67 */ 1492,
+	/* U+1F61+0345 -> U+1FA1 */ 1548,
+	/* U+1F62+0345 -> U+1FA2 */ 1549,
+	/* U+1F63+0345 -> U+1FA3 */ 1550,
+	/* U+1F64+0345 -> U+1FA4 */ 1551,
+	/* U+1F65+0345 -> U+1FA5 */ 1552,
+	/* U+1F66+0345 -> U+1FA6 */ 1553,
+	/* U+1F67+0345 -> U+1FA7 */ 1554,
+	/* U+1F68+0300 -> U+1F6A */ 1495,
+	/* U+1F68+0301 -> U+1F6C */ 1497,
+	/* U+1F68+0342 -> U+1F6E */ 1499,
+	/* U+1F68+0345 -> U+1FA8 */ 1555,
+	/* U+1F69+0300 -> U+1F6B */ 1496,
+	/* U+1F69+0301 -> U+1F6D */ 1498,
+	/* U+1F69+0342 -> U+1F6F */ 1500,
+	/* U+1F69+0345 -> U+1FA9 */ 1556,
+	/* U+1F6A+0345 -> U+1FAA */ 1557,
+	/* U+1F6B+0345 -> U+1FAB */ 1558,
+	/* U+1F6C+0345 -> U+1FAC */ 1559,
+	/* U+1F6D+0345 -> U+1FAD */ 1560,
+	/* U+1F6E+0345 -> U+1FAE */ 1561,
+	/* U+1F6F+0345 -> U+1FAF */ 1562,
+	/* U+1F70+0345 -> U+1FB2 */ 1565,
+	/* U+1F74+0345 -> U+1FC2 */ 1580,
+	/* U+1F7C+0345 -> U+1FF2 */ 1622,
+	/* U+1FB6+0345 -> U+1FB7 */ 1569,
+	/* U+1FBF+0300 -> U+1FCD */ 1590,
+	/* U+1FBF+0301 -> U+1FCE */ 1591,
+	/* U+1FBF+0342 -> U+1FCF */ 1592,
+	/* U+1FC6+0345 -> U+1FC7 */ 1584,
+	/* U+1FF6+0345 -> U+1FF7 */ 1626,
+	/* U+1FFE+0300 -> U+1FDD */ 1603,
+	/* U+1FFE+0301 -> U+1FDE */ 1604,
+	/* U+1FFE+0342 -> U+1FDF */ 1605,
+	/* U+2190+0338 -> U+219A */ 1836,
+	/* U+2192+0338 -> U+219B */ 1837,
+	/* U+2194+0338 -> U+21AE */ 1838,
+	/* U+21D0+0338 -> U+21CD */ 1839,
+	/* U+21D2+0338 -> U+21CF */ 1841,
+	/* U+21D4+0338 -> U+21CE */ 1840,
+	/* U+2203+0338 -> U+2204 */ 1842,
+	/* U+2208+0338 -> U+2209 */ 1843,
+	/* U+220B+0338 -> U+220C */ 1844,
+	/* U+2223+0338 -> U+2224 */ 1845,
+	/* U+2225+0338 -> U+2226 */ 1846,
+	/* U+223C+0338 -> U+2241 */ 1851,
+	/* U+2243+0338 -> U+2244 */ 1852,
+	/* U+2245+0338 -> U+2247 */ 1853,
+	/* U+2248+0338 -> U+2249 */ 1854,
+	/* U+224D+0338 -> U+226D */ 1857,
+	/* U+2261+0338 -> U+2262 */ 1856,
+	/* U+2264+0338 -> U+2270 */ 1860,
+	/* U+2265+0338 -> U+2271 */ 1861,
+	/* U+2272+0338 -> U+2274 */ 1862,
+	/* U+2273+0338 -> U+2275 */ 1863,
+	/* U+2276+0338 -> U+2278 */ 1864,
+	/* U+2277+0338 -> U+2279 */ 1865,
+	/* U+227A+0338 -> U+2280 */ 1866,
+	/* U+227B+0338 -> U+2281 */ 1867,
+	/* U+227C+0338 -> U+22E0 */ 1876,
+	/* U+227D+0338 -> U+22E1 */ 1877,
+	/* U+2282+0338 -> U+2284 */ 1868,
+	/* U+2283+0338 -> U+2285 */ 1869,
+	/* U+2286+0338 -> U+2288 */ 1870,
+	/* U+2287+0338 -> U+2289 */ 1871,
+	/* U+2291+0338 -> U+22E2 */ 1878,
+	/* U+2292+0338 -> U+22E3 */ 1879,
+	/* U+22A2+0338 -> U+22AC */ 1872,
+	/* U+22A8+0338 -> U+22AD */ 1873,
+	/* U+22A9+0338 -> U+22AE */ 1874,
+	/* U+22AB+0338 -> U+22AF */ 1875,
+	/* U+22B2+0338 -> U+22EA */ 1880,
+	/* U+22B3+0338 -> U+22EB */ 1881,
+	/* U+22B4+0338 -> U+22EC */ 1882,
+	/* U+22B5+0338 -> U+22ED */ 1883,
+	/* U+3046+3099 -> U+3094 */ 2321,
+	/* U+304B+3099 -> U+304C */ 2296,
+	/* U+304D+3099 -> U+304E */ 2297,
+	/* U+304F+3099 -> U+3050 */ 2298,
+	/* U+3051+3099 -> U+3052 */ 2299,
+	/* U+3053+3099 -> U+3054 */ 2300,
+	/* U+3055+3099 -> U+3056 */ 2301,
+	/* U+3057+3099 -> U+3058 */ 2302,
+	/* U+3059+3099 -> U+305A */ 2303,
+	/* U+305B+3099 -> U+305C */ 2304,
+	/* U+305D+3099 -> U+305E */ 2305,
+	/* U+305F+3099 -> U+3060 */ 2306,
+	/* U+3061+3099 -> U+3062 */ 2307,
+	/* U+3064+3099 -> U+3065 */ 2308,
+	/* U+3066+3099 -> U+3067 */ 2309,
+	/* U+3068+3099 -> U+3069 */ 2310,
+	/* U+306F+3099 -> U+3070 */ 2311,
+	/* U+306F+309A -> U+3071 */ 2312,
+	/* U+3072+3099 -> U+3073 */ 2313,
+	/* U+3072+309A -> U+3074 */ 2314,
+	/* U+3075+3099 -> U+3076 */ 2315,
+	/* U+3075+309A -> U+3077 */ 2316,
+	/* U+3078+3099 -> U+3079 */ 2317,
+	/* U+3078+309A -> U+307A */ 2318,
+	/* U+307B+3099 -> U+307C */ 2319,
+	/* U+307B+309A -> U+307D */ 2320,
+	/* U+309D+3099 -> U+309E */ 2326,
+	/* U+30A6+3099 -> U+30F4 */ 2353,
+	/* U+30AB+3099 -> U+30AC */ 2328,
+	/* U+30AD+3099 -> U+30AE */ 2329,
+	/* U+30AF+3099 -> U+30B0 */ 2330,
+	/* U+30B1+3099 -> U+30B2 */ 2331,
+	/* U+30B3+3099 -> U+30B4 */ 2332,
+	/* U+30B5+3099 -> U+30B6 */ 2333,
+	/* U+30B7+3099 -> U+30B8 */ 2334,
+	/* U+30B9+3099 -> U+30BA */ 2335,
+	/* U+30BB+3099 -> U+30BC */ 2336,
+	/* U+30BD+3099 -> U+30BE */ 2337,
+	/* U+30BF+3099 -> U+30C0 */ 2338,
+	/* U+30C1+3099 -> U+30C2 */ 2339,
+	/* U+30C4+3099 -> U+30C5 */ 2340,
+	/* U+30C6+3099 -> U+30C7 */ 2341,
+	/* U+30C8+3099 -> U+30C9 */ 2342,
+	/* U+30CF+3099 -> U+30D0 */ 2343,
+	/* U+30CF+309A -> U+30D1 */ 2344,
+	/* U+30D2+3099 -> U+30D3 */ 2345,
+	/* U+30D2+309A -> U+30D4 */ 2346,
+	/* U+30D5+3099 -> U+30D6 */ 2347,
+	/* U+30D5+309A -> U+30D7 */ 2348,
+	/* U+30D8+3099 -> U+30D9 */ 2349,
+	/* U+30D8+309A -> U+30DA */ 2350,
+	/* U+30DB+3099 -> U+30DC */ 2351,
+	/* U+30DB+309A -> U+30DD */ 2352,
+	/* U+30EF+3099 -> U+30F7 */ 2354,
+	/* U+30F0+3099 -> U+30F8 */ 2355,
+	/* U+30F1+3099 -> U+30F9 */ 2356,
+	/* U+30F2+3099 -> U+30FA */ 2357,
+	/* U+30FD+3099 -> U+30FE */ 2358,
+	/* U+105D2+0307 -> U+105C9 */ 4599,
+	/* U+105DA+0307 -> U+105E4 */ 4600,
+	/* U+11099+110BA -> U+1109A */ 4697,
+	/* U+1109B+110BA -> U+1109C */ 4698,
+	/* U+110A5+110BA -> U+110AB */ 4699,
+	/* U+11131+11127 -> U+1112E */ 4705,
+	/* U+11132+11127 -> U+1112F */ 4706,
+	/* U+11347+1133E -> U+1134B */ 4718,
+	/* U+11347+11357 -> U+1134C */ 4719,
+	/* U+11382+113C9 -> U+11383 */ 4733,
+	/* U+11384+113BB -> U+11385 */ 4734,
+	/* U+1138B+113C2 -> U+1138E */ 4735,
+	/* U+11390+113C9 -> U+11391 */ 4736,
+	/* U+113C2+113B8 -> U+113C7 */ 4738,
+	/* U+113C2+113C2 -> U+113C5 */ 4737,
+	/* U+113C2+113C9 -> U+113C8 */ 4739,
+	/* U+114B9+114B0 -> U+114BC */ 4747,
+	/* U+114B9+114BA -> U+114BB */ 4746,
+	/* U+114B9+114BD -> U+114BE */ 4748,
+	/* U+115B8+115AF -> U+115BA */ 4751,
+	/* U+115B9+115AF -> U+115BB */ 4752,
+	/* U+11935+11930 -> U+11938 */ 4761,
+	/* U+1611E+1611E -> U+16121 */ 4776,
+	/* U+1611E+1611F -> U+16123 */ 4778,
+	/* U+1611E+16120 -> U+16125 */ 4780,
+	/* U+1611E+16129 -> U+16122 */ 4777,
+	/* U+16121+1611F -> U+16126 */ 4781,
+	/* U+16121+16120 -> U+16128 */ 4783,
+	/* U+16122+1611F -> U+16127 */ 4782,
+	/* U+16129+1611F -> U+16124 */ 4779,
+	/* U+16D63+16D67 -> U+16D69 */ 4798,
+	/* U+16D67+16D67 -> U+16D68 */ 4797,
+	/* U+16D69+16D67 -> U+16D6A */ 4799
 };
 
 /* Perfect hash function for recomposition */
 static int
 Recomp_hash_func(const void *key)
 {
-	static const int16 h[1883] = {
-		772,   773,   621,   32767, 32767, 387,   653,   196,
-		32767, 32767, 855,   463,   -19,   651,   32767, 32767,
-		32767, 364,   32767, 32767, -108,  32767, 32767, 32767,
-		32767, 0,     -568,  32767, 32767, 32767, 0,     0,
-		0,     -103,  364,   0,     210,   732,   0,     0,
-		-506,  0,     0,     0,     32767, 32767, 0,     32767,
-		407,   -140,  32767, 409,   32767, 772,   0,     86,
-		842,   934,   32767, 32767, -499,  -355,  32767, 32767,
-		532,   138,   174,   -243,  860,   1870,  742,   32767,
-		32767, 339,   32767, 1290,  0,     32767, 32767, 0,
-		-449,  -1386, 1633,  560,   561,   32767, 1219,  1004,
-		139,   -804,  32767, -179,  141,   579,   1586,  32767,
-		32767, 32767, 142,   199,   32767, 32767, 143,   0,
-		32767, 32767, 314,   896,   32767, 32767, 428,   129,
-		286,   -58,   0,     68,    32767, 0,     244,   -566,
-		32767, 32767, 32767, 246,   32767, 32767, 0,     32767,
-		32767, 271,   -108,  928,   32767, 715,   32767, 32767,
-		-211,  -497,  32767, 0,     1055,  1339,  32767, 0,
-		32767, 32767, -968,  -144,  32767, 32767, 248,   32767,
-		-161,  32767, 32767, 282,   32767, -372,  0,     2,
-		-137,  1116,  32767, 687,   32767, 459,   913,   0,
-		461,   879,   -816,  443,   32767, 32767, 462,   1089,
-		32767, 1054,  0,     314,   447,   -26,   480,   32767,
-		64,    0,     0,     112,   32767, 66,    0,     646,
-		603,   22,    -292,  0,     710,   475,   32767, 24,
-		-781,  32767, 32767, 32767, 281,   307,   32767, 1289,
-		32767, 0,     1064,  -149,  454,   118,   32767, 32767,
-		0,     32767, -126,  0,     32767, 32767, 858,   32767,
-		32767, 32767, 1029,  886,   665,   209,   0,     26,
-		359,   0,     0,     -108,  -508,  -603,  894,   906,
-		32767, 32767, 14,    0,     0,     534,   984,   876,
-		32767, -93,   110,   -367,  167,   843,   32767, 32767,
-		-947,  -290,  169,   0,     0,     32767, -42,   564,
-		0,     -927,  32767, 817,   32767, 32767, 32767, 110,
-		0,     32767, 32767, -38,   32767, 32767, -101,  694,
-		-142,  190,   191,   1288,  32767, -687,  194,   -579,
-		534,   -452,  0,     -72,   536,   765,   823,   266,
-		-259,  684,   767,   32767, 654,   32767, 32767, 64,
-		920,   32767, 32767, 32767, 0,     1653,  0,     0,
-		32767, 32767, -452,  -222,  855,   0,     32767, -1153,
-		127,   490,   449,   863,   32767, -144,  32767, -379,
-		545,   32767, 32767, 32767, 530,   32767, 32767, 1331,
-		611,   -612,  332,   545,   -73,   0,     604,   201,
-		32767, -279,  338,   836,   340,   408,   32767, -60,
-		-358,  32767, 343,   69,    707,   0,     -129,  582,
-		32767, 0,     32767, 96,    392,   490,   639,   157,
-		-4,    406,   32767, 32767, -571,  1077,  546,   32767,
-		551,   0,     0,     0,     32767, 32767, 348,   32767,
-		498,   -181,  0,     -433,  1057,  260,   0,     32767,
-		32767, 397,   32767, 816,   -130,  32767, 624,   0,
-		0,     32767, 32767, 32767, 485,   0,     32767, 32767,
-		32767, 32767, 32767, 0,     32767, 32767, 32767, 1222,
-		-230,  32767, 797,   -538,  32767, 974,   32767, 32767,
-		831,   70,    -658,  145,   0,     147,   0,     32767,
-		1295,  32767, 0,     0,     895,   0,     0,     -385,
-		491,   -287,  32767, -587,  32767, 32767, 32767, 813,
-		-471,  -13,   32767, 32767, 32767, 0,     203,   411,
-		470,   0,     -546,  -179,  146,   0,     0,     32767,
-		-468,  32767, 0,     0,     32767, 32767, 32767, 211,
-		32767, 32767, 0,     32767, 0,     52,    32767, 0,
-		32767, 0,     692,   990,   32767, 32767, 32767, 56,
-		-507,  784,   951,   0,     32767, 0,     697,   32767,
-		187,   0,     32767, 32767, 430,   1209,  682,   32767,
-		130,   0,     -25,   0,     -1006, 0,     32767, 214,
-		433,   22,    0,     -1119, 32767, 285,   32767, 32767,
-		32767, 216,   32767, 32767, 32767, 217,   527,   32767,
-		32767, 32767, 829,   485,   419,   717,   620,   731,
-		32767, 470,   0,     -145,  -620,  1162,  -644,  848,
-		287,   -632,  32767, 32767, 32767, 32767, 381,   32767,
-		510,   511,   -554,  -2,    32767, 0,     0,     698,
-		32767, 32767, 436,   1154,  32767, 463,   32767, 32767,
-		627,   517,   32767, 32767, 854,   579,   723,   396,
-		110,   -42,   354,   32767, 664,   32767, 32767, 0,
-		0,     32767, 65,    -163,  67,    140,   69,    341,
-		70,    71,    402,   73,    623,   544,   624,   417,
-		-1375, 648,   32767, -26,   904,   0,     548,   0,
-		0,     32767, 32767, 855,   32767, 488,   -524,  599,
-		130,   131,   32767, 32767, 542,   -1110, -324,  -462,
-		32767, -405,  -440,  0,     0,     629,   850,   0,
-		741,   257,   258,   32767, 32767, 0,     32767, 923,
-		0,     32767, 0,     32767, 1559,  32767, 32767, 32767,
-		671,   32767, 134,   32767, 32767, -336,  -104,  576,
-		577,   829,   32767, 32767, 762,   902,   32767, 0,
-		32767, 0,     1506,  887,   32767, 636,   601,   2465,
-		426,   0,     236,   317,   427,   968,   32767, -975,
-		-559,  -343,  341,   32767, 937,   241,   0,     32767,
-		32767, 547,   32767, 32767, 32767, 32767, 32767, 789,
-		0,     32767, 32767, 32767, 0,     0,     0,     32767,
-		-192,  859,   1185,  1153,  69,    32767, 32767, 32767,
-		-539,  32767, 32767, 0,     32767, 32767, 32767, 32767,
-		640,   578,   32767, 32767, -766,  32767, 32767, 32767,
-		32767, 1050,  -572,  32767, 32767, 32767, 32767, 1268,
-		32767, 32767, 32767, 754,   32767, 32767, 1640,  179,
-		804,   32767, 32767, 32767, 32767, 0,     684,   943,
-		1006,  32767, 32767, 652,   0,     32767, 1041,  32767,
-		718,   791,   32767, 274,   697,   32767, 32767, 0,
-		32767, 32767, 32767, 0,     32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 735,
-		0,     32767, 32767, 32767, 275,   358,   688,   32767,
-		32767, 32767, 548,   -87,   770,   32767, -42,   0,
-		551,   32767, 691,   222,   32767, 32767, 32767, 32767,
-		0,     1273,  403,   -121,  806,   553,   554,   163,
-		32767, 32767, 892,   825,   32767, 32767, -490,  32767,
-		32767, 32767, 32767, 32767, -109,  744,   910,   32767,
-		91,    32767, 32767, 0,     0,     32767, 32767, 32767,
-		1521,  50,    701,   32767, 32767, 32767, 32767, 164,
-		658,   32767, 288,   0,     32767, 0,     51,    0,
-		32767, 32767, 32767, 32767, 555,   1547,  32767, 32767,
-		595,   585,   429,   32767, -80,   32767, 1258,  0,
-		540,   486,   -434,  865,   0,     192,   0,     884,
-		0,     0,     0,     175,   555,   0,     32767, 32767,
-		0,     32767, -566,  866,   591,   32767, 32767, 32767,
-		32767, 32767, 496,   495,   -215,  32767, 849,   -772,
-		32767, 32767, 502,   178,   483,   32767, 912,   793,
-		794,   0,     32767, 32767, 32767, -556,  499,   838,
-		32767, 32767, -506,  331,   0,     0,     -1096, 512,
-		880,   0,     774,   -338,  649,   32767, 270,   32767,
-		32767, -624,  328,   459,   32767, 32767, 32767, 32767,
-		329,   -201,  -835,  813,   -879,  560,   0,     -212,
-		-114,  35,    -494,  37,    523,   653,   751,   -653,
-		-743,  32767, 1356,  818,   32767, 32767, 856,   0,
-		44,    902,   0,     0,     0,     0,     32767, -26,
-		526,   795,   456,   32767, 104,   -209,  -341,  133,
-		-372,  0,     45,    110,   111,   0,     511,   47,
-		114,   32767, 32767, 93,    48,    116,   -1031, -279,
-		32767, 192,   0,     32767, 453,   415,   0,     -190,
-		32767, 471,   240,   175,   29,    665,   684,   0,
-		-11,   -95,   -344,  32767, 245,   148,   0,     530,
-		0,     1185,  -615,  -712,  693,   784,   32767, 0,
-		-776,  32767, 32767, -813,  0,     0,     0,     207,
-		208,   32767, 674,   32767, 742,   -289,  249,   32767,
-		520,   929,   -50,   781,   0,     -778,  32767, 0,
-		302,   32767, 720,   -465,  0,     32767, 32767, 32767,
-		0,     0,     32767, 833,   328,   806,   32767, -403,
-		0,     32767, -77,   32767, 0,     441,   930,   32767,
-		643,   0,     32767, 1938,  0,     1334,  381,   32767,
-		216,   32767, 32767, 0,     32767, 484,   383,   0,
-		242,   395,   0,     32767, 32767, 32767, -781,  355,
-		356,   32767, 292,   706,   32767, 32767, 32767, 32767,
-		32767, -410,  32767, 32767, 782,   32767, 189,   32767,
-		32767, 943,   0,     -212,  407,   335,   0,     135,
-		32767, 616,   0,     -497,  0,     -67,   853,   32767,
-		700,   32767, 0,     32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 0,     459,   -48,   32767, 58,    0,
-		-856,  1017,  32767, 59,    916,   -731,  32767, 940,
-		-855,  347,   650,   0,     678,   32767, 0,     32767,
-		32767, 530,   32767, 0,     -80,   32767, -730,  32767,
-		1214,  799,   58,    651,   841,   0,     0,     -589,
-		-1530, -478,  651,   652,   93,    576,   -1215, 32767,
-		125,   32767, 1279,  32767, 32767, 0,     32767, 0,
-		-367,  416,   -1236, 32767, 418,   32767, 815,   558,
-		559,   781,   419,   32767, 739,   32767, 0,     32767,
-		128,   570,   1349,  -298,  -66,   0,     147,   -488,
-		32767, 590,   189,   274,   524,   32767, 1082,  -209,
-		32767, 423,   32767, 32767, 975,   573,   32767, 424,
-		32767, 32767, 1241,  32767, 32767, 32767, 32767, 32767,
-		612,   391,   32767, 0,     -803,  1004,  -561,  32767,
-		32767, 735,   870,   32767, 0,     32767, 32767, -123,
-		99,    210,   600,   1294,  109,   1053,  32767, 307,
-		834,   32767, 0,     1651,  32767, 644,   32767, 32767,
-		0,     32767, -801,  385,   379,   32767, -368,  32767,
-		32767, 830,   0,     32767, 32767, 739,   371,   372,
-		-275,  32767, 32767, 331,   -780,  32767, 0,     1229,
-		-1462, 913,   266,   827,   125,   32767, 32767, 32767,
-		393,   32767, 631,   -33,   -883,  -661,  -204,  6,
-		-19,   257,   8,     9,     118,   519,   615,   -541,
-		-893,  0,     32767, 0,     1156,  15,    900,   32767,
-		32767, 32767, 32767, 32767, 32767, 1022,  376,   0,
-		32767, 32767, -972,  676,   840,   -661,  631,   58,
-		0,     17,    32767, 0,     -799,  82,    0,     32767,
-		32767, 680,   32767, 905,   0,     0,     32767, 32767,
-		0,     0,     32767, 0,     828,   386,   802,   0,
-		146,   0,     148,   32767, -1146, 0,     150,   151,
-		-743,  153,   154,   32767, 32767, 442,   32767, 743,
-		0,     0,     746,   0,     32767, 32767, 32767, 98,
-		32767, 157,   0,     696,   0,     32767, 32767, -294,
-		32767, 158,   159,   32767, 0,     32767, 160,   32767,
-		933,   32767, 32767, -50,   759,   824,   162,   672,
-		32767, 356,   0,     356,   32767, 32767, 0,     0,
-		656,   692,   253,   254,   -374,  102,   256,   32767,
-		0,     0,     32767, 32767, 259,   32767, 63,    260,
-		510,   261,   32767, 0,     32767, 1061,  32767, 521,
-		32767, 32767, 32767, 32767, 32767, 32767, 316,   317,
-		846,   0,     32767, -500,  318,   0,     32767, 32767,
-		263,   0,     790,   872,   32767, 32767, 32767, 2171,
-		264,   32767, 32767, 32767, 32767, 486,   334,   465,
-		32767, 466,   32767, 444,   606,   32767, 0,     445,
-		320,   -317,  0,     520,   322,   718,   32767, 32767,
-		32767, 0,     1013,  32767, 32767, 32767, 32767, 32767,
-		32767, 611,   32767, 0,     0,     32767, 32767, -120,
-		156,   613,   0,     0,     32767, -68,   32767, 622,
-		32767, 32767, 32767, 32767, 32767, 455,   32767, 32767,
-		32767, 403,   533,   0,     -161,  405,   95,    96,
-		32767, 97,    32767, 0,     29,    0,     32767, 32767,
-		30,    32767, 99,    32767, 32767, 0,     161,   32767,
-		97,    0,     32,    32767, 32767, 0,     0,     315,
-		32767, 32767, 414,   966,   0,     585,   32767, 32767,
-		-616,  -256,  171,   172,   666,   101,   562,   563,
-		32767, 95,    0,     0,     1492,  390,   -251,  103,
-		32767, 0,     32767, 188,   1487,  32767, 0,     0,
-		586,   668,   -126,  0,     0,     32767, 32767, 204,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 656,   32767, 32767,
-		599,   0,     222,   32767, 0,     1368,  -412,  435,
-		32767, 936,   32767, -17,   32767, 832,   32767, 437,
-		0,     -518,  787,   32767, 864,   -449,  0,     636,
-		713,   206,   592,   572,   0,     483,   -139,  32767,
-		32767, 180,   818,   32767, 32767, 1304,  0,     32767,
-		274,   0,     0,     0,     0,     705,   32767, 32767,
-		32767, 0,     -272,  0,     502,   503,   319,   0,
-		32767, 0,     13,    32767, 32767, 0,     32767, 270,
-		737,   0,     32767, 32767, 32767, 901,   32767, 616,
-		180,   32767, 721,   353,   32767, 0,     32767, 32767,
-		-199,  0,     280,   788,   32767, 940,   32767, 51,
-		0,     400,   53,    0,     54,    -637,  0,     -453,
-		0,     0,     0,     380,   0,     32767, 504,   0,
-		2049,  0,     -964,  32767, 0,     32767, 32767, 32767,
-		32767, 32767, 32767, 798,   32767, 32767, 32767, 0,
-		538,   488,   0,     32767, -528,  57,    819,   32767,
-		32767, 1244,  0,     488,   739,   908,   32767, 32767,
-		0,     32767, 32767, 0,     55,    533,   0,     32767,
-		814,   0,     32767, 458,   0,     32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 776,   777,   920,   0,
-		0,     755,   32767, 0,     32767, 32767, 0,     32767,
-		55,    -954,  0,     372,   166,   218,   165,   857,
-		221,   675,   0,     223,   224,   -155,  226,   32767,
-		1851,  227,   32767, 32767, 1192,  0,     229,   0,
-		-72,   0,     865,   0,     0,     -330,  0,     683,
-		32767, -550,  -196,  725,   -573,  293,   102,   32767,
-		-589,  296,   297,   298,   231,   -256,  300,   32767,
-		32767, 301,   233,   868,   32767, 234,   0,     811,
-		1187,  32767, 32767, 0,     32767, 518,   0,     361,
-		362,   466,   0,     365,   32767, -179,  366,   367,
-		874,   369,   305,   0,     32767, 0,     32767, 0,
-		32767, 2000,  1215,  451,   652,   0,     0,     799,
-		32767, 32767, 32767
+	static const int16 h[1923] = {
+		-109,  -96,   32767, 0,     -844,  -182,  -292,  32767,
+		830,   793,   794,   665,   0,     -9,    32767, 32767,
+		32767, 32767, 32767, 428,   32767, 32767, 32767, 502,
+		0,     32767, -230,  144,   356,   -76,   0,     243,
+		665,   32767, 32767, -1003, 244,   0,     32767, 32767,
+		573,   246,   125,   32767, 32767, 32767, 0,     32767,
+		32767, 32767, 32767, 0,     245,   32767, 723,   32767,
+		0,     889,   32767, 32767, 32767, 0,     32767, 32767,
+		0,     173,   157,   1215,  254,   255,   -126,  0,
+		0,     504,   459,   -11,   238,   -188,  722,   247,
+		260,   32767, -184,  -6,    2102,  -578,  32767, 32767,
+		-598,  -670,  260,   19,    32767, -472,  32767, 664,
+		511,   0,     32767, 345,   291,   0,     -370,  176,
+		32767, 1017,  -139,  -519,  -30,   0,     -24,   -23,
+		481,   -253,  -1813, 32767, 0,     935,   32767, 32767,
+		-443,  32767, 773,   32767, 32767, 32767, -507,  427,
+		0,     32767, 899,   32767, 32767, 277,   0,     32767,
+		32767, 0,     842,   854,   0,     32767, 936,   621,
+		-195,  32767, 0,     32767, 707,   268,   32767, 32767,
+		435,   32767, 32767, 32767, 0,     267,   88,    72,
+		32767, 487,   32767, 32767, 32767, 0,     32767, 32767,
+		32767, 32767, 32767, 875,   -312,  32767, 483,   875,
+		270,   89,    32767, 483,   32767, 32767, 32767, 32767,
+		708,   273,   2053,  -63,   -242,  -479,  32767, 352,
+		32767, 32767, 0,     560,   544,   32767, 32767, 32767,
+		0,     0,     32767, 0,     32767, 32767, 32767, 525,
+		274,   32767, 404,   386,   518,   32767, -357,  32767,
+		-45,   1154,  276,   32767, 149,   0,     277,   714,
+		313,   32767, 32767, 32767, 32767, 32767, 841,   460,
+		431,   32767, 32767, -49,   32767, 32767, 32767, 32767,
+		32767, 32767, 0,     876,   280,   281,   131,   388,
+		283,   32767, 1125,  32767, 695,   712,   32767, 0,
+		713,   1732,  0,     32767, 0,     231,   32767, 0,
+		32767, -755,  32767, 32767, 32767, 435,   32767, 0,
+		951,   952,   32767, 32767, 464,   867,   1298,  0,
+		660,   -55,   0,     292,   663,   118,   661,   -722,
+		435,   816,   328,   0,     323,   323,   -258,  -684,
+		2114,  0,     302,   0,     32767, 32767, 1607,  32767,
+		0,     32767, 32767, 0,     810,   32767, -543,  -5,
+		515,   32767, 0,     877,   304,   32767, 472,   32767,
+		683,   -549,  258,   285,   -904,  32767, 148,   1202,
+		1044,  0,     32767, 32767, 659,   1395,  905,   32767,
+		32767, 32767, -626,  32767, 32767, 32767, 32767, 672,
+		0,     32767, -139,  32767, 32767, 0,     0,     660,
+		1,     32767, -955,  -293,  616,   391,   632,   -126,
+		32767, 32767, 1610,  -166,  754,   324,   32767, 32767,
+		931,   32767, 32767, 32767, 0,     32767, 32767, 32767,
+		32767, 0,     32767, 32767, 302,   391,   32767, 32767,
+		516,   32767, 32767, 1131,  670,   544,   308,   286,
+		0,     0,     32767, 32767, 531,   -629,  -35,   0,
+		6,     -63,   485,   0,     0,     -486,  -58,   0,
+		0,     38,    470,   -20,   0,     32767, 0,     0,
+		956,   32767, 0,     294,   -759,  0,     32767, 32767,
+		-362,  73,    316,   588,   314,   32767, 609,   0,
+		318,   32767, 32767, 32767, -759,  1466,  -212,  32767,
+		1910,  226,   653,   32767, 219,   32767, 32767, 0,
+		0,     32767, 1045,  -6,    -6,    32767, 0,     163,
+		0,     0,     -9,    879,   -369,  32767, -18,   321,
+		322,   32767, 32767, -449,  1082,  324,   57,    32767,
+		-403,  252,   697,   0,     491,   552,   0,     32767,
+		32767, 32767, 864,   32767, 0,     32767, 929,   -582,
+		32767, 32767, 32767, 1521,  32767, 32767, 32767, 212,
+		326,   -542,  332,   333,   334,   -490,  692,   336,
+		32767, 337,   338,   31,    0,     714,   348,   34,
+		342,   32767, 1602,  32767, 687,   143,   32767, 0,
+		32767, 32767, 0,     32767, 196,   -21,   32767, 32767,
+		-4,    32767, 32767, 880,   -211,  203,   32767, 1078,
+		83,    1661,  32767, 32767, 283,   787,   348,   32767,
+		0,     -464,  0,     32767, 725,   -431,  -811,  -322,
+		7,     32767, -315,  267,   694,   -2103, 12,    247,
+		13,    692,   32767, -1593, 32767, 15,    32767, 32767,
+		830,   0,     623,   354,   32767, 32767, -154,  0,
+		264,   -712,  32767, 357,   32767, 32767, 220,   -242,
+		32767, 921,   905,   32767, -1184, 549,   32767, 19,
+		319,   32767, 551,   32767, 1307,  0,     32767, 32767,
+		32767, 0,     566,   881,   822,   936,   326,   89,
+		-313,  32767, 250,   0,     359,   360,   32767, 32767,
+		32767, 32767, -575,  20,    32767, 98,    23,    32767,
+		287,   744,   124,   1027,  32767, 0,     564,   0,
+		-548,  -497,  982,   32767, 32767, 32767, 32767, 32767,
+		35,    316,   -1859, 343,   364,   786,   0,     32767,
+		366,   4,     0,     753,   581,   524,   270,   686,
+		0,     -382,  32767, -1189, 0,     747,   32767, 363,
+		32767, 32767, -1782, 32767, 28,    32767, 677,   452,
+		210,   0,     884,   882,   -258,  32767, -1099, -222,
+		32767, 32767, 32767, 32767, 373,   671,   32767, 311,
+		32767, 370,   32767, -831,  101,   32,    35,    36,
+		-1159, 930,   38,    39,    -148,  -148,  32767, 32767,
+		-150,  -803,  1185,  675,   32767, -152,  32767, 0,
+		633,   467,   -279,  827,   32767, 1273,  -410,  136,
+		32767, 527,   842,   397,   32767, 1149,  376,   45,
+		2221,  20,    0,     -421,  47,    925,   0,     363,
+		368,   -384,  0,     32767, -230,  32767, -532,  32767,
+		32767, 32767, 0,     32767, 634,   219,   -6,    397,
+		32767, 32767, 692,   385,   361,   483,   526,   32767,
+		0,     32767, 628,   728,   2167,  51,    892,   32767,
+		-326,  -595,  54,    55,    32767, 825,   0,     0,
+		933,   32767, 32767, 32767, 828,   32767, 32767, 883,
+		-144,  32767, 32767, 32767, 933,   0,     0,     209,
+		1580,  790,   0,     0,     32767, 32767, 32767, 730,
+		731,   32767, 58,    57,    457,   557,   32767, 59,
+		60,    0,     -1438, 32767, 1016,  32767, 1344,  683,
+		32767, 0,     32767, 32767, 32767, 32767, 32767, 558,
+		45,    32767, 0,     32767, 0,     0,     843,   0,
+		32767, 0,     503,   62,    488,   600,   -395,  -328,
+		69,    566,   -355,  1027,  -737,  -72,   -606,  32767,
+		74,    32767, 32767, 1144,  32767, -75,   32767, 884,
+		-144,  32767, 22,    598,   32767, 792,   32767, 32767,
+		32767, 32767, 32767, -336,  32767, 32767, 0,     45,
+		0,     32767, 658,   637,   78,    95,    -962,  0,
+		0,     32767, 256,   0,     -247,  -201,  32767, 32767,
+		447,   0,     0,     0,     32767, 445,   806,   860,
+		-39,   74,    32767, -6,    32767, 529,   32767, 700,
+		307,   179,   0,     893,   32767, 835,   0,     -29,
+		32767, 32767, 32767, 32767, -754,  32767, 32767, 32767,
+		-702,  -227,  -55,   0,     517,   -196,  32767, 784,
+		177,   0,     -1082, 597,   -166,  797,   32767, 32767,
+		613,   32767, 1211,  32767, -283,  126,   32767, 83,
+		526,   -1584, 533,   172,   950,   0,     0,     32767,
+		32767, -1767, -88,   32767, 87,    -1289, 773,   953,
+		1131,  0,     0,     32767, 1374,  0,     32767, 32767,
+		32767, 798,   32767, 0,     1547,  158,   613,   32767,
+		32767, -822,  32767, 88,    473,   474,   378,   89,
+		940,   659,   352,   -270,  0,     -1015, 477,   32767,
+		901,   91,    1068,  32767, 0,     0,     32767, 32767,
+		0,     32767, 461,   404,   32767, 46,    -65,   32767,
+		32767, 815,   822,   32767, 32767, 32767, 406,   925,
+		338,   -487,  0,     97,    438,   -464,  32767, 98,
+		0,     0,     1113,  0,     -416,  0,     32767, 0,
+		-35,   0,     180,   413,   32767, 32767, 0,     -219,
+		568,   175,   0,     0,     32767, 503,   0,     32767,
+		528,   32767, 32767, -464,  733,   140,   106,   101,
+		171,   32767, 109,   110,   597,   170,   32767, 113,
+		76,    103,   32767, 115,   559,   116,   32767, -213,
+		32767, 0,     597,   823,   32767, 801,   32767, 479,
+		803,   631,   723,   32767, 538,   -394,  468,   -200,
+		411,   29,    32767, 32767, -1347, 361,   32767, -458,
+		655,   32767, 32767, 32767, -791,  0,     32767, 540,
+		541,   32767, 32767, -14,   959,   32767, 0,     462,
+		32767, 802,   32767, 32767, 846,   734,   32767, 32767,
+		735,   32767, 32767, 32767, 32767, 32767, 0,     32767,
+		32767, -685,  32767, 32767, 32767, 32767, 32767, 32767,
+		0,     44,    32767, 0,     807,   131,   349,   0,
+		0,     7,     -94,   423,   0,     529,   32767, 32767,
+		32767, 286,   0,     32767, -145,  400,   281,   445,
+		32767, 122,   32767, -300,  600,   571,   769,   945,
+		518,   0,     461,   32767, -254,  32767, -423,  -534,
+		462,   396,   0,     886,   425,   -956,  809,   145,
+		573,   810,   0,     401,   0,     -1069, 0,     151,
+		1011,  0,     0,     81,    32767, -411,  0,     -687,
+		859,   451,   -1447, 132,   32767, 32767, 32767, 32767,
+		-154,  32,    32767, 32767, 32767, 32767, 0,     32767,
+		32767, 32767, 37,    408,   0,     811,   326,   32767,
+		0,     -374,  32767, -184,  741,   -376,  91,    134,
+		32767, 486,   135,   -40,   579,   373,   32767, 547,
+		32767, 32767, 32767, 32767, -259,  873,   0,     0,
+		0,     825,   -373,  0,     32767, 0,     0,     308,
+		340,   -373,  32767, 0,     0,     32767, -1259, 32767,
+		742,   32767, 643,   139,   144,   349,   -79,   147,
+		148,   32767, 149,   732,   425,   -219,  152,   -446,
+		556,   143,   32767, 155,   165,   -1314, 0,     888,
+		439,   32767, 0,     0,     0,     813,   405,   29,
+		32767, 6,     0,     0,     743,   32767, 1902,  158,
+		159,   32767, 381,   0,     -102,  196,   0,     769,
+		-419,  -596,  0,     782,   162,   32767, 32767, -580,
+		32767, 32767, 32767, 32767, 1126,  32767, 32767, 412,
+		32767, 814,   824,   32767, 32767, 0,     32767, 32767,
+		744,   32767, 32767, 746,   0,     1480,  167,   0,
+		1189,  32767, 32767, 168,   169,   32767, 0,     32767,
+		906,   32767, 32767, 32767, 32767, 32767, 32767, 601,
+		32767, 32767, -278,  0,     32767, 1261,  414,   32767,
+		32767, 32767, 32767, 375,   378,   589,   644,   750,
+		751,   937,   32767, 590,   32767, 591,   32767, 171,
+		172,   32767, 32767, 32767, 32767, 1195,  32767, 32767,
+		721,   0,     0,     -505,  -14,   6,     0,     0,
+		0,     1058,  -718,  99,    0,     372,   327,   32767,
+		729,   -166,  32767, 0,     173,   -939,  175,   592,
+		177,   576,   32767, 213,   179,   0,     0,     514,
+		620,   32767, 32767, 32767, 32767, 0,     32767, 32767,
+		958,   -240,  0,     -840,  32767, 379,   32767, 0,
+		0,     752,   673,   -432,  159,   -877,  32767, -416,
+		32767, 182,   -211,  0,     0,     594,   32767, 184,
+		-1070, 32767, 32767, 32767, 185,   0,     0,     32767,
+		710,   32767, 32767, 32767, 32767, 928,   32767, 32767,
+		0,     126,   942,   32767, 0,     0,     32767, 867,
+		697,   -355,  32767, 625,   0,     596,   32767, 597,
+		-243,  583,   32767, 0,     0,     0,     0,     0,
+		584,   650,   0,     32767, 515,   32767, 0,     892,
+		0,     0,     -271,  274,   32767, 418,   32767, 0,
+		32767, 32767, 32767, 440,   -1147, 32767, 0,     32767,
+		32767, 651,   652,   564,   32767, 32767, 32767, 0,
+		32767, 32767, 32767, 32767, 947,   -68,   32767, 688,
+		32767, 0,     0,     689,   915,   916,   0,     0,
+		-204,  225,   0,     0,     0,     0,     32767, -275,
+		370,   0,     599,   -402,  32767, 571,   0,     32767,
+		1470,  594,   32767, 772,   773,   1458,  0,     907,
+		1048,  32767, 128,   4,     32767, 0,     32767, 1880,
+		32767, 32767, 0,     0,     684,   32767, 0,     262,
+		32767, 32767, 32767, 32767, 757,   32767, 32767, 0,
+		196,   32767, -258,  -552,  -998,  0,     950,   774,
+		-35,   32767, 0,     32767, 0,     32767, 15,    32767,
+		0,     32767, 0,     27,    198,   760,   32767, 32767,
+		1204,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		620,   32767, 32767, 760,   761,   32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 0,     0,     32767, 32767, 0,     32767, 0,
+		1195,  918,   32767, 32767, 32767, 32767, 0,     0,
+		32767, 32767, 32767, 32767, 903,   32767, 32767, 763,
+		764,   0,     32767, 0,     32767, 32767, 0,     32767,
+		833,   32767, 32767, 32767, 1132,  32767, 32767, 32767,
+		32767, 32767, 32767, 0,     450,   32767, 32767, 420,
+		32767, 32767, 32767, 32767, -68,   2,     0,     0,
+		1196,  0,     0,     0,     188,   189,   190,   191,
+		192,   600,   0,     -632,  -43,   196,   89,    489,
+		294,   1248,  32767, 1043,  32767, 492,   32767, 32767,
+		519,   0,     32767, 863,   32767, 32767, 32767, 0,
+		32767, 765,   493,   467,   0,     32767, 32767, 201,
+		32767, 432,   849,   32767, 279,   0,     0,     204,
+		834,   32767, 0,     32767, 1670,  32767, 0,     32767,
+		0,     32767, 32767, 32767, 919,   929,   32767, 0,
+		32767, -363,  0,     32767, 32767, 0,     434,   -56,
+		32767, 436,   0,     349,   0,     207,   208,   437,
+		32767, 0,     32767, -694,  -408,  32767, 0,     32767,
+		210,   206,   0,     653,   32767, 32767, 0,     402,
+		1105,  0,     32767, 693,   0,     0,     938,   32767,
+		32767, 32767, 438,   541,   131,   440,   871,   32767,
+		32767, 0,     32767, 279,   32767, 32767, 287,   212,
+		0,     0,     32767, 32767, 367,   32767, 696,   697,
+		32767, 0,     0,     0,     0,     32767, 32767, 32767,
+		32767, 32767, 32767, 0,     32767, 0,     -1321, 32767,
+		0,     176,   32767, 214,   218,   724,   234,   215,
+		222,   32767, 223,   -834,  943,   127,   32767, 496,
+		-100,  217,   0,     394,   32767, 229,   32767, 0,
+		0,     17,    421,   415,   447,   0,     32767, 686,
+		32767, 32767, 1845,  138,   32767, 32767, 872,   230,
+		32767, 601,   851,   471,   232,   603,   32767, 778,
+		698,   233,   32767, 699,   -439,  32767, 0,     32767,
+		32767, 32767, 663,   32767, 32767, 32767, 32767, -298,
+		449,   32767, -463,  687,   32767, 32767, 427,   32767,
+		0,     0,     0,     0,     0,     236,   193,   826,
+		238,   0,     108
 	};
 
 	const unsigned char *k = (const unsigned char *) key;
@@ -2962,7 +3004,7 @@ Recomp_hash_func(const void *key)
 		a = a * 257 + c;
 		b = b * 17 + c;
 	}
-	return h[a % 1883] + h[b % 1883];
+	return h[a % 1923] + h[b % 1923];
 }
 
 /* Hash lookup information for recomposition */
@@ -2970,5 +3012,5 @@ static const pg_unicode_recompinfo UnicodeRecompInfo =
 {
 	RecompInverseLookup,
 	Recomp_hash_func,
-	941
+	961
 };
diff --git a/src/include/common/unicode_norm_table.h b/src/include/common/unicode_norm_table.h
index 7aff822b7cd..6c983135996 100644
--- a/src/include/common/unicode_norm_table.h
+++ b/src/include/common/unicode_norm_table.h
@@ -36,7 +36,7 @@ typedef struct
 #define DECOMPOSITION_IS_COMPAT(x) (((x)->dec_size_flags & DECOMP_COMPAT) != 0)
 
 /* Table of Unicode codepoints and their decompositions */
-static const pg_unicode_decomposition UnicodeDecompMain[6775] =
+static const pg_unicode_decomposition UnicodeDecompMain[6843] =
 {
 	{0x00A0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0020},
 	{0x00A8, 0, 2 | DECOMP_COMPAT, 0},
@@ -727,6 +727,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x0859, 220, 0, 0},
 	{0x085A, 220, 0, 0},
 	{0x085B, 220, 0, 0},
+	{0x0897, 230, 0, 0},
 	{0x0898, 230, 0, 0},
 	{0x0899, 220, 0, 0},
 	{0x089A, 220, 0, 0},
@@ -4636,6 +4637,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x10378, 230, 0, 0},
 	{0x10379, 230, 0, 0},
 	{0x1037A, 230, 0, 0},
+	{0x105C9, 0, 2, 4776},
+	{0x105E4, 0, 2, 4778},
 	{0x10781, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02D0},
 	{0x10782, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02D1},
 	{0x10783, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x00E6},
@@ -4662,18 +4665,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x10799, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02AA},
 	{0x1079A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02AB},
 	{0x1079B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x026C},
-	{0x1079C, 0, 1 | DECOMP_COMPAT, 4776},
+	{0x1079C, 0, 1 | DECOMP_COMPAT, 4780},
 	{0x1079D, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0xA78E},
 	{0x1079E, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x026E},
-	{0x1079F, 0, 1 | DECOMP_COMPAT, 4777},
+	{0x1079F, 0, 1 | DECOMP_COMPAT, 4781},
 	{0x107A0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x028E},
-	{0x107A1, 0, 1 | DECOMP_COMPAT, 4778},
+	{0x107A1, 0, 1 | DECOMP_COMPAT, 4782},
 	{0x107A2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x00F8},
 	{0x107A3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0276},
 	{0x107A4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0277},
 	{0x107A5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0071},
 	{0x107A6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x027A},
-	{0x107A7, 0, 1 | DECOMP_COMPAT, 4779},
+	{0x107A7, 0, 1 | DECOMP_COMPAT, 4783},
 	{0x107A8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x027D},
 	{0x107A9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x027E},
 	{0x107AA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0280},
@@ -4690,8 +4693,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x107B6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x01C0},
 	{0x107B7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x01C1},
 	{0x107B8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x01C2},
-	{0x107B9, 0, 1 | DECOMP_COMPAT, 4780},
-	{0x107BA, 0, 1 | DECOMP_COMPAT, 4781},
+	{0x107B9, 0, 1 | DECOMP_COMPAT, 4784},
+	{0x107BA, 0, 1 | DECOMP_COMPAT, 4785},
 	{0x10A0D, 220, 0, 0},
 	{0x10A0F, 230, 0, 0},
 	{0x10A38, 230, 0, 0},
@@ -4704,6 +4707,11 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x10D25, 230, 0, 0},
 	{0x10D26, 230, 0, 0},
 	{0x10D27, 230, 0, 0},
+	{0x10D69, 230, 0, 0},
+	{0x10D6A, 230, 0, 0},
+	{0x10D6B, 230, 0, 0},
+	{0x10D6C, 230, 0, 0},
+	{0x10D6D, 230, 0, 0},
 	{0x10EAB, 230, 0, 0},
 	{0x10EAC, 230, 0, 0},
 	{0x10EFD, 220, 0, 0},
@@ -4727,16 +4735,16 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x11046, 9, 0, 0},
 	{0x11070, 9, 0, 0},
 	{0x1107F, 9, 0, 0},
-	{0x1109A, 0, 2, 4782},
-	{0x1109C, 0, 2, 4784},
-	{0x110AB, 0, 2, 4786},
+	{0x1109A, 0, 2, 4786},
+	{0x1109C, 0, 2, 4788},
+	{0x110AB, 0, 2, 4790},
 	{0x110B9, 9, 0, 0},
 	{0x110BA, 7, 0, 0},
 	{0x11100, 230, 0, 0},
 	{0x11101, 230, 0, 0},
 	{0x11102, 230, 0, 0},
-	{0x1112E, 0, 2, 4788},
-	{0x1112F, 0, 2, 4790},
+	{0x1112E, 0, 2, 4792},
+	{0x1112F, 0, 2, 4794},
 	{0x11133, 9, 0, 0},
 	{0x11134, 9, 0, 0},
 	{0x11173, 7, 0, 0},
@@ -4748,8 +4756,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x112EA, 9, 0, 0},
 	{0x1133B, 7, 0, 0},
 	{0x1133C, 7, 0, 0},
-	{0x1134B, 0, 2, 4792},
-	{0x1134C, 0, 2, 4794},
+	{0x1134B, 0, 2, 4796},
+	{0x1134C, 0, 2, 4798},
 	{0x1134D, 9, 0, 0},
 	{0x11366, 230, 0, 0},
 	{0x11367, 230, 0, 0},
@@ -4763,16 +4771,26 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x11372, 230, 0, 0},
 	{0x11373, 230, 0, 0},
 	{0x11374, 230, 0, 0},
+	{0x11383, 0, 2, 4800},
+	{0x11385, 0, 2, 4802},
+	{0x1138E, 0, 2, 4804},
+	{0x11391, 0, 2, 4806},
+	{0x113C5, 0, 2, 4808},
+	{0x113C7, 0, 2, 4810},
+	{0x113C8, 0, 2, 4812},
+	{0x113CE, 9, 0, 0},
+	{0x113CF, 9, 0, 0},
+	{0x113D0, 9, 0, 0},
 	{0x11442, 9, 0, 0},
 	{0x11446, 7, 0, 0},
 	{0x1145E, 230, 0, 0},
-	{0x114BB, 0, 2, 4796},
-	{0x114BC, 0, 2, 4798},
-	{0x114BE, 0, 2, 4800},
+	{0x114BB, 0, 2, 4814},
+	{0x114BC, 0, 2, 4816},
+	{0x114BE, 0, 2, 4818},
 	{0x114C2, 9, 0, 0},
 	{0x114C3, 7, 0, 0},
-	{0x115BA, 0, 2, 4802},
-	{0x115BB, 0, 2, 4804},
+	{0x115BA, 0, 2, 4820},
+	{0x115BB, 0, 2, 4822},
 	{0x115BF, 9, 0, 0},
 	{0x115C0, 7, 0, 0},
 	{0x1163F, 9, 0, 0},
@@ -4781,7 +4799,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1172B, 9, 0, 0},
 	{0x11839, 9, 0, 0},
 	{0x1183A, 7, 0, 0},
-	{0x11938, 0, 2, 4806},
+	{0x11938, 0, 2, 4824},
 	{0x1193D, 9, 0, 0},
 	{0x1193E, 9, 0, 0},
 	{0x11943, 7, 0, 0},
@@ -4796,6 +4814,15 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x11D97, 9, 0, 0},
 	{0x11F41, 9, 0, 0},
 	{0x11F42, 9, 0, 0},
+	{0x16121, 0, 2, 4826},
+	{0x16122, 0, 2, 4828},
+	{0x16123, 0, 2, 4830},
+	{0x16124, 0, 2, 4832},
+	{0x16125, 0, 2, 4834},
+	{0x16126, 0, 2, 4836},
+	{0x16127, 0, 2, 4838},
+	{0x16128, 0, 2, 4840},
+	{0x1612F, 9, 0, 0},
 	{0x16AF0, 1, 0, 0},
 	{0x16AF1, 1, 0, 0},
 	{0x16AF2, 1, 0, 0},
@@ -4808,16 +4835,55 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x16B34, 230, 0, 0},
 	{0x16B35, 230, 0, 0},
 	{0x16B36, 230, 0, 0},
+	{0x16D68, 0, 2, 4842},
+	{0x16D69, 0, 2, 4844},
+	{0x16D6A, 0, 2, 4846},
 	{0x16FF0, 6, 0, 0},
 	{0x16FF1, 6, 0, 0},
 	{0x1BC9E, 1, 0, 0},
-	{0x1D15E, 0, 2 | DECOMP_NO_COMPOSE, 4808},	/* in exclusion list */
-	{0x1D15F, 0, 2 | DECOMP_NO_COMPOSE, 4810},	/* in exclusion list */
-	{0x1D160, 0, 2 | DECOMP_NO_COMPOSE, 4812},	/* in exclusion list */
-	{0x1D161, 0, 2 | DECOMP_NO_COMPOSE, 4814},	/* in exclusion list */
-	{0x1D162, 0, 2 | DECOMP_NO_COMPOSE, 4816},	/* in exclusion list */
-	{0x1D163, 0, 2 | DECOMP_NO_COMPOSE, 4818},	/* in exclusion list */
-	{0x1D164, 0, 2 | DECOMP_NO_COMPOSE, 4820},	/* in exclusion list */
+	{0x1CCD6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0041},
+	{0x1CCD7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0042},
+	{0x1CCD8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0043},
+	{0x1CCD9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0044},
+	{0x1CCDA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0045},
+	{0x1CCDB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0046},
+	{0x1CCDC, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0047},
+	{0x1CCDD, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0048},
+	{0x1CCDE, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0049},
+	{0x1CCDF, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004A},
+	{0x1CCE0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004B},
+	{0x1CCE1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004C},
+	{0x1CCE2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004D},
+	{0x1CCE3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004E},
+	{0x1CCE4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004F},
+	{0x1CCE5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0050},
+	{0x1CCE6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0051},
+	{0x1CCE7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0052},
+	{0x1CCE8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0053},
+	{0x1CCE9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0054},
+	{0x1CCEA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0055},
+	{0x1CCEB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0056},
+	{0x1CCEC, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0057},
+	{0x1CCED, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0058},
+	{0x1CCEE, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0059},
+	{0x1CCEF, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x005A},
+	{0x1CCF0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0030},
+	{0x1CCF1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0031},
+	{0x1CCF2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0032},
+	{0x1CCF3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0033},
+	{0x1CCF4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0034},
+	{0x1CCF5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0035},
+	{0x1CCF6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0036},
+	{0x1CCF7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0037},
+	{0x1CCF8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0038},
+	{0x1CCF9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0039},
+	{0x1D15E, 0, 2 | DECOMP_NO_COMPOSE, 4848},	/* in exclusion list */
+	{0x1D15F, 0, 2 | DECOMP_NO_COMPOSE, 4850},	/* in exclusion list */
+	{0x1D160, 0, 2 | DECOMP_NO_COMPOSE, 4852},	/* in exclusion list */
+	{0x1D161, 0, 2 | DECOMP_NO_COMPOSE, 4854},	/* in exclusion list */
+	{0x1D162, 0, 2 | DECOMP_NO_COMPOSE, 4856},	/* in exclusion list */
+	{0x1D163, 0, 2 | DECOMP_NO_COMPOSE, 4858},	/* in exclusion list */
+	{0x1D164, 0, 2 | DECOMP_NO_COMPOSE, 4860},	/* in exclusion list */
 	{0x1D165, 216, 0, 0},
 	{0x1D166, 216, 0, 0},
 	{0x1D167, 1, 0, 0},
@@ -4848,12 +4914,12 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1D1AB, 230, 0, 0},
 	{0x1D1AC, 230, 0, 0},
 	{0x1D1AD, 230, 0, 0},
-	{0x1D1BB, 0, 2 | DECOMP_NO_COMPOSE, 4822},	/* in exclusion list */
-	{0x1D1BC, 0, 2 | DECOMP_NO_COMPOSE, 4824},	/* in exclusion list */
-	{0x1D1BD, 0, 2 | DECOMP_NO_COMPOSE, 4826},	/* in exclusion list */
-	{0x1D1BE, 0, 2 | DECOMP_NO_COMPOSE, 4828},	/* in exclusion list */
-	{0x1D1BF, 0, 2 | DECOMP_NO_COMPOSE, 4830},	/* in exclusion list */
-	{0x1D1C0, 0, 2 | DECOMP_NO_COMPOSE, 4832},	/* in exclusion list */
+	{0x1D1BB, 0, 2 | DECOMP_NO_COMPOSE, 4862},	/* in exclusion list */
+	{0x1D1BC, 0, 2 | DECOMP_NO_COMPOSE, 4864},	/* in exclusion list */
+	{0x1D1BD, 0, 2 | DECOMP_NO_COMPOSE, 4866},	/* in exclusion list */
+	{0x1D1BE, 0, 2 | DECOMP_NO_COMPOSE, 4868},	/* in exclusion list */
+	{0x1D1BF, 0, 2 | DECOMP_NO_COMPOSE, 4870},	/* in exclusion list */
+	{0x1D1C0, 0, 2 | DECOMP_NO_COMPOSE, 4872},	/* in exclusion list */
 	{0x1D242, 230, 0, 0},
 	{0x1D243, 230, 0, 0},
 	{0x1D244, 230, 0, 0},
@@ -5970,6 +6036,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1E4ED, 232, 0, 0},
 	{0x1E4EE, 220, 0, 0},
 	{0x1E4EF, 230, 0, 0},
+	{0x1E5EE, 230, 0, 0},
+	{0x1E5EF, 220, 0, 0},
 	{0x1E8D0, 220, 0, 0},
 	{0x1E8D1, 220, 0, 0},
 	{0x1E8D2, 220, 0, 0},
@@ -6125,48 +6193,48 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1EEB9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0636},
 	{0x1EEBA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0638},
 	{0x1EEBB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x063A},
-	{0x1F100, 0, 2 | DECOMP_COMPAT, 4834},
-	{0x1F101, 0, 2 | DECOMP_COMPAT, 4836},
-	{0x1F102, 0, 2 | DECOMP_COMPAT, 4838},
-	{0x1F103, 0, 2 | DECOMP_COMPAT, 4840},
-	{0x1F104, 0, 2 | DECOMP_COMPAT, 4842},
-	{0x1F105, 0, 2 | DECOMP_COMPAT, 4844},
-	{0x1F106, 0, 2 | DECOMP_COMPAT, 4846},
-	{0x1F107, 0, 2 | DECOMP_COMPAT, 4848},
-	{0x1F108, 0, 2 | DECOMP_COMPAT, 4850},
-	{0x1F109, 0, 2 | DECOMP_COMPAT, 4852},
-	{0x1F10A, 0, 2 | DECOMP_COMPAT, 4854},
-	{0x1F110, 0, 3 | DECOMP_COMPAT, 4856},
-	{0x1F111, 0, 3 | DECOMP_COMPAT, 4859},
-	{0x1F112, 0, 3 | DECOMP_COMPAT, 4862},
-	{0x1F113, 0, 3 | DECOMP_COMPAT, 4865},
-	{0x1F114, 0, 3 | DECOMP_COMPAT, 4868},
-	{0x1F115, 0, 3 | DECOMP_COMPAT, 4871},
-	{0x1F116, 0, 3 | DECOMP_COMPAT, 4874},
-	{0x1F117, 0, 3 | DECOMP_COMPAT, 4877},
-	{0x1F118, 0, 3 | DECOMP_COMPAT, 4880},
-	{0x1F119, 0, 3 | DECOMP_COMPAT, 4883},
-	{0x1F11A, 0, 3 | DECOMP_COMPAT, 4886},
-	{0x1F11B, 0, 3 | DECOMP_COMPAT, 4889},
-	{0x1F11C, 0, 3 | DECOMP_COMPAT, 4892},
-	{0x1F11D, 0, 3 | DECOMP_COMPAT, 4895},
-	{0x1F11E, 0, 3 | DECOMP_COMPAT, 4898},
-	{0x1F11F, 0, 3 | DECOMP_COMPAT, 4901},
-	{0x1F120, 0, 3 | DECOMP_COMPAT, 4904},
-	{0x1F121, 0, 3 | DECOMP_COMPAT, 4907},
-	{0x1F122, 0, 3 | DECOMP_COMPAT, 4910},
-	{0x1F123, 0, 3 | DECOMP_COMPAT, 4913},
-	{0x1F124, 0, 3 | DECOMP_COMPAT, 4916},
-	{0x1F125, 0, 3 | DECOMP_COMPAT, 4919},
-	{0x1F126, 0, 3 | DECOMP_COMPAT, 4922},
-	{0x1F127, 0, 3 | DECOMP_COMPAT, 4925},
-	{0x1F128, 0, 3 | DECOMP_COMPAT, 4928},
-	{0x1F129, 0, 3 | DECOMP_COMPAT, 4931},
-	{0x1F12A, 0, 3 | DECOMP_COMPAT, 4934},
+	{0x1F100, 0, 2 | DECOMP_COMPAT, 4874},
+	{0x1F101, 0, 2 | DECOMP_COMPAT, 4876},
+	{0x1F102, 0, 2 | DECOMP_COMPAT, 4878},
+	{0x1F103, 0, 2 | DECOMP_COMPAT, 4880},
+	{0x1F104, 0, 2 | DECOMP_COMPAT, 4882},
+	{0x1F105, 0, 2 | DECOMP_COMPAT, 4884},
+	{0x1F106, 0, 2 | DECOMP_COMPAT, 4886},
+	{0x1F107, 0, 2 | DECOMP_COMPAT, 4888},
+	{0x1F108, 0, 2 | DECOMP_COMPAT, 4890},
+	{0x1F109, 0, 2 | DECOMP_COMPAT, 4892},
+	{0x1F10A, 0, 2 | DECOMP_COMPAT, 4894},
+	{0x1F110, 0, 3 | DECOMP_COMPAT, 4896},
+	{0x1F111, 0, 3 | DECOMP_COMPAT, 4899},
+	{0x1F112, 0, 3 | DECOMP_COMPAT, 4902},
+	{0x1F113, 0, 3 | DECOMP_COMPAT, 4905},
+	{0x1F114, 0, 3 | DECOMP_COMPAT, 4908},
+	{0x1F115, 0, 3 | DECOMP_COMPAT, 4911},
+	{0x1F116, 0, 3 | DECOMP_COMPAT, 4914},
+	{0x1F117, 0, 3 | DECOMP_COMPAT, 4917},
+	{0x1F118, 0, 3 | DECOMP_COMPAT, 4920},
+	{0x1F119, 0, 3 | DECOMP_COMPAT, 4923},
+	{0x1F11A, 0, 3 | DECOMP_COMPAT, 4926},
+	{0x1F11B, 0, 3 | DECOMP_COMPAT, 4929},
+	{0x1F11C, 0, 3 | DECOMP_COMPAT, 4932},
+	{0x1F11D, 0, 3 | DECOMP_COMPAT, 4935},
+	{0x1F11E, 0, 3 | DECOMP_COMPAT, 4938},
+	{0x1F11F, 0, 3 | DECOMP_COMPAT, 4941},
+	{0x1F120, 0, 3 | DECOMP_COMPAT, 4944},
+	{0x1F121, 0, 3 | DECOMP_COMPAT, 4947},
+	{0x1F122, 0, 3 | DECOMP_COMPAT, 4950},
+	{0x1F123, 0, 3 | DECOMP_COMPAT, 4953},
+	{0x1F124, 0, 3 | DECOMP_COMPAT, 4956},
+	{0x1F125, 0, 3 | DECOMP_COMPAT, 4959},
+	{0x1F126, 0, 3 | DECOMP_COMPAT, 4962},
+	{0x1F127, 0, 3 | DECOMP_COMPAT, 4965},
+	{0x1F128, 0, 3 | DECOMP_COMPAT, 4968},
+	{0x1F129, 0, 3 | DECOMP_COMPAT, 4971},
+	{0x1F12A, 0, 3 | DECOMP_COMPAT, 4974},
 	{0x1F12B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0043},
 	{0x1F12C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0052},
-	{0x1F12D, 0, 2 | DECOMP_COMPAT, 4937},
-	{0x1F12E, 0, 2 | DECOMP_COMPAT, 4939},
+	{0x1F12D, 0, 2 | DECOMP_COMPAT, 4977},
+	{0x1F12E, 0, 2 | DECOMP_COMPAT, 4979},
 	{0x1F130, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0041},
 	{0x1F131, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0042},
 	{0x1F132, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0043},
@@ -6193,18 +6261,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1F147, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0058},
 	{0x1F148, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0059},
 	{0x1F149, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x005A},
-	{0x1F14A, 0, 2 | DECOMP_COMPAT, 4941},
-	{0x1F14B, 0, 2 | DECOMP_COMPAT, 4943},
-	{0x1F14C, 0, 2 | DECOMP_COMPAT, 4945},
-	{0x1F14D, 0, 2 | DECOMP_COMPAT, 4947},
-	{0x1F14E, 0, 3 | DECOMP_COMPAT, 4949},
-	{0x1F14F, 0, 2 | DECOMP_COMPAT, 4952},
-	{0x1F16A, 0, 2 | DECOMP_COMPAT, 4954},
-	{0x1F16B, 0, 2 | DECOMP_COMPAT, 4956},
-	{0x1F16C, 0, 2 | DECOMP_COMPAT, 4958},
-	{0x1F190, 0, 2 | DECOMP_COMPAT, 4960},
-	{0x1F200, 0, 2 | DECOMP_COMPAT, 4962},
-	{0x1F201, 0, 2 | DECOMP_COMPAT, 4964},
+	{0x1F14A, 0, 2 | DECOMP_COMPAT, 4981},
+	{0x1F14B, 0, 2 | DECOMP_COMPAT, 4983},
+	{0x1F14C, 0, 2 | DECOMP_COMPAT, 4985},
+	{0x1F14D, 0, 2 | DECOMP_COMPAT, 4987},
+	{0x1F14E, 0, 3 | DECOMP_COMPAT, 4989},
+	{0x1F14F, 0, 2 | DECOMP_COMPAT, 4992},
+	{0x1F16A, 0, 2 | DECOMP_COMPAT, 4994},
+	{0x1F16B, 0, 2 | DECOMP_COMPAT, 4996},
+	{0x1F16C, 0, 2 | DECOMP_COMPAT, 4998},
+	{0x1F190, 0, 2 | DECOMP_COMPAT, 5000},
+	{0x1F200, 0, 2 | DECOMP_COMPAT, 5002},
+	{0x1F201, 0, 2 | DECOMP_COMPAT, 5004},
 	{0x1F202, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x30B5},
 	{0x1F210, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x624B},
 	{0x1F211, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5B57},
@@ -6250,15 +6318,15 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x1F239, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5272},
 	{0x1F23A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x55B6},
 	{0x1F23B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x914D},
-	{0x1F240, 0, 3 | DECOMP_COMPAT, 4966},
-	{0x1F241, 0, 3 | DECOMP_COMPAT, 4969},
-	{0x1F242, 0, 3 | DECOMP_COMPAT, 4972},
-	{0x1F243, 0, 3 | DECOMP_COMPAT, 4975},
-	{0x1F244, 0, 3 | DECOMP_COMPAT, 4978},
-	{0x1F245, 0, 3 | DECOMP_COMPAT, 4981},
-	{0x1F246, 0, 3 | DECOMP_COMPAT, 4984},
-	{0x1F247, 0, 3 | DECOMP_COMPAT, 4987},
-	{0x1F248, 0, 3 | DECOMP_COMPAT, 4990},
+	{0x1F240, 0, 3 | DECOMP_COMPAT, 5006},
+	{0x1F241, 0, 3 | DECOMP_COMPAT, 5009},
+	{0x1F242, 0, 3 | DECOMP_COMPAT, 5012},
+	{0x1F243, 0, 3 | DECOMP_COMPAT, 5015},
+	{0x1F244, 0, 3 | DECOMP_COMPAT, 5018},
+	{0x1F245, 0, 3 | DECOMP_COMPAT, 5021},
+	{0x1F246, 0, 3 | DECOMP_COMPAT, 5024},
+	{0x1F247, 0, 3 | DECOMP_COMPAT, 5027},
+	{0x1F248, 0, 3 | DECOMP_COMPAT, 5030},
 	{0x1F250, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5F97},
 	{0x1F251, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x53EF},
 	{0x1FBF0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0030},
@@ -6274,7 +6342,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F800, 0, 1 | DECOMP_INLINE, 0x4E3D},
 	{0x2F801, 0, 1 | DECOMP_INLINE, 0x4E38},
 	{0x2F802, 0, 1 | DECOMP_INLINE, 0x4E41},
-	{0x2F803, 0, 1, 4993},
+	{0x2F803, 0, 1, 5033},
 	{0x2F804, 0, 1 | DECOMP_INLINE, 0x4F60},
 	{0x2F805, 0, 1 | DECOMP_INLINE, 0x4FAE},
 	{0x2F806, 0, 1 | DECOMP_INLINE, 0x4FBB},
@@ -6284,22 +6352,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F80A, 0, 1 | DECOMP_INLINE, 0x50E7},
 	{0x2F80B, 0, 1 | DECOMP_INLINE, 0x50CF},
 	{0x2F80C, 0, 1 | DECOMP_INLINE, 0x349E},
-	{0x2F80D, 0, 1, 4994},
+	{0x2F80D, 0, 1, 5034},
 	{0x2F80E, 0, 1 | DECOMP_INLINE, 0x514D},
 	{0x2F80F, 0, 1 | DECOMP_INLINE, 0x5154},
 	{0x2F810, 0, 1 | DECOMP_INLINE, 0x5164},
 	{0x2F811, 0, 1 | DECOMP_INLINE, 0x5177},
-	{0x2F812, 0, 1, 4995},
+	{0x2F812, 0, 1, 5035},
 	{0x2F813, 0, 1 | DECOMP_INLINE, 0x34B9},
 	{0x2F814, 0, 1 | DECOMP_INLINE, 0x5167},
 	{0x2F815, 0, 1 | DECOMP_INLINE, 0x518D},
-	{0x2F816, 0, 1, 4996},
+	{0x2F816, 0, 1, 5036},
 	{0x2F817, 0, 1 | DECOMP_INLINE, 0x5197},
 	{0x2F818, 0, 1 | DECOMP_INLINE, 0x51A4},
 	{0x2F819, 0, 1 | DECOMP_INLINE, 0x4ECC},
 	{0x2F81A, 0, 1 | DECOMP_INLINE, 0x51AC},
 	{0x2F81B, 0, 1 | DECOMP_INLINE, 0x51B5},
-	{0x2F81C, 0, 1, 4997},
+	{0x2F81C, 0, 1, 5037},
 	{0x2F81D, 0, 1 | DECOMP_INLINE, 0x51F5},
 	{0x2F81E, 0, 1 | DECOMP_INLINE, 0x5203},
 	{0x2F81F, 0, 1 | DECOMP_INLINE, 0x34DF},
@@ -6323,11 +6391,11 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F831, 0, 1 | DECOMP_INLINE, 0x537F},
 	{0x2F832, 0, 1 | DECOMP_INLINE, 0x537F},
 	{0x2F833, 0, 1 | DECOMP_INLINE, 0x537F},
-	{0x2F834, 0, 1, 4998},
+	{0x2F834, 0, 1, 5038},
 	{0x2F835, 0, 1 | DECOMP_INLINE, 0x7070},
 	{0x2F836, 0, 1 | DECOMP_INLINE, 0x53CA},
 	{0x2F837, 0, 1 | DECOMP_INLINE, 0x53DF},
-	{0x2F838, 0, 1, 4999},
+	{0x2F838, 0, 1, 5039},
 	{0x2F839, 0, 1 | DECOMP_INLINE, 0x53EB},
 	{0x2F83A, 0, 1 | DECOMP_INLINE, 0x53F1},
 	{0x2F83B, 0, 1 | DECOMP_INLINE, 0x5406},
@@ -6360,15 +6428,15 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F856, 0, 1 | DECOMP_INLINE, 0x5832},
 	{0x2F857, 0, 1 | DECOMP_INLINE, 0x5831},
 	{0x2F858, 0, 1 | DECOMP_INLINE, 0x58AC},
-	{0x2F859, 0, 1, 5000},
+	{0x2F859, 0, 1, 5040},
 	{0x2F85A, 0, 1 | DECOMP_INLINE, 0x58F2},
 	{0x2F85B, 0, 1 | DECOMP_INLINE, 0x58F7},
 	{0x2F85C, 0, 1 | DECOMP_INLINE, 0x5906},
 	{0x2F85D, 0, 1 | DECOMP_INLINE, 0x591A},
 	{0x2F85E, 0, 1 | DECOMP_INLINE, 0x5922},
 	{0x2F85F, 0, 1 | DECOMP_INLINE, 0x5962},
-	{0x2F860, 0, 1, 5001},
-	{0x2F861, 0, 1, 5002},
+	{0x2F860, 0, 1, 5041},
+	{0x2F861, 0, 1, 5042},
 	{0x2F862, 0, 1 | DECOMP_INLINE, 0x59EC},
 	{0x2F863, 0, 1 | DECOMP_INLINE, 0x5A1B},
 	{0x2F864, 0, 1 | DECOMP_INLINE, 0x5A27},
@@ -6379,12 +6447,12 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F869, 0, 1 | DECOMP_INLINE, 0x5B08},
 	{0x2F86A, 0, 1 | DECOMP_INLINE, 0x5B3E},
 	{0x2F86B, 0, 1 | DECOMP_INLINE, 0x5B3E},
-	{0x2F86C, 0, 1, 5003},
+	{0x2F86C, 0, 1, 5043},
 	{0x2F86D, 0, 1 | DECOMP_INLINE, 0x5BC3},
 	{0x2F86E, 0, 1 | DECOMP_INLINE, 0x5BD8},
 	{0x2F86F, 0, 1 | DECOMP_INLINE, 0x5BE7},
 	{0x2F870, 0, 1 | DECOMP_INLINE, 0x5BF3},
-	{0x2F871, 0, 1, 5004},
+	{0x2F871, 0, 1, 5044},
 	{0x2F872, 0, 1 | DECOMP_INLINE, 0x5BFF},
 	{0x2F873, 0, 1 | DECOMP_INLINE, 0x5C06},
 	{0x2F874, 0, 1 | DECOMP_INLINE, 0x5F53},
@@ -6394,9 +6462,9 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F878, 0, 1 | DECOMP_INLINE, 0x5C6E},
 	{0x2F879, 0, 1 | DECOMP_INLINE, 0x5CC0},
 	{0x2F87A, 0, 1 | DECOMP_INLINE, 0x5C8D},
-	{0x2F87B, 0, 1, 5005},
+	{0x2F87B, 0, 1, 5045},
 	{0x2F87C, 0, 1 | DECOMP_INLINE, 0x5D43},
-	{0x2F87D, 0, 1, 5006},
+	{0x2F87D, 0, 1, 5046},
 	{0x2F87E, 0, 1 | DECOMP_INLINE, 0x5D6E},
 	{0x2F87F, 0, 1 | DECOMP_INLINE, 0x5D6B},
 	{0x2F880, 0, 1 | DECOMP_INLINE, 0x5D7C},
@@ -6408,22 +6476,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F886, 0, 1 | DECOMP_INLINE, 0x5E3D},
 	{0x2F887, 0, 1 | DECOMP_INLINE, 0x5E69},
 	{0x2F888, 0, 1 | DECOMP_INLINE, 0x3862},
-	{0x2F889, 0, 1, 5007},
+	{0x2F889, 0, 1, 5047},
 	{0x2F88A, 0, 1 | DECOMP_INLINE, 0x387C},
 	{0x2F88B, 0, 1 | DECOMP_INLINE, 0x5EB0},
 	{0x2F88C, 0, 1 | DECOMP_INLINE, 0x5EB3},
 	{0x2F88D, 0, 1 | DECOMP_INLINE, 0x5EB6},
 	{0x2F88E, 0, 1 | DECOMP_INLINE, 0x5ECA},
-	{0x2F88F, 0, 1, 5008},
+	{0x2F88F, 0, 1, 5048},
 	{0x2F890, 0, 1 | DECOMP_INLINE, 0x5EFE},
-	{0x2F891, 0, 1, 5009},
-	{0x2F892, 0, 1, 5010},
+	{0x2F891, 0, 1, 5049},
+	{0x2F892, 0, 1, 5050},
 	{0x2F893, 0, 1 | DECOMP_INLINE, 0x8201},
 	{0x2F894, 0, 1 | DECOMP_INLINE, 0x5F22},
 	{0x2F895, 0, 1 | DECOMP_INLINE, 0x5F22},
 	{0x2F896, 0, 1 | DECOMP_INLINE, 0x38C7},
-	{0x2F897, 0, 1, 5011},
-	{0x2F898, 0, 1, 5012},
+	{0x2F897, 0, 1, 5051},
+	{0x2F898, 0, 1, 5052},
 	{0x2F899, 0, 1 | DECOMP_INLINE, 0x5F62},
 	{0x2F89A, 0, 1 | DECOMP_INLINE, 0x5F6B},
 	{0x2F89B, 0, 1 | DECOMP_INLINE, 0x38E3},
@@ -6435,7 +6503,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8A1, 0, 1 | DECOMP_INLINE, 0x393A},
 	{0x2F8A2, 0, 1 | DECOMP_INLINE, 0x391C},
 	{0x2F8A3, 0, 1 | DECOMP_INLINE, 0x6094},
-	{0x2F8A4, 0, 1, 5013},
+	{0x2F8A4, 0, 1, 5053},
 	{0x2F8A5, 0, 1 | DECOMP_INLINE, 0x60C7},
 	{0x2F8A6, 0, 1 | DECOMP_INLINE, 0x6148},
 	{0x2F8A7, 0, 1 | DECOMP_INLINE, 0x614C},
@@ -6455,13 +6523,13 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8B5, 0, 1 | DECOMP_INLINE, 0x62B1},
 	{0x2F8B6, 0, 1 | DECOMP_INLINE, 0x62D4},
 	{0x2F8B7, 0, 1 | DECOMP_INLINE, 0x6350},
-	{0x2F8B8, 0, 1, 5014},
+	{0x2F8B8, 0, 1, 5054},
 	{0x2F8B9, 0, 1 | DECOMP_INLINE, 0x633D},
 	{0x2F8BA, 0, 1 | DECOMP_INLINE, 0x62FC},
 	{0x2F8BB, 0, 1 | DECOMP_INLINE, 0x6368},
 	{0x2F8BC, 0, 1 | DECOMP_INLINE, 0x6383},
 	{0x2F8BD, 0, 1 | DECOMP_INLINE, 0x63E4},
-	{0x2F8BE, 0, 1, 5015},
+	{0x2F8BE, 0, 1, 5055},
 	{0x2F8BF, 0, 1 | DECOMP_INLINE, 0x6422},
 	{0x2F8C0, 0, 1 | DECOMP_INLINE, 0x63C5},
 	{0x2F8C1, 0, 1 | DECOMP_INLINE, 0x63A9},
@@ -6473,7 +6541,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8C7, 0, 1 | DECOMP_INLINE, 0x3A6C},
 	{0x2F8C8, 0, 1 | DECOMP_INLINE, 0x654F},
 	{0x2F8C9, 0, 1 | DECOMP_INLINE, 0x656C},
-	{0x2F8CA, 0, 1, 5016},
+	{0x2F8CA, 0, 1, 5056},
 	{0x2F8CB, 0, 1 | DECOMP_INLINE, 0x65E3},
 	{0x2F8CC, 0, 1 | DECOMP_INLINE, 0x66F8},
 	{0x2F8CD, 0, 1 | DECOMP_INLINE, 0x6649},
@@ -6492,13 +6560,13 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8DA, 0, 1 | DECOMP_INLINE, 0x6721},
 	{0x2F8DB, 0, 1 | DECOMP_INLINE, 0x675E},
 	{0x2F8DC, 0, 1 | DECOMP_INLINE, 0x6753},
-	{0x2F8DD, 0, 1, 5017},
+	{0x2F8DD, 0, 1, 5057},
 	{0x2F8DE, 0, 1 | DECOMP_INLINE, 0x3B49},
 	{0x2F8DF, 0, 1 | DECOMP_INLINE, 0x67FA},
 	{0x2F8E0, 0, 1 | DECOMP_INLINE, 0x6785},
 	{0x2F8E1, 0, 1 | DECOMP_INLINE, 0x6852},
 	{0x2F8E2, 0, 1 | DECOMP_INLINE, 0x6885},
-	{0x2F8E3, 0, 1, 5018},
+	{0x2F8E3, 0, 1, 5058},
 	{0x2F8E4, 0, 1 | DECOMP_INLINE, 0x688E},
 	{0x2F8E5, 0, 1 | DECOMP_INLINE, 0x681F},
 	{0x2F8E6, 0, 1 | DECOMP_INLINE, 0x6914},
@@ -6507,22 +6575,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F8E9, 0, 1 | DECOMP_INLINE, 0x69A3},
 	{0x2F8EA, 0, 1 | DECOMP_INLINE, 0x69EA},
 	{0x2F8EB, 0, 1 | DECOMP_INLINE, 0x6AA8},
-	{0x2F8EC, 0, 1, 5019},
+	{0x2F8EC, 0, 1, 5059},
 	{0x2F8ED, 0, 1 | DECOMP_INLINE, 0x6ADB},
 	{0x2F8EE, 0, 1 | DECOMP_INLINE, 0x3C18},
 	{0x2F8EF, 0, 1 | DECOMP_INLINE, 0x6B21},
-	{0x2F8F0, 0, 1, 5020},
+	{0x2F8F0, 0, 1, 5060},
 	{0x2F8F1, 0, 1 | DECOMP_INLINE, 0x6B54},
 	{0x2F8F2, 0, 1 | DECOMP_INLINE, 0x3C4E},
 	{0x2F8F3, 0, 1 | DECOMP_INLINE, 0x6B72},
 	{0x2F8F4, 0, 1 | DECOMP_INLINE, 0x6B9F},
 	{0x2F8F5, 0, 1 | DECOMP_INLINE, 0x6BBA},
 	{0x2F8F6, 0, 1 | DECOMP_INLINE, 0x6BBB},
-	{0x2F8F7, 0, 1, 5021},
-	{0x2F8F8, 0, 1, 5022},
-	{0x2F8F9, 0, 1, 5023},
+	{0x2F8F7, 0, 1, 5061},
+	{0x2F8F8, 0, 1, 5062},
+	{0x2F8F9, 0, 1, 5063},
 	{0x2F8FA, 0, 1 | DECOMP_INLINE, 0x6C4E},
-	{0x2F8FB, 0, 1, 5024},
+	{0x2F8FB, 0, 1, 5064},
 	{0x2F8FC, 0, 1 | DECOMP_INLINE, 0x6CBF},
 	{0x2F8FD, 0, 1 | DECOMP_INLINE, 0x6CCD},
 	{0x2F8FE, 0, 1 | DECOMP_INLINE, 0x6C67},
@@ -6533,18 +6601,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F903, 0, 1 | DECOMP_INLINE, 0x6D69},
 	{0x2F904, 0, 1 | DECOMP_INLINE, 0x6D78},
 	{0x2F905, 0, 1 | DECOMP_INLINE, 0x6D85},
-	{0x2F906, 0, 1, 5025},
+	{0x2F906, 0, 1, 5065},
 	{0x2F907, 0, 1 | DECOMP_INLINE, 0x6D34},
 	{0x2F908, 0, 1 | DECOMP_INLINE, 0x6E2F},
 	{0x2F909, 0, 1 | DECOMP_INLINE, 0x6E6E},
 	{0x2F90A, 0, 1 | DECOMP_INLINE, 0x3D33},
 	{0x2F90B, 0, 1 | DECOMP_INLINE, 0x6ECB},
 	{0x2F90C, 0, 1 | DECOMP_INLINE, 0x6EC7},
-	{0x2F90D, 0, 1, 5026},
+	{0x2F90D, 0, 1, 5066},
 	{0x2F90E, 0, 1 | DECOMP_INLINE, 0x6DF9},
 	{0x2F90F, 0, 1 | DECOMP_INLINE, 0x6F6E},
-	{0x2F910, 0, 1, 5027},
-	{0x2F911, 0, 1, 5028},
+	{0x2F910, 0, 1, 5067},
+	{0x2F911, 0, 1, 5068},
 	{0x2F912, 0, 1 | DECOMP_INLINE, 0x6FC6},
 	{0x2F913, 0, 1 | DECOMP_INLINE, 0x7039},
 	{0x2F914, 0, 1 | DECOMP_INLINE, 0x701E},
@@ -6554,19 +6622,19 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F918, 0, 1 | DECOMP_INLINE, 0x707D},
 	{0x2F919, 0, 1 | DECOMP_INLINE, 0x7077},
 	{0x2F91A, 0, 1 | DECOMP_INLINE, 0x70AD},
-	{0x2F91B, 0, 1, 5029},
+	{0x2F91B, 0, 1, 5069},
 	{0x2F91C, 0, 1 | DECOMP_INLINE, 0x7145},
-	{0x2F91D, 0, 1, 5030},
+	{0x2F91D, 0, 1, 5070},
 	{0x2F91E, 0, 1 | DECOMP_INLINE, 0x719C},
-	{0x2F91F, 0, 1, 5031},
+	{0x2F91F, 0, 1, 5071},
 	{0x2F920, 0, 1 | DECOMP_INLINE, 0x7228},
 	{0x2F921, 0, 1 | DECOMP_INLINE, 0x7235},
 	{0x2F922, 0, 1 | DECOMP_INLINE, 0x7250},
-	{0x2F923, 0, 1, 5032},
+	{0x2F923, 0, 1, 5072},
 	{0x2F924, 0, 1 | DECOMP_INLINE, 0x7280},
 	{0x2F925, 0, 1 | DECOMP_INLINE, 0x7295},
-	{0x2F926, 0, 1, 5033},
-	{0x2F927, 0, 1, 5034},
+	{0x2F926, 0, 1, 5073},
+	{0x2F927, 0, 1, 5074},
 	{0x2F928, 0, 1 | DECOMP_INLINE, 0x737A},
 	{0x2F929, 0, 1 | DECOMP_INLINE, 0x738B},
 	{0x2F92A, 0, 1 | DECOMP_INLINE, 0x3EAC},
@@ -6580,22 +6648,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F932, 0, 1 | DECOMP_INLINE, 0x74CA},
 	{0x2F933, 0, 1 | DECOMP_INLINE, 0x3F1B},
 	{0x2F934, 0, 1 | DECOMP_INLINE, 0x7524},
-	{0x2F935, 0, 1, 5035},
+	{0x2F935, 0, 1, 5075},
 	{0x2F936, 0, 1 | DECOMP_INLINE, 0x753E},
-	{0x2F937, 0, 1, 5036},
+	{0x2F937, 0, 1, 5076},
 	{0x2F938, 0, 1 | DECOMP_INLINE, 0x7570},
-	{0x2F939, 0, 1, 5037},
+	{0x2F939, 0, 1, 5077},
 	{0x2F93A, 0, 1 | DECOMP_INLINE, 0x7610},
-	{0x2F93B, 0, 1, 5038},
-	{0x2F93C, 0, 1, 5039},
-	{0x2F93D, 0, 1, 5040},
+	{0x2F93B, 0, 1, 5078},
+	{0x2F93C, 0, 1, 5079},
+	{0x2F93D, 0, 1, 5080},
 	{0x2F93E, 0, 1 | DECOMP_INLINE, 0x3FFC},
 	{0x2F93F, 0, 1 | DECOMP_INLINE, 0x4008},
 	{0x2F940, 0, 1 | DECOMP_INLINE, 0x76F4},
-	{0x2F941, 0, 1, 5041},
-	{0x2F942, 0, 1, 5042},
-	{0x2F943, 0, 1, 5043},
-	{0x2F944, 0, 1, 5044},
+	{0x2F941, 0, 1, 5081},
+	{0x2F942, 0, 1, 5082},
+	{0x2F943, 0, 1, 5083},
+	{0x2F944, 0, 1, 5084},
 	{0x2F945, 0, 1 | DECOMP_INLINE, 0x771E},
 	{0x2F946, 0, 1 | DECOMP_INLINE, 0x771F},
 	{0x2F947, 0, 1 | DECOMP_INLINE, 0x771F},
@@ -6604,68 +6672,68 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F94A, 0, 1 | DECOMP_INLINE, 0x778B},
 	{0x2F94B, 0, 1 | DECOMP_INLINE, 0x4046},
 	{0x2F94C, 0, 1 | DECOMP_INLINE, 0x4096},
-	{0x2F94D, 0, 1, 5045},
+	{0x2F94D, 0, 1, 5085},
 	{0x2F94E, 0, 1 | DECOMP_INLINE, 0x784E},
 	{0x2F94F, 0, 1 | DECOMP_INLINE, 0x788C},
 	{0x2F950, 0, 1 | DECOMP_INLINE, 0x78CC},
 	{0x2F951, 0, 1 | DECOMP_INLINE, 0x40E3},
-	{0x2F952, 0, 1, 5046},
+	{0x2F952, 0, 1, 5086},
 	{0x2F953, 0, 1 | DECOMP_INLINE, 0x7956},
-	{0x2F954, 0, 1, 5047},
-	{0x2F955, 0, 1, 5048},
+	{0x2F954, 0, 1, 5087},
+	{0x2F955, 0, 1, 5088},
 	{0x2F956, 0, 1 | DECOMP_INLINE, 0x798F},
 	{0x2F957, 0, 1 | DECOMP_INLINE, 0x79EB},
 	{0x2F958, 0, 1 | DECOMP_INLINE, 0x412F},
 	{0x2F959, 0, 1 | DECOMP_INLINE, 0x7A40},
 	{0x2F95A, 0, 1 | DECOMP_INLINE, 0x7A4A},
 	{0x2F95B, 0, 1 | DECOMP_INLINE, 0x7A4F},
-	{0x2F95C, 0, 1, 5049},
-	{0x2F95D, 0, 1, 5050},
-	{0x2F95E, 0, 1, 5051},
+	{0x2F95C, 0, 1, 5089},
+	{0x2F95D, 0, 1, 5090},
+	{0x2F95E, 0, 1, 5091},
 	{0x2F95F, 0, 1 | DECOMP_INLINE, 0x7AEE},
 	{0x2F960, 0, 1 | DECOMP_INLINE, 0x4202},
-	{0x2F961, 0, 1, 5052},
+	{0x2F961, 0, 1, 5092},
 	{0x2F962, 0, 1 | DECOMP_INLINE, 0x7BC6},
 	{0x2F963, 0, 1 | DECOMP_INLINE, 0x7BC9},
 	{0x2F964, 0, 1 | DECOMP_INLINE, 0x4227},
-	{0x2F965, 0, 1, 5053},
+	{0x2F965, 0, 1, 5093},
 	{0x2F966, 0, 1 | DECOMP_INLINE, 0x7CD2},
 	{0x2F967, 0, 1 | DECOMP_INLINE, 0x42A0},
 	{0x2F968, 0, 1 | DECOMP_INLINE, 0x7CE8},
 	{0x2F969, 0, 1 | DECOMP_INLINE, 0x7CE3},
 	{0x2F96A, 0, 1 | DECOMP_INLINE, 0x7D00},
-	{0x2F96B, 0, 1, 5054},
+	{0x2F96B, 0, 1, 5094},
 	{0x2F96C, 0, 1 | DECOMP_INLINE, 0x7D63},
 	{0x2F96D, 0, 1 | DECOMP_INLINE, 0x4301},
 	{0x2F96E, 0, 1 | DECOMP_INLINE, 0x7DC7},
 	{0x2F96F, 0, 1 | DECOMP_INLINE, 0x7E02},
 	{0x2F970, 0, 1 | DECOMP_INLINE, 0x7E45},
 	{0x2F971, 0, 1 | DECOMP_INLINE, 0x4334},
-	{0x2F972, 0, 1, 5055},
-	{0x2F973, 0, 1, 5056},
+	{0x2F972, 0, 1, 5095},
+	{0x2F973, 0, 1, 5096},
 	{0x2F974, 0, 1 | DECOMP_INLINE, 0x4359},
-	{0x2F975, 0, 1, 5057},
+	{0x2F975, 0, 1, 5097},
 	{0x2F976, 0, 1 | DECOMP_INLINE, 0x7F7A},
-	{0x2F977, 0, 1, 5058},
+	{0x2F977, 0, 1, 5098},
 	{0x2F978, 0, 1 | DECOMP_INLINE, 0x7F95},
 	{0x2F979, 0, 1 | DECOMP_INLINE, 0x7FFA},
 	{0x2F97A, 0, 1 | DECOMP_INLINE, 0x8005},
-	{0x2F97B, 0, 1, 5059},
-	{0x2F97C, 0, 1, 5060},
+	{0x2F97B, 0, 1, 5099},
+	{0x2F97C, 0, 1, 5100},
 	{0x2F97D, 0, 1 | DECOMP_INLINE, 0x8060},
-	{0x2F97E, 0, 1, 5061},
+	{0x2F97E, 0, 1, 5101},
 	{0x2F97F, 0, 1 | DECOMP_INLINE, 0x8070},
-	{0x2F980, 0, 1, 5062},
+	{0x2F980, 0, 1, 5102},
 	{0x2F981, 0, 1 | DECOMP_INLINE, 0x43D5},
 	{0x2F982, 0, 1 | DECOMP_INLINE, 0x80B2},
 	{0x2F983, 0, 1 | DECOMP_INLINE, 0x8103},
 	{0x2F984, 0, 1 | DECOMP_INLINE, 0x440B},
 	{0x2F985, 0, 1 | DECOMP_INLINE, 0x813E},
 	{0x2F986, 0, 1 | DECOMP_INLINE, 0x5AB5},
-	{0x2F987, 0, 1, 5063},
-	{0x2F988, 0, 1, 5064},
-	{0x2F989, 0, 1, 5065},
-	{0x2F98A, 0, 1, 5066},
+	{0x2F987, 0, 1, 5103},
+	{0x2F988, 0, 1, 5104},
+	{0x2F989, 0, 1, 5105},
+	{0x2F98A, 0, 1, 5106},
 	{0x2F98B, 0, 1 | DECOMP_INLINE, 0x8201},
 	{0x2F98C, 0, 1 | DECOMP_INLINE, 0x8204},
 	{0x2F98D, 0, 1 | DECOMP_INLINE, 0x8F9E},
@@ -6678,7 +6746,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F994, 0, 1 | DECOMP_INLINE, 0x82B3},
 	{0x2F995, 0, 1 | DECOMP_INLINE, 0x82BD},
 	{0x2F996, 0, 1 | DECOMP_INLINE, 0x82E6},
-	{0x2F997, 0, 1, 5067},
+	{0x2F997, 0, 1, 5107},
 	{0x2F998, 0, 1 | DECOMP_INLINE, 0x82E5},
 	{0x2F999, 0, 1 | DECOMP_INLINE, 0x831D},
 	{0x2F99A, 0, 1 | DECOMP_INLINE, 0x8363},
@@ -6691,20 +6759,20 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F9A1, 0, 1 | DECOMP_INLINE, 0x83CA},
 	{0x2F9A2, 0, 1 | DECOMP_INLINE, 0x83CC},
 	{0x2F9A3, 0, 1 | DECOMP_INLINE, 0x83DC},
-	{0x2F9A4, 0, 1, 5068},
-	{0x2F9A5, 0, 1, 5069},
-	{0x2F9A6, 0, 1, 5070},
+	{0x2F9A4, 0, 1, 5108},
+	{0x2F9A5, 0, 1, 5109},
+	{0x2F9A6, 0, 1, 5110},
 	{0x2F9A7, 0, 1 | DECOMP_INLINE, 0x452B},
 	{0x2F9A8, 0, 1 | DECOMP_INLINE, 0x84F1},
 	{0x2F9A9, 0, 1 | DECOMP_INLINE, 0x84F3},
 	{0x2F9AA, 0, 1 | DECOMP_INLINE, 0x8516},
-	{0x2F9AB, 0, 1, 5071},
+	{0x2F9AB, 0, 1, 5111},
 	{0x2F9AC, 0, 1 | DECOMP_INLINE, 0x8564},
-	{0x2F9AD, 0, 1, 5072},
+	{0x2F9AD, 0, 1, 5112},
 	{0x2F9AE, 0, 1 | DECOMP_INLINE, 0x455D},
 	{0x2F9AF, 0, 1 | DECOMP_INLINE, 0x4561},
-	{0x2F9B0, 0, 1, 5073},
-	{0x2F9B1, 0, 1, 5074},
+	{0x2F9B0, 0, 1, 5113},
+	{0x2F9B1, 0, 1, 5114},
 	{0x2F9B2, 0, 1 | DECOMP_INLINE, 0x456B},
 	{0x2F9B3, 0, 1 | DECOMP_INLINE, 0x8650},
 	{0x2F9B4, 0, 1 | DECOMP_INLINE, 0x865C},
@@ -6724,39 +6792,39 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F9C2, 0, 1 | DECOMP_INLINE, 0x45F9},
 	{0x2F9C3, 0, 1 | DECOMP_INLINE, 0x8860},
 	{0x2F9C4, 0, 1 | DECOMP_INLINE, 0x8863},
-	{0x2F9C5, 0, 1, 5075},
+	{0x2F9C5, 0, 1, 5115},
 	{0x2F9C6, 0, 1 | DECOMP_INLINE, 0x88D7},
 	{0x2F9C7, 0, 1 | DECOMP_INLINE, 0x88DE},
 	{0x2F9C8, 0, 1 | DECOMP_INLINE, 0x4635},
 	{0x2F9C9, 0, 1 | DECOMP_INLINE, 0x88FA},
 	{0x2F9CA, 0, 1 | DECOMP_INLINE, 0x34BB},
-	{0x2F9CB, 0, 1, 5076},
-	{0x2F9CC, 0, 1, 5077},
+	{0x2F9CB, 0, 1, 5116},
+	{0x2F9CC, 0, 1, 5117},
 	{0x2F9CD, 0, 1 | DECOMP_INLINE, 0x46BE},
 	{0x2F9CE, 0, 1 | DECOMP_INLINE, 0x46C7},
 	{0x2F9CF, 0, 1 | DECOMP_INLINE, 0x8AA0},
 	{0x2F9D0, 0, 1 | DECOMP_INLINE, 0x8AED},
 	{0x2F9D1, 0, 1 | DECOMP_INLINE, 0x8B8A},
 	{0x2F9D2, 0, 1 | DECOMP_INLINE, 0x8C55},
-	{0x2F9D3, 0, 1, 5078},
+	{0x2F9D3, 0, 1, 5118},
 	{0x2F9D4, 0, 1 | DECOMP_INLINE, 0x8CAB},
 	{0x2F9D5, 0, 1 | DECOMP_INLINE, 0x8CC1},
 	{0x2F9D6, 0, 1 | DECOMP_INLINE, 0x8D1B},
 	{0x2F9D7, 0, 1 | DECOMP_INLINE, 0x8D77},
-	{0x2F9D8, 0, 1, 5079},
-	{0x2F9D9, 0, 1, 5080},
+	{0x2F9D8, 0, 1, 5119},
+	{0x2F9D9, 0, 1, 5120},
 	{0x2F9DA, 0, 1 | DECOMP_INLINE, 0x8DCB},
 	{0x2F9DB, 0, 1 | DECOMP_INLINE, 0x8DBC},
 	{0x2F9DC, 0, 1 | DECOMP_INLINE, 0x8DF0},
-	{0x2F9DD, 0, 1, 5081},
+	{0x2F9DD, 0, 1, 5121},
 	{0x2F9DE, 0, 1 | DECOMP_INLINE, 0x8ED4},
 	{0x2F9DF, 0, 1 | DECOMP_INLINE, 0x8F38},
-	{0x2F9E0, 0, 1, 5082},
-	{0x2F9E1, 0, 1, 5083},
+	{0x2F9E0, 0, 1, 5122},
+	{0x2F9E1, 0, 1, 5123},
 	{0x2F9E2, 0, 1 | DECOMP_INLINE, 0x9094},
 	{0x2F9E3, 0, 1 | DECOMP_INLINE, 0x90F1},
 	{0x2F9E4, 0, 1 | DECOMP_INLINE, 0x9111},
-	{0x2F9E5, 0, 1, 5084},
+	{0x2F9E5, 0, 1, 5124},
 	{0x2F9E6, 0, 1 | DECOMP_INLINE, 0x911B},
 	{0x2F9E7, 0, 1 | DECOMP_INLINE, 0x9238},
 	{0x2F9E8, 0, 1 | DECOMP_INLINE, 0x92D7},
@@ -6764,27 +6832,27 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2F9EA, 0, 1 | DECOMP_INLINE, 0x927C},
 	{0x2F9EB, 0, 1 | DECOMP_INLINE, 0x93F9},
 	{0x2F9EC, 0, 1 | DECOMP_INLINE, 0x9415},
-	{0x2F9ED, 0, 1, 5085},
+	{0x2F9ED, 0, 1, 5125},
 	{0x2F9EE, 0, 1 | DECOMP_INLINE, 0x958B},
 	{0x2F9EF, 0, 1 | DECOMP_INLINE, 0x4995},
 	{0x2F9F0, 0, 1 | DECOMP_INLINE, 0x95B7},
-	{0x2F9F1, 0, 1, 5086},
+	{0x2F9F1, 0, 1, 5126},
 	{0x2F9F2, 0, 1 | DECOMP_INLINE, 0x49E6},
 	{0x2F9F3, 0, 1 | DECOMP_INLINE, 0x96C3},
 	{0x2F9F4, 0, 1 | DECOMP_INLINE, 0x5DB2},
 	{0x2F9F5, 0, 1 | DECOMP_INLINE, 0x9723},
-	{0x2F9F6, 0, 1, 5087},
-	{0x2F9F7, 0, 1, 5088},
+	{0x2F9F6, 0, 1, 5127},
+	{0x2F9F7, 0, 1, 5128},
 	{0x2F9F8, 0, 1 | DECOMP_INLINE, 0x4A6E},
 	{0x2F9F9, 0, 1 | DECOMP_INLINE, 0x4A76},
 	{0x2F9FA, 0, 1 | DECOMP_INLINE, 0x97E0},
-	{0x2F9FB, 0, 1, 5089},
+	{0x2F9FB, 0, 1, 5129},
 	{0x2F9FC, 0, 1 | DECOMP_INLINE, 0x4AB2},
-	{0x2F9FD, 0, 1, 5090},
+	{0x2F9FD, 0, 1, 5130},
 	{0x2F9FE, 0, 1 | DECOMP_INLINE, 0x980B},
 	{0x2F9FF, 0, 1 | DECOMP_INLINE, 0x980B},
 	{0x2FA00, 0, 1 | DECOMP_INLINE, 0x9829},
-	{0x2FA01, 0, 1, 5091},
+	{0x2FA01, 0, 1, 5131},
 	{0x2FA02, 0, 1 | DECOMP_INLINE, 0x98E2},
 	{0x2FA03, 0, 1 | DECOMP_INLINE, 0x4B33},
 	{0x2FA04, 0, 1 | DECOMP_INLINE, 0x9929},
@@ -6792,18 +6860,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2FA06, 0, 1 | DECOMP_INLINE, 0x99C2},
 	{0x2FA07, 0, 1 | DECOMP_INLINE, 0x99FE},
 	{0x2FA08, 0, 1 | DECOMP_INLINE, 0x4BCE},
-	{0x2FA09, 0, 1, 5092},
+	{0x2FA09, 0, 1, 5132},
 	{0x2FA0A, 0, 1 | DECOMP_INLINE, 0x9B12},
 	{0x2FA0B, 0, 1 | DECOMP_INLINE, 0x9C40},
 	{0x2FA0C, 0, 1 | DECOMP_INLINE, 0x9CFD},
 	{0x2FA0D, 0, 1 | DECOMP_INLINE, 0x4CCE},
 	{0x2FA0E, 0, 1 | DECOMP_INLINE, 0x4CED},
 	{0x2FA0F, 0, 1 | DECOMP_INLINE, 0x9D67},
-	{0x2FA10, 0, 1, 5093},
+	{0x2FA10, 0, 1, 5133},
 	{0x2FA11, 0, 1 | DECOMP_INLINE, 0x4CF8},
-	{0x2FA12, 0, 1, 5094},
-	{0x2FA13, 0, 1, 5095},
-	{0x2FA14, 0, 1, 5096},
+	{0x2FA12, 0, 1, 5134},
+	{0x2FA13, 0, 1, 5135},
+	{0x2FA14, 0, 1, 5136},
 	{0x2FA15, 0, 1 | DECOMP_INLINE, 0x9EBB},
 	{0x2FA16, 0, 1 | DECOMP_INLINE, 0x4D56},
 	{0x2FA17, 0, 1 | DECOMP_INLINE, 0x9EF9},
@@ -6812,12 +6880,12 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] =
 	{0x2FA1A, 0, 1 | DECOMP_INLINE, 0x9F0F},
 	{0x2FA1B, 0, 1 | DECOMP_INLINE, 0x9F16},
 	{0x2FA1C, 0, 1 | DECOMP_INLINE, 0x9F3B},
-	{0x2FA1D, 0, 1, 5097}
+	{0x2FA1D, 0, 1, 5137}
 
 };
 
 /* codepoints array  */
-static const uint32 UnicodeDecomp_codepoints[5098] =
+static const uint32 UnicodeDecomp_codepoints[5138] =
 {
 	 /* 0 */ 0x0020, 0x0308,
 	 /* 2 */ 0x0020, 0x0304,
@@ -8913,202 +8981,222 @@ static const uint32 UnicodeDecomp_codepoints[5098] =
 	 /* 4770 */ 0x0644, 0x0625,
 	 /* 4772 */ 0x0644, 0x0627,
 	 /* 4774 */ 0x0644, 0x0627,
-	 /* 4776 */ 0x1DF04,
-	 /* 4777 */ 0x1DF05,
-	 /* 4778 */ 0x1DF06,
-	 /* 4779 */ 0x1DF08,
-	 /* 4780 */ 0x1DF0A,
-	 /* 4781 */ 0x1DF1E,
-	 /* 4782 */ 0x11099, 0x110BA,
-	 /* 4784 */ 0x1109B, 0x110BA,
-	 /* 4786 */ 0x110A5, 0x110BA,
-	 /* 4788 */ 0x11131, 0x11127,
-	 /* 4790 */ 0x11132, 0x11127,
-	 /* 4792 */ 0x11347, 0x1133E,
-	 /* 4794 */ 0x11347, 0x11357,
-	 /* 4796 */ 0x114B9, 0x114BA,
-	 /* 4798 */ 0x114B9, 0x114B0,
-	 /* 4800 */ 0x114B9, 0x114BD,
-	 /* 4802 */ 0x115B8, 0x115AF,
-	 /* 4804 */ 0x115B9, 0x115AF,
-	 /* 4806 */ 0x11935, 0x11930,
-	 /* 4808 */ 0x1D157, 0x1D165,
-	 /* 4810 */ 0x1D158, 0x1D165,
-	 /* 4812 */ 0x1D15F, 0x1D16E,
-	 /* 4814 */ 0x1D15F, 0x1D16F,
-	 /* 4816 */ 0x1D15F, 0x1D170,
-	 /* 4818 */ 0x1D15F, 0x1D171,
-	 /* 4820 */ 0x1D15F, 0x1D172,
-	 /* 4822 */ 0x1D1B9, 0x1D165,
-	 /* 4824 */ 0x1D1BA, 0x1D165,
-	 /* 4826 */ 0x1D1BB, 0x1D16E,
-	 /* 4828 */ 0x1D1BC, 0x1D16E,
-	 /* 4830 */ 0x1D1BB, 0x1D16F,
-	 /* 4832 */ 0x1D1BC, 0x1D16F,
-	 /* 4834 */ 0x0030, 0x002E,
-	 /* 4836 */ 0x0030, 0x002C,
-	 /* 4838 */ 0x0031, 0x002C,
-	 /* 4840 */ 0x0032, 0x002C,
-	 /* 4842 */ 0x0033, 0x002C,
-	 /* 4844 */ 0x0034, 0x002C,
-	 /* 4846 */ 0x0035, 0x002C,
-	 /* 4848 */ 0x0036, 0x002C,
-	 /* 4850 */ 0x0037, 0x002C,
-	 /* 4852 */ 0x0038, 0x002C,
-	 /* 4854 */ 0x0039, 0x002C,
-	 /* 4856 */ 0x0028, 0x0041, 0x0029,
-	 /* 4859 */ 0x0028, 0x0042, 0x0029,
-	 /* 4862 */ 0x0028, 0x0043, 0x0029,
-	 /* 4865 */ 0x0028, 0x0044, 0x0029,
-	 /* 4868 */ 0x0028, 0x0045, 0x0029,
-	 /* 4871 */ 0x0028, 0x0046, 0x0029,
-	 /* 4874 */ 0x0028, 0x0047, 0x0029,
-	 /* 4877 */ 0x0028, 0x0048, 0x0029,
-	 /* 4880 */ 0x0028, 0x0049, 0x0029,
-	 /* 4883 */ 0x0028, 0x004A, 0x0029,
-	 /* 4886 */ 0x0028, 0x004B, 0x0029,
-	 /* 4889 */ 0x0028, 0x004C, 0x0029,
-	 /* 4892 */ 0x0028, 0x004D, 0x0029,
-	 /* 4895 */ 0x0028, 0x004E, 0x0029,
-	 /* 4898 */ 0x0028, 0x004F, 0x0029,
-	 /* 4901 */ 0x0028, 0x0050, 0x0029,
-	 /* 4904 */ 0x0028, 0x0051, 0x0029,
-	 /* 4907 */ 0x0028, 0x0052, 0x0029,
-	 /* 4910 */ 0x0028, 0x0053, 0x0029,
-	 /* 4913 */ 0x0028, 0x0054, 0x0029,
-	 /* 4916 */ 0x0028, 0x0055, 0x0029,
-	 /* 4919 */ 0x0028, 0x0056, 0x0029,
-	 /* 4922 */ 0x0028, 0x0057, 0x0029,
-	 /* 4925 */ 0x0028, 0x0058, 0x0029,
-	 /* 4928 */ 0x0028, 0x0059, 0x0029,
-	 /* 4931 */ 0x0028, 0x005A, 0x0029,
-	 /* 4934 */ 0x3014, 0x0053, 0x3015,
-	 /* 4937 */ 0x0043, 0x0044,
-	 /* 4939 */ 0x0057, 0x005A,
-	 /* 4941 */ 0x0048, 0x0056,
-	 /* 4943 */ 0x004D, 0x0056,
-	 /* 4945 */ 0x0053, 0x0044,
-	 /* 4947 */ 0x0053, 0x0053,
-	 /* 4949 */ 0x0050, 0x0050, 0x0056,
-	 /* 4952 */ 0x0057, 0x0043,
-	 /* 4954 */ 0x004D, 0x0043,
-	 /* 4956 */ 0x004D, 0x0044,
-	 /* 4958 */ 0x004D, 0x0052,
-	 /* 4960 */ 0x0044, 0x004A,
-	 /* 4962 */ 0x307B, 0x304B,
-	 /* 4964 */ 0x30B3, 0x30B3,
-	 /* 4966 */ 0x3014, 0x672C, 0x3015,
-	 /* 4969 */ 0x3014, 0x4E09, 0x3015,
-	 /* 4972 */ 0x3014, 0x4E8C, 0x3015,
-	 /* 4975 */ 0x3014, 0x5B89, 0x3015,
-	 /* 4978 */ 0x3014, 0x70B9, 0x3015,
-	 /* 4981 */ 0x3014, 0x6253, 0x3015,
-	 /* 4984 */ 0x3014, 0x76D7, 0x3015,
-	 /* 4987 */ 0x3014, 0x52DD, 0x3015,
-	 /* 4990 */ 0x3014, 0x6557, 0x3015,
-	 /* 4993 */ 0x20122,
-	 /* 4994 */ 0x2063A,
-	 /* 4995 */ 0x2051C,
-	 /* 4996 */ 0x2054B,
-	 /* 4997 */ 0x291DF,
-	 /* 4998 */ 0x20A2C,
-	 /* 4999 */ 0x20B63,
-	 /* 5000 */ 0x214E4,
-	 /* 5001 */ 0x216A8,
-	 /* 5002 */ 0x216EA,
-	 /* 5003 */ 0x219C8,
-	 /* 5004 */ 0x21B18,
-	 /* 5005 */ 0x21DE4,
-	 /* 5006 */ 0x21DE6,
-	 /* 5007 */ 0x22183,
-	 /* 5008 */ 0x2A392,
-	 /* 5009 */ 0x22331,
-	 /* 5010 */ 0x22331,
-	 /* 5011 */ 0x232B8,
-	 /* 5012 */ 0x261DA,
-	 /* 5013 */ 0x226D4,
-	 /* 5014 */ 0x22B0C,
-	 /* 5015 */ 0x22BF1,
-	 /* 5016 */ 0x2300A,
-	 /* 5017 */ 0x233C3,
-	 /* 5018 */ 0x2346D,
-	 /* 5019 */ 0x236A3,
-	 /* 5020 */ 0x238A7,
-	 /* 5021 */ 0x23A8D,
-	 /* 5022 */ 0x21D0B,
-	 /* 5023 */ 0x23AFA,
-	 /* 5024 */ 0x23CBC,
-	 /* 5025 */ 0x23D1E,
-	 /* 5026 */ 0x23ED1,
-	 /* 5027 */ 0x23F5E,
-	 /* 5028 */ 0x23F8E,
-	 /* 5029 */ 0x20525,
-	 /* 5030 */ 0x24263,
-	 /* 5031 */ 0x243AB,
-	 /* 5032 */ 0x24608,
-	 /* 5033 */ 0x24735,
-	 /* 5034 */ 0x24814,
-	 /* 5035 */ 0x24C36,
-	 /* 5036 */ 0x24C92,
-	 /* 5037 */ 0x2219F,
-	 /* 5038 */ 0x24FA1,
-	 /* 5039 */ 0x24FB8,
-	 /* 5040 */ 0x25044,
-	 /* 5041 */ 0x250F3,
-	 /* 5042 */ 0x250F2,
-	 /* 5043 */ 0x25119,
-	 /* 5044 */ 0x25133,
-	 /* 5045 */ 0x2541D,
-	 /* 5046 */ 0x25626,
-	 /* 5047 */ 0x2569A,
-	 /* 5048 */ 0x256C5,
-	 /* 5049 */ 0x2597C,
-	 /* 5050 */ 0x25AA7,
-	 /* 5051 */ 0x25AA7,
-	 /* 5052 */ 0x25BAB,
-	 /* 5053 */ 0x25C80,
-	 /* 5054 */ 0x25F86,
-	 /* 5055 */ 0x26228,
-	 /* 5056 */ 0x26247,
-	 /* 5057 */ 0x262D9,
-	 /* 5058 */ 0x2633E,
-	 /* 5059 */ 0x264DA,
-	 /* 5060 */ 0x26523,
-	 /* 5061 */ 0x265A8,
-	 /* 5062 */ 0x2335F,
-	 /* 5063 */ 0x267A7,
-	 /* 5064 */ 0x267B5,
-	 /* 5065 */ 0x23393,
-	 /* 5066 */ 0x2339C,
-	 /* 5067 */ 0x26B3C,
-	 /* 5068 */ 0x26C36,
-	 /* 5069 */ 0x26D6B,
-	 /* 5070 */ 0x26CD5,
-	 /* 5071 */ 0x273CA,
-	 /* 5072 */ 0x26F2C,
-	 /* 5073 */ 0x26FB1,
-	 /* 5074 */ 0x270D2,
-	 /* 5075 */ 0x27667,
-	 /* 5076 */ 0x278AE,
-	 /* 5077 */ 0x27966,
-	 /* 5078 */ 0x27CA8,
-	 /* 5079 */ 0x27F2F,
-	 /* 5080 */ 0x20804,
-	 /* 5081 */ 0x208DE,
-	 /* 5082 */ 0x285D2,
-	 /* 5083 */ 0x285ED,
-	 /* 5084 */ 0x2872E,
-	 /* 5085 */ 0x28BFA,
-	 /* 5086 */ 0x28D77,
-	 /* 5087 */ 0x29145,
-	 /* 5088 */ 0x2921A,
-	 /* 5089 */ 0x2940A,
-	 /* 5090 */ 0x29496,
-	 /* 5091 */ 0x295B6,
-	 /* 5092 */ 0x29B30,
-	 /* 5093 */ 0x2A0CE,
-	 /* 5094 */ 0x2A105,
-	 /* 5095 */ 0x2A20E,
-	 /* 5096 */ 0x2A291,
-	 /* 5097 */ 0x2A600
+	 /* 4776 */ 0x105D2, 0x0307,
+	 /* 4778 */ 0x105DA, 0x0307,
+	 /* 4780 */ 0x1DF04,
+	 /* 4781 */ 0x1DF05,
+	 /* 4782 */ 0x1DF06,
+	 /* 4783 */ 0x1DF08,
+	 /* 4784 */ 0x1DF0A,
+	 /* 4785 */ 0x1DF1E,
+	 /* 4786 */ 0x11099, 0x110BA,
+	 /* 4788 */ 0x1109B, 0x110BA,
+	 /* 4790 */ 0x110A5, 0x110BA,
+	 /* 4792 */ 0x11131, 0x11127,
+	 /* 4794 */ 0x11132, 0x11127,
+	 /* 4796 */ 0x11347, 0x1133E,
+	 /* 4798 */ 0x11347, 0x11357,
+	 /* 4800 */ 0x11382, 0x113C9,
+	 /* 4802 */ 0x11384, 0x113BB,
+	 /* 4804 */ 0x1138B, 0x113C2,
+	 /* 4806 */ 0x11390, 0x113C9,
+	 /* 4808 */ 0x113C2, 0x113C2,
+	 /* 4810 */ 0x113C2, 0x113B8,
+	 /* 4812 */ 0x113C2, 0x113C9,
+	 /* 4814 */ 0x114B9, 0x114BA,
+	 /* 4816 */ 0x114B9, 0x114B0,
+	 /* 4818 */ 0x114B9, 0x114BD,
+	 /* 4820 */ 0x115B8, 0x115AF,
+	 /* 4822 */ 0x115B9, 0x115AF,
+	 /* 4824 */ 0x11935, 0x11930,
+	 /* 4826 */ 0x1611E, 0x1611E,
+	 /* 4828 */ 0x1611E, 0x16129,
+	 /* 4830 */ 0x1611E, 0x1611F,
+	 /* 4832 */ 0x16129, 0x1611F,
+	 /* 4834 */ 0x1611E, 0x16120,
+	 /* 4836 */ 0x16121, 0x1611F,
+	 /* 4838 */ 0x16122, 0x1611F,
+	 /* 4840 */ 0x16121, 0x16120,
+	 /* 4842 */ 0x16D67, 0x16D67,
+	 /* 4844 */ 0x16D63, 0x16D67,
+	 /* 4846 */ 0x16D69, 0x16D67,
+	 /* 4848 */ 0x1D157, 0x1D165,
+	 /* 4850 */ 0x1D158, 0x1D165,
+	 /* 4852 */ 0x1D15F, 0x1D16E,
+	 /* 4854 */ 0x1D15F, 0x1D16F,
+	 /* 4856 */ 0x1D15F, 0x1D170,
+	 /* 4858 */ 0x1D15F, 0x1D171,
+	 /* 4860 */ 0x1D15F, 0x1D172,
+	 /* 4862 */ 0x1D1B9, 0x1D165,
+	 /* 4864 */ 0x1D1BA, 0x1D165,
+	 /* 4866 */ 0x1D1BB, 0x1D16E,
+	 /* 4868 */ 0x1D1BC, 0x1D16E,
+	 /* 4870 */ 0x1D1BB, 0x1D16F,
+	 /* 4872 */ 0x1D1BC, 0x1D16F,
+	 /* 4874 */ 0x0030, 0x002E,
+	 /* 4876 */ 0x0030, 0x002C,
+	 /* 4878 */ 0x0031, 0x002C,
+	 /* 4880 */ 0x0032, 0x002C,
+	 /* 4882 */ 0x0033, 0x002C,
+	 /* 4884 */ 0x0034, 0x002C,
+	 /* 4886 */ 0x0035, 0x002C,
+	 /* 4888 */ 0x0036, 0x002C,
+	 /* 4890 */ 0x0037, 0x002C,
+	 /* 4892 */ 0x0038, 0x002C,
+	 /* 4894 */ 0x0039, 0x002C,
+	 /* 4896 */ 0x0028, 0x0041, 0x0029,
+	 /* 4899 */ 0x0028, 0x0042, 0x0029,
+	 /* 4902 */ 0x0028, 0x0043, 0x0029,
+	 /* 4905 */ 0x0028, 0x0044, 0x0029,
+	 /* 4908 */ 0x0028, 0x0045, 0x0029,
+	 /* 4911 */ 0x0028, 0x0046, 0x0029,
+	 /* 4914 */ 0x0028, 0x0047, 0x0029,
+	 /* 4917 */ 0x0028, 0x0048, 0x0029,
+	 /* 4920 */ 0x0028, 0x0049, 0x0029,
+	 /* 4923 */ 0x0028, 0x004A, 0x0029,
+	 /* 4926 */ 0x0028, 0x004B, 0x0029,
+	 /* 4929 */ 0x0028, 0x004C, 0x0029,
+	 /* 4932 */ 0x0028, 0x004D, 0x0029,
+	 /* 4935 */ 0x0028, 0x004E, 0x0029,
+	 /* 4938 */ 0x0028, 0x004F, 0x0029,
+	 /* 4941 */ 0x0028, 0x0050, 0x0029,
+	 /* 4944 */ 0x0028, 0x0051, 0x0029,
+	 /* 4947 */ 0x0028, 0x0052, 0x0029,
+	 /* 4950 */ 0x0028, 0x0053, 0x0029,
+	 /* 4953 */ 0x0028, 0x0054, 0x0029,
+	 /* 4956 */ 0x0028, 0x0055, 0x0029,
+	 /* 4959 */ 0x0028, 0x0056, 0x0029,
+	 /* 4962 */ 0x0028, 0x0057, 0x0029,
+	 /* 4965 */ 0x0028, 0x0058, 0x0029,
+	 /* 4968 */ 0x0028, 0x0059, 0x0029,
+	 /* 4971 */ 0x0028, 0x005A, 0x0029,
+	 /* 4974 */ 0x3014, 0x0053, 0x3015,
+	 /* 4977 */ 0x0043, 0x0044,
+	 /* 4979 */ 0x0057, 0x005A,
+	 /* 4981 */ 0x0048, 0x0056,
+	 /* 4983 */ 0x004D, 0x0056,
+	 /* 4985 */ 0x0053, 0x0044,
+	 /* 4987 */ 0x0053, 0x0053,
+	 /* 4989 */ 0x0050, 0x0050, 0x0056,
+	 /* 4992 */ 0x0057, 0x0043,
+	 /* 4994 */ 0x004D, 0x0043,
+	 /* 4996 */ 0x004D, 0x0044,
+	 /* 4998 */ 0x004D, 0x0052,
+	 /* 5000 */ 0x0044, 0x004A,
+	 /* 5002 */ 0x307B, 0x304B,
+	 /* 5004 */ 0x30B3, 0x30B3,
+	 /* 5006 */ 0x3014, 0x672C, 0x3015,
+	 /* 5009 */ 0x3014, 0x4E09, 0x3015,
+	 /* 5012 */ 0x3014, 0x4E8C, 0x3015,
+	 /* 5015 */ 0x3014, 0x5B89, 0x3015,
+	 /* 5018 */ 0x3014, 0x70B9, 0x3015,
+	 /* 5021 */ 0x3014, 0x6253, 0x3015,
+	 /* 5024 */ 0x3014, 0x76D7, 0x3015,
+	 /* 5027 */ 0x3014, 0x52DD, 0x3015,
+	 /* 5030 */ 0x3014, 0x6557, 0x3015,
+	 /* 5033 */ 0x20122,
+	 /* 5034 */ 0x2063A,
+	 /* 5035 */ 0x2051C,
+	 /* 5036 */ 0x2054B,
+	 /* 5037 */ 0x291DF,
+	 /* 5038 */ 0x20A2C,
+	 /* 5039 */ 0x20B63,
+	 /* 5040 */ 0x214E4,
+	 /* 5041 */ 0x216A8,
+	 /* 5042 */ 0x216EA,
+	 /* 5043 */ 0x219C8,
+	 /* 5044 */ 0x21B18,
+	 /* 5045 */ 0x21DE4,
+	 /* 5046 */ 0x21DE6,
+	 /* 5047 */ 0x22183,
+	 /* 5048 */ 0x2A392,
+	 /* 5049 */ 0x22331,
+	 /* 5050 */ 0x22331,
+	 /* 5051 */ 0x232B8,
+	 /* 5052 */ 0x261DA,
+	 /* 5053 */ 0x226D4,
+	 /* 5054 */ 0x22B0C,
+	 /* 5055 */ 0x22BF1,
+	 /* 5056 */ 0x2300A,
+	 /* 5057 */ 0x233C3,
+	 /* 5058 */ 0x2346D,
+	 /* 5059 */ 0x236A3,
+	 /* 5060 */ 0x238A7,
+	 /* 5061 */ 0x23A8D,
+	 /* 5062 */ 0x21D0B,
+	 /* 5063 */ 0x23AFA,
+	 /* 5064 */ 0x23CBC,
+	 /* 5065 */ 0x23D1E,
+	 /* 5066 */ 0x23ED1,
+	 /* 5067 */ 0x23F5E,
+	 /* 5068 */ 0x23F8E,
+	 /* 5069 */ 0x20525,
+	 /* 5070 */ 0x24263,
+	 /* 5071 */ 0x243AB,
+	 /* 5072 */ 0x24608,
+	 /* 5073 */ 0x24735,
+	 /* 5074 */ 0x24814,
+	 /* 5075 */ 0x24C36,
+	 /* 5076 */ 0x24C92,
+	 /* 5077 */ 0x2219F,
+	 /* 5078 */ 0x24FA1,
+	 /* 5079 */ 0x24FB8,
+	 /* 5080 */ 0x25044,
+	 /* 5081 */ 0x250F3,
+	 /* 5082 */ 0x250F2,
+	 /* 5083 */ 0x25119,
+	 /* 5084 */ 0x25133,
+	 /* 5085 */ 0x2541D,
+	 /* 5086 */ 0x25626,
+	 /* 5087 */ 0x2569A,
+	 /* 5088 */ 0x256C5,
+	 /* 5089 */ 0x2597C,
+	 /* 5090 */ 0x25AA7,
+	 /* 5091 */ 0x25AA7,
+	 /* 5092 */ 0x25BAB,
+	 /* 5093 */ 0x25C80,
+	 /* 5094 */ 0x25F86,
+	 /* 5095 */ 0x26228,
+	 /* 5096 */ 0x26247,
+	 /* 5097 */ 0x262D9,
+	 /* 5098 */ 0x2633E,
+	 /* 5099 */ 0x264DA,
+	 /* 5100 */ 0x26523,
+	 /* 5101 */ 0x265A8,
+	 /* 5102 */ 0x2335F,
+	 /* 5103 */ 0x267A7,
+	 /* 5104 */ 0x267B5,
+	 /* 5105 */ 0x23393,
+	 /* 5106 */ 0x2339C,
+	 /* 5107 */ 0x26B3C,
+	 /* 5108 */ 0x26C36,
+	 /* 5109 */ 0x26D6B,
+	 /* 5110 */ 0x26CD5,
+	 /* 5111 */ 0x273CA,
+	 /* 5112 */ 0x26F2C,
+	 /* 5113 */ 0x26FB1,
+	 /* 5114 */ 0x270D2,
+	 /* 5115 */ 0x27667,
+	 /* 5116 */ 0x278AE,
+	 /* 5117 */ 0x27966,
+	 /* 5118 */ 0x27CA8,
+	 /* 5119 */ 0x27F2F,
+	 /* 5120 */ 0x20804,
+	 /* 5121 */ 0x208DE,
+	 /* 5122 */ 0x285D2,
+	 /* 5123 */ 0x285ED,
+	 /* 5124 */ 0x2872E,
+	 /* 5125 */ 0x28BFA,
+	 /* 5126 */ 0x28D77,
+	 /* 5127 */ 0x29145,
+	 /* 5128 */ 0x2921A,
+	 /* 5129 */ 0x2940A,
+	 /* 5130 */ 0x29496,
+	 /* 5131 */ 0x295B6,
+	 /* 5132 */ 0x29B30,
+	 /* 5133 */ 0x2A0CE,
+	 /* 5134 */ 0x2A105,
+	 /* 5135 */ 0x2A20E,
+	 /* 5136 */ 0x2A291,
+	 /* 5137 */ 0x2A600
 };
diff --git a/src/include/common/unicode_normprops_table.h b/src/include/common/unicode_normprops_table.h
index 7a134055252..f1072c9f099 100644
--- a/src/include/common/unicode_normprops_table.h
+++ b/src/include/common/unicode_normprops_table.h
@@ -695,11 +695,32 @@ static const pg_unicode_normprops UnicodeNormProps_NFC_QC[] = {
 	{0x11127, UNICODE_NORM_QC_MAYBE},
 	{0x1133E, UNICODE_NORM_QC_MAYBE},
 	{0x11357, UNICODE_NORM_QC_MAYBE},
+	{0x113B8, UNICODE_NORM_QC_MAYBE},
+	{0x113BB, UNICODE_NORM_QC_MAYBE},
+	{0x113C2, UNICODE_NORM_QC_MAYBE},
+	{0x113C5, UNICODE_NORM_QC_MAYBE},
+	{0x113C7, UNICODE_NORM_QC_MAYBE},
+	{0x113C8, UNICODE_NORM_QC_MAYBE},
+	{0x113C9, UNICODE_NORM_QC_MAYBE},
 	{0x114B0, UNICODE_NORM_QC_MAYBE},
 	{0x114BA, UNICODE_NORM_QC_MAYBE},
 	{0x114BD, UNICODE_NORM_QC_MAYBE},
 	{0x115AF, UNICODE_NORM_QC_MAYBE},
 	{0x11930, UNICODE_NORM_QC_MAYBE},
+	{0x1611E, UNICODE_NORM_QC_MAYBE},
+	{0x1611F, UNICODE_NORM_QC_MAYBE},
+	{0x16120, UNICODE_NORM_QC_MAYBE},
+	{0x16121, UNICODE_NORM_QC_MAYBE},
+	{0x16122, UNICODE_NORM_QC_MAYBE},
+	{0x16123, UNICODE_NORM_QC_MAYBE},
+	{0x16124, UNICODE_NORM_QC_MAYBE},
+	{0x16125, UNICODE_NORM_QC_MAYBE},
+	{0x16126, UNICODE_NORM_QC_MAYBE},
+	{0x16127, UNICODE_NORM_QC_MAYBE},
+	{0x16128, UNICODE_NORM_QC_MAYBE},
+	{0x16129, UNICODE_NORM_QC_MAYBE},
+	{0x16D67, UNICODE_NORM_QC_MAYBE},
+	{0x16D68, UNICODE_NORM_QC_MAYBE},
 	{0x1D15E, UNICODE_NORM_QC_NO},
 	{0x1D15F, UNICODE_NORM_QC_NO},
 	{0x1D160, UNICODE_NORM_QC_NO},
@@ -1261,315 +1282,321 @@ static const pg_unicode_normprops UnicodeNormProps_NFC_QC[] = {
 static int
 NFC_QC_hash_func(const void *key)
 {
-	static const int16 h[2463] = {
-		0,     -2717, 0,     221,   1293,  223,   1295,  225,
-		226,   241,   0,     229,   230,   231,   0,     0,
+	static const int16 h[2505] = {
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
+		0,     32767, 32767, 32767, 32767, 0,     0,     32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 50,
+		32767, 32767, 32767, 32767, 51,    52,    32767, 53,
+		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,
+		668,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -713,
+		32767, 32767, 32767, 32767, 806,   687,   807,   -539,
+		808,   581,   581,   693,   -51,   695,   976,   977,
+		-281,  465,   980,   981,   982,   983,   984,   985,
+		986,   987,   988,   989,   990,   991,   992,   993,
+		994,   995,   996,   997,   998,   999,   1000,  1001,
+		1002,  1003,  -1155, -1155, -1155, 1007,  1008,  59,
+		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		-386,  0,     0,     0,     0,     0,     0,     0,
-		-163,  0,     0,     0,     0,     0,     0,     0,
+		0,     893,   1829,  1830,  1293,  1832,  1151,  0,
+		1154,  1837,  1156,  1157,  2760,  -135,  1842,  0,
+		0,     1847,  980,   1850,  0,     1853,  733,   975,
+		177,   1059,  1060,  1061,  644,   1867,  1064,  1065,
+		1066,  1067,  1068,  1069,  1070,  1882,  1072,  1884,
+		1885,  1088,  1887,  1077,  1089,  1079,  1080,  1896,
+		1897,  1083,  1900,  634,   1086,  665,   666,   0,
+		2100,  0,     1914,  -172,  -172,  -172,  -1307, -361,
+		-361,  1641,  -361,  -361,  -361,  -361,  -172,  1654,
+		0,     332,   0,     0,     0,     0,     0,     0,
+		0,     0,     0,     669,   0,     -132,  0,     0,
+		0,     0,     0,     0,     0,     670,   0,     0,
+		0,     0,     671,   0,     0,     0,     0,     672,
+		0,     0,     0,     0,     -78,   0,     -1541, 0,
+		0,     0,     0,     0,     0,     0,     1869,  0,
+		0,     674,   0,     0,     0,     0,     0,     0,
+		2046,  1092,  0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		-246,  -175,  1260,  0,     0,     0,     -174,  -173,
-		0,     -172,  0,     0,     0,     0,     0,     0,
-		1049,  0,     300,   301,   1071,  0,     1071,  0,
-		1071,  1071,  1057,  0,     0,     0,     0,     1061,
-		0,     -1053, 1664,  0,     2956,  0,     0,     -13,
-		0,     0,     0,     0,     2156,  0,     0,     0,
-		0,     0,     0,     0,     71,    0,     1082,  0,
-		1083,  1083,  0,     1084,  0,     0,     0,     0,
+		0,     0,     1116,  0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     359,   360,   361,
-		-1091, 363,   -762,  -130,  -129,  -128,  -127,  -126,
-		137,   -124,  -708,  -707,  -706,  -120,  -185,  -705,
-		-117,  -184,  -1307, -114,  -113,  -112,  -111,  0,
-		386,   387,   388,   389,   -90,   391,   171,   172,
-		394,   -94,   -183,  397,   398,   399,   -98,   -225,
-		402,   -1019, -636,  -1019, -225,  407,   408,   409,
-		410,   411,   674,   413,   -171,  -170,  -169,  417,
-		352,   -168,  420,   353,   -770,  423,   424,   425,
-		426,   427,   428,   32767, 239,   239,   239,   239,
-		239,   239,   239,   239,   239,   239,   239,   239,
-		239,   239,   32767, 32767, 237,   32767, 236,   32767,
-		32767, 234,   234,   234,   234,   617,   234,   234,
-		234,   -2483, 234,   -1430, 1526,  -1430, 1527,  47,
-		48,    471,   230,   32767, 32767, 32767, 227,   227,
-		227,   227,   227,   227,   227,   227,   227,   227,
-		227,   227,   227,   227,   227,   227,   227,   227,
-		-159,  227,   227,   227,   227,   227,   227,   227,
-		64,    227,   227,   227,   227,   227,   227,   227,
-		227,   227,   227,   227,   227,   227,   227,   227,
-		227,   227,   227,   227,   227,   227,   227,   227,
-		-19,   52,    1487,  227,   227,   227,   53,    54,
-		227,   55,    227,   227,   227,   227,   227,   227,
-		1276,  227,   -989,  32767, 1296,  225,   1296,  225,
-		1296,  1296,  1282,  225,   225,   225,   225,   1286,
-		225,   -828,  1889,  225,   3181,  225,   225,   212,
-		225,   225,   225,   225,   2381,  225,   225,   225,
-		225,   225,   225,   225,   296,   225,   1307,  225,
-		1308,  1308,  225,   1309,  225,   225,   225,   225,
-		225,   225,   225,   225,   225,   225,   225,   225,
-		225,   225,   225,   225,   225,   584,   585,   586,
-		-866,  588,   -537,  95,    96,    97,    98,    99,
-		362,   101,   -483,  -482,  -481,  105,   40,    -480,
-		108,   41,    -1082, 111,   112,   113,   114,   225,
-		611,   612,   613,   614,   135,   616,   396,   397,
-		619,   131,   42,    622,   623,   624,   127,   0,
-		627,   -794,  -411,  -794,  0,     632,   32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		-272,  32767, 32767, 32767, 0,     32767, 32767, 32767,
-		32767, 32767, -166,  -165,  32767, 32767, 32767, 32767,
-		-164,  0,     0,     0,     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, 397,   32767, 396,   32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 386,
-		0,     386,   386,   386,   386,   386,   386,   386,
-		223,   386,   386,   386,   32767, 385,   385,   385,
-		385,   385,   32767, 384,   32767, 383,   383,   32767,
-		382,   382,   32767, 381,   381,   381,   381,   381,
-		135,   206,   1641,  381,   32767, 32767, 32767, 32767,
-		32767, 32767, -160,  32767, 32767, 32767, 32767, 32767,
+		60,    32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -15,
+		61,    62,    32767, 32767, 32767, 32767, 63,    64,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 710,   57,    57,    713,
+		58,    58,    716,   692,   59,    693,   59,    59,
+		59,    59,    59,    59,    50,    50,    50,    50,
+		50,    50,    50,    50,    50,    50,    506,   857,
+		738,   858,   -488,  859,   632,   632,   744,   0,
+		746,   747,   748,   749,   750,   751,   752,   753,
+		754,   755,   756,   757,   758,   759,   760,   761,
+		762,   763,   764,   765,   766,   767,   768,   769,
+		770,   771,   772,   773,   774,   775,   776,   777,
+		778,   779,   780,   781,   782,   783,   784,   785,
+		786,   787,   788,   789,   790,   791,   792,   0,
+		0,     538,   0,     682,   0,     682,   0,     682,
+		682,   -920,  1976,  0,     0,     0,     0,     0,
+		0,     0,     0,     1121,  20,    682,   0,     682,
+		682,   1139,  0,     682,   682,   682,   1138,  825,
+		826,   827,   0,     811,   0,     0,     798,   0,
+		834,   835,   836,   837,   0,     0,     840,   0,
+		1267,  843,   844,   845,   846,   847,   848,   0,
+		850,   851,   822,   853,   854,   855,   856,   2290,
+		2291,  2292,  2293,  2105,  280,   863,   864,   865,
+		1839,  -410,  -410,  869,   870,   871,   872,   873,
+		874,   875,   876,   877,   878,   879,   880,   881,
+		882,   883,   884,   885,   0,     0,     2002,  0,
+		0,     0,     0,     893,   894,   895,   896,   897,
+		898,   899,   900,   901,   902,   903,   904,   905,
+		906,   907,   908,   158,   910,   911,   912,   913,
+		914,   915,   916,   917,   918,   0,     920,   921,
+		922,   923,   924,   925,   926,   927,   2063,  1118,
+		1119,  -882,  1121,  1122,  1123,  1124,  936,   937,
+		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,   963,   964,   965,   510,   160,   280,   161,
+		1508,  162,   390,   391,   280,   1025,  280,   0,
+		0,     1259,  514,   0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     2159,  2160,  2161,  0,     0,
+		950,   1010,  1011,  1012,  1013,  1014,  1015,  1016,
+		1017,  1018,  1019,  1020,  1021,  1022,  1023,  1024,
+		1025,  1026,  1027,  1028,  1029,  1030,  1031,  1032,
+		1033,  1034,  142,   -793,  -793,  -255,  -793,  -111,
+		1041,  -112,  -794,  -112,  -112,  -1714, 1182,  -794,
+		1049,  1050,  -796,  72,    -797,  1054,  -798,  323,
+		82,    881,   0,     0,     0,     418,   -804,  0,
+		0,     0,     0,     0,     0,     0,     -811,  0,
+		-811,  -811,  -13,   -811,  0,     -11,   0,     0,
+		-815,  -815,  0,     -816,  451,   0,     422,   422,
+		1089,  -1010, 1091,  -822,  1265,  1266,  1267,  2403,
+		1458,  1459,  -542,  1461,  1462,  1463,  1464,  1276,
+		-549,  1106,  775,   1108,  1109,  1110,  1111,  1112,
+		1113,  1114,  1115,  1116,  448,   1118,  1251,  1120,
+		1121,  1122,  1123,  1124,  1125,  1126,  457,   1128,
+		1129,  1130,  1131,  461,   1133,  1134,  1135,  1136,
+		465,   1138,  1139,  1140,  1141,  1220,  1143,  2685,
+		1145,  1146,  1147,  1148,  1149,  1150,  1151,  -717,
+		1153,  1154,  481,   1156,  1157,  1158,  1159,  1160,
+		1161,  -884,  71,    1164,  1165,  1166,  1167,  1168,
+		1169,  1170,  1171,  1172,  1173,  1174,  1175,  1176,
+		1177,  1178,  1179,  1180,  1181,  1182,  1183,  1184,
+		1185,  1186,  1187,  72,    1189,  1190,  1191,  1192,
+		1193,  1194,  1195,  1196,  1197,  1198,  1199,  1200,
+		1201,  1202,  1203,  1204,  1205,  1206,  1207,  1208,
+		1209,  1210,  1211,  1212,  1213,  1214,  1215,  1216,
+		1217,  1218,  1219,  1220,  1221,  32767, 1140,  342,
+		1224,  1225,  1226,  809,   2032,  1229,  1230,  1231,
+		1232,  1233,  1234,  1235,  2047,  1237,  2049,  2050,
+		1253,  2052,  1242,  1254,  1244,  1245,  2061,  2062,
+		1248,  2065,  799,   1251,  32767, 448,   32767, 448,
+		676,   677,   170,   32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 165,   32767, 32767, 32767,
+		166,   167,   32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 143,   32767, 144,
+		32767, -690,  32767, -691,  32767, 147,   73,    148,
+		32767, -694,  32767, -621,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 0,     32767, 657,   32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -755,
+		32767, 32767, -757,  32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 152,   32767, -768,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -964,
+		32767, 32767, 32767, 32767, 32767, 32767, 0,     -782,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -789,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -796,
+		32767, 32767, -798,  -798,  750,   0,     32767, 32767,
+		32767, 32767, 0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     830,   831,
+		832,   0,     0,     32767, 32767, 1125,  32767, 1126,
+		32767, 32767, 2047,  -848,  1129,  1130,  1131,  1132,
+		1133,  1134,  1135,  1136,  32767, 1117,  32767, 1138,
+		32767, 32767, 0,     1140,  32767, 32767, 32767, 0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     678,   0,     0,     0,     0,     0,     0,
+		0,     0,     0,     679,   0,     0,     680,   0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     32767, 32767, 0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     1343,  0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  211,   212,
+		-325,  214,   -467,  216,   -465,  218,   -463,  -462,
+		1141,  -1754, 223,   224,   225,   226,   227,   228,
+		229,   230,   -890,  212,   -449,  234,   -447,  -446,
+		-902,  238,   -443,  -442,  -441,  -896,  -582,  -582,
+		-582,  246,   -564,  248,   249,   -548,  251,   -582,
+		-582,  -582,  -582,  256,   257,   -582,  259,   -1007,
+		-582,  -582,  -582,  -582,  -582,  -582,  267,   -582,
+		-582,  -552,  -582,  -582,  -582,  -582,  -2015, -2015,
+		-2015, -2015, -1826, 0,     -582,  -582,  -582,  -1555,
+		695,   696,   -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  304,   305,   -1696, 307,   308,
+		309,   310,   -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  169,   -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  337,   -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -1717, -771,  -771,
+		1231,  -771,  -771,  -771,  -771,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -582,  -582,  -582,  -582,  -582,
+		-582,  -582,  -582,  -126,  225,   106,   226,   -1120,
+		227,   0,     0,     112,   -632,  114,   395,   396,
+		-862,  -116,  399,   400,   401,   402,   403,   404,
+		405,   406,   407,   408,   409,   410,   411,   412,
+		413,   414,   415,   416,   417,   418,   419,   420,
+		421,   422,   -1736, -1736, -1736, 426,   427,   -522,
+		32767, 429,   430,   431,   432,   433,   434,   435,
+		436,   437,   -392,  -392,  -392,  441,   442,   32767,
+		0,     -682,  0,     -682,  0,     0,     -1602, 1294,
+		-682,  -682,  -682,  -682,  -682,  -682,  -682,  -682,
+		439,   -662,  0,     -682,  0,     0,     457,   -682,
+		0,     0,     0,     459,   460,   461,   462,   463,
+		464,   465,   466,   467,   468,   469,   470,   471,
+		472,   473,   474,   475,   476,   -201,  478,   479,
+		480,   481,   482,   483,   484,   485,   486,   -192,
+		488,   489,   -190,  491,   492,   493,   494,   495,
+		496,   497,   498,   499,   500,   501,   502,   503,
+		504,   505,   506,   507,   508,   509,   510,   511,
+		512,   513,   514,   515,   516,   517,   518,   519,
+		520,   521,   522,   523,   524,   525,   526,   32767,
+		32767, 527,   528,   529,   530,   531,   532,   533,
+		534,   535,   536,   537,   538,   539,   540,   541,
+		542,   543,   544,   545,   546,   547,   548,   549,
+		550,   551,   552,   553,   554,   555,   556,   557,
+		558,   559,   560,   561,   562,   563,   564,   565,
+		566,   567,   568,   569,   570,   571,   572,   573,
+		574,   575,   576,   577,   578,   579,   580,   581,
+		582,   583,   584,   585,   586,   587,   588,   589,
+		590,   -752,  592,   593,   594,   595,   596,   597,
+		598,   599,   600,   601,   602,   603,   604,   605,
+		606,   607,   608,   609,   610,   611,   612,   613,
+		614,   615,   616,   617,   1200,  1201,  1202,  1203,
+		1204,  1205,  1206,  1207,  1208,  1209,  1210,  1211,
+		1212,  1213,  1214,  32767, 0,     32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 1148,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 0,     32767,
+		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		32767, 0,     0,     0,     0,     0,     32767, 0,
+		32767, 0,     0,     32767, 0,     0,     32767, 633,
+		0,     634,   0,     0,     0,     0,     0,     0,
+		32767, 32767, 32767, 32767, 635,   636,   637,   638,
+		639,   640,   641,   642,   643,   644,   645,   646,
+		647,   32767, 648,   649,   650,   651,   652,   32767,
+		653,   0,     654,   655,   0,     656,   657,   0,
+		25,    659,   26,    661,   662,   663,   664,   665,
+		666,   676,   677,   678,   679,   680,   681,   682,
+		683,   684,   685,   230,   -120,  0,     -119,  1228,
+		-118,  110,   111,   0,     745,   0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     793,   794,   257,   796,
+		115,   798,   117,   800,   119,   120,   1723,  -1172,
+		805,   806,   807,   808,   809,   810,   811,   812,
+		-308,  794,   133,   816,   135,   136,   -320,  820,
+		139,   140,   141,   -314,  0,     0,     0,     828,
+		18,    830,   831,   34,    833,   0,     0,     0,
+		0,     838,   839,   0,     841,   -425,  0,     0,
+		0,     0,     0,     0,     849,   0,     0,     30,
+		0,     0,     0,     0,     -1433, -1433, -1433, -1433,
+		-1244, 582,   0,     0,     0,     -973,  1277,  1278,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     886,   887,   -1114, 889,   890,   891,   892,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		751,   0,     0,     0,     0,     0,     0,     0,
+		0,     0,     919,   0,     0,     0,     0,     0,
+		0,     0,     0,     -1135, -189,  -189,  1813,  -189,
+		-189,  -189,  -189,  0,     0,     0,     0,     0,
+		0,     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,
+		0,     0,     32767, 32767, 32767, 32767, 704,   705,
+		706,   707,   708,   709,   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, 0,     0,     32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, -257,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -910,  -910,  32767, 32767,
-		0,     32767, 0,     32767, 0,     32767, 0,     32767,
-		147,   32767, 0,     32767, 0,     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, 0,     0,     0,     0,     0,     0,     32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 143,   32767, 144,   32767, 145,
-		32767, 146,   32767, 0,     32767, 148,   32767, 149,
-		32767, 32767, 32767, -160,  32767, 32767, 32767, 32767,
-		32767, 32767, 15,    32767, 32767, 0,     32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		145,   32767, 144,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 0,     32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 0,     -148,  32767, 32767, 32767, 32767,
-		32767, 32767, 2009,  32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 0,     32767, 32767, 135,   -918,  32767,
-		151,   32767, 32767, 0,     1,     2,     3,     4,
-		133,   5,     6,     7,     8,     9,     10,    11,
-		32767, 32767, -1248, 32767, 13,    154,   188,   188,
-		32767, 32767, 32767, 32767, 32767, 155,   16,    32767,
-		32767, 32767, 32767, 32767, 32767, -1853, -1054, 18,
-		-1052, -1051, -1036, 22,    32767, 157,   32767, 28,
-		23,    1077,  673,   25,    -2930, 0,     32767, 32767,
-		32767, 32767, 32767, 27,    32767, 155,   32767, 154,
-		32767, 32767, -62,   28,    -42,   30,    -1051, 32,
-		-1050, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 34,
+		32767, 32767, 0,     32767, 32767, 32767, 0,     0,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 129,   32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 672,   32767, 32767, 32767, 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, -156,  32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -155,  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, 40,    32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 682,   32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 41,    42,    43,    44,    45,    46,    47,
+		48,    32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 171,   172,   32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		73,    32767, 32767, 32767, 32767, 74,    32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 675,
-		32767, 32767, 32767, 32767, 32767, 75,    32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 165,   32767, 32767, 32767, 166,   167,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 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,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 689,   690,   691,   692,   693,   694,   695,
-		696,   697,   698,   699,   700,   701,   702,   703,
-		704,   705,   706,   707,   708,   709,   710,   711,
-		712,   713,   714,   715,   716,   717,   718,   719,
-		720,   721,   722,   -304,  -303,  -302,  -301,  -300,
-		-299,  -298,  -297,  930,   -295,  -294,  -293,  -292,
-		-291,  -290,  -289,  -288,  -287,  -286,  -285,  -284,
-		-283,  -282,  -281,  -280,  -279,  -278,  -277,  -276,
-		-275,  753,   754,   755,   646,   757,   -712,  -1765,
-		952,   -712,  2244,  -712,  2245,  765,   766,   767,
-		768,   125,   770,   771,   772,   773,   774,   775,
-		603,   777,   778,   779,   780,   781,   782,   783,
-		784,   2011,  786,   787,   788,   789,   790,   791,
-		792,   793,   794,   795,   796,   797,   798,   799,
-		800,   801,   802,   803,   804,   805,   806,   603,
-		603,   809,   603,   811,   603,   603,   814,   815,
-		816,   817,   435,   819,   820,   821,   3539,  823,
-		603,   -468,  603,   -468,  603,   603,   589,   831,
-		603,   603,   603,   835,   836,   837,   838,   839,
-		840,   841,   842,   843,   844,   845,   846,   847,
-		848,   849,   850,   851,   852,   1239,  854,   855,
-		856,   857,   858,   859,   860,   1024,  862,   863,
-		864,   865,   866,   867,   868,   869,   870,   871,
-		872,   873,   874,   875,   876,   877,   878,   879,
-		880,   881,   882,   883,   884,   1131,  1061,  -373,
-		888,   889,   890,   1065,  1065,  893,   1066,  895,
-		896,   897,   898,   899,   900,   -148,  902,   603,
-		603,   -166,  906,   -164,  908,   -162,  -161,  -146,
-		912,   913,   914,   915,   -145,  917,   1971,  -745,
-		920,   -2035, 922,   923,   937,   925,   926,   927,
-		928,   -1227, 930,   931,   932,   933,   934,   935,
-		936,   866,   938,   -143,  940,   -142,  -141,  943,
-		-140,  32767, 945,   946,   947,   948,   949,   950,
-		951,   952,   953,   954,   955,   956,   957,   958,
-		959,   960,   961,   -65,   -64,   -63,   -62,   -61,
-		-60,   -59,   -58,   1169,  -56,   -55,   -54,   -53,
-		-52,   -51,   -50,   -49,   -48,   -47,   -46,   -45,
-		-44,   -43,   -42,   -41,   -40,   -39,   -38,   -37,
-		-36,   992,   993,   994,   885,   996,   -473,  -1526,
-		1191,  -473,  2483,  -473,  2484,  1004,  1005,  1006,
-		1007,  364,   1009,  1010,  1011,  1012,  1013,  1014,
-		842,   1016,  1017,  1018,  1019,  1020,  1021,  1022,
-		1023,  2250,  1025,  1026,  1027,  1028,  1029,  1030,
-		1031,  1032,  1033,  1034,  1035,  1036,  1037,  1038,
-		1039,  1040,  1041,  1042,  1043,  1044,  1045,  842,
-		842,   1048,  842,   1050,  842,   842,   1053,  1054,
-		1055,  1056,  674,   1058,  1059,  1060,  3778,  1062,
-		842,   -229,  842,   -229,  842,   842,   828,   1070,
-		842,   842,   842,   1074,  1075,  1076,  1077,  1078,
-		1079,  1080,  1081,  1082,  1083,  1084,  1085,  1086,
-		1087,  1088,  1089,  1090,  1091,  1478,  1093,  1094,
-		1095,  1096,  1097,  1098,  1099,  1263,  1101,  1102,
-		1103,  1104,  1105,  1106,  1107,  1108,  1109,  1110,
-		1111,  1112,  1113,  1114,  1115,  1116,  1117,  1118,
-		1119,  1120,  1121,  1122,  1123,  1370,  1300,  -134,
-		1127,  1128,  1129,  1304,  1304,  1132,  1305,  1134,
-		1135,  1136,  1137,  1138,  1139,  91,    1141,  842,
-		842,   73,    1145,  75,    1147,  77,    78,    93,
-		1151,  1152,  1153,  1154,  94,    1156,  2210,  -506,
-		1159,  -1796, 1161,  1162,  1176,  1164,  1165,  1166,
-		1167,  -988,  1169,  1170,  1171,  1172,  1173,  1174,
-		1175,  1105,  1177,  96,    1179,  97,    98,    1182,
-		99,    1184,  1185,  1186,  1187,  1188,  1189,  1190,
-		1191,  1192,  1193,  1194,  1195,  1196,  1197,  1198,
-		1199,  1200,  0,     174,   175,   176,   177,   178,
-		179,   180,   181,   1408,  183,   184,   185,   186,
-		187,   188,   189,   190,   191,   192,   193,   194,
-		195,   196,   197,   198,   199,   200,   201,   202,
-		203,   0,     0,     206,   0,     208,   0,     0,
-		211,   212,   213,   214,   -168,  216,   217,   218,
-		2936,  220,   0,     -1071, 0,     -1071, 0,     0,
-		-14,   228,   0,     0,     0,     232,   233,   234,
-		235,   236,   237,   238,   239,   240,   241,   242,
-		243,   244,   245,   246,   247,   248,   249,   636,
-		251,   252,   253,   254,   255,   256,   257,   421,
-		259,   260,   261,   262,   263,   264,   265,   266,
-		267,   268,   269,   270,   271,   272,   273,   274,
-		275,   276,   277,   278,   279,   280,   281,   528,
-		458,   -976,  285,   286,   287,   462,   462,   290,
-		463,   292,   293,   294,   295,   296,   297,   -751,
-		299,   0,     0,     -769,  303,   -767,  305,   -765,
-		-764,  -749,  309,   310,   311,   312,   -748,  314,
-		1368,  -1348, 317,   -2638, 319,   320,   334,   322,
-		323,   324,   325,   -1830, 327,   328,   329,   330,
-		331,   332,   333,   263,   335,   -746,  337,   -745,
-		-744,  340,   -743,  342,   343,   344,   345,   346,
-		347,   348,   349,   350,   351,   352,   353,   354,
-		355,   356,   357,   358,   0,     0,     0,     1453,
-		0,     1126,  495,   495,   495,   495,   495,   233,
-		495,   1080,  1080,  1080,  495,   561,   1082,  495,
-		563,   1687,  495,   495,   495,   495,   385,   0,
-		0,     0,     0,     480,   0,     221,   221,   0,
-		489,   579,   0,     0,     0,     498,   626,   0,
-		1422,  1040,  1424,  631,   0,     0,     0,     0,
-		0,     -262,  0,     585,   585,   585,   0,     66,
-		587,   0,     68,    1192,  0,     0,     0,     0,
-		0,     0,     32767, 32767, 32767, 32767, 669,   32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 670,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 142,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 115,   116,   117,   118,   119,   120,
-		121,   122,   123,   124,   125,   126,   127,   128,
-		129,   130,   131,   132,   133,   134,   135,   136,
-		137,   138,   139,   140,   141,   32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 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,     1027,  1027,  1027,
-		1027,  1027,  1027,  1027,  1027,  -199,  1027,  1027,
-		1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,
-		1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,
-		1027,  1027,  1027,  0,     0,     0,     110,   0,
-		1470,  2524,  -192,  1473,  -1482, 1475,  -1481, 0,
-		0,     0,     0,     644,   0,     0,     0,     0,
-		0,     0,     173,   0,     0,     0,     0,     0,
-		0,     0,     0,     -1226, 0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     204,   205,   0,     207,   0,     209,   210,
-		0,     0,     0,     0,     383,   0,     0
+		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 49,
+		32767
 	};
 
 	const unsigned char *k = (const unsigned char *) key;
@@ -1582,16 +1609,16 @@ NFC_QC_hash_func(const void *key)
 		unsigned char c = *k++;
 
 		a = a * 257 + c;
-		b = b * 17 + c;
+		b = b * 8191 + c;
 	}
-	return h[a % 2463] + h[b % 2463];
+	return h[a % 2505] + h[b % 2505];
 }
 
 /* Hash lookup information for NFC_QC */
 static const pg_unicode_norminfo UnicodeNormInfo_NFC_QC = {
 	UnicodeNormProps_NFC_QC,
 	NFC_QC_hash_func,
-	1231
+	1252
 };
 
 static const pg_unicode_normprops UnicodeNormProps_NFKC_QC[] = {
@@ -4729,11 +4756,68 @@ static const pg_unicode_normprops UnicodeNormProps_NFKC_QC[] = {
 	{0x11127, UNICODE_NORM_QC_MAYBE},
 	{0x1133E, UNICODE_NORM_QC_MAYBE},
 	{0x11357, UNICODE_NORM_QC_MAYBE},
+	{0x113B8, UNICODE_NORM_QC_MAYBE},
+	{0x113BB, UNICODE_NORM_QC_MAYBE},
+	{0x113C2, UNICODE_NORM_QC_MAYBE},
+	{0x113C5, UNICODE_NORM_QC_MAYBE},
+	{0x113C7, UNICODE_NORM_QC_MAYBE},
+	{0x113C8, UNICODE_NORM_QC_MAYBE},
+	{0x113C9, UNICODE_NORM_QC_MAYBE},
 	{0x114B0, UNICODE_NORM_QC_MAYBE},
 	{0x114BA, UNICODE_NORM_QC_MAYBE},
 	{0x114BD, UNICODE_NORM_QC_MAYBE},
 	{0x115AF, UNICODE_NORM_QC_MAYBE},
 	{0x11930, UNICODE_NORM_QC_MAYBE},
+	{0x1611E, UNICODE_NORM_QC_MAYBE},
+	{0x1611F, UNICODE_NORM_QC_MAYBE},
+	{0x16120, UNICODE_NORM_QC_MAYBE},
+	{0x16121, UNICODE_NORM_QC_MAYBE},
+	{0x16122, UNICODE_NORM_QC_MAYBE},
+	{0x16123, UNICODE_NORM_QC_MAYBE},
+	{0x16124, UNICODE_NORM_QC_MAYBE},
+	{0x16125, UNICODE_NORM_QC_MAYBE},
+	{0x16126, UNICODE_NORM_QC_MAYBE},
+	{0x16127, UNICODE_NORM_QC_MAYBE},
+	{0x16128, UNICODE_NORM_QC_MAYBE},
+	{0x16129, UNICODE_NORM_QC_MAYBE},
+	{0x16D67, UNICODE_NORM_QC_MAYBE},
+	{0x16D68, UNICODE_NORM_QC_MAYBE},
+	{0x1CCD6, UNICODE_NORM_QC_NO},
+	{0x1CCD7, UNICODE_NORM_QC_NO},
+	{0x1CCD8, UNICODE_NORM_QC_NO},
+	{0x1CCD9, UNICODE_NORM_QC_NO},
+	{0x1CCDA, UNICODE_NORM_QC_NO},
+	{0x1CCDB, UNICODE_NORM_QC_NO},
+	{0x1CCDC, UNICODE_NORM_QC_NO},
+	{0x1CCDD, UNICODE_NORM_QC_NO},
+	{0x1CCDE, UNICODE_NORM_QC_NO},
+	{0x1CCDF, UNICODE_NORM_QC_NO},
+	{0x1CCE0, UNICODE_NORM_QC_NO},
+	{0x1CCE1, UNICODE_NORM_QC_NO},
+	{0x1CCE2, UNICODE_NORM_QC_NO},
+	{0x1CCE3, UNICODE_NORM_QC_NO},
+	{0x1CCE4, UNICODE_NORM_QC_NO},
+	{0x1CCE5, UNICODE_NORM_QC_NO},
+	{0x1CCE6, UNICODE_NORM_QC_NO},
+	{0x1CCE7, UNICODE_NORM_QC_NO},
+	{0x1CCE8, UNICODE_NORM_QC_NO},
+	{0x1CCE9, UNICODE_NORM_QC_NO},
+	{0x1CCEA, UNICODE_NORM_QC_NO},
+	{0x1CCEB, UNICODE_NORM_QC_NO},
+	{0x1CCEC, UNICODE_NORM_QC_NO},
+	{0x1CCED, UNICODE_NORM_QC_NO},
+	{0x1CCEE, UNICODE_NORM_QC_NO},
+	{0x1CCEF, UNICODE_NORM_QC_NO},
+	{0x1CCF0, UNICODE_NORM_QC_NO},
+	{0x1CCF1, UNICODE_NORM_QC_NO},
+	{0x1CCF2, UNICODE_NORM_QC_NO},
+	{0x1CCF3, UNICODE_NORM_QC_NO},
+	{0x1CCF4, UNICODE_NORM_QC_NO},
+	{0x1CCF5, UNICODE_NORM_QC_NO},
+	{0x1CCF6, UNICODE_NORM_QC_NO},
+	{0x1CCF7, UNICODE_NORM_QC_NO},
+	{0x1CCF8, UNICODE_NORM_QC_NO},
+	{0x1CCF9, UNICODE_NORM_QC_NO},
 	{0x1D15E, UNICODE_NORM_QC_NO},
 	{0x1D15F, UNICODE_NORM_QC_NO},
 	{0x1D160, UNICODE_NORM_QC_NO},
@@ -6640,164 +6724,71 @@ static const pg_unicode_normprops UnicodeNormProps_NFKC_QC[] = {
 static int
 NFKC_QC_hash_func(const void *key)
 {
-	static const int16 h[10079] = {
-		3542,  3543,  3544,  3545,  3546,  3547,  3548,  3549,
-		3550,  3551,  3552,  3553,  3554,  3555,  3556,  3557,
-		3558,  3559,  3560,  3561,  3562,  3563,  3564,  3565,
-		3566,  3567,  3568,  3569,  3570,  3571,  3572,  3573,
-		3574,  3575,  3576,  3577,  3578,  3579,  3580,  3581,
-		3582,  3583,  3584,  3585,  3586,  3587,  3588,  3589,
-		3590,  3591,  3592,  3593,  3594,  3595,  3596,  3597,
-		3598,  3599,  3600,  3601,  3602,  3603,  3604,  3605,
-		3606,  3607,  3608,  3970,  3488,  3611,  3612,  3613,
-		3614,  3615,  3616,  3617,  3618,  7967,  3620,  3621,
-		3622,  3623,  3624,  3625,  3626,  3627,  3628,  3629,
-		3630,  3631,  3632,  3633,  3634,  3512,  3636,  3637,
-		3638,  3639,  32767, 11118, 11119, 11120, 11121, 11122,
-		1470,  11124, 11125, 11126, 11127, 11128, 11129, 11130,
-		11131, 11132, -287,  8773,  8774,  8775,  8776,  8777,
-		8778,  -287,  8781,  8782,  -287,  8783,  8784,  8785,
-		8786,  8787,  8788,  8789,  8790,  8791,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  2372,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  2458,  2458,  2458,  2458,  2458,
-		2458,  2458,  2458,  2458,  -287,  -287,  -287,  -5017,
-		5765,  -287,  -5019, -5019, -5019, -5019, -287,  -287,
-		4632,  -5021, -5021, -287,  -5022, -5022, -5022, 3732,
-		-287,  -287,  3735,  3736,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		4994,  2491,  2491,  -287,  -287,  -287,  6887,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  32767, 32767, -289,  1778,  629,   3809,  3810,
-		-3050, -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  -287,  -287,  -287,  -287,  -287,  -287,
-		-287,  -287,  3861,  3862,  3863,  3864,  3865,  3866,
-		3867,  3868,  -1002, 3870,  3871,  3872,  3873,  3874,
-		3875,  3876,  3877,  3878,  3879,  3880,  3881,  3882,
-		3883,  3884,  3885,  3886,  3887,  3888,  3889,  3890,
-		3891,  3892,  3893,  32767, 3392,  3392,  3392,  -5411,
-		3392,  3392,  3392,  3392,  3392,  3392,  3392,  3392,
-		3392,  3392,  224,   225,   226,   3392,  227,   228,
-		-5998, -5998, 3392,  -5998, -5,    0,     -5997, -5997,
-		-7477, 3923,  -7478, -7478, -7478, -7478, -7478, -7478,
-		-7478, -7478, 2175,  -7478, -7478, -7478, -7478, -7478,
-		-7478, -7478, -7478, -7478, 3942,  -5117, -5117, -5117,
-		-5117, -5117, -5117, 3949,  -5118, -5118, 3952,  -5117,
-		-5117, -5117, -5117, -5117, -5117, -5117, -5117, -5117,
-		3962,  3963,  3964,  3965,  3966,  3967,  3968,  3969,
-		3970,  3971,  3972,  3973,  3974,  3975,  3976,  3977,
-		3978,  3979,  3980,  1322,  3982,  3983,  3984,  3985,
-		3986,  3987,  3988,  3989,  3990,  1246,  1247,  1248,
-		1249,  1250,  1251,  1252,  1253,  1254,  4000,  4001,
-		4002,  8733,  -2048, 4005,  8738,  8739,  8740,  8741,
-		4010,  4011,  -907,  8747,  8748,  4015,  8751,  8752,
-		8753,  0,     4020,  4021,  0,     0,     4024,  4025,
-		4026,  4027,  4028,  4029,  4030,  4031,  4032,  4033,
-		4034,  4035,  -1245, 1259,  1260,  4039,  4040,  4041,
-		-3132, 4043,  4044,  4045,  4046,  4047,  4048,  4049,
-		4050,  4051,  4052,  4053,  4054,  4055,  4056,  4057,
-		4058,  4059,  4060,  4061,  4062,  4063,  4064,  4065,
-		4066,  4067,  4068,  4069,  4070,  4071,  4072,  4073,
-		4074,  4075,  4076,  4077,  4078,  4079,  4080,  4081,
-		4082,  4083,  4084,  4085,  4086,  4087,  4088,  4089,
-		4090,  4091,  4092,  4093,  4094,  4095,  2029,  3179,
-		0,     0,     6861,  4099,  4100,  4101,  4102,  4103,
-		4104,  4105,  4106,  4107,  4108,  4109,  4110,  4111,
-		4112,  4113,  4114,  4115,  4116,  4117,  4118,  4119,
-		4120,  4121,  4122,  4123,  4124,  4125,  4126,  4127,
-		4128,  4129,  4130,  4131,  4132,  4133,  4134,  4135,
-		4136,  4137,  4138,  4139,  4140,  4141,  4142,  4143,
-		4144,  4145,  4146,  4147,  0,     0,     0,     0,
-		0,     0,     0,     0,     4871,  0,     0,     0,
+	static const int16 h[10193] = {
+		1878,  1879,  1880,  1881,  1882,  1883,  1884,  1885,
+		1886,  1887,  1888,  32767, 32767, 1889,  3141,  -7211,
+		1892,  1893,  1894,  1895,  1896,  1897,  1898,  1899,
+		-1320, 1901,  1902,  -1322, 1904,  1905,  1921,  1921,
+		1921,  1909,  1910,  1911,  1924,  1924,  1914,  1915,
+		1916,  1917,  1918,  1919,  1920,  1921,  1922,  1923,
+		1924,  1925,  -1976, 4681,  1323,  1929,  1930,  4682,
+		1932,  1933,  1934,  1935,  1936,  1937,  0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     422,   510,   422,   422,
+		0,     0,     0,     0,     0,     0,     0,     1822,
+		0,     431,   0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     32767, 32767, 32767,
+		0,     0,     1840,  1840,  0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     2762,  2762,  2762,
+		2762,  2762,  2762,  2762,  2762,  2762,  2762,  2762,
+		2762,  2762,  2762,  2762,  2762,  2762,  2762,  2762,
+		2762,  2762,  0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     2812,  2812,  2812,  2812,
+		2812,  2812,  2812,  2812,  2812,  2812,  2812,  2812,
+		2812,  2812,  -1449, 5319,  2812,  2812,  2812,  2812,
+		2812,  2812,  2812,  2812,  2812,  2812,  -534,  0,
+		0,     0,     0,     348,   32767, 349,   0,     0,
+		0,     0,     0,     0,     32767, 32767, 0,     0,
+		0,     -1517, 0,     -1517, 32767, -1516, 4370,  4371,
+		4372,  4373,  4374,  4375,  4376,  4377,  4378,  4379,
+		0,     32767, 32767, -23190,4110,  0,     0,     0,
+		0,     0,     0,     32767, 0,     0,     0,     0,
+		-622,  -622,  0,     -3928, -1253, -1252, -5473, -3927,
+		-3927, -3927, -3927, -3927, -3927, -3927, -3927, -3927,
+		-3927, -3927, -3927, -3927, -3927, -3580, -3580, -3925,
+		-3580, -3924, -3580, -3580, -3922, -3922, -3922, -3922,
+		-3922, -3922, -3922, -3922, 0,     0,     -3484, -3919,
+		-3482, -3918, -3480, -3578, -3916, -3916, -3578, -3578,
+		-3578, -3913, -3913, -3913, -3913, -3913, -3913, -3913,
+		-3913, -3913, -3913, -3913, -3913, -3913, -3913, -3913,
+		-3913, -3913, -3913, -3913, -3913, -3913, -3913, -3913,
+		-3913, -3913, -3913, -3913, -3913, -3913, -3913, -3913,
+		-3913, -3913, -3913, -3913, -3913, -3578, 625,   -5288,
+		627,   628,   0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     2496,  2497,  2498,  2499,  2500,
+		2501,  2502,  2503,  2504,  2505,  2506,  2507,  0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     -1769, -1768, -1767, -3528, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, -4117, -4459, -4459, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, -1786, -1785, -1784, -1783, -1782, 5982,
-		-630,  -48,   -48,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 677,
-		32767, 32767, -636,  -635,  1019,  -3373, 1019,  1019,
-		1019,  1019,  1019,  1019,  1019,  1019,  1019,  1019,
-		1019,  1019,  1019,  1019,  1019,  -685,  -684,  -683,
-		-682,  -681,  -6170, -679,  -678,  2476,  2477,  -6912,
-		2479,  -3513, 3959,  2482,  2483,  3964,  3965,  3966,
-		3967,  3968,  3969,  3970,  3971,  3972,  55,    56,
-		2495,  57,    58,    59,    60,    61,    62,    63,
-		2503,  2504,  64,    2506,  65,    2508,  66,    67,
-		2511,  2512,  32767, 32767, 32767, 32767, 68,    32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 69,    70,
-		71,    72,    73,    74,    1140,  2514,  2515,  422,
-		75,    2518,  -1594, 556,   557,   2522,  2523,  2524,
-		2525,  422,   422,   422,   422,   422,   422,   422,
-		422,   422,   422,   422,   422,   422,   422,   422,
-		422,   422,   422,   422,   422,   422,   422,   422,
-		422,   422,   422,   422,   422,   422,   422,   422,
-		422,   422,   422,   422,   422,   422,   422,   422,
-		422,   422,   422,   422,   422,   422,   422,   -2277,
-		-2277, -2277, -2277, -2277, 32767, 32767, -2279, -2279,
-		-2279, -2279, -2279, -2279, -2279, -2279, -2279, 86,
-		-2279, -2279, -2279, -2279, -2279, 87,    -2279, -2279,
-		-2279, 88,    -2279, -2279, -2279, -2279, -2279, 89,
-		453,   453,   453,   453,   453,   453,   2609,  453,
-		453,   453,   453,   453,   453,   453,   453,   453,
-		453,   453,   453,   1817,  453,   453,   453,   453,
-		453,   453,   453,   453,   32767, 32767, 32767, 681,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -2319, 2632,  -2319, -2319,
-		-2319, 2636,  2637,  92,    2639,  2640,  95,    96,
-		97,    98,    32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 3279,  3280,  3281,  3282,  3283,  3284,
-		3285,  3286,  3287,  3288,  3289,  3290,  3291,  3292,
-		-384,  -1535, -385,  -385,  0,     3298,  3299,  3300,
-		3301,  3302,  3303,  3304,  -8646, -1149, -1148, -1147,
-		-1146, 32767, 3310,  3311,  3312,  3313,  3314,  -1140,
-		-1139, -1138, -1137, -1136, -1135, -1134, -1133, -1132,
-		3324,  3325,  3326,  3327,  3328,  3329,  3330,  3331,
-		3332,  3333,  3334,  3335,  3336,  3337,  3338,  3339,
-		3340,  3341,  3342,  3343,  3344,  -1327, -1327, -1327,
-		-1327, -1327, 32767, 32767, 2346,  32767, 32767, 32767,
-		32767, 32767, 3350,  335,   3245,  8185,  1818,  666,
-		1818,  795,   795,   1818,  1818,  1818,  1818,  1818,
-		-5945, 668,   87,    88,    89,    90,    91,    92,
-		93,    94,    95,    0,     0,     671,   671,   671,
-		671,   671,   0,     0,     673,   673,   673,   0,
-		674,   0,     675,   0,     676,   0,     677,   677,
-		677,   32767, 0,     677,   677,   -976,  3417,  -974,
-		-973,  678,   678,   -972,  -971,  -970,  -969,  -968,
-		1152,  1153,  1154,  1155,  1156,  0,     1022,  1022,
-		5615,  -6335, 1162,  1163,  1164,  1165,  5621,  5622,
-		5623,  5624,  5625,  5626,  1172,  1173,  1174,  1175,
-		1176,  1177,  1178,  1179,  1180,  1181,  1182,  1183,
-		1184,  1185,  1186,  1187,  1188,  1189,  1190,  1191,
-		1192,  1193,  9997,  1195,  1196,  1197,  1198,  1199,
-		1200,  1201,  1202,  1203,  1204,  4373,  4373,  4373,
-		1208,  4374,  4374,  10601, 10602, 1213,  10604, 4612,
-		4608,  10606, 10607, 12088, 1220,  1221,  1222,  1223,
-		1224,  1225,  1226,  2453,  2454,  2455,  2456,  2457,
-		2458,  2459,  2460,  2461,  2462,  2463,  2464,  2465,
-		2466,  2467,  6860,  2469,  2470,  2471,  2472,  2473,
-		2474,  2475,  2476,  2477,  2478,  2479,  2480,  2481,
-		2482,  2483,  2484,  258,   2486,  2487,  258,   258,
-		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,
@@ -6806,68 +6797,63 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 5673,  5674,
-		0,     5677,  0,     5680,  5681,  5682,  5683,  5684,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 682,   683,   32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, -2719, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 105,   32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		2315,  4754,  2316,  2317,  2318,  2319,  2320,  2321,
-		2322,  4762,  4763,  2323,  4765,  2324,  4767,  2325,
-		2326,  4770,  4771,  4772,  2377,  4774,  4775,  4776,
-		4777,  4778,  4779,  4780,  4781,  4782,  4783,  4784,
-		4785,  4786,  4787,  4788,  4789,  3417,  4791,  4792,
-		2699,  2352,  4795,  683,   2833,  2834,  4799,  4800,
-		4801,  4802,  2699,  2699,  2699,  2699,  2699,  2699,
-		2699,  2699,  2699,  2699,  2699,  2699,  2699,  2699,
-		2699,  2699,  2699,  2699,  2699,  2699,  2699,  2699,
-		2699,  2699,  2699,  2699,  2699,  2699,  2699,  2699,
-		2699,  2699,  2699,  2699,  2699,  2699,  2699,  2699,
-		2699,  2699,  2699,  2699,  2699,  2699,  2699,  2699,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		2365,  0,     0,     0,     0,     0,     2366,  0,
-		0,     0,     2367,  0,     0,     0,     0,     0,
-		2368,  2732,  2732,  2732,  2732,  2732,  2732,  4888,
-		2732,  2732,  2732,  2732,  2732,  2732,  2732,  2732,
-		2732,  2732,  2732,  2732,  4096,  2732,  2732,  2732,
-		2732,  2732,  2732,  2732,  2732,  2732,  2732,  2732,
-		2732,  2732,  2732,  2732,  2732,  2732,  2732,  2732,
-		2732,  2732,  2732,  2732,  2732,  2732,  4927,  0,
-		0,     0,     0,     0,     4933,  0,     0,     0,
-		0,     -2910, 0,     4940,  4941,  4942,  0,     0,
-		0,     0,     0,     0,     0,     0,     4951,  0,
-		0,     0,     4955,  4956,  2411,  4958,  4959,  2414,
-		2415,  2416,  0,     10954, 0,     3436,  0,     0,
-		0,     0,     0,     -3170, -3169, -3168, -3167, 3446,
-		2865,  0,     0,     0,     0,     0,     2339,  2339,
-		2339,  2339,  2339,  2339,  2339,  2339,  2892,  2339,
-		0,     0,     0,     0,     0,     0,     2907,  0,
-		0,     0,     0,     0,     0,     4719,  0,     0,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 1856,  868,   868,   868,   868,
-		868,   868,   868,   868,   868,   868,   868,   1856,
-		1856,  1856,  1856,  1856,  873,   873,   873,   873,
-		873,   873,   873,   873,   873,   873,   873,   873,
-		873,   873,   873,   873,   873,   6441,  6442,  6443,
-		6444,  6445,  6446,  6447,  6448,  6449,  6450,  6451,
-		6452,  -1169, 6454,  6455,  6456,  6457,  6458,  6459,
-		6460,  6461,  6462,  6463,  6464,  6465,  6466,  6467,
-		6468,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32,    33,    34,    35,    36,    37,
+		38,    39,    40,    32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, -6479, -6478, -6477,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 41,    42,    43,    44,    45,    46,
+		32767, 32767, 47,    48,    49,    50,    51,    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, 52,    1131,  8054,  3425,  -19247,
+		8047,  -19248,8049,  -19249,8051,  -14620,8053,  -19240,
+		8056,  3330,  8058,  8059,  3430,  -19242,3330,  3330,
+		3330,  3330,  3330,  -11231,8049,  3330,  3330,  3330,
+		3330,  -3326, 33,    -3326, 3330,  -3325, -3325, -3325,
+		3330,  -3326, -3326, 1075,  4681,  4682,  8076,  -3327,
+		8079,  19509, -7787, 4688,  4689,  1331,  4691,  -1964,
+		4692,  4693,  4694,  4695,  4696,  4697,  297,   -3308,
+		-3308, -6701, 4703,  -6702, -18131,9166,  -3308, 4711,
+		-2199, 4724,  95,    -22577,4717,  -22578,4719,  -22579,
+		4721,  -17950,4723,  -22570,4726,  0,     4728,  4729,
+		100,   -22572,0,     0,     0,     0,     0,     -14561,
+		4719,  0,     0,     0,     0,     -6656, -3297, -6656,
+		0,     -6655, -6655, -6655, 0,     -6656, -6656, -2255,
+		1351,  1352,  4746,  -6657, 4749,  16179, -11117,1358,
+		1359,  -1999, 0,     0,     0,     938,   0,     0,
+		0,     0,     0,     0,     1255,  0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     4081,  4081,  4081,
+		4081,  4081,  2312,  2313,  2314,  553,   0,     0,
+		0,     0,     0,     0,     0,     0,     3580,  2958,
+		2958,  3580,  -348,  2327,  2328,  -1893, -347,  -347,
+		-347,  -347,  -347,  -347,  -347,  -347,  -347,  -347,
+		-347,  -347,  -347,  -347,  0,     0,     -345,  0,
+		-344,  0,     0,     -342,  -342,  -342,  -342,  -342,
+		-342,  -342,  -342,  -342,  -342,  94,    -341,  96,
+		-340,  98,    0,     -338,  -338,  0,     0,     0,
+		-335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
+		-335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
+		-335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
+		-335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
+		-335,  -335,  -335,  -335,  0,     4203,  -1710, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -6877,433 +6863,29 @@ NFKC_QC_hash_func(const void *key)
 		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,
+		1,     32767, 2,     32767, 32767, 32767, 32767, -2759,
+		32767, 32767, -2758, -2757, -2756, -2755, 32767, 32767,
+		-2754, -2753, -2752, 32767, -2751, -2750, -2749, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, -3334, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, -1362, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -766,  32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, -1530, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 686,   32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		687,   688,   689,   690,   691,   692,   693,   694,
-		695,   2465,  697,   698,   699,   700,   701,   702,
-		703,   704,   705,   2484,  707,   708,   709,   710,
-		2493,  712,   713,   714,   715,   2502,  717,   718,
-		719,   720,   2511,  722,   723,   724,   725,   726,
-		727,   728,   729,   730,   731,   732,   733,   2536,
-		735,   736,   737,   738,   739,   740,   741,   742,
-		743,   2555,  745,   2558,  2559,  2560,  2561,  2562,
-		751,   752,   753,   754,   755,   756,   757,   2577,
-		759,   760,   761,   762,   763,   764,   1224,  1224,
-		767,   768,   769,   770,   3787,  772,   773,   774,
-		775,   776,   777,   778,   779,   780,   781,   782,
-		783,   784,   785,   786,   787,   788,   789,   790,
-		791,   792,   793,   794,   795,   796,   797,   798,
-		799,   800,   801,   802,   803,   804,   805,   806,
-		807,   808,   809,   810,   811,   812,   813,   814,
-		815,   816,   817,   818,   819,   820,   821,   822,
-		823,   824,   825,   826,   827,   828,   829,   830,
-		831,   832,   833,   834,   835,   836,   837,   838,
-		839,   840,   841,   842,   843,   844,   845,   846,
-		847,   848,   849,   850,   851,   852,   853,   854,
-		855,   856,   857,   858,   859,   860,   861,   862,
-		863,   864,   865,   866,   867,   868,   869,   870,
-		871,   872,   873,   874,   875,   876,   877,   878,
-		879,   880,   881,   882,   883,   884,   885,   886,
-		887,   888,   889,   890,   891,   892,   893,   894,
-		895,   896,   897,   898,   899,   900,   32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 682,
+		683,   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, 901,   32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, -1268,
-		32767, 32767, 32767, 32767, 32767, -984,  -984,  -2101,
-		-2101, -2101, -2101, 32767, 3402,  3403,  -985,  -985,
-		32767, 32767, 0,     -986,  -986,  -986,  -986,  -986,
-		-986,  -986,  32767, -987,  -987,  -987,  -987,  -987,
-		-987,  -987,  32767, -988,  -988,  -988,  -988,  -1746,
-		-988,  -1747, -1747, -1194, -988,  -988,  -988,  -988,
-		-988,  -988,  -988,  0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     32767,
-		0,     0,     0,     321,   32767, 0,     0,     0,
-		0,     0,     32767, 0,     32767, 32767, 32767, -968,
-		0,     0,     0,     0,     0,     0,     32767, 0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     333,   113,   333,   2915,
-		333,   333,   0,     0,     0,     0,     0,     0,
-		0,     0,     0,     -934,  0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     -361,  122,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		-4348, 0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		123,   0,     0,     0,     0,     -3819, -3818, 32767,
-		126,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 5367,  5368,  914,   915,   916,
-		917,   918,   919,   920,   921,   922,   923,   924,
-		925,   926,   927,   928,   929,   930,   931,   932,
-		933,   934,   935,   9739,  937,   938,   939,   940,
-		941,   942,   943,   944,   945,   946,   4115,  4115,
-		4115,  950,   4116,  4116,  10343, 10344, 955,   10346,
-		4354,  4350,  10348, 10349, 11830, 962,   963,   964,
-		965,   966,   967,   968,   2195,  2196,  2197,  2198,
-		2199,  2200,  2201,  2202,  2203,  2204,  2205,  2206,
-		2207,  2208,  2209,  6602,  2211,  2212,  2213,  2214,
-		2215,  2216,  2217,  2218,  2219,  2220,  2221,  2222,
-		2223,  2224,  2225,  2226,  0,     2228,  2229,  0,
-		0,     2232,  0,     129,   2235,  2236,  -260,  -260,
-		2239,  2240,  2241,  2242,  -260,  2244,  2245,  2246,
-		2247,  2248,  2249,  2250,  2251,  2252,  2253,  -2259,
-		-2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259,
-		-2259, 2264,  2265,  -2259, 2267,  2268,  2269,  2270,
-		2271,  2272,  2273,  2274,  2275,  2276,  2277,  2278,
-		-2729, 2280,  2281,  2282,  2283,  2284,  2285,  2286,
-		2287,  2288,  2289,  2290,  2291,  2292,  3281,  3282,
-		3283,  3284,  3285,  3286,  3287,  3288,  3289,  3290,
-		3291,  2304,  2305,  2306,  2307,  2308,  3292,  3293,
-		3294,  3295,  3296,  3297,  3298,  3299,  3300,  3301,
-		3302,  3303,  3304,  3305,  3306,  3307,  3308,  -2259,
-		-2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259,
-		-2259, -2259, -2259, 5363,  -2259, -2259, -2259, -2259,
-		-2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259,
-		-2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259,
-		-2259, 1418,  2570,  1421,  1422,  1038,  -2259, -2259,
-		-2259, -2259, -2259, -2259, -2259, 9692,  2196,  2196,
-		2196,  2196,  -2259, -2259, -2259, -2259, -2259, -2259,
-		2196,  2196,  2196,  2196,  2196,  2196,  2196,  2196,
-		2196,  -2259, -2259, -2259, -2259, -2259, -2259, -2259,
-		-2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259,
-		-2259, -2259, -2259, -2259, -2259, -2259, 2413,  2414,
-		2415,  2416,  2417,  2418,  2419,  301,   302,   760,
-		-2259, -2259, -2259, -2259, 757,   -2152, -7091, -723,
-		430,   -721,  303,   304,   -718,  -717,  -716,  -715,
-		-714,  7050,  438,   1020,  1020,  1020,  1020,  1020,
-		1020,  1020,  1020,  1020,  1116,  1117,  447,   448,
-		449,   450,   451,   1123,  1124,  452,   453,   454,
-		1128,  455,   1130,  456,   1132,  457,   1134,  458,
-		459,   460,   461,   1138,  462,   463,   2117,  -2275,
-		2117,  2117,  467,   468,   2119,  2119,  2119,  2119,
-		2119,  0,     0,     0,     0,     0,     1157,  136,
-		137,   -4455, 7496,  0,     0,     0,     0,     -4455,
-		-4455, -4455, -4455, -4455, -4455, 0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     -8803, 0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     -3168, -3167,
-		-3166, 0,     -3165, -3164, -9390, -9390, 0,     -9390,
-		-3397, -3392, -9389, -9389, -10869,0,     0,     0,
-		0,     0,     0,     0,     -1226, -1226, -1226, -1226,
-		-1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226,
-		-1226, -1226, -1226, -5618, -1226, -1226, -1226, -1226,
-		-1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226,
-		-1226, -1226, -1226, -1226, 1001,  -1226, -1226, 1004,
-		1005,  1264,  1265,  32767, -1229, -1229, 1268,  1269,
-		-1229, -1229, -1229, -1229, 1274,  -1229, -1229, -1229,
-		-1229, -1229, 139,   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,  1675,  1313,  1676,  1315,  1316,  1317,
-		1318,  1319,  1320,  1321,  1322,  1323,  1324,  1325,
-		1326,  1327,  1328,  1329,  1330,  1331,  1332,  1333,
-		1334,  1335,  1336,  1337,  1338,  1339,  1340,  1341,
-		1342,  1343,  1344,  1345,  1346,  1347,  1348,  1349,
-		1350,  1351,  1352,  1353,  1354,  1355,  1356,  1357,
-		1358,  1359,  1360,  1361,  1362,  1363,  1364,  1365,
-		1366,  1367,  1368,  1369,  1370,  1371,  1372,  1373,
-		1374,  1375,  1376,  1377,  1378,  1379,  1380,  1381,
-		1382,  1383,  1384,  1385,  1386,  1387,  3934,  3935,
-		1390,  1391,  1392,  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,  935,   1320,  4618,
-		1422,  4621,  4622,  1425,  1426,  1427,  -7322, 5372,
-		1430,  1431,  5375,  891,   891,   891,   891,   891,
-		891,   891,   5376,  2037,  891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   891,   891,
-		891,   891,   891,   891,   891,   891,   141,   891,
-		891,   891,   891,   891,   32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 142,   143,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		1999,  4498,  4499,  4500,  4501,  1999,  4503,  4504,
-		4505,  4506,  4507,  4508,  4509,  4510,  4511,  4512,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     4523,  4524,  0,     4526,  4527,  4528,
-		4529,  4530,  4531,  4532,  4533,  4534,  4535,  4536,
-		4537,  -470,  4539,  4540,  4541,  4542,  4543,  4544,
-		4545,  4546,  4547,  4548,  4549,  4550,  4551,  5540,
-		5541,  5542,  5543,  5544,  5545,  5546,  5547,  5548,
-		5549,  5550,  4563,  4564,  4565,  4566,  4567,  5551,
-		5552,  5553,  5554,  5555,  5556,  5557,  5558,  5559,
-		5560,  5561,  5562,  5563,  5564,  5565,  5566,  5567,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     7622,  0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     3677,  4829,  3680,  3681,  3297,  0,
-		0,     0,     0,     0,     0,     0,     11951, 4455,
-		4455,  4455,  4455,  0,     0,     0,     0,     0,
-		0,     4455,  4455,  4455,  4455,  4455,  4455,  4455,
-		4455,  4455,  0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     4672,
-		4673,  4674,  4675,  4676,  4677,  4678,  2560,  2561,
-		3019,  0,     0,     0,     0,     3016,  107,   -4832,
-		1536,  2689,  1538,  2562,  2563,  1541,  1542,  1543,
-		1544,  1545,  9309,  2697,  3279,  3279,  3279,  3279,
-		3279,  3279,  3279,  3279,  3279,  3279,  3279,  -1113,
-		3279,  3279,  3279,  3279,  3279,  3279,  3279,  3279,
-		3279,  3279,  3279,  3279,  3279,  3279,  3279,  1575,
-		1576,  1577,  1578,  1579,  -3910, 1581,  1582,  4736,
-		4737,  -4652, 4739,  -1253, 6219,  4742,  4743,  6224,
-		6225,  6226,  6227,  6228,  6229,  6230,  6231,  6232,
-		6233,  -3419, 6235,  6236,  6237,  6238,  6239,  6240,
-		6241,  6242,  6243,  3882,  3883,  3884,  3885,  3886,
-		3887,  3888,  -5177, 3891,  3892,  -5177, 3893,  3894,
-		3895,  3896,  3897,  3898,  3899,  3900,  3901,  3902,
-		-5176, -5176, -5176, -5176, -5176, -5176, -5176, -5176,
-		1640,  1641,  1642,  3924,  1644,  1645,  1646,  1647,
-		1648,  1649,  1650,  1651,  1652,  1653,  1654,  1655,
-		1656,  1657,  1658,  1659,  1660,  1661,  1662,  1663,
-		1664,  1665,  1666,  1667,  1668,  1669,  1670,  1671,
-		1672,  1673,  1674,  1675,  1676,  1677,  1678,  1679,
-		1680,  1681,  1682,  1683,  1684,  1685,  1686,  1687,
-		1688,  1689,  1690,  1691,  1692,  1693,  1694,  1695,
-		1696,  1697,  1698,  1699,  1700,  1701,  1702,  1703,
-		1704,  1705,  1706,  1707,  1708,  1709,  1710,  1711,
-		1712,  1713,  1714,  1715,  1716,  1717,  1718,  1719,
-		1720,  1721,  1722,  1723,  1724,  1725,  1726,  1727,
-		1728,  1729,  1730,  1731,  -847,  -5786, 582,   1735,
-		1736,  1609,  1610,  588,   1740,  591,   592,   593,
-		8357,  1745,  2327,  2327,  2327,  2327,  2327,  2327,
-		1357,  2328,  2328,  1755,  1756,  1757,  1758,  1759,
-		1760,  1761,  1762,  1763,  1764,  1765,  1766,  1767,
-		1768,  1769,  1770,  1771,  1772,  1773,  1774,  1775,
-		1776,  1777,  1778,  1779,  1780,  3434,  1782,  3435,
-		3435,  1785,  1786,  3437,  3437,  3437,  3306,  32767,
-		-2509, -2509, -2509, -2509, -2509, -2509, -2509, -2509,
-		-2509, 1800,  -2508, -2508, -2508, -2508, 32767, 32767,
-		-2510, 32767, -2511, 32767, 32767, -2513, -2513, -2513,
-		-2513, -2513, -2513, 1813,  1814,  1815,  1816,  32767,
-		-2509, 32767, -2510, 32767, 32767, -2511, -2511, 32767,
-		32767, 32767, -3871, -3871, -2513, -2513, -2513, -2513,
-		-2513, -2513, -2513, -2513, -2513, -2513, -2513, -2513,
-		-2513, -2513, -2513, 1838,  1839,  1840,  1841,  1842,
-		1843,  1844,  1845,  1846,  1847,  1848,  1849,  1850,
-		1851,  1852,  1853,  1854,  1855,  1856,  1857,  1858,
-		1859,  1860,  1861,  1862,  1863,  1864,  1865,  1866,
-		1867,  1868,  1869,  1870,  1871,  1872,  1873,  1874,
-		1875,  1876,  1877,  1878,  1879,  1880,  1881,  1882,
-		1883,  1401,  1885,  1886,  1887,  1888,  32767, 32767,
-		1889,  1890,  1891,  1892,  1893,  1894,  1895,  1896,
-		1897,  1898,  1899,  1900,  1901,  1902,  1903,  1904,
-		1905,  1906,  1907,  1908,  1909,  1910,  1911,  1912,
-		1913,  1914,  1915,  1916,  1917,  1918,  1919,  1920,
-		1921,  1922,  1923,  1924,  1925,  1926,  1927,  1928,
-		1929,  1930,  1931,  1932,  1933,  1934,  1935,  1936,
-		1937,  1938,  1939,  1940,  1941,  1942,  1943,  1944,
-		1945,  1946,  1947,  1948,  1949,  1950,  1951,  1952,
-		1953,  1954,  1955,  1956,  1957,  1958,  1959,  1960,
-		1961,  1962,  1963,  1964,  1965,  1966,  1967,  1968,
-		1969,  1970,  1971,  1972,  1973,  1974,  1975,  1976,
-		1977,  1978,  1979,  1980,  1981,  1982,  1983,  1984,
-		1985,  1986,  1987,  1988,  1989,  1990,  1991,  1992,
-		3710,  1994,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 167,   612,   32767, 32767, 2714,  32767,
-		32767, 32767, 32767, 32767, 168,   32767, 32767, 32767,
-		32767, 169,   32767, 32767, 32767, 32767, 170,   32767,
-		32767, 32767, 32767, 171,   32767, 32767, 32767, 32767,
-		32767, 1995,  1996,  1997,  1998,  1999,  2000,  2001,
-		172,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -1151, -127,  -126,  -1148,
-		-1147, 32767, 32767, 32767, 32767, 32767, 585,   32767,
-		584,   584,   584,   584,   584,   584,   584,   584,
-		584,   -3808, 584,   584,   584,   584,   584,   584,
-		584,   584,   584,   584,   584,   584,   584,   584,
-		32767, -1121, -1120, -1119, -1118, -1117, 32767, -1116,
-		32767, 2038,  2039,  32767, 2040,  -3952, 32767, 2042,
-		2043,  3524,  3525,  3526,  3527,  3528,  3529,  3530,
-		3531,  3532,  -385,  -384,  2055,  -383,  -382,  -381,
-		-380,  -379,  -378,  -377,  2063,  2064,  -376,  2066,
-		-375,  2068,  -374,  -373,  2071,  2072,  2073,  -322,
-		2075,  2076,  2077,  2078,  2079,  2080,  2081,  2082,
-		2083,  2084,  2085,  2086,  2087,  2088,  2089,  2090,
-		718,   2092,  2093,  0,     -347,  2096,  -2016, 134,
-		135,   2100,  2101,  2102,  2103,  0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     2156,  0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     1364,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     -4392, 0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     2227,  0,     0,     2230,  2231,  0,
-		2233,  2105,  0,     0,     2497,  2498,  0,     0,
-		0,     0,     2503,  0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     4513,  4514,  4515,
-		4516,  4517,  4518,  4519,  4520,  4521,  4522,  0,
-		0,     4525,  0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     5008,  0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     -988,  -988,  -988,  -988,
-		-988,  -988,  -988,  -988,  -988,  -988,  -988,  0,
-		0,     0,     0,     0,     -983,  -983,  -983,  -983,
-		-983,  -983,  -983,  -983,  -983,  -983,  -983,  -983,
-		-983,  -983,  -983,  -983,  -983,  4585,  4586,  4587,
-		4588,  4589,  4590,  4591,  4592,  4593,  4594,  4595,
-		4596,  -3025, 4598,  4599,  4600,  4601,  4602,  4603,
-		4604,  4605,  4606,  4607,  4608,  4609,  4610,  4611,
-		4612,  4613,  4614,  4615,  4616,  4617,  4618,  942,
-		-209,  941,   941,   1326,  4624,  4625,  4626,  4627,
-		4628,  4629,  4630,  -7320, 177,   178,   179,   180,
-		4636,  4637,  4638,  4639,  4640,  4641,  187,   188,
-		189,   190,   191,   192,   193,   194,   195,   4651,
-		4652,  4653,  4654,  4655,  4656,  4657,  4658,  4659,
-		4660,  4661,  4662,  4663,  4664,  4665,  4666,  4667,
-		4668,  4669,  4670,  4671,  0,     0,     0,     0,
-		0,     0,     0,     2119,  2119,  1662,  4682,  4683,
-		4684,  4685,  1670,  4580,  9520,  3153,  2001,  3153,
-		2130,  2130,  3153,  3153,  3153,  3153,  3153,  -4610,
-		2003,  1422,  1423,  1424,  1425,  1426,  1427,  1428,
-		1429,  1430,  1431,  1432,  5825,  1434,  1435,  1436,
-		1437,  1438,  1439,  1440,  1441,  1442,  1443,  1444,
-		1445,  1446,  1447,  1448,  3153,  3153,  3153,  3153,
-		3153,  8643,  3153,  3153,  0,     0,     9390,  0,
-		5993,  -1478, 0,     0,     -1480, -1480, -1480, -1480,
-		-1480, -1480, -1480, -1480, -1480, 2438,  2438,  0,
-		2439,  2439,  2439,  2439,  2439,  2439,  2439,  0,
-		0,     2441,  0,     2442,  0,     2443,  2443,  0,
-		0,     0,     2396,  0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     1373,  0,     0,     2094,  2442,
-		0,     4113,  1964,  1964,  0,     0,     0,     0,
-		2104,  2105,  2106,  2107,  2108,  2109,  2110,  2111,
-		2112,  2113,  2114,  2115,  2116,  2117,  2118,  2119,
-		2120,  2121,  2122,  2123,  2124,  2125,  2126,  2127,
-		2128,  2129,  2130,  2131,  2132,  2133,  2134,  2135,
-		2136,  2137,  2138,  2139,  2140,  2141,  2142,  2143,
-		2144,  2145,  2146,  2147,  2148,  2149,  4849,  4850,
-		4851,  4852,  4853,  4854,  4855,  4856,  4857,  4858,
-		4859,  4860,  4861,  4862,  4863,  4864,  2500,  4866,
-		4867,  4868,  4869,  4870,  2505,  4872,  4873,  4874,
-		2508,  4876,  4877,  4878,  4879,  4880,  2513,  2150,
-		2151,  2152,  2153,  2154,  2155,  0,     2157,  2158,
-		2159,  2160,  2161,  2162,  2163,  2164,  2165,  2166,
-		2167,  2168,  805,   2170,  2171,  2172,  2173,  2174,
-		2175,  2176,  2177,  2178,  2179,  2180,  2181,  2182,
-		2183,  2184,  2185,  2186,  2187,  2188,  2189,  2190,
-		2191,  2192,  2193,  2194,  0,     4928,  4929,  4930,
-		4931,  4932,  0,     4934,  4935,  4936,  4937,  7848,
-		4939,  0,     0,     0,     4943,  4944,  4945,  4946,
-		4947,  4948,  4949,  4950,  0,     4952,  4953,  4954,
-		0,     0,     2546,  0,     0,     2546,  2546,  2546,
-		4963,  -5990, 4965,  1530,  4967,  4968,  4969,  4970,
-		4971,  8142,  8142,  8142,  8142,  1530,  2112,  4978,
-		4979,  4980,  4981,  4982,  2644,  2645,  2646,  2647,
-		2648,  2649,  2650,  2651,  2099,  2653,  4993,  4994,
-		4995,  4996,  4997,  4998,  2092,  5000,  5001,  5002,
-		5003,  5004,  5005,  287,   5007,  5008,  32767, 5009,
-		5010,  5011,  5012,  -2457, 5014,  -2456, 5016,  5017,
-		5018,  5019,  5020,  5021,  5022,  5023,  5024,  5025,
-		5026,  5027,  5028,  -4624, 5030,  5031,  5032,  5033,
-		5034,  5035,  5036,  5037,  5038,  2677,  2678,  2679,
-		2680,  2681,  2682,  2683,  2684,  2685,  2686,  -6383,
-		2687,  2688,  2689,  2690,  2691,  2692,  2693,  2694,
-		2695,  2696,  2697,  2698,  2699,  2700,  2701,  2702,
-		2703,  2704,  2705,  32767, 2706,  2707,  2708,  2709,
-		32767, 32767, 32767, 32767, 2710,  4682,  4683,  32767,
-		2713,  32767, 2714,  906,   907,   908,   909,   2719,
-		2720,  910,   2722,  2723,  2724,  2725,  2726,  2727,
-		2728,  2729,  2730,  2731,  2732,  2733,  2734,  2735,
-		2736,  2737,  2738,  2739,  2740,  2741,  2742,  2743,
-		2744,  2745,  2746,  2747,  2748,  2749,  2750,  2751,
-		2752,  2753,  2974,  2755,  174,   2757,  2758,  2759,
-		2760,  2761,  2762,  2763,  2764,  2765,  2766,  2767,
-		2768,  2769,  2770,  6689,  6690,  6691,  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,  5259,  2818,  3298,  3299,  2821,  2822,  2823,
-		2824,  2825,  2826,  3170,  2828,  2829,  2830,  2831,
-		2832,  2833,  2834,  3177,  3177,  3177,  3177,  3177,
-		3177,  2841,  2842,  2843,  2844,  2845,  2846,  2847,
-		2848,  32767, 32767, 32767, 32767, 32767, 2849,  2850,
-		2851,  2852,  2853,  2854,  2855,  2856,  2857,  2858,
-		2859,  2860,  2861,  2862,  2863,  2864,  2865,  2866,
-		2867,  2868,  2869,  2870,  2871,  2872,  2873,  2874,
-		2875,  2876,  2877,  2878,  2879,  2880,  2881,  2882,
-		2883,  -1495, 2885,  2886,  4004,  4005,  4006,  4007,
-		4008,  -1495, -1495, 2894,  2895,  -1495, -1495, 2898,
-		2899,  2900,  2901,  2902,  2903,  2904,  2905,  -1494,
-		2907,  2908,  2909,  2910,  2911,  2912,  2913,  -1494,
-		2915,  2916,  2917,  2918,  3677,  2920,  3680,  3681,
-		3129,  2924,  2925,  2926,  2927,  2928,  2929,  2930,
-		2931,  2932,  2933,  2934,  2935,  2936,  2937,  2938,
-		2939,  2940,  2941,  2942,  2943,  2944,  2945,  2946,
-		2947,  2948,  2949,  2950,  2951,  2952,  2953,  2954,
-		2955,  2956,  -1468, -1468, 2959,  2960,  2961,  2962,
-		2963,  2964,  2965,  2966,  2967,  2968,  2969,  2970,
-		2971,  2972,  2973,  2974,  2975,  2976,  2977,  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,  32767, 32767, 32767, 3039,
-		3040,  3041,  3042,  3043,  3044,  32767, 32767, 3045,
-		3046,  3047,  3048,  3049,  3050,  32767, 32767, 3051,
-		3052,  3053,  3054,  3055,  3056,  32767, 32767, 3057,
-		3058,  3059,  32767, 32767, 32767, 3060,  3061,  3062,
-		3063,  3064,  3065,  3066,  32767, 3067,  3068,  3069,
-		3070,  3071,  3072,  3073,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -7311,6 +6893,16 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 4205,  4206,  4207,
+		4208,  4209,  4210,  4211,  4212,  4213,  4214,  4215,
+		4216,  -4880, 4218,  5470,  -4882, 4221,  4222,  4223,
+		4224,  4225,  4226,  4227,  4228,  1009,  4230,  4231,
+		1007,  4233,  4234,  4250,  4250,  4250,  4238,  4239,
+		4240,  4253,  4253,  4243,  4244,  4245,  4246,  4247,
+		4248,  4249,  4250,  4251,  4252,  4253,  4254,  353,
+		7010,  3652,  4258,  4259,  7011,  4261,  4262,  4263,
+		4264,  4265,  4266,  32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 105,   32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -7318,38 +6910,411 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 2834,  32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, -2302, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 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,
-		0,     0,     0,     0,     32767, 0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		32767, 0,     0,     32767, 0,     32767, 32767, 0,
-		32767, 0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     32767, 0,     0,     0,     0,
-		32767, 0,     32767, 0,     32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		-2356, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 0,     32767, 32767, 32767, 32767, 0,
-		32767, 0,     32767, 0,     32767, 0,     0,     0,
-		32767, 0,     0,     32767, 0,     32767, 32767, 0,
-		32767, 0,     32767, 0,     32767, 0,     32767, 0,
-		32767, 0,     0,     32767, 0,     32767, 32767, 0,
-		0,     0,     0,     32767, 0,     0,     0,     0,
-		0,     0,     0,     32767, 0,     0,     0,     0,
-		32767, 0,     0,     0,     0,     32767, 0,     32767,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     32767, 0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     32767, 32767, 32767, 32767,
-		32767, 0,     0,     0,     32767, 0,     0,     0,
-		0,     0,     32767, -1358, -1358, 0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 0,     32767, 32767, 32767,
+		32767, -4130, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, -48,   32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		299,   32767, 300,   301,   -2381, -2381, -2381, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, -2388, 32767,
+		32767, -4398, -4398, -4398, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		-17740,32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 4825,  32767, 32767, 32767, 32767, -4293,
+		32767, 32767, 32767, 109,   -5804, 111,   112,   32767,
+		32767, -4301, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, -2438, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 685,   32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		-20069,32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		3994,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, -6790, -6790,
+		157,   -3219, -17570,-1719, -1719, -3027, -3027, -19414,
+		-3027, -9665, -3028, -3028, -3028, -3028, -3028, 4977,
+		577,   -3028, -3028, -6421, 4983,  -6422, -17851,9446,
+		-3028, -3028, 331,   -3028, 3628,  -3027, -3027, -3027,
+		-3027, -3027, -3027, 1374,  4980,  4981,  8375,  -3028,
+		8378,  19808, -7488, 4987,  -3031, 3880,  -3042, 1588,
+		24261, -3032, 24264, -3032, 24267, -3032, 19640, -3032,
+		24262, -3033, 1694,  -3033, -3033, 1597,  24270, 1699,
+		1700,  1701,  1702,  1703,  16265, -3014, 1706,  1707,
+		1708,  1709,  8366,  5008,  8368,  1713,  8369,  8370,
+		8371,  1717,  8374,  8375,  3975,  370,   370,   -3023,
+		8381,  -3024, -14453,12844, 370,   8389,  1479,  8402,
+		3773,  -18899,8395,  -18900,8397,  -18901,8399,  -14272,
+		8401,  -18892,8404,  3678,  8406,  8407,  3778,  -18894,
+		3678,  3678,  3678,  3678,  3678,  -10883,8397,  3678,
+		3678,  3678,  3678,  -2978, 381,   -2978, 3678,  -2977,
+		-2977, -2977, 3678,  -2978, -2978, 1423,  5029,  5030,
+		8424,  -2979, 8427,  19857, -7439, 5036,  5037,  1679,
+		5039,  -1616, 5040,  5041,  5042,  5043,  5044,  5045,
+		645,   -2960, -2960, -6353, 5051,  -6354, -17783,9514,
+		-2960, 5059,  -1851, 5072,  443,   -22229,5065,  -22230,
+		5067,  -22231,5069,  -17602,5071,  -22222,5074,  348,
+		5076,  5077,  448,   -22224,348,   348,   348,   348,
+		348,   -14213,5067,  348,   348,   348,   348,   -6308,
+		-2949, -6308, 348,   -6307, -6307, -6307, 348,   -6308,
+		-6308, -1907, 1699,  1700,  5094,  -6309, 5097,  16527,
+		-10769,1706,  1707,  -1651, 348,   348,   348,   1286,
+		348,   348,   348,   348,   348,   348,   1603,  348,
+		348,   348,   348,   348,   348,   348,   348,   348,
+		348,   348,   348,   348,   348,   348,   348,   348,
+		348,   348,   348,   348,   348,   348,   348,   4429,
+		4429,  4429,  4429,  4429,  2660,  2661,  2662,  901,
+		348,   348,   348,   348,   348,   348,   348,   348,
+		3928,  3306,  3306,  3928,  0,     2675,  2676,  2677,
+		2678,  0,     2680,  0,     0,     2683,  2684,  2685,
+		2686,  4556,  2687,  2688,  2689,  8575,  2691,  2692,
+		-9266, -9266, -4636, 18037, -9256, 18040, -9256, 18043,
+		18044, 13415, -9257, 18037, -9258, 18039, -9259, -9259,
+		-4629, 18044, 4581,  4582,  4583,  -2184, -4527, 10035,
+		-9244, -2185, -4524, 4590,  -4523, 2134,  -1224, 2717,
+		4595,  2719,  2720,  4598,  6107,  6107,  6107,  2725,
+		2726,  2727,  4605,  2729,  2730,  2731,  4609,  2736,
+		4611,  4612,  4613,  6118,  6118,  4616,  6119,  2743,
+		4619,  4620,  2744,  2745,  6123,  2747,  6124,  4626,
+		4627,  4628,  4629,  2753,  4631,  2755,  4633,  8896,
+		8897,  8898,  4637,  4638,  4639,  4640,  0,     0,
+		0,     0,     0,     -1812, 0,     0,     0,     8925,
+		0,     0,     1330,  -3389, 0,     0,     0,     8940,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		10649, 8068,  0,     0,     16017, 8807,  8808,  -1676,
+		906,   8811,  -7039, -7038, 173,   173,   10658, 8077,
+		173,   16024, 16024, 8814,  8815,  -1669, 913,   8818,
+		-7032, -7031, 180,   180,   10665, 8084,  180,   16031,
+		16031, 8821,  8822,  -1662, 920,   8825,  9014,  -7023,
+		188,   188,   10673, 8092,  188,   0,     16038, 8828,
+		8829,  -1655, 927,   8832,  4727,  4728,  4729,  4730,
+		4305,  4732,  4733,  4734,  4735,  4736,  4737,  4738,
+		4739,  4740,  4741,  4742,  4743,  4744,  4745,  4746,
+		4747,  4748,  1540,  1540,  1540,  1540,  1540,  1540,
+		1540,  1540,  1540,  1540,  1540,  -1893, 1540,  1540,
+		1540,  1540,  1540,  1540,  1540,  1540,  1540,  1540,
+		1540,  1540,  1540,  1540,  1540,  1540,  1540,  1540,
+		1540,  1540,  1540,  1540,  1540,  1540,  911,   1540,
+		4614,  4615,  4616,  4617,  4618,  1540,  4619,  4620,
+		4621,  4622,  4623,  4624,  4625,  4626,  4627,  -7592,
+		11688, 4630,  4631,  4632,  4633,  4634,  4635,  32767,
+		4810,  4811,  4812,  4813,  3850,  3851,  4816,  4817,
+		4818,  4819,  4820,  4821,  4822,  4823,  4824,  4825,
+		4573,  4573,  4573,  4573,  4830,  4574,  4574,  4574,
+		4834,  4575,  4575,  4575,  4575,  4575,  917,   918,
+		4575,  4575,  4575,  4575,  923,   4576,  4576,  926,
+		927,   928,   7709,  930,   931,   932,   933,   934,
+		7717,  936,   7719,  938,   7722,  940,   941,   942,
+		943,   944,   945,   946,   7733,  948,   949,   950,
+		951,   952,   953,   954,   955,   956,   957,   958,
+		959,   960,   961,   962,   963,   964,   965,   4765,
+		967,   968,   969,   970,   971,   972,   973,   974,
+		975,   976,   977,   978,   4902,  4903,  -2043, 1334,
+		15686, -164,  -163,  1146,  1147,  17535, 1149,  7788,
+		1152,  1153,  1154,  1155,  1156,  -6848, -2447, 1159,
+		1160,  4554,  -6849, 4557,  15987, -11309,1166,  7797,
+		7798,  7799,  -5489, 1167,  1168,  1169,  1170,  1171,
+		1172,  -3228, -6833, -6833, -10226,1178,  -10227,-21656,
+		7812,  7813,  7814,  7815,  7816,  4951,  7817,  7818,
+		4954,  4955,  4956,  4957,  4958,  4959,  4960,  4961,
+		4962,  7837,  4964,  4965,  4966,  4967,  4968,  4969,
+		4970,  4971,  4972,  4973,  4974,  4975,  4976,  4977,
+		4978,  4979,  4980,  4981,  4982,  4983,  4984,  4985,
+		4986,  4987,  4988,  4989,  4990,  4991,  4992,  4993,
+		4994,  4995,  4996,  4997,  4998,  4999,  5000,  5001,
+		5002,  5003,  5004,  5005,  5006,  5007,  5008,  5009,
+		5010,  0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     -224,  -224,  -224,  -6880, -3521, -6880, -224,
+		-6879, -6879, -6879, -6879, -6879, -6879, -2478, 1128,
+		1129,  4523,  -6880, 4526,  15956, -11340,1135,  -6883,
+		28,    -6894, -2264, 20409, -6884, 20412, -6884, 20415,
+		20416, 15787, -6885, 20409, -6886, -2159, -6886, -6886,
+		-2256, 20417, -2154, -2153, -2152, -2151, -2150, 12412,
+		-6867, -2147, -2146, -2145, -2144, 4513,  1155,  4515,
+		-2140, 4516,  4517,  4518,  -2136, 4521,  4522,  122,
+		-3483, -3483, -6876, 4528,  -6877, -18306,8991,  -3483,
+		-3483, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, -3490, 911,   4517,  4518,  7912,  -3491, 7915,
+		19345, -7951, 4524,  -3494, 3417,  -3505, 1125,  23798,
+		-3495, 23801, -3495, 23804, -3495, 19177, -3495, 23799,
+		-3496, 1231,  -3496, -3496, 1134,  23807, 1236,  1237,
+		1238,  1239,  1240,  15802, -3477, 1243,  1244,  1245,
+		1246,  7903,  4545,  7905,  1250,  7906,  7907,  7908,
+		7909,  7910,  7911,  3511,  -94,   -94,   -3487, 7917,
+		-3488, -14917,12380, -94,   7925,  1015,  7938,  3309,
+		-19363,7931,  -19364,7933,  -19365,7935,  -14736,7937,
+		-19356,7940,  3214,  7942,  7943,  3314,  -19358,3214,
+		3214,  3214,  3214,  3214,  -11347,7933,  3214,  3214,
+		3214,  3214,  -3442, -83,   -3442, 3214,  -3441, -3441,
+		-3441, 3214,  -3442, -3442, 959,   4565,  4566,  7960,
+		-3443, 7963,  19393, -7903, 4572,  4573,  1215,  4575,
+		-2080, 4576,  4577,  4578,  4579,  4580,  4581,  181,
+		-3424, -3424, -6817, 4587,  -6818, -18247,9050,  -3424,
+		4595,  -2315, 4608,  -21,   -22693,4601,  -22694,4603,
+		-22695,4605,  -18066,4607,  -22686,4610,  -116,  4612,
+		4613,  -16,   -22688,-116,  -116,  -116,  -116,  -116,
+		-14677,4603,  -116,  -116,  -116,  -116,  -6772, -3413,
+		-6772, -116,  -6771, -6771, -6771, -116,  -6772, -6772,
+		-2371, 1235,  1236,  4630,  -6773, 4633,  16063, -11233,
+		1242,  -6776, 135,   -6787, -2157, 20516, -6777, 20519,
+		-6777, 20522, -6777, 15895, -6777, 20517, -6778, -2051,
+		-6778, -6778, -2148, 20525, -2046, -2045, -2044, -2043,
+		-2042, 12520, -6759, -2039, -2038, -2037, -2036, 4621,
+		1263,  4623,  -2032, 4624,  4625,  4626,  -2028, 4629,
+		4630,  230,   -3375, -3375, -6768, 4636,  -6769, -18198,
+		9099,  -3375, -3375, -16,   -3375, 3281,  -3374, -3374,
+		-3374, -3374, -3374, -3374, 1027,  4633,  4634,  8028,
+		-3375, 8031,  19461, -7835, 4640,  -3378, 3533,  -3389,
+		1241,  23914, -3379, 23917, -3379, 23920, -3379, 19293,
+		-3379, 23915, -3380, 1347,  -3380, -3380, 1250,  23923,
+		1352,  1353,  1354,  1355,  1356,  15918, -3361, 1359,
+		1360,  1361,  1362,  8019,  4661,  8021,  1366,  8022,
+		8023,  8024,  1370,  8027,  8028,  3628,  23,    23,
+		-3370, 8034,  -3371, -14800,12497, 23,    23,    3382,
+		1384,  1385,  1386,  449,   1388,  1389,  1390,  1391,
+		1392,  1393,  139,   1395,  1396,  1397,  1398,  1399,
+		1400,  1401,  1402,  1403,  1404,  1405,  1406,  1407,
+		1408,  1409,  1410,  1411,  1412,  1413,  1414,  1415,
+		1416,  1417,  1418,  -2662, -2661, -2660, -2659, -2658,
+		-888,  -888,  -888,  874,   1428,  1429,  1430,  1431,
+		1432,  1433,  1434,  1435,  -2144, -1521, -1520, -2141,
+		1788,  -886,  -886,  3336,  1791,  1792,  1793,  1794,
+		1795,  1796,  1797,  1798,  1799,  1800,  1801,  1802,
+		1803,  1804,  1458,  1459,  1805,  1461,  1806,  1463,
+		1464,  1807,  1808,  1809,  1810,  1811,  1812,  1813,
+		1814,  1815,  1816,  1381,  1817,  1381,  1818,  1381,
+		1480,  1819,  1820,  1483,  1484,  1485,  1821,  1822,
+		1823,  1824,  1825,  1826,  1827,  1828,  1829,  1830,
+		1831,  1832,  1833,  1834,  1835,  1836,  1837,  1838,
+		1839,  1840,  1841,  1842,  1843,  1844,  1845,  1846,
+		1847,  1848,  1849,  1850,  1851,  1852,  1853,  1854,
+		1855,  1856,  1857,  1858,  1859,  1860,  1861,  1862,
+		1863,  1864,  1865,  1866,  1867,  1868,  1869,  1870,
+		1871,  1872,  1873,  1874,  1875,  1876,  1877,  0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     9097,  0,     -1251, 9102,  0,
+		0,     0,     0,     0,     0,     0,     0,     3220,
+		0,     0,     3225,  0,     0,     -15,   -14,   -13,
+		0,     0,     0,     -12,   -11,   0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     3902,  -2754, 605,   0,     0,     -2751, 0,
+		0,     0,     0,     0,     0,     1938,  1939,  1940,
+		1941,  1942,  1943,  1944,  1945,  1946,  1947,  1948,
+		1949,  1950,  1951,  1530,  1443,  1532,  1533,  1956,
+		1957,  1958,  1959,  1960,  1961,  1962,  141,   1964,
+		1534,  1966,  1967,  1968,  1969,  1970,  1971,  1972,
+		1973,  1974,  1975,  1976,  1977,  1978,  1979,  1980,
+		1981,  142,   143,   1984,  1985,  1986,  1987,  1988,
+		1989,  1990,  1991,  1992,  1993,  1994,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 1665,  1996,  1997,
+		1998,  1999,  2000,  2001,  32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		2002,  2003,  2004,  2005,  2006,  32767, 32767, 32767,
+		32767, 32767, 2007,  32767, 2008,  2009,  2010,  2011,
+		2012,  2013,  2014,  2015,  2016,  2017,  2018,  2019,
+		2020,  2021,  2022,  2023,  2024,  2025,  2026,  2027,
+		-4501, -4501, -4501, -4501, -1422, -4500, -4500, -4500,
+		2035,  2036,  32767, 1706,  32767, 1706,  1706,  32767,
+		1705,  1705,  32767, 2042,  2043,  2044,  2045,  2046,
+		2047,  1711,  2049,  1712,  2051,  4525,  4525,  4525,
+		2055,  2056,  2057,  4528,  2059,  2060,  2061,  2062,
+		2063,  2064,  2065,  7042,  2067,  4536,  4536,  4536,
+		2071,  2072,  2073,  4539,  2075,  2076,  2077,  2078,
+		2079,  2080,  2081,  2082,  2083,  2084,  1735,  1735,
+		2087,  2088,  2089,  2090,  2091,  2092,  2093,  2094,
+		226,   227,   2097,  228,   229,   230,   6116,  232,
+		233,   -11725,-11725,-7095, 15578, -11715,15581, -11715,
+		15584, 15585, 10956, -11716,15578, -11717,15580, -11718,
+		-11718,-7088, 15585, 2122,  2123,  2124,  -4643, -6986,
+		7576,  -11703,-4644, -6983, 2131,  -6982, -325,  -3683,
+		258,   2136,  260,   261,   2139,  3648,  3648,  3648,
+		266,   267,   268,   2146,  270,   271,   272,   -1029,
+		32767, 32767, 32767, 32767, 6972,  2572,  32767, -1034,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -4286,
+		32767, 32767, -2089, 32767, 3715,  32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		-2492, -2492, -2492, -2492, -4304, -2492, -2492, -2492,
+		6433,  -2492, -2492, -1162, -5881, -2492, -2492, -2492,
+		6448,  -2492, -2492, -2492, -2492, -2492, -2492, -2492,
+		-2492, -2492, -2492, -2492, -2492, -2492, -2492, -2492,
+		-2492, 8157,  5576,  -2492, -2492, 13525, 6315,  6316,
+		-4168, -1586, 6319,  -9531, -9530, 32767, 2195,  2196,
+		2197,  2198,  2199,  2200,  2201,  2202,  2203,  2204,
+		2205,  2206,  2207,  2208,  2209,  2210,  2211,  2212,
+		2213,  2214,  2215,  2216,  2217,  2218,  2219,  2220,
+		2221,  2222,  2223,  2224,  2225,  2226,  2227,  2228,
+		2229,  2230,  2231,  2232,  2233,  2234,  2235,  2236,
+		2237,  2238,  2239,  2240,  2241,  2242,  2243,  2244,
+		2245,  2246,  2247,  2248,  2249,  2250,  2251,  2252,
+		2253,  2254,  2255,  2256,  2257,  2258,  2259,  2260,
+		2261,  2262,  -5075, 2264,  2265,  2266,  2267,  2268,
+		2269,  2270,  2271,  2272,  2273,  2274,  2275,  2276,
+		2277,  2278,  2279,  2280,  2281,  2282,  2283,  2284,
+		2285,  2286,  2287,  2288,  2289,  2290,  2291,  2292,
+		2293,  2294,  2295,  2296,  2297,  2298,  2299,  2300,
+		2301,  2302,  2303,  1667,  1667,  2306,  2307,  2308,
+		2309,  2310,  2311,  2312,  2313,  2314,  2315,  2316,
+		2317,  2318,  2319,  2320,  2321,  1358,  1359,  2324,
+		2325,  2326,  2327,  2328,  2329,  2330,  2331,  2332,
+		2333,  2081,  2081,  2081,  2081,  2338,  2082,  2082,
+		2082,  2342,  2083,  2083,  2083,  2083,  2083,  -1575,
+		-1574, 2083,  2083,  2083,  2083,  -1569, 2084,  2084,
+		-1566, -1565, -1564, 5217,  -1562, -1561, -1560, -1559,
+		-1558, 5225,  -1556, 5227,  -1554, 5230,  -1552, -1551,
+		-1550, -1549, -1548, -1547, -1546, 5241,  -1544, -1543,
+		-1542, -1541, -1540, -1539, -1538, -1537, -1536, -1535,
+		-1534, -1533, -1532, -1531, -1530, -1529, -1528, -1527,
+		2273,  -1525, -1524, -1523, -1522, -1521, -1520, -1519,
+		-1518, -1517, -1516, -1515, -1514, 2410,  2411,  -4535,
+		-1158, 13194, -2656, -2655, -1346, -1345, 15043, -1343,
+		5296,  -1340, -1339, -1338, -1337, -1336, -9340, -4939,
+		-1333, -1332, 2062,  -9341, 2065,  13495, -13801,-1326,
+		5305,  5306,  5307,  -7981, -1325, -1324, -1323, -1322,
+		-1321, -1320, -5720, -9325, -9325, -12718,32767, 2451,
+		2452,  2453,  2454,  2455,  2456,  2457,  2458,  2459,
+		2460,  2461,  2462,  2463,  2464,  2465,  -6169, 4316,
+		1735,  -6169, 9682,  9682,  2472,  2473,  -8011, -5429,
+		2476,  -13374,-13373,2479,  2480,  2481,  2482,  2483,
+		2484,  2485,  2486,  2487,  2488,  2489,  2490,  2491,
+		2492,  2493,  2494,  2495,  2496,  2497,  2498,  203,
+		1141,  203,   203,   203,   203,   203,   203,   1458,
+		203,   2509,  2510,  2511,  2512,  32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 155,   32767, 32767, 32767,
+		32767, 156,   32767, 32767, 32767, 32767, 157,   207,
+		4288,  4288,  4288,  4288,  4288,  2519,  2520,  2521,
+		760,   207,   207,   207,   207,   207,   207,   207,
+		207,   3787,  3165,  3165,  2534,  2535,  2536,  2537,
+		2538,  2539,  -139,  2541,  -139,  -139,  2544,  2545,
+		2546,  2547,  2548,  2549,  2550,  2551,  8437,  2553,
+		2554,  -9404, -9404, -4774, 17899, -9394, 17902, -9394,
+		17905, 17906, 13277, -9395, 17899, -9396, -4669, -9396,
+		-9396, -4766, 17907, -4664, -4663, -4662, -4661, 0,
+		32767, -9379, -4659, -4658, -4657, -4656, 2001,  -1357,
+		2584,  4462,  2586,  2587,  4465,  5974,  5974,  5974,
+		2592,  2593,  2594,  4472,  2596,  2597,  2598,  4476,
+		2603,  4478,  4479,  4480,  5985,  5985,  4483,  5986,
+		2610,  4486,  4487,  2611,  2612,  5990,  2614,  5991,
+		4493,  4494,  4495,  4496,  2620,  4498,  2622,  4500,
+		8763,  8764,  8765,  4504,  4505,  4506,  4507,  32767,
+		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,     8635,
+		-1849, 733,   8638,  -7212, -7211, 0,     0,     10485,
+		7904,  0,     15851, 15851, 0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		2296,  1359,  2298,  2299,  2300,  2301,  2302,  2303,
+		1049,  2305,  0,     0,     0,     0,     0,     32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 173,   32767,
+		32767, 32767, 32767, 32767, 0,     32767, 32767, 32767,
+		2306,  -1774, -1773, -1772, -1771, -1770, 0,     0,
+		0,     1762,  2316,  2317,  2318,  2319,  2320,  2321,
+		2322,  2323,  -1256, -633,  -632,  0,     0,     0,
+		0,     0,     0,     2679,  0,     2681,  2682,  0,
+		0,     0,     0,     0,     0,     0,     0,     -5885,
+		0,     0,     11959, 11960, 7331,  -15341,11953, -15342,
+		11955, -15343,-15343,-10713,11960, -15333,11963, 7237,
+		11965, 11966, 7337,  -15335,7237,  7237,  7237,  7237,
+		7237,  -7324, 11956, 7237,  7237,  7237,  7237,  581,
+		3940,  0,     -1877, 0,     0,     -1877, -3385, -3384,
+		-3383, 0,     0,     0,     -1877, 0,     0,     0,
+		-1877, -3,    -1877, -1877, -1877, -3381, -3380, -1877,
+		-3379, -2,    -1877, -1877, 0,     0,     -3377, 0,
+		-3376, -1877, -1877, -1877, -1877, 0,     -1877, 0,
+		-1877, -6139, -6139, -6139, -1877, -1877, -1877, -1877,
+		2764,  2765,  2766,  2767,  2768,  4581,  2770,  2771,
+		2772,  -6152, 2774,  2775,  1446,  6166,  2778,  2779,
+		2780,  -6159, 2782,  2783,  2784,  2785,  2786,  2787,
+		2788,  2789,  2790,  2791,  2792,  2793,  2794,  2795,
+		2796,  2797,  -7851, -5269, 2800,  2801,  -13215,-6004,
+		-6004, 4481,  1900,  -6004, 9847,  9847,  2637,  2638,
+		-7846, -5264, 2641,  -13209,-13208,-5997, -5997, 4488,
+		1907,  -5997, 9854,  9854,  2644,  2645,  -7839, -5257,
+		2648,  -13202,-13201,-5990, -5990, 4495,  1914,  -5990,
+		-6178, 9860,  2650,  2651,  -7833, -5251, 2654,  2843,
+		-13194,-5983, -5983, 4502,  1921,  32767, 32767, 32767,
+		32767, 32767, 2849,  2850,  1029,  2852,  2422,  2854,
+		2855,  2856,  2857,  2858,  2859,  2860,  2861,  2862,
+		2863,  2864,  2865,  2866,  2867,  2868,  2869,  1030,
+		1031,  2872,  2873,  2874,  2875,  2876,  2877,  2878,
+		2879,  2880,  2881,  2882,  2883,  2884,  2885,  2886,
+		2887,  2888,  2889,  2890,  2891,  2892,  2893,  2894,
+		2895,  2896,  2897,  2898,  2899,  2900,  2901,  2902,
+		2903,  2904,  2905,  2906,  2907,  2908,  2909,  2910,
+		2911,  2912,  2913,  2914,  2915,  2916,  2917,  2918,
+		2919,  2920,  2921,  2922,  2923,  2924,  2925,  2926,
+		2927,  2928,  2929,  2930,  2931,  2932,  2933,  2934,
+		2935,  2936,  175,   176,   177,   178,   179,   180,
+		181,   182,   183,   184,   185,   186,   187,   188,
+		189,   190,   191,   192,   193,   194,   195,   2958,
+		2959,  2960,  2961,  2962,  2963,  2964,  2965,  2966,
+		2967,  2968,  2969,  2970,  2971,  2972,  2973,  2974,
+		2975,  2976,  2977,  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,  196,   197,   198,   199,   200,   201,   202,
+		203,   204,   205,   206,   207,   208,   209,   4471,
+		-2296, 212,   213,   214,   215,   216,   217,   218,
+		219,   220,   221,   3568,  3035,  3036,  3037,  3038,
+		32767, 32767, 32767, 3039,  3040,  3041,  3042,  3043,
+		3044,  32767, 32767, 3045,  3046,  3047,  4565,  3049,
+		4567,  32767, 32767, -1319, -1319, -1319, -1319, -1319,
+		-1319, 32767, 32767, -1321, -1321, 3059,  32767, 32767,
+		32767, -1050, 3061,  3062,  3063,  3064,  3065,  3066,
+		32767, 3067,  3068,  3069,  3070,  3693,  3694,  3073,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 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, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -7357,17 +7322,68 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 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,     32767, 0,     0,     0,     0,     32767, 32767,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		32767, 0,     0,     0,     0,     0,     0,     0,
+		32767, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     -3663, -3662, -3661, -3660, -3659, 0,     0,
+		-3656, -3655, -3654, -3653, 0,     -3652, -3651, 0,
+		0,     0,     -6780, 0,     0,     0,     0,     0,
+		-6782, 0,     -6782, 0,     -6783, 0,     0,     0,
+		0,     0,     0,     0,     -6786, 0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     -3799,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     -3923, -3923, 3024,  -352,
+		-14703,1148,  1148,  -160,  -160,  -16547,-160,  -6798,
+		-161,  -161,  -161,  -161,  -161,  7844,  3444,  -161,
+		-161,  -3554, 7850,  -3555, -14984,12313, -161,  -161,
+		3198,  -161,  6495,  -160,  -160,  -160,  -160,  -160,
+		-160,  4241,  7847,  7848,  11242, -161,  11245, 22675,
+		-4621, 7854,  -164,  6747,  -175,  4455,  27128, -165,
+		27131, -165,  27134, -165,  22507, -165,  27129, -166,
+		4561,  -166,  -166,  4464,  27137, 4566,  4567,  4568,
+		4569,  4570,  19132, -147,  4573,  4574,  4575,  4576,
+		11233, 7875,  11235, 4580,  11236, 11237, 11238, 4584,
+		11241, 11242, 6842,  3237,  3237,  -156,  11248, -157,
+		-11586,15711, 3237,  11256, 4346,  11269, 6640,  -16032,
+		11262, -16033,11264, -16034,11266, -11405,11268, -16025,
+		11271, 6545,  11273, 11274, 6645,  -16027,6545,  6545,
+		6545,  6545,  6545,  -8016, 11264, 6545,  6545,  6545,
+		6545,  -111,  3248,  -111,  6545,  -110,  -110,  -110,
+		6545,  -111,  -111,  4290,  7896,  7897,  11291, -112,
+		11294, 22724, -4572, 4364,  4365,  32767, 4366,  4367,
+		4368,  4369,  4370,  4371,  4372,  4373,  4374,  4375,
+		4376,  4377,  4378,  4379,  4380,  4381,  4382,  32767,
+		32767, 32767, 32767, 32767, 4383,  4384,  4385,  32767,
+		4386,  4387,  4388,  4389,  4390,  32767, 4391,  4392,
+		4393,  4394,  4395,  4396,  4397,  4398,  4399,  4400,
+		4401,  4402,  4403,  4404,  4405,  4406,  4407,  32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, -847,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 0,     -1078, -8000, -3370, 19303,
+		32767, 19305, -7991, 19308, -7991, 14681, -7991, 19303,
+		32767, 32767, -7994, 32767, -3365, 32767, -3264, -3263,
+		32767, 32767, 32767, 32767, 32767, 32767, -3262, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 3394,  3395,
+		-3259, 3398,  3399,  -1001, 32767, 32767, 32767, 32767,
+		-8004, -19433,32767, -4611, -4611, 32767, 32767, 32767,
+		32767, 32767, 32767, -4616, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 6782,  18212, -9084, 3391,  -4627,
+		2284,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		5181,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, -1272,
+		32767, 32767, 32767, 32767, 32767, -851,  32767, 32767,
+		0,     88,    0,     0,     32767, 32767, 32767, 89,
+		90,    32767, 91,    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,
@@ -7376,8 +7392,12 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 434,   435,   0,     436,   0,
+		437,   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, 434,   435,   436,   32767, 437,
+		438,   32767, 32767, 32767, 439,   32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -7392,23 +7412,20 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, -2069, 32767, 32767, -2071,
 		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, 0,     -2105, -2105, 32767, 32767, -2107,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4645,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		-1906, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 256,
-		257,   258,   32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -7416,92 +7433,112 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 4408,  4409,
+		4410,  4411,  4412,  4413,  4414,  4415,  4416,  4417,
+		4418,  32767, 32767, 32767, 32767, 32767, 4419,  4420,
+		4421,  4422,  4423,  4424,  4425,  4426,  4427,  4428,
+		20816, 4430,  4431,  4432,  4433,  4434,  4435,  4436,
+		-3568, 833,   4439,  4440,  7834,  -3569, 7837,  19267,
+		-8029, 4446,  4447,  1089,  4449,  -2206, 4450,  4451,
+		4452,  4453,  4454,  4455,  55,    -3550, 4458,  -6944,
+		4460,  4461,  -18375,4463,  4464,  4465,  4466,  4477,
+		-152,  -22824,4470,  -22825,4472,  -22826,4474,  -18197,
+		4476,  4477,  4478,  -248,  4480,  4481,  32767, -22821,
+		32767, -250,  32767, 32767, 32767, 32767, 32767, 32767,
+		-256,  32767, 32767, 32767, 32767, -6916, 32767, -6916,
+		32767, -6917, 32767, -6919, -6919, -2518, 32767, 1088,
+		4482,  4483,  4484,  32767, 32767, 1091,  32767, -17,
+		32767, -2310, 32767, -6931, 32767, -6932, 32767, -6933,
+		15739, 32767, 20360, 32767, 32767, -6937, -6937, -2307,
+		20366, 32767, -2205, -2204, -2203, -2202, 12360, -6919,
+		-2199, 32767, -2198, -2197, 4460,  1102,  4485,  -2194,
+		4462,  4463,  4464,  32767, 4466,  32767, 66,    -3539,
+		-3539, -6932, 4472,  -6933, -18362,8935,  0,     0,
+		32767, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     32767, 32767, 32767, 32767, 32767, 0,
+		0,     0,     32767, 0,     0,     0,     0,     0,
+		32767, 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, 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,
+		0,     32767, 32767, 32767, 32767, 32767, 32767, 4486,
+		4487,  4488,  32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4489,
+		4490,  4491,  4492,  4493,  4494,  4495,  4496,  4497,
+		4498,  4499,  4500,  4501,  4502,  4503,  4504,  4505,
+		4506,  4507,  4508,  4509,  4510,  4511,  4512,  4513,
+		4514,  4515,  4516,  4517,  4518,  4519,  4520,  4521,
+		4522,  4523,  4524,  4525,  4526,  4527,  4528,  4529,
+		4530,  4531,  4532,  32767, 32767, 32767, 32767, 4533,
+		4534,  4535,  4536,  4537,  4538,  4539,  4540,  4541,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4542,
+		4543,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, -1593, 32767, 32767, 0,     32767, 32767, 32767,
+		32767, 32767, 32767, 0,     32767, 32767, 0,     32767,
+		0,     0,     0,     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, 4210,  4211,  4212,  4213,  32767,
-		4214,  4215,  4216,  4217,  4218,  4219,  4220,  4221,
-		4222,  4223,  4224,  4225,  4226,  4227,  4228,  4229,
-		4230,  4231,  4232,  4233,  4234,  4235,  4236,  4237,
-		4238,  4239,  4240,  32767, 4241,  4242,  32767, 4243,
-		32767, 32767, 4244,  32767, 4245,  4246,  4247,  4248,
-		4249,  4250,  4251,  4252,  4253,  4254,  32767, 4255,
-		4256,  4257,  4258,  32767, 4259,  32767, 4260,  32767,
-		32767, 32767, 32767, 32767, 32767, 4261,  32767, 32767,
-		32767, 32767, 4262,  32767, 4263,  32767, 4264,  32767,
-		4265,  4266,  4267,  32767, 4268,  4269,  32767, 4270,
-		32767, 32767, 4271,  32767, 4272,  32767, 4273,  32767,
-		4274,  32767, 4275,  32767, 4276,  4277,  32767, 4278,
-		32767, 32767, 4279,  4280,  4281,  4282,  32767, 4283,
-		4284,  4285,  4286,  4287,  4288,  4289,  32767, 4290,
-		4291,  4292,  4293,  32767, 4294,  4295,  4296,  4297,
-		32767, 4298,  32767, 4299,  4300,  4301,  4302,  4303,
-		4304,  4305,  4306,  4307,  4308,  0,     4309,  4310,
-		4311,  4312,  4313,  4314,  4315,  4316,  4317,  4318,
-		4319,  4320,  4321,  4322,  4323,  4324,  4325,  0,
-		0,     0,     0,     32767, 4326,  4327,  4328,  32767,
-		4329,  4330,  4331,  4332,  4333,  32767, 5692,  5693,
-		4336,  4337,  4338,  4339,  4340,  4341,  4342,  4343,
-		4344,  4345,  4346,  4347,  4348,  4349,  4350,  0,
+		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,     483,   0,     0,
-		0,     0,     32767, 32767, 0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     7338,  0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     637,
+		638,   0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     964,   964,   0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     253,   254,   255,
+		256,   0,     257,   258,   259,   0,     260,   261,
+		262,   263,   264,   3923,  3923,  267,   268,   269,
+		270,   3923,  271,   272,   3923,  3923,  3923,  -2857,
+		3923,  3923,  3923,  3923,  3923,  -2859, 3923,  -2859,
+		3923,  -2860, 3923,  3923,  3923,  3923,  3923,  3923,
+		3923,  -2863, 3923,  3923,  3923,  3923,  3923,  3923,
+		3923,  3923,  3923,  3923,  3923,  3923,  3923,  3923,
+		3923,  3923,  3923,  3923,  124,   3923,  3923,  3923,
+		3923,  3923,  3923,  3923,  3923,  3923,  3923,  3923,
+		3923,  0,     0,     6947,  3571,  -10780,5071,  5071,
+		3763,  3763,  -12624,3763,  -2875, 3762,  3762,  3762,
+		3762,  3762,  11767, 7367,  3762,  3762,  369,   11773,
+		368,   -11061,16236, 3762,  -2868, -2868, -2868, 10421,
+		3766,  3766,  3766,  3766,  3766,  3766,  8167,  11773,
+		11774, 15168, 3765,  15171, 26601, -2866, -2866, -2866,
+		-2866, -2866, 0,     -2865, -2865, 0,     0,     0,
+		0,     0,     0,     0,     0,     0,     -2874, 0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     -1717, 0,     32767, 32767,
+		0,     0,     0,     0,     0,     0,     5011,  5012,
+		5013,  5014,  5015,  5016,  5017,  5018,  5019,  5020,
+		5021,  5022,  5023,  5024,  5025,  5026,  5027,  5028,
+		5029,  5030,  5031,  5032,  5033,  5034,  5035,  5036,
+		5037,  5038,  5039,  5040,  5041,  5042,  5267,  5268,
+		5269,  11926, 8568,  11928, 5273,  11929, 11930, 11931,
+		11932, 11933, 11934, 7534,  3929,  3929,  536,   11940,
+		535,   -10894,16403, 3929,  11948, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 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,     -1769, 0,     0,     0,     0,
-		0,     0,     0,     0,     0,     -1778, 0,     0,
-		0,     0,     -1782, 0,     0,     0,     0,     -1786,
-		0,     0,     0,     0,     -1790, 0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     -1802, 0,     0,     0,     0,     0,     0,
-		0,     0,     0,     -1811, 0,     -1812, -1812, -1812,
-		-1812, -1812, 0,     0,     0,     0,     0,     0,
-		0,     -1819, 0,     0,     0,     0,     0,     0,
-		-459,  -458,  0,     0,     0,     0,     -3016, 0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		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, 0,     32767,
-		0,     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,
@@ -7509,94 +7546,69 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		3160,  3161,  3162,  3163,  3164,  3165,  3166,  3167,
+		3168,  3169,  3170,  3171,  3172,  3173,  3174,  3175,
+		3176,  3177,  3178,  3179,  3180,  3181,  3182,  3183,
+		3184,  3185,  3186,  3187,  3188,  3189,  3190,  3191,
+		3416,  3417,  3418,  10075, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		223,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 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,     4379,
-		0,     0,     -1117, -1117, -1117, -1117, -1117, 4387,
-		4388,  0,     0,     4391,  4392,  0,     0,     0,
-		0,     0,     0,     0,     0,     4400,  0,     0,
-		0,     0,     0,     0,     0,     4408,  0,     0,
-		0,     0,     -758,  0,     -759,  -759,  -206,  0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		4425,  4426,  0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     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, 0,     0,     0,
-		0,     0,     0,     32767, 32767, 0,     0,     0,
-		0,     0,     0,     32767, 32767, 0,     0,     0,
-		0,     0,     0,     32767, 32767, 0,     0,     0,
-		32767, 32767, 32767, 0,     0,     0,     0,     0,
-		0,     0,     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, 4429,
-		4430,  4431,  32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 4432,
-		4433,  4434,  4435,  4436,  4437,  4438,  4439,  4440,
-		4441,  4442,  4443,  4444,  4445,  4446,  4447,  4448,
-		4449,  4450,  4451,  4452,  4453,  4454,  4455,  4456,
-		4457,  4458,  4459,  4460,  4461,  4462,  4463,  4464,
-		4465,  4466,  4467,  4468,  4469,  4470,  4471,  4472,
-		4473,  4474,  4475,  32767, 32767, 32767, 32767, 4476,
-		4477,  4478,  4479,  4480,  4481,  539,   540,   4484,
-		0,     0,     0,     0,     0,     0,     0,     4485,
-		1146,  0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		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, 0,     32767, 32767, 0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		-3433, 0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     -629,  0,     3074,  3075,  3076,  3077,  3078,
+		0,     3079,  3080,  3081,  3082,  3083,  3084,  3085,
+		3086,  3087,  -9132, 10148, 3090,  3091,  3092,  3093,
+		3094,  3095,  3096,  3097,  3098,  3099,  3100,  3101,
+		3102,  3103,  3104,  3105,  3106,  3107,  3108,  3109,
+		3110,  3111,  3112,  3113,  3114,  3115,  3116,  3117,
+		3118,  3119,  3120,  6777,  3121,  3122,  3123,  3124,
+		3125,  3126,  3127,  3128,  3129,  6780,  0,     6780,
+		6780,  6780,  0,     0,     0,     6782,  0,     0,
+		0,     0,     6784,  0,     6785,  0,     6786,  6786,
+		0,     6786,  0,     6787,  6787,  6787,  0,     6788,
+		6788,  6788,  6788,  6788,  6788,  6788,  0,     6789,
+		6789,  6789,  6789,  2990,  6789,  0,     0,     0,
+		0,     6793,  6793,  6793,  6793,  6793,  0,     0,
+		0,     0,     0,     0,     -7904, 7947,  7947,  6639,
+		6639,  -9748, 32767, 0,     6637,  32767, 32767, 6635,
+		32767, 32767, 10238, 6633,  32767, 32767, 14642, 3237,
+		-8192, 19105, 32767, 0,     0,     0,     13289, 6634,
+		6634,  6634,  6634,  6634,  6634,  11035, 14641, 32767,
+		18035, 32767, 18037, 29467, 0,     0,     0,     0,
+		0,     32767, 0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     -750,  0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     6227,
-		6228,  -3161, 6230,  238,   234,   6232,  6233,  7714,
-		7715,  7716,  7717,  7718,  7719,  7720,  7721,  7722,
-		7723,  -1929, 7725,  7726,  7727,  7728,  7729,  7730,
-		7731,  7732,  7733,  5372,  5373,  5374,  5375,  5376,
-		5377,  5378,  -3687, 5381,  5382,  -3687, 5383,  5384,
-		5385,  5386,  5387,  5388,  5389,  5390,  5391,  -3687,
-		-3687, -3687, -3687, -3687, -3687, -3687, -3687, -3687,
-		3129,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, -3700, 32767, 32767,
+		0,     0,     0,     0,     0,     32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		285,   -3734, -3734, 288,   289,   -3734, -3734, -3734,
-		-3734, -3734, -3734, -3734, -3734, -3734, -3734, -3734,
-		-3734, 1547,  -956,  -956,  -3734, -3734, -3734, 3440,
-		-3734, -3734, -3734, -3734, -3734, -3734, -3734, -3734,
-		-3734, -3734, -3734, -3734, -3734, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
@@ -7624,128 +7636,23 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		322,   323,   32767, 32767, 32767, 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,     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, 0,     0,     0,
+		0,     0,     0,     32767, 32767, 0,     0,     0,
+		0,     0,     32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 114,   115,   116,   117,   118,   119,   120,
-		121,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 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, 0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     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, 0,
-		0,     0,     0,     0,     0,     3943,  3943,  0,
-		0,     32767, 32767, 32767, 32767, 32767, 32767, 0,
-		3340,  32767, 325,   32767, 326,   32767, 327,   32767,
-		328,   32767, 329,   32767, 330,   32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 331,   32767, 332,   333,   334,   335,
-		336,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		337,   32767, 338,   32767, 339,   340,   341,   32767,
-		32767, 32767, 342,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 343,   32767, 344,   345,   346,   32767,
-		32767, 32767, 347,   32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 348,   32767, 349,   350,   351,   32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		352,   32767, 353,   32767, 354,   355,   32767, 32767,
-		-1816, -1816, -1816, -1816, -1816, -1816, -1816, -1816,
-		-1816, -1816, -1816, 32767, 32767, 32767, 32767, 32767,
-		32767, -1822, 32767, 32767, 32767, 32767, 32767, 368,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, 32767, 369,   370,   371,   32767,
-		32767, 32767, 32767, 32767, 32767, 32767, 32767, 372,
-		32767, 32767, 32767, 373,   374,   32767, 375,   376,
-		32767, 32767, 32767, 32767, 6367,  0,     -1152, 0,
-		-1023, -1023, 0,     0,     0,     0,     0,     -7763,
-		-1150, -1731, -1730, -1729, -1728, -1727, -1726, -1725,
-		-1724, -1723, -1722, -1721, 2672,  -1719, -1718, -1717,
-		-1716, -1715, -1714, -1713, -1712, -1711, -1710, -1709,
-		-1708, -1707, -1706, -1705, 0,     0,     0,     0,
-		0,     5490,  0,     0,     -3153, -3153, 6237,  -3153,
-		2840,  -4631, -3153, -3153, -4633, -4633, -4633, -4633,
-		-4633, -4633, -4633, -4633, -4633, -4633, 5020,  -4633,
-		-4633, -4633, -4633, -4633, -4633, -4633, -4633, -4633,
-		-2271, -2271, -2271, -2271, -2271, -2271, -2271, 6795,
-		-2272, -2272, 6798,  -2271, -2271, -2271, -2271, -2271,
-		-2271, -2271, -2271, -2271, -2271, 6808,  6809,  6810,
-		6811,  6812,  6813,  6814,  6815,  0,     0,     0,
-		-2281, 0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     2579,  7519,  1152,  0,     0,     128,   128,
-		1151,  0,     1150,  1150,  1150,  -6613, 0,     -581,
-		-580,  -579,  -578,  -577,  -576,  395,   -575,  -574,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     -1653, 0,     -1652, -1651, 0,     0,
-		-1650, -1649, -1648, -1516, -1647, 473,   474,   475,
-		476,   477,   32767, 32767, 32767, 32767, -7018, 479,
-		480,   481,   482,   32767, 32767, 32767, 32767, 32767,
-		32767, 483,   484,   485,   486,   487,   488,   489,
-		490,   491,   492,   493,   494,   495,   496,   497,
-		498,   499,   500,   501,   502,   503,   504,   9308,
-		506,   507,   508,   509,   510,   511,   512,   513,
-		514,   515,   3684,  3684,  3684,  519,   3685,  3685,
-		9912,  9913,  524,   9915,  3923,  3919,  9917,  9918,
-		11399, 0,     11402, 11403, 11404, 11405, 11406, 11407,
-		11408, 11409, 1757,  11411, 11412, 11413, 11414, 11415,
-		11416, 11417, 11418, 11419, 0,     9060,  9061,  9062,
-		9063,  9064,  9065,  0,     9068,  9069,  0,     9070,
-		9071,  9072,  9073,  9074,  9075,  9076,  9077,  9078,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     2659,  0,     0,     0,     0,
-		0,     0,     0,     0,     0,     2745,  2745,  2745,
-		2745,  2745,  2745,  2745,  2745,  2745,  0,     0,
-		0,     -4730, 6052,  0,     -4732, -4732, -4732, -4732,
-		0,     0,     4919,  -4734, -4734, 0,     -4735, -4735,
-		-4735, 4019,  0,     0,     4022,  4023,  0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     5281,  2778,  2778,  0,     0,     0,
-		7174,  0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     2067,  918,
-		32767, 534,   -2763, 0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     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,
@@ -7755,158 +7662,350 @@ NFKC_QC_hash_func(const void *key)
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 224,   225,   226,   32767, 227,   228,   229,
+		230,   231,   232,   233,   234,   235,   236,   237,
+		32767, 2087,  -494,  -8398, 7453,  7453,  243,   244,
+		-10240,-7658, 247,   -15603,-15602,250,   251,   252,
+		253,   254,   255,   32767, 256,   257,   258,   259,
+		260,   261,   262,   263,   264,   265,   266,   267,
+		268,   -2027, -1089, -2027, -2027, -2027, -2027, -2027,
+		-2027, -772,  -2027, 279,   280,   281,   282,   283,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 284,   32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, -1717, 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,     553,   0,     32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		285,   286,   287,   288,   289,   290,   291,   292,
+		6178,  294,   295,   -11663,-11663,-7033, 15640, -11653,
+		15643, -11653,15646, 15647, 11018, -11654,15640, -11655,
+		-6928, -11655,-11655,-7025, 15648, -6923, -6922, -6921,
+		-6920, -6919, 7643,  -11636,-6916, 32767, 32767, 32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 32767, 32767, -2360, 5111,  -2360, -2360, -2360,
-		-2360, -2360, -2360, -2360, -2360, -2360, -2360, -2360,
-		-2360, -2360, 7293,  -2360, -2360, -2360, -2360, -2360,
-		3144,  3145,  -2362, -2362, 0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     32767, 0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     32767, 0,     0,     0,     0,     32767,
-		32767, 32767, 32767, 0,     -1971, -1971, 32767, 0,
-		32767, 0,     1809,  1809,  1809,  1809,  0,     0,
-		1811,  0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     -220,  0,     2582,  0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     -3918, -3918, -3918, 0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		-2442, 0,     -479,  -479,  0,     0,     0,     0,
-		0,     0,     -343,  0,     0,     0,     0,     0,
-		0,     0,     -342,  -341,  -340,  -339,  -338,  -337,
-		0,     0,     0,     0,     0,     0,     0,     0,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
-		32767, 2495,  2496,  0,     0,     2499,  2500,  2501,
-		2502,  0,     2504,  2505,  2506,  2507,  2508,  1141,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     0,     0,     0,     0,     -363,
-		0,     -362,  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, 0,     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, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, -17220,-12590,10083,
+		-17210,10086, 5360,  10088, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 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,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, -4703, -4703, -4703, -4703, -4703, -4703,
+		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,
+		-4261, 2507,  0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     -3346, 32767, 32767, 0,
+		0,     0,     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,     -2546, -2546, 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, 0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     484,   100,   -3197, 0,     -3198, -3198,
-		0,     0,     0,     8750,  -3943, 0,     0,     -3943,
-		542,   543,   544,   545,   546,   547,   548,   -3936,
-		-596,  551,   552,   553,   554,   555,   556,   557,
-		558,   559,   560,   561,   562,   563,   564,   565,
-		566,   567,   568,   569,   570,   571,   572,   573,
-		574,   575,   576,   577,   578,   579,   580,   581,
-		582,   583,   584,   585,   586,   587,   588,   589,
-		590,   591,   592,   593,   594,   595,   596,   597,
-		598,   599,   600,   601,   602,   603,   604,   605,
-		606,   607,   608,   609,   610,   611,   612,   613,
-		614,   615,   616,   617,   618,   619,   620,   621,
-		622,   623,   624,   1375,  626,   627,   628,   629,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
+		0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		324,   32767, 325,   32767, 326,   32767, 327,   32767,
+		328,   32767, 329,   32767, 330,   0,     0,     0,
+		0,     0,     0,     32767, 32767, 223,   32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
+		0,     0,     0,     0,     32767, 32767, 32767, 32767,
+		32767, 0,     32767, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     6529,
+		6530,  6531,  6532,  32767, 6532,  6533,  6534,  0,
+		0,     32767, 331,   32767, 332,   333,   334,   335,
+		336,   32767, 0,     0,     0,     0,     0,     0,
+		337,   0,     338,   0,     -2473, -2472, -2471, 0,
+		0,     0,     -2470, 0,     0,     0,     0,     0,
+		0,     0,     -4976, 0,     -2468, -2467, -2466, 0,
+		0,     0,     -2465, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     350,   351,   0,
+		0,     0,     0,     0,     0,     0,     0,     1869,
+		1869,  0,     1870,  1870,  1870,  -4015, 1870,  1870,
+		13829, 13830, 9201,  -13471,13823, -13472,13825, -13473,
+		-13473,-8843, 13830, -13463,13833, -13463,13836, 13837,
+		9208,  -13464,0,     0,     0,     6768,  9112,  -5449,
+		13831, 6773,  9113,  0,     9114,  2458,  5817,  1877,
+		0,     1877,  1877,  0,     -1508, -1507, -1506, 1877,
+		1877,  1877,  0,     1877,  1877,  1877,  0,     1874,
+		0,     0,     0,     -1504, -1503, 0,     -1502, 1875,
+		0,     0,     1877,  1877,  -1500, 1877,  -1499, 0,
+		0,     0,     0,     1877,  0,     1877,  0,     -4262,
+		-4262, -4262, 0,     0,     0,     0,     4641,  4642,
+		4643,  4644,  4645,  6458,  4647,  4648,  4649,  -4275,
+		4651,  4652,  3323,  8043,  4655,  4656,  4657,  -4282,
+		4659,  4660,  4661,  4662,  4663,  4664,  4665,  4666,
+		4667,  4668,  4669,  4670,  4671,  4672,  4673,  4674,
+		-5974, -3392, 4677,  4678,  -11338,-4127, -4127, 6358,
+		3777,  -4127, 11724, 11724, 4514,  4515,  -5969, -3387,
+		4518,  -11332,-11331,-4120, -4120, 6365,  3784,  -4120,
+		11731, 11731, 4521,  4522,  -5962, -3380, 4525,  -11325,
+		-11324,-4113, -4113, 6372,  3791,  -4113, -4301, 11737,
+		4527,  4528,  -5956, -3374, 4531,  4720,  -11317,-4106,
+		-4106, 6379,  3798,  -4106, 0,     0,     0,     0,
+		426,   0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     3209,  3210,  3211,  3212,  3213,  3214,
+		3215,  3216,  3217,  3218,  3219,  6653,  3221,  3222,
+		3223,  3224,  3225,  3226,  3227,  3228,  3229,  3230,
+		3231,  3232,  3233,  3234,  3235,  3236,  3237,  3238,
+		3239,  3240,  3241,  3242,  3243,  3244,  3874,  3246,
+		173,   173,   173,   173,   173,   3252,  174,   174,
+		174,   174,   174,   174,   174,   174,   174,   12394,
+		-6885, 174,   174,   174,   174,   174,   174,   174,
+		174,   174,   174,   174,   174,   174,   174,   174,
+		174,   174,   174,   174,   174,   174,   174,   174,
+		174,   174,   174,   174,   174,   174,   174,   -3484,
+		-3483, 174,   174,   174,   174,   174,   174,   174,
+		174,   174,   -3476, 3305,  -3474, -3473, -3472, 3309,
+		3310,  3311,  -3470, 3313,  3314,  3315,  3316,  -3467,
+		3318,  -3466, 3320,  -3465, -3464, 3323,  -3462, 3325,
+		-3461, -3460, -3459, 3329,  -3458, -3457, -3456, -3455,
+		-3454, -3453, -3452, 3337,  -3451, -3450, -3449, -3448,
+		352,   -3446, 3344,  3345,  3346,  3347,  -3445, -3444,
+		-3443, -3442, -3441, 3353,  3354,  3355,  3356,  3357,
+		3358,  11263, -4587, -4586, -3277, -3276, 13112, -3274,
+		3365,  -3271, -3270, -3269, -3268, -3267, -11271,-6870,
+		-3264, -3263, 131,   -11272,134,   11564, -15732,-3257,
+		3374,  3375,  3376,  -9912, -3256, -3255, -3254, -3253,
+		-3252, -3251, -7651, -11256,-11256,-14649,-3245, -14650,
+		-26079,3389,  3390,  3391,  3392,  3393,  528,   3394,
+		3395,  3396,  3397,  3398,  3399,  3400,  3401,  3402,
+		3403,  3404,  3405,  3406,  3407,  3408,  3409,  3410,
+		3411,  3412,  3413,  3414,  3415,  3416,  3417,  3418,
+		3419,  3420,  3421,  3422,  3423,  3424,  3425,  3426,
+		3427,  3428,  3429,  3430,  3431,  3432,  3433,  3434,
+		3435,  3436,  3437,  3438,  3439,  3440,  3441,  3442,
+		3443,  3444,  3445,  3446,  3447,  3448,  3449,  3450,
+		3451,  3452,  32767, 3453,  3454,  3455,  3456,  3457,
+		3458,  32767, 3459,  3460,  3461,  3462,  32767, 32767,
+		3463,  3464,  3465,  3466,  3467,  3468,  3469,  3470,
+		32767, 3471,  3472,  3473,  3474,  3475,  3476,  3477,
+		32767, 3478,  3479,  3480,  3481,  3482,  3483,  3484,
+		3485,  3486,  3487,  3488,  3489,  3490,  3491,  3492,
+		3493,  7157,  7157,  7157,  7157,  7157,  3499,  3500,
+		7157,  7157,  7157,  7157,  3505,  32767, 7157,  3507,
+		3508,  3509,  32767, 3510,  3511,  3512,  3513,  3514,
+		32767, 3515,  32767, 32767, 32767, 3516,  3517,  3518,
+		3519,  3520,  3521,  3522,  32767, 3523,  3524,  3525,
+		3526,  3527,  3528,  3529,  3530,  3531,  3532,  3533,
+		3534,  3535,  3536,  3537,  3538,  3539,  3540,  7340,
+		3542,  3543,  3544,  3545,  3546,  3547,  3548,  3549,
+		3550,  3551,  3552,  3553,  7477,  7478,  532,   3909,
+		18261, 2411,  2412,  3721,  3722,  20110, 3724,  10363,
+		3727,  3728,  3729,  3730,  3731,  -4273, 128,   3734,
+		3735,  7129,  -4274, 7132,  18562, -8734, 3741,  3742,
+		384,   3744,  -2911, 3745,  3746,  3747,  3748,  3749,
+		3750,  -650,  -4255, -4255, -7648, 3756,  -7649, -19078,
+		8219,  -4255, 3764,  -3146, 3777,  -852,  -23524,3770,
+		-23525,3772,  -23526,3774,  -18897,3776,  -23517,3779,
+		-947,  3781,  3782,  -847,  -23519,-947,  -947,  -947,
+		-947,  -947,  -15508,3772,  -947,  -947,  -947,  -947,
+		-7603, -4244, -7603, -947,  -7602, -7602, -7602, -947,
+		-7603, -7603, -3202, 404,   405,   3799,  -7604, 3802,
+		15232, -12064,411,   -7607, -696,  -7618, -2988, 19685,
+		-7608, 19688, -7608, 19691, -7608, 15064, -7608, 19686,
+		-7609, -2882, -7609, -7609, -2979, 19694, -2877, -2876,
+		-2875, -2874, -2873, 11689, -7590, -2870, -2869, -2868,
+		-2867, 3790,  432,   3792,  -2863, 3793,  3794,  3795,
+		-2859, 3798,  3799,  -601,  -4206, -4206, -7599, 3805,
+		-7600, -19029,8268,  -4206, -4206, -847,  -4206, 2450,
+		-4205, -4205, -4205, -4205, -4205, -4205, 196,   3802,
+		3803,  7197,  -4206, 7200,  18630, -8666, 3809,  -4209,
+		2702,  -4220, 410,   23083, -4210, 23086, -4210, 23089,
+		-4210, 18462, -4210, 23084, -4211, 516,   -4211, -4211,
+		419,   23092, 521,   522,   523,   524,   525,   15087,
+		-4192, 528,   529,   530,   531,   7188,  3830,  7190,
+		535,   7191,  7192,  7193,  539,   7196,  7197,  2797,
+		-808,  -808,  -4201, 7203,  -4202, -15631,11666, -808,
+		-808,  2551,  -808,  5848,  -807,  -807,  -807,  -807,
+		-807,  -807,  3594,  7200,  7201,  10595, -808,  10598,
+		22028, -5268, 7207,  -811,  6100,  -822,  3808,  26481,
+		-812,  26484, -812,  26487, -812,  21860, -812,  26482,
+		-813,  3914,  -813,  -813,  3817,  26490, 3919,  3920,
+		3921,  3922,  3923,  18485, -794,  3926,  3927,  3928,
+		3929,  10586, 7228,  10588, 3933,  10589, 10590, 10591,
+		3937,  10594, 10595, 6195,  2590,  2590,  -803,  10601,
+		-804,  -12233,15064, 2590,  10609, 3699,  10622, 5993,
+		-16679,10615, -16680,10617, -16681,10619, -12052,10621,
+		-16672,10624, 5898,  10626, 10627, 5998,  -16674,5898,
+		5898,  5898,  5898,  5898,  -8663, 10617, 5898,  5898,
+		5898,  5898,  32767, 32767, -760,  5896,  -759,  -759,
+		-759,  5896,  -760,  -760,  3641,  7247,  7248,  10642,
+		-761,  10645, 22075, -5221, 7254,  7255,  3897,  7257,
+		602,   7258,  7259,  7260,  7261,  7262,  7263,  2863,
+		-742,  -742,  -4135, 7269,  -4136, -15565,11732, -742,
+		7277,  367,   7290,  2661,  -20011,7283,  -20012,7285,
+		-20013,7287,  -15384,7289,  -20004,7292,  2566,  7294,
+		7295,  2666,  -20006,2566,  2566,  2566,  2566,  2566,
+		-11995,7285,  2566,  2566,  2566,  2566,  -4090, -731,
+		-4090, 2566,  -4089, -4089, -4089, 2566,  -4090, -4090,
+		311,   3917,  3918,  7312,  -4091, 7315,  18745, -8551,
+		3924,  3925,  567,   2566,  32767, 23198, -4095, 23201,
+		-4095, 23204, -4095, 18577, -4095, 23199, -4096, 631,
+		-4096, -4096, 534,   23207, 636,   637,   638,   639,
+		640,   15202, -4077, 643,   644,   645,   646,   7303,
+		3945,  7305,  650,   7306,  7307,  7308,  654,   7311,
+		7312,  2912,  -693,  -693,  -4086, 7318,  -4087, -15516,
+		11781, -693,  -693,  2666,  -693,  5963,  -692,  -692,
+		-692,  -692,  -692,  -692,  3709,  7315,  7316,  10710,
+		-693,  10713, 22143, -5153, 7322,  -696,  6215,  -707,
+		3923,  26596, -697,  26599, -697,  26602, -697,  21975,
+		-697,  26597, -698,  4029,  -698,  -698,  3932,  26605,
+		4034,  4035,  4036,  4037,  4038,  18600, -679,  4041,
+		4042,  4043,  4044,  10701, 7343,  10703, 4048,  10704,
+		10705, 10706, 4052,  10709, 10710, 6310,  2705,  2705,
+		-688,  10716, -689,  -12118,15179, 2705,  2705,  6064,
+		4066,  4067,  4068,  3131,  4070,  4071,  4072,  4073,
+		4074,  4075,  2821,  4077,  4078,  4079,  4080,  4081,
+		4082,  4083,  4084,  4085,  4086,  4087,  4088,  4089,
+		4090,  4091,  4092,  4093,  4094,  4095,  4096,  4097,
+		4098,  4099,  4100,  20,    21,    22,    23,    24,
+		1794,  1794,  1794,  3556,  4110,  4111,  4112,  4113,
+		4114,  4115,  4116,  4117,  538,   1161,  1162,  541,
+		4470,  1796,  1796,  6018,  4473,  4474,  4475,  4476,
+		4477,  4478,  4479,  4480,  4481,  4482,  4483,  4484,
+		4485,  4486,  4140,  4141,  4487,  4143,  4488,  4145,
+		4146,  4489,  4490,  4491,  4492,  4493,  4494,  4495,
+		4496,  575,   576,   4061,  4497,  4061,  4498,  4061,
+		4160,  4499,  4500,  4163,  4164,  4165,  4501,  4502,
+		4503,  4504,  4505,  4506,  4507,  4508,  4509,  4510,
+		4511,  4512,  4513,  4514,  4515,  4516,  4517,  4518,
+		4519,  4520,  4521,  4522,  4523,  4524,  4525,  4526,
+		4527,  4528,  4529,  4530,  4531,  4532,  4533,  4534,
+		4535,  4536,  4202,  0,     5914,  0,     0,     629,
 		630,   631,   632,   633,   634,   635,   636,   637,
 		638,   639,   640,   641,   642,   643,   644,   645,
 		646,   647,   648,   649,   650,   651,   652,   653,
-		654,   655,   656,   657,   658,   659,   660,   661,
-		662,   663,   664,   665,   666,   667,   668,   669,
+		-1842, -1842, -1842, -1842, -1842, -1842, -1842, -1842,
+		-1842, -1842, -1842, -1842, 666,   667,   668,   669,
 		670,   671,   672,   673,   674,   675,   676,   32767,
 		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
 		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, -4470, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 6910,  0,     32767, 32767, 32767,
+		32767, -20383,6914,  32767, 32767, 32767, 32767, 32767,
+		0,     0,     0,     0,     0,     32767, 0,     0,
+		0,     0,     0,     0,     0,     0,     0,     12220,
+		-7059, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		32767, 0,     0,     0,     0,     0,     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, -7886, 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, 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, 0,
-		0,     0,     0,     7470,  0,     7471,  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, 3132,  32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 3133,  32767, 32767,
+		32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+		32767, 32767, 32767, 32767, 0,     32767, 32767, 32767,
+		32767, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     32767, 32767, 32767, 32767,
+		32767, 0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     -16387,0,     0,     0,     0,
+		0,     0,     0,     8005,  3605,  0,     0,     -3393,
+		8011,  -3394, -14823,12474, 0,     0,     3359,  0,
+		32767, 0,     0,     0,     0,     0,     0,     4401,
+		8007,  0,     11403, 0,     0,     22837, 0,     0,
+		0,     0,     -10,   4620,  27293, 0,     27296, 0,
+		27299, 0,     22672, 0,     0,     0,     4727,  0,
+		0,     3135,  32767, 32767, 32767, 32767, 32767, 32767,
+		3136,  32767, 32767, 3137,  32767, 3138,  3139,  3140,
+		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, 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, 0,     0,
 		0,     0,     0,     0,     0,     0,     0,     0,
-		0,     0,     0,     9653,  0,     0,     0,     0,
-		0,     0,     0,     0,     0,     32767, 32767, 32767,
-		3152,  3153,  3154,  3155,  3156,  3157,  3158,  3159,
-		3160,  3161,  3162,  3163,  3164,  3165,  3166,  3167,
-		3168,  3169,  3170,  3171,  3172,  3173,  3174,  3175,
-		3176,  3177,  3178,  3179,  3180,  3181,  3182,  3183,
-		3184,  3185,  3186,  3187,  3188,  3189,  3190,  3191,
-		3192,  3193,  3194,  3195,  3196,  3197,  3198,  3199,
-		3200,  3201,  3202,  3203,  3204,  3205,  3206,  3207,
-		3208,  3209,  3210,  3211,  3212,  3213,  3214,  3215,
-		3216,  3217,  3218,  3219,  3220,  3221,  3222,  3223,
-		3224,  3225,  3226,  3227,  3228,  3229,  3230,  3231,
-		3232,  3233,  3234,  3235,  3236,  32767, 3237,  3238,
-		3239,  3240,  3241,  3242,  3243,  3244,  3245,  3246,
-		3247,  3248,  1885,  3250,  3251,  3252,  3253,  3254,
-		3255,  3256,  3257,  3258,  3259,  3260,  3261,  3262,
-		3263,  3264,  3265,  3266,  3267,  3268,  3269,  3270,
-		3271,  3272,  3273,  3274,  3275,  3276,  3277,  3278,
-		3279,  3280,  3281,  3282,  3283,  3284,  3285,  3286,
-		3287,  3288,  3289,  3290,  7683,  3292,  3293,  3294,
-		3295,  3296,  3297,  3298,  3299,  3300,  3301,  3302,
-		3303,  3304,  3305,  3306,  3307,  32767, 3308,  3309,
-		32767, 32767, 3310,  32767, 32767, 3311,  3312,  32767,
-		32767, 3313,  3314,  3315,  3316,  32767, 3317,  3318,
-		3319,  3320,  3321,  3322,  3323,  3324,  3325,  3326,
-		-1186, -1186, 4489,  -1187, 4491,  -1188, -1188, -1188,
-		-1188, -1188, 3335,  3336,  32767, 3337,  3338,  3339,
-		3340,  3341,  3342,  3343,  3344,  3345,  3346,  3347,
-		3348,  -1659, 3350,  3351,  3352,  3353,  3354,  3355,
-		3356,  3357,  3358,  3359,  3360,  3361,  3362,  4351,
-		4352,  4353,  4354,  4355,  4356,  4357,  4358,  4359,
-		4360,  4361,  3374,  3375,  3376,  3377,  3378,  4362,
-		4363,  4364,  4365,  4366,  4367,  4368,  4369,  4370,
-		4371,  4372,  4373,  4374,  4375,  4376,  4377,  4378,
-		0,     4380,  4381,  5499,  5500,  5501,  5502,  5503,
-		0,     0,     4389,  4390,  0,     0,     3406,  4393,
-		4394,  4395,  4396,  4397,  4398,  4399,  0,     4401,
-		4402,  4403,  4404,  4405,  4406,  4407,  0,     4409,
-		4410,  4411,  4412,  5171,  4414,  5174,  5175,  4623,
-		4418,  4419,  4420,  4421,  4422,  4423,  4424,  3437,
-		3438,  3439,  3440,  3441,  3442,  3443,  3444,  3445,
-		3446,  3447,  3448,  32767, 3449,  3450,  3451,  3131,
-		32767, 3453,  3454,  3455,  3456,  3457,  32767, 3458,
-		32767, 0,     0,     4427,  3460,  3461,  3462,  3463,
-		3464,  3465,  32767, 3466,  3467,  3468,  3469,  3470,
-		3471,  3472,  3473,  3474,  3475,  3476,  3477,  3478,
-		3146,  3367,  3148,  567,   3150,  3151,  3485,  3486,
-		3487,  3488,  3489,  3490,  3491,  3492,  3493,  4428,
-		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,  3532,  3533,  3534,
-		3535,  3536,  3537,  3538,  3539,  3540,  3541
+		0,     0,     0,     0,     32767, 32767, 0,     32767,
+		0,     32767, 32767, 0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     32767, 0,     32767,
+		0,     32767, 32767, 0,     0,     32767, 32767, 32767,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0,     0,     0,     0,     0,     0,     0,     0,
+		0
 	};
 
 	const unsigned char *k = (const unsigned char *) key;
 	size_t		keylen = 4;
 	uint32		a = 0;
-	uint32		b = 1;
+	uint32		b = 3;
 
 	while (keylen--)
 	{
@@ -7915,12 +8014,12 @@ NFKC_QC_hash_func(const void *key)
 		a = a * 257 + c;
 		b = b * 8191 + c;
 	}
-	return h[a % 10079] + h[b % 10079];
+	return h[a % 10193] + h[b % 10193];
 }
 
 /* Hash lookup information for NFKC_QC */
 static const pg_unicode_norminfo UnicodeNormInfo_NFKC_QC = {
 	UnicodeNormProps_NFKC_QC,
 	NFKC_QC_hash_func,
-	5039
+	5096
 };
diff --git a/src/include/common/unicode_version.h b/src/include/common/unicode_version.h
index bf1f64b95b1..5f6a00ba1ea 100644
--- a/src/include/common/unicode_version.h
+++ b/src/include/common/unicode_version.h
@@ -11,4 +11,4 @@
  *-------------------------------------------------------------------------
  */
 
-#define PG_UNICODE_VERSION		"15.1"
+#define PG_UNICODE_VERSION		"16.0"
-- 
2.34.1

vFinal-0002-Add-pg_upgrade-check-for-Unicode-dependent-re.patchtext/x-patch; charset=UTF-8; name=vFinal-0002-Add-pg_upgrade-check-for-Unicode-dependent-re.patchDownload
From 8632408aa913a0c93caf172e8dd721121f99a978 Mon Sep 17 00:00:00 2001
From: Jeff Davis <jeff@j-davis.com>
Date: Mon, 3 Feb 2025 13:02:37 -0800
Subject: [PATCH vFinal 2/2] Add pg_upgrade check for Unicode-dependent
 relations.

---
 src/bin/pg_upgrade/check.c | 180 +++++++++++++++++++++++++++++++++++++
 1 file changed, 180 insertions(+)

diff --git a/src/bin/pg_upgrade/check.c b/src/bin/pg_upgrade/check.c
index 88db8869b6e..27fe8875dee 100644
--- a/src/bin/pg_upgrade/check.c
+++ b/src/bin/pg_upgrade/check.c
@@ -13,6 +13,7 @@
 #include "catalog/pg_class_d.h"
 #include "fe_utils/string_utils.h"
 #include "pg_upgrade.h"
+#include "common/unicode_version.h"
 
 static void check_new_cluster_is_empty(void);
 static void check_is_install_user(ClusterInfo *cluster);
@@ -25,6 +26,7 @@ static void check_for_tables_with_oids(ClusterInfo *cluster);
 static void check_for_pg_role_prefix(ClusterInfo *cluster);
 static void check_for_new_tablespace_dir(void);
 static void check_for_user_defined_encoding_conversions(ClusterInfo *cluster);
+static void check_for_unicode_update(ClusterInfo *cluster);
 static void check_new_cluster_logical_replication_slots(void);
 static void check_new_cluster_subscription_configuration(void);
 static void check_old_cluster_for_valid_slots(void);
@@ -633,6 +635,12 @@ check_and_dump_old_cluster(void)
 
 	check_for_data_types_usage(&old_cluster);
 
+	/*
+	 * Unicode updates can affect some objects that use expressions with
+	 * functions dependent on Unicode.
+	 */
+	check_for_unicode_update(&old_cluster);
+
 	/*
 	 * PG 14 changed the function signature of encoding conversion functions.
 	 * Conversions from older versions cannot be upgraded automatically
@@ -1752,6 +1760,178 @@ check_for_user_defined_encoding_conversions(ClusterInfo *cluster)
 		check_ok();
 }
 
+/*
+ * Callback function for processing results of query for
+ * check_for_unicode_update()'s UpgradeTask.  If the query returned any rows
+ * (i.e., the check failed), write the details to the report file.
+ */
+static void
+process_unicode_update(DbInfo *dbinfo, PGresult *res, void *arg)
+{
+	UpgradeTaskReport *report = (UpgradeTaskReport *) arg;
+	int			ntups = PQntuples(res);
+	int			i_reloid = PQfnumber(res, "reloid");
+	int			i_nspname = PQfnumber(res, "nspname");
+	int			i_relname = PQfnumber(res, "relname");
+
+	if (ntups == 0)
+		return;
+
+	if (report->file == NULL &&
+		(report->file = fopen_priv(report->path, "w")) == NULL)
+		pg_fatal("could not open file \"%s\": %m", report->path);
+
+	fprintf(report->file, "In database: %s\n", dbinfo->db_name);
+
+	for (int rowno = 0; rowno < ntups; rowno++)
+		fprintf(report->file, "  (oid=%s) %s.%s\n",
+				PQgetvalue(res, rowno, i_reloid),
+				PQgetvalue(res, rowno, i_nspname),
+				PQgetvalue(res, rowno, i_relname));
+}
+
+/*
+ * Check if the Unicode version built into Postgres changed between the old
+ * cluster and the new cluster.
+ */
+static bool
+unicode_version_changed(ClusterInfo *cluster)
+{
+	PGconn	   *conn_template1 = connectToServer(cluster, "template1");
+	PGresult   *res;
+	char	   *old_unicode_version;
+	bool		unicode_updated;
+
+	res = executeQueryOrDie(conn_template1, "SELECT unicode_version()");
+	old_unicode_version = PQgetvalue(res, 0, 0);
+	unicode_updated = (strcmp(old_unicode_version, PG_UNICODE_VERSION) != 0);
+
+	PQclear(res);
+	PQfinish(conn_template1);
+
+	return unicode_updated;
+}
+
+/*
+ * check_for_unicode_update()
+ *
+ * Check if the version of Unicode in the old server and the new server
+ * differ. If so, check for indexes, partitioned tables, or constraints that
+ * use expressions with functions dependent on Unicode behavior.
+ */
+static void
+check_for_unicode_update(ClusterInfo *cluster)
+{
+	UpgradeTaskReport report;
+	UpgradeTask *task = upgrade_task_create();
+	const char *query;
+
+	/*
+	 * The builtin provider did not exist prior to version 17. While there are
+	 * still problems that could potentially be caught from earlier versions,
+	 * such as an index on NORMALIZE(), we don't check for that here.
+	 */
+	if (GET_MAJOR_VERSION(cluster->major_version) < 1700)
+		return;
+
+	prep_status("Checking for objects affected by Unicode update");
+
+	if (!unicode_version_changed(cluster))
+	{
+		check_ok();
+		return;
+	}
+
+	report.file = NULL;
+	snprintf(report.path, sizeof(report.path), "%s/%s",
+			 log_opts.basedir,
+			 "unicode_dependent_rels.txt");
+
+	query =
+	/* collations that use built-in Unicode for character semantics */
+		"WITH collations(collid) AS ( "
+		"  SELECT oid FROM pg_collation "
+		"  WHERE collprovider='b' AND colllocale IN ('C.UTF-8','PG_UNICODE_FAST') "
+	/* include default collation, if appropriate */
+		"  UNION "
+		"  SELECT 'pg_catalog.default'::regcollation FROM pg_database "
+		"  WHERE datname = current_database() AND "
+		"  datlocprovider='b' AND datlocale IN ('C.UTF-8','PG_UNICODE_FAST') "
+		"), "
+	/* functions that use built-in Unicode */
+		"functions(procid) AS ( "
+		"  SELECT proc.oid FROM pg_proc proc "
+		"  WHERE proname IN ('normalize','unicode_assigned','unicode_version','is_normalized') AND "
+		"        pronamespace='pg_catalog'::regnamespace "
+		"), "
+	/* operators that use the input collation for character semantics */
+		"coll_operators(operid, procid, collid) AS ( "
+		"  SELECT oper.oid, oper.oprcode, collid FROM pg_operator oper, collations "
+		"  WHERE oprname IN ('~', '~*', '!~', '!~*', '~~*', '!~~*') AND "
+		"        oprnamespace='pg_catalog'::regnamespace AND "
+		"        oprright='text'::regtype "
+		"), "
+	/* functions that use the input collation for character semantics */
+		"coll_functions(procid, collid) AS ( "
+		"  SELECT proc.oid, collid FROM pg_proc proc, collations "
+		"  WHERE proname IN ('lower','initcap','upper') AND "
+		"        pronamespace='pg_catalog'::regnamespace AND "
+		"        proargtypes[0] = 'text'::regtype "
+	/* include functions behind the operators listed above */
+		"  UNION "
+		"  SELECT procid, collid FROM coll_operators "
+		"), "
+
+	/*
+	 * Generate patterns to search a pg_node_tree for the above functions and
+	 * operators.
+	 */
+		"patterns(p) AS ( "
+		"  SELECT '{FUNCEXPR :funcid ' || procid::text || '[ }]' FROM functions "
+		"  UNION "
+		"  SELECT '{OPEXPR :opno ' || operid::text || ' (:\\w+ \\w+ )*' || "
+		"         ':inputcollid ' || collid::text || '[ }]' FROM coll_operators "
+		"  UNION "
+		"  SELECT '{FUNCEXPR :funcid ' || procid::text || ' (:\\w+ \\w+ )*' || "
+		"         ':inputcollid ' || collid::text || '[ }]' FROM coll_functions "
+		") "
+
+	/*
+	 * Match the patterns against expressions used for relation contents.
+	 */
+		"SELECT reloid, relkind, nspname, relname "
+		"  FROM ( "
+		"    SELECT conrelid "
+		"    FROM pg_constraint, patterns WHERE conbin::text ~ p "
+		"  UNION "
+		"    SELECT indexrelid "
+		"    FROM pg_index, patterns WHERE indexprs::text ~ p OR indpred::text ~ p "
+		"  UNION "
+		"    SELECT partrelid "
+		"    FROM pg_partitioned_table, patterns WHERE partexprs::text ~ p "
+		"  ) s(reloid), pg_class c, pg_namespace n, pg_database d "
+		"  WHERE s.reloid = c.oid AND c.relnamespace = n.oid AND "
+		"        d.datname = current_database() AND "
+		"        d.encoding = pg_char_to_encoding('UTF8');";
+
+	upgrade_task_add_step(task, query,
+						  process_unicode_update,
+						  true, &report);
+	upgrade_task_run(task, cluster);
+	upgrade_task_free(task);
+
+	if (report.file)
+	{
+		fclose(report.file);
+		report_status(PG_WARNING, "warning");
+		pg_log(PG_WARNING, "Your installation contains relations that may be affected by a new version of Unicode.\n"
+			   "A list of potentially-affected relations is in the file:\n"
+			   "    %s", report.path);
+	}
+	else
+		check_ok();
+}
+
 /*
  * check_new_cluster_logical_replication_slots()
  *
-- 
2.34.1

#39Jeff Davis
pgsql@j-davis.com
In reply to: Tom Lane (#30)
Re: Update Unicode data to Unicode 16.0.0

On Sat, 2025-03-15 at 12:15 -0400, Tom Lane wrote:

In fact, on the analogy of timezones, I think we should not only
adopt newly-published Unicode versions pretty quickly but push
them into released branches as well.

That approach suggests that we consider something like my previous
STRICT_UNICODE proposal[1]https://commitfest.postgresql.org/patch/4876/. If Postgres updates Unicode quickly enough,
there's not much reason that users would need to use unassigned code
points, so it would be practical to just reject them (as an option).
That would dramatically reduce the practical problems people would
encounter when we do update Unicode.

Note that assigned code points can still change behavior in later
versions, but not in ways that would typically cause a problem for
things like indexes. For instance, U+0363 changed from non-Alphabetic
to Alphabetic in Unicode 16, which changes the results of the
expression:

U&'\0363' ~ '[[:alpha:]]' COLLATE PG_C_UTF8

from false to true, even though U+0363 is assigned in both Unicode
15.1.0 and 16.0.0. That might plausibly matter, but such cases would be
more obscure than case folding.

Regards,
Jeff Davis

[1]: https://commitfest.postgresql.org/patch/4876/

#40vignesh C
vignesh21@gmail.com
In reply to: Jeff Davis (#36)
Re: Update Unicode data to Unicode 16.0.0

On Mon, 17 Mar 2025 at 23:03, Jeff Davis <pgsql@j-davis.com> wrote:

On Sun, 2025-03-16 at 19:10 +0530, vignesh C wrote:

We currently have two Commitfest entries for the same thread at [1]
and [2]. Are both still necessary, or can we consolidate tracking
into
a single entry?

I'm fine removing my CF entry, but unfortunately there's no "withdrawn
-- duplicate", so it might send the wrong message.

Yes, we don't have "withdrawn duplicate", I have closed it as
withdrawn, anyway we can get it reviewed and committed using the other
entry.

Regards,
Vignesh

#41Jeff Davis
pgsql@j-davis.com
In reply to: Joe Conway (#29)
Re: Update Unicode data to Unicode 16.0.0

On Sat, 2025-03-15 at 10:14 -0400, Joe Conway wrote:

In the long term I think we should figure out how to support newer
versions of unicode for the builtin, but in my mind that might
involve
the necessity of supporting multiple versions of unicode such that
the
choice remains to remain on the older one.

What do you think of Tom's argument that waiting to update Unicode is
what creates the problem in the first place?

"by then they might well have instances of the newly-assigned code
points in their database"[1]/messages/by-id/3481161.1742055336@sss.pgh.pa.us

Regards,
Jeff Davis

[1]: /messages/by-id/3481161.1742055336@sss.pgh.pa.us
/messages/by-id/3481161.1742055336@sss.pgh.pa.us

#42Jeremy Schneider
schneider@ardentperf.com
In reply to: Jeff Davis (#41)
Re: Update Unicode data to Unicode 16.0.0

On Tue, 18 Mar 2025 08:53:56 -0700
Jeff Davis <pgsql@j-davis.com> wrote:

What do you think of Tom's argument that waiting to update Unicode is
what creates the problem in the first place?

"by then they might well have instances of the newly-assigned code
points in their database"[1]

[1]
/messages/by-id/3481161.1742055336@sss.pgh.pa.us

Waiting to update Unicode is not what creates the problem, as long as
we support in-place major upgrades without rebuilding indexes.

It seems that we think that it's really uncommon to make indexes on
timezone data. We think that breaking primary keys must definitely be
avoided. We think case-insensitive indexes are probably uncommon, so as
long as its "rare" we can let them break.

I'm not asking for an extreme definition of "IMMUTABLE" but I'd be
very happy with a GUC "data_safety=radical_like_jeremy" where Postgres
simply won't start if the control file says it was from a different
operating system or architecture or ICU/glibc collation version. I can
disable the GUC (like a maintenance mode) to rebuild my indexes and
update my collation versions, and ideally this GUC would also mean that
indexes simply aren't allowed to be created on functions that might
change within the guarantees that are made. (And range-based partitions
can't use them, and FDWs can't rely on them for query planning, etc.)

I get that we don't want to break stuff people are currently doing -
but I think there are a bunch of people who would be happy with an
option to reduce functionality going forward in exchange for clearly
defined behavior. I just don't want to have to think about this on
behalf of all my Postgres users.

-Jeremy

#43Robert Haas
robertmhaas@gmail.com
In reply to: Jeff Davis (#41)
Re: Update Unicode data to Unicode 16.0.0

On Tue, Mar 18, 2025 at 11:54 AM Jeff Davis <pgsql@j-davis.com> wrote:

What do you think of Tom's argument that waiting to update Unicode is
what creates the problem in the first place?

"by then they might well have instances of the newly-assigned code
points in their database"[1]

I know you weren't asking me, but FWIW, I think Tom has a point, but I
also don't completely buy it. There's no technological safeguard
against people using Unicode points before they're assigned, so we
can't assume that no one ever does. And they probably do.

I think Joe has the right idea. The way to actually provide the
stability that people want here is to continue supporting old versions
while adding support for new versions. Anything else we do works
subject to assumptions: you can either assume that people don't use
code points before they're assigned (as Tom proposes) or you can
assume that not updating to newer Unicode specs will not cause any
problems for anyone. Joe's proposal is unique in requiring no
assumptions about what users will do or what they care about. It just
works, period. The only disadvantage is that it's more work for us,
but this problem has caused enough suffering over the years that I bet
we can find hackers to implement it and maintain it on an ongoing
basis without great difficulty.

--
Robert Haas
EDB: http://www.enterprisedb.com

#44Jeff Davis
pgsql@j-davis.com
In reply to: Jeremy Schneider (#42)
Re: Update Unicode data to Unicode 16.0.0

On Tue, 2025-03-18 at 09:28 -0700, Jeremy Schneider wrote:

We think case-insensitive indexes are probably uncommon, so as
long as its "rare" we can let them break.

Let's define "break" in this context to mean that the constraints are
not enforced, or that the query doesn't return the results that the
user is expecting.

Let's say a user has an index on LOWER(t) in PG17 (Unicode 15.1). Then
Unicode 16.0 comes out, introducing the newly-assigned U+A7DC, which
lowercases to U+019B. The rest of the world moves on and starts using
U+A7DC.

There are only two ways that Postgres can prevent breakage:

1. Update the database to Unicode 16.0 before U+A7DC is encountered, so
that it's properly lowercased to U+019B, and a query on LOWER(t) =
U&'\019B' will correctly return the record containing it.

2. Prevent U+A7DC from going into the database at all.

Continuing on with Unicode 15.1 and accepting the unassigned code point
*cannot* prevent breakage.

A truly paranoid user would want a combination of both solutions:
regular Unicode updates; and something like STRICT_UNICODE
https://commitfest.postgresql.org/patch/4876/ ) to protect the user
between the time Unicode assigns the code point and the time they can
deploy a version of Postgres that understands it.

You are rightfully concerned that updating Unicode can create its own
inconsistencies, and if nothing is done that can lead to breakage as
well. The upgrade-time check in this thread is one solution to that
problem, but we could do a lot more.

You are also right that we should be more skeptical of an internal
inconsistency (e.g. different results for seqscan vs indexscan) than a
wider definition of inconsistency. But the user created a unicode-based
case-folded index there for a reason, and we shouldn't lose sight of
that.

I'm not asking for an extreme definition of "IMMUTABLE" but I'd be
very happy with a GUC "data_safety=radical_like_jeremy" where
Postgres
simply won't start if the control file says it was from a different
operating system or architecture or ICU/glibc collation version. I
can
disable the GUC (like a maintenance mode) to rebuild my indexes and
update my collation versions, and ideally this GUC would also mean
that
indexes simply aren't allowed to be created on functions that might
change within the guarantees that are made. (And range-based
partitions
can't use them, and FDWs can't rely on them for query planning, etc.)

Does the upgrade check patch in this thread accomplish that for you? If
not, what else does it need?

It's an upgrade-time check rather than a GUC, but it basically seems to
match what you want. See:

/messages/by-id/16c4e37d4c89e63623b009de9ad6fb90e7456ed8.camel@j-davis.com

Regards,
Jeff Davis

#45Robert Haas
robertmhaas@gmail.com
In reply to: Jeff Davis (#44)
Re: Update Unicode data to Unicode 16.0.0

On Tue, Mar 18, 2025 at 2:55 PM Jeff Davis <pgsql@j-davis.com> wrote:

Continuing on with Unicode 15.1 and accepting the unassigned code point
*cannot* prevent breakage.

Under your definition, this is true, but I think Jeremy would define
breakage differently. His primary concern, I expect, is *stability*.
Breakage means that the same supposedly-stable results return
different answers on the same data. Under that definition, continuing
under Unicode 15.1 does prevent breakage.

--
Robert Haas
EDB: http://www.enterprisedb.com

#46Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#45)
Re: Update Unicode data to Unicode 16.0.0

Robert Haas <robertmhaas@gmail.com> writes:

On Tue, Mar 18, 2025 at 2:55 PM Jeff Davis <pgsql@j-davis.com> wrote:

Continuing on with Unicode 15.1 and accepting the unassigned code point
*cannot* prevent breakage.

Under your definition, this is true, but I think Jeremy would define
breakage differently. His primary concern, I expect, is *stability*.
Breakage means that the same supposedly-stable results return
different answers on the same data. Under that definition, continuing
under Unicode 15.1 does prevent breakage.

That approach works only if you sit on Unicode 15.1 *forever*.
The impracticality of that seems obvious to me. Sooner or later
you will need to update, and then you are going to suffer pain.
(In the running example of this thread, a unique index on LOWER(t)
might not only be corrupt, but might fail reindex due to the
constraint being violated under the newer rules.) The longer you
wait, the more probable it is that you are going to have problems,
and the more painful it'll be to clean things up.

Now, if you both sit on Unicode 15.1 forever and disallow the
introduction of unassigned-per-15.1 code points, you can escape
that fate, but that approach brings its own kind of pain.

The short answer is that "immutable" = "doesn't change till the heat
death of the universe" is a definition that is not useful when
dealing with this type of data. Other people determine the reality
that you have to deal with.

regards, tom lane

#47Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#46)
Re: Update Unicode data to Unicode 16.0.0

On Tue, Mar 18, 2025 at 3:50 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:

That approach works only if you sit on Unicode 15.1 *forever*.
The impracticality of that seems obvious to me. Sooner or later
you will need to update, and then you are going to suffer pain.

I completely agree.

The short answer is that "immutable" = "doesn't change till the heat
death of the universe" is a definition that is not useful when
dealing with this type of data. Other people determine the reality
that you have to deal with.

I think that's mostly true because of lack of versioning capabilities,
or crappy versioning practices. glibc, AIUI, just disclaims collation
stability: if you're fool enough to sort anything with one of their
collations, that's on you. To me, that seems like an obviously
user-hostile position, as if it were reasonable to suppose that an
algorithm whose whole purpose is to implement a sort order would not
be used for, uh, sorting. Or at least not any sort of sorting where
you don't immediately throw away the results (and then why did you
bother?). ICU doesn't seem to be entirely stable, either. But none of
that means stability isn't a valuable property. It just means people
have done a bad job implementing it. If we give people the ability to
execute operation X using ICU 15.1 or ICU 16.0, they're still
*eventually* going to have to migrate forward to ICU 16.0 or some
later version, because we're probably not going to keep ICU 15.1 until
the heat death of the universe. But we allow people to not have that
update forced upon them at the same time they're trying to change
other things, and that's pretty darn useful. That's why extensions
have separate versioning from the server, for instance.

--
Robert Haas
EDB: http://www.enterprisedb.com

#48Joe Conway
mail@joeconway.com
In reply to: Robert Haas (#47)
Re: Update Unicode data to Unicode 16.0.0

On 3/18/25 16:30, Robert Haas wrote:

On Tue, Mar 18, 2025 at 3:50 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:

That approach works only if you sit on Unicode 15.1 *forever*.
The impracticality of that seems obvious to me. Sooner or later
you will need to update, and then you are going to suffer pain.

I completely agree.

The short answer is that "immutable" = "doesn't change till the heat
death of the universe" is a definition that is not useful when
dealing with this type of data. Other people determine the reality
that you have to deal with.

I think that's mostly true because of lack of versioning capabilities,
or crappy versioning practices. glibc, AIUI, just disclaims collation
stability: if you're fool enough to sort anything with one of their
collations, that's on you. To me, that seems like an obviously
user-hostile position, as if it were reasonable to suppose that an
algorithm whose whole purpose is to implement a sort order would not
be used for, uh, sorting. Or at least not any sort of sorting where
you don't immediately throw away the results (and then why did you
bother?). ICU doesn't seem to be entirely stable, either.

Yep

But none of that means stability isn't a valuable property. It just
means people have done a bad job implementing it. If we give people
the ability to execute operation X using ICU 15.1 or ICU 16.0,
they're still *eventually* going to have to migrate forward to ICU
16.0 or some later version, because we're probably not going to keep
ICU 15.1 until the heat death of the universe. But we allow people
to not have that update forced upon them at the same time they're
trying to change other things, and that's pretty darn useful. That's
why extensions have separate versioning from the server, for
instance.

+1 Robert articulates my thinking exactly, and much better than I did :-)

--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com

#49Jeff Davis
pgsql@j-davis.com
In reply to: Robert Haas (#43)
Re: Update Unicode data to Unicode 16.0.0

On Tue, 2025-03-18 at 14:45 -0400, Robert Haas wrote:

I think Joe has the right idea. The way to actually provide the
stability that people want here is to continue supporting old
versions
while adding support for new versions. Anything else we do works
subject to assumptions: you can either assume that people don't use
code points before they're assigned (as Tom proposes) or you can
assume that not updating to newer Unicode specs will not cause any
problems for anyone. Joe's proposal is unique in requiring no
assumptions about what users will do or what they care about. It just
works, period. The only disadvantage is that it's more work for us,
but this problem has caused enough suffering over the years that I
bet
we can find hackers to implement it and maintain it on an ongoing
basis without great difficulty.

I've already put a fair amount of work into this approach, but it is a
lot of work, and I could use some help. Here's a quick dump of some of
my notes on what we can do going forward:

* builtin provider with stable primary keys: done

* collation behavior as method tables: done

* have support for STRICT_UNICODE, or something like it, to allow users
to mitigate their upgrade risks by rejecting unassigned code points: I
submitted a proposal for a database-level option, which got no
discussion

* ctype behavior as method tables: patch written, discussion trailed
off. There was a really minor performance regression, so I held off
committing it, but I don't think it's an actual problem so if people
are in general agreement that we want it then I have no problem
committing it.

* separate "collation provider" from "ctype provider" internally. Have
pg_open_collation() and pg_open_ctype(), and deprecate
pg_newlocale_from_collation(). This is a fair amount of work, but it's
important for dependency and version tracking, as well as an
organizational improvement.

* turn providers into method tables: not too hard. We'd still need to
have the notion of a "provider kind" (builtin, ICU, libc) so that we
know how to interpret the syntax and store things in the other catalogs
(for instance, only ICU accepts ICU_RULES, only libc allows LC_COLLATE
and LC_CTYPE to be different, etc.).

* put providers into new shared catalogs pg_collation_provider and
pg_ctype_provider, which would each have handlers that know how to
instantiate a specific collation or ctype

* add new function markers COLLATE and CTYPE (or some other names),
meaning that the function is sensitive to the collation or ctype of its
arguments.
- for example: LOWER() would be marked CTYPE, ">" would be marked
COLLATE, and "||" wouldn't need any mark.
- When creating some object that has an expression in it, let's say
an index, we already walk the expression and add dependencies on the
functions in the expression. If one of those functions has such a
marker, we would look at the inferred collation of the function, find
its provider, and add a dependency on the provider's shared catalog
entry.
- must work even on "pinned" functions
- queries with ORDER BY, say as part of an MV definition, would be
implicitly treated like functions marked with COLLATE

* (optional) have some kind of runtime check so that UDFs that are
missing the appropraite COLLATE or CTYPE markers figure out that a
collation or ctype is being opened, and throw a WARNING or ERROR

* throw away the idea of collation-speciifc versions, or make it more
of an additional check. Versions would be attached to the provider
entries in the shared catalogs. The only provider that differentiates
collation versions by locale is ICU, and people were highly skeptical
of that before we found bugs in it, and more skeptical afterward. They
will just be a source of confusion in the long term.

* Have some new functions and DDL commands that can find and fix
objects by following the dependency links.

* Allow extensions to be loaded at initdb time, and initialize their
own providers and their own lists of collations.

* Provide a contrib that implements the builtin provider with unicode
15.1.

* If we want multiple versions of a provider in the same running
server, that would take more work. I have my doubts about how many
people would really, actually use that, but it's possible.

I plan to submit some proposals in a few weeks as this CF settles down,
and then have an unconference session on this topic at pgconf.dev. If
anyone is motivated for these problems to be fixed, please jump into
those discussions on list or at the conference, and take on a task or
two.

I am not trying to be dismissive of the concerns raised in this thread,
but I'd like others to understand that what they are asking for is a
lot of work, and that the builtin collation provider solves 99% of it
already. All this effort is to solve that last 1%.

Regards,
Jeff Davis

#50Robert Haas
robertmhaas@gmail.com
In reply to: Jeff Davis (#49)
Re: Update Unicode data to Unicode 16.0.0

On Tue, Mar 18, 2025 at 5:09 PM Jeff Davis <pgsql@j-davis.com> wrote:

I am not trying to be dismissive of the concerns raised in this thread,
but I'd like others to understand that what they are asking for is a
lot of work, and that the builtin collation provider solves 99% of it
already. All this effort is to solve that last 1%.

I'm not asking you to do the work. It would be great if you did, of
course, but you don't work for me.

But I could not disagree more strongly with the idea that this problem
is 99% solved. That doesn't seem remotely true to me. I'm not sure the
problem is 1% solved.

--
Robert Haas
EDB: http://www.enterprisedb.com

#51Jeff Davis
pgsql@j-davis.com
In reply to: Robert Haas (#50)
Re: Update Unicode data to Unicode 16.0.0

On Tue, 2025-03-18 at 21:34 -0400, Robert Haas wrote:

But I could not disagree more strongly with the idea that this
problem
is 99% solved. That doesn't seem remotely true to me. I'm not sure
the
problem is 1% solved.

If we compare the following two problems:

A. With glibc or ICU, every text index, including primary keys, are
highly vulnerable to inconsistencies after an OS upgrade, even if
there's no Postgres upgrade; vs.

B. With the builtin provider, only expression indexes and a few other
things are vulnerable, only during a major version upgrade, and mostly
(but not entirely) when using recently-assigned Cased letters.

To me, problem A seems about 100 times worse than B almost any way I
can imagine measuring it: number of objects vulnerable, severity of the
problem when it does happen, likelihood of a vulnerable object having
an actual problem, etc. If you disagree, I'd like to hear more.

Regards,
Jeff Davis

#52Jeremy Schneider
schneider@ardentperf.com
In reply to: Jeff Davis (#51)
Re: Update Unicode data to Unicode 16.0.0

On Tue, 18 Mar 2025 19:33:00 -0700
Jeff Davis <pgsql@j-davis.com> wrote:

If we compare the following two problems:

A. With glibc or ICU, every text index, including primary keys, are
highly vulnerable to inconsistencies after an OS upgrade, even if
there's no Postgres upgrade; vs.

B. With the builtin provider, only expression indexes and a few
other things are vulnerable, only during a major version upgrade, and
mostly (but not entirely) when using recently-assigned Cased letters.

To me, problem A seems about 100 times worse than B almost any way I
can imagine measuring it: number of objects vulnerable, severity of
the problem when it does happen, likelihood of a vulnerable object
having an actual problem, etc. If you disagree, I'd like to hear more.

Jeff - you and several others have literally put years into making this
better, and it's deeply appreciated. I agree that with the builtin
provider we're in a much better place.

I don't quite understand Tom's argument about why Unicode 15 must
eventually become untenable. Why are we assuming it will? In Oracle's
entire history, I think they have only ever supported four versions of
Unicode. [1] MySQL seems to have added their second only recently. [2]
And again - we have ICU if I need the latest emoji characters. Frankly,
Unicode 15 is pretty good. Most updates to unicode these days are fairly
minor.

Maybe Postgres can be the first database to always ship support for the
latest Unicode with each major version - but I think we should design
that right if we're going to do it. If we just stay on Unicode 15 for
now then there are no problems with case insensitive indexes or range
partitioned tables returning wrong query results after a major version
upgrades.

There's been a lot of discussion about indexes, but this SQL also seems
to work:

postgres=# create table test_events(customer_name text, ts timestamp,
message text) partition by range((lower(customer_name)));

I'm sure that people shouldn't do this ... but if anyone /did/ then it
wouldn't be as simple as an index rebuild after their major version
upgrade.

I had never really considered it before, but this SQL also seems to work

postgres=# create table test_events(id uuid, ts timestamp, message
text) partition by range((ts at time zone 'America/Sao_Paulo'));

I'm sure that people shouldn't do that either ... but if anyone did then
would their rows would be in the wrong partition after they upgraded
from 11.4 to 11.5?

The difficulty here is that I work at a company with thousands of
developers and lots of Postgres and I see people do things all the time
that we might think they "shouldnt" do.

Before we bump the unicode version, perseonally I'd just like to have
some tools to make it so people actually can't do the things they
shouldn't do.

-Jeremy

1:
https://docs.oracle.com/en/database/oracle/oracle-database/23/nlspg/appendix-A-locale-data.html#GUID-CC85A33C-81FC-4E93-BAAB-1B3DB9036060__CIABEDHB

2:
https://dev.mysql.com/blog-archive/mysql-character-sets-unicode-and-uca-compliant-collations/

#53Robert Haas
robertmhaas@gmail.com
In reply to: Jeff Davis (#51)
Re: Update Unicode data to Unicode 16.0.0

On Tue, Mar 18, 2025 at 10:33 PM Jeff Davis <pgsql@j-davis.com> wrote:

If we compare the following two problems:

A. With glibc or ICU, every text index, including primary keys, are
highly vulnerable to inconsistencies after an OS upgrade, even if
there's no Postgres upgrade; vs.

B. With the builtin provider, only expression indexes and a few other
things are vulnerable, only during a major version upgrade, and mostly
(but not entirely) when using recently-assigned Cased letters.

To me, problem A seems about 100 times worse than B almost any way I
can imagine measuring it: number of objects vulnerable, severity of the
problem when it does happen, likelihood of a vulnerable object having
an actual problem, etc. If you disagree, I'd like to hear more.

I see your point, but most people don't use the builtin collation
provider. Granted, we could change the default and then more people
would use it, but I'm not sure people would be happy with the
resulting behavior: a lot of people probably want "a" to sort near "á"
even if they don't have strong preferences about the exact details in
every corner case.

Also, and I think rather importantly, many people are less sensitive
to whether anything is actually broken than to whether anything
hypothetically could be broken. When an EDB customer asks "if I do X,
will anything break," it's often the case that answering "maybe" is
the same as answering "yes". The DBA doesn't necessarily know or care
what the application does or know or care what data is in the
database. They want a hard guarantee that the behavior will not
change. From that point of view, your statement that nothing will
change in minor releases when the builtin provider is used is quite
powerful (and a good argument against back-patching Unicode updates as
Tom proposes).

But people will still need to use other collation providers and they
will still need to do major release upgrades and they also want those
things to be guaranteed not to break. Again, I'm not trying to oblige
you to deliver that behavior and I confess to ignorance on how we
could realistically get there. But I do think it's what people want:
to be forced to endure collation updates infrequently, and to be able
to choose the timing of the update when they absolutely must happen,
and to be able to easily know exactly what they need to reindex.

And from that point of view -- and again, I'm not volunteering to
implement it and I'm not telling you to do it either -- Joe's proposal
of supporting multiple versions sounds fantastic. Because then, I can
do a major version upgrade using pg_upgrade and keep everything pinned
to the old Unicode version or, perhaps even the old ICU version if we
had multi-version libicu support. I may be able to go through several
major version upgrades without ever needing to survive a collation
change. Eventually my hand will be forced, because PostgreSQL will
remove support for the Unicode version I care about or that old
version of libicu won't compile any more or will have security
vulnerabilities or something, but I will have the option to deal with
that collation change before or after any PostgreSQL version changes
that I'm doing. I'll be able to change the collation version at a time
when I'm not changing anything else and deal with JUST that fallout on
its own.

--
Robert Haas
EDB: http://www.enterprisedb.com

#54Robert Haas
robertmhaas@gmail.com
In reply to: Jeremy Schneider (#52)
Re: Update Unicode data to Unicode 16.0.0

On Wed, Mar 19, 2025 at 1:25 AM Jeremy Schneider
<schneider@ardentperf.com> wrote:

Maybe Postgres can be the first database to always ship support for the
latest Unicode with each major version

Shipping the latest Unicode with our latest major version is existing
policy, as I understand it. I don't think we're breaking any new
ground here.

Before we bump the unicode version, perseonally I'd just like to have
some tools to make it so people actually can't do the things they
shouldn't do.

I would, too, but I think that's a hole with no bottom. We're not
realistically going to sort this problem out in the next twelve
months, or even in the next five years. For that reason, I don't
understand how you can propose with a straight face that we pause the
Unicode updates that have been routine up until now until we have the
problem sorted out. That amounts to deciding that we're never going to
add support for any new Unicode versions. And I don't see that as
realistic. We have those Unicode tables because their contents matter.
If we don't update them then, for example, new cased letters won't
case-fold properly. Yeah, maybe if we didn't update for one year,
nobody would care. But five or ten or twenty years from now, somebody
will care, and I don't think we'll have all the stuff you want to
prevent people from hosing themselves even then.

Not only that, but freezing the Unicode tables doesn't even really
help that much, because the much bigger problem comes from the
constant whacking around of the glibc and to a lesser extent ICU
behavior.

--
Robert Haas
EDB: http://www.enterprisedb.com

#55Jeff Davis
pgsql@j-davis.com
In reply to: Robert Haas (#53)
Re: Update Unicode data to Unicode 16.0.0

On Wed, 2025-03-19 at 08:46 -0400, Robert Haas wrote:

I see your point, but most people don't use the builtin collation
provider.

The other providers aren't affected by us updating Unicode, so I think
we got off track somehow. I suppose what I meant was:

"If you are concerned about inconsistencies, and you move to the
builtin provider, then 99% of the inconsistency problem is gone. We can
remove the last 1% of the problem if we do all the work listed above."

When an EDB customer asks "if I do X,
will anything break," it's often the case that answering "maybe" is
the same as answering "yes".

That's a good point. However, note that "doesn't break primary keys" is
a nice guarantee, even if there's still some remaining doubts about
expression indexes, etc.

They want a hard guarantee that the behavior will not
change.

My understanding of this thread so far was that we were mostly
concerned about internal inconsistencies of stored structures; e.g.
indexes that could return different results than a seqscan.

Not changing query results at all between major versions is a valid
concern, but a fairly strict one that doesn't seem limited to immutable
functions or collation issues. Surely, at least the results of "SELECT
version()" should change from release to release ;-)

Again, I'm not trying to oblige
you to deliver that behavior and I confess to ignorance on how we
could realistically get there.

FWIW I'm not complaining about doing the work. But I think the results
will be better if we can get a few people aligned on a general plan and
collaborating. I will try to kick that off.

and to be able to easily know exactly what they need to reindex.

That's the main one, I think. The upgrade check offers that for the
builtin provider, though admittedly it's not a very user-friendly
solution, and we can do better.

And from that point of view -- and again, I'm not volunteering to
implement it and I'm not telling you to do it either -- Joe's
proposal
of supporting multiple versions sounds fantastic.

I certainly don't oppose giving users that choice. But I view it as a
burden we are placing on the users -- better than breakage, but not
really great, either. So if we do put in a ton of work, I'd like it if
we could arrive at a bettter destination.

If we actually want the BEST user experience possible, they'd not even
really know that their index was ever inconsistent. Autovacuum would
come along and just find the few entries in the index that need fixing,
and reindex just those few tuples. In theory, it should be possible:
there are a finite number of codepoints that change each Unicode
version, and we can just search for them in the data and fix up derived
structures.

Regards,
Jeff Davis

#56Robert Haas
robertmhaas@gmail.com
In reply to: Jeff Davis (#55)
Re: Update Unicode data to Unicode 16.0.0

On Wed, Mar 19, 2025 at 1:39 PM Jeff Davis <pgsql@j-davis.com> wrote:

On Wed, 2025-03-19 at 08:46 -0400, Robert Haas wrote:

I see your point, but most people don't use the builtin collation
provider.

The other providers aren't affected by us updating Unicode, so I think
we got off track somehow. I suppose what I meant was:

"If you are concerned about inconsistencies, and you move to the
builtin provider, then 99% of the inconsistency problem is gone. We can
remove the last 1% of the problem if we do all the work listed above."

All right. I'm not sure I totally buy the 99% number, but I take your point.

When an EDB customer asks "if I do X,
will anything break," it's often the case that answering "maybe" is
the same as answering "yes".

That's a good point. However, note that "doesn't break primary keys" is
a nice guarantee, even if there's still some remaining doubts about
expression indexes, etc.

No argument.

They want a hard guarantee that the behavior will not
change.

My understanding of this thread so far was that we were mostly
concerned about internal inconsistencies of stored structures; e.g.
indexes that could return different results than a seqscan.

I think that is true, but inconsistent indexes can be the worst
problem without being the only one.

Not changing query results at all between major versions is a valid
concern, but a fairly strict one that doesn't seem limited to immutable
functions or collation issues. Surely, at least the results of "SELECT
version()" should change from release to release ;-)

Maybe we should stop doing releases, and then users won't have to
worry about our releases breaking things!

Slightly more seriously, the use of UPPER() and LOWER() in expression
indexes is not that uncommon. Sometimes, the index exists specifically
to enforce a unique constraint. Yes, plain indexes on columns are more
common, and it makes sense to target that case first, but we shouldn't
be too quickly hand-wave away the use of case-folding functions as a
thing that doesn't happen.

I certainly don't oppose giving users that choice. But I view it as a
burden we are placing on the users -- better than breakage, but not
really great, either. So if we do put in a ton of work, I'd like it if
we could arrive at a bettter destination.

If we actually want the BEST user experience possible, they'd not even
really know that their index was ever inconsistent. Autovacuum would
come along and just find the few entries in the index that need fixing,
and reindex just those few tuples. In theory, it should be possible:
there are a finite number of codepoints that change each Unicode
version, and we can just search for them in the data and fix up derived
structures.

I have to disagree with this. I think this is a case where fixing
something automatically is clearly worse. First, it could never fix it
instantly, so you would be stuck with some window where queries might
return wrong results -- or if you prevent that by not using the
indexes any more until they're fixed, then it would instead cause huge
query performance regressions that could easily take down the whole
system. Second, one of the things people like least about autovacuum
is when it unexpectedly does a lot of work all at once. Today, that's
usually a vacuum for wrap-around, but suddenly trying to fix all my
indexes when I wasn't expecting that to happen could easily be just as
bad. I strongly believe users want to control what happens, not have
the system try to fix it for them automatically without their
knowledge.

--
Robert Haas
EDB: http://www.enterprisedb.com

#57Jeff Davis
pgsql@j-davis.com
In reply to: Robert Haas (#56)
Re: Update Unicode data to Unicode 16.0.0

On Wed, 2025-03-19 at 14:33 -0400, Robert Haas wrote:

I strongly believe users want to control what happens, not have
the system try to fix it for them automatically without their
knowledge.

Do you have a sketch of what the ideal Unicode version management
experience might look like? Very high level, like "this is what happens
by default during an upgrade" and "this is how a user discovers that
that they might want to update Uniocde", etc.

What ways can/should we nudge users to update more quickly, if at all,
so that they are less likely to have problems with newly-assigned code
points?

And, if possible, how we might extend this user experience to libc or
ICU updates?

Regards,
Jeff Davis

#58Robert Haas
robertmhaas@gmail.com
In reply to: Jeff Davis (#57)
Re: Update Unicode data to Unicode 16.0.0

On Wed, Mar 19, 2025 at 5:47 PM Jeff Davis <pgsql@j-davis.com> wrote:

Do you have a sketch of what the ideal Unicode version management
experience might look like? Very high level, like "this is what happens
by default during an upgrade" and "this is how a user discovers that
that they might want to update Uniocde", etc.

What ways can/should we nudge users to update more quickly, if at all,
so that they are less likely to have problems with newly-assigned code
points?

And, if possible, how we might extend this user experience to libc or
ICU updates?

As I think you know, I don't consider myself an expert in this area,
just somebody who has seen a decent amount of user pain (although I am
sure that even there some other people have seen more). That said, for
me the ideal would probably include the following things:

* When the collation/ctype/whatever definitions upon which you are
relying change, you can either decide to switch to the new ones
without rebuilding your indexes and risk wrong results until you
reindex, or you can decide to create new indexes using the new
definitions and drop the old ones.

* You're never forced to adopt new definitions during a SPECIFIC major
or minor release upgrade or when making some other big change to the
system. It's fine, IMHO, if we eventually remove support for old
stuff, but there should be a multi-year window of overlap. For
example, if PostgreSQL 42 adds support for Unicode 95.0.0, we'd keep
that support for, I don't know, at least the next four or five major
versions. So upgrading PG can eventually force you to upgrade
collation defs, but you don't get into a situation where PG 41
supports only Unicode < 95 and PG 42 supports only Unicode >= 95.

* In an absolutely perfect world, we'd have strong versioning of every
type of collation from every provider. This is probably very difficult
to achieve in practice, so maybe the somewhat more realistic goal
might be to get to a point where most users, most of the time, are
relying on collations with strong versioning. For glibc, this seems
relatively hopeless unless upstream changes their policy in a big way.
For ICU, loading multiple library versions seems like a possible path
forward. Relying more on built-in collations seems like another
possible approach, but I think that would require us to have more than
just a code-point sort: we'd need to have built-in collations for
users of various languages. That sounds like it would be a lot of work
to develop, but even worse, it sounds like it would be a tremendous
amount of work to maintain. I expect Tom will opine that this is an
absolutely terrible idea that we should never do under any
circumstances, and I understand the sentiment, but I think it might be
worth considering if we're confident we will have people to do the
maintenance over the long term.

* I would imagine pg_upgrade either keeping the behavior unchanged for
any strongly-versioned collation, or failing. I don't see a strong
need to try to notify users about the availability of new versions
otherwise. People who want to stay current will probably figure out
how to do that, and people who don't will ignore any warnings we give
them. I'm not completely opposed to some other form of notification,
but I think it's OK if "we finally removed support for your extremely
old ICU version" is the driving force that makes people upgrade.

--
Robert Haas
EDB: http://www.enterprisedb.com

#59Jeff Davis
pgsql@j-davis.com
In reply to: Robert Haas (#58)
Re: Update Unicode data to Unicode 16.0.0

On Thu, 2025-03-20 at 08:45 -0400, Robert Haas wrote:

* When the collation/ctype/whatever definitions upon which you are
relying change, you can either decide to switch to the new ones
without rebuilding your indexes and risk wrong results until you
reindex, or you can decide to create new indexes using the new
definitions and drop the old ones.

Would newly-created objects pick up the new Unicode version, or stick
with the old one?

Relying more on built-in collations seems like another
possible approach, but I think that would require us to have more
than
just a code-point sort: we'd need to have built-in collations for
users of various languages. That sounds like it would be a lot of
work
to develop, but even worse, it sounds like it would be a tremendous
amount of work to maintain. I expect Tom will opine that this is an
absolutely terrible idea that we should never do under any
circumstances, and I understand the sentiment, but I think it might
be
worth considering if we're confident we will have people to do the
maintenance over the long term.

Supporting a built-in case-insensitive collation would be some work,
but it's not a huge leap now that we have CASEFOLD().

Supprting built-in natural language sort orders would be a much larger
scope. And I don't think we need that, but that's a larger discussion.

I don't see a strong
need to try to notify users about the availability of new versions
otherwise. People who want to stay current will probably figure out
how to do that

What if we were able to tell, for instance, that your database has none
of the codepoints affected by the most recent update. Then updating
would be less risky than not updating: if you don't update Unicode,
then the code points could end up in the database treated as
unassigned, and then cause a problem for future updates.

Regards,
Jeff Davis

#60Robert Haas
robertmhaas@gmail.com
In reply to: Jeff Davis (#59)
Re: Update Unicode data to Unicode 16.0.0

On Fri, Mar 21, 2025 at 2:45 AM Jeff Davis <pgsql@j-davis.com> wrote:

On Thu, 2025-03-20 at 08:45 -0400, Robert Haas wrote:

* When the collation/ctype/whatever definitions upon which you are
relying change, you can either decide to switch to the new ones
without rebuilding your indexes and risk wrong results until you
reindex, or you can decide to create new indexes using the new
definitions and drop the old ones.

Would newly-created objects pick up the new Unicode version, or stick
with the old one?

Hmm, I hadn't thought about that. I'm assuming that the Unicode
version would need, in this scheme, to be coupled to the object that
depends on it. For example, an index that uses a Unicode collation
would need to store a Unicode version. But for a new index, how would
that be set? Maybe the Unicode version would be treated as part of the
collation. I'm guessing that an index defaults to the column
collation, and I think the column collation defaults to the database
default collation. We might need a way for ALTER DATABASE to allow the
database default to be adjusted. I'm not quite sure here, but my
general feeling is that Unicode version feels like part of the
collation and that we should avoid introducing a separate mechanism if
possible. What are your thoughts?

Supprting built-in natural language sort orders would be a much larger
scope. And I don't think we need that, but that's a larger discussion.

I'm curious why you think this. My own feeling (as I think you
probably know, but just to be clear) is that relatively few people
need extremely precise control over their collation behavior, but
there are some who do. However, I think there are many people for whom
a code-point sort won't be good enough. If you want to leave this
discussion for another time, that's fine.

What if we were able to tell, for instance, that your database has none
of the codepoints affected by the most recent update. Then updating
would be less risky than not updating: if you don't update Unicode,
then the code points could end up in the database treated as
unassigned, and then cause a problem for future updates.

The problem with this is that it requires scanning the whole database.
That's not to say it's useless. Some people can afford to scan the
whole database, and some people might even WANT to scan the whole
database just to give themselves peace of mind. But there are also
plenty of people for whom this is a major downside, even unusable. I'd
like to have a solution that is based on metadata.

Maybe we should actually move in the direction of having encodings
that are essentially specific versions of Unicode. Instead of just
having UTF-8 that accepts whatever, you could have UTF-8.v16.0.0 or
whatever, which would only accept code points known to that version of
Unicode. Or maybe this shouldn't be entirely new encodings but
something vaguely akin to a typmod, so that you could have columns of
type text[limited_to_unicode_v16_0_0] or whatever. If we actually
exclude unassigned code points, then we know they aren't there, and we
can make deductions about what is safe to do based on that
information. I'm not quite sure how useful that is, but I tend to
think that enforcing rules when the data goes in has a decent shot at
being better than letting anything going in and then having to scan it
later to see how it all turned out.

--
Robert Haas
EDB: http://www.enterprisedb.com

#61Peter Eisentraut
peter@eisentraut.org
In reply to: Jeremy Schneider (#27)
Re: Update Unicode data to Unicode 16.0.0

On 15.03.25 07:54, Jeremy Schneider wrote:

in favor of leaving it alone because ICU is there for when I need
up-to-date unicode versions.

From my perspective, the whole point of the builtin collation was to
one option that avoids these problems that come with updating both ICU
and glibc.

So I guess the main point of the builtin provider just that it's faster
than ICU?

A mistake that some people apparently continue to make in this
discussion is that they assume that the only thing the Unicode tables
drive is the builtin collation provider. This is not true, the Unicode
tables were there long before the builtin collation provider, and they
have other purposes. And we knew at the time the builtin collation
provider was added that it would have certain problems with the Unicode
table updates, and we accepted it with the understanding that this would
not change our procedures. Otherwise, we would likely not have accepted
it in its current form.

Those who are now trying to make the builtin collation provider have
properties that it does not have and was not intended to have when it
was added, they would need to arrange the work to make it have those
properties if they want them, rather than insist that progress in other
areas must stop because they are content with the current state.

#62Jeff Davis
pgsql@j-davis.com
In reply to: Peter Eisentraut (#61)
Re: Update Unicode data to Unicode 16.0.0

On Fri, 2025-03-21 at 17:15 +0100, Peter Eisentraut wrote:

And we knew at the time the builtin collation
provider was added that it would have certain problems with the
Unicode
table updates, and we accepted it with the understanding that this
would
not change our procedures.

Correct. That was called out by me in the initial proposal for the
builtin collation provider and documented explicitly.

Those who are now trying to make the builtin collation provider have
properties that it does not have and was not intended to have when it
was added, they would need to arrange the work to make it have those
properties if they want them, rather than insist that progress in
other
areas must stop because they are content with the current state.

It does feel like the goalposts are moving. That's not necessarily bad
by itself -- our expectations should go up. But the way it's happening
in this thread makes it feel like new obligations are being put on the
people already working on collation improvements, in particular Peter
and I.

Robert indicated that there might be some willing hackers, and perhaps
even appetite for larger-scope projects in this area, which is great
news. A lot of what's happening in this area is non-controversial, and
more attention would be an unqualified win. For instance, Peter put
some work into better support for non-deterministic collations, and I
had some ideas there:

/messages/by-id/024c9b9aa834f668496ef95700b57e50bf3f4808.camel@j-davis.com

but I didn't have time to work on that this cycle. (Maybe my idea would
be hard to implement or not work at all, or maybe Peter and Tom already
have better ideas, but that's different from being controversial.)

For the many people who think multi-lib is the way to go, the shortest
path involves someone taking a look at this prerequisite:

/messages/by-id/cb580fec46ea4ca96dd4bbde9d2769360e097d01.camel@j-davis.com

Some technical review would be nice, but really what I needed was
someone to say "this small regression in a worst case due to an
unavoidable indirect function call is not worth worrying about". It
might be a bit late now, though, as a big refactoring right before FF
seems like a bad idea. So it will probably slip until July, adding risk
that any other multi-lib work (which I am not promising to do) might
slip to PG20, which users will see at the end of 2027. Ugh.

Regards,
Jeff Davis

#63Robert Haas
robertmhaas@gmail.com
In reply to: Jeff Davis (#62)
Re: Update Unicode data to Unicode 16.0.0

On Fri, Mar 21, 2025 at 2:27 PM Jeff Davis <pgsql@j-davis.com> wrote:

Those who are now trying to make the builtin collation provider have
properties that it does not have and was not intended to have when it
was added, they would need to arrange the work to make it have those
properties if they want them, rather than insist that progress in
other
areas must stop because they are content with the current state.

It does feel like the goalposts are moving. That's not necessarily bad
by itself -- our expectations should go up. But the way it's happening
in this thread makes it feel like new obligations are being put on the
people already working on collation improvements, in particular Peter
and I.

Honestly, I'm confused as to why Peter hasn't committed the Unicode
update a long time ago at this point. Nobody has alleged that the
stability guarantees provided by the builtin collation provider are
(a) worse than any of other other providers or (b) worse than what was
documented. And nobody has refuted the argument that refusing to
update the Unicode tables will cause other problems (such as not
knowing what to do with new code points that are added in the other
places where those tables are used). People who aren't doing the work
to improve the infrastructure don't get to hold the longstanding
process hostage.

None of the above means that I wouldn't like things to be better in
this area; this is a huge source of pain and I would obviously like
all of kinds of amazing things, preferably done by other people with
no real thought or work required on my part. But I'd like that in lots
of areas of PostgreSQL and lots of areas of my life in general, and I
understand that it's an unreasonable expectation.

--
Robert Haas
EDB: http://www.enterprisedb.com

#64Jeff Davis
pgsql@j-davis.com
In reply to: Robert Haas (#60)
Re: Update Unicode data to Unicode 16.0.0

On Fri, 2025-03-21 at 10:45 -0400, Robert Haas wrote:

We might need a way for ALTER DATABASE to allow the
database default to be adjusted. I'm not quite sure here, but my
general feeling is that Unicode version feels like part of the
collation and that we should avoid introducing a separate mechanism
if
possible. What are your thoughts?

My (early stage) plans are to have two new shared catalogs,
pg_ctype_provider and pg_collation_provider. Objects would depend on
records in those shared catalogs, which would each have a version. We'd
eventually allow multiple records with providerkind=icu, for instance,
and have some way to choose which one to use (perhaps new objects get
the default version, old objects keep the old version, or something).

The reason to have two shared catalogs is because some objects depend
on collation behavior and some on ctype behavior. If there's an index
on "t COLLATE PG_C_UTF8" then there would be no direct dependency from
the index to the builtin provider in either catalog, because collation
behavior in the builtin provider is unversioned memcmp. But if there's
an index on "LOWER(t COLLATE PG_C_UTF8)", then it would have a
dependency entry to the builtin provider's entry in pg_ctype_provider.

I'm curious why you think this. My own feeling (as I think you
probably know, but just to be clear) is that relatively few people
need extremely precise control over their collation behavior, but
there are some who do. However, I think there are many people for
whom
a code-point sort won't be good enough.

You can use ICU for sorting without using it for the index comparators.
Using ICU in the index comparators is an implementation detail that's
only required for unique indexes over non-deterministic collations. And
if it's not used for the index comparators, then most of the problems
go away, and versioning is not nearly so important.

Sure, there are some cases where using ICU in the index comparator is
important, and I'm not suggesting that we remove functionality. But I
believe that using libc or ICU for index comparators is the wrong
default behavior -- high downsides and low upsides for most text
indexes that have ever been created.

Even if there is an ORDER BY, using an index is often the wrong thing
unless it's an index only scan. Text indexes are rarely correlated with
the heap, so it would lead to a lot of random heap fetches, and it's
often better to just execute the query and do a final sort. The
situations where ICU in the comparator is a good idea are special cases
of special cases.

I've posted about this in the past, and got universal disagreement. But
I believe others will eventually come to the same conclusion that I
did.

Maybe we should actually move in the direction of having encodings
that are essentially specific versions of Unicode. Instead of just
having UTF-8 that accepts whatever, you could have UTF-8.v16.0.0 or
whatever, which would only accept code points known to that version
of
Unicode. Or maybe this shouldn't be entirely new encodings but
something vaguely akin to a typmod, so that you could have columns of
type text[limited_to_unicode_v16_0_0] or whatever. If we actually
exclude unassigned code points, then we know they aren't there, and
we
can make deductions about what is safe to do based on that
information.

I like this line of thinking, vaguely similar to my STRICT_UNICODE
database option proposal. Maybe these aren't exactly the right things
to do, but I think there are some possibilities here, and we shouldn't
give up and assume there's a problem when usually there is not.

It reminds me of fast-path locking: sure, there *might* be DDL
happening while I'm trying to do a simple SELECT query. But probably
not, so let's make it the responsibility of DDL to warn others that
it's doing something, rather than the responsibility of the SELECT
query.

Regards,
Jeff Davis

#65Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Robert Haas (#63)
Re: Update Unicode data to Unicode 16.0.0

On Fri, 2025-03-21 at 14:54 -0400, Robert Haas wrote:

And nobody has refuted the argument that refusing to
update the Unicode tables will cause other problems (such as not
knowing what to do with new code points that are added in the other
places where those tables are used).

The argument is irrefutable.
I can only utter my (unproven) conviction that the complaints about
some outlandish character being converted to upper case in the wrong
way won't be as loud as the complaints about a corrupted index.

But perhaps both occurrences would be rare enough that there is
little point in arguing at all.

People who aren't doing the work
to improve the infrastructure don't get to hold the longstanding
process hostage.

Actually, I am arguing for *not* doing the work...

Yours,
Laurenz Albe

#66Jeremy Schneider
schneider@ardentperf.com
In reply to: Jeff Davis (#64)
Re: Update Unicode data to Unicode 16.0.0

On Fri, 21 Mar 2025 13:45:24 -0700
Jeff Davis <pgsql@j-davis.com> wrote:

Maybe we should actually move in the direction of having encodings
that are essentially specific versions of Unicode. Instead of just
having UTF-8 that accepts whatever, you could have UTF-8.v16.0.0 or
whatever, which would only accept code points known to that version
of
Unicode. Or maybe this shouldn't be entirely new encodings but
something vaguely akin to a typmod, so that you could have columns
of type text[limited_to_unicode_v16_0_0] or whatever. If we actually
exclude unassigned code points, then we know they aren't there, and
we
can make deductions about what is safe to do based on that
information.

I like this line of thinking, vaguely similar to my STRICT_UNICODE
database option proposal. Maybe these aren't exactly the right things
to do, but I think there are some possibilities here, and we shouldn't
give up and assume there's a problem when usually there is not.

There is "the iPhone paradox" here; if we reject unassigned code
points, then websites are going to start throwing database errors for
anyone with the latest iPhone who uses a new emoji.

(Unless the database is updated very quickly, which is atypical.) Apple
tends to get new emojis into consumers hands a year or less after the
new Unicode release.

-Jeremy

#67Peter Eisentraut
peter@eisentraut.org
In reply to: Jeff Davis (#38)
Re: Update Unicode data to Unicode 16.0.0

On 17.03.25 19:54, Jeff Davis wrote:

On Thu, 2025-03-13 at 14:49 +0100, Peter Eisentraut wrote:

I think these test result changes are incorrect.  AFAICT, nothing has
changed in the upstream data that would explain such a change.

I didn't get such test differences in my original patch.  Did you
rebase
the patch or regenerate it?  Maybe something went wrong there.

Right. The previous version was improperly rebased.

I went back to your original version and rebased over master (including
the latest optimizations for case mapping), and then rebased my changes
on top of that. Attached.

One annoyance with the recent case mapping optimizations is that the
Unicode update diff is larger, similar to the diff for
unicode_norm_hashfunc.h. Previously, it was binary search, so the only
differences were logical differences.

I have committed the update to the Unicode tables. I suggest you commit
your pg_upgrade patch on top of that now.

#68Nathan Bossart
nathandbossart@gmail.com
In reply to: Nathan Bossart (#22)
Re: Update Unicode data to Unicode 16.0.0

On Wed, Mar 05, 2025 at 02:33:42PM -0600, Nathan Bossart wrote:

+	/*
+	 * The builtin provider did not exist prior to version 17. While there are
+	 * still problems that could potentially be caught from earlier versions,
+	 * such as an index on NORMALIZE(), we don't check for that here.
+	 */
+	if (GET_MAJOR_VERSION(cluster->major_version) < 1700)
+		return;

nitpick: In most cases, I think this check is done in
check_and_dump_old_cluster() before actually calling the checking function.
I don't think there's any big problem here, except you might strand the
memory allocated for the task.

+	if (!unicode_version_changed(cluster))
+	{
+		check_ok();
+		return;
+	}

Same nitpick here about stranding the task memory.

Coverity is unhappy about these. I think we should at least do something
like the following. I'll commit this when I have an opportunity.

diff --git a/src/bin/pg_upgrade/check.c b/src/bin/pg_upgrade/check.c
index 8f946c4e3d6..18c2d652bb6 100644
--- a/src/bin/pg_upgrade/check.c
+++ b/src/bin/pg_upgrade/check.c
@@ -1825,7 +1825,7 @@ static void
 check_for_unicode_update(ClusterInfo *cluster)
 {
     UpgradeTaskReport report;
-    UpgradeTask *task = upgrade_task_create();
+    UpgradeTask *task;
     const char *query;

/*
@@ -1920,6 +1920,7 @@ check_for_unicode_update(ClusterInfo *cluster)
" d.datname = current_database() AND "
" d.encoding = pg_char_to_encoding('UTF8');";

+ task = upgrade_task_create();
upgrade_task_add_step(task, query,
process_unicode_update,
true, &report);

--
nathan

#69Nathan Bossart
nathandbossart@gmail.com
In reply to: Nathan Bossart (#68)
Re: Update Unicode data to Unicode 16.0.0

On Sun, Apr 06, 2025 at 09:16:17AM -0500, Nathan Bossart wrote:

Coverity is unhappy about these. I think we should at least do something
like the following. I'll commit this when I have an opportunity.

Committed.

--
nathan