Update unicode tables to v. 12 of the standard
authorArtem Pelenitsyn <a.pelenitsyn@gmail.com>
Tue, 21 Aug 2018 23:33:35 +0000 (19:33 -0400)
committerBen Gamari <ben@smart-cactus.org>
Fri, 24 Aug 2018 02:42:08 +0000 (22:42 -0400)
Reviewers: hvr, bgamari, Azel

Reviewed By: bgamari

Subscribers: thomie, Azel, rwbarton, carter

GHC Trac Issues: #5518, #15525

Differential Revision: https://phabricator.haskell.org/D5066

docs/users_guide/8.8.1-notes.rst
libraries/base/cbits/README.Unicode
libraries/base/cbits/WCsubst.c
libraries/base/changelog.md
libraries/base/tests/T10412.stdout
libraries/base/tests/unicode002.stdout

index 7e54645..f97e79a 100644 (file)
@@ -54,6 +54,8 @@ Template Haskell
 ``base`` library
 ~~~~~~~~~~~~~~~~
 
+- Support the characters from recent versions of Unicode (up to v. 12) in literals
+    (see :ghc-ticket:`5518`).
 
 Build system
 ~~~~~~~~~~~~
index 363aa4d..6cc1846 100644 (file)
@@ -5,4 +5,4 @@ WCsubst.c is generated with:
 
 where UnicodeData.txt came from
 
-    http://www.unicode.org/Public/6.0.0/ucd/UnicodeData.txt
+    https://www.unicode.org/Public/12.0.0/ucd/UnicodeData-12.0.0d4.txt
index c4b0645..9940405 100644 (file)
@@ -1,6 +1,6 @@
 /*-------------------------------------------------------------------------
 This is an automatically generated file: do not edit
-Generated by ubconfc at Wed Oct 15 14:24:39 EDT 2014
+Generated by ubconfc at Tue Aug 14 10:04:18 UTC 2018
 @generated
 -------------------------------------------------------------------------*/
 
@@ -90,110 +90,126 @@ struct _charblock_
 #define GENCAT_MN 2097152
 #define GENCAT_LO 16384
 #define MAX_UNI_CHAR 1114109
-#define NUM_BLOCKS 3073
-#define NUM_CONVBLOCKS 1276
+#define NUM_BLOCKS 3349
+#define NUM_CONVBLOCKS 1326
 #define NUM_SPACEBLOCKS 7
 #define NUM_LAT1BLOCKS 63
-#define NUM_RULES 181
-static const struct _convrule_ rule169={GENCAT_LU, NUMCAT_LU, 1, 0, -35332, 0};
-static const struct _convrule_ rule157={GENCAT_SO, NUMCAT_SO, 1, -26, 0, -26};
-static const struct _convrule_ rule168={GENCAT_LL, NUMCAT_LL, 1, -7264, 0, -7264};
-static const struct _convrule_ rule173={GENCAT_LU, NUMCAT_LU, 1, 0, -42315, 0};
-static const struct _convrule_ rule129={GENCAT_LL, NUMCAT_LL, 1, 8, 0, 8};
-static const struct _convrule_ rule88={GENCAT_LL, NUMCAT_LL, 1, 42258, 0, 42258};
+#define NUM_RULES 205
+static const struct _convrule_ rule183={GENCAT_LU, NUMCAT_LU, 1, 0, -35332, 0};
+static const struct _convrule_ rule171={GENCAT_SO, NUMCAT_SO, 1, -26, 0, -26};
+static const struct _convrule_ rule182={GENCAT_LL, NUMCAT_LL, 1, -7264, 0, -7264};
+static const struct _convrule_ rule188={GENCAT_LU, NUMCAT_LU, 1, 0, -42315, 0};
+static const struct _convrule_ rule143={GENCAT_LL, NUMCAT_LL, 1, 8, 0, 8};
+static const struct _convrule_ rule127={GENCAT_LU, NUMCAT_LU, 1, 0, 38864, 0};
+static const struct _convrule_ rule90={GENCAT_LL, NUMCAT_LL, 1, 42258, 0, 42258};
 static const struct _convrule_ rule20={GENCAT_LL, NUMCAT_LL, 0, 0, 0, 0};
 static const struct _convrule_ rule76={GENCAT_LL, NUMCAT_LL, 1, 10743, 0, 10743};
 static const struct _convrule_ rule61={GENCAT_LL, NUMCAT_LL, 1, 10783, 0, 10783};
+static const struct _convrule_ rule132={GENCAT_LL, NUMCAT_LL, 1, -6242, 0, -6242};
 static const struct _convrule_ rule37={GENCAT_LU, NUMCAT_LU, 1, 0, 211, 0};
+static const struct _convrule_ rule197={GENCAT_LL, NUMCAT_LL, 1, -928, 0, -928};
 static const struct _convrule_ rule80={GENCAT_LL, NUMCAT_LL, 1, -214, 0, -214};
 static const struct _convrule_ rule75={GENCAT_LL, NUMCAT_LL, 1, -211, 0, -211};
-static const struct _convrule_ rule121={GENCAT_LL, NUMCAT_LL, 1, -48, 0, -48};
+static const struct _convrule_ rule123={GENCAT_LL, NUMCAT_LL, 1, -48, 0, -48};
 static const struct _convrule_ rule52={GENCAT_LU, NUMCAT_LU, 1, 0, -56, 0};
-static const struct _convrule_ rule135={GENCAT_LL, NUMCAT_LL, 1, 112, 0, 112};
+static const struct _convrule_ rule149={GENCAT_LL, NUMCAT_LL, 1, 112, 0, 112};
 static const struct _convrule_ rule71={GENCAT_LL, NUMCAT_LL, 1, -207, 0, -207};
-static const struct _convrule_ rule123={GENCAT_LU, NUMCAT_LU, 1, 0, 7264, 0};
-static const struct _convrule_ rule152={GENCAT_LU, NUMCAT_LU, 1, 0, 28, 0};
-static const struct _convrule_ rule159={GENCAT_LU, NUMCAT_LU, 1, 0, -3814, 0};
+static const struct _convrule_ rule125={GENCAT_LU, NUMCAT_LU, 1, 0, 7264, 0};
+static const struct _convrule_ rule166={GENCAT_LU, NUMCAT_LU, 1, 0, 28, 0};
+static const struct _convrule_ rule173={GENCAT_LU, NUMCAT_LU, 1, 0, -3814, 0};
 static const struct _convrule_ rule45={GENCAT_LU, NUMCAT_LU, 1, 0, 219, 0};
 static const struct _convrule_ rule7={GENCAT_PD, NUMCAT_PD, 0, 0, 0, 0};
-static const struct _convrule_ rule180={GENCAT_LL, NUMCAT_LL, 1, -40, 0, -40};
-static const struct _convrule_ rule97={GENCAT_LL, NUMCAT_LL, 1, -38, 0, -38};
-static const struct _convrule_ rule95={GENCAT_LU, NUMCAT_LU, 1, 0, 64, 0};
+static const struct _convrule_ rule202={GENCAT_LL, NUMCAT_LL, 1, -40, 0, -40};
+static const struct _convrule_ rule99={GENCAT_LL, NUMCAT_LL, 1, -38, 0, -38};
+static const struct _convrule_ rule97={GENCAT_LU, NUMCAT_LU, 1, 0, 64, 0};
 static const struct _convrule_ rule1={GENCAT_ZS, NUMCAT_ZS, 0, 0, 0, 0};
+static const struct _convrule_ rule89={GENCAT_LL, NUMCAT_LL, 1, 42261, 0, 42261};
 static const struct _convrule_ rule29={GENCAT_LU, NUMCAT_LU, 1, 0, 210, 0};
 static const struct _convrule_ rule35={GENCAT_LU, NUMCAT_LU, 1, 0, 207, 0};
-static const struct _convrule_ rule154={GENCAT_NL, NUMCAT_NL, 1, 0, 16, 0};
+static const struct _convrule_ rule168={GENCAT_NL, NUMCAT_NL, 1, 0, 16, 0};
 static const struct _convrule_ rule13={GENCAT_SO, NUMCAT_SO, 0, 0, 0, 0};
-static const struct _convrule_ rule149={GENCAT_LU, NUMCAT_LU, 1, 0, -7517, 0};
-static const struct _convrule_ rule128={GENCAT_LU, NUMCAT_LU, 1, 0, -7615, 0};
-static const struct _convrule_ rule98={GENCAT_LL, NUMCAT_LL, 1, -37, 0, -37};
+static const struct _convrule_ rule163={GENCAT_LU, NUMCAT_LU, 1, 0, -7517, 0};
+static const struct _convrule_ rule142={GENCAT_LU, NUMCAT_LU, 1, 0, -7615, 0};
+static const struct _convrule_ rule137={GENCAT_LU, NUMCAT_LU, 1, 0, -3008, 0};
+static const struct _convrule_ rule100={GENCAT_LL, NUMCAT_LL, 1, -37, 0, -37};
 static const struct _convrule_ rule2={GENCAT_PO, NUMCAT_PO, 0, 0, 0, 0};
 static const struct _convrule_ rule69={GENCAT_LL, NUMCAT_LL, 1, 42319, 0, 42319};
 static const struct _convrule_ rule56={GENCAT_LU, NUMCAT_LU, 1, 0, 10792, 0};
 static const struct _convrule_ rule25={GENCAT_LL, NUMCAT_LL, 1, -232, 0, -232};
 static const struct _convrule_ rule43={GENCAT_LU, NUMCAT_LU, 1, 0, 218, 0};
-static const struct _convrule_ rule165={GENCAT_LU, NUMCAT_LU, 1, 0, -10783, 0};
-static const struct _convrule_ rule133={GENCAT_LL, NUMCAT_LL, 1, 100, 0, 100};
-static const struct _convrule_ rule96={GENCAT_LU, NUMCAT_LU, 1, 0, 63, 0};
-static const struct _convrule_ rule90={GENCAT_MN, NUMCAT_MN, 0, 0, 0, 0};
+static const struct _convrule_ rule179={GENCAT_LU, NUMCAT_LU, 1, 0, -10783, 0};
+static const struct _convrule_ rule147={GENCAT_LL, NUMCAT_LL, 1, 100, 0, 100};
+static const struct _convrule_ rule98={GENCAT_LU, NUMCAT_LU, 1, 0, 63, 0};
+static const struct _convrule_ rule92={GENCAT_MN, NUMCAT_MN, 0, 0, 0, 0};
 static const struct _convrule_ rule12={GENCAT_LL, NUMCAT_LL, 1, -32, 0, -32};
-static const struct _convrule_ rule93={GENCAT_LU, NUMCAT_LU, 1, 0, 38, 0};
-static const struct _convrule_ rule99={GENCAT_LL, NUMCAT_LL, 1, -31, 0, -31};
-static const struct _convrule_ rule105={GENCAT_LU, NUMCAT_LU, 0, 0, 0, 0};
+static const struct _convrule_ rule95={GENCAT_LU, NUMCAT_LU, 1, 0, 38, 0};
+static const struct _convrule_ rule140={GENCAT_LL, NUMCAT_LL, 1, 35384, 0, 35384};
+static const struct _convrule_ rule101={GENCAT_LL, NUMCAT_LL, 1, -31, 0, -31};
+static const struct _convrule_ rule204={GENCAT_LL, NUMCAT_LL, 1, -34, 0, -34};
+static const struct _convrule_ rule107={GENCAT_LU, NUMCAT_LU, 0, 0, 0, 0};
 static const struct _convrule_ rule11={GENCAT_PC, NUMCAT_PC, 0, 0, 0, 0};
-static const struct _convrule_ rule175={GENCAT_LU, NUMCAT_LU, 1, 0, -42258, 0};
-static const struct _convrule_ rule144={GENCAT_LU, NUMCAT_LU, 1, 0, -112, 0};
+static const struct _convrule_ rule192={GENCAT_LU, NUMCAT_LU, 1, 0, -42261, 0};
+static const struct _convrule_ rule190={GENCAT_LU, NUMCAT_LU, 1, 0, -42258, 0};
+static const struct _convrule_ rule158={GENCAT_LU, NUMCAT_LU, 1, 0, -112, 0};
 static const struct _convrule_ rule15={GENCAT_PI, NUMCAT_PI, 0, 0, 0, 0};
-static const struct _convrule_ rule132={GENCAT_LL, NUMCAT_LL, 1, 86, 0, 86};
-static const struct _convrule_ rule122={GENCAT_MC, NUMCAT_MC, 0, 0, 0, 0};
-static const struct _convrule_ rule126={GENCAT_LL, NUMCAT_LL, 1, 3814, 0, 3814};
+static const struct _convrule_ rule146={GENCAT_LL, NUMCAT_LL, 1, 86, 0, 86};
+static const struct _convrule_ rule124={GENCAT_MC, NUMCAT_MC, 0, 0, 0, 0};
+static const struct _convrule_ rule139={GENCAT_LL, NUMCAT_LL, 1, 3814, 0, 3814};
 static const struct _convrule_ rule44={GENCAT_LU, NUMCAT_LU, 1, 0, 217, 0};
-static const struct _convrule_ rule153={GENCAT_LL, NUMCAT_LL, 1, -28, 0, -28};
-static const struct _convrule_ rule178={GENCAT_CO, NUMCAT_CO, 0, 0, 0, 0};
-static const struct _convrule_ rule114={GENCAT_LL, NUMCAT_LL, 1, -96, 0, -96};
+static const struct _convrule_ rule167={GENCAT_LL, NUMCAT_LL, 1, -28, 0, -28};
+static const struct _convrule_ rule200={GENCAT_CO, NUMCAT_CO, 0, 0, 0, 0};
+static const struct _convrule_ rule196={GENCAT_LU, NUMCAT_LU, 1, 0, -35384, 0};
+static const struct _convrule_ rule116={GENCAT_LL, NUMCAT_LL, 1, -96, 0, -96};
+static const struct _convrule_ rule185={GENCAT_LL, NUMCAT_LL, 1, 48, 0, 48};
 static const struct _convrule_ rule51={GENCAT_LU, NUMCAT_LU, 1, 0, -97, 0};
 static const struct _convrule_ rule39={GENCAT_LL, NUMCAT_LL, 1, 163, 0, 163};
-static const struct _convrule_ rule179={GENCAT_LU, NUMCAT_LU, 1, 0, 40, 0};
-static const struct _convrule_ rule124={GENCAT_NL, NUMCAT_NL, 0, 0, 0, 0};
-static const struct _convrule_ rule94={GENCAT_LU, NUMCAT_LU, 1, 0, 37, 0};
+static const struct _convrule_ rule201={GENCAT_LU, NUMCAT_LU, 1, 0, 40, 0};
+static const struct _convrule_ rule128={GENCAT_NL, NUMCAT_NL, 0, 0, 0, 0};
+static const struct _convrule_ rule126={GENCAT_LL, NUMCAT_LL, 1, 3008, 0, 0};
+static const struct _convrule_ rule96={GENCAT_LU, NUMCAT_LU, 1, 0, 37, 0};
 static const struct _convrule_ rule82={GENCAT_LL, NUMCAT_LL, 1, -218, 0, -218};
-static const struct _convrule_ rule118={GENCAT_LU, NUMCAT_LU, 1, 0, 15, 0};
+static const struct _convrule_ rule120={GENCAT_LU, NUMCAT_LU, 1, 0, 15, 0};
 static const struct _convrule_ rule67={GENCAT_LL, NUMCAT_LL, 1, -202, 0, -202};
 static const struct _convrule_ rule66={GENCAT_LL, NUMCAT_LL, 1, -205, 0, -205};
 static const struct _convrule_ rule47={GENCAT_LU, NUMCAT_LU, 1, 0, 2, 1};
+static const struct _convrule_ rule136={GENCAT_LL, NUMCAT_LL, 1, 35266, 0, 35266};
+static const struct _convrule_ rule83={GENCAT_LL, NUMCAT_LL, 1, 42307, 0, 42307};
 static const struct _convrule_ rule30={GENCAT_LU, NUMCAT_LU, 1, 0, 206, 0};
-static const struct _convrule_ rule109={GENCAT_LL, NUMCAT_LL, 1, -86, 0, -86};
+static const struct _convrule_ rule111={GENCAT_LL, NUMCAT_LL, 1, -86, 0, -86};
 static const struct _convrule_ rule4={GENCAT_PS, NUMCAT_PS, 0, 0, 0, 0};
 static const struct _convrule_ rule3={GENCAT_SC, NUMCAT_SC, 0, 0, 0, 0};
-static const struct _convrule_ rule150={GENCAT_LU, NUMCAT_LU, 1, 0, -8383, 0};
-static const struct _convrule_ rule120={GENCAT_LU, NUMCAT_LU, 1, 0, 48, 0};
+static const struct _convrule_ rule164={GENCAT_LU, NUMCAT_LU, 1, 0, -8383, 0};
+static const struct _convrule_ rule122={GENCAT_LU, NUMCAT_LU, 1, 0, 48, 0};
 static const struct _convrule_ rule14={GENCAT_LO, NUMCAT_LO, 0, 0, 0, 0};
 static const struct _convrule_ rule18={GENCAT_LL, NUMCAT_LL, 1, 743, 0, 743};
-static const struct _convrule_ rule147={GENCAT_ZL, NUMCAT_ZL, 0, 0, 0, 0};
-static const struct _convrule_ rule142={GENCAT_LU, NUMCAT_LU, 1, 0, -86, 0};
-static const struct _convrule_ rule171={GENCAT_LU, NUMCAT_LU, 1, 0, -42308, 0};
-static const struct _convrule_ rule162={GENCAT_LL, NUMCAT_LL, 1, -10792, 0, -10792};
-static const struct _convrule_ rule166={GENCAT_LU, NUMCAT_LU, 1, 0, -10782, 0};
-static const struct _convrule_ rule139={GENCAT_LU, NUMCAT_LU, 1, 0, -74, 0};
+static const struct _convrule_ rule161={GENCAT_ZL, NUMCAT_ZL, 0, 0, 0, 0};
+static const struct _convrule_ rule156={GENCAT_LU, NUMCAT_LU, 1, 0, -86, 0};
+static const struct _convrule_ rule186={GENCAT_LU, NUMCAT_LU, 1, 0, -42308, 0};
+static const struct _convrule_ rule176={GENCAT_LL, NUMCAT_LL, 1, -10792, 0, -10792};
+static const struct _convrule_ rule180={GENCAT_LU, NUMCAT_LU, 1, 0, -10782, 0};
+static const struct _convrule_ rule198={GENCAT_LL, NUMCAT_LL, 1, -38864, 0, -38864};
+static const struct _convrule_ rule153={GENCAT_LU, NUMCAT_LU, 1, 0, -74, 0};
 static const struct _convrule_ rule24={GENCAT_LU, NUMCAT_LU, 1, 0, -199, 0};
-static const struct _convrule_ rule143={GENCAT_LU, NUMCAT_LU, 1, 0, -100, 0};
-static const struct _convrule_ rule125={GENCAT_LL, NUMCAT_LL, 1, 35332, 0, 35332};
-static const struct _convrule_ rule141={GENCAT_LL, NUMCAT_LL, 1, -7205, 0, -7205};
-static const struct _convrule_ rule138={GENCAT_LL, NUMCAT_LL, 1, 9, 0, 9};
+static const struct _convrule_ rule157={GENCAT_LU, NUMCAT_LU, 1, 0, -100, 0};
+static const struct _convrule_ rule138={GENCAT_LL, NUMCAT_LL, 1, 35332, 0, 35332};
+static const struct _convrule_ rule155={GENCAT_LL, NUMCAT_LL, 1, -7205, 0, -7205};
+static const struct _convrule_ rule152={GENCAT_LL, NUMCAT_LL, 1, 9, 0, 9};
 static const struct _convrule_ rule27={GENCAT_LL, NUMCAT_LL, 1, -300, 0, -300};
-static const struct _convrule_ rule172={GENCAT_LU, NUMCAT_LU, 1, 0, -42319, 0};
+static const struct _convrule_ rule187={GENCAT_LU, NUMCAT_LU, 1, 0, -42319, 0};
 static const struct _convrule_ rule31={GENCAT_LU, NUMCAT_LU, 1, 0, 205, 0};
 static const struct _convrule_ rule59={GENCAT_LU, NUMCAT_LU, 1, 0, 69, 0};
 static const struct _convrule_ rule6={GENCAT_SM, NUMCAT_SM, 0, 0, 0, 0};
-static const struct _convrule_ rule119={GENCAT_LL, NUMCAT_LL, 1, -15, 0, -15};
-static const struct _convrule_ rule110={GENCAT_LL, NUMCAT_LL, 1, -80, 0, -80};
-static const struct _convrule_ rule176={GENCAT_LU, NUMCAT_LU, 1, 0, -42282, 0};
-static const struct _convrule_ rule151={GENCAT_LU, NUMCAT_LU, 1, 0, -8262, 0};
-static const struct _convrule_ rule130={GENCAT_LU, NUMCAT_LU, 1, 0, -8, 0};
+static const struct _convrule_ rule121={GENCAT_LL, NUMCAT_LL, 1, -15, 0, -15};
+static const struct _convrule_ rule112={GENCAT_LL, NUMCAT_LL, 1, -80, 0, -80};
+static const struct _convrule_ rule191={GENCAT_LU, NUMCAT_LU, 1, 0, -42282, 0};
+static const struct _convrule_ rule133={GENCAT_LL, NUMCAT_LL, 1, -6243, 0, -6243};
+static const struct _convrule_ rule130={GENCAT_LL, NUMCAT_LL, 1, -6253, 0, -6253};
+static const struct _convrule_ rule165={GENCAT_LU, NUMCAT_LU, 1, 0, -8262, 0};
+static const struct _convrule_ rule144={GENCAT_LU, NUMCAT_LU, 1, 0, -8, 0};
 static const struct _convrule_ rule26={GENCAT_LU, NUMCAT_LU, 1, 0, -121, 0};
 static const struct _convrule_ rule0={GENCAT_CC, NUMCAT_CC, 0, 0, 0, 0};
-static const struct _convrule_ rule111={GENCAT_LL, NUMCAT_LL, 1, 7, 0, 7};
-static const struct _convrule_ rule91={GENCAT_MN, NUMCAT_MN, 1, 84, 0, 84};
+static const struct _convrule_ rule113={GENCAT_LL, NUMCAT_LL, 1, 7, 0, 7};
+static const struct _convrule_ rule93={GENCAT_MN, NUMCAT_MN, 1, 84, 0, 84};
 static const struct _convrule_ rule78={GENCAT_LL, NUMCAT_LL, 1, 10749, 0, 10749};
 static const struct _convrule_ rule77={GENCAT_LL, NUMCAT_LL, 1, 42305, 0, 42305};
 static const struct _convrule_ rule70={GENCAT_LL, NUMCAT_LL, 1, 42315, 0, 42315};
@@ -201,80 +217,88 @@ static const struct _convrule_ rule50={GENCAT_LL, NUMCAT_LL, 1, -79, 0, -79};
 static const struct _convrule_ rule60={GENCAT_LU, NUMCAT_LU, 1, 0, 71, 0};
 static const struct _convrule_ rule22={GENCAT_LU, NUMCAT_LU, 1, 0, 1, 0};
 static const struct _convrule_ rule49={GENCAT_LL, NUMCAT_LL, 1, -2, 0, -1};
-static const struct _convrule_ rule92={GENCAT_LU, NUMCAT_LU, 1, 0, 116, 0};
-static const struct _convrule_ rule83={GENCAT_LL, NUMCAT_LL, 1, 42282, 0, 42282};
-static const struct _convrule_ rule155={GENCAT_NL, NUMCAT_NL, 1, -16, 0, -16};
-static const struct _convrule_ rule102={GENCAT_LU, NUMCAT_LU, 1, 0, 8, 0};
+static const struct _convrule_ rule94={GENCAT_LU, NUMCAT_LU, 1, 0, 116, 0};
+static const struct _convrule_ rule84={GENCAT_LL, NUMCAT_LL, 1, 42282, 0, 42282};
+static const struct _convrule_ rule169={GENCAT_NL, NUMCAT_NL, 1, -16, 0, -16};
+static const struct _convrule_ rule104={GENCAT_LU, NUMCAT_LU, 1, 0, 8, 0};
 static const struct _convrule_ rule23={GENCAT_LL, NUMCAT_LL, 1, -1, 0, -1};
-static const struct _convrule_ rule87={GENCAT_LL, NUMCAT_LL, 1, -219, 0, -219};
+static const struct _convrule_ rule88={GENCAT_LL, NUMCAT_LL, 1, -219, 0, -219};
 static const struct _convrule_ rule79={GENCAT_LL, NUMCAT_LL, 1, -213, 0, -213};
 static const struct _convrule_ rule64={GENCAT_LL, NUMCAT_LL, 1, -210, 0, -210};
-static const struct _convrule_ rule163={GENCAT_LU, NUMCAT_LU, 1, 0, -10780, 0};
-static const struct _convrule_ rule86={GENCAT_LL, NUMCAT_LL, 1, -71, 0, -71};
-static const struct _convrule_ rule84={GENCAT_LL, NUMCAT_LL, 1, -69, 0, -69};
+static const struct _convrule_ rule177={GENCAT_LU, NUMCAT_LU, 1, 0, -10780, 0};
+static const struct _convrule_ rule87={GENCAT_LL, NUMCAT_LL, 1, -71, 0, -71};
+static const struct _convrule_ rule85={GENCAT_LL, NUMCAT_LL, 1, -69, 0, -69};
 static const struct _convrule_ rule32={GENCAT_LU, NUMCAT_LU, 1, 0, 79, 0};
-static const struct _convrule_ rule115={GENCAT_LU, NUMCAT_LU, 1, 0, -7, 0};
+static const struct _convrule_ rule195={GENCAT_LU, NUMCAT_LU, 1, 0, -42307, 0};
+static const struct _convrule_ rule117={GENCAT_LU, NUMCAT_LU, 1, 0, -7, 0};
 static const struct _convrule_ rule74={GENCAT_LL, NUMCAT_LL, 1, -209, 0, -209};
-static const struct _convrule_ rule177={GENCAT_CS, NUMCAT_CS, 0, 0, 0, 0};
-static const struct _convrule_ rule140={GENCAT_LT, NUMCAT_LT, 1, 0, -9, 0};
+static const struct _convrule_ rule199={GENCAT_CS, NUMCAT_CS, 0, 0, 0, 0};
+static const struct _convrule_ rule154={GENCAT_LT, NUMCAT_LT, 1, 0, -9, 0};
 static const struct _convrule_ rule57={GENCAT_LL, NUMCAT_LL, 1, 10815, 0, 10815};
 static const struct _convrule_ rule72={GENCAT_LL, NUMCAT_LL, 1, 42280, 0, 42280};
 static const struct _convrule_ rule34={GENCAT_LU, NUMCAT_LU, 1, 0, 203, 0};
+static const struct _convrule_ rule194={GENCAT_LU, NUMCAT_LU, 1, 0, -48, 0};
 static const struct _convrule_ rule63={GENCAT_LL, NUMCAT_LL, 1, 10782, 0, 10782};
-static const struct _convrule_ rule170={GENCAT_LU, NUMCAT_LU, 1, 0, -42280, 0};
-static const struct _convrule_ rule145={GENCAT_LU, NUMCAT_LU, 1, 0, -128, 0};
-static const struct _convrule_ rule100={GENCAT_LL, NUMCAT_LL, 1, -64, 0, -64};
+static const struct _convrule_ rule184={GENCAT_LU, NUMCAT_LU, 1, 0, -42280, 0};
+static const struct _convrule_ rule159={GENCAT_LU, NUMCAT_LU, 1, 0, -128, 0};
+static const struct _convrule_ rule102={GENCAT_LL, NUMCAT_LL, 1, -64, 0, -64};
 static const struct _convrule_ rule17={GENCAT_NO, NUMCAT_NO, 0, 0, 0, 0};
-static const struct _convrule_ rule89={GENCAT_LM, NUMCAT_LM, 0, 0, 0, 0};
+static const struct _convrule_ rule91={GENCAT_LM, NUMCAT_LM, 0, 0, 0, 0};
 static const struct _convrule_ rule46={GENCAT_LL, NUMCAT_LL, 1, 56, 0, 56};
-static const struct _convrule_ rule131={GENCAT_LL, NUMCAT_LL, 1, 74, 0, 74};
+static const struct _convrule_ rule145={GENCAT_LL, NUMCAT_LL, 1, 74, 0, 74};
 static const struct _convrule_ rule42={GENCAT_LU, NUMCAT_LU, 1, 0, 214, 0};
-static const struct _convrule_ rule148={GENCAT_ZP, NUMCAT_ZP, 0, 0, 0, 0};
-static const struct _convrule_ rule101={GENCAT_LL, NUMCAT_LL, 1, -63, 0, -63};
+static const struct _convrule_ rule162={GENCAT_ZP, NUMCAT_ZP, 0, 0, 0, 0};
+static const struct _convrule_ rule103={GENCAT_LL, NUMCAT_LL, 1, -63, 0, -63};
 static const struct _convrule_ rule36={GENCAT_LL, NUMCAT_LL, 1, 97, 0, 97};
-static const struct _convrule_ rule137={GENCAT_LT, NUMCAT_LT, 1, 0, -8, 0};
-static const struct _convrule_ rule134={GENCAT_LL, NUMCAT_LL, 1, 128, 0, 128};
+static const struct _convrule_ rule151={GENCAT_LT, NUMCAT_LT, 1, 0, -8, 0};
+static const struct _convrule_ rule148={GENCAT_LL, NUMCAT_LL, 1, 128, 0, 128};
 static const struct _convrule_ rule81={GENCAT_LL, NUMCAT_LL, 1, 10727, 0, 10727};
 static const struct _convrule_ rule62={GENCAT_LL, NUMCAT_LL, 1, 10780, 0, 10780};
 static const struct _convrule_ rule41={GENCAT_LL, NUMCAT_LL, 1, 130, 0, 130};
+static const struct _convrule_ rule203={GENCAT_LU, NUMCAT_LU, 1, 0, 34, 0};
+static const struct _convrule_ rule134={GENCAT_LL, NUMCAT_LL, 1, -6236, 0, -6236};
 static const struct _convrule_ rule68={GENCAT_LL, NUMCAT_LL, 1, -203, 0, -203};
 static const struct _convrule_ rule65={GENCAT_LL, NUMCAT_LL, 1, -206, 0, -206};
 static const struct _convrule_ rule48={GENCAT_LT, NUMCAT_LT, 1, -1, 1, 0};
 static const struct _convrule_ rule19={GENCAT_PF, NUMCAT_PF, 0, 0, 0, 0};
 static const struct _convrule_ rule33={GENCAT_LU, NUMCAT_LU, 1, 0, 202, 0};
-static const struct _convrule_ rule103={GENCAT_LL, NUMCAT_LL, 1, -62, 0, -62};
+static const struct _convrule_ rule105={GENCAT_LL, NUMCAT_LL, 1, -62, 0, -62};
 static const struct _convrule_ rule8={GENCAT_ND, NUMCAT_ND, 0, 0, 0, 0};
+static const struct _convrule_ rule193={GENCAT_LU, NUMCAT_LU, 1, 0, 928, 0};
 static const struct _convrule_ rule53={GENCAT_LU, NUMCAT_LU, 1, 0, -130, 0};
 static const struct _convrule_ rule28={GENCAT_LL, NUMCAT_LL, 1, 195, 0, 195};
-static const struct _convrule_ rule158={GENCAT_LU, NUMCAT_LU, 1, 0, -10743, 0};
-static const struct _convrule_ rule127={GENCAT_LL, NUMCAT_LL, 1, -59, 0, -59};
-static const struct _convrule_ rule113={GENCAT_LU, NUMCAT_LU, 1, 0, -60, 0};
-static const struct _convrule_ rule108={GENCAT_LL, NUMCAT_LL, 1, -8, 0, -8};
+static const struct _convrule_ rule172={GENCAT_LU, NUMCAT_LU, 1, 0, -10743, 0};
+static const struct _convrule_ rule141={GENCAT_LL, NUMCAT_LL, 1, -59, 0, -59};
+static const struct _convrule_ rule115={GENCAT_LU, NUMCAT_LU, 1, 0, -60, 0};
+static const struct _convrule_ rule110={GENCAT_LL, NUMCAT_LL, 1, -8, 0, -8};
 static const struct _convrule_ rule73={GENCAT_LL, NUMCAT_LL, 1, 42308, 0, 42308};
 static const struct _convrule_ rule40={GENCAT_LU, NUMCAT_LU, 1, 0, 213, 0};
-static const struct _convrule_ rule136={GENCAT_LL, NUMCAT_LL, 1, 126, 0, 126};
-static const struct _convrule_ rule116={GENCAT_LU, NUMCAT_LU, 1, 0, 80, 0};
+static const struct _convrule_ rule150={GENCAT_LL, NUMCAT_LL, 1, 126, 0, 126};
+static const struct _convrule_ rule131={GENCAT_LL, NUMCAT_LL, 1, -6244, 0, -6244};
+static const struct _convrule_ rule129={GENCAT_LL, NUMCAT_LL, 1, -6254, 0, -6254};
+static const struct _convrule_ rule118={GENCAT_LU, NUMCAT_LU, 1, 0, 80, 0};
 static const struct _convrule_ rule55={GENCAT_LU, NUMCAT_LU, 1, 0, -163, 0};
-static const struct _convrule_ rule174={GENCAT_LU, NUMCAT_LU, 1, 0, -42305, 0};
-static const struct _convrule_ rule161={GENCAT_LL, NUMCAT_LL, 1, -10795, 0, -10795};
+static const struct _convrule_ rule189={GENCAT_LU, NUMCAT_LU, 1, 0, -42305, 0};
+static const struct _convrule_ rule175={GENCAT_LL, NUMCAT_LL, 1, -10795, 0, -10795};
 static const struct _convrule_ rule58={GENCAT_LU, NUMCAT_LU, 1, 0, -195, 0};
 static const struct _convrule_ rule54={GENCAT_LU, NUMCAT_LU, 1, 0, 10795, 0};
-static const struct _convrule_ rule107={GENCAT_LL, NUMCAT_LL, 1, -54, 0, -54};
-static const struct _convrule_ rule146={GENCAT_LU, NUMCAT_LU, 1, 0, -126, 0};
-static const struct _convrule_ rule104={GENCAT_LL, NUMCAT_LL, 1, -57, 0, -57};
+static const struct _convrule_ rule135={GENCAT_LL, NUMCAT_LL, 1, -6181, 0, -6181};
+static const struct _convrule_ rule109={GENCAT_LL, NUMCAT_LL, 1, -54, 0, -54};
+static const struct _convrule_ rule160={GENCAT_LU, NUMCAT_LU, 1, 0, -126, 0};
+static const struct _convrule_ rule106={GENCAT_LL, NUMCAT_LL, 1, -57, 0, -57};
 static const struct _convrule_ rule21={GENCAT_LL, NUMCAT_LL, 1, 121, 0, 121};
-static const struct _convrule_ rule156={GENCAT_SO, NUMCAT_SO, 1, 0, 26, 0};
-static const struct _convrule_ rule85={GENCAT_LL, NUMCAT_LL, 1, -217, 0, -217};
+static const struct _convrule_ rule170={GENCAT_SO, NUMCAT_SO, 1, 0, 26, 0};
+static const struct _convrule_ rule86={GENCAT_LL, NUMCAT_LL, 1, -217, 0, -217};
 static const struct _convrule_ rule16={GENCAT_CF, NUMCAT_CF, 0, 0, 0, 0};
-static const struct _convrule_ rule112={GENCAT_LL, NUMCAT_LL, 1, -116, 0, -116};
+static const struct _convrule_ rule114={GENCAT_LL, NUMCAT_LL, 1, -116, 0, -116};
 static const struct _convrule_ rule38={GENCAT_LU, NUMCAT_LU, 1, 0, 209, 0};
 static const struct _convrule_ rule10={GENCAT_SK, NUMCAT_SK, 0, 0, 0, 0};
-static const struct _convrule_ rule167={GENCAT_LU, NUMCAT_LU, 1, 0, -10815, 0};
+static const struct _convrule_ rule181={GENCAT_LU, NUMCAT_LU, 1, 0, -10815, 0};
 static const struct _convrule_ rule5={GENCAT_PE, NUMCAT_PE, 0, 0, 0, 0};
-static const struct _convrule_ rule164={GENCAT_LU, NUMCAT_LU, 1, 0, -10749, 0};
-static const struct _convrule_ rule117={GENCAT_ME, NUMCAT_ME, 0, 0, 0, 0};
-static const struct _convrule_ rule106={GENCAT_LL, NUMCAT_LL, 1, -47, 0, -47};
-static const struct _convrule_ rule160={GENCAT_LU, NUMCAT_LU, 1, 0, -10727, 0};
+static const struct _convrule_ rule178={GENCAT_LU, NUMCAT_LU, 1, 0, -10749, 0};
+static const struct _convrule_ rule119={GENCAT_ME, NUMCAT_ME, 0, 0, 0, 0};
+static const struct _convrule_ rule108={GENCAT_LL, NUMCAT_LL, 1, -47, 0, -47};
+static const struct _convrule_ rule174={GENCAT_LU, NUMCAT_LU, 1, 0, -10727, 0};
 static const struct _convrule_ rule9={GENCAT_LU, NUMCAT_LU, 1, 0, 32, 0};
 static const struct _charblock_ allchars[]={
        {0, 32, &rule0},
@@ -686,7 +710,7 @@ static const struct _charblock_ allchars[]={
        {615, 1, &rule20},
        {616, 1, &rule74},
        {617, 1, &rule75},
-       {618, 1, &rule20},
+       {618, 1, &rule73},
        {619, 1, &rule76},
        {620, 1, &rule77},
        {621, 2, &rule20},
@@ -700,70 +724,72 @@ static const struct _charblock_ allchars[]={
        {637, 1, &rule81},
        {638, 2, &rule20},
        {640, 1, &rule82},
-       {641, 2, &rule20},
+       {641, 1, &rule20},
+       {642, 1, &rule83},
        {643, 1, &rule82},
        {644, 3, &rule20},
-       {647, 1, &rule83},
+       {647, 1, &rule84},
        {648, 1, &rule82},
-       {649, 1, &rule84},
-       {650, 2, &rule85},
-       {652, 1, &rule86},
+       {649, 1, &rule85},
+       {650, 2, &rule86},
+       {652, 1, &rule87},
        {653, 5, &rule20},
-       {658, 1, &rule87},
+       {658, 1, &rule88},
        {659, 1, &rule20},
        {660, 1, &rule14},
-       {661, 9, &rule20},
-       {670, 1, &rule88},
+       {661, 8, &rule20},
+       {669, 1, &rule89},
+       {670, 1, &rule90},
        {671, 17, &rule20},
-       {688, 18, &rule89},
+       {688, 18, &rule91},
        {706, 4, &rule10},
-       {710, 12, &rule89},
+       {710, 12, &rule91},
        {722, 14, &rule10},
-       {736, 5, &rule89},
+       {736, 5, &rule91},
        {741, 7, &rule10},
-       {748, 1, &rule89},
+       {748, 1, &rule91},
        {749, 1, &rule10},
-       {750, 1, &rule89},
+       {750, 1, &rule91},
        {751, 17, &rule10},
-       {768, 69, &rule90},
-       {837, 1, &rule91},
-       {838, 42, &rule90},
+       {768, 69, &rule92},
+       {837, 1, &rule93},
+       {838, 42, &rule92},
        {880, 1, &rule22},
        {881, 1, &rule23},
        {882, 1, &rule22},
        {883, 1, &rule23},
-       {884, 1, &rule89},
+       {884, 1, &rule91},
        {885, 1, &rule10},
        {886, 1, &rule22},
        {887, 1, &rule23},
-       {890, 1, &rule89},
+       {890, 1, &rule91},
        {891, 3, &rule41},
        {894, 1, &rule2},
-       {895, 1, &rule92},
+       {895, 1, &rule94},
        {900, 2, &rule10},
-       {902, 1, &rule93},
+       {902, 1, &rule95},
        {903, 1, &rule2},
-       {904, 3, &rule94},
-       {908, 1, &rule95},
-       {910, 2, &rule96},
+       {904, 3, &rule96},
+       {908, 1, &rule97},
+       {910, 2, &rule98},
        {912, 1, &rule20},
        {913, 17, &rule9},
        {931, 9, &rule9},
-       {940, 1, &rule97},
-       {941, 3, &rule98},
+       {940, 1, &rule99},
+       {941, 3, &rule100},
        {944, 1, &rule20},
        {945, 17, &rule12},
-       {962, 1, &rule99},
+       {962, 1, &rule101},
        {963, 9, &rule12},
-       {972, 1, &rule100},
-       {973, 2, &rule101},
-       {975, 1, &rule102},
-       {976, 1, &rule103},
-       {977, 1, &rule104},
-       {978, 3, &rule105},
-       {981, 1, &rule106},
-       {982, 1, &rule107},
-       {983, 1, &rule108},
+       {972, 1, &rule102},
+       {973, 2, &rule103},
+       {975, 1, &rule104},
+       {976, 1, &rule105},
+       {977, 1, &rule106},
+       {978, 3, &rule107},
+       {981, 1, &rule108},
+       {982, 1, &rule109},
+       {983, 1, &rule110},
        {984, 1, &rule22},
        {985, 1, &rule23},
        {986, 1, &rule22},
@@ -788,24 +814,24 @@ static const struct _charblock_ allchars[]={
        {1005, 1, &rule23},
        {1006, 1, &rule22},
        {1007, 1, &rule23},
-       {1008, 1, &rule109},
-       {1009, 1, &rule110},
-       {1010, 1, &rule111},
-       {1011, 1, &rule112},
-       {1012, 1, &rule113},
-       {1013, 1, &rule114},
+       {1008, 1, &rule111},
+       {1009, 1, &rule112},
+       {1010, 1, &rule113},
+       {1011, 1, &rule114},
+       {1012, 1, &rule115},
+       {1013, 1, &rule116},
        {1014, 1, &rule6},
        {1015, 1, &rule22},
        {1016, 1, &rule23},
-       {1017, 1, &rule115},
+       {1017, 1, &rule117},
        {1018, 1, &rule22},
        {1019, 1, &rule23},
        {1020, 1, &rule20},
        {1021, 3, &rule53},
-       {1024, 16, &rule116},
+       {1024, 16, &rule118},
        {1040, 32, &rule9},
        {1072, 32, &rule12},
-       {1104, 16, &rule110},
+       {1104, 16, &rule112},
        {1120, 1, &rule22},
        {1121, 1, &rule23},
        {1122, 1, &rule22},
@@ -841,8 +867,8 @@ static const struct _charblock_ allchars[]={
        {1152, 1, &rule22},
        {1153, 1, &rule23},
        {1154, 1, &rule13},
-       {1155, 5, &rule90},
-       {1160, 2, &rule117},
+       {1155, 5, &rule92},
+       {1160, 2, &rule119},
        {1162, 1, &rule22},
        {1163, 1, &rule23},
        {1164, 1, &rule22},
@@ -897,7 +923,7 @@ static const struct _charblock_ allchars[]={
        {1213, 1, &rule23},
        {1214, 1, &rule22},
        {1215, 1, &rule23},
-       {1216, 1, &rule118},
+       {1216, 1, &rule120},
        {1217, 1, &rule22},
        {1218, 1, &rule23},
        {1219, 1, &rule22},
@@ -912,7 +938,7 @@ static const struct _charblock_ allchars[]={
        {1228, 1, &rule23},
        {1229, 1, &rule22},
        {1230, 1, &rule23},
-       {1231, 1, &rule119},
+       {1231, 1, &rule121},
        {1232, 1, &rule22},
        {1233, 1, &rule23},
        {1234, 1, &rule22},
@@ -1009,26 +1035,27 @@ static const struct _charblock_ allchars[]={
        {1325, 1, &rule23},
        {1326, 1, &rule22},
        {1327, 1, &rule23},
-       {1329, 38, &rule120},
-       {1369, 1, &rule89},
+       {1329, 38, &rule122},
+       {1369, 1, &rule91},
        {1370, 6, &rule2},
-       {1377, 38, &rule121},
-       {1415, 1, &rule20},
+       {1376, 1, &rule20},
+       {1377, 38, &rule123},
+       {1415, 2, &rule20},
        {1417, 1, &rule2},
        {1418, 1, &rule7},
        {1421, 2, &rule13},
        {1423, 1, &rule3},
-       {1425, 45, &rule90},
+       {1425, 45, &rule92},
        {1470, 1, &rule7},
-       {1471, 1, &rule90},
+       {1471, 1, &rule92},
        {1472, 1, &rule2},
-       {1473, 2, &rule90},
+       {1473, 2, &rule92},
        {1475, 1, &rule2},
-       {1476, 2, &rule90},
+       {1476, 2, &rule92},
        {1478, 1, &rule2},
-       {1479, 1, &rule90},
+       {1479, 1, &rule92},
        {1488, 27, &rule14},
-       {1520, 3, &rule14},
+       {1519, 4, &rule14},
        {1523, 2, &rule2},
        {1536, 6, &rule16},
        {1542, 3, &rule6},
@@ -1036,29 +1063,29 @@ static const struct _charblock_ allchars[]={
        {1547, 1, &rule3},
        {1548, 2, &rule2},
        {1550, 2, &rule13},
-       {1552, 11, &rule90},
+       {1552, 11, &rule92},
        {1563, 1, &rule2},
        {1564, 1, &rule16},
        {1566, 2, &rule2},
        {1568, 32, &rule14},
-       {1600, 1, &rule89},
+       {1600, 1, &rule91},
        {1601, 10, &rule14},
-       {1611, 21, &rule90},
+       {1611, 21, &rule92},
        {1632, 10, &rule8},
        {1642, 4, &rule2},
        {1646, 2, &rule14},
-       {1648, 1, &rule90},
+       {1648, 1, &rule92},
        {1649, 99, &rule14},
        {1748, 1, &rule2},
        {1749, 1, &rule14},
-       {1750, 7, &rule90},
+       {1750, 7, &rule92},
        {1757, 1, &rule16},
        {1758, 1, &rule13},
-       {1759, 6, &rule90},
-       {1765, 2, &rule89},
-       {1767, 2, &rule90},
+       {1759, 6, &rule92},
+       {1765, 2, &rule91},
+       {1767, 2, &rule92},
        {1769, 1, &rule13},
-       {1770, 4, &rule90},
+       {1770, 4, &rule92},
        {1774, 2, &rule14},
        {1776, 10, &rule8},
        {1786, 3, &rule14},
@@ -1067,81 +1094,90 @@ static const struct _charblock_ allchars[]={
        {1792, 14, &rule2},
        {1807, 1, &rule16},
        {1808, 1, &rule14},
-       {1809, 1, &rule90},
+       {1809, 1, &rule92},
        {1810, 30, &rule14},
-       {1840, 27, &rule90},
+       {1840, 27, &rule92},
        {1869, 89, &rule14},
-       {1958, 11, &rule90},
+       {1958, 11, &rule92},
        {1969, 1, &rule14},
        {1984, 10, &rule8},
        {1994, 33, &rule14},
-       {2027, 9, &rule90},
-       {2036, 2, &rule89},
+       {2027, 9, &rule92},
+       {2036, 2, &rule91},
        {2038, 1, &rule13},
        {2039, 3, &rule2},
-       {2042, 1, &rule89},
+       {2042, 1, &rule91},
+       {2045, 1, &rule92},
+       {2046, 2, &rule3},
        {2048, 22, &rule14},
-       {2070, 4, &rule90},
-       {2074, 1, &rule89},
-       {2075, 9, &rule90},
-       {2084, 1, &rule89},
-       {2085, 3, &rule90},
-       {2088, 1, &rule89},
-       {2089, 5, &rule90},
+       {2070, 4, &rule92},
+       {2074, 1, &rule91},
+       {2075, 9, &rule92},
+       {2084, 1, &rule91},
+       {2085, 3, &rule92},
+       {2088, 1, &rule91},
+       {2089, 5, &rule92},
        {2096, 15, &rule2},
        {2112, 25, &rule14},
-       {2137, 3, &rule90},
+       {2137, 3, &rule92},
        {2142, 1, &rule2},
-       {2208, 19, &rule14},
-       {2276, 31, &rule90},
-       {2307, 1, &rule122},
+       {2144, 11, &rule14},
+       {2208, 21, &rule14},
+       {2230, 8, &rule14},
+       {2259, 15, &rule92},
+       {2274, 1, &rule16},
+       {2275, 32, &rule92},
+       {2307, 1, &rule124},
        {2308, 54, &rule14},
-       {2362, 1, &rule90},
-       {2363, 1, &rule122},
-       {2364, 1, &rule90},
+       {2362, 1, &rule92},
+       {2363, 1, &rule124},
+       {2364, 1, &rule92},
        {2365, 1, &rule14},
-       {2366, 3, &rule122},
-       {2369, 8, &rule90},
-       {2377, 4, &rule122},
-       {2381, 1, &rule90},
-       {2382, 2, &rule122},
+       {2366, 3, &rule124},
+       {2369, 8, &rule92},
+       {2377, 4, &rule124},
+       {2381, 1, &rule92},
+       {2382, 2, &rule124},
        {2384, 1, &rule14},
-       {2385, 7, &rule90},
+       {2385, 7, &rule92},
        {2392, 10, &rule14},
-       {2402, 2, &rule90},
+       {2402, 2, &rule92},
        {2404, 2, &rule2},
        {2406, 10, &rule8},
        {2416, 1, &rule2},
-       {2417, 1, &rule89},
+       {2417, 1, &rule91},
        {2418, 15, &rule14},
-       {2433, 1, &rule90},
-       {2434, 2, &rule122},
+       {2433, 1, &rule92},
+       {2434, 2, &rule124},
        {2437, 8, &rule14},
        {2447, 2, &rule14},
        {2451, 22, &rule14},
        {2474, 7, &rule14},
        {2482, 1, &rule14},
        {2486, 4, &rule14},
-       {2492, 1, &rule90},
+       {2492, 1, &rule92},
        {2493, 1, &rule14},
-       {2494, 3, &rule122},
-       {2497, 4, &rule90},
-       {2503, 2, &rule122},
-       {2507, 2, &rule122},
-       {2509, 1, &rule90},
+       {2494, 3, &rule124},
+       {2497, 4, &rule92},
+       {2503, 2, &rule124},
+       {2507, 2, &rule124},
+       {2509, 1, &rule92},
        {2510, 1, &rule14},
-       {2519, 1, &rule122},
+       {2519, 1, &rule124},
        {2524, 2, &rule14},
        {2527, 3, &rule14},
-       {2530, 2, &rule90},
+       {2530, 2, &rule92},
        {2534, 10, &rule8},
        {2544, 2, &rule14},
        {2546, 2, &rule3},
        {2548, 6, &rule17},
        {2554, 1, &rule13},
        {2555, 1, &rule3},
-       {2561, 2, &rule90},
-       {2563, 1, &rule122},
+       {2556, 1, &rule14},
+       {2557, 1, &rule2},
+       {2558, 1, &rule92},
+       {2561, 2, &rule92},
+       {2563, 1, &rule124},
        {2565, 6, &rule14},
        {2575, 2, &rule14},
        {2579, 22, &rule14},
@@ -1149,67 +1185,70 @@ static const struct _charblock_ allchars[]={
        {2610, 2, &rule14},
        {2613, 2, &rule14},
        {2616, 2, &rule14},
-       {2620, 1, &rule90},
-       {2622, 3, &rule122},
-       {2625, 2, &rule90},
-       {2631, 2, &rule90},
-       {2635, 3, &rule90},
-       {2641, 1, &rule90},
+       {2620, 1, &rule92},
+       {2622, 3, &rule124},
+       {2625, 2, &rule92},
+       {2631, 2, &rule92},
+       {2635, 3, &rule92},
+       {2641, 1, &rule92},
        {2649, 4, &rule14},
        {2654, 1, &rule14},
        {2662, 10, &rule8},
-       {2672, 2, &rule90},
+       {2672, 2, &rule92},
        {2674, 3, &rule14},
-       {2677, 1, &rule90},
-       {2689, 2, &rule90},
-       {2691, 1, &rule122},
+       {2677, 1, &rule92},
+       {2678, 1, &rule2},
+       {2689, 2, &rule92},
+       {2691, 1, &rule124},
        {2693, 9, &rule14},
        {2703, 3, &rule14},
        {2707, 22, &rule14},
        {2730, 7, &rule14},
        {2738, 2, &rule14},
        {2741, 5, &rule14},
-       {2748, 1, &rule90},
+       {2748, 1, &rule92},
        {2749, 1, &rule14},
-       {2750, 3, &rule122},
-       {2753, 5, &rule90},
-       {2759, 2, &rule90},
-       {2761, 1, &rule122},
-       {2763, 2, &rule122},
-       {2765, 1, &rule90},
+       {2750, 3, &rule124},
+       {2753, 5, &rule92},
+       {2759, 2, &rule92},
+       {2761, 1, &rule124},
+       {2763, 2, &rule124},
+       {2765, 1, &rule92},
        {2768, 1, &rule14},
        {2784, 2, &rule14},
-       {2786, 2, &rule90},
+       {2786, 2, &rule92},
        {2790, 10, &rule8},
        {2800, 1, &rule2},
        {2801, 1, &rule3},
-       {2817, 1, &rule90},
-       {2818, 2, &rule122},
+       {2809, 1, &rule14},
+       {2810, 6, &rule92},
+       {2817, 1, &rule92},
+       {2818, 2, &rule124},
        {2821, 8, &rule14},
        {2831, 2, &rule14},
        {2835, 22, &rule14},
        {2858, 7, &rule14},
        {2866, 2, &rule14},
        {2869, 5, &rule14},
-       {2876, 1, &rule90},
+       {2876, 1, &rule92},
        {2877, 1, &rule14},
-       {2878, 1, &rule122},
-       {2879, 1, &rule90},
-       {2880, 1, &rule122},
-       {2881, 4, &rule90},
-       {2887, 2, &rule122},
-       {2891, 2, &rule122},
-       {2893, 1, &rule90},
-       {2902, 1, &rule90},
-       {2903, 1, &rule122},
+       {2878, 1, &rule124},
+       {2879, 1, &rule92},
+       {2880, 1, &rule124},
+       {2881, 4, &rule92},
+       {2887, 2, &rule124},
+       {2891, 2, &rule124},
+       {2893, 1, &rule92},
+       {2902, 1, &rule92},
+       {2903, 1, &rule124},
        {2908, 2, &rule14},
        {2911, 3, &rule14},
-       {2914, 2, &rule90},
+       {2914, 2, &rule92},
        {2918, 10, &rule8},
        {2928, 1, &rule13},
        {2929, 1, &rule14},
        {2930, 6, &rule17},
-       {2946, 1, &rule90},
+       {2946, 1, &rule92},
        {2947, 1, &rule14},
        {2949, 6, &rule14},
        {2958, 3, &rule14},
@@ -1220,123 +1259,124 @@ static const struct _charblock_ allchars[]={
        {2979, 2, &rule14},
        {2984, 3, &rule14},
        {2990, 12, &rule14},
-       {3006, 2, &rule122},
-       {3008, 1, &rule90},
-       {3009, 2, &rule122},
-       {3014, 3, &rule122},
-       {3018, 3, &rule122},
-       {3021, 1, &rule90},
+       {3006, 2, &rule124},
+       {3008, 1, &rule92},
+       {3009, 2, &rule124},
+       {3014, 3, &rule124},
+       {3018, 3, &rule124},
+       {3021, 1, &rule92},
        {3024, 1, &rule14},
-       {3031, 1, &rule122},
+       {3031, 1, &rule124},
        {3046, 10, &rule8},
        {3056, 3, &rule17},
        {3059, 6, &rule13},
        {3065, 1, &rule3},
        {3066, 1, &rule13},
-       {3072, 1, &rule90},
-       {3073, 3, &rule122},
+       {3072, 1, &rule92},
+       {3073, 3, &rule124},
+       {3076, 1, &rule92},
        {3077, 8, &rule14},
        {3086, 3, &rule14},
        {3090, 23, &rule14},
        {3114, 16, &rule14},
        {3133, 1, &rule14},
-       {3134, 3, &rule90},
-       {3137, 4, &rule122},
-       {3142, 3, &rule90},
-       {3146, 4, &rule90},
-       {3157, 2, &rule90},
-       {3160, 2, &rule14},
+       {3134, 3, &rule92},
+       {3137, 4, &rule124},
+       {3142, 3, &rule92},
+       {3146, 4, &rule92},
+       {3157, 2, &rule92},
+       {3160, 3, &rule14},
        {3168, 2, &rule14},
-       {3170, 2, &rule90},
+       {3170, 2, &rule92},
        {3174, 10, &rule8},
+       {3191, 1, &rule2},
        {3192, 7, &rule17},
        {3199, 1, &rule13},
-       {3201, 1, &rule90},
-       {3202, 2, &rule122},
+       {3200, 1, &rule14},
+       {3201, 1, &rule92},
+       {3202, 2, &rule124},
+       {3204, 1, &rule2},
        {3205, 8, &rule14},
        {3214, 3, &rule14},
        {3218, 23, &rule14},
        {3242, 10, &rule14},
        {3253, 5, &rule14},
-       {3260, 1, &rule90},
+       {3260, 1, &rule92},
        {3261, 1, &rule14},
-       {3262, 1, &rule122},
-       {3263, 1, &rule90},
-       {3264, 5, &rule122},
-       {3270, 1, &rule90},
-       {3271, 2, &rule122},
-       {3274, 2, &rule122},
-       {3276, 2, &rule90},
-       {3285, 2, &rule122},
+       {3262, 1, &rule124},
+       {3263, 1, &rule92},
+       {3264, 5, &rule124},
+       {3270, 1, &rule92},
+       {3271, 2, &rule124},
+       {3274, 2, &rule124},
+       {3276, 2, &rule92},
+       {3285, 2, &rule124},
        {3294, 1, &rule14},
        {3296, 2, &rule14},
-       {3298, 2, &rule90},
+       {3298, 2, &rule92},
        {3302, 10, &rule8},
        {3313, 2, &rule14},
-       {3329, 1, &rule90},
-       {3330, 2, &rule122},
+       {3328, 2, &rule92},
+       {3330, 2, &rule124},
        {3333, 8, &rule14},
        {3342, 3, &rule14},
        {3346, 41, &rule14},
+       {3387, 2, &rule92},
        {3389, 1, &rule14},
-       {3390, 3, &rule122},
-       {3393, 4, &rule90},
-       {3398, 3, &rule122},
-       {3402, 3, &rule122},
-       {3405, 1, &rule90},
+       {3390, 3, &rule124},
+       {3393, 4, &rule92},
+       {3398, 3, &rule124},
+       {3402, 3, &rule124},
+       {3405, 1, &rule92},
        {3406, 1, &rule14},
-       {3415, 1, &rule122},
-       {3424, 2, &rule14},
-       {3426, 2, &rule90},
+       {3407, 1, &rule13},
+       {3412, 3, &rule14},
+       {3415, 1, &rule124},
+       {3416, 7, &rule17},
+       {3423, 3, &rule14},
+       {3426, 2, &rule92},
        {3430, 10, &rule8},
-       {3440, 6, &rule17},
+       {3440, 9, &rule17},
        {3449, 1, &rule13},
        {3450, 6, &rule14},
-       {3458, 2, &rule122},
+       {3458, 2, &rule124},
        {3461, 18, &rule14},
        {3482, 24, &rule14},
        {3507, 9, &rule14},
        {3517, 1, &rule14},
        {3520, 7, &rule14},
-       {3530, 1, &rule90},
-       {3535, 3, &rule122},
-       {3538, 3, &rule90},
-       {3542, 1, &rule90},
-       {3544, 8, &rule122},
+       {3530, 1, &rule92},
+       {3535, 3, &rule124},
+       {3538, 3, &rule92},
+       {3542, 1, &rule92},
+       {3544, 8, &rule124},
        {3558, 10, &rule8},
-       {3570, 2, &rule122},
+       {3570, 2, &rule124},
        {3572, 1, &rule2},
        {3585, 48, &rule14},
-       {3633, 1, &rule90},
+       {3633, 1, &rule92},
        {3634, 2, &rule14},
-       {3636, 7, &rule90},
+       {3636, 7, &rule92},
        {3647, 1, &rule3},
        {3648, 6, &rule14},
-       {3654, 1, &rule89},
-       {3655, 8, &rule90},
+       {3654, 1, &rule91},
+       {3655, 8, &rule92},
        {3663, 1, &rule2},
        {3664, 10, &rule8},
        {3674, 2, &rule2},
        {3713, 2, &rule14},
        {3716, 1, &rule14},
-       {3719, 2, &rule14},
-       {3722, 1, &rule14},
-       {3725, 1, &rule14},
-       {3732, 4, &rule14},
-       {3737, 7, &rule14},
-       {3745, 3, &rule14},
+       {3718, 5, &rule14},
+       {3724, 24, &rule14},
        {3749, 1, &rule14},
-       {3751, 1, &rule14},
-       {3754, 2, &rule14},
-       {3757, 4, &rule14},
-       {3761, 1, &rule90},
+       {3751, 10, &rule14},
+       {3761, 1, &rule92},
        {3762, 2, &rule14},
-       {3764, 6, &rule90},
-       {3771, 2, &rule90},
+       {3764, 9, &rule92},
        {3773, 1, &rule14},
        {3776, 5, &rule14},
-       {3782, 1, &rule89},
-       {3784, 6, &rule90},
+       {3782, 1, &rule91},
+       {3784, 6, &rule92},
        {3792, 10, &rule8},
        {3804, 4, &rule14},
        {3840, 1, &rule14},
@@ -1345,80 +1385,81 @@ static const struct _charblock_ allchars[]={
        {3859, 1, &rule13},
        {3860, 1, &rule2},
        {3861, 3, &rule13},
-       {3864, 2, &rule90},
+       {3864, 2, &rule92},
        {3866, 6, &rule13},
        {3872, 10, &rule8},
        {3882, 10, &rule17},
        {3892, 1, &rule13},
-       {3893, 1, &rule90},
+       {3893, 1, &rule92},
        {3894, 1, &rule13},
-       {3895, 1, &rule90},
+       {3895, 1, &rule92},
        {3896, 1, &rule13},
-       {3897, 1, &rule90},
+       {3897, 1, &rule92},
        {3898, 1, &rule4},
        {3899, 1, &rule5},
        {3900, 1, &rule4},
        {3901, 1, &rule5},
-       {3902, 2, &rule122},
+       {3902, 2, &rule124},
        {3904, 8, &rule14},
        {3913, 36, &rule14},
-       {3953, 14, &rule90},
-       {3967, 1, &rule122},
-       {3968, 5, &rule90},
+       {3953, 14, &rule92},
+       {3967, 1, &rule124},
+       {3968, 5, &rule92},
        {3973, 1, &rule2},
-       {3974, 2, &rule90},
+       {3974, 2, &rule92},
        {3976, 5, &rule14},
-       {3981, 11, &rule90},
-       {3993, 36, &rule90},
+       {3981, 11, &rule92},
+       {3993, 36, &rule92},
        {4030, 8, &rule13},
-       {4038, 1, &rule90},
+       {4038, 1, &rule92},
        {4039, 6, &rule13},
        {4046, 2, &rule13},
        {4048, 5, &rule2},
        {4053, 4, &rule13},
        {4057, 2, &rule2},
        {4096, 43, &rule14},
-       {4139, 2, &rule122},
-       {4141, 4, &rule90},
-       {4145, 1, &rule122},
-       {4146, 6, &rule90},
-       {4152, 1, &rule122},
-       {4153, 2, &rule90},
-       {4155, 2, &rule122},
-       {4157, 2, &rule90},
+       {4139, 2, &rule124},
+       {4141, 4, &rule92},
+       {4145, 1, &rule124},
+       {4146, 6, &rule92},
+       {4152, 1, &rule124},
+       {4153, 2, &rule92},
+       {4155, 2, &rule124},
+       {4157, 2, &rule92},
        {4159, 1, &rule14},
        {4160, 10, &rule8},
        {4170, 6, &rule2},
        {4176, 6, &rule14},
-       {4182, 2, &rule122},
-       {4184, 2, &rule90},
+       {4182, 2, &rule124},
+       {4184, 2, &rule92},
        {4186, 4, &rule14},
-       {4190, 3, &rule90},
+       {4190, 3, &rule92},
        {4193, 1, &rule14},
-       {4194, 3, &rule122},
+       {4194, 3, &rule124},
        {4197, 2, &rule14},
-       {4199, 7, &rule122},
+       {4199, 7, &rule124},
        {4206, 3, &rule14},
-       {4209, 4, &rule90},
+       {4209, 4, &rule92},
        {4213, 13, &rule14},
-       {4226, 1, &rule90},
-       {4227, 2, &rule122},
-       {4229, 2, &rule90},
-       {4231, 6, &rule122},
-       {4237, 1, &rule90},
+       {4226, 1, &rule92},
+       {4227, 2, &rule124},
+       {4229, 2, &rule92},
+       {4231, 6, &rule124},
+       {4237, 1, &rule92},
        {4238, 1, &rule14},
-       {4239, 1, &rule122},
+       {4239, 1, &rule124},
        {4240, 10, &rule8},
-       {4250, 3, &rule122},
-       {4253, 1, &rule90},
+       {4250, 3, &rule124},
+       {4253, 1, &rule92},
        {4254, 2, &rule13},
-       {4256, 38, &rule123},
-       {4295, 1, &rule123},
-       {4301, 1, &rule123},
-       {4304, 43, &rule14},
+       {4256, 38, &rule125},
+       {4295, 1, &rule125},
+       {4301, 1, &rule125},
+       {4304, 43, &rule126},
        {4347, 1, &rule2},
-       {4348, 1, &rule89},
-       {4349, 332, &rule14},
+       {4348, 1, &rule91},
+       {4349, 3, &rule126},
+       {4352, 329, &rule14},
        {4682, 4, &rule14},
        {4688, 7, &rule14},
        {4696, 1, &rule14},
@@ -1434,12 +1475,14 @@ static const struct _charblock_ allchars[]={
        {4824, 57, &rule14},
        {4882, 4, &rule14},
        {4888, 67, &rule14},
-       {4957, 3, &rule90},
+       {4957, 3, &rule92},
        {4960, 9, &rule2},
        {4969, 20, &rule17},
        {4992, 16, &rule14},
        {5008, 10, &rule13},
-       {5024, 85, &rule14},
+       {5024, 80, &rule127},
+       {5104, 6, &rule104},
+       {5112, 6, &rule110},
        {5120, 1, &rule7},
        {5121, 620, &rule14},
        {5741, 2, &rule2},
@@ -1450,168 +1493,181 @@ static const struct _charblock_ allchars[]={
        {5788, 1, &rule5},
        {5792, 75, &rule14},
        {5867, 3, &rule2},
-       {5870, 3, &rule124},
+       {5870, 3, &rule128},
        {5873, 8, &rule14},
        {5888, 13, &rule14},
        {5902, 4, &rule14},
-       {5906, 3, &rule90},
+       {5906, 3, &rule92},
        {5920, 18, &rule14},
-       {5938, 3, &rule90},
+       {5938, 3, &rule92},
        {5941, 2, &rule2},
        {5952, 18, &rule14},
-       {5970, 2, &rule90},
+       {5970, 2, &rule92},
        {5984, 13, &rule14},
        {5998, 3, &rule14},
-       {6002, 2, &rule90},
+       {6002, 2, &rule92},
        {6016, 52, &rule14},
-       {6068, 2, &rule90},
-       {6070, 1, &rule122},
-       {6071, 7, &rule90},
-       {6078, 8, &rule122},
-       {6086, 1, &rule90},
-       {6087, 2, &rule122},
-       {6089, 11, &rule90},
+       {6068, 2, &rule92},
+       {6070, 1, &rule124},
+       {6071, 7, &rule92},
+       {6078, 8, &rule124},
+       {6086, 1, &rule92},
+       {6087, 2, &rule124},
+       {6089, 11, &rule92},
        {6100, 3, &rule2},
-       {6103, 1, &rule89},
+       {6103, 1, &rule91},
        {6104, 3, &rule2},
        {6107, 1, &rule3},
        {6108, 1, &rule14},
-       {6109, 1, &rule90},
+       {6109, 1, &rule92},
        {6112, 10, &rule8},
        {6128, 10, &rule17},
        {6144, 6, &rule2},
        {6150, 1, &rule7},
        {6151, 4, &rule2},
-       {6155, 3, &rule90},
+       {6155, 3, &rule92},
        {6158, 1, &rule16},
        {6160, 10, &rule8},
        {6176, 35, &rule14},
-       {6211, 1, &rule89},
-       {6212, 52, &rule14},
-       {6272, 41, &rule14},
-       {6313, 1, &rule90},
+       {6211, 1, &rule91},
+       {6212, 53, &rule14},
+       {6272, 5, &rule14},
+       {6277, 2, &rule92},
+       {6279, 34, &rule14},
+       {6313, 1, &rule92},
        {6314, 1, &rule14},
        {6320, 70, &rule14},
        {6400, 31, &rule14},
-       {6432, 3, &rule90},
-       {6435, 4, &rule122},
-       {6439, 2, &rule90},
-       {6441, 3, &rule122},
-       {6448, 2, &rule122},
-       {6450, 1, &rule90},
-       {6451, 6, &rule122},
-       {6457, 3, &rule90},
+       {6432, 3, &rule92},
+       {6435, 4, &rule124},
+       {6439, 2, &rule92},
+       {6441, 3, &rule124},
+       {6448, 2, &rule124},
+       {6450, 1, &rule92},
+       {6451, 6, &rule124},
+       {6457, 3, &rule92},
        {6464, 1, &rule13},
        {6468, 2, &rule2},
        {6470, 10, &rule8},
        {6480, 30, &rule14},
        {6512, 5, &rule14},
        {6528, 44, &rule14},
-       {6576, 17, &rule122},
-       {6593, 7, &rule14},
-       {6600, 2, &rule122},
+       {6576, 26, &rule14},
        {6608, 10, &rule8},
        {6618, 1, &rule17},
        {6622, 34, &rule13},
        {6656, 23, &rule14},
-       {6679, 2, &rule90},
-       {6681, 2, &rule122},
-       {6683, 1, &rule90},
+       {6679, 2, &rule92},
+       {6681, 2, &rule124},
+       {6683, 1, &rule92},
        {6686, 2, &rule2},
        {6688, 53, &rule14},
-       {6741, 1, &rule122},
-       {6742, 1, &rule90},
-       {6743, 1, &rule122},
-       {6744, 7, &rule90},
-       {6752, 1, &rule90},
-       {6753, 1, &rule122},
-       {6754, 1, &rule90},
-       {6755, 2, &rule122},
-       {6757, 8, &rule90},
-       {6765, 6, &rule122},
-       {6771, 10, &rule90},
-       {6783, 1, &rule90},
+       {6741, 1, &rule124},
+       {6742, 1, &rule92},
+       {6743, 1, &rule124},
+       {6744, 7, &rule92},
+       {6752, 1, &rule92},
+       {6753, 1, &rule124},
+       {6754, 1, &rule92},
+       {6755, 2, &rule124},
+       {6757, 8, &rule92},
+       {6765, 6, &rule124},
+       {6771, 10, &rule92},
+       {6783, 1, &rule92},
        {6784, 10, &rule8},
        {6800, 10, &rule8},
        {6816, 7, &rule2},
-       {6823, 1, &rule89},
+       {6823, 1, &rule91},
        {6824, 6, &rule2},
-       {6832, 14, &rule90},
-       {6846, 1, &rule117},
-       {6912, 4, &rule90},
-       {6916, 1, &rule122},
+       {6832, 14, &rule92},
+       {6846, 1, &rule119},
+       {6912, 4, &rule92},
+       {6916, 1, &rule124},
        {6917, 47, &rule14},
-       {6964, 1, &rule90},
-       {6965, 1, &rule122},
-       {6966, 5, &rule90},
-       {6971, 1, &rule122},
-       {6972, 1, &rule90},
-       {6973, 5, &rule122},
-       {6978, 1, &rule90},
-       {6979, 2, &rule122},
+       {6964, 1, &rule92},
+       {6965, 1, &rule124},
+       {6966, 5, &rule92},
+       {6971, 1, &rule124},
+       {6972, 1, &rule92},
+       {6973, 5, &rule124},
+       {6978, 1, &rule92},
+       {6979, 2, &rule124},
        {6981, 7, &rule14},
        {6992, 10, &rule8},
        {7002, 7, &rule2},
        {7009, 10, &rule13},
-       {7019, 9, &rule90},
+       {7019, 9, &rule92},
        {7028, 9, &rule13},
-       {7040, 2, &rule90},
-       {7042, 1, &rule122},
+       {7040, 2, &rule92},
+       {7042, 1, &rule124},
        {7043, 30, &rule14},
-       {7073, 1, &rule122},
-       {7074, 4, &rule90},
-       {7078, 2, &rule122},
-       {7080, 2, &rule90},
-       {7082, 1, &rule122},
-       {7083, 3, &rule90},
+       {7073, 1, &rule124},
+       {7074, 4, &rule92},
+       {7078, 2, &rule124},
+       {7080, 2, &rule92},
+       {7082, 1, &rule124},
+       {7083, 3, &rule92},
        {7086, 2, &rule14},
        {7088, 10, &rule8},
        {7098, 44, &rule14},
-       {7142, 1, &rule90},
-       {7143, 1, &rule122},
-       {7144, 2, &rule90},
-       {7146, 3, &rule122},
-       {7149, 1, &rule90},
-       {7150, 1, &rule122},
-       {7151, 3, &rule90},
-       {7154, 2, &rule122},
+       {7142, 1, &rule92},
+       {7143, 1, &rule124},
+       {7144, 2, &rule92},
+       {7146, 3, &rule124},
+       {7149, 1, &rule92},
+       {7150, 1, &rule124},
+       {7151, 3, &rule92},
+       {7154, 2, &rule124},
        {7164, 4, &rule2},
        {7168, 36, &rule14},
-       {7204, 8, &rule122},
-       {7212, 8, &rule90},
-       {7220, 2, &rule122},
-       {7222, 2, &rule90},
+       {7204, 8, &rule124},
+       {7212, 8, &rule92},
+       {7220, 2, &rule124},
+       {7222, 2, &rule92},
        {7227, 5, &rule2},
        {7232, 10, &rule8},
        {7245, 3, &rule14},
        {7248, 10, &rule8},
        {7258, 30, &rule14},
-       {7288, 6, &rule89},
+       {7288, 6, &rule91},
        {7294, 2, &rule2},
+       {7296, 1, &rule129},
+       {7297, 1, &rule130},
+       {7298, 1, &rule131},
+       {7299, 2, &rule132},
+       {7301, 1, &rule133},
+       {7302, 1, &rule134},
+       {7303, 1, &rule135},
+       {7304, 1, &rule136},
+       {7312, 43, &rule137},
+       {7357, 3, &rule137},
        {7360, 8, &rule2},
-       {7376, 3, &rule90},
+       {7376, 3, &rule92},
        {7379, 1, &rule2},
-       {7380, 13, &rule90},
-       {7393, 1, &rule122},
-       {7394, 7, &rule90},
+       {7380, 13, &rule92},
+       {7393, 1, &rule124},
+       {7394, 7, &rule92},
        {7401, 4, &rule14},
-       {7405, 1, &rule90},
-       {7406, 4, &rule14},
-       {7410, 2, &rule122},
-       {7412, 1, &rule90},
+       {7405, 1, &rule92},
+       {7406, 6, &rule14},
+       {7412, 1, &rule92},
        {7413, 2, &rule14},
-       {7416, 2, &rule90},
+       {7415, 1, &rule124},
+       {7416, 2, &rule92},
+       {7418, 1, &rule14},
        {7424, 44, &rule20},
-       {7468, 63, &rule89},
+       {7468, 63, &rule91},
        {7531, 13, &rule20},
-       {7544, 1, &rule89},
-       {7545, 1, &rule125},
+       {7544, 1, &rule91},
+       {7545, 1, &rule138},
        {7546, 3, &rule20},
-       {7549, 1, &rule126},
-       {7550, 29, &rule20},
-       {7579, 37, &rule89},
-       {7616, 54, &rule90},
-       {7676, 4, &rule90},
+       {7549, 1, &rule139},
+       {7550, 16, &rule20},
+       {7566, 1, &rule140},
+       {7567, 12, &rule20},
+       {7579, 37, &rule91},
+       {7616, 58, &rule92},
+       {7675, 5, &rule92},
        {7680, 1, &rule22},
        {7681, 1, &rule23},
        {7682, 1, &rule22},
@@ -1763,9 +1819,9 @@ static const struct _charblock_ allchars[]={
        {7828, 1, &rule22},
        {7829, 1, &rule23},
        {7830, 5, &rule20},
-       {7835, 1, &rule127},
+       {7835, 1, &rule141},
        {7836, 2, &rule20},
-       {7838, 1, &rule128},
+       {7838, 1, &rule142},
        {7839, 1, &rule20},
        {7840, 1, &rule22},
        {7841, 1, &rule23},
@@ -1863,81 +1919,81 @@ static const struct _charblock_ allchars[]={
        {7933, 1, &rule23},
        {7934, 1, &rule22},
        {7935, 1, &rule23},
-       {7936, 8, &rule129},
-       {7944, 8, &rule130},
-       {7952, 6, &rule129},
-       {7960, 6, &rule130},
-       {7968, 8, &rule129},
-       {7976, 8, &rule130},
-       {7984, 8, &rule129},
-       {7992, 8, &rule130},
-       {8000, 6, &rule129},
-       {8008, 6, &rule130},
+       {7936, 8, &rule143},
+       {7944, 8, &rule144},
+       {7952, 6, &rule143},
+       {7960, 6, &rule144},
+       {7968, 8, &rule143},
+       {7976, 8, &rule144},
+       {7984, 8, &rule143},
+       {7992, 8, &rule144},
+       {8000, 6, &rule143},
+       {8008, 6, &rule144},
        {8016, 1, &rule20},
-       {8017, 1, &rule129},
+       {8017, 1, &rule143},
        {8018, 1, &rule20},
-       {8019, 1, &rule129},
+       {8019, 1, &rule143},
        {8020, 1, &rule20},
-       {8021, 1, &rule129},
+       {8021, 1, &rule143},
        {8022, 1, &rule20},
-       {8023, 1, &rule129},
-       {8025, 1, &rule130},
-       {8027, 1, &rule130},
-       {8029, 1, &rule130},
-       {8031, 1, &rule130},
-       {8032, 8, &rule129},
-       {8040, 8, &rule130},
-       {8048, 2, &rule131},
-       {8050, 4, &rule132},
-       {8054, 2, &rule133},
-       {8056, 2, &rule134},
-       {8058, 2, &rule135},
-       {8060, 2, &rule136},
-       {8064, 8, &rule129},
-       {8072, 8, &rule137},
-       {8080, 8, &rule129},
-       {8088, 8, &rule137},
-       {8096, 8, &rule129},
-       {8104, 8, &rule137},
-       {8112, 2, &rule129},
+       {8023, 1, &rule143},
+       {8025, 1, &rule144},
+       {8027, 1, &rule144},
+       {8029, 1, &rule144},
+       {8031, 1, &rule144},
+       {8032, 8, &rule143},
+       {8040, 8, &rule144},
+       {8048, 2, &rule145},
+       {8050, 4, &rule146},
+       {8054, 2, &rule147},
+       {8056, 2, &rule148},
+       {8058, 2, &rule149},
+       {8060, 2, &rule150},
+       {8064, 8, &rule143},
+       {8072, 8, &rule151},
+       {8080, 8, &rule143},
+       {8088, 8, &rule151},
+       {8096, 8, &rule143},
+       {8104, 8, &rule151},
+       {8112, 2, &rule143},
        {8114, 1, &rule20},
-       {8115, 1, &rule138},
+       {8115, 1, &rule152},
        {8116, 1, &rule20},
        {8118, 2, &rule20},
-       {8120, 2, &rule130},
-       {8122, 2, &rule139},
-       {8124, 1, &rule140},
+       {8120, 2, &rule144},
+       {8122, 2, &rule153},
+       {8124, 1, &rule154},
        {8125, 1, &rule10},
-       {8126, 1, &rule141},
+       {8126, 1, &rule155},
        {8127, 3, &rule10},
        {8130, 1, &rule20},
-       {8131, 1, &rule138},
+       {8131, 1, &rule152},
        {8132, 1, &rule20},
        {8134, 2, &rule20},
-       {8136, 4, &rule142},
-       {8140, 1, &rule140},
+       {8136, 4, &rule156},
+       {8140, 1, &rule154},
        {8141, 3, &rule10},
-       {8144, 2, &rule129},
+       {8144, 2, &rule143},
        {8146, 2, &rule20},
        {8150, 2, &rule20},
-       {8152, 2, &rule130},
-       {8154, 2, &rule143},
+       {8152, 2, &rule144},
+       {8154, 2, &rule157},
        {8157, 3, &rule10},
-       {8160, 2, &rule129},
+       {8160, 2, &rule143},
        {8162, 3, &rule20},
-       {8165, 1, &rule111},
+       {8165, 1, &rule113},
        {8166, 2, &rule20},
-       {8168, 2, &rule130},
-       {8170, 2, &rule144},
-       {8172, 1, &rule115},
+       {8168, 2, &rule144},
+       {8170, 2, &rule158},
+       {8172, 1, &rule117},
        {8173, 3, &rule10},
        {8178, 1, &rule20},
-       {8179, 1, &rule138},
+       {8179, 1, &rule152},
        {8180, 1, &rule20},
        {8182, 2, &rule20},
-       {8184, 2, &rule145},
-       {8186, 2, &rule146},
-       {8188, 1, &rule140},
+       {8184, 2, &rule159},
+       {8186, 2, &rule160},
+       {8188, 1, &rule154},
        {8189, 2, &rule10},
        {8192, 11, &rule1},
        {8203, 5, &rule16},
@@ -1951,8 +2007,8 @@ static const struct _charblock_ allchars[]={
        {8222, 1, &rule4},
        {8223, 1, &rule15},
        {8224, 8, &rule2},
-       {8232, 1, &rule147},
-       {8233, 1, &rule148},
+       {8232, 1, &rule161},
+       {8233, 1, &rule162},
        {8234, 5, &rule16},
        {8239, 1, &rule1},
        {8240, 9, &rule2},
@@ -1973,75 +2029,76 @@ static const struct _charblock_ allchars[]={
        {8288, 5, &rule16},
        {8294, 10, &rule16},
        {8304, 1, &rule17},
-       {8305, 1, &rule89},
+       {8305, 1, &rule91},
        {8308, 6, &rule17},
        {8314, 3, &rule6},
        {8317, 1, &rule4},
        {8318, 1, &rule5},
-       {8319, 1, &rule89},
+       {8319, 1, &rule91},
        {8320, 10, &rule17},
        {8330, 3, &rule6},
        {8333, 1, &rule4},
        {8334, 1, &rule5},
-       {8336, 13, &rule89},
-       {8352, 30, &rule3},
-       {8400, 13, &rule90},
-       {8413, 4, &rule117},
-       {8417, 1, &rule90},
-       {8418, 3, &rule117},
-       {8421, 12, &rule90},
+       {8336, 13, &rule91},
+       {8352, 32, &rule3},
+       {8400, 13, &rule92},
+       {8413, 4, &rule119},
+       {8417, 1, &rule92},
+       {8418, 3, &rule119},
+       {8421, 12, &rule92},
        {8448, 2, &rule13},
-       {8450, 1, &rule105},
+       {8450, 1, &rule107},
        {8451, 4, &rule13},
-       {8455, 1, &rule105},
+       {8455, 1, &rule107},
        {8456, 2, &rule13},
        {8458, 1, &rule20},
-       {8459, 3, &rule105},
+       {8459, 3, &rule107},
        {8462, 2, &rule20},
-       {8464, 3, &rule105},
+       {8464, 3, &rule107},
        {8467, 1, &rule20},
        {8468, 1, &rule13},
-       {8469, 1, &rule105},
+       {8469, 1, &rule107},
        {8470, 2, &rule13},
        {8472, 1, &rule6},
-       {8473, 5, &rule105},
+       {8473, 5, &rule107},
        {8478, 6, &rule13},
-       {8484, 1, &rule105},
+       {8484, 1, &rule107},
        {8485, 1, &rule13},
-       {8486, 1, &rule149},
+       {8486, 1, &rule163},
        {8487, 1, &rule13},
-       {8488, 1, &rule105},
+       {8488, 1, &rule107},
        {8489, 1, &rule13},
-       {8490, 1, &rule150},
-       {8491, 1, &rule151},
-       {8492, 2, &rule105},
+       {8490, 1, &rule164},
+       {8491, 1, &rule165},
+       {8492, 2, &rule107},
        {8494, 1, &rule13},
        {8495, 1, &rule20},
-       {8496, 2, &rule105},
-       {8498, 1, &rule152},
-       {8499, 1, &rule105},
+       {8496, 2, &rule107},
+       {8498, 1, &rule166},
+       {8499, 1, &rule107},
        {8500, 1, &rule20},
        {8501, 4, &rule14},
        {8505, 1, &rule20},
        {8506, 2, &rule13},
        {8508, 2, &rule20},
-       {8510, 2, &rule105},
+       {8510, 2, &rule107},
        {8512, 5, &rule6},
-       {8517, 1, &rule105},
+       {8517, 1, &rule107},
        {8518, 4, &rule20},
        {8522, 1, &rule13},
        {8523, 1, &rule6},
        {8524, 2, &rule13},
-       {8526, 1, &rule153},
+       {8526, 1, &rule167},
        {8527, 1, &rule13},
        {8528, 16, &rule17},
-       {8544, 16, &rule154},
-       {8560, 16, &rule155},
-       {8576, 3, &rule124},
+       {8544, 16, &rule168},
+       {8560, 16, &rule169},
+       {8576, 3, &rule128},
        {8579, 1, &rule22},
        {8580, 1, &rule23},
-       {8581, 4, &rule124},
+       {8581, 4, &rule128},
        {8585, 1, &rule17},
+       {8586, 2, &rule13},
        {8592, 5, &rule6},
        {8597, 5, &rule13},
        {8602, 2, &rule6},
@@ -2077,13 +2134,12 @@ static const struct _charblock_ allchars[]={
        {9115, 25, &rule6},
        {9140, 40, &rule13},
        {9180, 6, &rule6},
-       {9186, 25, &rule13},
-       {9216, 39, &rule13},
+       {9186, 69, &rule13},
        {9280, 11, &rule13},
        {9312, 60, &rule17},
        {9372, 26, &rule13},
-       {9398, 26, &rule156},
-       {9424, 26, &rule157},
+       {9398, 26, &rule170},
+       {9424, 26, &rule171},
        {9450, 22, &rule17},
        {9472, 183, &rule13},
        {9655, 1, &rule6},
@@ -2164,28 +2220,26 @@ static const struct _charblock_ allchars[]={
        {11079, 6, &rule6},
        {11085, 39, &rule13},
        {11126, 32, &rule13},
-       {11160, 34, &rule13},
-       {11197, 12, &rule13},
-       {11210, 8, &rule13},
-       {11264, 47, &rule120},
-       {11312, 47, &rule121},
+       {11160, 104, &rule13},
+       {11264, 47, &rule122},
+       {11312, 47, &rule123},
        {11360, 1, &rule22},
        {11361, 1, &rule23},
-       {11362, 1, &rule158},
-       {11363, 1, &rule159},
-       {11364, 1, &rule160},
-       {11365, 1, &rule161},
-       {11366, 1, &rule162},
+       {11362, 1, &rule172},
+       {11363, 1, &rule173},
+       {11364, 1, &rule174},
+       {11365, 1, &rule175},
+       {11366, 1, &rule176},
        {11367, 1, &rule22},
        {11368, 1, &rule23},
        {11369, 1, &rule22},
        {11370, 1, &rule23},
        {11371, 1, &rule22},
        {11372, 1, &rule23},
-       {11373, 1, &rule163},
-       {11374, 1, &rule164},
-       {11375, 1, &rule165},
-       {11376, 1, &rule166},
+       {11373, 1, &rule177},
+       {11374, 1, &rule178},
+       {11375, 1, &rule179},
+       {11376, 1, &rule180},
        {11377, 1, &rule20},
        {11378, 1, &rule22},
        {11379, 1, &rule23},
@@ -2193,8 +2247,8 @@ static const struct _charblock_ allchars[]={
        {11381, 1, &rule22},
        {11382, 1, &rule23},
        {11383, 5, &rule20},
-       {11388, 2, &rule89},
-       {11390, 2, &rule167},
+       {11388, 2, &rule91},
+       {11390, 2, &rule181},
        {11392, 1, &rule22},
        {11393, 1, &rule23},
        {11394, 1, &rule22},
@@ -2301,19 +2355,19 @@ static const struct _charblock_ allchars[]={
        {11500, 1, &rule23},
        {11501, 1, &rule22},
        {11502, 1, &rule23},
-       {11503, 3, &rule90},
+       {11503, 3, &rule92},
        {11506, 1, &rule22},
        {11507, 1, &rule23},
        {11513, 4, &rule2},
        {11517, 1, &rule17},
        {11518, 2, &rule2},
-       {11520, 38, &rule168},
-       {11559, 1, &rule168},
-       {11565, 1, &rule168},
+       {11520, 38, &rule182},
+       {11559, 1, &rule182},
+       {11565, 1, &rule182},
        {11568, 56, &rule14},
-       {11631, 1, &rule89},
+       {11631, 1, &rule91},
        {11632, 1, &rule2},
-       {11647, 1, &rule90},
+       {11647, 1, &rule92},
        {11648, 23, &rule14},
        {11680, 7, &rule14},
        {11688, 7, &rule14},
@@ -2323,7 +2377,7 @@ static const struct _charblock_ allchars[]={
        {11720, 7, &rule14},
        {11728, 7, &rule14},
        {11736, 7, &rule14},
-       {11744, 32, &rule90},
+       {11744, 32, &rule92},
        {11776, 2, &rule2},
        {11778, 1, &rule15},
        {11779, 1, &rule19},
@@ -2354,13 +2408,14 @@ static const struct _charblock_ allchars[]={
        {11816, 1, &rule4},
        {11817, 1, &rule5},
        {11818, 5, &rule2},
-       {11823, 1, &rule89},
+       {11823, 1, &rule91},
        {11824, 10, &rule2},
        {11834, 2, &rule7},
        {11836, 4, &rule2},
        {11840, 1, &rule7},
        {11841, 1, &rule2},
        {11842, 1, &rule4},
+       {11843, 13, &rule2},
        {11904, 26, &rule13},
        {11931, 89, &rule13},
        {12032, 214, &rule13},
@@ -2368,9 +2423,9 @@ static const struct _charblock_ allchars[]={
        {12288, 1, &rule1},
        {12289, 3, &rule2},
        {12292, 1, &rule13},
-       {12293, 1, &rule89},
+       {12293, 1, &rule91},
        {12294, 1, &rule14},
-       {12295, 1, &rule124},
+       {12295, 1, &rule128},
        {12296, 1, &rule4},
        {12297, 1, &rule5},
        {12298, 1, &rule4},
@@ -2394,28 +2449,28 @@ static const struct _charblock_ allchars[]={
        {12317, 1, &rule4},
        {12318, 2, &rule5},
        {12320, 1, &rule13},
-       {12321, 9, &rule124},
-       {12330, 4, &rule90},
-       {12334, 2, &rule122},
+       {12321, 9, &rule128},
+       {12330, 4, &rule92},
+       {12334, 2, &rule124},
        {12336, 1, &rule7},
-       {12337, 5, &rule89},
+       {12337, 5, &rule91},
        {12342, 2, &rule13},
-       {12344, 3, &rule124},
-       {12347, 1, &rule89},
+       {12344, 3, &rule128},
+       {12347, 1, &rule91},
        {12348, 1, &rule14},
        {12349, 1, &rule2},
        {12350, 2, &rule13},
        {12353, 86, &rule14},
-       {12441, 2, &rule90},
+       {12441, 2, &rule92},
        {12443, 2, &rule10},
-       {12445, 2, &rule89},
+       {12445, 2, &rule91},
        {12447, 1, &rule14},
        {12448, 1, &rule7},
        {12449, 90, &rule14},
        {12539, 1, &rule2},
-       {12540, 3, &rule89},
+       {12540, 3, &rule91},
        {12543, 1, &rule14},
-       {12549, 41, &rule14},
+       {12549, 43, &rule14},
        {12593, 94, &rule14},
        {12688, 2, &rule13},
        {12690, 4, &rule17},
@@ -2437,16 +2492,16 @@ static const struct _charblock_ allchars[]={
        {13056, 256, &rule13},
        {13312, 6582, &rule14},
        {19904, 64, &rule13},
-       {19968, 20941, &rule14},
+       {19968, 20976, &rule14},
        {40960, 21, &rule14},
-       {40981, 1, &rule89},
+       {40981, 1, &rule91},
        {40982, 1143, &rule14},
        {42128, 55, &rule13},
        {42192, 40, &rule14},
-       {42232, 6, &rule89},
+       {42232, 6, &rule91},
        {42238, 2, &rule2},
        {42240, 268, &rule14},
-       {42508, 1, &rule89},
+       {42508, 1, &rule91},
        {42509, 3, &rule2},
        {42512, 16, &rule14},
        {42528, 10, &rule8},
@@ -2498,12 +2553,12 @@ static const struct _charblock_ allchars[]={
        {42604, 1, &rule22},
        {42605, 1, &rule23},
        {42606, 1, &rule14},
-       {42607, 1, &rule90},
-       {42608, 3, &rule117},
+       {42607, 1, &rule92},
+       {42608, 3, &rule119},
        {42611, 1, &rule2},
-       {42612, 10, &rule90},
+       {42612, 10, &rule92},
        {42622, 1, &rule2},
-       {42623, 1, &rule89},
+       {42623, 1, &rule91},
        {42624, 1, &rule22},
        {42625, 1, &rule23},
        {42626, 1, &rule22},
@@ -2532,14 +2587,14 @@ static const struct _charblock_ allchars[]={
        {42649, 1, &rule23},
        {42650, 1, &rule22},
        {42651, 1, &rule23},
-       {42652, 2, &rule89},
-       {42655, 1, &rule90},
+       {42652, 2, &rule91},
+       {42654, 2, &rule92},
        {42656, 70, &rule14},
-       {42726, 10, &rule124},
-       {42736, 2, &rule90},
+       {42726, 10, &rule128},
+       {42736, 2, &rule92},
        {42738, 6, &rule2},
        {42752, 23, &rule10},
-       {42775, 9, &rule89},
+       {42775, 9, &rule91},
        {42784, 2, &rule10},
        {42786, 1, &rule22},
        {42787, 1, &rule23},
@@ -2618,13 +2673,13 @@ static const struct _charblock_ allchars[]={
        {42861, 1, &rule23},
        {42862, 1, &rule22},
        {42863, 1, &rule23},
-       {42864, 1, &rule89},
+       {42864, 1, &rule91},
        {42865, 8, &rule20},
        {42873, 1, &rule22},
        {42874, 1, &rule23},
        {42875, 1, &rule22},
        {42876, 1, &rule23},
-       {42877, 1, &rule169},
+       {42877, 1, &rule183},
        {42878, 1, &rule22},
        {42879, 1, &rule23},
        {42880, 1, &rule22},
@@ -2635,17 +2690,19 @@ static const struct _charblock_ allchars[]={
        {42885, 1, &rule23},
        {42886, 1, &rule22},
        {42887, 1, &rule23},
-       {42888, 1, &rule89},
+       {42888, 1, &rule91},
        {42889, 2, &rule10},
        {42891, 1, &rule22},
        {42892, 1, &rule23},
-       {42893, 1, &rule170},
+       {42893, 1, &rule184},
        {42894, 1, &rule20},
+       {42895, 1, &rule14},
        {42896, 1, &rule22},
        {42897, 1, &rule23},
        {42898, 1, &rule22},
        {42899, 1, &rule23},
-       {42900, 2, &rule20},
+       {42900, 1, &rule185},
+       {42901, 1, &rule20},
        {42902, 1, &rule22},
        {42903, 1, &rule23},
        {42904, 1, &rule22},
@@ -2666,25 +2723,46 @@ static const struct _charblock_ allchars[]={
        {42919, 1, &rule23},
        {42920, 1, &rule22},
        {42921, 1, &rule23},
-       {42922, 1, &rule171},
-       {42923, 1, &rule172},
-       {42924, 1, &rule173},
-       {42925, 1, &rule174},
-       {42928, 1, &rule175},
-       {42929, 1, &rule176},
+       {42922, 1, &rule186},
+       {42923, 1, &rule187},
+       {42924, 1, &rule188},
+       {42925, 1, &rule189},
+       {42926, 1, &rule186},
+       {42927, 1, &rule20},
+       {42928, 1, &rule190},
+       {42929, 1, &rule191},
+       {42930, 1, &rule192},
+       {42931, 1, &rule193},
+       {42932, 1, &rule22},
+       {42933, 1, &rule23},
+       {42934, 1, &rule22},
+       {42935, 1, &rule23},
+       {42936, 1, &rule22},
+       {42937, 1, &rule23},
+       {42938, 1, &rule22},
+       {42939, 1, &rule23},
+       {42940, 1, &rule22},
+       {42941, 1, &rule23},
+       {42942, 1, &rule22},
+       {42943, 1, &rule23},
+       {42946, 1, &rule22},
+       {42947, 1, &rule23},
+       {42948, 1, &rule194},
+       {42949, 1, &rule195},
+       {42950, 1, &rule196},
        {42999, 1, &rule14},
-       {43000, 2, &rule89},
+       {43000, 2, &rule91},
        {43002, 1, &rule20},
        {43003, 7, &rule14},
-       {43010, 1, &rule90},
+       {43010, 1, &rule92},
        {43011, 3, &rule14},
-       {43014, 1, &rule90},
+       {43014, 1, &rule92},
        {43015, 4, &rule14},
-       {43019, 1, &rule90},
+       {43019, 1, &rule92},
        {43020, 23, &rule14},
-       {43043, 2, &rule122},
-       {43045, 2, &rule90},
-       {43047, 1, &rule122},
+       {43043, 2, &rule124},
+       {43045, 2, &rule92},
+       {43047, 1, &rule124},
        {43048, 4, &rule13},
        {43056, 6, &rule17},
        {43062, 2, &rule13},
@@ -2692,120 +2770,126 @@ static const struct _charblock_ allchars[]={
        {43065, 1, &rule13},
        {43072, 52, &rule14},
        {43124, 4, &rule2},
-       {43136, 2, &rule122},
+       {43136, 2, &rule124},
        {43138, 50, &rule14},
-       {43188, 16, &rule122},
-       {43204, 1, &rule90},
+       {43188, 16, &rule124},
+       {43204, 2, &rule92},
        {43214, 2, &rule2},
        {43216, 10, &rule8},
-       {43232, 18, &rule90},
+       {43232, 18, &rule92},
        {43250, 6, &rule14},
        {43256, 3, &rule2},
        {43259, 1, &rule14},
+       {43260, 1, &rule2},
+       {43261, 2, &rule14},
+       {43263, 1, &rule92},
        {43264, 10, &rule8},
        {43274, 28, &rule14},
-       {43302, 8, &rule90},
+       {43302, 8, &rule92},
        {43310, 2, &rule2},
        {43312, 23, &rule14},
-       {43335, 11, &rule90},
-       {43346, 2, &rule122},
+       {43335, 11, &rule92},
+       {43346, 2, &rule124},
        {43359, 1, &rule2},
        {43360, 29, &rule14},
-       {43392, 3, &rule90},
-       {43395, 1, &rule122},
+       {43392, 3, &rule92},
+       {43395, 1, &rule124},
        {43396, 47, &rule14},
-       {43443, 1, &rule90},
-       {43444, 2, &rule122},
-       {43446, 4, &rule90},
-       {43450, 2, &rule122},
-       {43452, 1, &rule90},
-       {43453, 4, &rule122},
+       {43443, 1, &rule92},
+       {43444, 2, &rule124},
+       {43446, 4, &rule92},
+       {43450, 2, &rule124},
+       {43452, 1, &rule92},
+       {43453, 4, &rule124},
        {43457, 13, &rule2},
-       {43471, 1, &rule89},
+       {43471, 1, &rule91},
        {43472, 10, &rule8},
        {43486, 2, &rule2},
        {43488, 5, &rule14},
-       {43493, 1, &rule90},
-       {43494, 1, &rule89},
+       {43493, 1, &rule92},
+       {43494, 1, &rule91},
        {43495, 9, &rule14},
        {43504, 10, &rule8},
        {43514, 5, &rule14},
        {43520, 41, &rule14},
-       {43561, 6, &rule90},
-       {43567, 2, &rule122},
-       {43569, 2, &rule90},
-       {43571, 2, &rule122},
-       {43573, 2, &rule90},
+       {43561, 6, &rule92},
+       {43567, 2, &rule124},
+       {43569, 2, &rule92},
+       {43571, 2, &rule124},
+       {43573, 2, &rule92},
        {43584, 3, &rule14},
-       {43587, 1, &rule90},
+       {43587, 1, &rule92},
        {43588, 8, &rule14},
-       {43596, 1, &rule90},
-       {43597, 1, &rule122},
+       {43596, 1, &rule92},
+       {43597, 1, &rule124},
        {43600, 10, &rule8},
        {43612, 4, &rule2},
        {43616, 16, &rule14},
-       {43632, 1, &rule89},
+       {43632, 1, &rule91},
        {43633, 6, &rule14},
        {43639, 3, &rule13},
        {43642, 1, &rule14},
-       {43643, 1, &rule122},
-       {43644, 1, &rule90},
-       {43645, 1, &rule122},
+       {43643, 1, &rule124},
+       {43644, 1, &rule92},
+       {43645, 1, &rule124},
        {43646, 50, &rule14},
-       {43696, 1, &rule90},
+       {43696, 1, &rule92},
        {43697, 1, &rule14},
-       {43698, 3, &rule90},
+       {43698, 3, &rule92},
        {43701, 2, &rule14},
-       {43703, 2, &rule90},
+       {43703, 2, &rule92},
        {43705, 5, &rule14},
-       {43710, 2, &rule90},
+       {43710, 2, &rule92},
        {43712, 1, &rule14},
-       {43713, 1, &rule90},
+       {43713, 1, &rule92},
        {43714, 1, &rule14},
        {43739, 2, &rule14},
-       {43741, 1, &rule89},
+       {43741, 1, &rule91},
        {43742, 2, &rule2},
        {43744, 11, &rule14},
-       {43755, 1, &rule122},
-       {43756, 2, &rule90},
-       {43758, 2, &rule122},
+       {43755, 1, &rule124},
+       {43756, 2, &rule92},
+       {43758, 2, &rule124},
        {43760, 2, &rule2},
        {43762, 1, &rule14},
-       {43763, 2, &rule89},
-       {43765, 1, &rule122},
-       {43766, 1, &rule90},
+       {43763, 2, &rule91},
+       {43765, 1, &rule124},
+       {43766, 1, &rule92},
        {43777, 6, &rule14},
        {43785, 6, &rule14},
        {43793, 6, &rule14},
        {43808, 7, &rule14},
        {43816, 7, &rule14},
-       {43824, 43, &rule20},
+       {43824, 35, &rule20},
+       {43859, 1, &rule197},
+       {43860, 7, &rule20},
        {43867, 1, &rule10},
-       {43868, 4, &rule89},
-       {43876, 2, &rule20},
+       {43868, 4, &rule91},
+       {43872, 8, &rule20},
+       {43888, 80, &rule198},
        {43968, 35, &rule14},
-       {44003, 2, &rule122},
-       {44005, 1, &rule90},
-       {44006, 2, &rule122},
-       {44008, 1, &rule90},
-       {44009, 2, &rule122},
+       {44003, 2, &rule124},
+       {44005, 1, &rule92},
+       {44006, 2, &rule124},
+       {44008, 1, &rule92},
+       {44009, 2, &rule124},
        {44011, 1, &rule2},
-       {44012, 1, &rule122},
-       {44013, 1, &rule90},
+       {44012, 1, &rule124},
+       {44013, 1, &rule92},
        {44016, 10, &rule8},
        {44032, 11172, &rule14},
        {55216, 23, &rule14},
        {55243, 49, &rule14},
-       {55296, 896, &rule177},
-       {56192, 128, &rule177},
-       {56320, 1024, &rule177},
-       {57344, 6400, &rule178},
+       {55296, 896, &rule199},
+       {56192, 128, &rule199},
+       {56320, 1024, &rule199},
+       {57344, 6400, &rule200},
        {63744, 366, &rule14},
        {64112, 106, &rule14},
        {64256, 7, &rule20},
        {64275, 5, &rule20},
        {64285, 1, &rule14},
-       {64286, 1, &rule90},
+       {64286, 1, &rule92},
        {64287, 10, &rule14},
        {64297, 1, &rule6},
        {64298, 13, &rule14},
@@ -2823,12 +2907,12 @@ static const struct _charblock_ allchars[]={
        {65008, 12, &rule14},
        {65020, 1, &rule3},
        {65021, 1, &rule13},
-       {65024, 16, &rule90},
+       {65024, 16, &rule92},
        {65040, 7, &rule2},
        {65047, 1, &rule4},
        {65048, 1, &rule5},
        {65049, 1, &rule2},
-       {65056, 14, &rule90},
+       {65056, 16, &rule92},
        {65072, 1, &rule2},
        {65073, 2, &rule7},
        {65075, 2, &rule11},
@@ -2905,9 +2989,9 @@ static const struct _charblock_ allchars[]={
        {65379, 1, &rule5},
        {65380, 2, &rule2},
        {65382, 10, &rule14},
-       {65392, 1, &rule89},
+       {65392, 1, &rule91},
        {65393, 45, &rule14},
-       {65438, 2, &rule89},
+       {65438, 2, &rule91},
        {65440, 31, &rule14},
        {65474, 6, &rule14},
        {65482, 6, &rule14},
@@ -2933,37 +3017,39 @@ static const struct _charblock_ allchars[]={
        {65792, 3, &rule2},
        {65799, 45, &rule17},
        {65847, 9, &rule13},
-       {65856, 53, &rule124},
+       {65856, 53, &rule128},
        {65909, 4, &rule17},
        {65913, 17, &rule13},
        {65930, 2, &rule17},
-       {65932, 1, &rule13},
+       {65932, 3, &rule13},
        {65936, 12, &rule13},
        {65952, 1, &rule13},
        {66000, 45, &rule13},
-       {66045, 1, &rule90},
+       {66045, 1, &rule92},
        {66176, 29, &rule14},
        {66208, 49, &rule14},
-       {66272, 1, &rule90},
+       {66272, 1, &rule92},
        {66273, 27, &rule17},
        {66304, 32, &rule14},
        {66336, 4, &rule17},
-       {66352, 17, &rule14},
-       {66369, 1, &rule124},
+       {66349, 20, &rule14},
+       {66369, 1, &rule128},
        {66370, 8, &rule14},
-       {66378, 1, &rule124},
+       {66378, 1, &rule128},
        {66384, 38, &rule14},
-       {66422, 5, &rule90},
+       {66422, 5, &rule92},
        {66432, 30, &rule14},
        {66463, 1, &rule2},
        {66464, 36, &rule14},
        {66504, 8, &rule14},
        {66512, 1, &rule2},
-       {66513, 5, &rule124},
-       {66560, 40, &rule179},
-       {66600, 40, &rule180},
+       {66513, 5, &rule128},
+       {66560, 40, &rule201},
+       {66600, 40, &rule202},
        {66640, 78, &rule14},
        {66720, 10, &rule8},
+       {66736, 36, &rule201},
+       {66776, 36, &rule202},
        {66816, 40, &rule14},
        {66864, 52, &rule14},
        {66927, 1, &rule2},
@@ -2983,23 +3069,29 @@ static const struct _charblock_ allchars[]={
        {67705, 7, &rule17},
        {67712, 31, &rule14},
        {67751, 9, &rule17},
+       {67808, 19, &rule14},
+       {67828, 2, &rule14},
+       {67835, 5, &rule17},
        {67840, 22, &rule14},
        {67862, 6, &rule17},
        {67871, 1, &rule2},
        {67872, 26, &rule14},
        {67903, 1, &rule2},
        {67968, 56, &rule14},
+       {68028, 2, &rule17},
        {68030, 2, &rule14},
+       {68032, 16, &rule17},
+       {68050, 46, &rule17},
        {68096, 1, &rule14},
-       {68097, 3, &rule90},
-       {68101, 2, &rule90},
-       {68108, 4, &rule90},
+       {68097, 3, &rule92},
+       {68101, 2, &rule92},
+       {68108, 4, &rule92},
        {68112, 4, &rule14},
        {68117, 3, &rule14},
-       {68121, 27, &rule14},
-       {68152, 3, &rule90},
-       {68159, 1, &rule90},
-       {68160, 8, &rule17},
+       {68121, 29, &rule14},
+       {68152, 3, &rule92},
+       {68159, 1, &rule92},
+       {68160, 9, &rule17},
        {68176, 9, &rule2},
        {68192, 29, &rule14},
        {68221, 2, &rule17},
@@ -3009,7 +3101,7 @@ static const struct _charblock_ allchars[]={
        {68288, 8, &rule14},
        {68296, 1, &rule13},
        {68297, 28, &rule14},
-       {68325, 2, &rule90},
+       {68325, 2, &rule92},
        {68331, 5, &rule17},
        {68336, 7, &rule2},
        {68352, 54, &rule14},
@@ -3022,258 +3114,458 @@ static const struct _charblock_ allchars[]={
        {68505, 4, &rule2},
        {68521, 7, &rule17},
        {68608, 73, &rule14},
+       {68736, 51, &rule97},
+       {68800, 51, &rule102},
+       {68858, 6, &rule17},
+       {68864, 36, &rule14},
+       {68900, 4, &rule92},
+       {68912, 10, &rule8},
        {69216, 31, &rule17},
-       {69632, 1, &rule122},
-       {69633, 1, &rule90},
-       {69634, 1, &rule122},
+       {69376, 29, &rule14},
+       {69405, 10, &rule17},
+       {69415, 1, &rule14},
+       {69424, 22, &rule14},
+       {69446, 11, &rule92},
+       {69457, 4, &rule17},
+       {69461, 5, &rule2},
+       {69600, 23, &rule14},
+       {69632, 1, &rule124},
+       {69633, 1, &rule92},
+       {69634, 1, &rule124},
        {69635, 53, &rule14},
-       {69688, 15, &rule90},
+       {69688, 15, &rule92},
        {69703, 7, &rule2},
        {69714, 20, &rule17},
        {69734, 10, &rule8},
-       {69759, 3, &rule90},
-       {69762, 1, &rule122},
+       {69759, 3, &rule92},
+       {69762, 1, &rule124},
        {69763, 45, &rule14},
-       {69808, 3, &rule122},
-       {69811, 4, &rule90},
-       {69815, 2, &rule122},
-       {69817, 2, &rule90},
+       {69808, 3, &rule124},
+       {69811, 4, &rule92},
+       {69815, 2, &rule124},
+       {69817, 2, &rule92},
        {69819, 2, &rule2},
        {69821, 1, &rule16},
        {69822, 4, &rule2},
+       {69837, 1, &rule16},
        {69840, 25, &rule14},
        {69872, 10, &rule8},
-       {69888, 3, &rule90},
+       {69888, 3, &rule92},
        {69891, 36, &rule14},
-       {69927, 5, &rule90},
-       {69932, 1, &rule122},
-       {69933, 8, &rule90},
+       {69927, 5, &rule92},
+       {69932, 1, &rule124},
+       {69933, 8, &rule92},
        {69942, 10, &rule8},
        {69952, 4, &rule2},
+       {69956, 1, &rule14},
+       {69957, 2, &rule124},
        {69968, 35, &rule14},
-       {70003, 1, &rule90},
+       {70003, 1, &rule92},
        {70004, 2, &rule2},
        {70006, 1, &rule14},
-       {70016, 2, &rule90},
-       {70018, 1, &rule122},
+       {70016, 2, &rule92},
+       {70018, 1, &rule124},
        {70019, 48, &rule14},
-       {70067, 3, &rule122},
-       {70070, 9, &rule90},
-       {70079, 2, &rule122},
+       {70067, 3, &rule124},
+       {70070, 9, &rule92},
+       {70079, 2, &rule124},
        {70081, 4, &rule14},
        {70085, 4, &rule2},
+       {70089, 4, &rule92},
        {70093, 1, &rule2},
        {70096, 10, &rule8},
        {70106, 1, &rule14},
+       {70107, 1, &rule2},
+       {70108, 1, &rule14},
+       {70109, 3, &rule2},
        {70113, 20, &rule17},
        {70144, 18, &rule14},
        {70163, 25, &rule14},
-       {70188, 3, &rule122},
-       {70191, 3, &rule90},
-       {70194, 2, &rule122},
-       {70196, 1, &rule90},
-       {70197, 1, &rule122},
-       {70198, 2, &rule90},
+       {70188, 3, &rule124},
+       {70191, 3, &rule92},
+       {70194, 2, &rule124},
+       {70196, 1, &rule92},
+       {70197, 1, &rule124},
+       {70198, 2, &rule92},
        {70200, 6, &rule2},
+       {70206, 1, &rule92},
+       {70272, 7, &rule14},
+       {70280, 1, &rule14},
+       {70282, 4, &rule14},
+       {70287, 15, &rule14},
+       {70303, 10, &rule14},
+       {70313, 1, &rule2},
        {70320, 47, &rule14},
-       {70367, 1, &rule90},
-       {70368, 3, &rule122},
-       {70371, 8, &rule90},
+       {70367, 1, &rule92},
+       {70368, 3, &rule124},
+       {70371, 8, &rule92},
        {70384, 10, &rule8},
-       {70401, 1, &rule90},
-       {70402, 2, &rule122},
+       {70400, 2, &rule92},
+       {70402, 2, &rule124},
        {70405, 8, &rule14},
        {70415, 2, &rule14},
        {70419, 22, &rule14},
        {70442, 7, &rule14},
        {70450, 2, &rule14},
        {70453, 5, &rule14},
-       {70460, 1, &rule90},
+       {70459, 2, &rule92},
        {70461, 1, &rule14},
-       {70462, 2, &rule122},
-       {70464, 1, &rule90},
-       {70465, 4, &rule122},
-       {70471, 2, &rule122},
-       {70475, 3, &rule122},
-       {70487, 1, &rule122},
+       {70462, 2, &rule124},
+       {70464, 1, &rule92},
+       {70465, 4, &rule124},
+       {70471, 2, &rule124},
+       {70475, 3, &rule124},
+       {70480, 1, &rule14},
+       {70487, 1, &rule124},
        {70493, 5, &rule14},
-       {70498, 2, &rule122},
-       {70502, 7, &rule90},
-       {70512, 5, &rule90},
+       {70498, 2, &rule124},
+       {70502, 7, &rule92},
+       {70512, 5, &rule92},
+       {70656, 53, &rule14},
+       {70709, 3, &rule124},
+       {70712, 8, &rule92},
+       {70720, 2, &rule124},
+       {70722, 3, &rule92},
+       {70725, 1, &rule124},
+       {70726, 1, &rule92},
+       {70727, 4, &rule14},
+       {70731, 5, &rule2},
+       {70736, 10, &rule8},
+       {70747, 1, &rule2},
+       {70749, 1, &rule2},
+       {70750, 1, &rule92},
+       {70751, 1, &rule14},
        {70784, 48, &rule14},
-       {70832, 3, &rule122},
-       {70835, 6, &rule90},
-       {70841, 1, &rule122},
-       {70842, 1, &rule90},
-       {70843, 4, &rule122},
-       {70847, 2, &rule90},
-       {70849, 1, &rule122},
-       {70850, 2, &rule90},
+       {70832, 3, &rule124},
+       {70835, 6, &rule92},
+       {70841, 1, &rule124},
+       {70842, 1, &rule92},
+       {70843, 4, &rule124},
+       {70847, 2, &rule92},
+       {70849, 1, &rule124},
+       {70850, 2, &rule92},
        {70852, 2, &rule14},
        {70854, 1, &rule2},
        {70855, 1, &rule14},
        {70864, 10, &rule8},
        {71040, 47, &rule14},
-       {71087, 3, &rule122},
-       {71090, 4, &rule90},
-       {71096, 4, &rule122},
-       {71100, 2, &rule90},
-       {71102, 1, &rule122},
-       {71103, 2, &rule90},
-       {71105, 9, &rule2},
+       {71087, 3, &rule124},
+       {71090, 4, &rule92},
+       {71096, 4, &rule124},
+       {71100, 2, &rule92},
+       {71102, 1, &rule124},
+       {71103, 2, &rule92},
+       {71105, 23, &rule2},
+       {71128, 4, &rule14},
+       {71132, 2, &rule92},
        {71168, 48, &rule14},
-       {71216, 3, &rule122},
-       {71219, 8, &rule90},
-       {71227, 2, &rule122},
-       {71229, 1, &rule90},
-       {71230, 1, &rule122},
-       {71231, 2, &rule90},
+       {71216, 3, &rule124},
+       {71219, 8, &rule92},
+       {71227, 2, &rule124},
+       {71229, 1, &rule92},
+       {71230, 1, &rule124},
+       {71231, 2, &rule92},
        {71233, 3, &rule2},
        {71236, 1, &rule14},
        {71248, 10, &rule8},
+       {71264, 13, &rule2},
        {71296, 43, &rule14},
-       {71339, 1, &rule90},
-       {71340, 1, &rule122},
-       {71341, 1, &rule90},
-       {71342, 2, &rule122},
-       {71344, 6, &rule90},
-       {71350, 1, &rule122},
-       {71351, 1, &rule90},
+       {71339, 1, &rule92},
+       {71340, 1, &rule124},
+       {71341, 1, &rule92},
+       {71342, 2, &rule124},
+       {71344, 6, &rule92},
+       {71350, 1, &rule124},
+       {71351, 1, &rule92},
+       {71352, 1, &rule14},
        {71360, 10, &rule8},
+       {71424, 27, &rule14},
+       {71453, 3, &rule92},
+       {71456, 2, &rule124},
+       {71458, 4, &rule92},
+       {71462, 1, &rule124},
+       {71463, 5, &rule92},
+       {71472, 10, &rule8},
+       {71482, 2, &rule17},
+       {71484, 3, &rule2},
+       {71487, 1, &rule13},
+       {71680, 44, &rule14},
+       {71724, 3, &rule124},
+       {71727, 9, &rule92},
+       {71736, 1, &rule124},
+       {71737, 2, &rule92},
+       {71739, 1, &rule2},
        {71840, 32, &rule9},
        {71872, 32, &rule12},
        {71904, 10, &rule8},
        {71914, 9, &rule17},
        {71935, 1, &rule14},
+       {72096, 8, &rule14},
+       {72106, 39, &rule14},
+       {72145, 1, &rule124},
+       {72146, 1, &rule92},
+       {72147, 1, &rule124},
+       {72148, 4, &rule92},
+       {72154, 2, &rule92},
+       {72156, 4, &rule124},
+       {72160, 1, &rule92},
+       {72161, 3, &rule14},
+       {72164, 1, &rule124},
+       {72192, 1, &rule14},
+       {72193, 10, &rule92},
+       {72203, 40, &rule14},
+       {72243, 6, &rule92},
+       {72249, 1, &rule124},
+       {72250, 1, &rule14},
+       {72251, 4, &rule92},
+       {72255, 8, &rule2},
+       {72263, 1, &rule92},
+       {72272, 1, &rule14},
+       {72273, 6, &rule92},
+       {72279, 2, &rule124},
+       {72281, 3, &rule92},
+       {72284, 46, &rule14},
+       {72330, 13, &rule92},
+       {72343, 1, &rule124},
+       {72344, 2, &rule92},
+       {72346, 3, &rule2},
+       {72349, 1, &rule14},
+       {72350, 5, &rule2},
        {72384, 57, &rule14},
-       {73728, 921, &rule14},
-       {74752, 111, &rule124},
+       {72704, 9, &rule14},
+       {72714, 37, &rule14},
+       {72751, 1, &rule124},
+       {72752, 7, &rule92},
+       {72760, 6, &rule92},
+       {72766, 1, &rule124},
+       {72767, 1, &rule92},
+       {72768, 1, &rule14},
+       {72769, 5, &rule2},
+       {72784, 10, &rule8},
+       {72794, 19, &rule17},
+       {72816, 2, &rule2},
+       {72818, 30, &rule14},
+       {72850, 22, &rule92},
+       {72873, 1, &rule124},
+       {72874, 7, &rule92},
+       {72881, 1, &rule124},
+       {72882, 2, &rule92},
+       {72884, 1, &rule124},
+       {72885, 2, &rule92},
+       {72960, 7, &rule14},
+       {72968, 2, &rule14},
+       {72971, 38, &rule14},
+       {73009, 6, &rule92},
+       {73018, 1, &rule92},
+       {73020, 2, &rule92},
+       {73023, 7, &rule92},
+       {73030, 1, &rule14},
+       {73031, 1, &rule92},
+       {73040, 10, &rule8},
+       {73056, 6, &rule14},
+       {73063, 2, &rule14},
+       {73066, 32, &rule14},
+       {73098, 5, &rule124},
+       {73104, 2, &rule92},
+       {73107, 2, &rule124},
+       {73109, 1, &rule92},
+       {73110, 1, &rule124},
+       {73111, 1, &rule92},
+       {73112, 1, &rule14},
+       {73120, 10, &rule8},
+       {73440, 19, &rule14},
+       {73459, 2, &rule92},
+       {73461, 2, &rule124},
+       {73463, 2, &rule2},
+       {73664, 21, &rule17},
+       {73685, 8, &rule13},
+       {73693, 4, &rule3},
+       {73697, 17, &rule13},
+       {73727, 1, &rule2},
+       {73728, 922, &rule14},
+       {74752, 111, &rule128},
        {74864, 5, &rule2},
+       {74880, 196, &rule14},
        {77824, 1071, &rule14},
+       {78896, 9, &rule16},
+       {82944, 583, &rule14},
        {92160, 569, &rule14},
        {92736, 31, &rule14},
        {92768, 10, &rule8},
        {92782, 2, &rule2},
        {92880, 30, &rule14},
-       {92912, 5, &rule90},
+       {92912, 5, &rule92},
        {92917, 1, &rule2},
        {92928, 48, &rule14},
-       {92976, 7, &rule90},
+       {92976, 7, &rule92},
        {92983, 5, &rule2},
        {92988, 4, &rule13},
-       {92992, 4, &rule89},
+       {92992, 4, &rule91},
        {92996, 1, &rule2},
        {92997, 1, &rule13},
        {93008, 10, &rule8},
        {93019, 7, &rule17},
        {93027, 21, &rule14},
        {93053, 19, &rule14},
-       {93952, 69, &rule14},
+       {93760, 32, &rule9},
+       {93792, 32, &rule12},
+       {93824, 23, &rule17},
+       {93847, 4, &rule2},
+       {93952, 75, &rule14},
+       {94031, 1, &rule92},
        {94032, 1, &rule14},
-       {94033, 46, &rule122},
-       {94095, 4, &rule90},
-       {94099, 13, &rule89},
-       {110592, 2, &rule14},
+       {94033, 55, &rule124},
+       {94095, 4, &rule92},
+       {94099, 13, &rule91},
+       {94176, 2, &rule91},
+       {94178, 1, &rule2},
+       {94179, 1, &rule91},
+       {94208, 6136, &rule14},
+       {100352, 755, &rule14},
+       {110592, 287, &rule14},
+       {110928, 3, &rule14},
+       {110948, 4, &rule14},
+       {110960, 396, &rule14},
        {113664, 107, &rule14},
        {113776, 13, &rule14},
        {113792, 9, &rule14},
        {113808, 10, &rule14},
        {113820, 1, &rule13},
-       {113821, 2, &rule90},
+       {113821, 2, &rule92},
        {113823, 1, &rule2},
        {113824, 4, &rule16},
        {118784, 246, &rule13},
        {119040, 39, &rule13},
        {119081, 60, &rule13},
-       {119141, 2, &rule122},
-       {119143, 3, &rule90},
+       {119141, 2, &rule124},
+       {119143, 3, &rule92},
        {119146, 3, &rule13},
-       {119149, 6, &rule122},
+       {119149, 6, &rule124},
        {119155, 8, &rule16},
-       {119163, 8, &rule90},
+       {119163, 8, &rule92},
        {119171, 2, &rule13},
-       {119173, 7, &rule90},
+       {119173, 7, &rule92},
        {119180, 30, &rule13},
-       {119210, 4, &rule90},
-       {119214, 48, &rule13},
+       {119210, 4, &rule92},
+       {119214, 59, &rule13},
        {119296, 66, &rule13},
-       {119362, 3, &rule90},
+       {119362, 3, &rule92},
        {119365, 1, &rule13},
+       {119520, 20, &rule17},
        {119552, 87, &rule13},
-       {119648, 18, &rule17},
-       {119808, 26, &rule105},
+       {119648, 25, &rule17},
+       {119808, 26, &rule107},
        {119834, 26, &rule20},
-       {119860, 26, &rule105},
+       {119860, 26, &rule107},
        {119886, 7, &rule20},
        {119894, 18, &rule20},
-       {119912, 26, &rule105},
+       {119912, 26, &rule107},
        {119938, 26, &rule20},
-       {119964, 1, &rule105},
-       {119966, 2, &rule105},
-       {119970, 1, &rule105},
-       {119973, 2, &rule105},
-       {119977, 4, &rule105},
-       {119982, 8, &rule105},
+       {119964, 1, &rule107},
+       {119966, 2, &rule107},
+       {119970, 1, &rule107},
+       {119973, 2, &rule107},
+       {119977, 4, &rule107},
+       {119982, 8, &rule107},
        {119990, 4, &rule20},
        {119995, 1, &rule20},
        {119997, 7, &rule20},
        {120005, 11, &rule20},
-       {120016, 26, &rule105},
+       {120016, 26, &rule107},
        {120042, 26, &rule20},
-       {120068, 2, &rule105},
-       {120071, 4, &rule105},
-       {120077, 8, &rule105},
-       {120086, 7, &rule105},
+       {120068, 2, &rule107},
+       {120071, 4, &rule107},
+       {120077, 8, &rule107},
+       {120086, 7, &rule107},
        {120094, 26, &rule20},
-       {120120, 2, &rule105},
-       {120123, 4, &rule105},
-       {120128, 5, &rule105},
-       {120134, 1, &rule105},
-       {120138, 7, &rule105},
+       {120120, 2, &rule107},
+       {120123, 4, &rule107},
+       {120128, 5, &rule107},
+       {120134, 1, &rule107},
+       {120138, 7, &rule107},
        {120146, 26, &rule20},
-       {120172, 26, &rule105},
+       {120172, 26, &rule107},
        {120198, 26, &rule20},
-       {120224, 26, &rule105},
+       {120224, 26, &rule107},
        {120250, 26, &rule20},
-       {120276, 26, &rule105},
+       {120276, 26, &rule107},
        {120302, 26, &rule20},
-       {120328, 26, &rule105},
+       {120328, 26, &rule107},
        {120354, 26, &rule20},
-       {120380, 26, &rule105},
+       {120380, 26, &rule107},
        {120406, 26, &rule20},
-       {120432, 26, &rule105},
+       {120432, 26, &rule107},
        {120458, 28, &rule20},
-       {120488, 25, &rule105},
+       {120488, 25, &rule107},
        {120513, 1, &rule6},
        {120514, 25, &rule20},
        {120539, 1, &rule6},
        {120540, 6, &rule20},
-       {120546, 25, &rule105},
+       {120546, 25, &rule107},
        {120571, 1, &rule6},
        {120572, 25, &rule20},
        {120597, 1, &rule6},
        {120598, 6, &rule20},
-       {120604, 25, &rule105},
+       {120604, 25, &rule107},
        {120629, 1, &rule6},
        {120630, 25, &rule20},
        {120655, 1, &rule6},
        {120656, 6, &rule20},
-       {120662, 25, &rule105},
+       {120662, 25, &rule107},
        {120687, 1, &rule6},
        {120688, 25, &rule20},
        {120713, 1, &rule6},
        {120714, 6, &rule20},
-       {120720, 25, &rule105},
+       {120720, 25, &rule107},
        {120745, 1, &rule6},
        {120746, 25, &rule20},
        {120771, 1, &rule6},
        {120772, 6, &rule20},
-       {120778, 1, &rule105},
+       {120778, 1, &rule107},
        {120779, 1, &rule20},
        {120782, 50, &rule8},
+       {120832, 512, &rule13},
+       {121344, 55, &rule92},
+       {121399, 4, &rule13},
+       {121403, 50, &rule92},
+       {121453, 8, &rule13},
+       {121461, 1, &rule92},
+       {121462, 14, &rule13},
+       {121476, 1, &rule92},
+       {121477, 2, &rule13},
+       {121479, 5, &rule2},
+       {121499, 5, &rule92},
+       {121505, 15, &rule92},
+       {122880, 7, &rule92},
+       {122888, 17, &rule92},
+       {122907, 7, &rule92},
+       {122915, 2, &rule92},
+       {122918, 5, &rule92},
+       {123136, 45, &rule14},
+       {123184, 7, &rule92},
+       {123191, 7, &rule91},
+       {123200, 10, &rule8},
+       {123214, 2, &rule14},
+       {123584, 44, &rule14},
+       {123628, 4, &rule92},
+       {123632, 10, &rule8},
+       {123647, 1, &rule3},
        {124928, 197, &rule14},
        {125127, 9, &rule17},
-       {125136, 7, &rule90},
+       {125136, 7, &rule92},
+       {125184, 34, &rule203},
+       {125218, 34, &rule204},
+       {125252, 7, &rule92},
+       {125264, 10, &rule8},
+       {125278, 2, &rule2},
+       {126065, 59, &rule17},
+       {126124, 1, &rule13},
+       {126125, 3, &rule17},
+       {126128, 1, &rule3},
+       {126129, 4, &rule17},
+       {126209, 45, &rule17},
+       {126254, 1, &rule13},
+       {126255, 15, &rule17},
        {126464, 4, &rule14},
        {126469, 27, &rule14},
        {126497, 2, &rule14},
@@ -3315,41 +3607,49 @@ static const struct _charblock_ allchars[]={
        {127169, 15, &rule13},
        {127185, 37, &rule13},
        {127232, 13, &rule17},
-       {127248, 31, &rule13},
-       {127280, 60, &rule13},
-       {127344, 43, &rule13},
+       {127248, 93, &rule13},
+       {127344, 61, &rule13},
        {127462, 29, &rule13},
-       {127504, 43, &rule13},
+       {127504, 44, &rule13},
        {127552, 9, &rule13},
        {127568, 2, &rule13},
-       {127744, 45, &rule13},
-       {127792, 78, &rule13},
-       {127872, 79, &rule13},
-       {127956, 36, &rule13},
-       {128000, 255, &rule13},
-       {128256, 75, &rule13},
-       {128336, 42, &rule13},
-       {128379, 41, &rule13},
-       {128421, 158, &rule13},
-       {128581, 139, &rule13},
+       {127584, 6, &rule13},
+       {127744, 251, &rule13},
+       {127995, 5, &rule10},
+       {128000, 726, &rule13},
        {128736, 13, &rule13},
-       {128752, 4, &rule13},
+       {128752, 11, &rule13},
        {128768, 116, &rule13},
-       {128896, 85, &rule13},
+       {128896, 89, &rule13},
+       {128992, 12, &rule13},
        {129024, 12, &rule13},
        {129040, 56, &rule13},
        {129104, 10, &rule13},
        {129120, 40, &rule13},
        {129168, 30, &rule13},
+       {129280, 12, &rule13},
+       {129293, 101, &rule13},
+       {129395, 4, &rule13},
+       {129402, 41, &rule13},
+       {129445, 6, &rule13},
+       {129454, 29, &rule13},
+       {129485, 135, &rule13},
+       {129632, 14, &rule13},
+       {129648, 4, &rule13},
+       {129656, 3, &rule13},
+       {129664, 3, &rule13},
+       {129680, 6, &rule13},
        {131072, 42711, &rule14},
        {173824, 4149, &rule14},
        {177984, 222, &rule14},
+       {178208, 5762, &rule14},
+       {183984, 7473, &rule14},
        {194560, 542, &rule14},
        {917505, 1, &rule16},
        {917536, 96, &rule16},
-       {917760, 240, &rule90},
-       {983040, 65534, &rule178},
-       {1048576, 65534, &rule178}
+       {917760, 240, &rule92},
+       {983040, 65534, &rule200},
+       {1048576, 65534, &rule200}
 };
 static const struct _charblock_ convchars[]={
        {65, 26, &rule9},
@@ -3688,6 +3988,7 @@ static const struct _charblock_ convchars[]={
        {614, 1, &rule73},
        {616, 1, &rule74},
        {617, 1, &rule75},
+       {618, 1, &rule73},
        {619, 1, &rule76},
        {620, 1, &rule77},
        {623, 1, &rule75},
@@ -3696,15 +3997,17 @@ static const struct _charblock_ convchars[]={
        {629, 1, &rule80},
        {637, 1, &rule81},
        {640, 1, &rule82},
+       {642, 1, &rule83},
        {643, 1, &rule82},
-       {647, 1, &rule83},
+       {647, 1, &rule84},
        {648, 1, &rule82},
-       {649, 1, &rule84},
-       {650, 2, &rule85},
-       {652, 1, &rule86},
-       {658, 1, &rule87},
-       {670, 1, &rule88},
-       {837, 1, &rule91},
+       {649, 1, &rule85},
+       {650, 2, &rule86},
+       {652, 1, &rule87},
+       {658, 1, &rule88},
+       {669, 1, &rule89},
+       {670, 1, &rule90},
+       {837, 1, &rule93},
        {880, 1, &rule22},
        {881, 1, &rule23},
        {882, 1, &rule22},
@@ -3712,26 +4015,26 @@ static const struct _charblock_ convchars[]={
        {886, 1, &rule22},
        {887, 1, &rule23},
        {891, 3, &rule41},
-       {895, 1, &rule92},
-       {902, 1, &rule93},
-       {904, 3, &rule94},
-       {908, 1, &rule95},
-       {910, 2, &rule96},
+       {895, 1, &rule94},
+       {902, 1, &rule95},
+       {904, 3, &rule96},
+       {908, 1, &rule97},
+       {910, 2, &rule98},
        {913, 17, &rule9},
        {931, 9, &rule9},
-       {940, 1, &rule97},
-       {941, 3, &rule98},
+       {940, 1, &rule99},
+       {941, 3, &rule100},
        {945, 17, &rule12},
-       {962, 1, &rule99},
+       {962, 1, &rule101},
        {963, 9, &rule12},
-       {972, 1, &rule100},
-       {973, 2, &rule101},
-       {975, 1, &rule102},
-       {976, 1, &rule103},
-       {977, 1, &rule104},
-       {981, 1, &rule106},
-       {982, 1, &rule107},
-       {983, 1, &rule108},
+       {972, 1, &rule102},
+       {973, 2, &rule103},
+       {975, 1, &rule104},
+       {976, 1, &rule105},
+       {977, 1, &rule106},
+       {981, 1, &rule108},
+       {982, 1, &rule109},
+       {983, 1, &rule110},
        {984, 1, &rule22},
        {985, 1, &rule23},
        {986, 1, &rule22},
@@ -3756,22 +4059,22 @@ static const struct _charblock_ convchars[]={
        {1005, 1, &rule23},
        {1006, 1, &rule22},
        {1007, 1, &rule23},
-       {1008, 1, &rule109},
-       {1009, 1, &rule110},
-       {1010, 1, &rule111},
-       {1011, 1, &rule112},
-       {1012, 1, &rule113},
-       {1013, 1, &rule114},
+       {1008, 1, &rule111},
+       {1009, 1, &rule112},
+       {1010, 1, &rule113},
+       {1011, 1, &rule114},
+       {1012, 1, &rule115},
+       {1013, 1, &rule116},
        {1015, 1, &rule22},
        {1016, 1, &rule23},
-       {1017, 1, &rule115},
+       {1017, 1, &rule117},
        {1018, 1, &rule22},
        {1019, 1, &rule23},
        {1021, 3, &rule53},
-       {1024, 16, &rule116},
+       {1024, 16, &rule118},
        {1040, 32, &rule9},
        {1072, 32, &rule12},
-       {1104, 16, &rule110},
+       {1104, 16, &rule112},
        {1120, 1, &rule22},
        {1121, 1, &rule23},
        {1122, 1, &rule22},
@@ -3860,7 +4163,7 @@ static const struct _charblock_ convchars[]={
        {1213, 1, &rule23},
        {1214, 1, &rule22},
        {1215, 1, &rule23},
-       {1216, 1, &rule118},
+       {1216, 1, &rule120},
        {1217, 1, &rule22},
        {1218, 1, &rule23},
        {1219, 1, &rule22},
@@ -3875,7 +4178,7 @@ static const struct _charblock_ convchars[]={
        {1228, 1, &rule23},
        {1229, 1, &rule22},
        {1230, 1, &rule23},
-       {1231, 1, &rule119},
+       {1231, 1, &rule121},
        {1232, 1, &rule22},
        {1233, 1, &rule23},
        {1234, 1, &rule22},
@@ -3972,13 +4275,29 @@ static const struct _charblock_ convchars[]={
        {1325, 1, &rule23},
        {1326, 1, &rule22},
        {1327, 1, &rule23},
-       {1329, 38, &rule120},
-       {1377, 38, &rule121},
-       {4256, 38, &rule123},
-       {4295, 1, &rule123},
-       {4301, 1, &rule123},
-       {7545, 1, &rule125},
-       {7549, 1, &rule126},
+       {1329, 38, &rule122},
+       {1377, 38, &rule123},
+       {4256, 38, &rule125},
+       {4295, 1, &rule125},
+       {4301, 1, &rule125},
+       {4304, 43, &rule126},
+       {4349, 3, &rule126},
+       {5024, 80, &rule127},
+       {5104, 6, &rule104},
+       {5112, 6, &rule110},
+       {7296, 1, &rule129},
+       {7297, 1, &rule130},
+       {7298, 1, &rule131},
+       {7299, 2, &rule132},
+       {7301, 1, &rule133},
+       {7302, 1, &rule134},
+       {7303, 1, &rule135},
+       {7304, 1, &rule136},
+       {7312, 43, &rule137},
+       {7357, 3, &rule137},
+       {7545, 1, &rule138},
+       {7549, 1, &rule139},
+       {7566, 1, &rule140},
        {7680, 1, &rule22},
        {7681, 1, &rule23},
        {7682, 1, &rule22},
@@ -4129,8 +4448,8 @@ static const struct _charblock_ convchars[]={
        {7827, 1, &rule23},
        {7828, 1, &rule22},
        {7829, 1, &rule23},
-       {7835, 1, &rule127},
-       {7838, 1, &rule128},
+       {7835, 1, &rule141},
+       {7838, 1, &rule142},
        {7840, 1, &rule22},
        {7841, 1, &rule23},
        {7842, 1, &rule22},
@@ -4227,94 +4546,94 @@ static const struct _charblock_ convchars[]={
        {7933, 1, &rule23},
        {7934, 1, &rule22},
        {7935, 1, &rule23},
-       {7936, 8, &rule129},
-       {7944, 8, &rule130},
-       {7952, 6, &rule129},
-       {7960, 6, &rule130},
-       {7968, 8, &rule129},
-       {7976, 8, &rule130},
-       {7984, 8, &rule129},
-       {7992, 8, &rule130},
-       {8000, 6, &rule129},
-       {8008, 6, &rule130},
-       {8017, 1, &rule129},
-       {8019, 1, &rule129},
-       {8021, 1, &rule129},
-       {8023, 1, &rule129},
-       {8025, 1, &rule130},
-       {8027, 1, &rule130},
-       {8029, 1, &rule130},
-       {8031, 1, &rule130},
-       {8032, 8, &rule129},
-       {8040, 8, &rule130},
-       {8048, 2, &rule131},
-       {8050, 4, &rule132},
-       {8054, 2, &rule133},
-       {8056, 2, &rule134},
-       {8058, 2, &rule135},
-       {8060, 2, &rule136},
-       {8064, 8, &rule129},
-       {8072, 8, &rule137},
-       {8080, 8, &rule129},
-       {8088, 8, &rule137},
-       {8096, 8, &rule129},
-       {8104, 8, &rule137},
-       {8112, 2, &rule129},
-       {8115, 1, &rule138},
-       {8120, 2, &rule130},
-       {8122, 2, &rule139},
-       {8124, 1, &rule140},
-       {8126, 1, &rule141},
-       {8131, 1, &rule138},
-       {8136, 4, &rule142},
-       {8140, 1, &rule140},
-       {8144, 2, &rule129},
-       {8152, 2, &rule130},
-       {8154, 2, &rule143},
-       {8160, 2, &rule129},
-       {8165, 1, &rule111},
-       {8168, 2, &rule130},
-       {8170, 2, &rule144},
-       {8172, 1, &rule115},
-       {8179, 1, &rule138},
-       {8184, 2, &rule145},
-       {8186, 2, &rule146},
-       {8188, 1, &rule140},
-       {8486, 1, &rule149},
-       {8490, 1, &rule150},
-       {8491, 1, &rule151},
-       {8498, 1, &rule152},
-       {8526, 1, &rule153},
-       {8544, 16, &rule154},
-       {8560, 16, &rule155},
+       {7936, 8, &rule143},
+       {7944, 8, &rule144},
+       {7952, 6, &rule143},
+       {7960, 6, &rule144},
+       {7968, 8, &rule143},
+       {7976, 8, &rule144},
+       {7984, 8, &rule143},
+       {7992, 8, &rule144},
+       {8000, 6, &rule143},
+       {8008, 6, &rule144},
+       {8017, 1, &rule143},
+       {8019, 1, &rule143},
+       {8021, 1, &rule143},
+       {8023, 1, &rule143},
+       {8025, 1, &rule144},
+       {8027, 1, &rule144},
+       {8029, 1, &rule144},
+       {8031, 1, &rule144},
+       {8032, 8, &rule143},
+       {8040, 8, &rule144},
+       {8048, 2, &rule145},
+       {8050, 4, &rule146},
+       {8054, 2, &rule147},
+       {8056, 2, &rule148},
+       {8058, 2, &rule149},
+       {8060, 2, &rule150},
+       {8064, 8, &rule143},
+       {8072, 8, &rule151},
+       {8080, 8, &rule143},
+       {8088, 8, &rule151},
+       {8096, 8, &rule143},
+       {8104, 8, &rule151},
+       {8112, 2, &rule143},
+       {8115, 1, &rule152},
+       {8120, 2, &rule144},
+       {8122, 2, &rule153},
+       {8124, 1, &rule154},
+       {8126, 1, &rule155},
+       {8131, 1, &rule152},
+       {8136, 4, &rule156},
+       {8140, 1, &rule154},
+       {8144, 2, &rule143},
+       {8152, 2, &rule144},
+       {8154, 2, &rule157},
+       {8160, 2, &rule143},
+       {8165, 1, &rule113},
+       {8168, 2, &rule144},
+       {8170, 2, &rule158},
+       {8172, 1, &rule117},
+       {8179, 1, &rule152},
+       {8184, 2, &rule159},
+       {8186, 2, &rule160},
+       {8188, 1, &rule154},
+       {8486, 1, &rule163},
+       {8490, 1, &rule164},
+       {8491, 1, &rule165},
+       {8498, 1, &rule166},
+       {8526, 1, &rule167},
+       {8544, 16, &rule168},
+       {8560, 16, &rule169},
        {8579, 1, &rule22},
        {8580, 1, &rule23},
-       {9398, 26, &rule156},
-       {9424, 26, &rule157},
-       {11264, 47, &rule120},
-       {11312, 47, &rule121},
+       {9398, 26, &rule170},
+       {9424, 26, &rule171},
+       {11264, 47, &rule122},
+       {11312, 47, &rule123},
        {11360, 1, &rule22},
        {11361, 1, &rule23},
-       {11362, 1, &rule158},
-       {11363, 1, &rule159},
-       {11364, 1, &rule160},
-       {11365, 1, &rule161},
-       {11366, 1, &rule162},
+       {11362, 1, &rule172},
+       {11363, 1, &rule173},
+       {11364, 1, &rule174},
+       {11365, 1, &rule175},
+       {11366, 1, &rule176},
        {11367, 1, &rule22},
        {11368, 1, &rule23},
        {11369, 1, &rule22},
        {11370, 1, &rule23},
        {11371, 1, &rule22},
        {11372, 1, &rule23},
-       {11373, 1, &rule163},
-       {11374, 1, &rule164},
-       {11375, 1, &rule165},
-       {11376, 1, &rule166},
+       {11373, 1, &rule177},
+       {11374, 1, &rule178},
+       {11375, 1, &rule179},
+       {11376, 1, &rule180},
        {11378, 1, &rule22},
        {11379, 1, &rule23},
        {11381, 1, &rule22},
        {11382, 1, &rule23},
-       {11390, 2, &rule167},
+       {11390, 2, &rule181},
        {11392, 1, &rule22},
        {11393, 1, &rule23},
        {11394, 1, &rule22},
@@ -4421,9 +4740,9 @@ static const struct _charblock_ convchars[]={
        {11502, 1, &rule23},
        {11506, 1, &rule22},
        {11507, 1, &rule23},
-       {11520, 38, &rule168},
-       {11559, 1, &rule168},
-       {11565, 1, &rule168},
+       {11520, 38, &rule182},
+       {11559, 1, &rule182},
+       {11565, 1, &rule182},
        {42560, 1, &rule22},
        {42561, 1, &rule23},
        {42562, 1, &rule22},
@@ -4578,7 +4897,7 @@ static const struct _charblock_ convchars[]={
        {42874, 1, &rule23},
        {42875, 1, &rule22},
        {42876, 1, &rule23},
-       {42877, 1, &rule169},
+       {42877, 1, &rule183},
        {42878, 1, &rule22},
        {42879, 1, &rule23},
        {42880, 1, &rule22},
@@ -4591,11 +4910,12 @@ static const struct _charblock_ convchars[]={
        {42887, 1, &rule23},
        {42891, 1, &rule22},
        {42892, 1, &rule23},
-       {42893, 1, &rule170},
+       {42893, 1, &rule184},
        {42896, 1, &rule22},
        {42897, 1, &rule23},
        {42898, 1, &rule22},
        {42899, 1, &rule23},
+       {42900, 1, &rule185},
        {42902, 1, &rule22},
        {42903, 1, &rule23},
        {42904, 1, &rule22},
@@ -4616,18 +4936,48 @@ static const struct _charblock_ convchars[]={
        {42919, 1, &rule23},
        {42920, 1, &rule22},
        {42921, 1, &rule23},
-       {42922, 1, &rule171},
-       {42923, 1, &rule172},
-       {42924, 1, &rule173},
-       {42925, 1, &rule174},
-       {42928, 1, &rule175},
-       {42929, 1, &rule176},
+       {42922, 1, &rule186},
+       {42923, 1, &rule187},
+       {42924, 1, &rule188},
+       {42925, 1, &rule189},
+       {42926, 1, &rule186},
+       {42928, 1, &rule190},
+       {42929, 1, &rule191},
+       {42930, 1, &rule192},
+       {42931, 1, &rule193},
+       {42932, 1, &rule22},
+       {42933, 1, &rule23},
+       {42934, 1, &rule22},
+       {42935, 1, &rule23},
+       {42936, 1, &rule22},
+       {42937, 1, &rule23},
+       {42938, 1, &rule22},
+       {42939, 1, &rule23},
+       {42940, 1, &rule22},
+       {42941, 1, &rule23},
+       {42942, 1, &rule22},
+       {42943, 1, &rule23},
+       {42946, 1, &rule22},
+       {42947, 1, &rule23},
+       {42948, 1, &rule194},
+       {42949, 1, &rule195},
+       {42950, 1, &rule196},
+       {43859, 1, &rule197},
+       {43888, 80, &rule198},
        {65313, 26, &rule9},
        {65345, 26, &rule12},
-       {66560, 40, &rule179},
-       {66600, 40, &rule180},
+       {66560, 40, &rule201},
+       {66600, 40, &rule202},
+       {66736, 36, &rule201},
+       {66776, 36, &rule202},
+       {68736, 51, &rule97},
+       {68800, 51, &rule102},
        {71840, 32, &rule9},
-       {71872, 32, &rule12}
+       {71872, 32, &rule12},
+       {93760, 32, &rule9},
+       {93792, 32, &rule12},
+       {125184, 34, &rule203},
+       {125218, 34, &rule204}
 };
 static const struct _charblock_ spacechars[]={
        {32, 1, &rule1},
@@ -4726,7 +5076,6 @@ unipred(u_iswalpha,(GENCAT_LL|GENCAT_LU|GENCAT_LT|GENCAT_LM|GENCAT_LO))
 unipred(u_iswdigit,GENCAT_ND)
 
 unipred(u_iswalnum,(GENCAT_LT|GENCAT_LU|GENCAT_LL|GENCAT_LM|GENCAT_LO|
-                   GENCAT_MC|GENCAT_ME|GENCAT_MN|
                    GENCAT_NO|GENCAT_ND|GENCAT_NL))
 
 #define caseconv(p,to) \
@@ -4745,4 +5094,3 @@ HsInt u_gencat(HsInt c)
 {
        return getrule(allchars,NUM_BLOCKS,c)->catnumber;
 }
-
index 43bdf02..8964edd 100644 (file)
@@ -3,6 +3,12 @@
 ## 4.12.0.0 *TBA*
   * Bundled with GHC *TBA*
 
+  * Support the characters from recent versions of Unicode (up to v. 12) in
+    literals (#5518).
+
+## 4.12.0.0 *TBA*
+  * Bundled with GHC *TBA*
+
   * The STM invariant-checking mechanism (`always` and `alwaysSucceeds`), which
     was deprecated in GHC 8.4, has been removed (as proposed in
     <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0011-deprecate-stm-invariants.rst>).
index 800cce7..8a5febb 100644 (file)
@@ -1375,7 +1375,7 @@ Code C P S U L A D
 1373 F T F F F F F 
 1374 F T F F F F F 
 1375 F T F F F F F 
-1376 F F F F F F F 
+1376 F T F F T T F 
 1377 F T F F T T F 
 1378 F T F F T T F 
 1379 F T F F T T F 
@@ -1415,7 +1415,7 @@ Code C P S U L A D
 1413 F T F F T T F 
 1414 F T F F T T F 
 1415 F T F F T T F 
-1416 F F F F F F F 
+1416 F T F F T T F 
 1417 F T F F F F F 
 1418 F T F F F F F 
 1419 F F F F F F F 
@@ -1518,7 +1518,7 @@ Code C P S U L A D
 1516 F F F F F F F 
 1517 F F F F F F F 
 1518 F F F F F F F 
-1519 F F F F F F F 
+1519 F T F F F T F 
 1520 F T F F F T F 
 1521 F T F F F T F 
 1522 F T F F F T F 
@@ -2044,9 +2044,9 @@ Code C P S U L A D
 2042 F T F F F T F 
 2043 F F F F F F F 
 2044 F F F F F F F 
-2045 F F F F F F F 
-2046 F F F F F F F 
-2047 F F F F F F F 
+2045 F T F F F F F 
+2046 F T F F F F F 
+2047 F T F F F F F 
 2048 F T F F F T F 
 2049 F T F F F T F 
 2050 F T F F F T F 
@@ -2143,17 +2143,17 @@ Code C P S U L A D
 2141 F F F F F F F 
 2142 F T F F F F F 
 2143 F F F F F F F 
-2144 F F F F F F F 
-2145 F F F F F F F 
-2146 F F F F F F F 
-2147 F F F F F F F 
-2148 F F F F F F F 
-2149 F F F F F F F 
-2150 F F F F F F F 
-2151 F F F F F F F 
-2152 F F F F F F F 
-2153 F F F F F F F 
-2154 F F F F F F F 
+2144 F T F F F T F 
+2145 F T F F F T F 
+2146 F T F F F T F 
+2147 F T F F F T F 
+2148 F T F F F T F 
+2149 F T F F F T F 
+2150 F T F F F T F 
+2151 F T F F F T F 
+2152 F T F F F T F 
+2153 F T F F F T F 
+2154 F T F F F T F 
 2155 F F F F F F F 
 2156 F F F F F F F 
 2157 F F F F F F F 
@@ -2226,17 +2226,17 @@ Code C P S U L A D
 2224 F T F F F T F 
 2225 F T F F F T F 
 2226 F T F F F T F 
-2227 F F F F F F F 
-2228 F F F F F F F 
+2227 F T F F F T F 
+2228 F T F F F T F 
 2229 F F F F F F F 
-2230 F F F F F F F 
-2231 F F F F F F F 
-2232 F F F F F F F 
-2233 F F F F F F F 
-2234 F F F F F F F 
-2235 F F F F F F F 
-2236 F F F F F F F 
-2237 F F F F F F F 
+2230 F T F F F T F 
+2231 F T F F F T F 
+2232 F T F F F T F 
+2233 F T F F F T F 
+2234 F T F F F T F 
+2235 F T F F F T F 
+2236 F T F F F T F 
+2237 F T F F F T F 
 2238 F F F F F F F 
 2239 F F F F F F F 
 2240 F F F F F F F 
@@ -2258,23 +2258,23 @@ Code C P S U L A D
 2256 F F F F F F F 
 2257 F F F F F F F 
 2258 F F F F F F F 
-2259 F F F F F F F 
-2260 F F F F F F F 
-2261 F F F F F F F 
-2262 F F F F F F F 
-2263 F F F F F F F 
-2264 F F F F F F F 
-2265 F F F F F F F 
-2266 F F F F F F F 
-2267 F F F F F F F 
-2268 F F F F F F F 
-2269 F F F F F F F 
-2270 F F F F F F F 
-2271 F F F F F F F 
-2272 F F F F F F F 
-2273 F F F F F F F 
+2259 F T F F F F F 
+2260 F T F F F F F 
+2261 F T F F F F F 
+2262 F T F F F F F 
+2263 F T F F F F F 
+2264 F T F F F F F 
+2265 F T F F F F F 
+2266 F T F F F F F 
+2267 F T F F F F F 
+2268 F T F F F F F 
+2269 F T F F F F F 
+2270 F T F F F F F 
+2271 F T F F F F F 
+2272 F T F F F F F 
+2273 F T F F F F F 
 2274 F F F F F F F 
-2275 F F F F F F F 
+2275 F T F F F F F 
 2276 F T F F F F F 
 2277 F T F F F F F 
 2278 F T F F F F F 
@@ -2555,9 +2555,9 @@ Code C P S U L A D
 2553 F T F F F F F 
 2554 F T F F F F F 
 2555 F T F F F F F 
-2556 F F F F F F F 
-2557 F F F F F F F 
-2558 F F F F F F F 
+2556 F T F F F T F 
+2557 F T F F F F F 
+2558 F T F F F F F 
 2559 F F F F F F F 
 2560 F F F F F F F 
 2561 F T F F F F F 
@@ -2677,7 +2677,7 @@ Code C P S U L A D
 2675 F T F F F T F 
 2676 F T F F F T F 
 2677 F T F F F F F 
-2678 F F F F F F F 
+2678 F T F F F F F 
 2679 F F F F F F F 
 2680 F F F F F F F 
 2681 F F F F F F F 
@@ -2808,13 +2808,13 @@ Code C P S U L A D
 2806 F F F F F F F 
 2807 F F F F F F F 
 2808 F F F F F F F 
-2809 F F F F F F F 
-2810 F F F F F F F 
-2811 F F F F F F F 
-2812 F F F F F F F 
-2813 F F F F F F F 
-2814 F F F F F F F 
-2815 F F F F F F F 
+2809 F T F F F T F 
+2810 F T F F F F F 
+2811 F T F F F F F 
+2812 F T F F F F F 
+2813 F T F F F F F 
+2814 F T F F F F F 
+2815 F T F F F F F 
 2816 F F F F F F F 
 2817 F T F F F F F 
 2818 F T F F F F F 
@@ -3075,7 +3075,7 @@ Code C P S U L A D
 3073 F T F F F F F 
 3074 F T F F F F F 
 3075 F T F F F F F 
-3076 F F F F F F F 
+3076 F T F F F F F 
 3077 F T F F F T F 
 3078 F T F F F T F 
 3079 F T F F F T F 
@@ -3161,7 +3161,7 @@ Code C P S U L A D
 3159 F F F F F F F 
 3160 F T F F F T F 
 3161 F T F F F T F 
-3162 F F F F F F F 
+3162 F T F F F T F 
 3163 F F F F F F F 
 3164 F F F F F F F 
 3165 F F F F F F F 
@@ -3190,7 +3190,7 @@ Code C P S U L A D
 3188 F F F F F F F 
 3189 F F F F F F F 
 3190 F F F F F F F 
-3191 F F F F F F F 
+3191 F T F F F F F 
 3192 F T F F F F F 
 3193 F T F F F F F 
 3194 F T F F F F F 
@@ -3199,11 +3199,11 @@ Code C P S U L A D
 3197 F T F F F F F 
 3198 F T F F F F F 
 3199 F T F F F F F 
-3200 F F F F F F F 
+3200 F T F F F T F 
 3201 F T F F F F F 
 3202 F T F F F F F 
 3203 F T F F F F F 
-3204 F F F F F F F 
+3204 F T F F F F F 
 3205 F T F F F T F 
 3206 F T F F F T F 
 3207 F T F F F T F 
@@ -3327,7 +3327,7 @@ Code C P S U L A D
 3325 F F F F F F F 
 3326 F F F F F F F 
 3327 F F F F F F F 
-3328 F F F F F F F 
+3328 F T F F F F F 
 3329 F T F F F F F 
 3330 F T F F F F F 
 3331 F T F F F F F 
@@ -3386,8 +3386,8 @@ Code C P S U L A D
 3384 F T F F F T F 
 3385 F T F F F T F 
 3386 F T F F F T F 
-3387 F F F F F F F 
-3388 F F F F F F F 
+3387 F T F F F F F 
+3388 F T F F F F F 
 3389 F T F F F T F 
 3390 F T F F F F F 
 3391 F T F F F F F 
@@ -3406,23 +3406,23 @@ Code C P S U L A D
 3404 F T F F F F F 
 3405 F T F F F F F 
 3406 F T F F F T F 
-3407 F F F F F F F 
+3407 F T F F F F F 
 3408 F F F F F F F 
 3409 F F F F F F F 
 3410 F F F F F F F 
 3411 F F F F F F F 
-3412 F F F F F F F 
-3413 F F F F F F F 
-3414 F F F F F F F 
+3412 F T F F F T F 
+3413 F T F F F T F 
+3414 F T F F F T F 
 3415 F T F F F F F 
-3416 F F F F F F F 
-3417 F F F F F F F 
-3418 F F F F F F F 
-3419 F F F F F F F 
-3420 F F F F F F F 
-3421 F F F F F F F 
-3422 F F F F F F F 
-3423 F F F F F F F 
+3416 F T F F F F F 
+3417 F T F F F F F 
+3418 F T F F F F F 
+3419 F T F F F F F 
+3420 F T F F F F F 
+3421 F T F F F F F 
+3422 F T F F F F F 
+3423 F T F F F T F 
 3424 F T F F F T F 
 3425 F T F F F T F 
 3426 F T F F F F F 
@@ -3445,9 +3445,9 @@ Code C P S U L A D
 3443 F T F F F F F 
 3444 F T F F F F F 
 3445 F T F F F F F 
-3446 F F F F F F F 
-3447 F F F F F F F 
-3448 F F F F F F F 
+3446 F T F F F F F 
+3447 F T F F F F F 
+3448 F T F F F F F 
 3449 F T F F F F F 
 3450 F T F F F T F 
 3451 F T F F F T F 
@@ -3717,25 +3717,25 @@ Code C P S U L A D
 3715 F F F F F F F 
 3716 F T F F F T F 
 3717 F F F F F F F 
-3718 F F F F F F F 
+3718 F T F F F T F 
 3719 F T F F F T F 
 3720 F T F F F T F 
-3721 F F F F F F F 
+3721 F T F F F T F 
 3722 F T F F F T F 
 3723 F F F F F F F 
-3724 F F F F F F F 
+3724 F T F F F T F 
 3725 F T F F F T F 
-3726 F F F F F F F 
-3727 F F F F F F F 
-3728 F F F F F F F 
-3729 F F F F F F F 
-3730 F F F F F F F 
-3731 F F F F F F F 
+3726 F T F F F T F 
+3727 F T F F F T F 
+3728 F T F F F T F 
+3729 F T F F F T F 
+3730 F T F F F T F 
+3731 F T F F F T F 
 3732 F T F F F T F 
 3733 F T F F F T F 
 3734 F T F F F T F 
 3735 F T F F F T F 
-3736 F F F F F F F 
+3736 F T F F F T F 
 3737 F T F F F T F 
 3738 F T F F F T F 
 3739 F T F F F T F 
@@ -3743,7 +3743,7 @@ Code C P S U L A D
 3741 F T F F F T F 
 3742 F T F F F T F 
 3743 F T F F F T F 
-3744 F F F F F F F 
+3744 F T F F F T F 
 3745 F T F F F T F 
 3746 F T F F F T F 
 3747 F T F F F T F 
@@ -3751,11 +3751,11 @@ Code C P S U L A D
 3749 F T F F F T F 
 3750 F F F F F F F 
 3751 F T F F F T F 
-3752 F F F F F F F 
-3753 F F F F F F F 
+3752 F T F F F T F 
+3753 F T F F F T F 
 3754 F T F F F T F 
 3755 F T F F F T F 
-3756 F F F F F F F 
+3756 F T F F F T F 
 3757 F T F F F T F 
 3758 F T F F F T F 
 3759 F T F F F T F 
@@ -3769,7 +3769,7 @@ Code C P S U L A D
 3767 F T F F F F F 
 3768 F T F F F F F 
 3769 F T F F F F F 
-3770 F F F F F F F 
+3770 F T F F F F F 
 3771 F T F F F F F 
 3772 F T F F F F F 
 3773 F T F F F T F 
@@ -4303,54 +4303,54 @@ Code C P S U L A D
 4301 F T F T F T F 
 4302 F F F F F F F 
 4303 F F F F F F F 
-4304 F T F F F T F 
-4305 F T F F F T F 
-4306 F T F F F T F 
-4307 F T F F F T F 
-4308 F T F F F T F 
-4309 F T F F F T F 
-4310 F T F F F T F 
-4311 F T F F F T F 
-4312 F T F F F T F 
-4313 F T F F F T F 
-4314 F T F F F T F 
-4315 F T F F F T F 
-4316 F T F F F T F 
-4317 F T F F F T F 
-4318 F T F F F T F 
-4319 F T F F F T F 
-4320 F T F F F T F 
-4321 F T F F F T F 
-4322 F T F F F T F 
-4323 F T F F F T F 
-4324 F T F F F T F 
-4325 F T F F F T F 
-4326 F T F F F T F 
-4327 F T F F F T F 
-4328 F T F F F T F 
-4329 F T F F F T F 
-4330 F T F F F T F 
-4331 F T F F F T F 
-4332 F T F F F T F 
-4333 F T F F F T F 
-4334 F T F F F T F 
-4335 F T F F F T F 
-4336 F T F F F T F 
-4337 F T F F F T F 
-4338 F T F F F T F 
-4339 F T F F F T F 
-4340 F T F F F T F 
-4341 F T F F F T F 
-4342 F T F F F T F 
-4343 F T F F F T F 
-4344 F T F F F T F 
-4345 F T F F F T F 
-4346 F T F F F T F 
+4304 F T F F T T F 
+4305 F T F F T T F 
+4306 F T F F T T F 
+4307 F T F F T T F 
+4308 F T F F T T F 
+4309 F T F F T T F 
+4310 F T F F T T F 
+4311 F T F F T T F 
+4312 F T F F T T F 
+4313 F T F F T T F 
+4314 F T F F T T F 
+4315 F T F F T T F 
+4316 F T F F T T F 
+4317 F T F F T T F 
+4318 F T F F T T F 
+4319 F T F F T T F 
+4320 F T F F T T F 
+4321 F T F F T T F 
+4322 F T F F T T F 
+4323 F T F F T T F 
+4324 F T F F T T F 
+4325 F T F F T T F 
+4326 F T F F T T F 
+4327 F T F F T T F 
+4328 F T F F T T F 
+4329 F T F F T T F 
+4330 F T F F T T F 
+4331 F T F F T T F 
+4332 F T F F T T F 
+4333 F T F F T T F 
+4334 F T F F T T F 
+4335 F T F F T T F 
+4336 F T F F T T F 
+4337 F T F F T T F 
+4338 F T F F T T F 
+4339 F T F F T T F 
+4340 F T F F T T F 
+4341 F T F F T T F 
+4342 F T F F T T F 
+4343 F T F F T T F 
+4344 F T F F T T F 
+4345 F T F F T T F 
+4346 F T F F T T F 
 4347 F T F F F F F 
 4348 F T F F F T F 
-4349 F T F F F T F 
-4350 F T F F F T F 
-4351 F T F F F T F 
+4349 F T F F T T F 
+4350 F T F F T T F 
+4351 F T F F T T F 
 4352 F T F F F T F 
 4353 F T F F F T F 
 4354 F T F F F T F 
@@ -5023,100 +5023,100 @@ Code C P S U L A D
 5021 F F F F F F F 
 5022 F F F F F F F 
 5023 F F F F F F F 
-5024 F T F F F T F 
-5025 F T F F F T F 
-5026 F T F F F T F 
-5027 F T F F F T F 
-5028 F T F F F T F 
-5029 F T F F F T F 
-5030 F T F F F T F 
-5031 F T F F F T F 
-5032 F T F F F T F 
-5033 F T F F F T F 
-5034 F T F F F T F 
-5035 F T F F F T F 
-5036 F T F F F T F 
-5037 F T F F F T F 
-5038 F T F F F T F 
-5039 F T F F F T F 
-5040 F T F F F T F 
-5041 F T F F F T F 
-5042 F T F F F T F 
-5043 F T F F F T F 
-5044 F T F F F T F 
-5045 F T F F F T F 
-5046 F T F F F T F 
-5047 F T F F F T F 
-5048 F T F F F T F 
-5049 F T F F F T F 
-5050 F T F F F T F 
-5051 F T F F F T F 
-5052 F T F F F T F 
-5053 F T F F F T F 
-5054 F T F F F T F 
-5055 F T F F F T F 
-5056 F T F F F T F 
-5057 F T F F F T F 
-5058 F T F F F T F 
-5059 F T F F F T F 
-5060 F T F F F T F 
-5061 F T F F F T F 
-5062 F T F F F T F 
-5063 F T F F F T F 
-5064 F T F F F T F 
-5065 F T F F F T F 
-5066 F T F F F T F 
-5067 F T F F F T F 
-5068 F T F F F T F 
-5069 F T F F F T F 
-5070 F T F F F T F 
-5071 F T F F F T F 
-5072 F T F F F T F 
-5073 F T F F F T F 
-5074 F T F F F T F 
-5075 F T F F F T F 
-5076 F T F F F T F 
-5077 F T F F F T F 
-5078 F T F F F T F 
-5079 F T F F F T F 
-5080 F T F F F T F 
-5081 F T F F F T F 
-5082 F T F F F T F 
-5083 F T F F F T F 
-5084 F T F F F T F 
-5085 F T F F F T F 
-5086 F T F F F T F 
-5087 F T F F F T F 
-5088 F T F F F T F 
-5089 F T F F F T F 
-5090 F T F F F T F 
-5091 F T F F F T F 
-5092 F T F F F T F 
-5093 F T F F F T F 
-5094 F T F F F T F 
-5095 F T F F F T F 
-5096 F T F F F T F 
-5097 F T F F F T F 
-5098 F T F F F T F 
-5099 F T F F F T F 
-5100 F T F F F T F 
-5101 F T F F F T F 
-5102 F T F F F T F 
-5103 F T F F F T F 
-5104 F T F F F T F 
-5105 F T F F F T F 
-5106 F T F F F T F 
-5107 F T F F F T F 
-5108 F T F F F T F 
-5109 F F F F F F F 
+5024 F T F T F T F 
+5025 F T F T F T F 
+5026 F T F T F T F 
+5027 F T F T F T F 
+5028 F T F T F T F 
+5029 F T F T F T F 
+5030 F T F T F T F 
+5031 F T F T F T F 
+5032 F T F T F T F 
+5033 F T F T F T F 
+5034 F T F T F T F 
+5035 F T F T F T F 
+5036 F T F T F T F 
+5037 F T F T F T F 
+5038 F T F T F T F 
+5039 F T F T F T F 
+5040 F T F T F T F 
+5041 F T F T F T F 
+5042 F T F T F T F 
+5043 F T F T F T F 
+5044 F T F T F T F 
+5045 F T F T F T F 
+5046 F T F T F T F 
+5047 F T F T F T F 
+5048 F T F T F T F 
+5049 F T F T F T F 
+5050 F T F T F T F 
+5051 F T F T F T F 
+5052 F T F T F T F 
+5053 F T F T F T F 
+5054 F T F T F T F 
+5055 F T F T F T F 
+5056 F T F T F T F 
+5057 F T F T F T F 
+5058 F T F T F T F 
+5059 F T F T F T F 
+5060 F T F T F T F 
+5061 F T F T F T F 
+5062 F T F T F T F 
+5063 F T F T F T F 
+5064 F T F T F T F 
+5065 F T F T F T F 
+5066 F T F T F T F 
+5067 F T F T F T F 
+5068 F T F T F T F 
+5069 F T F T F T F 
+5070 F T F T F T F 
+5071 F T F T F T F 
+5072 F T F T F T F 
+5073 F T F T F T F 
+5074 F T F T F T F 
+5075 F T F T F T F 
+5076 F T F T F T F 
+5077 F T F T F T F 
+5078 F T F T F T F 
+5079 F T F T F T F 
+5080 F T F T F T F 
+5081 F T F T F T F 
+5082 F T F T F T F 
+5083 F T F T F T F 
+5084 F T F T F T F 
+5085 F T F T F T F 
+5086 F T F T F T F 
+5087 F T F T F T F 
+5088 F T F T F T F 
+5089 F T F T F T F 
+5090 F T F T F T F 
+5091 F T F T F T F 
+5092 F T F T F T F 
+5093 F T F T F T F 
+5094 F T F T F T F 
+5095 F T F T F T F 
+5096 F T F T F T F 
+5097 F T F T F T F 
+5098 F T F T F T F 
+5099 F T F T F T F 
+5100 F T F T F T F 
+5101 F T F T F T F 
+5102 F T F T F T F 
+5103 F T F T F T F 
+5104 F T F T F T F 
+5105 F T F T F T F 
+5106 F T F T F T F 
+5107 F T F T F T F 
+5108 F T F T F T F 
+5109 F T F T F T F 
 5110 F F F F F F F 
 5111 F F F F F F F 
-5112 F F F F F F F 
-5113 F F F F F F F 
-5114 F F F F F F F 
-5115 F F F F F F F 
-5116 F F F F F F F 
-5117 F F F F F F F 
+5112 F T F F T T F 
+5113 F T F F T T F 
+5114 F T F F T T F 
+5115 F T F F T T F 
+5116 F T F F T T F 
+5117 F T F F T T F 
 5118 F F F F F F F 
 5119 F F F F F F F 
 5120 F T F F F F F 
@@ -6263,7 +6263,7 @@ Code C P S U L A D
 6261 F T F F F T F 
 6262 F T F F F T F 
 6263 F T F F F T F 
-6264 F F F F F F F 
+6264 F T F F F T F 
 6265 F F F F F F F 
 6266 F F F F F F F 
 6267 F F F F F F F 
@@ -6276,8 +6276,8 @@ Code C P S U L A D
 6274 F T F F F T F 
 6275 F T F F F T F 
 6276 F T F F F T F 
-6277 F T F F F T F 
-6278 F T F F F T F 
+6277 F T F F F F F 
+6278 F T F F F F F 
 6279 F T F F F T F 
 6280 F T F F F T F 
 6281 F T F F F T F